From: Jiri Pirko <jiri@resnulli.us>
To: mirq-linux@rere.qmqm.pl
Cc: YueHaibing <yuehaibing@huawei.com>,
davem@davemloft.net, sdf@google.com, jianbol@mellanox.com,
jiri@mellanox.com, willemb@google.com, sdf@fomichev.me,
j.vosburgh@gmail.com, vfalico@gmail.com, andy@greyhouse.net,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH] bonding: Always enable vlan tx offload
Date: Wed, 26 Jun 2019 18:48:53 +0200 [thread overview]
Message-ID: <20190626164853.GC2424@nanopsycho> (raw)
In-Reply-To: <20190626161337.GA18953@qmqm.qmqm.pl>
Wed, Jun 26, 2019 at 06:13:38PM CEST, mirq-linux@rere.qmqm.pl wrote:
>On Wed, Jun 26, 2019 at 04:08:44PM +0800, YueHaibing wrote:
>> We build vlan on top of bonding interface, which vlan offload
>> is off, bond mode is 802.3ad (LACP) and xmit_hash_policy is
>> BOND_XMIT_POLICY_ENCAP34.
>>
>> Because vlan tx offload is off, vlan tci is cleared and skb push
>> the vlan header in validate_xmit_vlan() while sending from vlan
>> devices. Then in bond_xmit_hash, __skb_flow_dissect() fails to
>> get information from protocol headers encapsulated within vlan,
>> because 'nhoff' is points to IP header, so bond hashing is based
>> on layer 2 info, which fails to distribute packets across slaves.
>>
>> This patch always enable bonding's vlan tx offload, pass the vlan
>> packets to the slave devices with vlan tci, let them to handle
>> vlan implementation.
>[...]
>> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
>> index 407f4095a37a..799fc38c5c34 100644
>> --- a/drivers/net/bonding/bond_main.c
>> +++ b/drivers/net/bonding/bond_main.c
>> @@ -4320,12 +4320,12 @@ void bond_setup(struct net_device *bond_dev)
>> bond_dev->features |= NETIF_F_NETNS_LOCAL;
>>
>> bond_dev->hw_features = BOND_VLAN_FEATURES |
>> - NETIF_F_HW_VLAN_CTAG_TX |
>> NETIF_F_HW_VLAN_CTAG_RX |
>> NETIF_F_HW_VLAN_CTAG_FILTER;
>>
>> bond_dev->hw_features |= NETIF_F_GSO_ENCAP_ALL | NETIF_F_GSO_UDP_L4;
>> bond_dev->features |= bond_dev->hw_features;
>> + bond_dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX;
>> }
>>
>> /* Destroy a bonding device.
>>
>
>I can see that bonding driver uses dev_queue_xmit() to pass packets to
>slave links, but I can't see where in the path it does software fallback
>for devices without HW VLAN tagging. Generally drivers that don't ever
>do VLAN offload also ignore vlan_tci presence. Am I missing something
>here?
validate_xmit_skb->validate_xmit_vlan
>
>Best Regards,
>Michał Mirosław
next prev parent reply other threads:[~2019-06-26 16:48 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-19 16:01 [PATCH] flow_dissector: Fix vlan header offset in __skb_flow_dissect YueHaibing
2019-06-19 18:39 ` Stanislav Fomichev
2019-06-20 7:20 ` Jiri Pirko
2019-06-20 10:02 ` Yuehaibing
2019-06-21 0:33 ` Stanislav Fomichev
2019-06-24 13:50 ` Jiri Pirko
2019-06-26 8:08 ` [PATCH] bonding: Always enable vlan tx offload YueHaibing
2019-06-26 15:25 ` Jiri Pirko
2019-06-26 15:29 ` Yuehaibing
2019-06-26 16:13 ` mirq-linux
2019-06-26 16:48 ` Jiri Pirko [this message]
2019-06-26 16:03 ` [PATCH] team: " YueHaibing
2019-06-26 17:14 ` David Miller
2019-06-22 23:19 ` [PATCH] flow_dissector: Fix vlan header offset in __skb_flow_dissect David Miller
2019-06-24 3:49 ` [PATCH v2] " YueHaibing
2019-06-27 2:28 ` David Miller
2019-06-27 7:44 ` Jiri Pirko
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=20190626164853.GC2424@nanopsycho \
--to=jiri@resnulli.us \
--cc=andy@greyhouse.net \
--cc=davem@davemloft.net \
--cc=j.vosburgh@gmail.com \
--cc=jianbol@mellanox.com \
--cc=jiri@mellanox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mirq-linux@rere.qmqm.pl \
--cc=netdev@vger.kernel.org \
--cc=sdf@fomichev.me \
--cc=sdf@google.com \
--cc=vfalico@gmail.com \
--cc=willemb@google.com \
--cc=yuehaibing@huawei.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).