Skip to content

Commit

Permalink
net: rename netns_local to netns_immutable
Browse files Browse the repository at this point in the history
The name 'netns_local' is confusing. A following commit will export it via
netlink, so let's use a more explicit name.

Reported-by: Eric Dumazet <edumazet@google.com>
Suggested-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  • Loading branch information
Nicolas Dichtel authored and Paolo Abeni committed Mar 4, 2025
1 parent af08cc4 commit 0c493da
Show file tree
Hide file tree
Showing 31 changed files with 42 additions and 42 deletions.
2 changes: 1 addition & 1 deletion Documentation/networking/net_cachelines/net_device.rst
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ unsigned:1 wol_enabled
unsigned:1 threaded napi_poll(napi_enable,dev_set_threaded)
unsigned_long:1 see_all_hwtstamp_requests
unsigned_long:1 change_proto_down
unsigned_long:1 netns_local
unsigned_long:1 netns_immutable
unsigned_long:1 fcoe_mtu
struct list_head net_notifier_list
struct macsec_ops* macsec_ops
Expand Down
2 changes: 1 addition & 1 deletion Documentation/networking/switchdev.rst
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ would be sub-port 0 on port 1 on switch 1.
Port Features
^^^^^^^^^^^^^

dev->netns_local
dev->netns_immutable

If the switchdev driver (and device) only supports offloading of the default
network namespace (netns), the driver should set this private flag to prevent
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/amt.c
Original file line number Diff line number Diff line change
Expand Up @@ -3099,7 +3099,7 @@ static void amt_link_setup(struct net_device *dev)
dev->addr_len = 0;
dev->priv_flags |= IFF_NO_QUEUE;
dev->lltx = true;
dev->netns_local = true;
dev->netns_immutable = true;
dev->features |= NETIF_F_GSO_SOFTWARE;
dev->hw_features |= NETIF_F_SG | NETIF_F_HW_CSUM;
dev->hw_features |= NETIF_F_FRAGLIST | NETIF_F_RXCSUM;
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/bonding/bond_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -6025,7 +6025,7 @@ void bond_setup(struct net_device *bond_dev)
bond_dev->lltx = true;

/* Don't allow bond devices to change network namespaces. */
bond_dev->netns_local = true;
bond_dev->netns_immutable = true;

/* By default, we declare the bond to be fully
* VLAN hardware accelerated capable. Special
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/adi/adin1110.c
Original file line number Diff line number Diff line change
Expand Up @@ -1599,7 +1599,7 @@ static int adin1110_probe_netdevs(struct adin1110_priv *priv)
netdev->netdev_ops = &adin1110_netdev_ops;
netdev->ethtool_ops = &adin1110_ethtool_ops;
netdev->priv_flags |= IFF_UNICAST_FLT;
netdev->netns_local = true;
netdev->netns_immutable = true;

port_priv->phydev = get_phy_device(priv->mii_bus, i + 1, false);
if (IS_ERR(port_priv->phydev)) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/marvell/prestera/prestera_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -634,7 +634,7 @@ static int prestera_port_create(struct prestera_switch *sw, u32 id)
goto err_dl_port_register;

dev->features |= NETIF_F_HW_TC;
dev->netns_local = true;
dev->netns_immutable = true;
dev->netdev_ops = &prestera_netdev_ops;
dev->ethtool_ops = &prestera_ethtool_ops;
SET_NETDEV_DEV(dev, sw->dev->dev);
Expand Down
4 changes: 2 additions & 2 deletions drivers/net/ethernet/mellanox/mlx5/core/en_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -4423,9 +4423,9 @@ static netdev_features_t mlx5e_fix_features(struct net_device *netdev,

if (mlx5e_is_uplink_rep(priv)) {
features = mlx5e_fix_uplink_rep_features(netdev, features);
netdev->netns_local = true;
netdev->netns_immutable = true;
} else {
netdev->netns_local = false;
netdev->netns_immutable = false;
}

mutex_unlock(&priv->state_lock);
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
Original file line number Diff line number Diff line change
Expand Up @@ -905,7 +905,7 @@ static void mlx5e_build_rep_netdev(struct net_device *netdev,

netdev->features |= netdev->hw_features;

netdev->netns_local = true;
netdev->netns_immutable = true;
}

static int mlx5e_init_rep(struct mlx5_core_dev *mdev,
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/mellanox/mlxsw/spectrum.c
Original file line number Diff line number Diff line change
Expand Up @@ -1579,7 +1579,7 @@ static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u16 local_port,
NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
dev->vlan_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
dev->lltx = true;
dev->netns_local = true;
dev->netns_immutable = true;

dev->min_mtu = ETH_MIN_MTU;
dev->max_mtu = MLXSW_PORT_MAX_MTU - MLXSW_PORT_ETH_FRAME_HDR;
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/rocker/rocker_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2576,7 +2576,7 @@ static int rocker_probe_port(struct rocker *rocker, unsigned int port_number)
rocker_carrier_init(rocker_port);

dev->features |= NETIF_F_SG;
dev->netns_local = true;
dev->netns_immutable = true;

/* MTU range: 68 - 9000 */
dev->min_mtu = ROCKER_PORT_MIN_MTU;
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/ti/cpsw_new.c
Original file line number Diff line number Diff line change
Expand Up @@ -1409,7 +1409,7 @@ static int cpsw_create_ports(struct cpsw_common *cpsw)

ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER |
NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_TC;
ndev->netns_local = true;
ndev->netns_immutable = true;

ndev->xdp_features = NETDEV_XDP_ACT_BASIC |
NETDEV_XDP_ACT_REDIRECT |
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/loopback.c
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ static void gen_lo_setup(struct net_device *dev,
dev->flags = IFF_LOOPBACK;
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE | IFF_NO_QUEUE;
dev->lltx = true;
dev->netns_local = true;
dev->netns_immutable = true;
netif_keep_dst(dev);
dev->hw_features = NETIF_F_GSO_SOFTWARE;
dev->features = NETIF_F_SG | NETIF_F_FRAGLIST
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/net_failover.c
Original file line number Diff line number Diff line change
Expand Up @@ -734,7 +734,7 @@ struct failover *net_failover_create(struct net_device *standby_dev)
failover_dev->lltx = true;

/* Don't allow failover devices to change network namespaces. */
failover_dev->netns_local = true;
failover_dev->netns_immutable = true;

failover_dev->hw_features = FAILOVER_VLAN_FEATURES |
NETIF_F_HW_VLAN_CTAG_TX |
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/team/team_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2203,7 +2203,7 @@ static void team_setup(struct net_device *dev)
dev->lltx = true;

/* Don't allow team devices to change network namespaces. */
dev->netns_local = true;
dev->netns_immutable = true;

dev->features |= NETIF_F_GRO;

Expand Down
2 changes: 1 addition & 1 deletion drivers/net/vrf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1617,7 +1617,7 @@ static void vrf_setup(struct net_device *dev)
dev->lltx = true;

/* don't allow vrf devices to change network namespaces. */
dev->netns_local = true;
dev->netns_immutable = true;

/* does not make sense for a VLAN to be added to a vrf device */
dev->features |= NETIF_F_VLAN_CHALLENGED;
Expand Down
4 changes: 2 additions & 2 deletions include/linux/netdevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -2021,7 +2021,7 @@ enum netdev_reg_state {
* regardless of source, even if those aren't
* HWTSTAMP_SOURCE_NETDEV
* @change_proto_down: device supports setting carrier via IFLA_PROTO_DOWN
* @netns_local: interface can't change network namespaces
* @netns_immutable: interface can't change network namespaces
* @fcoe_mtu: device supports maximum FCoE MTU, 2158 bytes
*
* @net_notifier_list: List of per-net netdev notifier block
Expand Down Expand Up @@ -2429,7 +2429,7 @@ struct net_device {
/* priv_flags_slow, ungrouped to save space */
unsigned long see_all_hwtstamp_requests:1;
unsigned long change_proto_down:1;
unsigned long netns_local:1;
unsigned long netns_immutable:1;
unsigned long fcoe_mtu:1;

struct list_head net_notifier_list;
Expand Down
2 changes: 1 addition & 1 deletion net/batman-adv/soft-interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -1037,7 +1037,7 @@ static void batadv_softif_init_early(struct net_device *dev)
dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
dev->priv_flags |= IFF_NO_QUEUE;
dev->lltx = true;
dev->netns_local = true;
dev->netns_immutable = true;

/* can't call min_mtu, because the needed variables
* have not been initialized yet
Expand Down
2 changes: 1 addition & 1 deletion net/bridge/br_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ void br_dev_setup(struct net_device *dev)
SET_NETDEV_DEVTYPE(dev, &br_type);
dev->priv_flags = IFF_EBRIDGE | IFF_NO_QUEUE;
dev->lltx = true;
dev->netns_local = true;
dev->netns_immutable = true;

dev->features = COMMON_FEATURES | NETIF_F_HW_VLAN_CTAG_TX |
NETIF_F_HW_VLAN_STAG_TX;
Expand Down
4 changes: 2 additions & 2 deletions net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -12151,7 +12151,7 @@ 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_immutable)
goto out;

/* Ensure the device has been registered */
Expand Down Expand Up @@ -12533,7 +12533,7 @@ static void __net_exit default_device_exit_net(struct net *net)
char fb_name[IFNAMSIZ];

/* Ignore unmoveable devices (i.e. loopback) */
if (dev->netns_local)
if (dev->netns_immutable)
continue;

/* Leave virtual devices for the generic cleanup */
Expand Down
2 changes: 1 addition & 1 deletion net/hsr/hsr_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,7 @@ void hsr_dev_setup(struct net_device *dev)
/* Not sure about this. Taken from bridge code. netdevice.h says
* it means "Does not change network namespaces".
*/
dev->netns_local = true;
dev->netns_immutable = true;

dev->needs_free_netdev = true;

Expand Down
2 changes: 1 addition & 1 deletion net/ieee802154/6lowpan/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ static void lowpan_setup(struct net_device *ldev)
ldev->netdev_ops = &lowpan_netdev_ops;
ldev->header_ops = &lowpan_header_ops;
ldev->needs_free_netdev = true;
ldev->netns_local = true;
ldev->netns_immutable = true;
}

static int lowpan_validate(struct nlattr *tb[], struct nlattr *data[],
Expand Down
10 changes: 5 additions & 5 deletions net/ieee802154/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,11 +226,11 @@ int cfg802154_switch_netns(struct cfg802154_registered_device *rdev,
list_for_each_entry(wpan_dev, &rdev->wpan_dev_list, list) {
if (!wpan_dev->netdev)
continue;
wpan_dev->netdev->netns_local = false;
wpan_dev->netdev->netns_immutable = false;
err = dev_change_net_namespace(wpan_dev->netdev, net, "wpan%d");
if (err)
break;
wpan_dev->netdev->netns_local = true;
wpan_dev->netdev->netns_immutable = true;
}

if (err) {
Expand All @@ -242,11 +242,11 @@ int cfg802154_switch_netns(struct cfg802154_registered_device *rdev,
list) {
if (!wpan_dev->netdev)
continue;
wpan_dev->netdev->netns_local = false;
wpan_dev->netdev->netns_immutable = false;
err = dev_change_net_namespace(wpan_dev->netdev, net,
"wpan%d");
WARN_ON(err);
wpan_dev->netdev->netns_local = true;
wpan_dev->netdev->netns_immutable = true;
}

return err;
Expand Down Expand Up @@ -291,7 +291,7 @@ static int cfg802154_netdev_notifier_call(struct notifier_block *nb,
switch (state) {
/* TODO NETDEV_DEVTYPE */
case NETDEV_REGISTER:
dev->netns_local = true;
dev->netns_immutable = true;
wpan_dev->identifier = ++rdev->wpan_dev_id;
list_add_rcu(&wpan_dev->list, &rdev->wpan_dev_list);
rdev->devlist_generation++;
Expand Down
2 changes: 1 addition & 1 deletion net/ipv4/ip_tunnel.c
Original file line number Diff line number Diff line change
Expand Up @@ -1162,7 +1162,7 @@ int ip_tunnel_init_net(struct net *net, unsigned int ip_tnl_net_id,
* Allowing to move it to another netns is clearly unsafe.
*/
if (!IS_ERR(itn->fb_tunnel_dev)) {
itn->fb_tunnel_dev->netns_local = true;
itn->fb_tunnel_dev->netns_immutable = true;
itn->fb_tunnel_dev->mtu = ip_tunnel_bind_dev(itn->fb_tunnel_dev);
ip_tunnel_add(itn, netdev_priv(itn->fb_tunnel_dev));
itn->type = itn->fb_tunnel_dev->type;
Expand Down
2 changes: 1 addition & 1 deletion net/ipv4/ipmr.c
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ static void reg_vif_setup(struct net_device *dev)
dev->flags = IFF_NOARP;
dev->netdev_ops = &reg_vif_netdev_ops;
dev->needs_free_netdev = true;
dev->netns_local = true;
dev->netns_immutable = true;
}

static struct net_device *ipmr_reg_vif(struct net *net, struct mr_table *mrt)
Expand Down
2 changes: 1 addition & 1 deletion net/ipv6/ip6_gre.c
Original file line number Diff line number Diff line change
Expand Up @@ -1620,7 +1620,7 @@ static int __net_init ip6gre_init_net(struct net *net)
/* FB netdevice is special: we have one, and only one per netns.
* Allowing to move it to another netns is clearly unsafe.
*/
ign->fb_tunnel_dev->netns_local = true;
ign->fb_tunnel_dev->netns_immutable = true;

ip6gre_fb_tunnel_init(ign->fb_tunnel_dev);
ign->fb_tunnel_dev->rtnl_link_ops = &ip6gre_link_ops;
Expand Down
2 changes: 1 addition & 1 deletion net/ipv6/ip6_tunnel.c
Original file line number Diff line number Diff line change
Expand Up @@ -2265,7 +2265,7 @@ static int __net_init ip6_tnl_init_net(struct net *net)
/* FB netdevice is special: we have one, and only one per netns.
* Allowing to move it to another netns is clearly unsafe.
*/
ip6n->fb_tnl_dev->netns_local = true;
ip6n->fb_tnl_dev->netns_immutable = true;

err = ip6_fb_tnl_dev_init(ip6n->fb_tnl_dev);
if (err < 0)
Expand Down
2 changes: 1 addition & 1 deletion net/ipv6/ip6mr.c
Original file line number Diff line number Diff line change
Expand Up @@ -668,7 +668,7 @@ static void reg_vif_setup(struct net_device *dev)
dev->flags = IFF_NOARP;
dev->netdev_ops = &reg_vif_netdev_ops;
dev->needs_free_netdev = true;
dev->netns_local = true;
dev->netns_immutable = true;
}

static struct net_device *ip6mr_reg_vif(struct net *net, struct mr_table *mrt)
Expand Down
2 changes: 1 addition & 1 deletion net/ipv6/sit.c
Original file line number Diff line number Diff line change
Expand Up @@ -1859,7 +1859,7 @@ static int __net_init sit_init_net(struct net *net)
/* FB netdevice is special: we have one, and only one per netns.
* Allowing to move it to another netns is clearly unsafe.
*/
sitn->fb_tunnel_dev->netns_local = true;
sitn->fb_tunnel_dev->netns_immutable = true;

t = netdev_priv(sitn->fb_tunnel_dev);
t->net = net;
Expand Down
2 changes: 1 addition & 1 deletion net/openvswitch/vport-internal_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ static struct vport *internal_dev_create(const struct vport_parms *parms)

/* Restrict bridge port to current netns. */
if (vport->port_no == OVSP_LOCAL)
vport->dev->netns_local = true;
vport->dev->netns_immutable = true;

rtnl_lock();
err = register_netdevice(vport->dev);
Expand Down
10 changes: 5 additions & 5 deletions net/wireless/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,11 +162,11 @@ int cfg80211_switch_netns(struct cfg80211_registered_device *rdev,
list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) {
if (!wdev->netdev)
continue;
wdev->netdev->netns_local = false;
wdev->netdev->netns_immutable = false;
err = dev_change_net_namespace(wdev->netdev, net, "wlan%d");
if (err)
break;
wdev->netdev->netns_local = true;
wdev->netdev->netns_immutable = true;
}

if (err) {
Expand All @@ -178,11 +178,11 @@ int cfg80211_switch_netns(struct cfg80211_registered_device *rdev,
list) {
if (!wdev->netdev)
continue;
wdev->netdev->netns_local = false;
wdev->netdev->netns_immutable = false;
err = dev_change_net_namespace(wdev->netdev, net,
"wlan%d");
WARN_ON(err);
wdev->netdev->netns_local = true;
wdev->netdev->netns_immutable = true;
}

return err;
Expand Down Expand Up @@ -1513,7 +1513,7 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
SET_NETDEV_DEVTYPE(dev, &wiphy_type);
wdev->netdev = dev;
/* can only change netns with wiphy */
dev->netns_local = true;
dev->netns_immutable = true;

cfg80211_init_wdev(wdev);
break;
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/net/forwarding/README
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ to easily create and test complex environments.

Unfortunately, these namespaces can not be used with actual switching
ASICs, as their ports can not be migrated to other network namespaces
(dev->netns_local) and most of them probably do not support the
(dev->netns_immutable) and most of them probably do not support the
L1-separation provided by namespaces.

However, a similar kind of flexibility can be achieved by using VRFs and
Expand Down

0 comments on commit 0c493da

Please sign in to comment.