DPDK usage discussions
 help / color / mirror / Atom feed
From: "Zhang, AlvinX" <alvinx.zhang@intel.com>
To: "Xing, Beilei" <beilei.xing@intel.com>,
	Vishal Mohan <vishal.mohan@tatacommunications.com>,
	"users@dpdk.org" <users@dpdk.org>
Cc: "Yu, PingX" <pingx.yu@intel.com>
Subject: Re: [dpdk-users] DPDK 20.11 - i40e 2 tuple RSS configuration
Date: Fri, 28 May 2021 03:36:58 +0000
Message-ID: <DM6PR11MB38984969F832D91E8790FEBC9F229@DM6PR11MB3898.namprd11.prod.outlook.com> (raw)
In-Reply-To: <MN2PR11MB3807BB6E435E003E6CBE3C02F7229@MN2PR11MB3807.namprd11.prod.outlook.com>

Hi Beilei,

We will try it ASAP.

BRs,
Alvin Zhang

From: Xing, Beilei <beilei.xing@intel.com>
Sent: Friday, May 28, 2021 9:24 AM
To: Vishal Mohan <vishal.mohan@tatacommunications.com>; users@dpdk.org; Zhang, AlvinX <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


  reply	other threads:[~2021-05-28  3:37 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 [this message]
2021-05-28  6:56         ` Zhang, AlvinX
2021-05-28  8:47           ` Vishal Mohan
2021-05-30 14:22             ` Vishal Mohan
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=DM6PR11MB38984969F832D91E8790FEBC9F229@DM6PR11MB3898.namprd11.prod.outlook.com \
    --to=alvinx.zhang@intel.com \
    --cc=beilei.xing@intel.com \
    --cc=pingx.yu@intel.com \
    --cc=users@dpdk.org \
    --cc=vishal.mohan@tatacommunications.com \
    /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

DPDK usage discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/users/0 users/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 users users/ https://inbox.dpdk.org/users \
		users@dpdk.org
	public-inbox-index users

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.users


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git