linux/drivers/net/ethernet/intel/iavf/iavf_adv_rss.h

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2021, Intel Corporation. */

#ifndef _IAVF_ADV_RSS_H_
#define _IAVF_ADV_RSS_H_

struct iavf_adapter;

/* State of advanced RSS configuration */
enum iavf_adv_rss_state_t {};

enum iavf_adv_rss_flow_seg_hdr {};

#define IAVF_ADV_RSS_FLOW_SEG_HDR_L3

#define IAVF_ADV_RSS_FLOW_SEG_HDR_L4

enum iavf_adv_rss_flow_field {};

#define IAVF_ADV_RSS_HASH_INVALID
#define IAVF_ADV_RSS_HASH_FLD_IPV4_SA
#define IAVF_ADV_RSS_HASH_FLD_IPV6_SA
#define IAVF_ADV_RSS_HASH_FLD_IPV4_DA
#define IAVF_ADV_RSS_HASH_FLD_IPV6_DA
#define IAVF_ADV_RSS_HASH_FLD_TCP_SRC_PORT
#define IAVF_ADV_RSS_HASH_FLD_TCP_DST_PORT
#define IAVF_ADV_RSS_HASH_FLD_UDP_SRC_PORT
#define IAVF_ADV_RSS_HASH_FLD_UDP_DST_PORT
#define IAVF_ADV_RSS_HASH_FLD_SCTP_SRC_PORT
#define IAVF_ADV_RSS_HASH_FLD_SCTP_DST_PORT

/* bookkeeping of advanced RSS configuration */
struct iavf_adv_rss {};

int
iavf_fill_adv_rss_cfg_msg(struct virtchnl_rss_cfg *rss_cfg,
			  u32 packet_hdrs, u64 hash_flds, bool symm);
struct iavf_adv_rss *
iavf_find_adv_rss_cfg_by_hdrs(struct iavf_adapter *adapter, u32 packet_hdrs);
void
iavf_print_adv_rss_cfg(struct iavf_adapter *adapter, struct iavf_adv_rss *rss,
		       const char *action, const char *result);
#endif /* _IAVF_ADV_RSS_H_ */