Home
last modified time | relevance | path

Searched full:rss (Results 1 – 25 of 294) sorted by relevance

12345678910>>...12

/linux/tools/testing/selftests/drivers/net/hw/
H A Drss_ctx.py27 if 'rss-hash-key' not in data:
29 non_zero = [x for x in data['rss-hash-key'] if x != 0]
30 ksft_eq(bool(non_zero), True, comment=f"RSS key is all zero {data['rss-hash-key']}")
49 # Output will be something like: "New RSS context is 1" or
110 """Check that ntuple rule references RSS context ID"""
112 pattern = f"RSS Context (ID: )?{ctx_id}"
113 ksft_true(re.search(pattern, text), "RSS context not referenced in ntuple rule")
117 """Test basics like updating the main RSS key and indirection table."""
124 want_keys = ['rss
[all...]
H A Drss_api.py5 API level tests for RSS (mostly Netlink vs IOCTL).
27 # Output will be something like: "New RSS context is 1" or
95 rss = cfg.ethnl.rss_get({"header": {"dev-index": cfg.ifindex}})
96 ksft_eq(set(rss.get("indir", [-1])), {1})
100 rss = cfg.ethnl.rss_get({"header": {"dev-index": cfg.ifindex}})
101 ksft_eq(set(rss.get("indir", [-1])), {0, 1})
111 rss = cfg.ethnl.rss_get({"header": {"dev-index": cfg.ifindex}})
112 ksft_eq(set(rss.get("indir", [-1])), set(range(qcnt)))
130 rss = cfg.ethnl.rss_get({"header": {"dev-index": cfg.ifindex},
132 ksft_eq(set(rss.get("indir", [-1])), {1})
[all …]
H A Dtoeplitz.py7 - RSS mapping from rxhash to rx queue;
133 for grp in ["", "rss", "rps"]:
151 rss = cfg.ethnl.rss_get({"header": {"dev-index": cfg.ifindex}})
153 if rss.get('hfunc') != ETH_RSS_HASH_TOP or rss.get('input-xfrm'):
158 "hfunc": rss.get('hfunc'),
159 "input-xfrm": rss.get('input-xfrm', {})
178 if grp == "rss":
181 ksft_pr(f"RSS using CPUs: {irq_cpus}")
H A Drss_input_xfrm.py27 If symmetric RSS hash is configured, send traffic twice, swapping the
33 raise KsftSkipEx("Need at least two CPUs to test symmetric RSS hash")
40 rss = cfg.ethnl.rss_get({'header': {'dev-name': cfg.ifname}})
41 input_xfrm = set(filter(lambda x: 'sym' in x, rss.get('input-xfrm', {})))
45 raise KsftSkipEx("Symmetric RSS hash not requested")
H A Dtoeplitz.c13 * 5. Compute the rxqueue that RSS would select based on this rx_hash
148 log_verbose(". error: rss cpu mismatch (%d)", cpu); in verify_rss()
383 * (a) only testing rxhash, not RSS or (b) <= 256 cpus. in create_ring()
518 error(1, 0, "RSS key not available for %s", cfg_ifname); in read_rss_dev_info_ynl()
522 error(1, 0, "RSS key length %u out of bounds [%u, %u]", in read_rss_dev_info_ynl()
529 error(1, 0, "RSS indirection table too large (%u > %u)", in read_rss_dev_info_ynl()
538 log_verbose("RSS indirection table size: %u\n", in read_rss_dev_info_ynl()
623 "Can't supply both RSS cpus ('-C') and RPS map ('-r')"); in parse_opts()
/linux/drivers/net/ethernet/amazon/ena/
H A Dena_com.c1043 return ena_dev->rss.hash_func; in ena_com_get_current_hash_function()
1049 (ena_dev->rss).hash_key; in ena_com_hash_key_fill_default_key()
1060 struct ena_rss *rss = &ena_dev->rss; in ena_com_hash_key_allocate() local
1065 rss->hash_key = dma_alloc_coherent(ena_dev->dmadev, sizeof(*rss->hash_key), in ena_com_hash_key_allocate()
1066 &rss->hash_key_dma_addr, GFP_KERNEL); in ena_com_hash_key_allocate()
1068 if (unlikely(!rss->hash_key)) in ena_com_hash_key_allocate()
1076 struct ena_rss *rss = &ena_dev->rss; in ena_com_hash_key_destroy() local
1078 if (rss->hash_key) in ena_com_hash_key_destroy()
1079 dma_free_coherent(ena_dev->dmadev, sizeof(*rss->hash_key), rss->hash_key, in ena_com_hash_key_destroy()
1080 rss->hash_key_dma_addr); in ena_com_hash_key_destroy()
[all …]
H A Dena_com.h371 struct ena_rss rss; member
699 /* ena_com_rss_init - Init RSS
703 * Allocate RSS/RFS resources.
704 * The caller then can configure rss using ena_com_set_hash_function,
711 /* ena_com_rss_destroy - Destroy rss
714 * Free all the RSS/RFS resources.
718 /* ena_com_get_current_hash_function - Get RSS hash function
726 /* ena_com_fill_hash_function - Fill RSS hash function
783 /* ena_com_fill_hash_ctrl - Fill RSS hash control
838 /* ena_com_indirect_table_fill_entry - Fill a single entry in the RSS
[all …]
/linux/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dotx2_ethtool.c575 struct otx2_rss_info *rss; in otx2_get_rss_hash_opts() local
577 rss = &pfvf->hw.rss_info; in otx2_get_rss_hash_opts()
579 if (!(rss->flowkey_cfg & in otx2_get_rss_hash_opts()
585 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_VLAN) in otx2_get_rss_hash_opts()
591 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_TCP) in otx2_get_rss_hash_opts()
596 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_UDP) in otx2_get_rss_hash_opts()
601 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_SCTP) in otx2_get_rss_hash_opts()
606 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_ESP) in otx2_get_rss_hash_opts()
630 struct otx2_rss_info *rss; in otx2_set_rss_hash_opts() local
633 rss = &pfvf->hw.rss_info; in otx2_set_rss_hash_opts()
[all …]
H A Dotx2_xsk.c134 /* Reconfigure RSS table as 'qidx' cannot be part of RSS now */ in otx2_xsk_pool_enable()
155 /* Reconfigure RSS table as 'qidx' now need to be part of RSS now */ in otx2_xsk_pool_disable()
H A Dotx2_common.c291 struct otx2_rss_info *rss = &pfvf->hw.rss_info; in otx2_set_flowkey_cfg() local
303 req->flowkey_cfg = rss->flowkey_cfg; in otx2_set_flowkey_cfg()
325 struct otx2_rss_info *rss = &pfvf->hw.rss_info; in otx2_set_rss_table() local
326 const int index = rss->rss_size * ctx_id; in otx2_set_rss_table()
332 ind_tbl = ind_tbl ?: rss->ind_tbl; in otx2_set_rss_table()
334 for (idx = 0; idx < rss->rss_size; idx++) { in otx2_set_rss_table()
356 aq->rss.rq = ind_tbl[idx]; in otx2_set_rss_table()
370 struct otx2_rss_info *rss = &pfvf->hw.rss_info; in otx2_set_rss_key() local
371 u64 *key = (u64 *)&rss->key[4]; in otx2_set_rss_key()
383 (u64)(*((u32 *)&rss->key)) << 32); in otx2_set_rss_key()
[all …]
/linux/tools/testing/selftests/net/
H A Dtoeplitz.sh
/linux/Documentation/networking/
H A Dscaling.rst17 - RSS: Receive Side Scaling
24 RSS: Receive Side Scaling
33 generally known as “Receive-side Scaling” (RSS). The goal of RSS and
38 The filter used in RSS is typically a hash function over the network
41 implementation of RSS uses a 128-entry indirection table where each entry
47 Some NICs support symmetric RSS hashing where, if the IP (source address,
52 "Symmetric-XOR" and "Symmetric-OR-XOR" are types of RSS algorithms that
67 The result is then fed to the underlying RSS algorithm.
75 RSS Configuration
81 num_queues. A typical RSS configuration would be to have one receive queue
[all …]
/linux/drivers/net/ethernet/hisilicon/hns3/hns3_common/
H A Dhclge_comm_rss.c114 "failed to set rss tc mode, ret = %d.\n", ret); in hclge_comm_set_rss_tc_mode()
131 /* Set the RSS Hash Key if specififed by the user */ in hclge_comm_set_rss_hash_key()
137 /* Update the shadow RSS key with user specified qids */ in hclge_comm_set_rss_hash_key()
171 "failed to init rss tuple cmd, ret = %d.\n", ret); in hclge_comm_set_rss_tuple()
178 "failed to set rss tuple, ret = %d.\n", ret); in hclge_comm_set_rss_tuple()
222 /* Initialize RSS indirect table */ in hclge_comm_rss_indir_init_cfg()
308 "failed to configure rss table, ret = %d.\n", in hclge_comm_set_rss_indir_table()
341 "failed to configure rss input, ret = %d.\n", ret); in hclge_comm_set_rss_input_tuple()
364 /* Get the RSS Key required by the user */ in hclge_comm_get_rss_hash_info()
415 "failed to configure RSS key, ret = %d.\n", in hclge_comm_set_rss_algo_key()
/linux/drivers/net/ethernet/netronome/nfp/
H A Dnfp_net_ctrl.h61 /* Hash type pre-pended when a RSS hash was computed */
111 #define NFP_NET_CFG_CTRL_RSS (0x1 << 17) /* RSS (version 1) */
121 #define NFP_NET_CFG_CTRL_RSS2 (0x1 << 29) /* RSS (version 2) */
141 #define NFP_NET_CFG_UPDATE_RSS (0x1 << 2) /* RSS config change */
219 /* RSS capabilities
281 /* RSS configuration (0x0100 - 0x01ac):
283 * %NFP_NET_CFG_RSS_CFG: RSS configuration word
284 * %NFP_NET_CFG_RSS_KEY: RSS "secret" key
285 * %NFP_NET_CFG_RSS_ITBL: RSS indirection table
291 #define NFP_NET_CFG_RSS_IPV4 (1 << 8) /* RSS for IPv4 */
[all …]
/linux/drivers/net/ethernet/mellanox/mlx4/
H A Den_resources.c41 int is_tx, int rss, int qpn, int cqn, in mlx4_en_fill_qp_context() argument
48 context->flags = cpu_to_be32(7 << 16 | rss << MLX4_RSS_QPC_FLAG_OFFSET); in mlx4_en_fill_qp_context()
51 if (!is_tx && !rss) in mlx4_en_fill_qp_context()
74 if (!rss && in mlx4_en_fill_qp_context()
87 if (!is_tx && !rss && in mlx4_en_fill_qp_context()
/linux/drivers/net/ethernet/chelsio/cxgb4vf/
H A Dt4vf_hw.c1009 * t4vf_get_rss_glb_config - retrieve adapter RSS Global Configuration
1012 * Retrieves global RSS mode and parameters with which we have to live
1013 * and stores them in the @adapter's RSS parameters.
1017 struct rss_params *rss = &adapter->params.rss; in t4vf_get_rss_glb_config() local
1022 * Execute an RSS Global Configuration read command to retrieve in t4vf_get_rss_glb_config()
1023 * our RSS configuration. in t4vf_get_rss_glb_config()
1035 * Transate the big-endian RSS Global Configuration into our in t4vf_get_rss_glb_config()
1036 * cpu-endian format based on the RSS mode. We also do first level in t4vf_get_rss_glb_config()
1040 rss->mode = FW_RSS_GLB_CONFIG_CMD_MODE_G( in t4vf_get_rss_glb_config()
1042 switch (rss->mode) { in t4vf_get_rss_glb_config()
[all …]
/linux/include/uapi/linux/
H A Dtaskstats.h127 /* Accumulated RSS usage in duration of a task, in MBytes-usecs.
128 * The current rss usage is added to this counter every time
133 __u64 coremem; /* accumulated RSS usage in MB-usec */
139 /* High watermark of RSS and virtual memory usage in duration of
142 __u64 hiwater_rss; /* High-watermark of RSS usage, in KB */
/linux/drivers/net/ethernet/intel/igc/
H A Digc_base.h68 __le16 pkt_info; /*RSS type, Pkt type*/
74 __le32 rss; /* RSS Hash */ member
/linux/drivers/net/ethernet/qlogic/qed/
H A Dqed_l2.c485 …"update rss flag %d, rss_mode = %d, update_caps = %d, capabilities = %d, update_ind = %d, update_r… in qed_sp_vport_update_rss()
505 "Configured RSS indirection table [%d entries]:\n", in qed_sp_vport_update_rss()
2375 struct qed_rss_params *rss) in qed_update_vport_rss() argument
2380 rss->update_rss_config = 1; in qed_update_vport_rss()
2381 rss->rss_enable = 1; in qed_update_vport_rss()
2382 rss->update_rss_capabilities = 1; in qed_update_vport_rss()
2383 rss->update_rss_ind_table = 1; in qed_update_vport_rss()
2384 rss->update_rss_key = 1; in qed_update_vport_rss()
2385 rss->rss_caps = input->rss_caps; in qed_update_vport_rss()
2386 memcpy(rss->rss_key, input->rss_key, QED_RSS_KEY_SIZE * sizeof(u32)); in qed_update_vport_rss()
[all …]
/linux/Documentation/networking/device_drivers/ethernet/freescale/
H A Ddpaa.rst157 ethtool. Also, rx-flow-hash and rx-hashing was added. The addition of RSS
189 By default the DPAA Ethernet driver enables RSS, making use of the
193 When RSS is disabled, all traffic received by a certain interface is
201 certain interface when RSS is not enabled.
203 To implement RSS, the DPAA Ethernet driver allocates an extra set of
212 RSS can be turned off for a certain interface using ethtool, i.e.::
/linux/include/linux/
H A Dethtool.h66 ETH_RSS_HASH_TOP_BIT, /* Configurable RSS hash function - Toeplitz */
67 ETH_RSS_HASH_XOR_BIT, /* Configurable RSS hash function - Xor */
68 ETH_RSS_HASH_CRC32_BIT, /* Configurable RSS hash function - Crc32 */
176 * struct ethtool_rxfh_context - a custom RSS context configuration
180 * @hfunc: RSS hash function identifier. One of the %ETH_RSS_HASH_*
818 * struct ethtool_rxfh_param - RXFH (RSS) parameters
819 * @hfunc: Defines the current RSS hash function used by HW (or to be set to).
830 * @rss_context: RSS context identifier. Context 0 is the default for normal
833 * to allocate a new RSS context; on return this field will
854 * @rss_context: RSS context, will only be used if rxfh_per_ctx_fields is
[all …]
/linux/drivers/net/ethernet/cisco/enic/
H A Dvnic_rss.h10 /* RSS key array */
24 /* RSS cpu array */
/linux/drivers/net/ethernet/myricom/myri10ge/
H A Dmyri10ge_mcp.h265 /* data0 = enable/disable rss
266 * 0: disable rss. nic does not distribute receive packets.
267 * 1: enable rss. nic distributes receive packets among queues.
269 * 1: IPV4 (required by RSS)
270 * 2: TCP_IPV4 (required by RSS)
271 * 3: IPV4 | TCP_IPV4 (required by RSS)
/linux/drivers/net/ethernet/broadcom/bnx2x/
H A Dbnx2x_vfpf.c587 /* rss */ in bnx2x_leading_vfq_init()
799 /* request pf to config rss table for vf queues*/
841 DP(BNX2X_MSG_IOV, "rss flags %x\n", req->rss_flags); in bnx2x_vfpf_config_rss()
859 "Failed to send rss message to PF over VF-PF channel [%d]\n", in bnx2x_vfpf_config_rss()
1984 struct bnx2x_config_rss_params rss; in bnx2x_vf_mbx_update_rss() local
1990 BNX2X_ERR("failing rss configuration of vf %d due to size mismatch\n", in bnx2x_vf_mbx_update_rss()
1996 memset(&rss, 0, sizeof(struct bnx2x_config_rss_params)); in bnx2x_vf_mbx_update_rss()
1998 /* set vfop params according to rss tlv */ in bnx2x_vf_mbx_update_rss()
1999 memcpy(rss.ind_table, rss_tlv->ind_table, in bnx2x_vf_mbx_update_rss()
2001 memcpy(rss.rss_key, rss_tlv->rss_key, sizeof(rss_tlv->rss_key)); in bnx2x_vf_mbx_update_rss()
[all …]
/linux/drivers/net/ethernet/marvell/mvpp2/
H A Dmvpp2_cls.c3 * RSS and Classifier helpers for Marvell PPv2 Network Controller
495 /* CLS is always enabled, RSS is enabled/disabled in C2 lookup */ in mvpp2_cls_flow_lkp_init()
601 /* RSS config C2 lookup */ in mvpp2_cls_flow_init()
884 /* Update RSS status after matching this entry */ in mvpp2_port_c2_cls_init()
887 /* Mark packet as "forwarded to software", needed for RSS */ in mvpp2_port_c2_cls_init()
891 * don't lock, since the rx queue selection might be overridden by RSS in mvpp2_port_c2_cls_init()
997 /* The RxQ number is used to select the RSS table. It that case, we set in mvpp2_rss_port_c2_enable()
1132 /* Update RSS status after matching this entry */ in mvpp2_port_c2_tcam_rule_add()
1137 * rules steering to an RXQ, and a lower one steering to RSS, in mvpp2_port_c2_tcam_rule_add()
1138 * we don't want the low prio RSS rule overwriting this flag. in mvpp2_port_c2_tcam_rule_add()
[all …]

12345678910>>...12