cxgb4: offload VLAN flows regardless of VLAN ethtype
authorRaju Rangoju <rajur@chelsio.com>
Thu, 23 May 2019 15:11:44 +0000 (20:41 +0530)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 May 2019 16:38:54 +0000 (09:38 -0700)
VLAN flows never get offloaded unless ivlan_vld is set in filter spec.
It's not compulsory for vlan_ethtype to be set.

So, always enable ivlan_vld bit for offloading VLAN flows regardless of
vlan_ethtype is set or not.

Fixes: ad9af3e09c (cxgb4: add tc flower match support for vlan)
Signed-off-by: Raju Rangoju <rajur@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c

index 6e2d80008a79497bcc8b1bcb9206220d6308019c..cfaf8f618d1f3336878727f04ad11d6bf9b45989 100644 (file)
@@ -197,6 +197,9 @@ static void cxgb4_process_flow_match(struct net_device *dev,
                fs->val.ivlan = vlan_tci;
                fs->mask.ivlan = vlan_tci_mask;
 
+               fs->val.ivlan_vld = 1;
+               fs->mask.ivlan_vld = 1;
+
                /* Chelsio adapters use ivlan_vld bit to match vlan packets
                 * as 802.1Q. Also, when vlan tag is present in packets,
                 * ethtype match is used then to match on ethtype of inner
@@ -207,8 +210,6 @@ static void cxgb4_process_flow_match(struct net_device *dev,
                 * ethtype value with ethtype of inner header.
                 */
                if (fs->val.ethtype == ETH_P_8021Q) {
-                       fs->val.ivlan_vld = 1;
-                       fs->mask.ivlan_vld = 1;
                        fs->val.ethtype = 0;
                        fs->mask.ethtype = 0;
                }