git: 5a94c2e89f6a - main - lio: use newly exposed RSS hash key API rather than ad-hoc hashing

From: Andrew Gallatin <gallatin_at_FreeBSD.org>
Date: Sat, 22 Nov 2025 14:31:02 UTC
The branch main has been updated by gallatin:

URL: https://cgit.FreeBSD.org/src/commit/?id=5a94c2e89f6a4fbdea49d6c3a51b5fe0154d2495

commit 5a94c2e89f6a4fbdea49d6c3a51b5fe0154d2495
Author:     Andrew Gallatin <gallatin@FreeBSD.org>
AuthorDate: 2025-11-22 14:29:34 +0000
Commit:     Andrew Gallatin <gallatin@FreeBSD.org>
CommitDate: 2025-11-22 14:29:34 +0000

    lio: use newly exposed RSS hash key API rather than ad-hoc hashing
    
    Differential Revision:  https://reviews.freebsd.org/D53101
    Reviewed by: zlei
    Sponsored by: Netflix
---
 sys/dev/liquidio/lio_main.c    | 5 -----
 sys/dev/liquidio/lio_network.h | 2 --
 sys/dev/liquidio/lio_rss.c     | 8 ++++----
 sys/dev/liquidio/lio_rss.h     | 4 ----
 4 files changed, 4 insertions(+), 15 deletions(-)

diff --git a/sys/dev/liquidio/lio_main.c b/sys/dev/liquidio/lio_main.c
index 3c73a6b10eed..7b6eeb460095 100644
--- a/sys/dev/liquidio/lio_main.c
+++ b/sys/dev/liquidio/lio_main.c
@@ -64,10 +64,8 @@ static int	num_queues_per_pf1;
 TUNABLE_INT("hw.lio.num_queues_per_pf0", &num_queues_per_pf0);
 TUNABLE_INT("hw.lio.num_queues_per_pf1", &num_queues_per_pf1);
 
-#ifdef RSS
 static int	lio_rss = 1;
 TUNABLE_INT("hw.lio.rss", &lio_rss);
-#endif	/* RSS */
 
 /* Hardware LRO */
 unsigned int	lio_hwlro = 0;
@@ -1437,13 +1435,10 @@ lio_setup_nic_devices(struct octeon_device *octeon_dev)
 		lio_set_feature(ifp, LIO_CMD_TNL_TX_CSUM_CTL,
 				LIO_CMD_TXCSUM_ENABLE);
 
-#ifdef RSS
 		if (lio_rss) {
 			if (lio_send_rss_param(lio))
 				goto setup_nic_dev_fail;
 		} else
-#endif	/* RSS */
-
 			lio_set_feature(ifp, LIO_CMD_SET_FNV,
 					LIO_CMD_FNV_ENABLE);
 
diff --git a/sys/dev/liquidio/lio_network.h b/sys/dev/liquidio/lio_network.h
index 856cc8f7ab09..65896bf8cfa9 100644
--- a/sys/dev/liquidio/lio_network.h
+++ b/sys/dev/liquidio/lio_network.h
@@ -125,9 +125,7 @@ struct lio {
 	/* VLAN Filtering related */
 	eventhandler_tag	vlan_attach;
 	eventhandler_tag	vlan_detach;
-#ifdef RSS
 	struct lio_rss_params_set rss_set;
-#endif	/* RSS */
 };
 
 #define LIO_MAX_CORES	12
diff --git a/sys/dev/liquidio/lio_rss.c b/sys/dev/liquidio/lio_rss.c
index df10cbbe3a05..da1e18142e81 100644
--- a/sys/dev/liquidio/lio_rss.c
+++ b/sys/dev/liquidio/lio_rss.c
@@ -31,8 +31,6 @@
  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifdef RSS
-
 #include "lio_bsd.h"
 #include "lio_common.h"
 #include "lio_droq.h"
@@ -69,7 +67,11 @@ lio_set_rss_info(struct lio *lio)
 	uint8_t		queue_id;
 
 	for (i = 0; i < LIO_RSS_TABLE_SZ; i++) {
+#ifdef RSS
 		queue_id = rss_get_indirection_to_bucket(i);
+#else
+		queue_id = i;
+#endif
 		queue_id = queue_id % oct->num_oqs;
 		rss_set->fw_itable[i] = queue_id;
 	}
@@ -168,5 +170,3 @@ lio_send_rss_param(struct lio *lio)
 
 	return (0);
 }
-
-#endif	/* RSS */
diff --git a/sys/dev/liquidio/lio_rss.h b/sys/dev/liquidio/lio_rss.h
index 8a5020d47f7e..727f08b5fb0d 100644
--- a/sys/dev/liquidio/lio_rss.h
+++ b/sys/dev/liquidio/lio_rss.h
@@ -34,8 +34,6 @@
 #ifndef __LIO_RSS_H__
 #define __LIO_RSS_H__
 
-#ifdef RSS
-
 #include <net/rss_config.h>
 #include <netinet/in_rss.h>
 
@@ -76,8 +74,6 @@ struct lio_rss_params_set {
 
 };
 
-#endif	/* RSS */
-
 #define LIO_RSS_HASH_IPV4		0x100
 #define LIO_RSS_HASH_TCP_IPV4		0x200
 #define LIO_RSS_HASH_IPV6		0x400