Re: [PATCH net 1/2] net: advertise 'netns local' property via netlink

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 6, 2025 at 5:51 PM Nicolas Dichtel
<nicolas.dichtel@xxxxxxxxx> wrote:
>
> Since the below commit, there is no way to see if the netns_local property
> is set on a device. Let's add a netlink attribute to advertise it.
>


> CC: stable@xxxxxxxxxxxxxxx
> Fixes: 05c1280a2bcf ("netdev_features: convert NETIF_F_NETNS_LOCAL to dev->netns_local")
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx>
> ---
>  include/uapi/linux/if_link.h | 1 +
>  net/core/rtnetlink.c         | 3 +++
>  2 files changed, 4 insertions(+)
>
> diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
> index bfe880fbbb24..ed4a64e1c8f1 100644
> --- a/include/uapi/linux/if_link.h
> +++ b/include/uapi/linux/if_link.h
> @@ -378,6 +378,7 @@ enum {
>         IFLA_GRO_IPV4_MAX_SIZE,
>         IFLA_DPLL_PIN,
>         IFLA_MAX_PACING_OFFLOAD_HORIZON,
> +       IFLA_NETNS_LOCAL,
>         __IFLA_MAX
>  };
>
> diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
> index d1e559fce918..5032e65b8faa 100644
> --- a/net/core/rtnetlink.c
> +++ b/net/core/rtnetlink.c
> @@ -1287,6 +1287,7 @@ static noinline size_t if_nlmsg_size(const struct net_device *dev,
>                + nla_total_size(4) /* IFLA_TSO_MAX_SEGS */
>                + nla_total_size(1) /* IFLA_OPERSTATE */
>                + nla_total_size(1) /* IFLA_LINKMODE */
> +              + nla_total_size(1) /* IFLA_NETNS_LOCAL */
>                + nla_total_size(4) /* IFLA_CARRIER_CHANGES */
>                + nla_total_size(4) /* IFLA_LINK_NETNSID */
>                + nla_total_size(4) /* IFLA_GROUP */
> @@ -2041,6 +2042,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb,
>                        netif_running(dev) ? READ_ONCE(dev->operstate) :
>                                             IF_OPER_DOWN) ||
>             nla_put_u8(skb, IFLA_LINKMODE, READ_ONCE(dev->link_mode)) ||
> +           nla_put_u8(skb, IFLA_NETNS_LOCAL, dev->netns_local) ||
>             nla_put_u32(skb, IFLA_MTU, READ_ONCE(dev->mtu)) ||
>             nla_put_u32(skb, IFLA_MIN_MTU, READ_ONCE(dev->min_mtu)) ||
>             nla_put_u32(skb, IFLA_MAX_MTU, READ_ONCE(dev->max_mtu)) ||
> @@ -2229,6 +2231,7 @@ static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
>         [IFLA_ALLMULTI]         = { .type = NLA_REJECT },
>         [IFLA_GSO_IPV4_MAX_SIZE]        = NLA_POLICY_MIN(NLA_U32, MAX_TCP_HEADER + 1),
>         [IFLA_GRO_IPV4_MAX_SIZE]        = { .type = NLA_U32 },
> +       [IFLA_NETNS_LOCAL]      = { .type = NLA_U8 },

As this is a read-only attribute, I would suggest NLA_REJECT





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux