]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
dpdk: support 52 byte long key on ice (E810) cards 10917/head
authorLukas Sismis <lsismis@oisf.net>
Tue, 26 Mar 2024 21:17:17 +0000 (22:17 +0100)
committerVictor Julien <victor@inliniac.net>
Fri, 19 Apr 2024 08:42:26 +0000 (10:42 +0200)
Ticket: 6872

(cherry picked from commit 10590e6d946ff8711acef09cfe3f79be88910c17)

src/runmode-dpdk.c
src/util-dpdk-ice.c
src/util-dpdk-ice.h

index 105cbd94e5541a129e93e32b8089aa7fd714cdc1..b4d476b95c5a750f10f68b0973fb63c8415c8fca 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 */