[dpdk-dev] net/bonding: not handle vlan slow packet

Message ID 1477885947-35804-1-git-send-email-haifeng.lin@huawei.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Linhaifeng Oct. 31, 2016, 3:52 a.m. UTC
  From: Haifeng Lin <haifeng.lin@huawei.com>

if rx vlan offload is enable we should not handle vlan slow
packets too.

Signed-off-by: Haifeng Lin <haifeng.lin@huawei.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Ferruh Yigit Nov. 1, 2016, 10:46 a.m. UTC | #1
Hi Haifeng,

On 10/31/2016 3:52 AM, linhaifeng wrote:
> From: Haifeng Lin <haifeng.lin@huawei.com>
> 
> if rx vlan offload is enable we should not handle vlan slow
> packets too.
> 
> Signed-off-by: Haifeng Lin <haifeng.lin@huawei.com>
> ---
>  drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
> index 09ce7bf..ca17898 100644
> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
> @@ -169,7 +169,8 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
>  			/* Remove packet from array if it is slow packet or slave is not
>  			 * in collecting state or bondign interface is not in promiscus
>  			 * mode and packet address does not match. */
> -			if (unlikely(hdr->ether_type == ether_type_slow_be ||
> +			if (unlikely((hdr->ether_type == ether_type_slow_be &&
> +				!bufs[j]->vlan_tci) ||
>  				!collecting || (!promisc &&
>  					!is_multicast_ether_addr(&hdr->d_addr) &&
>  					!is_same_ether_addr(&bond_mac, &hdr->d_addr)))) {
> 

There are a few version of this patch, I guess this one is the correct
one, can you please confirm?
Also this one supersede following one, right?
http://dpdk.org/dev/patchwork/patch/16840/

It helps a lot if you use versioning in the patches [PATCH -vN] and add
a description of changes in commit log (after "---") between patch versions.

Thanks,
ferruh
  
Linhaifeng Nov. 1, 2016, 12:32 p.m. UTC | #2
在 2016/11/1 18:46, Ferruh Yigit 写道:
> Hi Haifeng,
> 
> On 10/31/2016 3:52 AM, linhaifeng wrote:
>> From: Haifeng Lin <haifeng.lin@huawei.com>
>>
>> if rx vlan offload is enable we should not handle vlan slow
>> packets too.
>>
>> Signed-off-by: Haifeng Lin <haifeng.lin@huawei.com>
>> ---
>>  drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
>> index 09ce7bf..ca17898 100644
>> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
>> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
>> @@ -169,7 +169,8 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
>>  			/* Remove packet from array if it is slow packet or slave is not
>>  			 * in collecting state or bondign interface is not in promiscus
>>  			 * mode and packet address does not match. */
>> -			if (unlikely(hdr->ether_type == ether_type_slow_be ||
>> +			if (unlikely((hdr->ether_type == ether_type_slow_be &&
>> +				!bufs[j]->vlan_tci) ||
>>  				!collecting || (!promisc &&
>>  					!is_multicast_ether_addr(&hdr->d_addr) &&
>>  					!is_same_ether_addr(&bond_mac, &hdr->d_addr)))) {
>>
> 
> There are a few version of this patch, I guess this one is the correct
> one, can you please confirm?
> Also this one supersede following one, right?
> http://dpdk.org/dev/patchwork/patch/16840/

yes,this is

> 
> It helps a lot if you use versioning in the patches [PATCH -vN] and add
> a description of changes in commit log (after "---") between patch versions.
> 

ok,i think should not send patch so worry:)

I have a question to ask:
Is there any other packets' type also is 0x8809 except with lacp packets?
I saw some guests try to use this type to check link status between VM
but droped by lacp bond recv function.


> Thanks,
> ferruh
> 
> .
>
  
Linhaifeng Nov. 4, 2016, 3:16 a.m. UTC | #3
Hi,all

please ignore the patch which title is "net/bonding: not handle vlan slow packet",
I will send another one.

在 2016/11/1 20:32, linhaifeng 写道:
> 在 2016/11/1 18:46, Ferruh Yigit 写道:
>> Hi Haifeng,
>>
>> On 10/31/2016 3:52 AM, linhaifeng wrote:
>>> From: Haifeng Lin <haifeng.lin@huawei.com>
>>>
>>> if rx vlan offload is enable we should not handle vlan slow
>>> packets too.
>>>
>>> Signed-off-by: Haifeng Lin <haifeng.lin@huawei.com>
>>> ---
>>>  drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
>>> index 09ce7bf..ca17898 100644
>>> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
>>> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
>>> @@ -169,7 +169,8 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
>>>  			/* Remove packet from array if it is slow packet or slave is not
>>>  			 * in collecting state or bondign interface is not in promiscus
>>>  			 * mode and packet address does not match. */
>>> -			if (unlikely(hdr->ether_type == ether_type_slow_be ||
>>> +			if (unlikely((hdr->ether_type == ether_type_slow_be &&
>>> +				!bufs[j]->vlan_tci) ||
>>>  				!collecting || (!promisc &&
>>>  					!is_multicast_ether_addr(&hdr->d_addr) &&
>>>  					!is_same_ether_addr(&bond_mac, &hdr->d_addr)))) {
>>>
>>
>> There are a few version of this patch, I guess this one is the correct
>> one, can you please confirm?
>> Also this one supersede following one, right?
>> http://dpdk.org/dev/patchwork/patch/16840/
> 
> yes,this is
> 
>>
>> It helps a lot if you use versioning in the patches [PATCH -vN] and add
>> a description of changes in commit log (after "---") between patch versions.
>>
> 
> ok,i think should not send patch so worry:)
> 
> I have a question to ask:
> Is there any other packets' type also is 0x8809 except with lacp packets?
> I saw some guests try to use this type to check link status between VM
> but droped by lacp bond recv function.
> 
> 
>> Thanks,
>> ferruh
>>
>> .
>>
>
  

Patch

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 09ce7bf..ca17898 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -169,7 +169,8 @@  bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
 			/* Remove packet from array if it is slow packet or slave is not
 			 * in collecting state or bondign interface is not in promiscus
 			 * mode and packet address does not match. */
-			if (unlikely(hdr->ether_type == ether_type_slow_be ||
+			if (unlikely((hdr->ether_type == ether_type_slow_be &&
+				!bufs[j]->vlan_tci) ||
 				!collecting || (!promisc &&
 					!is_multicast_ether_addr(&hdr->d_addr) &&
 					!is_same_ether_addr(&bond_mac, &hdr->d_addr)))) {