Re: [PATCH net-next v2] tools: ynl-gen: use big-endian netlink attribute types
From: Simon Horman
Date: Fri Oct 18 2024 - 07:47:28 EST
On Thu, Oct 17, 2024 at 09:47:02AM +0000, Asbjørn Sloth Tønnesen wrote:
> Change ynl-gen-c.py to use NLA_BE16 and NLA_BE32 types to represent
> big-endian u16 and u32 ynl types.
>
> Doing this enables those attributes to have range checks applied, as
> the validator will then convert to host endianness prior to validation.
>
> The autogenerated kernel/uapi code have been regenerated by running:
> ./tools/net/ynl/ynl-regen.sh -f
>
> This changes the policy types of the following attributes:
>
> FOU_ATTR_PORT (NLA_U16 -> NLA_BE16)
> FOU_ATTR_PEER_PORT (NLA_U16 -> NLA_BE16)
> These two are used with nla_get_be16/nla_put_be16().
>
> MPTCP_PM_ADDR_ATTR_ADDR4 (NLA_U32 -> NLA_BE32)
> This one is used with nla_get_in_addr/nla_put_in_addr(),
> which uses nla_get_be32/nla_put_be32().
>
> IOWs the generated changes are AFAICT aligned with their implementations.
>
> The generated userspace code remains identical, and have been verified
> by comparing the output generated by the following command:
> make -C tools/net/ynl/generated
>
> Signed-off-by: Asbjørn Sloth Tønnesen <ast@xxxxxxxxxxx>
>
> ---
> Changelog:
>
> v2:
> - Re-implement to avoid adding a new Type attribute (Requested by Jakub).
>
> v1: https://lore.kernel.org/netdev/20240913085555.134788-1-ast@xxxxxxxxxxx/
Thanks for addressing Jakub's review of v1.
Reviewed-by: Simon Horman <horms@xxxxxxxxxx>