Commit 156c6b80 authored by Francesco Ruggeri's avatar Francesco Ruggeri Committed by Greg Kroah-Hartman

net: allow macvlans to move to net namespace

[ Upstream commit 0d0162e7 ]

I cannot move a macvlan interface created on top of a bonding interface
to a different namespace:

% ip netns add dummy0
% ip link add link bond0 mac0 type macvlan
% ip link set mac0 netns dummy0
RTNETLINK answers: Invalid argument
%

The problem seems to be that commit f9399814 ("bonding: Don't allow
bond devices to change network namespaces.") sets NETIF_F_NETNS_LOCAL
on bonding interfaces, and commit 797f87f8 ("macvlan: fix netdev
feature propagation from lower device") causes macvlan interfaces
to inherit its features from the lower device.

NETIF_F_NETNS_LOCAL should not be inherited from the lower device
by a macvlan.
Patch tested on 3.16.
Signed-off-by: default avatarFrancesco Ruggeri <fruggeri@arista.com>
Acked-by: default avatarCong Wang <cwang@twopensource.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c78abd1a
...@@ -800,6 +800,7 @@ static netdev_features_t macvlan_fix_features(struct net_device *dev, ...@@ -800,6 +800,7 @@ static netdev_features_t macvlan_fix_features(struct net_device *dev,
features, features,
mask); mask);
features |= ALWAYS_ON_FEATURES; features |= ALWAYS_ON_FEATURES;
features &= ~NETIF_F_NETNS_LOCAL;
return features; return features;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment