net/ixgbe: support xcast promisc mode
authorWenzhuo Lu <wenzhuo.lu@intel.com>
Wed, 1 Mar 2017 06:04:50 +0000 (14:04 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 4 Apr 2017 13:52:51 +0000 (15:52 +0200)
Add the support of xcast promiscuous mode. It's
added in mailbox v1.3.
Move the definition of xcast mode to base code.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
drivers/net/ixgbe/base/ixgbe_mbx.h
drivers/net/ixgbe/base/ixgbe_vf.c
drivers/net/ixgbe/ixgbe_ethdev.c

index 7556a81..bde50a5 100644 (file)
@@ -114,6 +114,14 @@ enum ixgbe_pfvf_api_rev {
 #define IXGBE_VF_GET_RSS_KEY   0x0b    /* get RSS key */
 #define IXGBE_VF_UPDATE_XCAST_MODE     0x0c
 
+/* mode choices for IXGBE_VF_UPDATE_XCAST_MODE */
+enum ixgbevf_xcast_modes {
+       IXGBEVF_XCAST_MODE_NONE = 0,
+       IXGBEVF_XCAST_MODE_MULTI,
+       IXGBEVF_XCAST_MODE_ALLMULTI,
+       IXGBEVF_XCAST_MODE_PROMISC,
+};
+
 /* GET_QUEUES return data indices within the mailbox */
 #define IXGBE_VF_TX_QUEUES     1       /* number of Tx queues supported */
 #define IXGBE_VF_RX_QUEUES     2       /* number of Rx queues supported */
index 8775ee5..b513190 100644 (file)
@@ -432,6 +432,10 @@ s32 ixgbevf_update_xcast_mode(struct ixgbe_hw *hw, int xcast_mode)
 
        switch (hw->api_version) {
        case ixgbe_mbox_api_12:
+               /* New modes were introduced in 1.3 version */
+               if (xcast_mode > IXGBEVF_XCAST_MODE_ALLMULTI)
+                       return IXGBE_ERR_FEATURE_NOT_SUPPORTED;
+               /* Fall through */
        case ixgbe_mbox_api_13:
                break;
        default:
index 34bd681..ddcd279 100644 (file)
 #define IXGBE_QDE_STRIP_TAG                    0x00000004
 #define IXGBE_VTEICR_MASK                      0x07
 
-enum ixgbevf_xcast_modes {
-       IXGBEVF_XCAST_MODE_NONE = 0,
-       IXGBEVF_XCAST_MODE_MULTI,
-       IXGBEVF_XCAST_MODE_ALLMULTI,
-};
-
 #define IXGBE_EXVET_VET_EXT_SHIFT              16
 #define IXGBE_DMATXCTL_VT_MASK                 0xFFFF0000