[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CANn89iJO66n0OtC1axnkfukm=vD5AacHcuxXh3sUvyTXdSy-TQ@mail.gmail.com>
Date: Thu, 6 Feb 2025 17:59:03 +0100
From: Eric Dumazet <edumazet@...gle.com>
To: Nicolas Dichtel <nicolas.dichtel@...nd.com>
Cc: "David S . Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Alexander Lobakin <aleksander.lobakin@...el.com>, netdev@...r.kernel.org,
stable@...r.kernel.org
Subject: Re: [PATCH net 1/2] net: advertise 'netns local' property via netlink
On Thu, Feb 6, 2025 at 5:51 PM Nicolas Dichtel
<nicolas.dichtel@...nd.com> 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@...r.kernel.org
> Fixes: 05c1280a2bcf ("netdev_features: convert NETIF_F_NETNS_LOCAL to dev->netns_local")
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@...nd.com>
> ---
> 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
Powered by blists - more mailing lists