Netdev List
 help / color / mirror / Atom feed
* [PATCH net-next v3 0/2] net: notify users when an iface cannot change its netns
@ 2025-02-20 13:02 Nicolas Dichtel
  2025-02-20 13:02 ` [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink Nicolas Dichtel
  2025-02-20 13:02 ` [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace() Nicolas Dichtel
  0 siblings, 2 replies; 11+ messages in thread
From: Nicolas Dichtel @ 2025-02-20 13:02 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet,
	Alexander Lobakin
  Cc: Ido Schimmel, Andrew Lunn, netdev

This series adds a way to see if an interface cannot be moved to another netns.

v2 -> v3:
 - don't copy patch #1 to stable@vger.kernel.org
 - remove the 'Fixes:' tag

v1 -> v2:
 - target the series to net-next
 - patch #1:
   + use NLA_REJECT for the nl policy
   + update the rt link spec
 - patch #2: plumb extack in __dev_change_net_namespace()

 Documentation/netlink/specs/rt_link.yaml |  3 +++
 include/linux/netdevice.h                |  5 ++--
 include/uapi/linux/if_link.h             |  1 +
 net/core/dev.c                           | 41 +++++++++++++++++++++++++-------
 net/core/rtnetlink.c                     |  5 +++-
 5 files changed, 44 insertions(+), 11 deletions(-)

Comments are welcome.

Regards,
Nicolas

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink
  2025-02-20 13:02 [PATCH net-next v3 0/2] net: notify users when an iface cannot change its netns Nicolas Dichtel
@ 2025-02-20 13:02 ` Nicolas Dichtel
  2025-02-20 13:10   ` Eric Dumazet
                     ` (2 more replies)
  2025-02-20 13:02 ` [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace() Nicolas Dichtel
  1 sibling, 3 replies; 11+ messages in thread
From: Nicolas Dichtel @ 2025-02-20 13:02 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet,
	Alexander Lobakin
  Cc: Ido Schimmel, Andrew Lunn, netdev, Nicolas Dichtel

Since commit 05c1280a2bcf ("netdev_features: convert NETIF_F_NETNS_LOCAL to
dev->netns_local"), 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.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
 Documentation/netlink/specs/rt_link.yaml | 3 +++
 include/uapi/linux/if_link.h             | 1 +
 net/core/rtnetlink.c                     | 3 +++
 3 files changed, 7 insertions(+)

diff --git a/Documentation/netlink/specs/rt_link.yaml b/Documentation/netlink/specs/rt_link.yaml
index 0d492500c7e5..a646d8a6bf9d 100644
--- a/Documentation/netlink/specs/rt_link.yaml
+++ b/Documentation/netlink/specs/rt_link.yaml
@@ -1148,6 +1148,9 @@ attribute-sets:
         name: max-pacing-offload-horizon
         type: uint
         doc: EDT offload horizon supported by the device (in nsec).
+      -
+        name: netns-local
+        type: u8
   -
     name: af-spec-attrs
     attributes:
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 abe1a461ea67..acf787e4d22d 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1292,6 +1292,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 */
@@ -2046,6 +2047,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)) ||
@@ -2234,6 +2236,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_REJECT },
 };
 
 static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace()
  2025-02-20 13:02 [PATCH net-next v3 0/2] net: notify users when an iface cannot change its netns Nicolas Dichtel
  2025-02-20 13:02 ` [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink Nicolas Dichtel
@ 2025-02-20 13:02 ` Nicolas Dichtel
  2025-02-20 13:17   ` Eric Dumazet
  1 sibling, 1 reply; 11+ messages in thread
From: Nicolas Dichtel @ 2025-02-20 13:02 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet,
	Alexander Lobakin
  Cc: Ido Schimmel, Andrew Lunn, netdev, Nicolas Dichtel

It could be hard to understand why the netlink command fails. For example,
if dev->netns_local is set, the error is "Invalid argument".

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
 include/linux/netdevice.h |  5 +++--
 net/core/dev.c            | 41 +++++++++++++++++++++++++++++++--------
 net/core/rtnetlink.c      |  2 +-
 3 files changed, 37 insertions(+), 11 deletions(-)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index fccc03cd2164..58d9f052f154 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -4155,12 +4155,13 @@ int dev_change_flags(struct net_device *dev, unsigned int flags,
 int dev_set_alias(struct net_device *, const char *, size_t);
 int dev_get_alias(const struct net_device *, char *, size_t);
 int __dev_change_net_namespace(struct net_device *dev, struct net *net,
-			       const char *pat, int new_ifindex);
+			       const char *pat, int new_ifindex,
+			       struct netlink_ext_ack *extack);
 static inline
 int dev_change_net_namespace(struct net_device *dev, struct net *net,
 			     const char *pat)
 {
-	return __dev_change_net_namespace(dev, net, pat, 0);
+	return __dev_change_net_namespace(dev, net, pat, 0, NULL);
 }
 int __dev_set_mtu(struct net_device *, int);
 int dev_set_mtu(struct net_device *, int);
diff --git a/net/core/dev.c b/net/core/dev.c
index ebc000b56828..9605fa2e7415 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -11917,6 +11917,7 @@ EXPORT_SYMBOL(unregister_netdev);
  *	      is already taken in the destination network namespace.
  *	@new_ifindex: If not zero, specifies device index in the target
  *	              namespace.
+ *	@extack: netlink extended ack
  *
  *	This function shuts down a device interface and moves it
  *	to a new network namespace. On success 0 is returned, on
@@ -11926,7 +11927,8 @@ EXPORT_SYMBOL(unregister_netdev);
  */
 
 int __dev_change_net_namespace(struct net_device *dev, struct net *net,
-			       const char *pat, int new_ifindex)
+			       const char *pat, int new_ifindex,
+			       struct netlink_ext_ack *extack)
 {
 	struct netdev_name_node *name_node;
 	struct net *net_old = dev_net(dev);
@@ -11937,12 +11939,17 @@ int __dev_change_net_namespace(struct net_device *dev, struct net *net,
 
 	/* Don't allow namespace local devices to be moved. */
 	err = -EINVAL;
-	if (dev->netns_local)
+	if (dev->netns_local) {
+		NL_SET_ERR_MSG(extack,
+			       "The interface has the 'netns local' property");
 		goto out;
+	}
 
 	/* Ensure the device has been registered */
-	if (dev->reg_state != NETREG_REGISTERED)
+	if (dev->reg_state != NETREG_REGISTERED) {
+		NL_SET_ERR_MSG(extack, "The interface isn't registered");
 		goto out;
+	}
 
 	/* Get out if there is nothing todo */
 	err = 0;
@@ -11955,30 +11962,48 @@ int __dev_change_net_namespace(struct net_device *dev, struct net *net,
 	err = -EEXIST;
 	if (netdev_name_in_use(net, dev->name)) {
 		/* We get here if we can't use the current device name */
-		if (!pat)
+		if (!pat) {
+			NL_SET_ERR_MSG(extack,
+				       "An interface with the same name exists in the target netns");
 			goto out;
+		}
 		err = dev_prep_valid_name(net, dev, pat, new_name, EEXIST);
-		if (err < 0)
+		if (err < 0) {
+			NL_SET_ERR_MSG_FMT(extack,
+					   "Unable to use '%s' for the new interface name",
+					   pat);
 			goto out;
+		}
 	}
 	/* Check that none of the altnames conflicts. */
 	err = -EEXIST;
 	netdev_for_each_altname(dev, name_node)
-		if (netdev_name_in_use(net, name_node->name))
+		if (netdev_name_in_use(net, name_node->name)) {
+			NL_SET_ERR_MSG_FMT(extack,
+					   "An interface with the altname %s exists in the target netns",
+					   name_node->name);
 			goto out;
+		}
 
 	/* Check that new_ifindex isn't used yet. */
 	if (new_ifindex) {
 		err = dev_index_reserve(net, new_ifindex);
-		if (err < 0)
+		if (err < 0) {
+			NL_SET_ERR_MSG_FMT(extack,
+					   "The ifindex %d is not available in the target netns",
+					   new_ifindex);
 			goto out;
+		}
 	} else {
 		/* If there is an ifindex conflict assign a new one */
 		err = dev_index_reserve(net, dev->ifindex);
 		if (err == -EBUSY)
 			err = dev_index_reserve(net, 0);
-		if (err < 0)
+		if (err < 0) {
+			NL_SET_ERR_MSG(extack,
+				       "Unable to allocate a new ifindex in the target netns");
 			goto out;
+		}
 		new_ifindex = err;
 	}
 
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index acf787e4d22d..717f2e3e333e 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -3028,7 +3028,7 @@ static int do_setlink(const struct sk_buff *skb, struct net_device *dev,
 
 		new_ifindex = nla_get_s32_default(tb[IFLA_NEW_IFINDEX], 0);
 
-		err = __dev_change_net_namespace(dev, tgt_net, pat, new_ifindex);
+		err = __dev_change_net_namespace(dev, tgt_net, pat, new_ifindex, extack);
 		if (err)
 			goto errout;
 
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink
  2025-02-20 13:02 ` [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink Nicolas Dichtel
@ 2025-02-20 13:10   ` Eric Dumazet
  2025-02-20 15:34   ` Alexander Lobakin
  2025-02-21  4:23   ` Kuniyuki Iwashima
  2 siblings, 0 replies; 11+ messages in thread
From: Eric Dumazet @ 2025-02-20 13:10 UTC (permalink / raw)
  To: Nicolas Dichtel
  Cc: David S . Miller, Jakub Kicinski, Paolo Abeni, Alexander Lobakin,
	Ido Schimmel, Andrew Lunn, netdev

On Thu, Feb 20, 2025 at 2:03 PM Nicolas Dichtel
<nicolas.dichtel@6wind.com> wrote:
>
> Since commit 05c1280a2bcf ("netdev_features: convert NETIF_F_NETNS_LOCAL to
> dev->netns_local"), 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.
>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> ---

Reviewed-by: Eric Dumazet <edumazet@google.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace()
  2025-02-20 13:02 ` [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace() Nicolas Dichtel
@ 2025-02-20 13:17   ` Eric Dumazet
  2025-02-20 13:22     ` Nicolas Dichtel
  0 siblings, 1 reply; 11+ messages in thread
From: Eric Dumazet @ 2025-02-20 13:17 UTC (permalink / raw)
  To: Nicolas Dichtel
  Cc: David S . Miller, Jakub Kicinski, Paolo Abeni, Alexander Lobakin,
	Ido Schimmel, Andrew Lunn, netdev

On Thu, Feb 20, 2025 at 2:03 PM Nicolas Dichtel
<nicolas.dichtel@6wind.com> wrote:
>
> It could be hard to understand why the netlink command fails. For example,
> if dev->netns_local is set, the error is "Invalid argument".
>

After your patch, a new message is : "  "The interface has the 'netns
local' property""

Honestly, I am not sure we export to user space the concept of 'netns local'

"This interface netns is not allowed to be changed" or something like that ?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace()
  2025-02-20 13:17   ` Eric Dumazet
@ 2025-02-20 13:22     ` Nicolas Dichtel
  2025-02-20 13:24       ` Eric Dumazet
  0 siblings, 1 reply; 11+ messages in thread
From: Nicolas Dichtel @ 2025-02-20 13:22 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: David S . Miller, Jakub Kicinski, Paolo Abeni, Alexander Lobakin,
	Ido Schimmel, Andrew Lunn, netdev

Le 20/02/2025 à 14:17, Eric Dumazet a écrit :
> On Thu, Feb 20, 2025 at 2:03 PM Nicolas Dichtel
> <nicolas.dichtel@6wind.com> wrote:
>>
>> It could be hard to understand why the netlink command fails. For example,
>> if dev->netns_local is set, the error is "Invalid argument".
>>
> 
> After your patch, a new message is : "  "The interface has the 'netns
> local' property""
> 
> Honestly, I am not sure we export to user space the concept of 'netns local'
> 
> "This interface netns is not allowed to be changed" or something like that ?
Frankly, I was hesitating. I used 'netns local' to ease the link with the new
netlink attribute, and with what was displayed by ethtool for a long time.
I don't have a strong opinion about this.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace()
  2025-02-20 13:22     ` Nicolas Dichtel
@ 2025-02-20 13:24       ` Eric Dumazet
  2025-02-20 15:11         ` Nicolas Dichtel
  0 siblings, 1 reply; 11+ messages in thread
From: Eric Dumazet @ 2025-02-20 13:24 UTC (permalink / raw)
  To: nicolas.dichtel
  Cc: David S . Miller, Jakub Kicinski, Paolo Abeni, Alexander Lobakin,
	Ido Schimmel, Andrew Lunn, netdev

On Thu, Feb 20, 2025 at 2:22 PM Nicolas Dichtel
<nicolas.dichtel@6wind.com> wrote:
>
> Le 20/02/2025 à 14:17, Eric Dumazet a écrit :
> > On Thu, Feb 20, 2025 at 2:03 PM Nicolas Dichtel
> > <nicolas.dichtel@6wind.com> wrote:
> >>
> >> It could be hard to understand why the netlink command fails. For example,
> >> if dev->netns_local is set, the error is "Invalid argument".
> >>
> >
> > After your patch, a new message is : "  "The interface has the 'netns
> > local' property""
> >
> > Honestly, I am not sure we export to user space the concept of 'netns local'
> >
> > "This interface netns is not allowed to be changed" or something like that ?
> Frankly, I was hesitating. I used 'netns local' to ease the link with the new
> netlink attribute, and with what was displayed by ethtool for a long time.
> I don't have a strong opinion about this.

No strong opinion either, I always have been confused by NETNS_LOCAL choice.

Reviewed-by: Eric Dumazet <edumazet@google.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace()
  2025-02-20 13:24       ` Eric Dumazet
@ 2025-02-20 15:11         ` Nicolas Dichtel
  2025-02-21  4:34           ` Kuniyuki Iwashima
  0 siblings, 1 reply; 11+ messages in thread
From: Nicolas Dichtel @ 2025-02-20 15:11 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: David S . Miller, Jakub Kicinski, Paolo Abeni, Alexander Lobakin,
	Ido Schimmel, Andrew Lunn, netdev

Le 20/02/2025 à 14:24, Eric Dumazet a écrit :
> On Thu, Feb 20, 2025 at 2:22 PM Nicolas Dichtel
> <nicolas.dichtel@6wind.com> wrote:
>>
>> Le 20/02/2025 à 14:17, Eric Dumazet a écrit :
>>> On Thu, Feb 20, 2025 at 2:03 PM Nicolas Dichtel
>>> <nicolas.dichtel@6wind.com> wrote:
>>>>
>>>> It could be hard to understand why the netlink command fails. For example,
>>>> if dev->netns_local is set, the error is "Invalid argument".
>>>>
>>>
>>> After your patch, a new message is : "  "The interface has the 'netns
>>> local' property""
>>>
>>> Honestly, I am not sure we export to user space the concept of 'netns local'
>>>
>>> "This interface netns is not allowed to be changed" or something like that ?
>> Frankly, I was hesitating. I used 'netns local' to ease the link with the new
>> netlink attribute, and with what was displayed by ethtool for a long time.
>> I don't have a strong opinion about this.
> 
> No strong opinion either, I always have been confused by NETNS_LOCAL choice.
Yes, it's not obvious. Maybe it could be renamed before exposing it to userspace
via netlink.
What about 'netns-locked'? Does someone have a better proposal?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink
  2025-02-20 13:02 ` [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink Nicolas Dichtel
  2025-02-20 13:10   ` Eric Dumazet
@ 2025-02-20 15:34   ` Alexander Lobakin
  2025-02-21  4:23   ` Kuniyuki Iwashima
  2 siblings, 0 replies; 11+ messages in thread
From: Alexander Lobakin @ 2025-02-20 15:34 UTC (permalink / raw)
  To: Nicolas Dichtel
  Cc: David S . Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet,
	Ido Schimmel, Andrew Lunn, netdev

From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Thu, 20 Feb 2025 14:02:35 +0100

> Since commit 05c1280a2bcf ("netdev_features: convert NETIF_F_NETNS_LOCAL to
> dev->netns_local"), 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.
> 
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>

Meh, I was sure nobody looks at those read-only Ethtool "features"...

Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>

> ---
>  Documentation/netlink/specs/rt_link.yaml | 3 +++
>  include/uapi/linux/if_link.h             | 1 +
>  net/core/rtnetlink.c                     | 3 +++
>  3 files changed, 7 insertions(+)

Thanks,
Olek

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink
  2025-02-20 13:02 ` [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink Nicolas Dichtel
  2025-02-20 13:10   ` Eric Dumazet
  2025-02-20 15:34   ` Alexander Lobakin
@ 2025-02-21  4:23   ` Kuniyuki Iwashima
  2 siblings, 0 replies; 11+ messages in thread
From: Kuniyuki Iwashima @ 2025-02-21  4:23 UTC (permalink / raw)
  To: nicolas.dichtel
  Cc: aleksander.lobakin, andrew, davem, edumazet, idosch, kuba, netdev,
	pabeni, Kuniyuki Iwashima

From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Thu, 20 Feb 2025 14:02:35 +0100
> Since commit 05c1280a2bcf ("netdev_features: convert NETIF_F_NETNS_LOCAL to
> dev->netns_local"), 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.
> 
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>

Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace()
  2025-02-20 15:11         ` Nicolas Dichtel
@ 2025-02-21  4:34           ` Kuniyuki Iwashima
  0 siblings, 0 replies; 11+ messages in thread
From: Kuniyuki Iwashima @ 2025-02-21  4:34 UTC (permalink / raw)
  To: nicolas.dichtel
  Cc: aleksander.lobakin, andrew, davem, edumazet, idosch, kuba, netdev,
	pabeni

From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Thu, 20 Feb 2025 16:11:43 +0100
> Le 20/02/2025 à 14:24, Eric Dumazet a écrit :
> > On Thu, Feb 20, 2025 at 2:22 PM Nicolas Dichtel
> > <nicolas.dichtel@6wind.com> wrote:
> >>
> >> Le 20/02/2025 à 14:17, Eric Dumazet a écrit :
> >>> On Thu, Feb 20, 2025 at 2:03 PM Nicolas Dichtel
> >>> <nicolas.dichtel@6wind.com> wrote:
> >>>>
> >>>> It could be hard to understand why the netlink command fails. For example,
> >>>> if dev->netns_local is set, the error is "Invalid argument".
> >>>>
> >>>
> >>> After your patch, a new message is : "  "The interface has the 'netns
> >>> local' property""
> >>>
> >>> Honestly, I am not sure we export to user space the concept of 'netns local'
> >>>
> >>> "This interface netns is not allowed to be changed" or something like that ?
> >> Frankly, I was hesitating. I used 'netns local' to ease the link with the new
> >> netlink attribute, and with what was displayed by ethtool for a long time.
> >> I don't have a strong opinion about this.
> > 
> > No strong opinion either, I always have been confused by NETNS_LOCAL choice.
> Yes, it's not obvious. Maybe it could be renamed before exposing it to userspace
> via netlink.
> What about 'netns-locked'? Does someone have a better proposal?

Maybe NETNS_IMMUTABLE and netns-immutable ?
Then we can say "The interface netns is immutable" in extack.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-02-21  4:34 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-20 13:02 [PATCH net-next v3 0/2] net: notify users when an iface cannot change its netns Nicolas Dichtel
2025-02-20 13:02 ` [PATCH net-next v3 1/2] net: advertise 'netns local' property via netlink Nicolas Dichtel
2025-02-20 13:10   ` Eric Dumazet
2025-02-20 15:34   ` Alexander Lobakin
2025-02-21  4:23   ` Kuniyuki Iwashima
2025-02-20 13:02 ` [PATCH net-next v3 2/2] net: plumb extack in __dev_change_net_namespace() Nicolas Dichtel
2025-02-20 13:17   ` Eric Dumazet
2025-02-20 13:22     ` Nicolas Dichtel
2025-02-20 13:24       ` Eric Dumazet
2025-02-20 15:11         ` Nicolas Dichtel
2025-02-21  4:34           ` Kuniyuki Iwashima

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox