ethdev: introduce dump API
[dpdk.git] / lib / ethdev / rte_ethdev.h
index 5a26bfb..c2d1f9a 100644 (file)
  *     - flow director filtering mode (but not filtering rules)
  *     - NIC queue statistics mappings
  *
+ * The following configuration may be retained or not
+ * depending on the device capabilities:
+ *
+ *     - flow rules
+ *     - flow-related shared objects, e.g. indirect actions
+ *
  * Any other configuration will not be stored and will need to be re-entered
  * before a call to rte_eth_dev_start().
  *
@@ -282,76 +288,78 @@ struct rte_eth_stats {
  * Device supported speeds bitmap flags
  */
 #define RTE_ETH_LINK_SPEED_AUTONEG 0             /**< Autonegotiate (all speeds) */
-#define ETH_LINK_SPEED_AUTONEG     RTE_ETH_LINK_SPEED_AUTONEG
 #define RTE_ETH_LINK_SPEED_FIXED   RTE_BIT32(0)  /**< Disable autoneg (fixed speed) */
-#define ETH_LINK_SPEED_FIXED       RTE_ETH_LINK_SPEED_FIXED
 #define RTE_ETH_LINK_SPEED_10M_HD  RTE_BIT32(1)  /**<  10 Mbps half-duplex */
-#define ETH_LINK_SPEED_10M_HD      RTE_ETH_LINK_SPEED_10M_HD
 #define RTE_ETH_LINK_SPEED_10M     RTE_BIT32(2)  /**<  10 Mbps full-duplex */
-#define ETH_LINK_SPEED_10M         RTE_ETH_LINK_SPEED_10M
 #define RTE_ETH_LINK_SPEED_100M_HD RTE_BIT32(3)  /**< 100 Mbps half-duplex */
-#define ETH_LINK_SPEED_100M_HD     RTE_ETH_LINK_SPEED_100M_HD
 #define RTE_ETH_LINK_SPEED_100M    RTE_BIT32(4)  /**< 100 Mbps full-duplex */
-#define ETH_LINK_SPEED_100M        RTE_ETH_LINK_SPEED_100M
 #define RTE_ETH_LINK_SPEED_1G      RTE_BIT32(5)  /**<   1 Gbps */
-#define ETH_LINK_SPEED_1G          RTE_ETH_LINK_SPEED_1G
 #define RTE_ETH_LINK_SPEED_2_5G    RTE_BIT32(6)  /**< 2.5 Gbps */
-#define ETH_LINK_SPEED_2_5G        RTE_ETH_LINK_SPEED_2_5G
 #define RTE_ETH_LINK_SPEED_5G      RTE_BIT32(7)  /**<   5 Gbps */
-#define ETH_LINK_SPEED_5G          RTE_ETH_LINK_SPEED_5G
 #define RTE_ETH_LINK_SPEED_10G     RTE_BIT32(8)  /**<  10 Gbps */
-#define ETH_LINK_SPEED_10G         RTE_ETH_LINK_SPEED_10G
 #define RTE_ETH_LINK_SPEED_20G     RTE_BIT32(9)  /**<  20 Gbps */
-#define ETH_LINK_SPEED_20G         RTE_ETH_LINK_SPEED_20G
 #define RTE_ETH_LINK_SPEED_25G     RTE_BIT32(10) /**<  25 Gbps */
-#define ETH_LINK_SPEED_25G         RTE_ETH_LINK_SPEED_25G
 #define RTE_ETH_LINK_SPEED_40G     RTE_BIT32(11) /**<  40 Gbps */
-#define ETH_LINK_SPEED_40G         RTE_ETH_LINK_SPEED_40G
 #define RTE_ETH_LINK_SPEED_50G     RTE_BIT32(12) /**<  50 Gbps */
-#define ETH_LINK_SPEED_50G         RTE_ETH_LINK_SPEED_50G
 #define RTE_ETH_LINK_SPEED_56G     RTE_BIT32(13) /**<  56 Gbps */
-#define ETH_LINK_SPEED_56G         RTE_ETH_LINK_SPEED_56G
 #define RTE_ETH_LINK_SPEED_100G    RTE_BIT32(14) /**< 100 Gbps */
-#define ETH_LINK_SPEED_100G        RTE_ETH_LINK_SPEED_100G
 #define RTE_ETH_LINK_SPEED_200G    RTE_BIT32(15) /**< 200 Gbps */
-#define ETH_LINK_SPEED_200G        RTE_ETH_LINK_SPEED_200G
 /**@}*/
 
+#define ETH_LINK_SPEED_AUTONEG RTE_DEPRECATED(ETH_LINK_SPEED_AUTONEG) RTE_ETH_LINK_SPEED_AUTONEG
+#define ETH_LINK_SPEED_FIXED   RTE_DEPRECATED(ETH_LINK_SPEED_FIXED)   RTE_ETH_LINK_SPEED_FIXED
+#define ETH_LINK_SPEED_10M_HD  RTE_DEPRECATED(ETH_LINK_SPEED_10M_HD)  RTE_ETH_LINK_SPEED_10M_HD
+#define ETH_LINK_SPEED_10M     RTE_DEPRECATED(ETH_LINK_SPEED_10M)     RTE_ETH_LINK_SPEED_10M
+#define ETH_LINK_SPEED_100M_HD RTE_DEPRECATED(ETH_LINK_SPEED_100M_HD) RTE_ETH_LINK_SPEED_100M_HD
+#define ETH_LINK_SPEED_100M    RTE_DEPRECATED(ETH_LINK_SPEED_100M)    RTE_ETH_LINK_SPEED_100M
+#define ETH_LINK_SPEED_1G      RTE_DEPRECATED(ETH_LINK_SPEED_1G)      RTE_ETH_LINK_SPEED_1G
+#define ETH_LINK_SPEED_2_5G    RTE_DEPRECATED(ETH_LINK_SPEED_2_5G)    RTE_ETH_LINK_SPEED_2_5G
+#define ETH_LINK_SPEED_5G      RTE_DEPRECATED(ETH_LINK_SPEED_5G)      RTE_ETH_LINK_SPEED_5G
+#define ETH_LINK_SPEED_10G     RTE_DEPRECATED(ETH_LINK_SPEED_10G)     RTE_ETH_LINK_SPEED_10G
+#define ETH_LINK_SPEED_20G     RTE_DEPRECATED(ETH_LINK_SPEED_20G)     RTE_ETH_LINK_SPEED_20G
+#define ETH_LINK_SPEED_25G     RTE_DEPRECATED(ETH_LINK_SPEED_25G)     RTE_ETH_LINK_SPEED_25G
+#define ETH_LINK_SPEED_40G     RTE_DEPRECATED(ETH_LINK_SPEED_40G)     RTE_ETH_LINK_SPEED_40G
+#define ETH_LINK_SPEED_50G     RTE_DEPRECATED(ETH_LINK_SPEED_50G)     RTE_ETH_LINK_SPEED_50G
+#define ETH_LINK_SPEED_56G     RTE_DEPRECATED(ETH_LINK_SPEED_56G)     RTE_ETH_LINK_SPEED_56G
+#define ETH_LINK_SPEED_100G    RTE_DEPRECATED(ETH_LINK_SPEED_100G)    RTE_ETH_LINK_SPEED_100G
+#define ETH_LINK_SPEED_200G    RTE_DEPRECATED(ETH_LINK_SPEED_200G)    RTE_ETH_LINK_SPEED_200G
+
 /**@{@name Link speed
  * Ethernet numeric link speeds in Mbps
  */
 #define RTE_ETH_SPEED_NUM_NONE         0 /**< Not defined */
-#define ETH_SPEED_NUM_NONE        RTE_ETH_SPEED_NUM_NONE
 #define RTE_ETH_SPEED_NUM_10M         10 /**<  10 Mbps */
-#define ETH_SPEED_NUM_10M         RTE_ETH_SPEED_NUM_10M
 #define RTE_ETH_SPEED_NUM_100M       100 /**< 100 Mbps */
-#define ETH_SPEED_NUM_100M        RTE_ETH_SPEED_NUM_100M
 #define RTE_ETH_SPEED_NUM_1G        1000 /**<   1 Gbps */
-#define ETH_SPEED_NUM_1G          RTE_ETH_SPEED_NUM_1G
 #define RTE_ETH_SPEED_NUM_2_5G      2500 /**< 2.5 Gbps */
-#define ETH_SPEED_NUM_2_5G        RTE_ETH_SPEED_NUM_2_5G
 #define RTE_ETH_SPEED_NUM_5G        5000 /**<   5 Gbps */
-#define ETH_SPEED_NUM_5G          RTE_ETH_SPEED_NUM_5G
 #define RTE_ETH_SPEED_NUM_10G      10000 /**<  10 Gbps */
-#define ETH_SPEED_NUM_10G         RTE_ETH_SPEED_NUM_10G
 #define RTE_ETH_SPEED_NUM_20G      20000 /**<  20 Gbps */
-#define ETH_SPEED_NUM_20G         RTE_ETH_SPEED_NUM_20G
 #define RTE_ETH_SPEED_NUM_25G      25000 /**<  25 Gbps */
-#define ETH_SPEED_NUM_25G         RTE_ETH_SPEED_NUM_25G
 #define RTE_ETH_SPEED_NUM_40G      40000 /**<  40 Gbps */
-#define ETH_SPEED_NUM_40G         RTE_ETH_SPEED_NUM_40G
 #define RTE_ETH_SPEED_NUM_50G      50000 /**<  50 Gbps */
-#define ETH_SPEED_NUM_50G         RTE_ETH_SPEED_NUM_50G
 #define RTE_ETH_SPEED_NUM_56G      56000 /**<  56 Gbps */
-#define ETH_SPEED_NUM_56G         RTE_ETH_SPEED_NUM_56G
 #define RTE_ETH_SPEED_NUM_100G    100000 /**< 100 Gbps */
-#define ETH_SPEED_NUM_100G        RTE_ETH_SPEED_NUM_100G
 #define RTE_ETH_SPEED_NUM_200G    200000 /**< 200 Gbps */
-#define ETH_SPEED_NUM_200G        RTE_ETH_SPEED_NUM_200G
 #define RTE_ETH_SPEED_NUM_UNKNOWN UINT32_MAX /**< Unknown */
-#define ETH_SPEED_NUM_UNKNOWN     RTE_ETH_SPEED_NUM_UNKNOWN
 /**@}*/
 
+#define ETH_SPEED_NUM_NONE    RTE_DEPRECATED(ETH_SPEED_NUM_NONE)    RTE_ETH_SPEED_NUM_NONE
+#define ETH_SPEED_NUM_10M     RTE_DEPRECATED(ETH_SPEED_NUM_10M)     RTE_ETH_SPEED_NUM_10M
+#define ETH_SPEED_NUM_100M    RTE_DEPRECATED(ETH_SPEED_NUM_100M)    RTE_ETH_SPEED_NUM_100M
+#define ETH_SPEED_NUM_1G      RTE_DEPRECATED(ETH_SPEED_NUM_1G)      RTE_ETH_SPEED_NUM_1G
+#define ETH_SPEED_NUM_2_5G    RTE_DEPRECATED(ETH_SPEED_NUM_2_5G)    RTE_ETH_SPEED_NUM_2_5G
+#define ETH_SPEED_NUM_5G      RTE_DEPRECATED(ETH_SPEED_NUM_5G)      RTE_ETH_SPEED_NUM_5G
+#define ETH_SPEED_NUM_10G     RTE_DEPRECATED(ETH_SPEED_NUM_10G)     RTE_ETH_SPEED_NUM_10G
+#define ETH_SPEED_NUM_20G     RTE_DEPRECATED(ETH_SPEED_NUM_20G)     RTE_ETH_SPEED_NUM_20G
+#define ETH_SPEED_NUM_25G     RTE_DEPRECATED(ETH_SPEED_NUM_25G)     RTE_ETH_SPEED_NUM_25G
+#define ETH_SPEED_NUM_40G     RTE_DEPRECATED(ETH_SPEED_NUM_40G)     RTE_ETH_SPEED_NUM_40G
+#define ETH_SPEED_NUM_50G     RTE_DEPRECATED(ETH_SPEED_NUM_50G)     RTE_ETH_SPEED_NUM_50G
+#define ETH_SPEED_NUM_56G     RTE_DEPRECATED(ETH_SPEED_NUM_56G)     RTE_ETH_SPEED_NUM_56G
+#define ETH_SPEED_NUM_100G    RTE_DEPRECATED(ETH_SPEED_NUM_100G)    RTE_ETH_SPEED_NUM_100G
+#define ETH_SPEED_NUM_200G    RTE_DEPRECATED(ETH_SPEED_NUM_200G)    RTE_ETH_SPEED_NUM_200G
+#define ETH_SPEED_NUM_UNKNOWN RTE_DEPRECATED(ETH_SPEED_NUM_UNKNOWN) RTE_ETH_SPEED_NUM_UNKNOWN
+
 /**
  * A structure used to retrieve link-level information of an Ethernet port.
  */
@@ -367,20 +375,21 @@ struct rte_eth_link {
  * Constants used in link management.
  */
 #define RTE_ETH_LINK_HALF_DUPLEX 0 /**< Half-duplex connection (see link_duplex). */
-#define ETH_LINK_HALF_DUPLEX     RTE_ETH_LINK_HALF_DUPLEX
 #define RTE_ETH_LINK_FULL_DUPLEX 1 /**< Full-duplex connection (see link_duplex). */
-#define ETH_LINK_FULL_DUPLEX     RTE_ETH_LINK_FULL_DUPLEX
 #define RTE_ETH_LINK_DOWN        0 /**< Link is down (see link_status). */
-#define ETH_LINK_DOWN            RTE_ETH_LINK_DOWN
 #define RTE_ETH_LINK_UP          1 /**< Link is up (see link_status). */
-#define ETH_LINK_UP              RTE_ETH_LINK_UP
 #define RTE_ETH_LINK_FIXED       0 /**< No autonegotiation (see link_autoneg). */
-#define ETH_LINK_FIXED           RTE_ETH_LINK_FIXED
 #define RTE_ETH_LINK_AUTONEG     1 /**< Autonegotiated (see link_autoneg). */
-#define ETH_LINK_AUTONEG         RTE_ETH_LINK_AUTONEG
 #define RTE_ETH_LINK_MAX_STR_LEN 40 /**< Max length of default link string. */
 /**@}*/
 
+#define ETH_LINK_HALF_DUPLEX RTE_DEPRECATED(ETH_LINK_HALF_DUPLEX) RTE_ETH_LINK_HALF_DUPLEX
+#define ETH_LINK_FULL_DUPLEX RTE_DEPRECATED(ETH_LINK_FULL_DUPLEX) RTE_ETH_LINK_FULL_DUPLEX
+#define ETH_LINK_DOWN        RTE_DEPRECATED(ETH_LINK_DOWN)        RTE_ETH_LINK_DOWN
+#define ETH_LINK_UP          RTE_DEPRECATED(ETH_LINK_UP)          RTE_ETH_LINK_UP
+#define ETH_LINK_FIXED       RTE_DEPRECATED(ETH_LINK_FIXED)       RTE_ETH_LINK_FIXED
+#define ETH_LINK_AUTONEG     RTE_DEPRECATED(ETH_LINK_AUTONEG)     RTE_ETH_LINK_AUTONEG
+
 /**
  * A structure used to configure the ring threshold registers of an Rx/Tx
  * queue for an Ethernet port.
@@ -395,13 +404,14 @@ struct rte_eth_thresh {
  * @see rte_eth_conf.rxmode.mq_mode.
  */
 #define RTE_ETH_MQ_RX_RSS_FLAG  RTE_BIT32(0) /**< Enable RSS. @see rte_eth_rss_conf */
-#define ETH_MQ_RX_RSS_FLAG      RTE_ETH_MQ_RX_RSS_FLAG
 #define RTE_ETH_MQ_RX_DCB_FLAG  RTE_BIT32(1) /**< Enable DCB. */
-#define ETH_MQ_RX_DCB_FLAG      RTE_ETH_MQ_RX_DCB_FLAG
 #define RTE_ETH_MQ_RX_VMDQ_FLAG RTE_BIT32(2) /**< Enable VMDq. */
-#define ETH_MQ_RX_VMDQ_FLAG     RTE_ETH_MQ_RX_VMDQ_FLAG
 /**@}*/
 
+#define ETH_MQ_RX_RSS_FLAG  RTE_DEPRECATED(ETH_MQ_RX_RSS_FLAG)  RTE_ETH_MQ_RX_RSS_FLAG
+#define ETH_MQ_RX_DCB_FLAG  RTE_DEPRECATED(ETH_MQ_RX_DCB_FLAG)  RTE_ETH_MQ_RX_DCB_FLAG
+#define ETH_MQ_RX_VMDQ_FLAG RTE_DEPRECATED(ETH_MQ_RX_VMDQ_FLAG) RTE_ETH_MQ_RX_VMDQ_FLAG
+
 /**
  *  A set of values to identify what method is to be used to route
  *  packets to multiple queues.
@@ -428,14 +438,14 @@ enum rte_eth_rx_mq_mode {
                                 RTE_ETH_MQ_RX_VMDQ_FLAG,
 };
 
-#define ETH_MQ_RX_NONE         RTE_ETH_MQ_RX_NONE
-#define ETH_MQ_RX_RSS          RTE_ETH_MQ_RX_RSS
-#define ETH_MQ_RX_DCB          RTE_ETH_MQ_RX_DCB
-#define ETH_MQ_RX_DCB_RSS      RTE_ETH_MQ_RX_DCB_RSS
-#define ETH_MQ_RX_VMDQ_ONLY    RTE_ETH_MQ_RX_VMDQ_ONLY
-#define ETH_MQ_RX_VMDQ_RSS     RTE_ETH_MQ_RX_VMDQ_RSS
-#define ETH_MQ_RX_VMDQ_DCB     RTE_ETH_MQ_RX_VMDQ_DCB
-#define ETH_MQ_RX_VMDQ_DCB_RSS RTE_ETH_MQ_RX_VMDQ_DCB_RSS
+#define ETH_MQ_RX_NONE         RTE_DEPRECATED(ETH_MQ_RX_NONE)         RTE_ETH_MQ_RX_NONE
+#define ETH_MQ_RX_RSS          RTE_DEPRECATED(ETH_MQ_RX_RSS)          RTE_ETH_MQ_RX_RSS
+#define ETH_MQ_RX_DCB          RTE_DEPRECATED(ETH_MQ_RX_DCB)          RTE_ETH_MQ_RX_DCB
+#define ETH_MQ_RX_DCB_RSS      RTE_DEPRECATED(ETH_MQ_RX_DCB_RSS)      RTE_ETH_MQ_RX_DCB_RSS
+#define ETH_MQ_RX_VMDQ_ONLY    RTE_DEPRECATED(ETH_MQ_RX_VMDQ_ONLY)    RTE_ETH_MQ_RX_VMDQ_ONLY
+#define ETH_MQ_RX_VMDQ_RSS     RTE_DEPRECATED(ETH_MQ_RX_VMDQ_RSS)     RTE_ETH_MQ_RX_VMDQ_RSS
+#define ETH_MQ_RX_VMDQ_DCB     RTE_DEPRECATED(ETH_MQ_RX_VMDQ_DCB)     RTE_ETH_MQ_RX_VMDQ_DCB
+#define ETH_MQ_RX_VMDQ_DCB_RSS RTE_DEPRECATED(ETH_MQ_RX_VMDQ_DCB_RSS) RTE_ETH_MQ_RX_VMDQ_DCB_RSS
 
 /**
  * A set of values to identify what method is to be used to transmit
@@ -447,10 +457,11 @@ enum rte_eth_tx_mq_mode {
        RTE_ETH_MQ_TX_VMDQ_DCB,     /**< For Tx side,both DCB and VT is on. */
        RTE_ETH_MQ_TX_VMDQ_ONLY,    /**< Only VT on, no DCB */
 };
-#define ETH_MQ_TX_NONE         RTE_ETH_MQ_TX_NONE
-#define ETH_MQ_TX_DCB          RTE_ETH_MQ_TX_DCB
-#define ETH_MQ_TX_VMDQ_DCB     RTE_ETH_MQ_TX_VMDQ_DCB
-#define ETH_MQ_TX_VMDQ_ONLY    RTE_ETH_MQ_TX_VMDQ_ONLY
+
+#define ETH_MQ_TX_NONE      RTE_DEPRECATED(ETH_MQ_TX_NONE)      RTE_ETH_MQ_TX_NONE
+#define ETH_MQ_TX_DCB       RTE_DEPRECATED(ETH_MQ_TX_DCB)       RTE_ETH_MQ_TX_DCB
+#define ETH_MQ_TX_VMDQ_DCB  RTE_DEPRECATED(ETH_MQ_TX_VMDQ_DCB)  RTE_ETH_MQ_TX_VMDQ_DCB
+#define ETH_MQ_TX_VMDQ_ONLY RTE_DEPRECATED(ETH_MQ_TX_VMDQ_ONLY) RTE_ETH_MQ_TX_VMDQ_ONLY
 
 /**
  * A structure used to configure the Rx features of an Ethernet port.
@@ -484,10 +495,10 @@ enum rte_vlan_type {
        RTE_ETH_VLAN_TYPE_MAX,
 };
 
-#define ETH_VLAN_TYPE_UNKNOWN  RTE_ETH_VLAN_TYPE_UNKNOWN
-#define ETH_VLAN_TYPE_INNER    RTE_ETH_VLAN_TYPE_INNER
-#define ETH_VLAN_TYPE_OUTER    RTE_ETH_VLAN_TYPE_OUTER
-#define ETH_VLAN_TYPE_MAX      RTE_ETH_VLAN_TYPE_MAX
+#define ETH_VLAN_TYPE_UNKNOWN RTE_DEPRECATED(ETH_VLAN_TYPE_UNKNOWN) RTE_ETH_VLAN_TYPE_UNKNOWN
+#define ETH_VLAN_TYPE_INNER   RTE_DEPRECATED(ETH_VLAN_TYPE_INNER)   RTE_ETH_VLAN_TYPE_INNER
+#define ETH_VLAN_TYPE_OUTER   RTE_DEPRECATED(ETH_VLAN_TYPE_OUTER)   RTE_ETH_VLAN_TYPE_OUTER
+#define ETH_VLAN_TYPE_MAX     RTE_DEPRECATED(ETH_VLAN_TYPE_MAX)     RTE_ETH_VLAN_TYPE_MAX
 
 /**
  * A structure used to describe a VLAN filter.
@@ -560,69 +571,70 @@ struct rte_eth_rss_conf {
  * fill rte_eth_rss_conf.rss_hf or rte_flow_action_rss.types.
  */
 #define RTE_ETH_RSS_IPV4               RTE_BIT64(2)
-#define ETH_RSS_IPV4                   RTE_ETH_RSS_IPV4
 #define RTE_ETH_RSS_FRAG_IPV4          RTE_BIT64(3)
-#define ETH_RSS_FRAG_IPV4              RTE_ETH_RSS_FRAG_IPV4
 #define RTE_ETH_RSS_NONFRAG_IPV4_TCP   RTE_BIT64(4)
-#define ETH_RSS_NONFRAG_IPV4_TCP       RTE_ETH_RSS_NONFRAG_IPV4_TCP
 #define RTE_ETH_RSS_NONFRAG_IPV4_UDP   RTE_BIT64(5)
-#define ETH_RSS_NONFRAG_IPV4_UDP       RTE_ETH_RSS_NONFRAG_IPV4_UDP
 #define RTE_ETH_RSS_NONFRAG_IPV4_SCTP  RTE_BIT64(6)
-#define ETH_RSS_NONFRAG_IPV4_SCTP      RTE_ETH_RSS_NONFRAG_IPV4_SCTP
 #define RTE_ETH_RSS_NONFRAG_IPV4_OTHER RTE_BIT64(7)
-#define ETH_RSS_NONFRAG_IPV4_OTHER     RTE_ETH_RSS_NONFRAG_IPV4_OTHER
 #define RTE_ETH_RSS_IPV6               RTE_BIT64(8)
-#define ETH_RSS_IPV6                   RTE_ETH_RSS_IPV6
 #define RTE_ETH_RSS_FRAG_IPV6          RTE_BIT64(9)
-#define ETH_RSS_FRAG_IPV6              RTE_ETH_RSS_FRAG_IPV6
 #define RTE_ETH_RSS_NONFRAG_IPV6_TCP   RTE_BIT64(10)
-#define ETH_RSS_NONFRAG_IPV6_TCP       RTE_ETH_RSS_NONFRAG_IPV6_TCP
 #define RTE_ETH_RSS_NONFRAG_IPV6_UDP   RTE_BIT64(11)
-#define ETH_RSS_NONFRAG_IPV6_UDP       RTE_ETH_RSS_NONFRAG_IPV6_UDP
 #define RTE_ETH_RSS_NONFRAG_IPV6_SCTP  RTE_BIT64(12)
-#define ETH_RSS_NONFRAG_IPV6_SCTP      RTE_ETH_RSS_NONFRAG_IPV6_SCTP
 #define RTE_ETH_RSS_NONFRAG_IPV6_OTHER RTE_BIT64(13)
-#define ETH_RSS_NONFRAG_IPV6_OTHER     RTE_ETH_RSS_NONFRAG_IPV6_OTHER
 #define RTE_ETH_RSS_L2_PAYLOAD         RTE_BIT64(14)
-#define ETH_RSS_L2_PAYLOAD             RTE_ETH_RSS_L2_PAYLOAD
 #define RTE_ETH_RSS_IPV6_EX            RTE_BIT64(15)
-#define ETH_RSS_IPV6_EX                RTE_ETH_RSS_IPV6_EX
 #define RTE_ETH_RSS_IPV6_TCP_EX        RTE_BIT64(16)
-#define ETH_RSS_IPV6_TCP_EX            RTE_ETH_RSS_IPV6_TCP_EX
 #define RTE_ETH_RSS_IPV6_UDP_EX        RTE_BIT64(17)
-#define ETH_RSS_IPV6_UDP_EX            RTE_ETH_RSS_IPV6_UDP_EX
 #define RTE_ETH_RSS_PORT               RTE_BIT64(18)
-#define ETH_RSS_PORT                   RTE_ETH_RSS_PORT
 #define RTE_ETH_RSS_VXLAN              RTE_BIT64(19)
-#define ETH_RSS_VXLAN                  RTE_ETH_RSS_VXLAN
 #define RTE_ETH_RSS_GENEVE             RTE_BIT64(20)
-#define ETH_RSS_GENEVE                 RTE_ETH_RSS_GENEVE
 #define RTE_ETH_RSS_NVGRE              RTE_BIT64(21)
-#define ETH_RSS_NVGRE                  RTE_ETH_RSS_NVGRE
 #define RTE_ETH_RSS_GTPU               RTE_BIT64(23)
-#define ETH_RSS_GTPU                   RTE_ETH_RSS_GTPU
 #define RTE_ETH_RSS_ETH                RTE_BIT64(24)
-#define ETH_RSS_ETH                    RTE_ETH_RSS_ETH
 #define RTE_ETH_RSS_S_VLAN             RTE_BIT64(25)
-#define ETH_RSS_S_VLAN                 RTE_ETH_RSS_S_VLAN
 #define RTE_ETH_RSS_C_VLAN             RTE_BIT64(26)
-#define ETH_RSS_C_VLAN                 RTE_ETH_RSS_C_VLAN
 #define RTE_ETH_RSS_ESP                RTE_BIT64(27)
-#define ETH_RSS_ESP                    RTE_ETH_RSS_ESP
 #define RTE_ETH_RSS_AH                 RTE_BIT64(28)
-#define ETH_RSS_AH                     RTE_ETH_RSS_AH
 #define RTE_ETH_RSS_L2TPV3             RTE_BIT64(29)
-#define ETH_RSS_L2TPV3                 RTE_ETH_RSS_L2TPV3
 #define RTE_ETH_RSS_PFCP               RTE_BIT64(30)
-#define ETH_RSS_PFCP                   RTE_ETH_RSS_PFCP
 #define RTE_ETH_RSS_PPPOE              RTE_BIT64(31)
-#define ETH_RSS_PPPOE                  RTE_ETH_RSS_PPPOE
 #define RTE_ETH_RSS_ECPRI              RTE_BIT64(32)
-#define ETH_RSS_ECPRI                  RTE_ETH_RSS_ECPRI
 #define RTE_ETH_RSS_MPLS               RTE_BIT64(33)
-#define ETH_RSS_MPLS                   RTE_ETH_RSS_MPLS
 #define RTE_ETH_RSS_IPV4_CHKSUM        RTE_BIT64(34)
-#define ETH_RSS_IPV4_CHKSUM            RTE_ETH_RSS_IPV4_CHKSUM
+
+#define ETH_RSS_IPV4               RTE_DEPRECATED(ETH_RSS_IPV4)               RTE_ETH_RSS_IPV4
+#define ETH_RSS_FRAG_IPV4          RTE_DEPRECATED(ETH_RSS_FRAG_IPV4)          RTE_ETH_RSS_FRAG_IPV4
+#define ETH_RSS_NONFRAG_IPV4_TCP   RTE_DEPRECATED(ETH_RSS_NONFRAG_IPV4_TCP)   RTE_ETH_RSS_NONFRAG_IPV4_TCP
+#define ETH_RSS_NONFRAG_IPV4_UDP   RTE_DEPRECATED(ETH_RSS_NONFRAG_IPV4_UDP)   RTE_ETH_RSS_NONFRAG_IPV4_UDP
+#define ETH_RSS_NONFRAG_IPV4_SCTP  RTE_DEPRECATED(ETH_RSS_NONFRAG_IPV4_SCTP)  RTE_ETH_RSS_NONFRAG_IPV4_SCTP
+#define ETH_RSS_NONFRAG_IPV4_OTHER RTE_DEPRECATED(ETH_RSS_NONFRAG_IPV4_OTHER) RTE_ETH_RSS_NONFRAG_IPV4_OTHER
+#define ETH_RSS_IPV6               RTE_DEPRECATED(ETH_RSS_IPV6)               RTE_ETH_RSS_IPV6
+#define ETH_RSS_FRAG_IPV6          RTE_DEPRECATED(ETH_RSS_FRAG_IPV6)          RTE_ETH_RSS_FRAG_IPV6
+#define ETH_RSS_NONFRAG_IPV6_TCP   RTE_DEPRECATED(ETH_RSS_NONFRAG_IPV6_TCP)   RTE_ETH_RSS_NONFRAG_IPV6_TCP
+#define ETH_RSS_NONFRAG_IPV6_UDP   RTE_DEPRECATED(ETH_RSS_NONFRAG_IPV6_UDP)   RTE_ETH_RSS_NONFRAG_IPV6_UDP
+#define ETH_RSS_NONFRAG_IPV6_SCTP  RTE_DEPRECATED(ETH_RSS_NONFRAG_IPV6_SCTP)  RTE_ETH_RSS_NONFRAG_IPV6_SCTP
+#define ETH_RSS_NONFRAG_IPV6_OTHER RTE_DEPRECATED(ETH_RSS_NONFRAG_IPV6_OTHER) RTE_ETH_RSS_NONFRAG_IPV6_OTHER
+#define ETH_RSS_L2_PAYLOAD         RTE_DEPRECATED(ETH_RSS_L2_PAYLOAD)         RTE_ETH_RSS_L2_PAYLOAD
+#define ETH_RSS_IPV6_EX            RTE_DEPRECATED(ETH_RSS_IPV6_EX)            RTE_ETH_RSS_IPV6_EX
+#define ETH_RSS_IPV6_TCP_EX        RTE_DEPRECATED(ETH_RSS_IPV6_TCP_EX)        RTE_ETH_RSS_IPV6_TCP_EX
+#define ETH_RSS_IPV6_UDP_EX        RTE_DEPRECATED(ETH_RSS_IPV6_UDP_EX)        RTE_ETH_RSS_IPV6_UDP_EX
+#define ETH_RSS_PORT               RTE_DEPRECATED(ETH_RSS_PORT)               RTE_ETH_RSS_PORT
+#define ETH_RSS_VXLAN              RTE_DEPRECATED(ETH_RSS_VXLAN)              RTE_ETH_RSS_VXLAN
+#define ETH_RSS_GENEVE             RTE_DEPRECATED(ETH_RSS_GENEVE)             RTE_ETH_RSS_GENEVE
+#define ETH_RSS_NVGRE              RTE_DEPRECATED(ETH_RSS_NVGRE)              RTE_ETH_RSS_NVGRE
+#define ETH_RSS_GTPU               RTE_DEPRECATED(ETH_RSS_GTPU)               RTE_ETH_RSS_GTPU
+#define ETH_RSS_ETH                RTE_DEPRECATED(ETH_RSS_ETH)                RTE_ETH_RSS_ETH
+#define ETH_RSS_S_VLAN             RTE_DEPRECATED(ETH_RSS_S_VLAN)             RTE_ETH_RSS_S_VLAN
+#define ETH_RSS_C_VLAN             RTE_DEPRECATED(ETH_RSS_C_VLAN)             RTE_ETH_RSS_C_VLAN
+#define ETH_RSS_ESP                RTE_DEPRECATED(ETH_RSS_ESP)                RTE_ETH_RSS_ESP
+#define ETH_RSS_AH                 RTE_DEPRECATED(ETH_RSS_AH)                 RTE_ETH_RSS_AH
+#define ETH_RSS_L2TPV3             RTE_DEPRECATED(ETH_RSS_L2TPV3)             RTE_ETH_RSS_L2TPV3
+#define ETH_RSS_PFCP               RTE_DEPRECATED(ETH_RSS_PFCP)               RTE_ETH_RSS_PFCP
+#define ETH_RSS_PPPOE              RTE_DEPRECATED(ETH_RSS_PPPOE)              RTE_ETH_RSS_PPPOE
+#define ETH_RSS_ECPRI              RTE_DEPRECATED(ETH_RSS_ECPRI)              RTE_ETH_RSS_ECPRI
+#define ETH_RSS_MPLS               RTE_DEPRECATED(ETH_RSS_MPLS)               RTE_ETH_RSS_MPLS
+#define ETH_RSS_IPV4_CHKSUM        RTE_DEPRECATED(ETH_RSS_IPV4_CHKSUM)        RTE_ETH_RSS_IPV4_CHKSUM
 
 /**
  * The ETH_RSS_L4_CHKSUM works on checksum field of any L4 header.
@@ -637,7 +649,9 @@ struct rte_eth_rss_conf {
  * it takes the reserved value 0 as input for the hash function.
  */
 #define RTE_ETH_RSS_L4_CHKSUM          RTE_BIT64(35)
-#define ETH_RSS_L4_CHKSUM              RTE_ETH_RSS_L4_CHKSUM
+#define ETH_RSS_L4_CHKSUM RTE_DEPRECATED(ETH_RSS_L4_CHKSUM) RTE_ETH_RSS_L4_CHKSUM
+
+#define RTE_ETH_RSS_L2TPV2             RTE_BIT64(36)
 
 /*
  * We use the following macros to combine with above RTE_ETH_RSS_* for
@@ -649,21 +663,22 @@ struct rte_eth_rss_conf {
  * them are added.
  */
 #define RTE_ETH_RSS_L3_SRC_ONLY        RTE_BIT64(63)
-#define ETH_RSS_L3_SRC_ONLY            RTE_ETH_RSS_L3_SRC_ONLY
 #define RTE_ETH_RSS_L3_DST_ONLY        RTE_BIT64(62)
-#define ETH_RSS_L3_DST_ONLY            RTE_ETH_RSS_L3_DST_ONLY
 #define RTE_ETH_RSS_L4_SRC_ONLY        RTE_BIT64(61)
-#define ETH_RSS_L4_SRC_ONLY            RTE_ETH_RSS_L4_SRC_ONLY
 #define RTE_ETH_RSS_L4_DST_ONLY        RTE_BIT64(60)
-#define ETH_RSS_L4_DST_ONLY            RTE_ETH_RSS_L4_DST_ONLY
 #define RTE_ETH_RSS_L2_SRC_ONLY        RTE_BIT64(59)
-#define ETH_RSS_L2_SRC_ONLY            RTE_ETH_RSS_L2_SRC_ONLY
 #define RTE_ETH_RSS_L2_DST_ONLY        RTE_BIT64(58)
-#define ETH_RSS_L2_DST_ONLY            RTE_ETH_RSS_L2_DST_ONLY
+
+#define ETH_RSS_L3_SRC_ONLY RTE_DEPRECATED(ETH_RSS_L3_SRC_ONLY) RTE_ETH_RSS_L3_SRC_ONLY
+#define ETH_RSS_L3_DST_ONLY RTE_DEPRECATED(ETH_RSS_L3_DST_ONLY) RTE_ETH_RSS_L3_DST_ONLY
+#define ETH_RSS_L4_SRC_ONLY RTE_DEPRECATED(ETH_RSS_L4_SRC_ONLY) RTE_ETH_RSS_L4_SRC_ONLY
+#define ETH_RSS_L4_DST_ONLY RTE_DEPRECATED(ETH_RSS_L4_DST_ONLY) RTE_ETH_RSS_L4_DST_ONLY
+#define ETH_RSS_L2_SRC_ONLY RTE_DEPRECATED(ETH_RSS_L2_SRC_ONLY) RTE_ETH_RSS_L2_SRC_ONLY
+#define ETH_RSS_L2_DST_ONLY RTE_DEPRECATED(ETH_RSS_L2_DST_ONLY) RTE_ETH_RSS_L2_DST_ONLY
 
 /*
  * Only select IPV6 address prefix as RSS input set according to
- * https:tools.ietf.org/html/rfc6052
+ * https://tools.ietf.org/html/rfc6052
  * Must be combined with RTE_ETH_RSS_IPV6, RTE_ETH_RSS_NONFRAG_IPV6_UDP,
  * RTE_ETH_RSS_NONFRAG_IPV6_TCP, RTE_ETH_RSS_NONFRAG_IPV6_SCTP.
  */
@@ -688,26 +703,27 @@ struct rte_eth_rss_conf {
  * can be performed on according to PMD and device capabilities.
  */
 #define RTE_ETH_RSS_LEVEL_PMD_DEFAULT  (UINT64_C(0) << 50)
-#define ETH_RSS_LEVEL_PMD_DEFAULT      RTE_ETH_RSS_LEVEL_PMD_DEFAULT
+#define ETH_RSS_LEVEL_PMD_DEFAULT RTE_DEPRECATED(ETH_RSS_LEVEL_PMD_DEFAULT) RTE_ETH_RSS_LEVEL_PMD_DEFAULT
 
 /**
  * level 1, requests RSS to be performed on the outermost packet
  * encapsulation level.
  */
 #define RTE_ETH_RSS_LEVEL_OUTERMOST    (UINT64_C(1) << 50)
-#define ETH_RSS_LEVEL_OUTERMOST        RTE_ETH_RSS_LEVEL_OUTERMOST
+#define ETH_RSS_LEVEL_OUTERMOST RTE_DEPRECATED(ETH_RSS_LEVEL_OUTERMOST) RTE_ETH_RSS_LEVEL_OUTERMOST
 
 /**
  * level 2, requests RSS to be performed on the specified inner packet
  * encapsulation level, from outermost to innermost (lower to higher values).
  */
 #define RTE_ETH_RSS_LEVEL_INNERMOST    (UINT64_C(2) << 50)
-#define ETH_RSS_LEVEL_INNERMOST        RTE_ETH_RSS_LEVEL_INNERMOST
 #define RTE_ETH_RSS_LEVEL_MASK         (UINT64_C(3) << 50)
-#define ETH_RSS_LEVEL_MASK             RTE_ETH_RSS_LEVEL_MASK
+
+#define ETH_RSS_LEVEL_INNERMOST RTE_DEPRECATED(ETH_RSS_LEVEL_INNERMOST) RTE_ETH_RSS_LEVEL_INNERMOST
+#define ETH_RSS_LEVEL_MASK      RTE_DEPRECATED(ETH_RSS_LEVEL_MASK)      RTE_ETH_RSS_LEVEL_MASK
 
 #define RTE_ETH_RSS_LEVEL(rss_hf) ((rss_hf & RTE_ETH_RSS_LEVEL_MASK) >> 50)
-#define ETH_RSS_LEVEL(rss_hf)          RTE_ETH_RSS_LEVEL(rss_hf)
+#define ETH_RSS_LEVEL(rss_hf) RTE_DEPRECATED(ETH_RSS_LEVEL(rss_hf)) RTE_ETH_RSS_LEVEL(rss_hf)
 
 /**
  * For input set change of hash filter, if SRC_ONLY and DST_ONLY of
@@ -734,122 +750,122 @@ rte_eth_rss_hf_refine(uint64_t rss_hf)
 #define RTE_ETH_RSS_IPV6_PRE32 ( \
                RTE_ETH_RSS_IPV6 | \
                RTE_ETH_RSS_L3_PRE32)
-#define ETH_RSS_IPV6_PRE32     RTE_ETH_RSS_IPV6_PRE32
+#define ETH_RSS_IPV6_PRE32 RTE_DEPRECATED(ETH_RSS_IPV6_PRE32) RTE_ETH_RSS_IPV6_PRE32
 
 #define RTE_ETH_RSS_IPV6_PRE40 ( \
                RTE_ETH_RSS_IPV6 | \
                RTE_ETH_RSS_L3_PRE40)
-#define ETH_RSS_IPV6_PRE40     RTE_ETH_RSS_IPV6_PRE40
+#define ETH_RSS_IPV6_PRE40 RTE_DEPRECATED(ETH_RSS_IPV6_PRE40) RTE_ETH_RSS_IPV6_PRE40
 
 #define RTE_ETH_RSS_IPV6_PRE48 ( \
                RTE_ETH_RSS_IPV6 | \
                RTE_ETH_RSS_L3_PRE48)
-#define ETH_RSS_IPV6_PRE48     RTE_ETH_RSS_IPV6_PRE48
+#define ETH_RSS_IPV6_PRE48 RTE_DEPRECATED(ETH_RSS_IPV6_PRE48) RTE_ETH_RSS_IPV6_PRE48
 
 #define RTE_ETH_RSS_IPV6_PRE56 ( \
                RTE_ETH_RSS_IPV6 | \
                RTE_ETH_RSS_L3_PRE56)
-#define ETH_RSS_IPV6_PRE56     RTE_ETH_RSS_IPV6_PRE56
+#define ETH_RSS_IPV6_PRE56 RTE_DEPRECATED(ETH_RSS_IPV6_PRE56) RTE_ETH_RSS_IPV6_PRE56
 
 #define RTE_ETH_RSS_IPV6_PRE64 ( \
                RTE_ETH_RSS_IPV6 | \
                RTE_ETH_RSS_L3_PRE64)
-#define ETH_RSS_IPV6_PRE64     RTE_ETH_RSS_IPV6_PRE64
+#define ETH_RSS_IPV6_PRE64 RTE_DEPRECATED(ETH_RSS_IPV6_PRE64) RTE_ETH_RSS_IPV6_PRE64
 
 #define RTE_ETH_RSS_IPV6_PRE96 ( \
                RTE_ETH_RSS_IPV6 | \
                RTE_ETH_RSS_L3_PRE96)
-#define ETH_RSS_IPV6_PRE96     RTE_ETH_RSS_IPV6_PRE96
+#define ETH_RSS_IPV6_PRE96 RTE_DEPRECATED(ETH_RSS_IPV6_PRE96) RTE_ETH_RSS_IPV6_PRE96
 
 #define RTE_ETH_RSS_IPV6_PRE32_UDP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_UDP | \
                RTE_ETH_RSS_L3_PRE32)
-#define ETH_RSS_IPV6_PRE32_UDP RTE_ETH_RSS_IPV6_PRE32_UDP
+#define ETH_RSS_IPV6_PRE32_UDP RTE_DEPRECATED(ETH_RSS_IPV6_PRE32_UDP) RTE_ETH_RSS_IPV6_PRE32_UDP
 
 #define RTE_ETH_RSS_IPV6_PRE40_UDP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_UDP | \
                RTE_ETH_RSS_L3_PRE40)
-#define ETH_RSS_IPV6_PRE40_UDP RTE_ETH_RSS_IPV6_PRE40_UDP
+#define ETH_RSS_IPV6_PRE40_UDP RTE_DEPRECATED(ETH_RSS_IPV6_PRE40_UDP) RTE_ETH_RSS_IPV6_PRE40_UDP
 
 #define RTE_ETH_RSS_IPV6_PRE48_UDP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_UDP | \
                RTE_ETH_RSS_L3_PRE48)
-#define ETH_RSS_IPV6_PRE48_UDP RTE_ETH_RSS_IPV6_PRE48_UDP
+#define ETH_RSS_IPV6_PRE48_UDP RTE_DEPRECATED(ETH_RSS_IPV6_PRE48_UDP) RTE_ETH_RSS_IPV6_PRE48_UDP
 
 #define RTE_ETH_RSS_IPV6_PRE56_UDP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_UDP | \
                RTE_ETH_RSS_L3_PRE56)
-#define ETH_RSS_IPV6_PRE56_UDP RTE_ETH_RSS_IPV6_PRE56_UDP
+#define ETH_RSS_IPV6_PRE56_UDP RTE_DEPRECATED(ETH_RSS_IPV6_PRE56_UDP) RTE_ETH_RSS_IPV6_PRE56_UDP
 
 #define RTE_ETH_RSS_IPV6_PRE64_UDP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_UDP | \
                RTE_ETH_RSS_L3_PRE64)
-#define ETH_RSS_IPV6_PRE64_UDP RTE_ETH_RSS_IPV6_PRE64_UDP
+#define ETH_RSS_IPV6_PRE64_UDP RTE_DEPRECATED(ETH_RSS_IPV6_PRE64_UDP) RTE_ETH_RSS_IPV6_PRE64_UDP
 
 #define RTE_ETH_RSS_IPV6_PRE96_UDP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_UDP | \
                RTE_ETH_RSS_L3_PRE96)
-#define ETH_RSS_IPV6_PRE96_UDP RTE_ETH_RSS_IPV6_PRE96_UDP
+#define ETH_RSS_IPV6_PRE96_UDP RTE_DEPRECATED(ETH_RSS_IPV6_PRE96_UDP) RTE_ETH_RSS_IPV6_PRE96_UDP
 
 #define RTE_ETH_RSS_IPV6_PRE32_TCP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
                RTE_ETH_RSS_L3_PRE32)
-#define ETH_RSS_IPV6_PRE32_TCP RTE_ETH_RSS_IPV6_PRE32_TCP
+#define ETH_RSS_IPV6_PRE32_TCP RTE_DEPRECATED(ETH_RSS_IPV6_PRE32_TCP) RTE_ETH_RSS_IPV6_PRE32_TCP
 
 #define RTE_ETH_RSS_IPV6_PRE40_TCP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
                RTE_ETH_RSS_L3_PRE40)
-#define ETH_RSS_IPV6_PRE40_TCP RTE_ETH_RSS_IPV6_PRE40_TCP
+#define ETH_RSS_IPV6_PRE40_TCP RTE_DEPRECATED(ETH_RSS_IPV6_PRE40_TCP) RTE_ETH_RSS_IPV6_PRE40_TCP
 
 #define RTE_ETH_RSS_IPV6_PRE48_TCP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
                RTE_ETH_RSS_L3_PRE48)
-#define ETH_RSS_IPV6_PRE48_TCP RTE_ETH_RSS_IPV6_PRE48_TCP
+#define ETH_RSS_IPV6_PRE48_TCP RTE_DEPRECATED(ETH_RSS_IPV6_PRE48_TCP) RTE_ETH_RSS_IPV6_PRE48_TCP
 
 #define RTE_ETH_RSS_IPV6_PRE56_TCP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
                RTE_ETH_RSS_L3_PRE56)
-#define ETH_RSS_IPV6_PRE56_TCP RTE_ETH_RSS_IPV6_PRE56_TCP
+#define ETH_RSS_IPV6_PRE56_TCP RTE_DEPRECATED(ETH_RSS_IPV6_PRE56_TCP) RTE_ETH_RSS_IPV6_PRE56_TCP
 
 #define RTE_ETH_RSS_IPV6_PRE64_TCP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
                RTE_ETH_RSS_L3_PRE64)
-#define ETH_RSS_IPV6_PRE64_TCP RTE_ETH_RSS_IPV6_PRE64_TCP
+#define ETH_RSS_IPV6_PRE64_TCP RTE_DEPRECATED(ETH_RSS_IPV6_PRE64_TCP) RTE_ETH_RSS_IPV6_PRE64_TCP
 
 #define RTE_ETH_RSS_IPV6_PRE96_TCP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
                RTE_ETH_RSS_L3_PRE96)
-#define ETH_RSS_IPV6_PRE96_TCP RTE_ETH_RSS_IPV6_PRE96_TCP
+#define ETH_RSS_IPV6_PRE96_TCP RTE_DEPRECATED(ETH_RSS_IPV6_PRE96_TCP) RTE_ETH_RSS_IPV6_PRE96_TCP
 
 #define RTE_ETH_RSS_IPV6_PRE32_SCTP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_SCTP | \
                RTE_ETH_RSS_L3_PRE32)
-#define ETH_RSS_IPV6_PRE32_SCTP        RTE_ETH_RSS_IPV6_PRE32_SCTP
+#define ETH_RSS_IPV6_PRE32_SCTP RTE_DEPRECATED(ETH_RSS_IPV6_PRE32_SCTP) RTE_ETH_RSS_IPV6_PRE32_SCTP
 
 #define RTE_ETH_RSS_IPV6_PRE40_SCTP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_SCTP | \
                RTE_ETH_RSS_L3_PRE40)
-#define ETH_RSS_IPV6_PRE40_SCTP        RTE_ETH_RSS_IPV6_PRE40_SCTP
+#define ETH_RSS_IPV6_PRE40_SCTP RTE_DEPRECATED(ETH_RSS_IPV6_PRE40_SCTP) RTE_ETH_RSS_IPV6_PRE40_SCTP
 
 #define RTE_ETH_RSS_IPV6_PRE48_SCTP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_SCTP | \
                RTE_ETH_RSS_L3_PRE48)
-#define ETH_RSS_IPV6_PRE48_SCTP        RTE_ETH_RSS_IPV6_PRE48_SCTP
+#define ETH_RSS_IPV6_PRE48_SCTP RTE_DEPRECATED(ETH_RSS_IPV6_PRE48_SCTP) RTE_ETH_RSS_IPV6_PRE48_SCTP
 
 #define RTE_ETH_RSS_IPV6_PRE56_SCTP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_SCTP | \
                RTE_ETH_RSS_L3_PRE56)
-#define ETH_RSS_IPV6_PRE56_SCTP        RTE_ETH_RSS_IPV6_PRE56_SCTP
+#define ETH_RSS_IPV6_PRE56_SCTP RTE_DEPRECATED(ETH_RSS_IPV6_PRE56_SCTP) RTE_ETH_RSS_IPV6_PRE56_SCTP
 
 #define RTE_ETH_RSS_IPV6_PRE64_SCTP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_SCTP | \
                RTE_ETH_RSS_L3_PRE64)
-#define ETH_RSS_IPV6_PRE64_SCTP        RTE_ETH_RSS_IPV6_PRE64_SCTP
+#define ETH_RSS_IPV6_PRE64_SCTP RTE_DEPRECATED(ETH_RSS_IPV6_PRE64_SCTP) RTE_ETH_RSS_IPV6_PRE64_SCTP
 
 #define RTE_ETH_RSS_IPV6_PRE96_SCTP ( \
                RTE_ETH_RSS_NONFRAG_IPV6_SCTP | \
                RTE_ETH_RSS_L3_PRE96)
-#define ETH_RSS_IPV6_PRE96_SCTP        RTE_ETH_RSS_IPV6_PRE96_SCTP
+#define ETH_RSS_IPV6_PRE96_SCTP RTE_DEPRECATED(ETH_RSS_IPV6_PRE96_SCTP) RTE_ETH_RSS_IPV6_PRE96_SCTP
 
 #define RTE_ETH_RSS_IP ( \
        RTE_ETH_RSS_IPV4 | \
@@ -859,35 +875,35 @@ rte_eth_rss_hf_refine(uint64_t rss_hf)
        RTE_ETH_RSS_FRAG_IPV6 | \
        RTE_ETH_RSS_NONFRAG_IPV6_OTHER | \
        RTE_ETH_RSS_IPV6_EX)
-#define ETH_RSS_IP     RTE_ETH_RSS_IP
+#define ETH_RSS_IP RTE_DEPRECATED(ETH_RSS_IP) RTE_ETH_RSS_IP
 
 #define RTE_ETH_RSS_UDP ( \
        RTE_ETH_RSS_NONFRAG_IPV4_UDP | \
        RTE_ETH_RSS_NONFRAG_IPV6_UDP | \
        RTE_ETH_RSS_IPV6_UDP_EX)
-#define ETH_RSS_UDP    RTE_ETH_RSS_UDP
+#define ETH_RSS_UDP RTE_DEPRECATED(ETH_RSS_UDP) RTE_ETH_RSS_UDP
 
 #define RTE_ETH_RSS_TCP ( \
        RTE_ETH_RSS_NONFRAG_IPV4_TCP | \
        RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
        RTE_ETH_RSS_IPV6_TCP_EX)
-#define ETH_RSS_TCP    RTE_ETH_RSS_TCP
+#define ETH_RSS_TCP RTE_DEPRECATED(ETH_RSS_TCP) RTE_ETH_RSS_TCP
 
 #define RTE_ETH_RSS_SCTP ( \
        RTE_ETH_RSS_NONFRAG_IPV4_SCTP | \
        RTE_ETH_RSS_NONFRAG_IPV6_SCTP)
-#define ETH_RSS_SCTP   RTE_ETH_RSS_SCTP
+#define ETH_RSS_SCTP RTE_DEPRECATED(ETH_RSS_SCTP) RTE_ETH_RSS_SCTP
 
 #define RTE_ETH_RSS_TUNNEL ( \
        RTE_ETH_RSS_VXLAN  | \
        RTE_ETH_RSS_GENEVE | \
        RTE_ETH_RSS_NVGRE)
-#define ETH_RSS_TUNNEL RTE_ETH_RSS_TUNNEL
+#define ETH_RSS_TUNNEL RTE_DEPRECATED(ETH_RSS_TUNNEL) RTE_ETH_RSS_TUNNEL
 
 #define RTE_ETH_RSS_VLAN ( \
        RTE_ETH_RSS_S_VLAN  | \
        RTE_ETH_RSS_C_VLAN)
-#define ETH_RSS_VLAN   RTE_ETH_RSS_VLAN
+#define ETH_RSS_VLAN RTE_DEPRECATED(ETH_RSS_VLAN) RTE_ETH_RSS_VLAN
 
 /** Mask of valid RSS hash protocols */
 #define RTE_ETH_RSS_PROTO_MASK ( \
@@ -912,7 +928,7 @@ rte_eth_rss_hf_refine(uint64_t rss_hf)
        RTE_ETH_RSS_GENEVE | \
        RTE_ETH_RSS_NVGRE | \
        RTE_ETH_RSS_MPLS)
-#define ETH_RSS_PROTO_MASK     RTE_ETH_RSS_PROTO_MASK
+#define ETH_RSS_PROTO_MASK RTE_DEPRECATED(ETH_RSS_PROTO_MASK) RTE_ETH_RSS_PROTO_MASK
 
 /*
  * Definitions used for redirection table entry size.
@@ -920,84 +936,90 @@ rte_eth_rss_hf_refine(uint64_t rss_hf)
  * documentation or the description of relevant functions for more details.
  */
 #define RTE_ETH_RSS_RETA_SIZE_64  64
-#define ETH_RSS_RETA_SIZE_64      RTE_ETH_RSS_RETA_SIZE_64
 #define RTE_ETH_RSS_RETA_SIZE_128 128
-#define ETH_RSS_RETA_SIZE_128     RTE_ETH_RSS_RETA_SIZE_128
 #define RTE_ETH_RSS_RETA_SIZE_256 256
-#define ETH_RSS_RETA_SIZE_256     RTE_ETH_RSS_RETA_SIZE_256
 #define RTE_ETH_RSS_RETA_SIZE_512 512
-#define ETH_RSS_RETA_SIZE_512     RTE_ETH_RSS_RETA_SIZE_512
 #define RTE_ETH_RETA_GROUP_SIZE   64
-#define RTE_RETA_GROUP_SIZE       RTE_ETH_RETA_GROUP_SIZE
+
+#define ETH_RSS_RETA_SIZE_64  RTE_DEPRECATED(ETH_RSS_RETA_SIZE_64)  RTE_ETH_RSS_RETA_SIZE_64
+#define ETH_RSS_RETA_SIZE_128 RTE_DEPRECATED(ETH_RSS_RETA_SIZE_128) RTE_ETH_RSS_RETA_SIZE_128
+#define ETH_RSS_RETA_SIZE_256 RTE_DEPRECATED(ETH_RSS_RETA_SIZE_256) RTE_ETH_RSS_RETA_SIZE_256
+#define ETH_RSS_RETA_SIZE_512 RTE_DEPRECATED(ETH_RSS_RETA_SIZE_512) RTE_ETH_RSS_RETA_SIZE_512
+#define RTE_RETA_GROUP_SIZE   RTE_DEPRECATED(RTE_RETA_GROUP_SIZE)   RTE_ETH_RETA_GROUP_SIZE
 
 /**@{@name VMDq and DCB maximums */
 #define RTE_ETH_VMDQ_MAX_VLAN_FILTERS   64 /**< Maximum nb. of VMDq VLAN filters. */
-#define ETH_VMDQ_MAX_VLAN_FILTERS       RTE_ETH_VMDQ_MAX_VLAN_FILTERS
 #define RTE_ETH_DCB_NUM_USER_PRIORITIES 8  /**< Maximum nb. of DCB priorities. */
-#define ETH_DCB_NUM_USER_PRIORITIES     RTE_ETH_DCB_NUM_USER_PRIORITIES
 #define RTE_ETH_VMDQ_DCB_NUM_QUEUES     128 /**< Maximum nb. of VMDq DCB queues. */
-#define ETH_VMDQ_DCB_NUM_QUEUES         RTE_ETH_VMDQ_DCB_NUM_QUEUES
 #define RTE_ETH_DCB_NUM_QUEUES          128 /**< Maximum nb. of DCB queues. */
-#define ETH_DCB_NUM_QUEUES              RTE_ETH_DCB_NUM_QUEUES
 /**@}*/
 
+#define ETH_VMDQ_MAX_VLAN_FILTERS   RTE_DEPRECATED(ETH_VMDQ_MAX_VLAN_FILTERS)   RTE_ETH_VMDQ_MAX_VLAN_FILTERS
+#define ETH_DCB_NUM_USER_PRIORITIES RTE_DEPRECATED(ETH_DCB_NUM_USER_PRIORITIES) RTE_ETH_DCB_NUM_USER_PRIORITIES
+#define ETH_VMDQ_DCB_NUM_QUEUES     RTE_DEPRECATED(ETH_VMDQ_DCB_NUM_QUEUES)     RTE_ETH_VMDQ_DCB_NUM_QUEUES
+#define ETH_DCB_NUM_QUEUES          RTE_DEPRECATED(ETH_DCB_NUM_QUEUES)          RTE_ETH_DCB_NUM_QUEUES
+
 /**@{@name DCB capabilities */
 #define RTE_ETH_DCB_PG_SUPPORT      RTE_BIT32(0) /**< Priority Group(ETS) support. */
-#define ETH_DCB_PG_SUPPORT          RTE_ETH_DCB_PG_SUPPORT
 #define RTE_ETH_DCB_PFC_SUPPORT     RTE_BIT32(1) /**< Priority Flow Control support. */
-#define ETH_DCB_PFC_SUPPORT         RTE_ETH_DCB_PFC_SUPPORT
 /**@}*/
 
+#define ETH_DCB_PG_SUPPORT  RTE_DEPRECATED(ETH_DCB_PG_SUPPORT)  RTE_ETH_DCB_PG_SUPPORT
+#define ETH_DCB_PFC_SUPPORT RTE_DEPRECATED(ETH_DCB_PFC_SUPPORT) RTE_ETH_DCB_PFC_SUPPORT
+
 /**@{@name VLAN offload bits */
 #define RTE_ETH_VLAN_STRIP_OFFLOAD   0x0001 /**< VLAN Strip  On/Off */
-#define ETH_VLAN_STRIP_OFFLOAD       RTE_ETH_VLAN_STRIP_OFFLOAD
 #define RTE_ETH_VLAN_FILTER_OFFLOAD  0x0002 /**< VLAN Filter On/Off */
-#define ETH_VLAN_FILTER_OFFLOAD      RTE_ETH_VLAN_FILTER_OFFLOAD
 #define RTE_ETH_VLAN_EXTEND_OFFLOAD  0x0004 /**< VLAN Extend On/Off */
-#define ETH_VLAN_EXTEND_OFFLOAD      RTE_ETH_VLAN_EXTEND_OFFLOAD
 #define RTE_ETH_QINQ_STRIP_OFFLOAD   0x0008 /**< QINQ Strip On/Off */
-#define ETH_QINQ_STRIP_OFFLOAD       RTE_ETH_QINQ_STRIP_OFFLOAD
+
+#define ETH_VLAN_STRIP_OFFLOAD  RTE_DEPRECATED(ETH_VLAN_STRIP_OFFLOAD)  RTE_ETH_VLAN_STRIP_OFFLOAD
+#define ETH_VLAN_FILTER_OFFLOAD RTE_DEPRECATED(ETH_VLAN_FILTER_OFFLOAD) RTE_ETH_VLAN_FILTER_OFFLOAD
+#define ETH_VLAN_EXTEND_OFFLOAD RTE_DEPRECATED(ETH_VLAN_EXTEND_OFFLOAD) RTE_ETH_VLAN_EXTEND_OFFLOAD
+#define ETH_QINQ_STRIP_OFFLOAD  RTE_DEPRECATED(ETH_QINQ_STRIP_OFFLOAD)  RTE_ETH_QINQ_STRIP_OFFLOAD
 
 #define RTE_ETH_VLAN_STRIP_MASK      0x0001 /**< VLAN Strip  setting mask */
-#define ETH_VLAN_STRIP_MASK          RTE_ETH_VLAN_STRIP_MASK
 #define RTE_ETH_VLAN_FILTER_MASK     0x0002 /**< VLAN Filter  setting mask*/
-#define ETH_VLAN_FILTER_MASK         RTE_ETH_VLAN_FILTER_MASK
 #define RTE_ETH_VLAN_EXTEND_MASK     0x0004 /**< VLAN Extend  setting mask*/
-#define ETH_VLAN_EXTEND_MASK         RTE_ETH_VLAN_EXTEND_MASK
 #define RTE_ETH_QINQ_STRIP_MASK      0x0008 /**< QINQ Strip  setting mask */
-#define ETH_QINQ_STRIP_MASK          RTE_ETH_QINQ_STRIP_MASK
 #define RTE_ETH_VLAN_ID_MAX          0x0FFF /**< VLAN ID is in lower 12 bits*/
-#define ETH_VLAN_ID_MAX              RTE_ETH_VLAN_ID_MAX
 /**@}*/
 
+#define ETH_VLAN_STRIP_MASK  RTE_DEPRECATED(ETH_VLAN_STRIP_MASK)  RTE_ETH_VLAN_STRIP_MASK
+#define ETH_VLAN_FILTER_MASK RTE_DEPRECATED(ETH_VLAN_FILTER_MASK) RTE_ETH_VLAN_FILTER_MASK
+#define ETH_VLAN_EXTEND_MASK RTE_DEPRECATED(ETH_VLAN_EXTEND_MASK) RTE_ETH_VLAN_EXTEND_MASK
+#define ETH_QINQ_STRIP_MASK  RTE_DEPRECATED(ETH_QINQ_STRIP_MASK)  RTE_ETH_QINQ_STRIP_MASK
+#define ETH_VLAN_ID_MAX      RTE_DEPRECATED(ETH_VLAN_ID_MAX)      RTE_ETH_VLAN_ID_MAX
+
 /* Definitions used for receive MAC address   */
 #define RTE_ETH_NUM_RECEIVE_MAC_ADDR   128 /**< Maximum nb. of receive mac addr. */
-#define ETH_NUM_RECEIVE_MAC_ADDR       RTE_ETH_NUM_RECEIVE_MAC_ADDR
+#define ETH_NUM_RECEIVE_MAC_ADDR RTE_DEPRECATED(ETH_NUM_RECEIVE_MAC_ADDR) RTE_ETH_NUM_RECEIVE_MAC_ADDR
 
 /* Definitions used for unicast hash  */
 #define RTE_ETH_VMDQ_NUM_UC_HASH_ARRAY 128 /**< Maximum nb. of UC hash array. */
-#define ETH_VMDQ_NUM_UC_HASH_ARRAY     RTE_ETH_VMDQ_NUM_UC_HASH_ARRAY
+#define ETH_VMDQ_NUM_UC_HASH_ARRAY RTE_DEPRECATED(ETH_VMDQ_NUM_UC_HASH_ARRAY) RTE_ETH_VMDQ_NUM_UC_HASH_ARRAY
 
 /**@{@name VMDq Rx mode
  * @see rte_eth_vmdq_rx_conf.rx_mode
  */
 /** Accept untagged packets. */
 #define RTE_ETH_VMDQ_ACCEPT_UNTAG      RTE_BIT32(0)
-#define ETH_VMDQ_ACCEPT_UNTAG          RTE_ETH_VMDQ_ACCEPT_UNTAG
 /** Accept packets in multicast table. */
 #define RTE_ETH_VMDQ_ACCEPT_HASH_MC    RTE_BIT32(1)
-#define ETH_VMDQ_ACCEPT_HASH_MC        RTE_ETH_VMDQ_ACCEPT_HASH_MC
 /** Accept packets in unicast table. */
 #define RTE_ETH_VMDQ_ACCEPT_HASH_UC    RTE_BIT32(2)
-#define ETH_VMDQ_ACCEPT_HASH_UC        RTE_ETH_VMDQ_ACCEPT_HASH_UC
 /** Accept broadcast packets. */
 #define RTE_ETH_VMDQ_ACCEPT_BROADCAST  RTE_BIT32(3)
-#define ETH_VMDQ_ACCEPT_BROADCAST      RTE_ETH_VMDQ_ACCEPT_BROADCAST
 /** Multicast promiscuous. */
 #define RTE_ETH_VMDQ_ACCEPT_MULTICAST  RTE_BIT32(4)
-#define ETH_VMDQ_ACCEPT_MULTICAST      RTE_ETH_VMDQ_ACCEPT_MULTICAST
 /**@}*/
 
+#define ETH_VMDQ_ACCEPT_UNTAG     RTE_DEPRECATED(ETH_VMDQ_ACCEPT_UNTAG)     RTE_ETH_VMDQ_ACCEPT_UNTAG
+#define ETH_VMDQ_ACCEPT_HASH_MC   RTE_DEPRECATED(ETH_VMDQ_ACCEPT_HASH_MC)   RTE_ETH_VMDQ_ACCEPT_HASH_MC
+#define ETH_VMDQ_ACCEPT_HASH_UC   RTE_DEPRECATED(ETH_VMDQ_ACCEPT_HASH_UC)   RTE_ETH_VMDQ_ACCEPT_HASH_UC
+#define ETH_VMDQ_ACCEPT_BROADCAST RTE_DEPRECATED(ETH_VMDQ_ACCEPT_BROADCAST) RTE_ETH_VMDQ_ACCEPT_BROADCAST
+#define ETH_VMDQ_ACCEPT_MULTICAST RTE_DEPRECATED(ETH_VMDQ_ACCEPT_MULTICAST) RTE_ETH_VMDQ_ACCEPT_MULTICAST
+
 /**
  * A structure used to configure 64 entries of Redirection Table of the
  * Receive Side Scaling (RSS) feature of an Ethernet port. To configure
@@ -1019,8 +1041,8 @@ enum rte_eth_nb_tcs {
        RTE_ETH_4_TCS = 4, /**< 4 TCs with DCB. */
        RTE_ETH_8_TCS = 8  /**< 8 TCs with DCB. */
 };
-#define ETH_4_TCS RTE_ETH_4_TCS
-#define ETH_8_TCS RTE_ETH_8_TCS
+#define ETH_4_TCS RTE_DEPRECATED(ETH_4_TCS) RTE_ETH_4_TCS
+#define ETH_8_TCS RTE_DEPRECATED(ETH_8_TCS) RTE_ETH_8_TCS
 
 /**
  * This enum indicates the possible number of queue pools
@@ -1032,10 +1054,10 @@ enum rte_eth_nb_pools {
        RTE_ETH_32_POOLS = 32,  /**< 32 VMDq pools. */
        RTE_ETH_64_POOLS = 64   /**< 64 VMDq pools. */
 };
-#define ETH_8_POOLS    RTE_ETH_8_POOLS
-#define ETH_16_POOLS   RTE_ETH_16_POOLS
-#define ETH_32_POOLS   RTE_ETH_32_POOLS
-#define ETH_64_POOLS   RTE_ETH_64_POOLS
+#define ETH_8_POOLS  RTE_DEPRECATED(ETH_8_POOLS)  RTE_ETH_8_POOLS
+#define ETH_16_POOLS RTE_DEPRECATED(ETH_16_POOLS) RTE_ETH_16_POOLS
+#define ETH_32_POOLS RTE_DEPRECATED(ETH_32_POOLS) RTE_ETH_32_POOLS
+#define ETH_64_POOLS RTE_DEPRECATED(ETH_64_POOLS) RTE_ETH_64_POOLS
 
 /* This structure may be extended in future. */
 struct rte_eth_dcb_rx_conf {
@@ -1358,11 +1380,10 @@ enum rte_eth_fc_mode {
        RTE_ETH_FC_TX_PAUSE, /**< Tx pause frame, enable flowctrl on Rx side. */
        RTE_ETH_FC_FULL      /**< Enable flow control on both side. */
 };
-
-#define RTE_FC_NONE    RTE_ETH_FC_NONE
-#define RTE_FC_RX_PAUSE        RTE_ETH_FC_RX_PAUSE
-#define RTE_FC_TX_PAUSE        RTE_ETH_FC_TX_PAUSE
-#define RTE_FC_FULL    RTE_ETH_FC_FULL
+#define RTE_FC_NONE     RTE_DEPRECATED(RTE_FC_NONE)     RTE_ETH_FC_NONE
+#define RTE_FC_RX_PAUSE RTE_DEPRECATED(RTE_FC_RX_PAUSE) RTE_ETH_FC_RX_PAUSE
+#define RTE_FC_TX_PAUSE RTE_DEPRECATED(RTE_FC_TX_PAUSE) RTE_ETH_FC_TX_PAUSE
+#define RTE_FC_FULL     RTE_DEPRECATED(RTE_FC_FULL)     RTE_ETH_FC_FULL
 
 /**
  * A structure used to configure Ethernet flow control parameter.
@@ -1389,6 +1410,59 @@ struct rte_eth_pfc_conf {
        uint8_t priority;          /**< VLAN User Priority. */
 };
 
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * A structure used to retrieve information of queue based PFC.
+ */
+struct rte_eth_pfc_queue_info {
+       /**
+        * Maximum supported traffic class as per PFC (802.1Qbb) specification.
+        */
+       uint8_t tc_max;
+       /** PFC queue mode capabilities. */
+       enum rte_eth_fc_mode mode_capa;
+};
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * A structure used to configure Ethernet priority flow control parameters for
+ * ethdev queues.
+ *
+ * rte_eth_pfc_queue_conf::rx_pause structure shall be used to configure given
+ * tx_qid with corresponding tc. When ethdev device receives PFC frame with
+ * rte_eth_pfc_queue_conf::rx_pause::tc, traffic will be paused on
+ * rte_eth_pfc_queue_conf::rx_pause::tx_qid for that tc.
+ *
+ * rte_eth_pfc_queue_conf::tx_pause structure shall be used to configure given
+ * rx_qid. When rx_qid is congested, PFC frames are generated with
+ * rte_eth_pfc_queue_conf::rx_pause::tc and
+ * rte_eth_pfc_queue_conf::rx_pause::pause_time to the peer.
+ */
+struct rte_eth_pfc_queue_conf {
+       enum rte_eth_fc_mode mode; /**< Link flow control mode */
+
+       struct {
+               uint16_t tx_qid; /**< Tx queue ID */
+               /** Traffic class as per PFC (802.1Qbb) spec. The value must be
+                * in the range [0, rte_eth_pfc_queue_info::tx_max - 1]
+                */
+               uint8_t tc;
+       } rx_pause; /* Valid when (mode == FC_RX_PAUSE || mode == FC_FULL) */
+
+       struct {
+               uint16_t pause_time; /**< Pause quota in the Pause frame */
+               uint16_t rx_qid;     /**< Rx queue ID */
+               /** Traffic class as per PFC (802.1Qbb) spec. The value must be
+                * in the range [0, rte_eth_pfc_queue_info::tx_max - 1]
+                */
+               uint8_t tc;
+       } tx_pause; /* Valid when (mode == FC_TX_PAUSE || mode == FC_FULL) */
+};
+
 /**
  * Tunnel type for device-specific classifier configuration.
  * @see rte_eth_udp_tunnel
@@ -1405,17 +1479,16 @@ enum rte_eth_tunnel_type {
        RTE_ETH_TUNNEL_TYPE_ECPRI,
        RTE_ETH_TUNNEL_TYPE_MAX,
 };
-
-#define RTE_TUNNEL_TYPE_NONE           RTE_ETH_TUNNEL_TYPE_NONE
-#define RTE_TUNNEL_TYPE_VXLAN          RTE_ETH_TUNNEL_TYPE_VXLAN
-#define RTE_TUNNEL_TYPE_GENEVE         RTE_ETH_TUNNEL_TYPE_GENEVE
-#define RTE_TUNNEL_TYPE_TEREDO         RTE_ETH_TUNNEL_TYPE_TEREDO
-#define RTE_TUNNEL_TYPE_NVGRE          RTE_ETH_TUNNEL_TYPE_NVGRE
-#define RTE_TUNNEL_TYPE_IP_IN_GRE      RTE_ETH_TUNNEL_TYPE_IP_IN_GRE
-#define RTE_L2_TUNNEL_TYPE_E_TAG       RTE_ETH_L2_TUNNEL_TYPE_E_TAG
-#define RTE_TUNNEL_TYPE_VXLAN_GPE      RTE_ETH_TUNNEL_TYPE_VXLAN_GPE
-#define RTE_TUNNEL_TYPE_ECPRI          RTE_ETH_TUNNEL_TYPE_ECPRI
-#define RTE_TUNNEL_TYPE_MAX            RTE_ETH_TUNNEL_TYPE_MAX
+#define RTE_TUNNEL_TYPE_NONE      RTE_DEPRECATED(RTE_TUNNEL_TYPE_NONE)      RTE_ETH_TUNNEL_TYPE_NONE
+#define RTE_TUNNEL_TYPE_VXLAN     RTE_DEPRECATED(RTE_TUNNEL_TYPE_VXLAN)     RTE_ETH_TUNNEL_TYPE_VXLAN
+#define RTE_TUNNEL_TYPE_GENEVE    RTE_DEPRECATED(RTE_TUNNEL_TYPE_GENEVE)    RTE_ETH_TUNNEL_TYPE_GENEVE
+#define RTE_TUNNEL_TYPE_TEREDO    RTE_DEPRECATED(RTE_TUNNEL_TYPE_TEREDO)    RTE_ETH_TUNNEL_TYPE_TEREDO
+#define RTE_TUNNEL_TYPE_NVGRE     RTE_DEPRECATED(RTE_TUNNEL_TYPE_NVGRE)     RTE_ETH_TUNNEL_TYPE_NVGRE
+#define RTE_TUNNEL_TYPE_IP_IN_GRE RTE_DEPRECATED(RTE_TUNNEL_TYPE_IP_IN_GRE) RTE_ETH_TUNNEL_TYPE_IP_IN_GRE
+#define RTE_L2_TUNNEL_TYPE_E_TAG  RTE_DEPRECATED(RTE_L2_TUNNEL_TYPE_E_TAG)  RTE_ETH_L2_TUNNEL_TYPE_E_TAG
+#define RTE_TUNNEL_TYPE_VXLAN_GPE RTE_DEPRECATED(RTE_TUNNEL_TYPE_VXLAN_GPE) RTE_ETH_TUNNEL_TYPE_VXLAN_GPE
+#define RTE_TUNNEL_TYPE_ECPRI     RTE_DEPRECATED(RTE_TUNNEL_TYPE_ECPRI)     RTE_ETH_TUNNEL_TYPE_ECPRI
+#define RTE_TUNNEL_TYPE_MAX       RTE_DEPRECATED(RTE_TUNNEL_TYPE_MAX)       RTE_ETH_TUNNEL_TYPE_MAX
 
 /* Deprecated API file for rte_eth_dev_filter_* functions */
 #include "rte_eth_ctrl.h"
@@ -1431,9 +1504,9 @@ enum rte_eth_fdir_pballoc_type {
 };
 #define rte_fdir_pballoc_type  rte_eth_fdir_pballoc_type
 
-#define RTE_FDIR_PBALLOC_64K   RTE_ETH_FDIR_PBALLOC_64K
-#define RTE_FDIR_PBALLOC_128K  RTE_ETH_FDIR_PBALLOC_128K
-#define RTE_FDIR_PBALLOC_256K  RTE_ETH_FDIR_PBALLOC_256K
+#define RTE_FDIR_PBALLOC_64K  RTE_DEPRECATED(RTE_FDIR_PBALLOC_64K)  RTE_ETH_FDIR_PBALLOC_64K
+#define RTE_FDIR_PBALLOC_128K RTE_DEPRECATED(RTE_FDIR_PBALLOC_128K) RTE_ETH_FDIR_PBALLOC_128K
+#define RTE_FDIR_PBALLOC_256K RTE_DEPRECATED(RTE_FDIR_PBALLOC_256K) RTE_ETH_FDIR_PBALLOC_256K
 
 /**
  *  Select report mode of FDIR hash information in Rx descriptors.
@@ -1460,7 +1533,6 @@ struct rte_eth_fdir_conf {
        /** Flex payload configuration. */
        struct rte_eth_fdir_flex_conf flex_conf;
 };
-
 #define rte_fdir_conf rte_eth_fdir_conf
 
 /**
@@ -1539,57 +1611,58 @@ struct rte_eth_conf {
  * Rx offload capabilities of a device.
  */
 #define RTE_ETH_RX_OFFLOAD_VLAN_STRIP       RTE_BIT64(0)
-#define DEV_RX_OFFLOAD_VLAN_STRIP           RTE_ETH_RX_OFFLOAD_VLAN_STRIP
 #define RTE_ETH_RX_OFFLOAD_IPV4_CKSUM       RTE_BIT64(1)
-#define DEV_RX_OFFLOAD_IPV4_CKSUM           RTE_ETH_RX_OFFLOAD_IPV4_CKSUM
 #define RTE_ETH_RX_OFFLOAD_UDP_CKSUM        RTE_BIT64(2)
-#define DEV_RX_OFFLOAD_UDP_CKSUM            RTE_ETH_RX_OFFLOAD_UDP_CKSUM
 #define RTE_ETH_RX_OFFLOAD_TCP_CKSUM        RTE_BIT64(3)
-#define DEV_RX_OFFLOAD_TCP_CKSUM            RTE_ETH_RX_OFFLOAD_TCP_CKSUM
 #define RTE_ETH_RX_OFFLOAD_TCP_LRO          RTE_BIT64(4)
-#define DEV_RX_OFFLOAD_TCP_LRO              RTE_ETH_RX_OFFLOAD_TCP_LRO
 #define RTE_ETH_RX_OFFLOAD_QINQ_STRIP       RTE_BIT64(5)
-#define DEV_RX_OFFLOAD_QINQ_STRIP           RTE_ETH_RX_OFFLOAD_QINQ_STRIP
 #define RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM RTE_BIT64(6)
-#define DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM     RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM
 #define RTE_ETH_RX_OFFLOAD_MACSEC_STRIP     RTE_BIT64(7)
-#define DEV_RX_OFFLOAD_MACSEC_STRIP         RTE_ETH_RX_OFFLOAD_MACSEC_STRIP
 #define RTE_ETH_RX_OFFLOAD_HEADER_SPLIT     RTE_BIT64(8)
-#define DEV_RX_OFFLOAD_HEADER_SPLIT         RTE_ETH_RX_OFFLOAD_HEADER_SPLIT
 #define RTE_ETH_RX_OFFLOAD_VLAN_FILTER      RTE_BIT64(9)
-#define DEV_RX_OFFLOAD_VLAN_FILTER          RTE_ETH_RX_OFFLOAD_VLAN_FILTER
 #define RTE_ETH_RX_OFFLOAD_VLAN_EXTEND      RTE_BIT64(10)
-#define DEV_RX_OFFLOAD_VLAN_EXTEND          RTE_ETH_RX_OFFLOAD_VLAN_EXTEND
 #define RTE_ETH_RX_OFFLOAD_SCATTER          RTE_BIT64(13)
-#define DEV_RX_OFFLOAD_SCATTER              RTE_ETH_RX_OFFLOAD_SCATTER
 /**
  * Timestamp is set by the driver in RTE_MBUF_DYNFIELD_TIMESTAMP_NAME
  * and RTE_MBUF_DYNFLAG_RX_TIMESTAMP_NAME is set in ol_flags.
  * The mbuf field and flag are registered when the offload is configured.
  */
 #define RTE_ETH_RX_OFFLOAD_TIMESTAMP        RTE_BIT64(14)
-#define DEV_RX_OFFLOAD_TIMESTAMP            RTE_ETH_RX_OFFLOAD_TIMESTAMP
 #define RTE_ETH_RX_OFFLOAD_SECURITY         RTE_BIT64(15)
-#define DEV_RX_OFFLOAD_SECURITY             RTE_ETH_RX_OFFLOAD_SECURITY
 #define RTE_ETH_RX_OFFLOAD_KEEP_CRC         RTE_BIT64(16)
-#define DEV_RX_OFFLOAD_KEEP_CRC             RTE_ETH_RX_OFFLOAD_KEEP_CRC
 #define RTE_ETH_RX_OFFLOAD_SCTP_CKSUM       RTE_BIT64(17)
-#define DEV_RX_OFFLOAD_SCTP_CKSUM           RTE_ETH_RX_OFFLOAD_SCTP_CKSUM
 #define RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM  RTE_BIT64(18)
-#define DEV_RX_OFFLOAD_OUTER_UDP_CKSUM      RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM
 #define RTE_ETH_RX_OFFLOAD_RSS_HASH         RTE_BIT64(19)
-#define DEV_RX_OFFLOAD_RSS_HASH             RTE_ETH_RX_OFFLOAD_RSS_HASH
 #define RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT     RTE_BIT64(20)
 
+#define DEV_RX_OFFLOAD_VLAN_STRIP       RTE_DEPRECATED(DEV_RX_OFFLOAD_VLAN_STRIP)       RTE_ETH_RX_OFFLOAD_VLAN_STRIP
+#define DEV_RX_OFFLOAD_IPV4_CKSUM       RTE_DEPRECATED(DEV_RX_OFFLOAD_IPV4_CKSUM)       RTE_ETH_RX_OFFLOAD_IPV4_CKSUM
+#define DEV_RX_OFFLOAD_UDP_CKSUM        RTE_DEPRECATED(DEV_RX_OFFLOAD_UDP_CKSUM)        RTE_ETH_RX_OFFLOAD_UDP_CKSUM
+#define DEV_RX_OFFLOAD_TCP_CKSUM        RTE_DEPRECATED(DEV_RX_OFFLOAD_TCP_CKSUM)        RTE_ETH_RX_OFFLOAD_TCP_CKSUM
+#define DEV_RX_OFFLOAD_TCP_LRO          RTE_DEPRECATED(DEV_RX_OFFLOAD_TCP_LRO)          RTE_ETH_RX_OFFLOAD_TCP_LRO
+#define DEV_RX_OFFLOAD_QINQ_STRIP       RTE_DEPRECATED(DEV_RX_OFFLOAD_QINQ_STRIP)       RTE_ETH_RX_OFFLOAD_QINQ_STRIP
+#define DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM RTE_DEPRECATED(DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM) RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM
+#define DEV_RX_OFFLOAD_MACSEC_STRIP     RTE_DEPRECATED(DEV_RX_OFFLOAD_MACSEC_STRIP)     RTE_ETH_RX_OFFLOAD_MACSEC_STRIP
+#define DEV_RX_OFFLOAD_HEADER_SPLIT     RTE_DEPRECATED(DEV_RX_OFFLOAD_HEADER_SPLIT)     RTE_ETH_RX_OFFLOAD_HEADER_SPLIT
+#define DEV_RX_OFFLOAD_VLAN_FILTER      RTE_DEPRECATED(DEV_RX_OFFLOAD_VLAN_FILTER)      RTE_ETH_RX_OFFLOAD_VLAN_FILTER
+#define DEV_RX_OFFLOAD_VLAN_EXTEND      RTE_DEPRECATED(DEV_RX_OFFLOAD_VLAN_EXTEND)      RTE_ETH_RX_OFFLOAD_VLAN_EXTEND
+#define DEV_RX_OFFLOAD_SCATTER          RTE_DEPRECATED(DEV_RX_OFFLOAD_SCATTER)          RTE_ETH_RX_OFFLOAD_SCATTER
+#define DEV_RX_OFFLOAD_TIMESTAMP        RTE_DEPRECATED(DEV_RX_OFFLOAD_TIMESTAMP)        RTE_ETH_RX_OFFLOAD_TIMESTAMP
+#define DEV_RX_OFFLOAD_SECURITY         RTE_DEPRECATED(DEV_RX_OFFLOAD_SECURITY)         RTE_ETH_RX_OFFLOAD_SECURITY
+#define DEV_RX_OFFLOAD_KEEP_CRC         RTE_DEPRECATED(DEV_RX_OFFLOAD_KEEP_CRC)         RTE_ETH_RX_OFFLOAD_KEEP_CRC
+#define DEV_RX_OFFLOAD_SCTP_CKSUM       RTE_DEPRECATED(DEV_RX_OFFLOAD_SCTP_CKSUM)       RTE_ETH_RX_OFFLOAD_SCTP_CKSUM
+#define DEV_RX_OFFLOAD_OUTER_UDP_CKSUM  RTE_DEPRECATED(DEV_RX_OFFLOAD_OUTER_UDP_CKSUM)  RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM
+#define DEV_RX_OFFLOAD_RSS_HASH         RTE_DEPRECATED(DEV_RX_OFFLOAD_RSS_HASH)         RTE_ETH_RX_OFFLOAD_RSS_HASH
+
 #define RTE_ETH_RX_OFFLOAD_CHECKSUM (RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | \
                                 RTE_ETH_RX_OFFLOAD_UDP_CKSUM | \
                                 RTE_ETH_RX_OFFLOAD_TCP_CKSUM)
-#define DEV_RX_OFFLOAD_CHECKSUM        RTE_ETH_RX_OFFLOAD_CHECKSUM
+#define DEV_RX_OFFLOAD_CHECKSUM RTE_DEPRECATED(DEV_RX_OFFLOAD_CHECKSUM) RTE_ETH_RX_OFFLOAD_CHECKSUM
 #define RTE_ETH_RX_OFFLOAD_VLAN (RTE_ETH_RX_OFFLOAD_VLAN_STRIP | \
                             RTE_ETH_RX_OFFLOAD_VLAN_FILTER | \
                             RTE_ETH_RX_OFFLOAD_VLAN_EXTEND | \
                             RTE_ETH_RX_OFFLOAD_QINQ_STRIP)
-#define DEV_RX_OFFLOAD_VLAN    RTE_ETH_RX_OFFLOAD_VLAN
+#define DEV_RX_OFFLOAD_VLAN RTE_DEPRECATED(DEV_RX_OFFLOAD_VLAN) RTE_ETH_RX_OFFLOAD_VLAN
 
 /*
  * If new Rx offload capabilities are defined, they also must be
@@ -1600,80 +1673,81 @@ struct rte_eth_conf {
  * Tx offload capabilities of a device.
  */
 #define RTE_ETH_TX_OFFLOAD_VLAN_INSERT      RTE_BIT64(0)
-#define DEV_TX_OFFLOAD_VLAN_INSERT          RTE_ETH_TX_OFFLOAD_VLAN_INSERT
 #define RTE_ETH_TX_OFFLOAD_IPV4_CKSUM       RTE_BIT64(1)
-#define DEV_TX_OFFLOAD_IPV4_CKSUM           RTE_ETH_TX_OFFLOAD_IPV4_CKSUM
 #define RTE_ETH_TX_OFFLOAD_UDP_CKSUM        RTE_BIT64(2)
-#define DEV_TX_OFFLOAD_UDP_CKSUM            RTE_ETH_TX_OFFLOAD_UDP_CKSUM
 #define RTE_ETH_TX_OFFLOAD_TCP_CKSUM        RTE_BIT64(3)
-#define DEV_TX_OFFLOAD_TCP_CKSUM            RTE_ETH_TX_OFFLOAD_TCP_CKSUM
 #define RTE_ETH_TX_OFFLOAD_SCTP_CKSUM       RTE_BIT64(4)
-#define DEV_TX_OFFLOAD_SCTP_CKSUM           RTE_ETH_TX_OFFLOAD_SCTP_CKSUM
 #define RTE_ETH_TX_OFFLOAD_TCP_TSO          RTE_BIT64(5)
-#define DEV_TX_OFFLOAD_TCP_TSO              RTE_ETH_TX_OFFLOAD_TCP_TSO
 #define RTE_ETH_TX_OFFLOAD_UDP_TSO          RTE_BIT64(6)
-#define DEV_TX_OFFLOAD_UDP_TSO              RTE_ETH_TX_OFFLOAD_UDP_TSO
 #define RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM RTE_BIT64(7)  /**< Used for tunneling packet. */
-#define DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM     RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM
 #define RTE_ETH_TX_OFFLOAD_QINQ_INSERT      RTE_BIT64(8)
-#define DEV_TX_OFFLOAD_QINQ_INSERT          RTE_ETH_TX_OFFLOAD_QINQ_INSERT
 #define RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO    RTE_BIT64(9)  /**< Used for tunneling packet. */
-#define DEV_TX_OFFLOAD_VXLAN_TNL_TSO        RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO
 #define RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO      RTE_BIT64(10) /**< Used for tunneling packet. */
-#define DEV_TX_OFFLOAD_GRE_TNL_TSO          RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO
 #define RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO     RTE_BIT64(11) /**< Used for tunneling packet. */
-#define DEV_TX_OFFLOAD_IPIP_TNL_TSO         RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO
 #define RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO   RTE_BIT64(12) /**< Used for tunneling packet. */
-#define DEV_TX_OFFLOAD_GENEVE_TNL_TSO       RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO
 #define RTE_ETH_TX_OFFLOAD_MACSEC_INSERT    RTE_BIT64(13)
-#define DEV_TX_OFFLOAD_MACSEC_INSERT        RTE_ETH_TX_OFFLOAD_MACSEC_INSERT
 /**
  * Multiple threads can invoke rte_eth_tx_burst() concurrently on the same
  * Tx queue without SW lock.
  */
 #define RTE_ETH_TX_OFFLOAD_MT_LOCKFREE      RTE_BIT64(14)
-#define DEV_TX_OFFLOAD_MT_LOCKFREE          RTE_ETH_TX_OFFLOAD_MT_LOCKFREE
 /** Device supports multi segment send. */
 #define RTE_ETH_TX_OFFLOAD_MULTI_SEGS       RTE_BIT64(15)
-#define DEV_TX_OFFLOAD_MULTI_SEGS           RTE_ETH_TX_OFFLOAD_MULTI_SEGS
 /**
  * Device supports optimization for fast release of mbufs.
  * When set application must guarantee that per-queue all mbufs comes from
  * the same mempool and has refcnt = 1.
  */
 #define RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE   RTE_BIT64(16)
-#define DEV_TX_OFFLOAD_MBUF_FAST_FREE       RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE
 #define RTE_ETH_TX_OFFLOAD_SECURITY         RTE_BIT64(17)
-#define DEV_TX_OFFLOAD_SECURITY             RTE_ETH_TX_OFFLOAD_SECURITY
 /**
  * Device supports generic UDP tunneled packet TSO.
- * Application must set PKT_TX_TUNNEL_UDP and other mbuf fields required
+ * Application must set RTE_MBUF_F_TX_TUNNEL_UDP and other mbuf fields required
  * for tunnel TSO.
  */
 #define RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO      RTE_BIT64(18)
-#define DEV_TX_OFFLOAD_UDP_TNL_TSO          RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO
 /**
  * Device supports generic IP tunneled packet TSO.
- * Application must set PKT_TX_TUNNEL_IP and other mbuf fields required
+ * Application must set RTE_MBUF_F_TX_TUNNEL_IP and other mbuf fields required
  * for tunnel TSO.
  */
 #define RTE_ETH_TX_OFFLOAD_IP_TNL_TSO       RTE_BIT64(19)
-#define DEV_TX_OFFLOAD_IP_TNL_TSO           RTE_ETH_TX_OFFLOAD_IP_TNL_TSO
 /** Device supports outer UDP checksum */
 #define RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM  RTE_BIT64(20)
-#define DEV_TX_OFFLOAD_OUTER_UDP_CKSUM      RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM
 /**
  * Device sends on time read from RTE_MBUF_DYNFIELD_TIMESTAMP_NAME
  * if RTE_MBUF_DYNFLAG_TX_TIMESTAMP_NAME is set in ol_flags.
  * The mbuf field and flag are registered when the offload is configured.
  */
 #define RTE_ETH_TX_OFFLOAD_SEND_ON_TIMESTAMP RTE_BIT64(21)
-#define DEV_TX_OFFLOAD_SEND_ON_TIMESTAMP     RTE_ETH_TX_OFFLOAD_SEND_ON_TIMESTAMP
 /*
  * If new Tx offload capabilities are defined, they also must be
  * mentioned in rte_tx_offload_names in rte_ethdev.c file.
  */
 
+#define DEV_TX_OFFLOAD_VLAN_INSERT       RTE_DEPRECATED(DEV_TX_OFFLOAD_VLAN_INSERT)       RTE_ETH_TX_OFFLOAD_VLAN_INSERT
+#define DEV_TX_OFFLOAD_IPV4_CKSUM        RTE_DEPRECATED(DEV_TX_OFFLOAD_IPV4_CKSUM)        RTE_ETH_TX_OFFLOAD_IPV4_CKSUM
+#define DEV_TX_OFFLOAD_UDP_CKSUM         RTE_DEPRECATED(DEV_TX_OFFLOAD_UDP_CKSUM)         RTE_ETH_TX_OFFLOAD_UDP_CKSUM
+#define DEV_TX_OFFLOAD_TCP_CKSUM         RTE_DEPRECATED(DEV_TX_OFFLOAD_TCP_CKSUM)         RTE_ETH_TX_OFFLOAD_TCP_CKSUM
+#define DEV_TX_OFFLOAD_SCTP_CKSUM        RTE_DEPRECATED(DEV_TX_OFFLOAD_SCTP_CKSUM)        RTE_ETH_TX_OFFLOAD_SCTP_CKSUM
+#define DEV_TX_OFFLOAD_TCP_TSO           RTE_DEPRECATED(DEV_TX_OFFLOAD_TCP_TSO)           RTE_ETH_TX_OFFLOAD_TCP_TSO
+#define DEV_TX_OFFLOAD_UDP_TSO           RTE_DEPRECATED(DEV_TX_OFFLOAD_UDP_TSO)           RTE_ETH_TX_OFFLOAD_UDP_TSO
+#define DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM  RTE_DEPRECATED(DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM)  RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM
+#define DEV_TX_OFFLOAD_QINQ_INSERT       RTE_DEPRECATED(DEV_TX_OFFLOAD_QINQ_INSERT)       RTE_ETH_TX_OFFLOAD_QINQ_INSERT
+#define DEV_TX_OFFLOAD_VXLAN_TNL_TSO     RTE_DEPRECATED(DEV_TX_OFFLOAD_VXLAN_TNL_TSO)     RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO
+#define DEV_TX_OFFLOAD_GRE_TNL_TSO       RTE_DEPRECATED(DEV_TX_OFFLOAD_GRE_TNL_TSO)       RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO
+#define DEV_TX_OFFLOAD_IPIP_TNL_TSO      RTE_DEPRECATED(DEV_TX_OFFLOAD_IPIP_TNL_TSO)      RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO
+#define DEV_TX_OFFLOAD_GENEVE_TNL_TSO    RTE_DEPRECATED(DEV_TX_OFFLOAD_GENEVE_TNL_TSO)    RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO
+#define DEV_TX_OFFLOAD_MACSEC_INSERT     RTE_DEPRECATED(DEV_TX_OFFLOAD_MACSEC_INSERT)     RTE_ETH_TX_OFFLOAD_MACSEC_INSERT
+#define DEV_TX_OFFLOAD_MT_LOCKFREE       RTE_DEPRECATED(DEV_TX_OFFLOAD_MT_LOCKFREE)       RTE_ETH_TX_OFFLOAD_MT_LOCKFREE
+#define DEV_TX_OFFLOAD_MULTI_SEGS        RTE_DEPRECATED(DEV_TX_OFFLOAD_MULTI_SEGS)        RTE_ETH_TX_OFFLOAD_MULTI_SEGS
+#define DEV_TX_OFFLOAD_MBUF_FAST_FREE    RTE_DEPRECATED(DEV_TX_OFFLOAD_MBUF_FAST_FREE)    RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE
+#define DEV_TX_OFFLOAD_SECURITY          RTE_DEPRECATED(DEV_TX_OFFLOAD_SECURITY)          RTE_ETH_TX_OFFLOAD_SECURITY
+#define DEV_TX_OFFLOAD_UDP_TNL_TSO       RTE_DEPRECATED(DEV_TX_OFFLOAD_UDP_TNL_TSO)       RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO
+#define DEV_TX_OFFLOAD_IP_TNL_TSO        RTE_DEPRECATED(DEV_TX_OFFLOAD_IP_TNL_TSO)        RTE_ETH_TX_OFFLOAD_IP_TNL_TSO
+#define DEV_TX_OFFLOAD_OUTER_UDP_CKSUM   RTE_DEPRECATED(DEV_TX_OFFLOAD_OUTER_UDP_CKSUM)   RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM
+#define DEV_TX_OFFLOAD_SEND_ON_TIMESTAMP RTE_DEPRECATED(DEV_TX_OFFLOAD_SEND_ON_TIMESTAMP) RTE_ETH_TX_OFFLOAD_SEND_ON_TIMESTAMP
+
 /**@{@name Device capabilities
  * Non-offload capabilities reported in rte_eth_dev_info.dev_capa.
  */
@@ -1691,6 +1765,10 @@ struct rte_eth_conf {
  * mbuf->port field.
  */
 #define RTE_ETH_DEV_CAPA_RXQ_SHARE              RTE_BIT64(2)
+/** Device supports keeping flow rules across restart. */
+#define RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP         RTE_BIT64(3)
+/** Device supports keeping shared flow objects across restart. */
+#define RTE_ETH_DEV_CAPA_FLOW_SHARED_OBJECT_KEEP RTE_BIT64(4)
 /**@}*/
 
 /*
@@ -1921,9 +1999,10 @@ struct rte_eth_xstat_name {
 };
 
 #define RTE_ETH_DCB_NUM_TCS    8
-#define ETH_DCB_NUM_TCS        RTE_ETH_DCB_NUM_TCS
 #define RTE_ETH_MAX_VMDQ_POOL  64
-#define ETH_MAX_VMDQ_POOL      RTE_ETH_MAX_VMDQ_POOL
+
+#define ETH_DCB_NUM_TCS   RTE_DEPRECATED(ETH_DCB_NUM_TCS)   RTE_ETH_DCB_NUM_TCS
+#define ETH_MAX_VMDQ_POOL RTE_DEPRECATED(ETH_MAX_VMDQ_POOL) RTE_ETH_MAX_VMDQ_POOL
 
 /**
  * A structure used to get the information of queue and
@@ -2385,9 +2464,6 @@ int rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_queue,
                uint16_t nb_tx_queue, const struct rte_eth_conf *eth_conf);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
  * Check if an Ethernet device was physically removed.
  *
  * @param port_id
@@ -2395,7 +2471,6 @@ int rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_queue,
  * @return
  *   1 when the Ethernet device is removed, otherwise 0.
  */
-__rte_experimental
 int
 rte_eth_dev_is_removed(uint16_t port_id);
 
@@ -2604,7 +2679,7 @@ int rte_eth_tx_hairpin_queue_setup
  *   - (-EINVAL) if bad parameter.
  *   - (-ENODEV) if *port_id* invalid
  *   - (-ENOTSUP) if hardware doesn't support.
- *   - Others detailed errors from PMD drivers.
+ *   - Others detailed errors from PMDs.
  */
 __rte_experimental
 int rte_eth_hairpin_get_peer_ports(uint16_t port_id, uint16_t *peer_ports,
@@ -2630,7 +2705,7 @@ int rte_eth_hairpin_get_peer_ports(uint16_t port_id, uint16_t *peer_ports,
  *   - (-ENODEV) if Tx port ID is invalid.
  *   - (-EBUSY) if device is not in started state.
  *   - (-ENOTSUP) if hardware doesn't support.
- *   - Others detailed errors from PMD drivers.
+ *   - Others detailed errors from PMDs.
  */
 __rte_experimental
 int rte_eth_hairpin_bind(uint16_t tx_port, uint16_t rx_port);
@@ -2657,7 +2732,7 @@ int rte_eth_hairpin_bind(uint16_t tx_port, uint16_t rx_port);
  *   - (-ENODEV) if Tx port ID is invalid.
  *   - (-EBUSY) if device is in stopped state.
  *   - (-ENOTSUP) if hardware doesn't support.
- *   - Others detailed errors from PMD drivers.
+ *   - Others detailed errors from PMDs.
  */
 __rte_experimental
 int rte_eth_hairpin_unbind(uint16_t tx_port, uint16_t rx_port);
@@ -2700,7 +2775,7 @@ int rte_eth_dev_is_valid_port(uint16_t port_id);
  *   - -ENODEV: if *port_id* is invalid.
  *   - -EINVAL: The queue_id out of range or belong to hairpin.
  *   - -EIO: if device is removed.
- *   - -ENOTSUP: The function not supported in PMD driver.
+ *   - -ENOTSUP: The function not supported in PMD.
  */
 int rte_eth_dev_rx_queue_start(uint16_t port_id, uint16_t rx_queue_id);
 
@@ -2718,7 +2793,7 @@ int rte_eth_dev_rx_queue_start(uint16_t port_id, uint16_t rx_queue_id);
  *   - -ENODEV: if *port_id* is invalid.
  *   - -EINVAL: The queue_id out of range or belong to hairpin.
  *   - -EIO: if device is removed.
- *   - -ENOTSUP: The function not supported in PMD driver.
+ *   - -ENOTSUP: The function not supported in PMD.
  */
 int rte_eth_dev_rx_queue_stop(uint16_t port_id, uint16_t rx_queue_id);
 
@@ -2737,7 +2812,7 @@ int rte_eth_dev_rx_queue_stop(uint16_t port_id, uint16_t rx_queue_id);
  *   - -ENODEV: if *port_id* is invalid.
  *   - -EINVAL: The queue_id out of range or belong to hairpin.
  *   - -EIO: if device is removed.
- *   - -ENOTSUP: The function not supported in PMD driver.
+ *   - -ENOTSUP: The function not supported in PMD.
  */
 int rte_eth_dev_tx_queue_start(uint16_t port_id, uint16_t tx_queue_id);
 
@@ -2755,7 +2830,7 @@ int rte_eth_dev_tx_queue_start(uint16_t port_id, uint16_t tx_queue_id);
  *   - -ENODEV: if *port_id* is invalid.
  *   - -EINVAL: The queue_id out of range or belong to hairpin.
  *   - -EIO: if device is removed.
- *   - -ENOTSUP: The function not supported in PMD driver.
+ *   - -ENOTSUP: The function not supported in PMD.
  */
 int rte_eth_dev_tx_queue_stop(uint16_t port_id, uint16_t tx_queue_id);
 
@@ -2957,7 +3032,7 @@ int rte_eth_allmulticast_get(uint16_t port_id);
  *   Link information written back.
  * @return
  *   - (0) if successful.
- *   - (-ENOTSUP) if the function is not supported in PMD driver.
+ *   - (-ENOTSUP) if the function is not supported in PMD.
  *   - (-ENODEV) if *port_id* invalid.
  *   - (-EINVAL) if bad parameter.
  */
@@ -2973,7 +3048,7 @@ int rte_eth_link_get(uint16_t port_id, struct rte_eth_link *link);
  *   Link information written back.
  * @return
  *   - (0) if successful.
- *   - (-ENOTSUP) if the function is not supported in PMD driver.
+ *   - (-ENOTSUP) if the function is not supported in PMD.
  *   - (-ENODEV) if *port_id* invalid.
  *   - (-EINVAL) if bad parameter.
  */
@@ -4138,6 +4213,54 @@ int rte_eth_dev_priority_flow_ctrl_set(uint16_t port_id,
 int rte_eth_dev_mac_addr_add(uint16_t port_id, struct rte_ether_addr *mac_addr,
                                uint32_t pool);
 
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice.
+ *
+ * Retrieve the information for queue based PFC.
+ *
+ * @param port_id
+ *   The port identifier of the Ethernet device.
+ * @param pfc_queue_info
+ *   A pointer to a structure of type *rte_eth_pfc_queue_info* to be filled with
+ *   the information about queue based PFC.
+ * @return
+ *   - (0) if successful.
+ *   - (-ENOTSUP) if support for priority_flow_ctrl_queue_info_get does not exist.
+ *   - (-ENODEV) if *port_id* invalid.
+ *   - (-EINVAL) if bad parameter.
+ */
+__rte_experimental
+int rte_eth_dev_priority_flow_ctrl_queue_info_get(uint16_t port_id,
+               struct rte_eth_pfc_queue_info *pfc_queue_info);
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice.
+ *
+ * Configure the queue based priority flow control for a given queue
+ * for Ethernet device.
+ *
+ * @note When an ethdev port switches to queue based PFC mode, the
+ * unconfigured queues shall be configured by the driver with
+ * default values such as lower priority value for TC etc.
+ *
+ * @param port_id
+ *   The port identifier of the Ethernet device.
+ * @param pfc_queue_conf
+ *   The pointer to the structure of the priority flow control parameters
+ *   for the queue.
+ * @return
+ *   - (0) if successful.
+ *   - (-ENOTSUP) if hardware doesn't support queue based PFC mode.
+ *   - (-ENODEV)  if *port_id* invalid.
+ *   - (-EINVAL)  if bad parameter
+ *   - (-EIO)     if flow control setup queue failure
+ */
+__rte_experimental
+int rte_eth_dev_priority_flow_ctrl_queue_configure(uint16_t port_id,
+               struct rte_eth_pfc_queue_conf *pfc_queue_conf);
+
 /**
  * Remove a MAC address from the internal array of addresses.
  *
@@ -5182,6 +5305,153 @@ int rte_eth_representor_info_get(uint16_t port_id,
 __rte_experimental
 int rte_eth_rx_metadata_negotiate(uint16_t port_id, uint64_t *features);
 
+/** Flag to offload IP reassembly for IPv4 packets. */
+#define RTE_ETH_DEV_REASSEMBLY_F_IPV4 (RTE_BIT32(0))
+/** Flag to offload IP reassembly for IPv6 packets. */
+#define RTE_ETH_DEV_REASSEMBLY_F_IPV6 (RTE_BIT32(1))
+
+/**
+ * A structure used to get/set IP reassembly configuration. It is also used
+ * to get the maximum capability values that a PMD can support.
+ *
+ * If rte_eth_ip_reassembly_capability_get() returns 0, IP reassembly can be
+ * enabled using rte_eth_ip_reassembly_conf_set() and params values lower than
+ * capability params can be set in the PMD.
+ */
+struct rte_eth_ip_reassembly_params {
+       /** Maximum time in ms which PMD can wait for other fragments. */
+       uint32_t timeout_ms;
+       /** Maximum number of fragments that can be reassembled. */
+       uint16_t max_frags;
+       /**
+        * Flags to enable reassembly of packet types -
+        * RTE_ETH_DEV_REASSEMBLY_F_xxx.
+        */
+       uint16_t flags;
+};
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * Get IP reassembly capabilities supported by the PMD. This is the first API
+ * to be called for enabling the IP reassembly offload feature. PMD will return
+ * the maximum values of parameters that PMD can support and user can call
+ * rte_eth_ip_reassembly_conf_set() with param values lower than capability.
+ *
+ * @param port_id
+ *   The port identifier of the device.
+ * @param capa
+ *   A pointer to rte_eth_ip_reassembly_params structure.
+ * @return
+ *   - (-ENOTSUP) if offload configuration is not supported by device.
+ *   - (-ENODEV) if *port_id* invalid.
+ *   - (-EIO) if device is removed.
+ *   - (-EINVAL) if device is not configured or *capa* passed is NULL.
+ *   - (0) on success.
+ */
+__rte_experimental
+int rte_eth_ip_reassembly_capability_get(uint16_t port_id,
+               struct rte_eth_ip_reassembly_params *capa);
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * Get IP reassembly configuration parameters currently set in PMD.
+ * The API will return error if the configuration is not already
+ * set using rte_eth_ip_reassembly_conf_set() before calling this API or if
+ * the device is not configured.
+ *
+ * @param port_id
+ *   The port identifier of the device.
+ * @param conf
+ *   A pointer to rte_eth_ip_reassembly_params structure.
+ * @return
+ *   - (-ENOTSUP) if offload configuration is not supported by device.
+ *   - (-ENODEV) if *port_id* invalid.
+ *   - (-EIO) if device is removed.
+ *   - (-EINVAL) if device is not configured or if *conf* passed is NULL or if
+ *              configuration is not set using rte_eth_ip_reassembly_conf_set().
+ *   - (0) on success.
+ */
+__rte_experimental
+int rte_eth_ip_reassembly_conf_get(uint16_t port_id,
+               struct rte_eth_ip_reassembly_params *conf);
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * Set IP reassembly configuration parameters if the PMD supports IP reassembly
+ * offload. User should first call rte_eth_ip_reassembly_capability_get() to
+ * check the maximum values supported by the PMD before setting the
+ * configuration. The use of this API is mandatory to enable this feature and
+ * should be called before rte_eth_dev_start().
+ *
+ * In datapath, PMD cannot guarantee that IP reassembly is always successful.
+ * Hence, PMD shall register mbuf dynamic field and dynamic flag using
+ * rte_eth_ip_reassembly_dynfield_register() to denote incomplete IP reassembly.
+ * If dynfield is not successfully registered, error will be returned and
+ * IP reassembly offload cannot be used.
+ *
+ * @param port_id
+ *   The port identifier of the device.
+ * @param conf
+ *   A pointer to rte_eth_ip_reassembly_params structure.
+ * @return
+ *   - (-ENOTSUP) if offload configuration is not supported by device.
+ *   - (-ENODEV) if *port_id* invalid.
+ *   - (-EIO) if device is removed.
+ *   - (-EINVAL) if device is not configured or if device is already started or
+ *               if *conf* passed is NULL or if mbuf dynfield is not registered
+ *               successfully by the PMD.
+ *   - (0) on success.
+ */
+__rte_experimental
+int rte_eth_ip_reassembly_conf_set(uint16_t port_id,
+               const struct rte_eth_ip_reassembly_params *conf);
+
+/**
+ * In case of IP reassembly offload failure, packet will be updated with
+ * dynamic flag - RTE_MBUF_DYNFLAG_IP_REASSEMBLY_INCOMPLETE_NAME and packets
+ * will be returned without alteration.
+ * The application can retrieve the attached fragments using mbuf dynamic field
+ * RTE_MBUF_DYNFIELD_IP_REASSEMBLY_NAME.
+ */
+typedef struct {
+       /**
+        * Next fragment packet. Application should fetch dynamic field of
+        * each fragment until a NULL is received and nb_frags is 0.
+        */
+       struct rte_mbuf *next_frag;
+       /** Time spent(in ms) by HW in waiting for further fragments. */
+       uint16_t time_spent;
+       /** Number of more fragments attached in mbuf dynamic fields. */
+       uint16_t nb_frags;
+} rte_eth_ip_reassembly_dynfield_t;
+
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
+ *
+ * Dump private info from device to a file. Provided data and the order depends
+ * on the PMD.
+ *
+ * @param port_id
+ *   The port identifier of the Ethernet device.
+ * @param file
+ *   A pointer to a file for output.
+ * @return
+ *   - (0) on success.
+ *   - (-ENODEV) if *port_id* is invalid.
+ *   - (-EINVAL) if null file.
+ *   - (-ENOTSUP) if the device does not support this function.
+ *   - (-EIO) if device is removed.
+ */
+__rte_experimental
+int rte_eth_dev_priv_dump(uint16_t port_id, FILE *file);
+
 #include <rte_ethdev_core.h>
 
 /**