Hi Beilei, We will try it ASAP.
BRs, Alvin Zhang From: Xing, Beilei <[email protected]> Sent: Friday, May 28, 2021 9:24 AM To: Vishal Mohan <[email protected]>; [email protected]; Zhang, AlvinX <[email protected]> Subject: RE: DPDK 20.11 - i40e 2 tuple RSS configuration + Alvin. Could you please help on it? Thanks. BR, Beilei From: Vishal Mohan <[email protected]<mailto:[email protected]>> Sent: Thursday, May 27, 2021 5:45 PM To: Xing, Beilei <[email protected]<mailto:[email protected]>>; [email protected]<mailto:[email protected]> Subject: RE: DPDK 20.11 - i40e 2 tuple RSS configuration Hi Beilei, Thanks for the pointer. By using l3-src-only, I was able to run testpmd on 1 tuple mode. But no success when configured manually. Please find the snippet below of my rte_eth_conf and flow conf for your kind perusal: static struct rte_eth_conf port_conf_default = { .rxmode = { .mq_mode = ETH_MQ_RX_RSS, }, .rx_adv_conf = { .rss_conf = { .rss_key = NULL, .rss_key_len = 40, .rss_hf = ETH_RSS_NONFRAG_IPV4_UDP, }, } }; struct rte_flow_item pattern[] = { [0] = { .type = RTE_FLOW_ITEM_TYPE_ETH, }, [1] = { .type = RTE_FLOW_ITEM_TYPE_IPV4, }, [2] = { .type = RTE_FLOW_ITEM_TYPE_UDP, }, [3] = { .type = RTE_FLOW_ITEM_TYPE_END, } }; struct rte_flow_action_rss action_rss = { .types = ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_L3_SRC_ONLY, .queue_num = 10, .queue = queue_ids, }; struct rte_flow_action action[] = { [0] = { .type = RTE_FLOW_ACTION_TYPE_RSS, .conf = &action_rss }, [1] = { .type = RTE_FLOW_ACTION_TYPE_END, } }; struct rte_flow_attr attr = { .egress = 0, .ingress = 1 }; struct rte_flow_error err; retval = rte_flow_validate(portid, &attr, pattern, action, &err); printf("retval %d %d\n",retval,-ENOTSUP); if(!retval){ struct rte_flow *flow = rte_flow_create(portid, &attr, pattern, action, &err); } The above given flow validates and adds successfully but no effect on RSS hashing. Also I did not set .spec and .mask for patterns assuming ETH_RSS_L3_SRC_ONLY will take care of the fields looked into. Can you please point out if im missing anything here ? Thanks & Regards, Vishal Mohan -----Original Message----- From: Xing, Beilei <[email protected]<mailto:[email protected]>> Sent: 27 May 2021 01:42 PM To: Vishal Mohan <[email protected]<mailto:[email protected]>>; [email protected]<mailto:[email protected]> Subject: RE: DPDK 20.11 - i40e 2 tuple RSS configuration CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. Hi, I remember there's no legacy API rte_eth_dev_filter_ctrl() supported in 20.11. Please refer to RSS Flow part in i40e.rst: Enable hash and set input set for ipv4-tcp. testpmd> flow create 0 ingress pattern eth / ipv4 / tcp / end \ actions rss types ipv4-tcp l3-src-only end queues end / end BR, Beilei > -----Original Message----- > From: users <mailto:[email protected]> On Behalf Of Vishal Mohan > Sent: Thursday, May 27, 2021 3:40 PM > To: mailto:[email protected] > Subject: [dpdk-users] DPDK 20.11 - i40e 2 tuple RSS configuration > > I'm trying to implement RSS with 2 tuple (src ip, dst ip) hashing with > X710 - quad port in DPDK 20.11 with no success. I was able to > implement the same in DPDK 17.11 with a combination of RSS flags > given below and > rte_eth_dev_filter_ctrl(): > > .rss_hf = (ETH_RSS_IPV4 | ETH_RSS_NONFRAG_IPV4_OTHER | > ETH_RSS_FRAG_IPV4 | ETH_RSS_NONFRAG_IPV4_UDP | > ETH_RSS_NONFRAG_IPV4_TCP) > > and selecting input fields as dst and src ip for every rss_hf flag > using rte_eth_dev_filter_ctrl(). > > In DPDK 20.11, I believe there is no explicit usage of using > rte_eth_dev_filter_ctrl() instead we can configure the hashing with > the generic rte_flow api. I did configure a flow validate and create > the same, but the hashing is not working as expected. Without flags > ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_NONFRAG_IPV4_TCP no hashing takes > place and with those flags included in .rss_hf, 5 tuple hashing takes > place. > > When using rte_flow api, any flags given in rte_flow_action_rss.types > has no effect on the final RSS hash result. Also the RSS hashing in > the given testpmd isn't working when it is configured in "ip" (2 tuple) mode. > > Any inputs for configuring RSS hashing for 2 tuple is much appreciated. > > > Thanks & Regards, > Vishal Mohan
