ice: refactor RSS configuration
Refactor the driver to use a communication data structure for RSS
config. To do so we introduce the new ice_rss_hash_cfg struct, and then
pass it as an argument to several functions.
Also introduce enum ice_rss_cfg_hdr_type to specify a more granular and
flexible RSS configuration:
ICE_RSS_OUTER_HEADERS - take outer layer as RSS input set
ICE_RSS_INNER_HEADERS - take inner layer as RSS input set
ICE_RSS_INNER_HEADERS_W_OUTER_IPV4 - take inner layer as RSS input set for
packet with outer IPV4
ICE_RSS_INNER_HEADERS_W_OUTER_IPV6 - take inner layer as RSS input set for
packet with outer IPV6
ICE_RSS_ANY_HEADERS - try with outer first then inner (same as the
behaviour without this change)
Finally, move the virtchnl_rss_algorithm enum to be with the other RSS
related structures in the virtchnl.h file.
There should be no functional change due to this patch.
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Co-developed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Co-developed-by: Ahmed Zaki <ahmed.zaki@intel.com>
Signed-off-by: Ahmed Zaki <ahmed.zaki@intel.com>
Link: https://lore.kernel.org/r/20231213003321.605376-6-ahmed.zaki@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -911,6 +911,14 @@ struct virtchnl_rss_hena {
|
||||
|
||||
VIRTCHNL_CHECK_STRUCT_LEN(8, virtchnl_rss_hena);
|
||||
|
||||
/* Type of RSS algorithm */
|
||||
enum virtchnl_rss_algorithm {
|
||||
VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC = 0,
|
||||
VIRTCHNL_RSS_ALG_R_ASYMMETRIC = 1,
|
||||
VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC = 2,
|
||||
VIRTCHNL_RSS_ALG_XOR_SYMMETRIC = 3,
|
||||
};
|
||||
|
||||
/* VIRTCHNL_OP_ENABLE_CHANNELS
|
||||
* VIRTCHNL_OP_DISABLE_CHANNELS
|
||||
* VF sends these messages to enable or disable channels based on
|
||||
@@ -1095,14 +1103,6 @@ enum virtchnl_vfr_states {
|
||||
VIRTCHNL_VFR_VFACTIVE,
|
||||
};
|
||||
|
||||
/* Type of RSS algorithm */
|
||||
enum virtchnl_rss_algorithm {
|
||||
VIRTCHNL_RSS_ALG_TOEPLITZ_ASYMMETRIC = 0,
|
||||
VIRTCHNL_RSS_ALG_R_ASYMMETRIC = 1,
|
||||
VIRTCHNL_RSS_ALG_TOEPLITZ_SYMMETRIC = 2,
|
||||
VIRTCHNL_RSS_ALG_XOR_SYMMETRIC = 3,
|
||||
};
|
||||
|
||||
#define VIRTCHNL_MAX_NUM_PROTO_HDRS 32
|
||||
#define PROTO_HDR_SHIFT 5
|
||||
#define PROTO_HDR_FIELD_START(proto_hdr_type) ((proto_hdr_type) << PROTO_HDR_SHIFT)
|
||||
|
||||
Reference in New Issue
Block a user