From 30acdc6fd7ddc8bcffc9e76463876a8056eebe2e Mon Sep 17 00:00:00 2001 From: Alfredo Cardigliano Date: Tue, 7 Jan 2025 17:03:28 +0100 Subject: [PATCH] Add rss_scheme parameter to select rss hash --- drivers/intel/ice/ice-1.12.7-zc/src/ice_lib.c | 8 +++++++- drivers/intel/ice/ice-1.12.7-zc/src/ice_main.c | 8 ++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/intel/ice/ice-1.12.7-zc/src/ice_lib.c b/drivers/intel/ice/ice-1.12.7-zc/src/ice_lib.c index 2d63240d69..32352a8d68 100644 --- a/drivers/intel/ice/ice-1.12.7-zc/src/ice_lib.c +++ b/drivers/intel/ice/ice-1.12.7-zc/src/ice_lib.c @@ -12,6 +12,7 @@ #ifdef HAVE_PF_RING extern int RSS[ICE_MAX_NIC]; +extern int rss_scheme; extern int enable_debug; #endif @@ -2318,7 +2319,12 @@ int ice_vsi_cfg_rss_lut_key(struct ice_vsi *vsi) * 11b = Reserved */ reg = rd32(hw, VSIQF_HASH_CTL(vsi->vsi_num)); - reg = (reg & (~VSIQF_HASH_CTL_HASH_SCHEME_M)) | (1 << VSIQF_HASH_CTL_HASH_SCHEME_S); + if (rss_scheme == 1) /* Asymmetric Toeplitz */ + reg = (reg & (~VSIQF_HASH_CTL_HASH_SCHEME_M)) | (0); + else if (rss_scheme == 2) /* Simple XOR */ + reg = (reg & (~VSIQF_HASH_CTL_HASH_SCHEME_M)) | (2 << VSIQF_HASH_CTL_HASH_SCHEME_S); + else /* Symmetric Toeplitz (Default) */ + reg = (reg & (~VSIQF_HASH_CTL_HASH_SCHEME_M)) | (1 << VSIQF_HASH_CTL_HASH_SCHEME_S); wr32(hw, VSIQF_HASH_CTL(vsi->vsi_num), reg); #endif diff --git a/drivers/intel/ice/ice-1.12.7-zc/src/ice_main.c b/drivers/intel/ice/ice-1.12.7-zc/src/ice_main.c index 778e38921e..ca4d012d27 100644 --- a/drivers/intel/ice/ice-1.12.7-zc/src/ice_main.c +++ b/drivers/intel/ice/ice-1.12.7-zc/src/ice_main.c @@ -38,11 +38,15 @@ MODULE_PARM_DESC(RSS, int enable_debug = 0; module_param(enable_debug, int, 0644); -MODULE_PARM_DESC(debug, "PF_RING debug (0=none, 1=enabled)"); +MODULE_PARM_DESC(enable_debug, "PF_RING debug (0=none, 1=enabled)"); + +int rss_scheme = 0; +module_param(rss_scheme, int, 0644); +MODULE_PARM_DESC(rss_scheme, "Select RSS Hash Scheme (0=Symmetric Toeplitz, 1=Asymmetric Toeplitz, 2=Simple XOR)"); int pppoe_rss = 0; module_param(pppoe_rss, int, 0644); -MODULE_PARM_DESC(debug, "Enable PPPoE Session ID hash in RSS (0=disabled, 1=enabled)"); +MODULE_PARM_DESC(pppoe_rss, "Enable PPPoE Session ID hash in RSS (0=disabled, 1=enabled)"); #endif /* HAVE_PF_RING */ #define DRV_VERSION_MAJOR 1