]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
dpdk: port deprecated DPDK macros to the newer forms
authorLukas Sismis <lsismis@oisf.net>
Thu, 13 Oct 2022 13:12:27 +0000 (15:12 +0200)
committerVictor Julien <vjulien@oisf.net>
Tue, 24 Jan 2023 09:44:49 +0000 (10:44 +0100)
src/runmode-dpdk.c
src/util-dpdk-i40e.c
src/util-dpdk-ice.c
src/util-dpdk-ixgbe.c
src/util-dpdk.h

index 08923abd64d563da4c7f2cb5359baf5decb44df1..9f3a02dba75925b736f3b35cbbd5d3e1a59437f5 100644 (file)
@@ -111,7 +111,7 @@ static void DPDKDerefConfig(void *conf);
 #define DPDK_CONFIG_DEFAULT_MEMPOOL_CACHE_SIZE          "auto"
 #define DPDK_CONFIG_DEFAULT_RX_DESCRIPTORS              1024
 #define DPDK_CONFIG_DEFAULT_TX_DESCRIPTORS              1024
-#define DPDK_CONFIG_DEFAULT_RSS_HASH_FUNCTIONS          ETH_RSS_IP
+#define DPDK_CONFIG_DEFAULT_RSS_HASH_FUNCTIONS          RTE_ETH_RSS_IP
 #define DPDK_CONFIG_DEFAULT_MTU                         1500
 #define DPDK_CONFIG_DEFAULT_PROMISCUOUS_MODE            1
 #define DPDK_CONFIG_DEFAULT_MULTICAST_MODE              1
@@ -769,7 +769,7 @@ static void DeviceSetPMDSpecificRSS(struct rte_eth_rss_conf *rss_conf, const cha
     if (strcmp(driver_name, "net_ixgbe") == 0)
         ixgbeDeviceSetRSSHashFunction(&rss_conf->rss_hf);
     if (strcmp(driver_name, "net_e1000_igb") == 0)
-        rss_conf->rss_hf = (ETH_RSS_IPV4 | ETH_RSS_IPV6 | ETH_RSS_IPV6_EX);
+        rss_conf->rss_hf = (RTE_ETH_RSS_IPV4 | RTE_ETH_RSS_IPV6 | RTE_ETH_RSS_IPV6_EX);
 }
 
 // Returns -1 if no bit is set
@@ -786,127 +786,137 @@ static void DumpRSSFlags(const uint64_t requested, const uint64_t actual)
 {
     SCLogConfig("REQUESTED (groups):");
 
-    SCLogConfig("ETH_RSS_IP %sset", ((requested & ETH_RSS_IP) == ETH_RSS_IP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_TCP %sset", ((requested & ETH_RSS_TCP) == ETH_RSS_TCP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_UDP %sset", ((requested & ETH_RSS_UDP) == ETH_RSS_UDP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_SCTP %sset", ((requested & ETH_RSS_SCTP) == ETH_RSS_SCTP) ? "" : "NOT ");
     SCLogConfig(
-            "ETH_RSS_TUNNEL %sset", ((requested & ETH_RSS_TUNNEL) == ETH_RSS_TUNNEL) ? "" : "NOT ");
+            "RTE_ETH_RSS_IP %sset", ((requested & RTE_ETH_RSS_IP) == RTE_ETH_RSS_IP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_TCP %sset",
+            ((requested & RTE_ETH_RSS_TCP) == RTE_ETH_RSS_TCP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_UDP %sset",
+            ((requested & RTE_ETH_RSS_UDP) == RTE_ETH_RSS_UDP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_SCTP %sset",
+            ((requested & RTE_ETH_RSS_SCTP) == RTE_ETH_RSS_SCTP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_TUNNEL %sset",
+            ((requested & RTE_ETH_RSS_TUNNEL) == RTE_ETH_RSS_TUNNEL) ? "" : "NOT ");
 
     SCLogConfig("REQUESTED (individual):");
-    SCLogConfig("ETH_RSS_IPV4 (Bit position: %d) %sset", GetFirstSetBitPosition(ETH_RSS_IPV4),
-            (requested & ETH_RSS_IPV4) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_FRAG_IPV4 (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_FRAG_IPV4),
-            (requested & ETH_RSS_FRAG_IPV4) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV4_TCP (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_NONFRAG_IPV4_TCP),
-            (requested & ETH_RSS_NONFRAG_IPV4_TCP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV4_UDP (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_NONFRAG_IPV4_UDP),
-            (requested & ETH_RSS_NONFRAG_IPV4_UDP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV4_SCTP (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_NONFRAG_IPV4_SCTP),
-            (requested & ETH_RSS_NONFRAG_IPV4_SCTP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV4_OTHER (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_NONFRAG_IPV4_OTHER),
-            (requested & ETH_RSS_NONFRAG_IPV4_OTHER) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_IPV6 (Bit position: %d) %sset", GetFirstSetBitPosition(ETH_RSS_IPV6),
-            (requested & ETH_RSS_IPV6) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_FRAG_IPV6 (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_FRAG_IPV6),
-            (requested & ETH_RSS_FRAG_IPV6) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV6_TCP (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_NONFRAG_IPV6_TCP),
-            (requested & ETH_RSS_NONFRAG_IPV6_TCP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV6_UDP (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_NONFRAG_IPV6_UDP),
-            (requested & ETH_RSS_NONFRAG_IPV6_UDP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV6_SCTP (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_NONFRAG_IPV6_SCTP),
-            (requested & ETH_RSS_NONFRAG_IPV6_SCTP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV6_OTHER (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_NONFRAG_IPV6_OTHER),
-            (requested & ETH_RSS_NONFRAG_IPV6_OTHER) ? "" : "NOT ");
-
-    SCLogConfig("ETH_RSS_L2_PAYLOAD (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_L2_PAYLOAD),
-            (requested & ETH_RSS_L2_PAYLOAD) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_IPV6_EX (Bit position: %d) %sset", GetFirstSetBitPosition(ETH_RSS_IPV6_EX),
-            (requested & ETH_RSS_IPV6_EX) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_IPV6_TCP_EX (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_IPV6_TCP_EX),
-            (requested & ETH_RSS_IPV6_TCP_EX) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_IPV6_UDP_EX (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_IPV6_UDP_EX),
-            (requested & ETH_RSS_IPV6_UDP_EX) ? "" : "NOT ");
-
-    SCLogConfig("ETH_RSS_PORT (Bit position: %d) %sset", GetFirstSetBitPosition(ETH_RSS_PORT),
-            (requested & ETH_RSS_PORT) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_VXLAN (Bit position: %d) %sset", GetFirstSetBitPosition(ETH_RSS_VXLAN),
-            (requested & ETH_RSS_VXLAN) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NVGRE (Bit position: %d) %sset", GetFirstSetBitPosition(ETH_RSS_NVGRE),
-            (requested & ETH_RSS_NVGRE) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_GTPU (Bit position: %d) %sset", GetFirstSetBitPosition(ETH_RSS_GTPU),
-            (requested & ETH_RSS_GTPU) ? "" : "NOT ");
-
-    SCLogConfig("ETH_RSS_L3_SRC_ONLY (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_L3_SRC_ONLY),
-            (requested & ETH_RSS_L3_SRC_ONLY) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_L3_DST_ONLY (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_L3_DST_ONLY),
-            (requested & ETH_RSS_L3_DST_ONLY) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_L4_SRC_ONLY (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_L4_SRC_ONLY),
-            (requested & ETH_RSS_L4_SRC_ONLY) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_L4_DST_ONLY (Bit position: %d) %sset",
-            GetFirstSetBitPosition(ETH_RSS_L4_DST_ONLY),
-            (requested & ETH_RSS_L4_DST_ONLY) ? "" : "NOT ");
-
+    SCLogConfig("RTE_ETH_RSS_IPV4 (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_IPV4), (requested & RTE_ETH_RSS_IPV4) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_FRAG_IPV4 (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_FRAG_IPV4),
+            (requested & RTE_ETH_RSS_FRAG_IPV4) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV4_TCP (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_NONFRAG_IPV4_TCP),
+            (requested & RTE_ETH_RSS_NONFRAG_IPV4_TCP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV4_UDP (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_NONFRAG_IPV4_UDP),
+            (requested & RTE_ETH_RSS_NONFRAG_IPV4_UDP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV4_SCTP (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_NONFRAG_IPV4_SCTP),
+            (requested & RTE_ETH_RSS_NONFRAG_IPV4_SCTP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV4_OTHER (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_NONFRAG_IPV4_OTHER),
+            (requested & RTE_ETH_RSS_NONFRAG_IPV4_OTHER) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_IPV6 (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_IPV6), (requested & RTE_ETH_RSS_IPV6) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_FRAG_IPV6 (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_FRAG_IPV6),
+            (requested & RTE_ETH_RSS_FRAG_IPV6) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV6_TCP (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_NONFRAG_IPV6_TCP),
+            (requested & RTE_ETH_RSS_NONFRAG_IPV6_TCP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV6_UDP (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_NONFRAG_IPV6_UDP),
+            (requested & RTE_ETH_RSS_NONFRAG_IPV6_UDP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV6_SCTP (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_NONFRAG_IPV6_SCTP),
+            (requested & RTE_ETH_RSS_NONFRAG_IPV6_SCTP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV6_OTHER (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_NONFRAG_IPV6_OTHER),
+            (requested & RTE_ETH_RSS_NONFRAG_IPV6_OTHER) ? "" : "NOT ");
+
+    SCLogConfig("RTE_ETH_RSS_L2_PAYLOAD (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_L2_PAYLOAD),
+            (requested & RTE_ETH_RSS_L2_PAYLOAD) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_IPV6_EX (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_IPV6_EX),
+            (requested & RTE_ETH_RSS_IPV6_EX) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_IPV6_TCP_EX (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_IPV6_TCP_EX),
+            (requested & RTE_ETH_RSS_IPV6_TCP_EX) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_IPV6_UDP_EX (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_IPV6_UDP_EX),
+            (requested & RTE_ETH_RSS_IPV6_UDP_EX) ? "" : "NOT ");
+
+    SCLogConfig("RTE_ETH_RSS_PORT (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_PORT), (requested & RTE_ETH_RSS_PORT) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_VXLAN (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_VXLAN),
+            (requested & RTE_ETH_RSS_VXLAN) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NVGRE (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_NVGRE),
+            (requested & RTE_ETH_RSS_NVGRE) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_GTPU (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_GTPU), (requested & RTE_ETH_RSS_GTPU) ? "" : "NOT ");
+
+    SCLogConfig("RTE_ETH_RSS_L3_SRC_ONLY (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_L3_SRC_ONLY),
+            (requested & RTE_ETH_RSS_L3_SRC_ONLY) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_L3_DST_ONLY (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_L3_DST_ONLY),
+            (requested & RTE_ETH_RSS_L3_DST_ONLY) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_L4_SRC_ONLY (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_L4_SRC_ONLY),
+            (requested & RTE_ETH_RSS_L4_SRC_ONLY) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_L4_DST_ONLY (Bit position: %d) %sset",
+            GetFirstSetBitPosition(RTE_ETH_RSS_L4_DST_ONLY),
+            (requested & RTE_ETH_RSS_L4_DST_ONLY) ? "" : "NOT ");
     SCLogConfig("ACTUAL (group):");
-    SCLogConfig("ETH_RSS_IP %sset", ((actual & ETH_RSS_IP) == ETH_RSS_IP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_TCP %sset", ((actual & ETH_RSS_TCP) == ETH_RSS_TCP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_UDP %sset", ((actual & ETH_RSS_UDP) == ETH_RSS_UDP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_SCTP %sset", ((actual & ETH_RSS_SCTP) == ETH_RSS_SCTP) ? "" : "NOT ");
-    SCLogConfig(
-            "ETH_RSS_TUNNEL %sset", ((actual & ETH_RSS_TUNNEL) == ETH_RSS_TUNNEL) ? "" : "NOT ");
-
-    SCLogConfig("ACTUAL (individual flags):");
-    SCLogConfig("ETH_RSS_IPV4 %sset", (actual & ETH_RSS_IPV4) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_FRAG_IPV4 %sset", (actual & ETH_RSS_FRAG_IPV4) ? "" : "NOT ");
-    SCLogConfig(
-            "ETH_RSS_NONFRAG_IPV4_TCP %sset", (actual & ETH_RSS_NONFRAG_IPV4_TCP) ? "" : "NOT ");
     SCLogConfig(
-            "ETH_RSS_NONFRAG_IPV4_UDP %sset", (actual & ETH_RSS_NONFRAG_IPV4_UDP) ? "" : "NOT ");
+            "RTE_ETH_RSS_IP %sset", ((actual & RTE_ETH_RSS_IP) == RTE_ETH_RSS_IP) ? "" : "NOT ");
     SCLogConfig(
-            "ETH_RSS_NONFRAG_IPV4_SCTP %sset", (actual & ETH_RSS_NONFRAG_IPV4_SCTP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV4_OTHER %sset",
-            (actual & ETH_RSS_NONFRAG_IPV4_OTHER) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_IPV6 %sset", (actual & ETH_RSS_IPV6) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_FRAG_IPV6 %sset", (actual & ETH_RSS_FRAG_IPV6) ? "" : "NOT ");
+            "RTE_ETH_RSS_TCP %sset", ((actual & RTE_ETH_RSS_TCP) == RTE_ETH_RSS_TCP) ? "" : "NOT ");
     SCLogConfig(
-            "ETH_RSS_NONFRAG_IPV6_TCP %sset", (actual & ETH_RSS_NONFRAG_IPV6_TCP) ? "" : "NOT ");
-    SCLogConfig(
-            "ETH_RSS_NONFRAG_IPV6_UDP %sset", (actual & ETH_RSS_NONFRAG_IPV6_UDP) ? "" : "NOT ");
-    SCLogConfig(
-            "ETH_RSS_NONFRAG_IPV6_SCTP %sset", (actual & ETH_RSS_NONFRAG_IPV6_SCTP) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NONFRAG_IPV6_OTHER %sset",
-            (actual & ETH_RSS_NONFRAG_IPV6_OTHER) ? "" : "NOT ");
-
-    SCLogConfig("ETH_RSS_L2_PAYLOAD %sset", (actual & ETH_RSS_L2_PAYLOAD) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_IPV6_EX %sset", (actual & ETH_RSS_IPV6_EX) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_IPV6_TCP_EX %sset", (actual & ETH_RSS_IPV6_TCP_EX) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_IPV6_UDP_EX %sset", (actual & ETH_RSS_IPV6_UDP_EX) ? "" : "NOT ");
-
-    SCLogConfig("ETH_RSS_PORT %sset", (actual & ETH_RSS_PORT) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_VXLAN %sset", (actual & ETH_RSS_VXLAN) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_NVGRE %sset", (actual & ETH_RSS_NVGRE) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_GTPU %sset", (actual & ETH_RSS_GTPU) ? "" : "NOT ");
-
-    SCLogConfig("ETH_RSS_L3_SRC_ONLY %sset", (actual & ETH_RSS_L3_SRC_ONLY) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_L3_DST_ONLY %sset", (actual & ETH_RSS_L3_DST_ONLY) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_L4_SRC_ONLY %sset", (actual & ETH_RSS_L4_SRC_ONLY) ? "" : "NOT ");
-    SCLogConfig("ETH_RSS_L4_DST_ONLY %sset", (actual & ETH_RSS_L4_DST_ONLY) ? "" : "NOT ");
+            "RTE_ETH_RSS_UDP %sset", ((actual & RTE_ETH_RSS_UDP) == RTE_ETH_RSS_UDP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_SCTP %sset",
+            ((actual & RTE_ETH_RSS_SCTP) == RTE_ETH_RSS_SCTP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_TUNNEL %sset",
+            ((actual & RTE_ETH_RSS_TUNNEL) == RTE_ETH_RSS_TUNNEL) ? "" : "NOT ");
+
+    SCLogConfig("ACTUAL (individual flags):");
+    SCLogConfig("RTE_ETH_RSS_IPV4 %sset", (actual & RTE_ETH_RSS_IPV4) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_FRAG_IPV4 %sset", (actual & RTE_ETH_RSS_FRAG_IPV4) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV4_TCP %sset",
+            (actual & RTE_ETH_RSS_NONFRAG_IPV4_TCP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV4_UDP %sset",
+            (actual & RTE_ETH_RSS_NONFRAG_IPV4_UDP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV4_SCTP %sset",
+            (actual & RTE_ETH_RSS_NONFRAG_IPV4_SCTP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV4_OTHER %sset",
+            (actual & RTE_ETH_RSS_NONFRAG_IPV4_OTHER) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_IPV6 %sset", (actual & RTE_ETH_RSS_IPV6) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_FRAG_IPV6 %sset", (actual & RTE_ETH_RSS_FRAG_IPV6) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV6_TCP %sset",
+            (actual & RTE_ETH_RSS_NONFRAG_IPV6_TCP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV6_UDP %sset",
+            (actual & RTE_ETH_RSS_NONFRAG_IPV6_UDP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV6_SCTP %sset",
+            (actual & RTE_ETH_RSS_NONFRAG_IPV6_SCTP) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NONFRAG_IPV6_OTHER %sset",
+            (actual & RTE_ETH_RSS_NONFRAG_IPV6_OTHER) ? "" : "NOT ");
+
+    SCLogConfig("RTE_ETH_RSS_L2_PAYLOAD %sset", (actual & RTE_ETH_RSS_L2_PAYLOAD) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_IPV6_EX %sset", (actual & RTE_ETH_RSS_IPV6_EX) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_IPV6_TCP_EX %sset", (actual & RTE_ETH_RSS_IPV6_TCP_EX) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_IPV6_UDP_EX %sset", (actual & RTE_ETH_RSS_IPV6_UDP_EX) ? "" : "NOT ");
+
+    SCLogConfig("RTE_ETH_RSS_PORT %sset", (actual & RTE_ETH_RSS_PORT) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_VXLAN %sset", (actual & RTE_ETH_RSS_VXLAN) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_NVGRE %sset", (actual & RTE_ETH_RSS_NVGRE) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_GTPU %sset", (actual & RTE_ETH_RSS_GTPU) ? "" : "NOT ");
+
+    SCLogConfig("RTE_ETH_RSS_L3_SRC_ONLY %sset", (actual & RTE_ETH_RSS_L3_SRC_ONLY) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_L3_DST_ONLY %sset", (actual & RTE_ETH_RSS_L3_DST_ONLY) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_L4_SRC_ONLY %sset", (actual & RTE_ETH_RSS_L4_SRC_ONLY) ? "" : "NOT ");
+    SCLogConfig("RTE_ETH_RSS_L4_DST_ONLY %sset", (actual & RTE_ETH_RSS_L4_DST_ONLY) ? "" : "NOT ");
 }
 
 static int DeviceValidateMTU(const DPDKIfaceConfig *iconf, const struct rte_eth_dev_info *dev_info)
@@ -947,17 +957,17 @@ static void DeviceInitPortConf(const DPDKIfaceConfig *iconf,
 {
     *port_conf = (struct rte_eth_conf){
             .rxmode = {
-                    .mq_mode = ETH_MQ_RX_NONE,
+                    .mq_mode = RTE_ETH_MQ_RX_NONE,
                     .offloads = 0, // turn every offload off to prevent any packet modification
             },
             .txmode = {
-                    .mq_mode = ETH_MQ_TX_NONE,
+                    .mq_mode = RTE_ETH_MQ_TX_NONE,
                     .offloads = 0,
             },
     };
 
     // configure RX offloads
-    if (dev_info->rx_offload_capa & DEV_RX_OFFLOAD_RSS_HASH) {
+    if (dev_info->rx_offload_capa & RTE_ETH_RX_OFFLOAD_RSS_HASH) {
         if (iconf->nb_rx_queues > 1) {
             SCLogConfig("%s: RSS enabled for %d queues", iconf->iface, iconf->nb_rx_queues);
             port_conf->rx_adv_conf.rss_conf = (struct rte_eth_rss_conf){
@@ -978,7 +988,7 @@ static void DeviceInitPortConf(const DPDKIfaceConfig *iconf,
                         iconf->iface, port_conf->rx_adv_conf.rss_conf.rss_hf, rss_hf_tmp);
                 port_conf->rx_adv_conf.rss_conf.rss_hf = rss_hf_tmp;
             }
-            port_conf->rxmode.mq_mode = ETH_MQ_RX_RSS;
+            port_conf->rxmode.mq_mode = RTE_ETH_MQ_RX_RSS;
         } else {
             SCLogConfig("%s: RSS not enabled", iconf->iface);
             port_conf->rx_adv_conf.rss_conf.rss_key = NULL;
@@ -990,11 +1000,11 @@ static void DeviceInitPortConf(const DPDKIfaceConfig *iconf,
 
     if (iconf->checksum_mode == CHECKSUM_VALIDATION_DISABLE) {
         SCLogConfig("%s: checksum validation disabled", iconf->iface);
-    } else if (dev_info->rx_offload_capa & DEV_RX_OFFLOAD_CHECKSUM) {
+    } else if (dev_info->rx_offload_capa & RTE_ETH_RX_OFFLOAD_CHECKSUM) {
         if (iconf->checksum_mode == CHECKSUM_VALIDATION_ENABLE &&
                 iconf->flags & DPDK_RX_CHECKSUM_OFFLOAD) {
             SCLogConfig("%s: IP, TCP and UDP checksum validation offloaded", iconf->iface);
-            port_conf->rxmode.offloads |= DEV_RX_OFFLOAD_CHECKSUM;
+            port_conf->rxmode.offloads |= RTE_ETH_RX_OFFLOAD_CHECKSUM;
         } else if (iconf->checksum_mode == CHECKSUM_VALIDATION_ENABLE &&
                    !(iconf->flags & DPDK_RX_CHECKSUM_OFFLOAD)) {
             SCLogConfig("%s: checksum validation enabled (but can be offloaded)", iconf->iface);
@@ -1003,8 +1013,8 @@ static void DeviceInitPortConf(const DPDKIfaceConfig *iconf,
 
     DeviceSetMTU(port_conf, iconf->mtu);
 
-    if (dev_info->tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE) {
-        port_conf->txmode.offloads |= DEV_TX_OFFLOAD_MBUF_FAST_FREE;
+    if (dev_info->tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) {
+        port_conf->txmode.offloads |= RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
     }
 }
 
@@ -1208,7 +1218,7 @@ static int DeviceConfigure(DPDKIfaceConfig *iconf)
         return retval;
 
     DeviceInitPortConf(iconf, &dev_info, &port_conf);
-    if (port_conf.rxmode.offloads & DEV_RX_OFFLOAD_CHECKSUM) {
+    if (port_conf.rxmode.offloads & RTE_ETH_RX_OFFLOAD_CHECKSUM) {
         // Suricata does not need recalc checksums now
         iconf->checksum_mode = CHECKSUM_VALIDATION_OFFLOAD;
     }
index 3d6e1339f833b0818bfdeafe63ef8d3eb1dfe6fb..38618ce7a3113eb0fb0140dd1ab55bd580f5a74d 100644 (file)
@@ -237,21 +237,23 @@ static int i40eDeviceSetRSSFlowIPv4(
     pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV4;
     pattern[2].type = RTE_FLOW_ITEM_TYPE_END;
     ret |= i40eDeviceCreateRSSFlow(
-            port_id, port_name, rss_conf, ETH_RSS_NONFRAG_IPV4_OTHER, pattern);
+            port_id, port_name, rss_conf, RTE_ETH_RSS_NONFRAG_IPV4_OTHER, pattern);
     memset(pattern, 0, sizeof(pattern));
 
     pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH;
     pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV4;
     pattern[2].type = RTE_FLOW_ITEM_TYPE_UDP;
     pattern[3].type = RTE_FLOW_ITEM_TYPE_END;
-    ret |= i40eDeviceCreateRSSFlow(port_id, port_name, rss_conf, ETH_RSS_NONFRAG_IPV4_UDP, pattern);
+    ret |= i40eDeviceCreateRSSFlow(
+            port_id, port_name, rss_conf, RTE_ETH_RSS_NONFRAG_IPV4_UDP, pattern);
     memset(pattern, 0, sizeof(pattern));
 
     pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH;
     pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV4;
     pattern[2].type = RTE_FLOW_ITEM_TYPE_TCP;
     pattern[3].type = RTE_FLOW_ITEM_TYPE_END;
-    ret |= i40eDeviceCreateRSSFlow(port_id, port_name, rss_conf, ETH_RSS_NONFRAG_IPV4_TCP, pattern);
+    ret |= i40eDeviceCreateRSSFlow(
+            port_id, port_name, rss_conf, RTE_ETH_RSS_NONFRAG_IPV4_TCP, pattern);
     memset(pattern, 0, sizeof(pattern));
 
     pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH;
@@ -259,13 +261,13 @@ static int i40eDeviceSetRSSFlowIPv4(
     pattern[2].type = RTE_FLOW_ITEM_TYPE_SCTP;
     pattern[3].type = RTE_FLOW_ITEM_TYPE_END;
     ret |= i40eDeviceCreateRSSFlow(
-            port_id, port_name, rss_conf, ETH_RSS_NONFRAG_IPV4_SCTP, pattern);
+            port_id, port_name, rss_conf, RTE_ETH_RSS_NONFRAG_IPV4_SCTP, pattern);
     memset(pattern, 0, sizeof(pattern));
 
     pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH;
     pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV4;
     pattern[2].type = RTE_FLOW_ITEM_TYPE_END;
-    ret |= i40eDeviceCreateRSSFlow(port_id, port_name, rss_conf, ETH_RSS_FRAG_IPV4, pattern);
+    ret |= i40eDeviceCreateRSSFlow(port_id, port_name, rss_conf, RTE_ETH_RSS_FRAG_IPV4, pattern);
 
     return ret;
 }
@@ -280,21 +282,23 @@ static int i40eDeviceSetRSSFlowIPv6(
     pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV6;
     pattern[2].type = RTE_FLOW_ITEM_TYPE_END;
     ret |= i40eDeviceCreateRSSFlow(
-            port_id, port_name, rss_conf, ETH_RSS_NONFRAG_IPV6_OTHER, pattern);
+            port_id, port_name, rss_conf, RTE_ETH_RSS_NONFRAG_IPV6_OTHER, pattern);
     memset(pattern, 0, sizeof(pattern));
 
     pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH;
     pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV6;
     pattern[2].type = RTE_FLOW_ITEM_TYPE_UDP;
     pattern[3].type = RTE_FLOW_ITEM_TYPE_END;
-    ret |= i40eDeviceCreateRSSFlow(port_id, port_name, rss_conf, ETH_RSS_NONFRAG_IPV6_UDP, pattern);
+    ret |= i40eDeviceCreateRSSFlow(
+            port_id, port_name, rss_conf, RTE_ETH_RSS_NONFRAG_IPV6_UDP, pattern);
     memset(pattern, 0, sizeof(pattern));
 
     pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH;
     pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV6;
     pattern[2].type = RTE_FLOW_ITEM_TYPE_TCP;
     pattern[3].type = RTE_FLOW_ITEM_TYPE_END;
-    ret |= i40eDeviceCreateRSSFlow(port_id, port_name, rss_conf, ETH_RSS_NONFRAG_IPV6_TCP, pattern);
+    ret |= i40eDeviceCreateRSSFlow(
+            port_id, port_name, rss_conf, RTE_ETH_RSS_NONFRAG_IPV6_TCP, pattern);
     memset(pattern, 0, sizeof(pattern));
 
     pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH;
@@ -302,13 +306,13 @@ static int i40eDeviceSetRSSFlowIPv6(
     pattern[2].type = RTE_FLOW_ITEM_TYPE_SCTP;
     pattern[3].type = RTE_FLOW_ITEM_TYPE_END;
     ret |= i40eDeviceCreateRSSFlow(
-            port_id, port_name, rss_conf, ETH_RSS_NONFRAG_IPV6_SCTP, pattern);
+            port_id, port_name, rss_conf, RTE_ETH_RSS_NONFRAG_IPV6_SCTP, pattern);
     memset(pattern, 0, sizeof(pattern));
 
     pattern[0].type = RTE_FLOW_ITEM_TYPE_ETH;
     pattern[1].type = RTE_FLOW_ITEM_TYPE_IPV6;
     pattern[2].type = RTE_FLOW_ITEM_TYPE_END;
-    ret |= i40eDeviceCreateRSSFlow(port_id, port_name, rss_conf, ETH_RSS_FRAG_IPV6, pattern);
+    ret |= i40eDeviceCreateRSSFlow(port_id, port_name, rss_conf, RTE_ETH_RSS_FRAG_IPV6, pattern);
 
     return ret;
 }
@@ -371,13 +375,14 @@ int i40eDeviceSetRSS(int port_id, int nb_rx_queues)
 void i40eDeviceSetRSSHashFunction(uint64_t *rss_hf)
 {
     if (RTE_VER_YEAR <= 19)
-        *rss_hf = ETH_RSS_FRAG_IPV4 | ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_NONFRAG_IPV4_UDP |
-                  ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_NONFRAG_IPV4_OTHER | ETH_RSS_FRAG_IPV6 |
-                  ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_NONFRAG_IPV6_SCTP |
-                  ETH_RSS_NONFRAG_IPV6_OTHER | ETH_RSS_SCTP;
+        *rss_hf = RTE_ETH_RSS_FRAG_IPV4 | RTE_ETH_RSS_NONFRAG_IPV4_TCP |
+                  RTE_ETH_RSS_NONFRAG_IPV4_UDP | RTE_ETH_RSS_NONFRAG_IPV4_SCTP |
+                  RTE_ETH_RSS_NONFRAG_IPV4_OTHER | RTE_ETH_RSS_FRAG_IPV6 |
+                  RTE_ETH_RSS_NONFRAG_IPV6_TCP | RTE_ETH_RSS_NONFRAG_IPV6_UDP |
+                  RTE_ETH_RSS_NONFRAG_IPV6_SCTP | RTE_ETH_RSS_NONFRAG_IPV6_OTHER | RTE_ETH_RSS_SCTP;
     else
-        *rss_hf = ETH_RSS_FRAG_IPV4 | ETH_RSS_NONFRAG_IPV4_OTHER | ETH_RSS_FRAG_IPV6 |
-                  ETH_RSS_NONFRAG_IPV6_OTHER;
+        *rss_hf = RTE_ETH_RSS_FRAG_IPV4 | RTE_ETH_RSS_NONFRAG_IPV4_OTHER | RTE_ETH_RSS_FRAG_IPV6 |
+                  RTE_ETH_RSS_NONFRAG_IPV6_OTHER;
 }
 
 #endif /* HAVE_DPDK */
index 060f1635d4a92f843b22109e4b4016fde2837621..709358b2f12d77a047cc4a513eb35743862a186a 100644 (file)
 void iceDeviceSetRSSHashFunction(uint64_t *rss_hf)
 {
     if (RTE_VER_YEAR <= 19)
-        *rss_hf = ETH_RSS_FRAG_IPV4 | ETH_RSS_NONFRAG_IPV4_OTHER | ETH_RSS_FRAG_IPV6 |
-                  ETH_RSS_NONFRAG_IPV6_OTHER;
+        *rss_hf = RTE_ETH_RSS_FRAG_IPV4 | RTE_ETH_RSS_NONFRAG_IPV4_OTHER | RTE_ETH_RSS_FRAG_IPV6 |
+                  RTE_ETH_RSS_NONFRAG_IPV6_OTHER;
     else
-        *rss_hf = ETH_RSS_IPV4 | ETH_RSS_FRAG_IPV4 | ETH_RSS_NONFRAG_IPV4_OTHER | ETH_RSS_IPV6 |
-                  ETH_RSS_FRAG_IPV6 | ETH_RSS_NONFRAG_IPV6_OTHER;
+        *rss_hf = RTE_ETH_RSS_IPV4 | RTE_ETH_RSS_FRAG_IPV4 | RTE_ETH_RSS_NONFRAG_IPV4_OTHER |
+                  RTE_ETH_RSS_IPV6 | RTE_ETH_RSS_FRAG_IPV6 | RTE_ETH_RSS_NONFRAG_IPV6_OTHER;
 }
 
 #endif /* HAVE_DPDK */
index e7fcdd08059a531a12ea7d650be7479abf2f122c..5627c45270d1af4235f93996b47ce2918bd905cf 100644 (file)
@@ -37,7 +37,7 @@
 
 void ixgbeDeviceSetRSSHashFunction(uint64_t *rss_hf)
 {
-    *rss_hf = ETH_RSS_IPV4 | ETH_RSS_IPV6 | ETH_RSS_IPV6_EX;
+    *rss_hf = RTE_ETH_RSS_IPV4 | RTE_ETH_RSS_IPV6 | RTE_ETH_RSS_IPV6_EX;
 }
 
 #endif /* HAVE_DPDK */
index 3c2e6da6bd8656fd224bf7a3471973b946e5d2a7..313501d9319c8766aeb6d3f3998c8e40c2ef95da 100644 (file)
 #include <rte_mbuf.h>
 #include <rte_flow.h>
 
+#if RTE_VER_YEAR < 22
+#define RTE_ETH_MQ_RX_RSS ETH_MQ_RX_RSS
+
+#endif
+
+#if RTE_VER_YEAR < 21 || RTE_VER_YEAR == 21 && RTE_VER_MONTH < 11
+#define RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE DEV_TX_OFFLOAD_MBUF_FAST_FREE
+
+#define RTE_ETH_RX_OFFLOAD_CHECKSUM DEV_RX_OFFLOAD_CHECKSUM
+#define RTE_ETH_RX_OFFLOAD_RSS_HASH DEV_RX_OFFLOAD_RSS_HASH
+
+#define RTE_ETH_MQ_TX_NONE ETH_MQ_TX_NONE
+
+#define RTE_ETH_MQ_RX_NONE ETH_MQ_RX_NONE
+
+#define RTE_ETH_RSS_IP     ETH_RSS_IP
+#define RTE_ETH_RSS_UDP    ETH_RSS_UDP
+#define RTE_ETH_RSS_TCP    ETH_RSS_TCP
+#define RTE_ETH_RSS_SCTP   ETH_RSS_SCTP
+#define RTE_ETH_RSS_TUNNEL ETH_RSS_TUNNEL
+
+#define RTE_ETH_RSS_L3_SRC_ONLY ETH_RSS_L3_SRC_ONLY
+#define RTE_ETH_RSS_L3_DST_ONLY ETH_RSS_L3_DST_ONLY
+#define RTE_ETH_RSS_L4_SRC_ONLY ETH_RSS_L4_SRC_ONLY
+#define RTE_ETH_RSS_L4_DST_ONLY ETH_RSS_L4_DST_ONLY
+
+#define RTE_ETH_RSS_IPV4               ETH_RSS_IPV4
+#define RTE_ETH_RSS_FRAG_IPV4          ETH_RSS_FRAG_IPV4
+#define RTE_ETH_RSS_NONFRAG_IPV4_TCP   ETH_RSS_NONFRAG_IPV4_TCP
+#define RTE_ETH_RSS_NONFRAG_IPV4_UDP   ETH_RSS_NONFRAG_IPV4_UDP
+#define RTE_ETH_RSS_NONFRAG_IPV4_SCTP  ETH_RSS_NONFRAG_IPV4_SCTP
+#define RTE_ETH_RSS_NONFRAG_IPV4_OTHER ETH_RSS_NONFRAG_IPV4_OTHER
+#define RTE_ETH_RSS_IPV6               ETH_RSS_IPV6
+#define RTE_ETH_RSS_FRAG_IPV6          ETH_RSS_FRAG_IPV6
+#define RTE_ETH_RSS_NONFRAG_IPV6_TCP   ETH_RSS_NONFRAG_IPV6_TCP
+#define RTE_ETH_RSS_NONFRAG_IPV6_UDP   ETH_RSS_NONFRAG_IPV6_UDP
+#define RTE_ETH_RSS_NONFRAG_IPV6_SCTP  ETH_RSS_NONFRAG_IPV6_SCTP
+#define RTE_ETH_RSS_NONFRAG_IPV6_OTHER ETH_RSS_NONFRAG_IPV6_OTHER
+#define RTE_ETH_RSS_L2_PAYLOAD         ETH_RSS_L2_PAYLOAD
+#define RTE_ETH_RSS_IPV6_EX            ETH_RSS_IPV6_EX
+#define RTE_ETH_RSS_IPV6_TCP_EX        ETH_RSS_IPV6_TCP_EX
+#define RTE_ETH_RSS_IPV6_UDP_EX        ETH_RSS_IPV6_UDP_EX
+#define RTE_ETH_RSS_PORT               ETH_RSS_PORT
+#define RTE_ETH_RSS_VXLAN              ETH_RSS_VXLAN
+#define RTE_ETH_RSS_GENEVE             ETH_RSS_GENEVE
+#define RTE_ETH_RSS_NVGRE              ETH_RSS_NVGRE
+#define RTE_ETH_RSS_GTPU               ETH_RSS_GTPU
+
+#define RTE_MBUF_F_RX_IP_CKSUM_MASK PKT_RX_IP_CKSUM_MASK
+#define RTE_MBUF_F_RX_IP_CKSUM_NONE PKT_RX_IP_CKSUM_NONE
+#define RTE_MBUF_F_RX_IP_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD
+#define RTE_MBUF_F_RX_IP_CKSUM_BAD  PKT_RX_IP_CKSUM_BAD
+
+#define RTE_MBUF_F_RX_L4_CKSUM_MASK PKT_RX_L4_CKSUM_MASK
+#define RTE_MBUF_F_RX_L4_CKSUM_GOOD PKT_RX_L4_CKSUM_GOOD
+#define RTE_MBUF_F_RX_L4_CKSUM_BAD  PKT_RX_L4_CKSUM_BAD
+#endif
+
 #endif /* HAVE_DPDK */
 
 #include "util-device.h"
 
 void DPDKCleanupEAL(void);
+
 void DPDKCloseDevice(LiveDevice *ldev);
 
 #endif /* UTIL_DPDK_H */