| /linux/drivers/net/ethernet/mellanox/mlx5/core/en/ |
| H A D | rss.c | 4 #include "rss.h" 83 bool mlx5e_rss_get_inner_ft_support(struct mlx5e_rss *rss) in mlx5e_rss_get_inner_ft_support() argument 85 return rss->params.inner_ft_support; in mlx5e_rss_get_inner_ft_support() 88 void mlx5e_rss_params_indir_modify_actual_size(struct mlx5e_rss *rss, u32 num_channels) in mlx5e_rss_params_indir_modify_actual_size() argument 90 rss->indir.actual_table_size = mlx5e_rqt_size(rss->mdev, num_channels); in mlx5e_rss_params_indir_modify_actual_size() 118 … "Failed to copy RSS due to size mismatch, src (actual %u, max %u) != dst (actual %u, max %u)\n", in mlx5e_rss_copy() 134 struct mlx5e_rss *rss; in mlx5e_rss_init_copy() local 137 rss = kvzalloc_obj(*rss); in mlx5e_rss_init_copy() 138 if (!rss) in mlx5e_rss_init_copy() 141 err = mlx5e_rss_params_indir_init(&rss->indir, in mlx5e_rss_init_copy() [all …]
|
| H A D | rx_res.c | 17 struct mlx5e_rss *rss[MLX5E_MAX_NUM_RSS]; member 48 if (res->rss[i]) in mlx5e_rx_res_rss_update_num_channels() 49 mlx5e_rss_params_indir_modify_actual_size(res->rss[i], nch); in mlx5e_rx_res_rss_update_num_channels() 59 struct mlx5e_rss *rss; in mlx5e_rx_res_rss_init_def() local 61 if (WARN_ON(res->rss[0])) in mlx5e_rx_res_rss_init_def() 78 rss = mlx5e_rss_init(res->mdev, &rss_params, &init_params); in mlx5e_rx_res_rss_init_def() 79 if (IS_ERR(rss)) in mlx5e_rx_res_rss_init_def() 80 return PTR_ERR(rss); in mlx5e_rx_res_rss_init_def() 82 mlx5e_rss_set_indir_uniform(rss, init_params.nch); in mlx5e_rx_res_rss_init_def() 84 res->rss[0] = rss; in mlx5e_rx_res_rss_init_def() [all …]
|
| H A D | reporter_rx.c | 383 static void mlx5e_rx_reporter_diagnose_rx_res_rss_tirn(struct mlx5e_rss *rss, bool inner, in mlx5e_rx_reporter_diagnose_rx_res_rss_tirn() argument 390 if (!mlx5e_rss_valid_tir(rss, tt, inner)) in mlx5e_rx_reporter_diagnose_rx_res_rss_tirn() 402 devlink_fmsg_u32_pair_put(fmsg, "tirn", mlx5e_rss_get_tirn(rss, tt, inner)); in mlx5e_rx_reporter_diagnose_rx_res_rss_tirn() 413 struct mlx5e_rss *rss = mlx5e_rx_res_rss_get(rx_res, rss_idx); in mlx5e_rx_reporter_diagnose_rx_res_rss_ix() local 415 if (!rss) in mlx5e_rx_reporter_diagnose_rx_res_rss_ix() 421 devlink_fmsg_u32_pair_put(fmsg, "rqtn", mlx5e_rss_get_rqtn(rss)); in mlx5e_rx_reporter_diagnose_rx_res_rss_ix() 422 mlx5e_rx_reporter_diagnose_rx_res_rss_tirn(rss, false, fmsg); in mlx5e_rx_reporter_diagnose_rx_res_rss_ix() 423 if (mlx5e_rss_get_inner_ft_support(rss)) in mlx5e_rx_reporter_diagnose_rx_res_rss_ix() 424 mlx5e_rx_reporter_diagnose_rx_res_rss_tirn(rss, true, fmsg); in mlx5e_rx_reporter_diagnose_rx_res_rss_ix() 434 devlink_fmsg_arr_pair_nest_start(fmsg, "RSS"); in mlx5e_rx_reporter_diagnose_rx_res_rss()
|
| /linux/drivers/net/ethernet/intel/ice/virt/ |
| H A D | rss.c | 4 #include "rss.h" 403 dev_err(ice_hw_to_dev(hw), "update VSI for RSS failed, err %d aq_err %s\n", in ice_vc_rss_hash_update() 510 * a specific virtchnl RSS cfg 512 * @rss_cfg: pointer to the virtchnl RSS cfg 515 * Return true if all the protocol header and hash fields in the RSS cfg could 518 * This function parses the virtchnl RSS cfg to be the intended 519 * hash fields and the intended header for RSS configuration 536 /* set outer layer RSS as default */ in ice_vc_parse_rss_cfg() 677 * RSS offloads 689 * ice_is_hash_cfg_valid - Check whether an RSS hash context is valid [all …]
|
| /linux/tools/testing/selftests/drivers/net/hw/ |
| H A D | rss_api.py | 5 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 D | rss_ctx.py | 30 if 'rss-hash-key' not in data: 32 non_zero = [x for x in data['rss-hash-key'] if x != 0] 33 ksft_eq(bool(non_zero), True, comment=f"RSS key is all zero {data['rss-hash-key']}") 52 # Output will be something like: "New RSS context is 1" or 113 """Check that ntuple rule references RSS context ID""" 115 pattern = f"RSS Context (ID: )?{ctx_id}" 116 ksft_true(re.search(pattern, text), "RSS context not referenced in ntuple rule") 120 """Test basics like updating the main RSS key and indirection table.""" 127 want_keys = ['rss-hash-key', 'rss-hash-function', 'rss-indirection-table'] 135 key_len = len(data['rss-hash-key']) [all …]
|
| H A D | toeplitz.py | 7 - RSS mapping from rxhash to rx queue; 136 for grp in ["", "rss", "rps"]: 154 rss = cfg.ethnl.rss_get({"header": {"dev-index": cfg.ifindex}}) 156 if rss.get('hfunc') != ETH_RSS_HASH_TOP or rss.get('input-xfrm'): 161 "hfunc": rss.get('hfunc'), 162 "input-xfrm": rss.get('input-xfrm', {}) 181 if grp == "rss": 184 ksft_pr(f"RSS using CPUs: {irq_cpus}")
|
| H A D | rss_input_xfrm.py | 29 rss = cfg.ethnl.rss_get({'header': {'dev-name': cfg.ifname}}) 30 orig_xfrm = rss.get('input-xfrm', set()) 61 If symmetric RSS hash is configured, send traffic twice, swapping the 67 raise KsftSkipEx("Need at least two CPUs to test symmetric RSS hash") 77 raise KsftSkipEx("Symmetric RSS hash not supported by device")
|
| /linux/drivers/net/ethernet/amazon/ena/ |
| H A D | ena_com.c | 1043 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 D | ena_com.h | 371 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 D | otx2_ethtool.c | 584 struct otx2_rss_info *rss; in otx2_get_rss_hash_opts() local 586 rss = &pfvf->hw.rss_info; in otx2_get_rss_hash_opts() 588 if (!(rss->flowkey_cfg & in otx2_get_rss_hash_opts() 594 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_VLAN) in otx2_get_rss_hash_opts() 600 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_TCP) in otx2_get_rss_hash_opts() 605 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_UDP) in otx2_get_rss_hash_opts() 610 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_SCTP) in otx2_get_rss_hash_opts() 615 if (rss->flowkey_cfg & NIX_FLOW_KEY_TYPE_ESP) in otx2_get_rss_hash_opts() 639 struct otx2_rss_info *rss; in otx2_set_rss_hash_opts() local 642 rss = &pfvf->hw.rss_info; in otx2_set_rss_hash_opts() [all …]
|
| H A D | otx2_xsk.c | 134 /* 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()
|
| /linux/tools/testing/selftests/net/ |
| H A D | toeplitz.sh | |
| /linux/drivers/net/ethernet/hisilicon/hns3/hns3_common/ |
| H A D | hclge_comm_rss.c | 114 "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 D | nfp_net_ctrl.h | 61 /* 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/intel/iavf/ |
| H A D | iavf_virtchnl.c | 1155 * Request RSS Hash enable bits from PF 1161 dev_err(&adapter->pdev->dev, "Cannot get RSS hash capabilities, command %d pending\n", in iavf_get_rss_hashcfg() 1174 * Request the PF to set our RSS hash capabilities 1182 dev_err(&adapter->pdev->dev, "Cannot set RSS hash enable, command %d pending\n", in iavf_set_rss_hashcfg() 1197 * Request the PF to set our RSS hash key 1206 dev_err(&adapter->pdev->dev, "Cannot set RSS key, command %d pending\n", in iavf_set_rss_key() 1228 * Request the PF to set our RSS lookup table 1237 dev_err(&adapter->pdev->dev, "Cannot set RSS LUT, command %d pending\n", in iavf_set_rss_lut() 1258 * Request the PF to set our RSS Hash function 1267 dev_err(&adapter->pdev->dev, "Cannot set RSS Hash function, command %d pending\n", in iavf_set_rss_hfunc() [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx4/ |
| H A D | en_resources.c | 41 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 D | t4vf_hw.c | 1009 * 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/drivers/net/ethernet/intel/ice/ |
| H A D | ice_lib.c | 194 /* only 1 Rx queue unless RSS is enabled */ in ice_vsi_set_num_qs() 847 * ice_vsi_clean_rss_flow_fld - Delete RSS configuration 850 * This function deletes RSS input set for all flows that were configured 868 * ice_rss_clean - Delete RSS related VSI structures and configuration 882 /* remove RSS replay list */ in ice_rss_clean() 888 * ice_vsi_set_rss_params - Setup RSS capabilities per VSI type 907 /* PF VSI will inherit RSS instance of PF */ in ice_vsi_set_rss_params() 924 /* VF VSI will get a small RSS table. in ice_vsi_set_rss_params() 1150 * ice_set_rss_vsi_ctx - Set RSS VSI context before adding a VSI 1166 /* PF VSI will inherit RSS instance of PF */ in ice_set_rss_vsi_ctx() [all …]
|
| H A D | ice_flow.c | 1353 * @symm: symmetric setting for RSS profiles 1446 * @symm: symmetric setting for RSS profiles 1723 * @symm: symmetric setting for RSS profiles 1806 /* No flow entry data is expected for RSS */ in ice_flow_add_entry() 2063 * ice_flow_set_rss_seg_info - setup packet segments for RSS 2115 * ice_rem_vsi_rss_list - remove VSI from RSS list 2119 * Remove the VSI from all RSS configurations in the list. 2139 * ice_rem_vsi_rss_cfg - remove RSS configurations associated with VSI 2178 * ice_get_rss_hdr_type - get a RSS profile's header type 2179 * @prof: RSS flow profile [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/ |
| H A D | en_fs_ethtool.c | 66 struct mlx5e_rss *rss; member 429 struct mlx5e_rss *rss; in flow_get_tirn() local 434 rss = mlx5e_rx_res_rss_get(priv->rx_res, rss_context); in flow_get_tirn() 435 if (!rss) in flow_get_tirn() 444 err = mlx5e_rss_obtain_tirn(rss, tt, &pkt_merge_param, false, tirn); in flow_get_tirn() 447 eth_rule->rss = rss; in flow_get_tirn() 448 mlx5e_rss_refcnt_inc(eth_rule->rss); in flow_get_tirn() 514 if (eth_rule->rss) in del_ethtool_rule() 515 mlx5e_rss_refcnt_dec(eth_rule->rss); in del_ethtool_rule() 807 if (!eth_rule->rss) in mlx5e_ethtool_get_flow() [all …]
|
| /linux/drivers/net/ethernet/intel/igc/ |
| H A D | igc_base.h | 68 __le16 pkt_info; /*RSS type, Pkt type*/ 74 __le32 rss; /* RSS Hash */ member
|
| /linux/Documentation/networking/device_drivers/ethernet/freescale/ |
| H A D | dpaa.rst | 157 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/drivers/net/ethernet/cisco/enic/ |
| H A D | vnic_rss.h | 10 /* RSS key array */ 24 /* RSS cpu array */
|
| /linux/drivers/net/ethernet/myricom/myri10ge/ |
| H A D | myri10ge_mcp.h | 265 /* 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)
|