Subject: Re: [PATCH net-next v2] tools: ynl-gen: use big-endian netlink attribute types

From: Simon Horman <[email-masked]>
Date: Fri, 18 Oct 2024 12:46:46 +0100

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 <[email-masked]>
> 
> ---
> Changelog:
> 
> v2:
> - Re-implement to avoid adding a new Type attribute (Requested by Jakub).
> 
> v1: https://lore.kernel.org/netdev/[email-masked]/

Thanks for addressing Jakub's review of v1.

Reviewed-by: Simon Horman <[email-masked]>