From: Vlad Yasevich <vyasevich@gmail.com>
To: Cong Wang <cwang@twopensource.com>
Cc: Florian Westphal <fw@strlen.de>,
Francesco Ruggeri <fruggeri@arista.com>,
netdev <netdev@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Weilong Chen <chenweilong@huawei.com>
Subject: Re: Cannot move macvlan interface on top of bonding device
Date: Wed, 17 Sep 2014 16:51:53 -0400 [thread overview]
Message-ID: <5419F469.70700@gmail.com> (raw)
In-Reply-To: <CAHA+R7M5+1gbfx7pv=bPdNempL1eeXRu-J79c29z1k6Mr-aXfA@mail.gmail.com>
On 09/17/2014 04:46 PM, Cong Wang wrote:
> On Wed, Sep 17, 2014 at 1:39 PM, Vlad Yasevich <vyasevich@gmail.com> wrote:
>> On 09/17/2014 03:06 PM, Florian Westphal wrote:
>>> Cong Wang <cwang@twopensource.com> wrote:
>>>> On Wed, Sep 17, 2014 at 8:56 AM, Francesco Ruggeri <fruggeri@arista.com> wrote:
>>>>> This used to work in older releases.
>>>>> The problem seems to be that commit f939981492 sets NETIF_F_NETNS_LOCAL
>>>>> on bonding interfaces, and commit 797f87f83 causes macvlan interfaces
>>>>> to inherit its features from the lower device.
>>>>>
>>>>> Is there a reason why NETIF_F_NETNS_LOCAL should be inherited from the
>>>>> lower device
>>>>> by macvlan interfaces?
>>>>
>>>> commit 797f87f83 looks wrong, it should not inherit NETIF_F_NETNS_LOCAL,
>>>> so just clear this flag. Please submit a patch.
>>>
>>> Under which conditions would NETIF_F_NETNS_LOCAL have to be inherited?
>>> (i.e., why is it inheritable in the first place?)
>>
>> macvlan code calls
>> features = netdev_increment_features(vlan->lowerdev->features,
>> features,
>> mask);
>>
>> where lowerdev->features contains the NETIF_F_NETNS_LOCAL bit. That
>> bit is not set in features or in mask. It is also not one of the ALL_FOR_ALL
>> bits so it's not turned off.
>>
>> As an example, here are the values from a quit test I ran:
>>
>> bond features = 0x400f3888
>> features = 0x3b5a09 (mask is the same).
>> incremented features = 0x41bf389
>>
>> NETIF_F_NETNS_LOCAL is still on.
>
No, it is not. NETIF_F_NETNS_LOCAL is bit 13 and that's off. Bits
14 (GRO) and 12 (LLTX) are set.
-vlad
> I think the comment on netdev_increment_features() is clear:
>
> * Computes a new feature set after adding a device with feature set
> * @one to the master device with current feature set @all. Will not
> * enable anything that is off in @mask. Returns the new feature set.
>
> And NETIF_F_NETNS_LOCAL is on in mask.
>
>>
>> May be a better solution is:
>>
>> features = netdev_increment_features(vlan->lowerdev->features & MACVLAN_FEATURS,
>> features,
>> mask);
>>
>> This way we start with only the feature MACVLAN is interested in.
>>
>
> Or clear it in mask?
>
next prev parent reply other threads:[~2014-09-17 20:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-17 15:56 Cannot move macvlan interface on top of bonding device Francesco Ruggeri
2014-09-17 16:46 ` Cong Wang
2014-09-17 19:06 ` Florian Westphal
2014-09-17 20:25 ` Cong Wang
2014-09-17 20:39 ` Vlad Yasevich
2014-09-17 20:46 ` Cong Wang
2014-09-17 20:49 ` Francesco Ruggeri
2014-09-17 20:51 ` Vlad Yasevich [this message]
2014-09-17 21:28 ` Florian Westphal
-- strict thread matches above, loose matches on Subject: below --
2014-09-18 17:36 Francesco Ruggeri
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5419F469.70700@gmail.com \
--to=vyasevich@gmail.com \
--cc=chenweilong@huawei.com \
--cc=cwang@twopensource.com \
--cc=davem@davemloft.net \
--cc=fruggeri@arista.com \
--cc=fw@strlen.de \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.