From: Vishal Mohan <vishal.mohan@tatacommunications.com>
To: "Zhang, AlvinX" <alvinx.zhang@intel.com>,
"Xing, Beilei" <beilei.xing@intel.com>,
"users@dpdk.org" <users@dpdk.org>
Subject: Re: [dpdk-users] DPDK 20.11 - i40e 2 tuple RSS configuration
Date: Sun, 30 May 2021 14:22:43 +0000 [thread overview]
Message-ID: <SG2PR04MB31735118786E71A771379BC8E4209@SG2PR04MB3173.apcprd04.prod.outlook.com> (raw)
In-Reply-To: <SG2PR04MB31739D832E8A30388305BCAFE4229@SG2PR04MB3173.apcprd04.prod.outlook.com>
Hi Alvin and Beilei,
I was able to implement 1 tuple for all the flows after not defining .queue and .queue_num in struct rte_flow_action_rss. Im still trying to do 2 tuple (src and dst) at the same level which seems not possible by the documentations. Any suggestions to address that ?
Thank you for the inputs.
Regards,
Vishal Mohan
From: Vishal Mohan
Sent: 28 May 2021 02:18 PM
To: Zhang, AlvinX <alvinx.zhang@intel.com>; Xing, Beilei <beilei.xing@intel.com>; users@dpdk.org
Subject: RE: DPDK 20.11 - i40e 2 tuple RSS configuration
Hi Alvin,
Thanks for your effort in verifying. As mentioned below I was able to achieve the same behaviour as below but not when I do it manually using rte_flow apis. Can you please take a look at the code snippet in the trail mail to point me if I'm missing anything.
Thanks & Regards,
Vishal Mohan
From: Zhang, AlvinX <alvinx.zhang@intel.com<mailto:alvinx.zhang@intel.com>>
Sent: 28 May 2021 12:27 PM
To: Xing, Beilei <beilei.xing@intel.com<mailto:beilei.xing@intel.com>>; Vishal Mohan <vishal.mohan@tatacommunications.com<mailto:vishal.mohan@tatacommunications.com>>; users@dpdk.org<mailto:users@dpdk.org>
Subject: RE: DPDK 20.11 - i40e 2 tuple RSS configuration
Hi Vishal Mohan
We have tried based on commit b1d36cf828771e28eb0130b59dcf606c2a0bc94d(version: 20.11.0)
0000:81:00.0 'Ethernet Controller XXV710 for 25GbE SFP28 158b' drv=vfio-pci unused=i40e
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xff -n 4 -a 0000:81:00.0 -- -i --rxq=64 --txq=64 --port-topology=loop
flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only end queues end / end
packet=[Ether()/IP(dst="192.168.1.1", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480) -->RSS hash = 0x6a12e180
packet=[Ether()/IP(dst="192.168.1.2", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480) -->RSS hash = 0x6a12e180
packet=[Ether()/IP(dst="192.168.1.2", src="192.168.0.2")/TCP(sport=22,dport=23)/("X"*480) -->RSS hash = 0x6a12e180
packet=[Ether()/IP(dst="192.169.1.2", src="192.16.0.2")/TCP(sport=22,dport=23)/("X"*480) -->RSS hash = 0xead3c21e
packet=[Ether()/IP(dst="192.169.1.2", src="192.16.0.2")/TCP(sport=22,dport=23)/("X"*480) -->RSS hash = 0xead3c21e
packet=[Ether()/IP(dst="192.169.1.2", src="192.16.0.2")/TCP(sport=22,dport=230)/("X"*480) -->RSS hash = 0xead3c21e
packet=[Ether()/IP(dst="192.169.1.2", src="192.16.0.2")/TCP(sport=202,dport=23)/("X"*480) -->RSS hash = 0xead3c21e
Is this you expected?
BRs,
Alvin Zhang
From: Xing, Beilei <beilei.xing@intel.com<mailto:beilei.xing@intel.com>>
Sent: Friday, May 28, 2021 9:24 AM
To: Vishal Mohan <vishal.mohan@tatacommunications.com<mailto:vishal.mohan@tatacommunications.com>>; users@dpdk.org<mailto:users@dpdk.org>; Zhang, AlvinX <alvinx.zhang@intel.com<mailto:alvinx.zhang@intel.com>>
Subject: RE: DPDK 20.11 - i40e 2 tuple RSS configuration
+ Alvin.
Could you please help on it? Thanks.
BR,
Beilei
From: Vishal Mohan <vishal.mohan@tatacommunications.com<mailto:vishal.mohan@tatacommunications.com>>
Sent: Thursday, May 27, 2021 5:45 PM
To: Xing, Beilei <beilei.xing@intel.com<mailto:beilei.xing@intel.com>>; users@dpdk.org<mailto:users@dpdk.org>
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 <beilei.xing@intel.com<mailto:beilei.xing@intel.com>>
Sent: 27 May 2021 01:42 PM
To: Vishal Mohan <vishal.mohan@tatacommunications.com<mailto:vishal.mohan@tatacommunications.com>>; users@dpdk.org<mailto:users@dpdk.org>
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:users-bounces@dpdk.org> On Behalf Of Vishal Mohan
> Sent: Thursday, May 27, 2021 3:40 PM
> To: mailto:users@dpdk.org
> 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
next prev parent reply other threads:[~2021-05-30 14:22 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <SG2PR04MB3173B935587AE7E8599C7DF9E4239@SG2PR04MB3173.apcprd04.prod.outlook.com>
2021-05-27 7:39 ` Vishal Mohan
2021-05-27 8:11 ` Xing, Beilei
2021-05-27 9:45 ` Vishal Mohan
2021-05-28 1:23 ` Xing, Beilei
2021-05-28 3:36 ` Zhang, AlvinX
2021-05-28 6:56 ` Zhang, AlvinX
2021-05-28 8:47 ` Vishal Mohan
2021-05-30 14:22 ` Vishal Mohan [this message]
2021-05-31 1:52 ` Zhang, AlvinX
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=SG2PR04MB31735118786E71A771379BC8E4209@SG2PR04MB3173.apcprd04.prod.outlook.com \
--to=vishal.mohan@tatacommunications.com \
--cc=alvinx.zhang@intel.com \
--cc=beilei.xing@intel.com \
--cc=users@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).