]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
dpdk: support 52 byte long key on ice (E810) cards
authorLukas Sismis <lsismis@oisf.net>
Tue, 26 Mar 2024 21:17:17 +0000 (22:17 +0100)
committerVictor Julien <victor@inliniac.net>
Sat, 13 Apr 2024 06:50:14 +0000 (08:50 +0200)
src/runmode-dpdk.c
src/util-dpdk-ice.c
src/util-dpdk-ice.h

index 80638c798e0343236d283c88e600e2684f4c25e8..9a1cc4e0b3d8890728365b635fd524f0e8355a40 100644 (file)
@@ -871,7 +871,7 @@ static void DeviceSetPMDSpecificRSS(struct rte_eth_rss_conf *rss_conf, const cha
     if (strcmp(driver_name, "net_i40e") == 0)
         i40eDeviceSetRSSConf(rss_conf);
     if (strcmp(driver_name, "net_ice") == 0)
-        iceDeviceSetRSSHashFunction(&rss_conf->rss_hf);
+        iceDeviceSetRSSConf(rss_conf);
     if (strcmp(driver_name, "net_ixgbe") == 0)
         ixgbeDeviceSetRSSHashFunction(&rss_conf->rss_hf);
     if (strcmp(driver_name, "net_e1000_igb") == 0)
index 36f4481dea2f42514410aa5882e05f0f4ac88b3e..4b714d88c353ae145f4c84acb55a2850a5178025 100644 (file)
@@ -35,7 +35,7 @@
 
 #ifdef HAVE_DPDK
 
-void iceDeviceSetRSSHashFunction(uint64_t *rss_hf)
+static void iceDeviceSetRSSHashFunction(uint64_t *rss_hf)
 {
 #if RTE_VERSION < RTE_VERSION_NUM(20, 0, 0, 0)
     *rss_hf = RTE_ETH_RSS_FRAG_IPV4 | RTE_ETH_RSS_NONFRAG_IPV4_OTHER | RTE_ETH_RSS_FRAG_IPV6 |
@@ -46,6 +46,16 @@ void iceDeviceSetRSSHashFunction(uint64_t *rss_hf)
 #endif
 }
 
+void iceDeviceSetRSSConf(struct rte_eth_rss_conf *rss_conf)
+{
+    iceDeviceSetRSSHashFunction(&rss_conf->rss_hf);
+#if RTE_VERSION < RTE_VERSION_NUM(23, 11, 0, 0)
+    rss_conf->rss_key_len = 40;
+#else
+    rss_conf->rss_key_len = 52;
+#endif
+}
+
 #endif /* HAVE_DPDK */
 /**
  * @}
index cdc2185cca125bb2a0ad24f4bb082bf9dbc291d4..d535fa092f9f2190a0923d6e2266488e6aecdb70 100644 (file)
@@ -28,7 +28,9 @@
 
 #ifdef HAVE_DPDK
 
-void iceDeviceSetRSSHashFunction(uint64_t *rss_conf);
+#include "util-dpdk.h"
+
+void iceDeviceSetRSSConf(struct rte_eth_rss_conf *rss_conf);
 
 #endif /* HAVE_DPDK */