net/ixgbe: fix flow director mask
authorWenzhuo Lu <wenzhuo.lu@intel.com>
Wed, 19 Oct 2016 01:22:58 +0000 (09:22 +0800)
committerBruce Richardson <bruce.richardson@intel.com>
Wed, 26 Oct 2016 17:38:18 +0000 (19:38 +0200)
In mac-vlan mode, MAC address mask is not supported by HW.
The MAC address mask should not be set in mac-vlan mode.
Instead, only set it in tunnel mode.

Fixes: 82fb702077f6 ("ixgbe: support new flow director modes for X550")

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
drivers/net/ixgbe/ixgbe_fdir.c

index 861c7cb..4b81ee3 100644 (file)
@@ -432,12 +432,12 @@ fdir_set_input_mask_x550(struct rte_eth_dev *dev,
                fdiripv6m |= IXGBE_FDIRIP6M_TUNNEL_TYPE |
                                IXGBE_FDIRIP6M_TNI_VNI;
 
-       mac_mask = input_mask->mac_addr_byte_mask;
-       fdiripv6m |= (mac_mask << IXGBE_FDIRIP6M_INNER_MAC_SHIFT)
-                       & IXGBE_FDIRIP6M_INNER_MAC;
-       info->mask.mac_addr_byte_mask = input_mask->mac_addr_byte_mask;
-
        if (mode == RTE_FDIR_MODE_PERFECT_TUNNEL) {
+               mac_mask = input_mask->mac_addr_byte_mask;
+               fdiripv6m |= (mac_mask << IXGBE_FDIRIP6M_INNER_MAC_SHIFT)
+                               & IXGBE_FDIRIP6M_INNER_MAC;
+               info->mask.mac_addr_byte_mask = input_mask->mac_addr_byte_mask;
+
                switch (input_mask->tunnel_type_mask) {
                case 0:
                        /* Mask turnnel type */