diff mbox

[1/1] net: allow macvlans to move to net namespace

Message ID 20140917181227.09F4E480087@fruggeri-Arora18.sjc.aristanetworks.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Francesco Ruggeri Sept. 17, 2014, 6:12 p.m. UTC
From 6dad8398aee7fec77838ad591871745508ed481d Mon Sep 17 00:00:00 2001
From: Francesco Ruggeri <fruggeri@arista.com>
Date: Wed, 17 Sep 2014 10:40:44 -0700
Subject: [PATCH 1/1] net: allow macvlans to move to net namespace

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 f9399814927a ("bonding: Don't allow
bond devices to change network namespaces.") sets NETIF_F_NETNS_LOCAL
on bonding interfaces, and commit 797f87f83b60 ("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: Francesco Ruggeri <fruggeri@arista.com>
---
 drivers/net/macvlan.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Cong Wang Sept. 17, 2014, 8:55 p.m. UTC | #1
On Wed, Sep 17, 2014 at 11:12 AM, Francesco Ruggeri
<fruggeri@aristanetworks.com> wrote:
> diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
> index a969555..7652fd1 100644
> --- a/drivers/net/macvlan.c
> +++ b/drivers/net/macvlan.c
> @@ -806,6 +806,7 @@ static netdev_features_t macvlan_fix_features(struct net_device *dev,
>                                              features,
>                                              mask);
>         features |= ALWAYS_ON_FEATURES;
> +       features &= ~NETIF_F_NETNS_LOCAL;
>
>         return features;
>  }


Even if we have some other way to clear this flag (maybe clearing it
in mask etc.),
explicitly clearing it is more readable, I don't want to spin my head to
read netdev_increment_features(), so,

Acked-by: Cong Wang <cwang@twopensource.com>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Sept. 19, 2014, 9:07 p.m. UTC | #2
From: fruggeri@aristanetworks.com (Francesco Ruggeri)
Date: Wed, 17 Sep 2014 11:12:27 -0700

> From 6dad8398aee7fec77838ad591871745508ed481d Mon Sep 17 00:00:00 2001
> From: Francesco Ruggeri <fruggeri@arista.com>
> Date: Wed, 17 Sep 2014 10:40:44 -0700
> Subject: [PATCH 1/1] net: allow macvlans to move to net namespace
> 
> 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 f9399814927a ("bonding: Don't allow
> bond devices to change network namespaces.") sets NETIF_F_NETNS_LOCAL
> on bonding interfaces, and commit 797f87f83b60 ("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: Francesco Ruggeri <fruggeri@arista.com>

Applied and queued up for -stable, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index a969555..7652fd1 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -806,6 +806,7 @@  static netdev_features_t macvlan_fix_features(struct net_device *dev,
 					     features,
 					     mask);
 	features |= ALWAYS_ON_FEATURES;
+	features &= ~NETIF_F_NETNS_LOCAL;
 
 	return features;
 }