net/bonding: add support to match on 0x88A8 ethertype

Message ID 1533629446-5712-1-git-send-email-wangyunjian@huawei.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/bonding: add support to match on 0x88A8 ethertype |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Yunjian Wang Aug. 7, 2018, 8:10 a.m. UTC
  From: Yunjian Wang <wangyunjian@huawei.com>

We assume VLAN ethtertype is 0x8100 in get_vlan_offset() function,
but it could be 0x88A8 if QinQ is supported.

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

Comments

Chas Williams Aug. 16, 2018, 12:56 p.m. UTC | #1
On Tue, Aug 7, 2018 at 4:11 AM wangyunjian <wangyunjian@huawei.com> wrote:

> From: Yunjian Wang <wangyunjian@huawei.com>
>
> We assume VLAN ethtertype is 0x8100 in get_vlan_offset() function,
> but it could be 0x88A8 if QinQ is supported.
>
> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
>

Acked-by: Chas Williams <chas3@att.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 58f7377..4417422 100644
> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
> @@ -37,7 +37,8 @@
>  {
>         size_t vlan_offset = 0;
>
> -       if (rte_cpu_to_be_16(ETHER_TYPE_VLAN) == *proto) {
> +       if (rte_cpu_to_be_16(ETHER_TYPE_VLAN) == *proto ||
> +               rte_cpu_to_be_16(ETHER_TYPE_QINQ) == *proto) {
>                 struct vlan_hdr *vlan_hdr = (struct vlan_hdr *)(eth_hdr +
> 1);
>
>                 vlan_offset = sizeof(struct vlan_hdr);
> --
> 1.8.3.1
>
>
>
  
Ferruh Yigit Aug. 23, 2018, 1:38 p.m. UTC | #2
On 8/16/2018 1:56 PM, Chas Williams wrote:
> On Tue, Aug 7, 2018 at 4:11 AM wangyunjian <wangyunjian@huawei.com> wrote:
> 
>> From: Yunjian Wang <wangyunjian@huawei.com>
>>
>> We assume VLAN ethtertype is 0x8100 in get_vlan_offset() function,
>> but it could be 0x88A8 if QinQ is supported.
>>
>> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
>>
> 
> Acked-by: Chas Williams <chas3@att.com>

    Fixes: 06fe78b98ccd ("bond: add mode 6")
    Cc: stable@dpdk.org

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 58f7377..4417422 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -37,7 +37,8 @@ 
 {
 	size_t vlan_offset = 0;
 
-	if (rte_cpu_to_be_16(ETHER_TYPE_VLAN) == *proto) {
+	if (rte_cpu_to_be_16(ETHER_TYPE_VLAN) == *proto ||
+		rte_cpu_to_be_16(ETHER_TYPE_QINQ) == *proto) {
 		struct vlan_hdr *vlan_hdr = (struct vlan_hdr *)(eth_hdr + 1);
 
 		vlan_offset = sizeof(struct vlan_hdr);