Configure the RSS hash for the i40e PMD using the rte_flow API RSS action. Bernard Iremonger (3): librte_ethdev: add RSS offload types for ESP and AH app/testpmd: handle RSS offload types ESP and AH net/i40e: configure RSS hash from RSS action app/test-pmd/cmdline.c | 4 +++- app/test-pmd/config.c | 2 ++ drivers/net/i40e/i40e_flow.c | 46 +++++++++++++++++++++++++++++++----------- lib/librte_ethdev/rte_ethdev.h | 2 ++ 4 files changed, 41 insertions(+), 13 deletions(-) -- 2.7.4
add ETH_RSS_ESP and ETH_RSS_AH macros Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- lib/librte_ethdev/rte_ethdev.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index d1a593a..113e953 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -511,6 +511,8 @@ struct rte_eth_rss_conf { #define ETH_RSS_GENEVE (1ULL << 20) #define ETH_RSS_NVGRE (1ULL << 21) #define ETH_RSS_GTPU (1ULL << 23) +#define ETH_RSS_AH (1ULL << 24) +#define ETH_RSS_ESP (1ULL << 25) /* * We use the following macros to combine with above ETH_RSS_* for -- 2.7.4
parse RSS offload types ESP and AH add printf for rss_hf Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- app/test-pmd/cmdline.c | 4 +++- app/test-pmd/config.c | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index a037a55..997f063 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -2338,8 +2338,10 @@ cmd_config_rss_parsed(void *parsed_result, i, -diag, strerror(-diag)); } } - if (all_updated && !use_default) + if (all_updated && !use_default) { rss_hf = rss_conf.rss_hf; + printf("rss_hf %#"PRIx64"\n", rss_hf); + } } cmdline_parse_token_string_t cmd_config_rss_port = diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 8cf84cc..f7d6dd9 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -106,6 +106,8 @@ const struct rss_type_info rss_type_table[] = { { "l3-dst-only", ETH_RSS_L3_DST_ONLY }, { "l4-src-only", ETH_RSS_L4_SRC_ONLY }, { "l4-dst-only", ETH_RSS_L4_DST_ONLY }, + { "esp", ETH_RSS_ESP }, + { "ah", ETH_RSS_AH }, { NULL, 0 }, }; -- 2.7.4
handle RSS offload types in RSS action handle ipv4, ipv6 and udp RSS patterns handle queue_num 0 in RSS action Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- drivers/net/i40e/i40e_flow.c | 46 ++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index d877ac2..b9a928c 100644 --- a/drivers/net/i40e/i40e_flow.c +++ b/drivers/net/i40e/i40e_flow.c @@ -4461,6 +4461,12 @@ i40e_flow_parse_rss_pattern(__rte_unused struct rte_eth_dev *dev, case RTE_FLOW_ITEM_TYPE_ETH: *action_flag = 1; break; + case RTE_FLOW_ITEM_TYPE_IPV4: + break; + case RTE_FLOW_ITEM_TYPE_IPV6: + break; + case RTE_FLOW_ITEM_TYPE_UDP: + break; case RTE_FLOW_ITEM_TYPE_VLAN: vlan_spec = item->spec; vlan_mask = item->mask; @@ -4516,12 +4522,14 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev, struct i40e_rte_flow_rss_conf *rss_config = &filter->rss_conf; struct i40e_rte_flow_rss_conf *rss_info = &pf->rss_info; + struct rte_eth_rss_conf eth_rss_conf; + int ret; uint16_t i, j, n, tmp; uint32_t index = 0; uint64_t hf_bit = 1; + uint64_t rss_hf; NEXT_ITEM_OF_ACTION(act, actions, index); - rss = act->conf; /** * rss only supports forwarding, @@ -4535,6 +4543,23 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev, return -rte_errno; } + rss = act->conf; + rss_hf = rss->types; + + if (rss->queue_num == 0) { + memset(ð_rss_conf, 0, sizeof(eth_rss_conf)); + ret = rte_eth_dev_rss_hash_conf_get(dev->data->port_id, + ð_rss_conf); + if (ret != 0) + return ret; + + eth_rss_conf.rss_hf |= rss_hf; + ret = rte_eth_dev_rss_hash_update(dev->data->port_id, + ð_rss_conf); + if (ret != 0) + return ret; + } + if (action_flag) { for (n = 0; n < 64; n++) { if (rss->types & (hf_bit << n)) { @@ -4552,7 +4577,7 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev, * continuous sequence and also to be part of RSS * queue index for this port. */ - if (conf_info->queue_region_number) { + if (conf_info->queue_region_number && rss->queue_num > 0) { for (i = 0; i < rss->queue_num; i++) { for (j = 0; j < rss_info->conf.queue_num; j++) { if (rss->queue[i] == rss_info->conf.queue[j]) @@ -4579,7 +4604,8 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev, } /* Parse queue region related parameters from configuration */ - for (n = 0; n < conf_info->queue_region_number; n++) { + for (n = 0; n < conf_info->queue_region_number && + rss->queue_num > 0; n++) { if (conf_info->region[n].user_priority_num || conf_info->region[n].flowtype_num) { if (!((rte_is_power_of_2(rss->queue_num)) && @@ -4674,14 +4700,6 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev, if (rss_config->queue_region_conf) return 0; - if (!rss || !rss->queue_num) { - rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ACTION, - act, - "no valid queues"); - return -rte_errno; - } - for (n = 0; n < rss->queue_num; n++) { if (rss->queue[n] >= dev->data->nb_rx_queues) { rte_flow_error_set(error, EINVAL, @@ -4692,7 +4710,7 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev, } } - if (rss_info->conf.queue_num) { + if (rss_info->conf.queue_num && rss->queue_num) { rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION, act, @@ -4709,6 +4727,10 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev, return rte_flow_error_set (error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION, act, "a nonzero RSS encapsulation level is not supported"); + if (rss->types > ETH_RSS_ESP) + return rte_flow_error_set + (error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION, act, + "pctype greater than max allowed"); if (rss->key_len && rss->key_len > RTE_DIM(rss_config->key)) return rte_flow_error_set (error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION, act, -- 2.7.4
Hi Chenxu,
> -----Original Message-----
> From: Di, ChenxuX <chenxux.di@intel.com>
> Sent: Monday, March 23, 2020 9:19 AM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>; dev@dpdk.org;
> Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> Doherty, Declan <declan.doherty@intel.com>
> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Iremonger,
> Bernard <bernard.iremonger@intel.com>
> Subject: RE: [dpdk-dev] [PATCH 3/3] net/i40e: configure RSS hash from RSS
> action
>
> Hi, Bernard
> This patch conflicts with the
> patch(http://patchwork.dpdk.org/project/dpdk/list/?series=9005). In 20.05
> release, there will be some changes for creating RSS flows to support more
> features and make it more flexible.
> Changes for RSS flow:
> - Configure the hash input set according to the packet type.
> - Configure hash function.
> - User can create more than one RSS flows and won't affect other rules when
> destory.
> For example, if you want to enable rss for ipv4-tcp, the command looks like
> this:
> flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp
> end queues end / end
>
> So, perhaps you need rework your feature depending on that patch.
>
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bernard
> Iremonger
> > Sent: Wednesday, March 18, 2020 8:38 PM
> > To: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
> > <qi.z.zhang@intel.com>; Doherty, Declan <declan.doherty@intel.com>
> > Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Iremonger,
> > Bernard <bernard.iremonger@intel.com>
> > Subject: [dpdk-dev] [PATCH 3/3] net/i40e: configure RSS hash from RSS
> > action
> >
> > handle RSS offload types in RSS action handle ipv4, ipv6 and udp RSS
> > patterns handle queue_num 0 in RSS action
> >
> > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> > ---
> > drivers/net/i40e/i40e_flow.c | 46
> > ++++++++++++++++++++++++++++++++-------
> > -----
> > 1 file changed, 34 insertions(+), 12 deletions(-)
> >
> > diff --git a/drivers/net/i40e/i40e_flow.c
> > b/drivers/net/i40e/i40e_flow.c index d877ac2..b9a928c 100644
> > --- a/drivers/net/i40e/i40e_flow.c
> > +++ b/drivers/net/i40e/i40e_flow.c
> > @@ -4461,6 +4461,12 @@ i40e_flow_parse_rss_pattern(__rte_unused
> struct
> > rte_eth_dev *dev, case RTE_FLOW_ITEM_TYPE_ETH:
> > *action_flag = 1;
> > break;
> > +case RTE_FLOW_ITEM_TYPE_IPV4:
> > +break;
> > +case RTE_FLOW_ITEM_TYPE_IPV6:
> > +break;
> > +case RTE_FLOW_ITEM_TYPE_UDP:
> > +break;
> > case RTE_FLOW_ITEM_TYPE_VLAN:
> > vlan_spec = item->spec;
> > vlan_mask = item->mask;
> > @@ -4516,12 +4522,14 @@ i40e_flow_parse_rss_action(struct
> rte_eth_dev
> > *dev, struct i40e_rte_flow_rss_conf *rss_config = &filter->rss_conf;
> > struct i40e_rte_flow_rss_conf *rss_info = &pf->rss_info;
> > +struct rte_eth_rss_conf eth_rss_conf; int ret;
> > uint16_t i, j, n, tmp;
> > uint32_t index = 0;
> > uint64_t hf_bit = 1;
> > +uint64_t rss_hf;
> >
> > NEXT_ITEM_OF_ACTION(act, actions, index); -rss = act->conf;
> >
> > /**
> > * rss only supports forwarding,
> > @@ -4535,6 +4543,23 @@ i40e_flow_parse_rss_action(struct rte_eth_dev
> > *dev, return -rte_errno; }
> >
> > +rss = act->conf;
> > +rss_hf = rss->types;
> > +
> > +if (rss->queue_num == 0) {
> > +memset(ð_rss_conf, 0, sizeof(eth_rss_conf)); ret =
> > +rte_eth_dev_rss_hash_conf_get(dev->data->port_id,
> > +ð_rss_conf);
> > +if (ret != 0)
> > +return ret;
> > +
> > +eth_rss_conf.rss_hf |= rss_hf;
> > +ret = rte_eth_dev_rss_hash_update(dev->data->port_id,
> > +ð_rss_conf);
> > +if (ret != 0)
> > +return ret;
> > +}
> > +
>
> I don't think it is a good idea that update rss hash enable status in the parse
> function.
> it will update status while send command flow validate xxxxxx which can't be
> destoried.
>
> > if (action_flag) {
> > for (n = 0; n < 64; n++) {
> > if (rss->types & (hf_bit << n)) {
> > @@ -4552,7 +4577,7 @@ i40e_flow_parse_rss_action(struct rte_eth_dev
> *dev,
> > * continuous sequence and also to be part of RSS
> > * queue index for this port.
> > */
> > -if (conf_info->queue_region_number) {
> > +if (conf_info->queue_region_number && rss->queue_num > 0) {
> > for (i = 0; i < rss->queue_num; i++) { for (j = 0; j <
> > rss_info->conf.queue_num; j++) { if (rss->queue[i] ==
> > rss_info->conf.queue[j]) @@ -4579,7 +4604,8 @@
> > i40e_flow_parse_rss_action(struct rte_eth_dev *dev, }
> >
> > /* Parse queue region related parameters from configuration */ -for
> > (n = 0; n < conf_info->queue_region_number; n++) {
> > +for (n = 0; n < conf_info->queue_region_number &&
> > +rss->queue_num > 0; n++) {
> > if (conf_info->region[n].user_priority_num ||
> > conf_info->region[n].flowtype_num) {
> > if (!((rte_is_power_of_2(rss->queue_num)) && @@ -
> > 4674,14 +4700,6 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
> > if (rss_config->queue_region_conf) return 0;
> >
> > -if (!rss || !rss->queue_num) {
> > -rte_flow_error_set(error, EINVAL,
> > -RTE_FLOW_ERROR_TYPE_ACTION,
> > -act,
> > -"no valid queues");
> > -return -rte_errno;
> > -}
> > -
> > for (n = 0; n < rss->queue_num; n++) { if (rss->queue[n] >=
> > dev->data->nb_rx_queues) { rte_flow_error_set(error, EINVAL, @@
> > -4692,7 +4710,7 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
> > } }
> >
> > -if (rss_info->conf.queue_num) {
> > +if (rss_info->conf.queue_num && rss->queue_num) {
> > rte_flow_error_set(error, EINVAL,
> > RTE_FLOW_ERROR_TYPE_ACTION,
> > act,
> > @@ -4709,6 +4727,10 @@ i40e_flow_parse_rss_action(struct rte_eth_dev
> > *dev, return rte_flow_error_set (error, ENOTSUP,
> > RTE_FLOW_ERROR_TYPE_ACTION, act,
> > "a nonzero RSS encapsulation level is not supported");
> > +if (rss->types > ETH_RSS_ESP)
> > +return rte_flow_error_set
> > +(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION,
> > act,
> > + "pctype greater than max allowed");
>
> At the patch(http://patchwork.dpdk.org/project/dpdk/list/?series=9005),
> the hash input set will be enable.
> So rss->types may has the value ETH_RSS_L3_SRC_ONLY (1ULL << 63) and
> ETH_RSS_L3_DST_ONLY (1ULL << 62) and ETH_RSS_L4_SRC_ONLY (1ULL <<
> 61) and ETH_RSS_L4_DST_ONLY (1ULL << 60).
>
> > if (rss->key_len && rss->key_len > RTE_DIM(rss_config->key)) return
> > rte_flow_error_set (error, ENOTSUP, RTE_FLOW_ERROR_TYPE_ACTION,
> act,
> > --
> > 2.7.4
>
Yes, I will need to rework this patch based on top of your patch.
Regards,
Bernard.
Configure the RSS hash for the i40e PMD using the rte_flow API RSS pattern. The i40e patch depends on the following patch: http://patches.dpdk.org/patch/67042/ [v5] net/i40e: implement hash function in rte flow API Changes in v2: -------------- i40e changes are based on http://patches.dpdk.org/patch/67042/ update i40e PMD user guide. Add more types to testpmd patch Bernard Iremonger (3): librte_ethdev: add RSS offload types for ESP and AH app/testpmd: handle RSS offload types ESP and AH net/i40e: add ESP patterns app/test-pmd/cmdline.c | 4 +++- app/test-pmd/config.c | 6 ++++++ doc/guides/nics/i40e.rst | 3 ++- drivers/net/i40e/i40e_flow.c | 4 ++++ lib/librte_ethdev/rte_ethdev.h | 2 ++ 5 files changed, 17 insertions(+), 2 deletions(-) -- 2.7.4
add ETH_RSS_ESP and ETH_RSS_AH macros Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- lib/librte_ethdev/rte_ethdev.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index d1a593a..113e953 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -511,6 +511,8 @@ struct rte_eth_rss_conf { #define ETH_RSS_GENEVE (1ULL << 20) #define ETH_RSS_NVGRE (1ULL << 21) #define ETH_RSS_GTPU (1ULL << 23) +#define ETH_RSS_AH (1ULL << 24) +#define ETH_RSS_ESP (1ULL << 25) /* * We use the following macros to combine with above ETH_RSS_* for -- 2.7.4
parse RSS offload types ESP and AH add printf for rss_hf Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- app/test-pmd/cmdline.c | 4 +++- app/test-pmd/config.c | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index a037a55..997f063 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -2338,8 +2338,10 @@ cmd_config_rss_parsed(void *parsed_result, i, -diag, strerror(-diag)); } } - if (all_updated && !use_default) + if (all_updated && !use_default) { rss_hf = rss_conf.rss_hf; + printf("rss_hf %#"PRIx64"\n", rss_hf); + } } cmdline_parse_token_string_t cmd_config_rss_port = diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 8cf84cc..df52df9 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -106,6 +106,12 @@ const struct rss_type_info rss_type_table[] = { { "l3-dst-only", ETH_RSS_L3_DST_ONLY }, { "l4-src-only", ETH_RSS_L4_SRC_ONLY }, { "l4-dst-only", ETH_RSS_L4_DST_ONLY }, + { "ipv4-esp", ETH_RSS_ESP }, + { "ipv6-esp", ETH_RSS_ESP }, + { "ipv4-udp-esp", ETH_RSS_ESP }, + { "ipv6-udp-esp", ETH_RSS_ESP }, + { "ipv4-ah", ETH_RSS_AH }, + { "ipv6-ah", ETH_RSS_AH }, { NULL, 0 }, }; -- 2.7.4
add ESP patterns to i40e_flow_parse_rss_pattern(). update i40e PMD user guide with download link for esp-ah.pkg file. Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- doc/guides/nics/i40e.rst | 3 ++- drivers/net/i40e/i40e_flow.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst index 03b117a..65e4634 100644 --- a/doc/guides/nics/i40e.rst +++ b/doc/guides/nics/i40e.rst @@ -508,7 +508,8 @@ https://downloadcenter.intel.com/download/27587. PPPoE package is released, and it can be downloaded from https://downloadcenter.intel.com/download/28040. -ESP-AH package is not released yet. +ESP-AH package is released, and it can be downloaded from +https://downloadcenter.intel.com/download/29446. Load a profile which supports GTP and store backup profile: diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index 4774fde..85f3704 100644 --- a/drivers/net/i40e/i40e_flow.c +++ b/drivers/net/i40e/i40e_flow.c @@ -4456,11 +4456,15 @@ i40e_flow_parse_rss_pattern(__rte_unused struct rte_eth_dev *dev, { pattern_fdir_ipv4_tcp, ETH_RSS_NONFRAG_IPV4_TCP }, { pattern_fdir_ipv4_udp, ETH_RSS_NONFRAG_IPV4_UDP }, { pattern_fdir_ipv4_sctp, ETH_RSS_NONFRAG_IPV4_SCTP }, + { pattern_fdir_ipv4_esp, ETH_RSS_ESP }, + { pattern_fdir_ipv4_udp_esp, ETH_RSS_ESP }, { pattern_fdir_ipv6, ETH_RSS_FRAG_IPV6 | ETH_RSS_NONFRAG_IPV6_OTHER }, { pattern_fdir_ipv6_tcp, ETH_RSS_NONFRAG_IPV6_TCP }, { pattern_fdir_ipv6_udp, ETH_RSS_NONFRAG_IPV6_UDP }, { pattern_fdir_ipv6_sctp, ETH_RSS_NONFRAG_IPV6_SCTP }, + { pattern_fdir_ipv6_esp, ETH_RSS_ESP }, + { pattern_fdir_ipv6_udp_esp, ETH_RSS_ESP }, }; p_info->types = I40E_RSS_TYPE_INVALID; -- 2.7.4
Hi Bernard, > -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of Bernard Iremonger > Sent: Wednesday, March 25, 2020 5:56 PM > To: dev@dpdk.org; beilei.xing@intel.com; qi.z.zhang@intel.com; > declan.doherty@intel.com > Cc: konstantin.ananyev@intel.com; Bernard Iremonger > <bernard.iremonger@intel.com> > Subject: [dpdk-dev] [PATCH v2 2/3] app/testpmd: handle RSS offload types ESP > and AH > > parse RSS offload types ESP and AH > add printf for rss_hf > > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> > --- > app/test-pmd/cmdline.c | 4 +++- > app/test-pmd/config.c | 6 ++++++ > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c > index a037a55..997f063 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -2338,8 +2338,10 @@ cmd_config_rss_parsed(void *parsed_result, > i, -diag, strerror(-diag)); > } > } > - if (all_updated && !use_default) > + if (all_updated && !use_default) { > rss_hf = rss_conf.rss_hf; > + printf("rss_hf %#"PRIx64"\n", rss_hf); > + } > } > > cmdline_parse_token_string_t cmd_config_rss_port = > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c > index 8cf84cc..df52df9 100644 > --- a/app/test-pmd/config.c > +++ b/app/test-pmd/config.c > @@ -106,6 +106,12 @@ const struct rss_type_info rss_type_table[] = { > { "l3-dst-only", ETH_RSS_L3_DST_ONLY }, > { "l4-src-only", ETH_RSS_L4_SRC_ONLY }, > { "l4-dst-only", ETH_RSS_L4_DST_ONLY }, > + { "ipv4-esp", ETH_RSS_ESP }, > + { "ipv6-esp", ETH_RSS_ESP }, > + { "ipv4-udp-esp", ETH_RSS_ESP }, > + { "ipv6-udp-esp", ETH_RSS_ESP }, > + { "ipv4-ah", ETH_RSS_AH }, > + { "ipv6-ah", ETH_RSS_AH }, Why do you have all those variations since they don't have any affect. I think it should be just like your first patch, only esp and ah. For example the udp should look like this: flow create 0 ingress pattern eth / end actions rss queues 0 1 end types udp esp end / end Best, Ori > { NULL, 0 }, > }; > > -- > 2.7.4
Hi Ori,
> -----Original Message-----
> From: Ori Kam <orika@mellanox.com>
> Sent: Tuesday, March 31, 2020 10:58 AM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>; dev@dpdk.org;
> Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> Doherty, Declan <declan.doherty@intel.com>
> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>
> Subject: RE: [dpdk-dev] [PATCH v2 2/3] app/testpmd: handle RSS offload
> types ESP and AH
>
> Hi Bernard,
>
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Bernard Iremonger
> > Sent: Wednesday, March 25, 2020 5:56 PM
> > To: dev@dpdk.org; beilei.xing@intel.com; qi.z.zhang@intel.com;
> > declan.doherty@intel.com
> > Cc: konstantin.ananyev@intel.com; Bernard Iremonger
> > <bernard.iremonger@intel.com>
> > Subject: [dpdk-dev] [PATCH v2 2/3] app/testpmd: handle RSS offload
> > types ESP and AH
> >
> > parse RSS offload types ESP and AH
> > add printf for rss_hf
> >
> > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> > ---
> > app/test-pmd/cmdline.c | 4 +++-
> > app/test-pmd/config.c | 6 ++++++
> > 2 files changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> > a037a55..997f063 100644
> > --- a/app/test-pmd/cmdline.c
> > +++ b/app/test-pmd/cmdline.c
> > @@ -2338,8 +2338,10 @@ cmd_config_rss_parsed(void *parsed_result,
> > i, -diag, strerror(-diag));
> > }
> > }
> > - if (all_updated && !use_default)
> > + if (all_updated && !use_default) {
> > rss_hf = rss_conf.rss_hf;
> > + printf("rss_hf %#"PRIx64"\n", rss_hf);
> > + }
> > }
> >
> > cmdline_parse_token_string_t cmd_config_rss_port = diff --git
> > a/app/test-pmd/config.c b/app/test-pmd/config.c index 8cf84cc..df52df9
> > 100644
> > --- a/app/test-pmd/config.c
> > +++ b/app/test-pmd/config.c
> > @@ -106,6 +106,12 @@ const struct rss_type_info rss_type_table[] = {
> > { "l3-dst-only", ETH_RSS_L3_DST_ONLY },
> > { "l4-src-only", ETH_RSS_L4_SRC_ONLY },
> > { "l4-dst-only", ETH_RSS_L4_DST_ONLY },
> > + { "ipv4-esp", ETH_RSS_ESP },
> > + { "ipv6-esp", ETH_RSS_ESP },
> > + { "ipv4-udp-esp", ETH_RSS_ESP },
> > + { "ipv6-udp-esp", ETH_RSS_ESP },
> > + { "ipv4-ah", ETH_RSS_AH },
> > + { "ipv6-ah", ETH_RSS_AH },
>
> Why do you have all those variations since they don't have any affect.
> I think it should be just like your first patch, only esp and ah.
> For example the udp should look like this:
> flow create 0 ingress pattern eth / end actions rss queues 0 1 end types udp
> esp end / end
>
> Best,
> Ori
>
I thought that it might be clearer to map the patterns to the flow.
I will change to esp and ah in v3 patch.
Regards,
Bernard.
<snip>
Configure the RSS hash for the i40e PMD using the rte_flow API RSS pattern. The i40e patch depends on the following patch: http://patches.dpdk.org/patch/67398/ [v6] net/i40e: implement hash function in rte flow API Changes in v3: -------------- Reduce types in testpmd patch to esp and ah. Changes in v2: -------------- i40e changes are based on http://patches.dpdk.org/patch/67042/ update i40e PMD user guide. Add more types to testpmd patch Bernard Iremonger (3): librte_ethdev: add RSS offload types for ESP and AH app/testpmd: handle RSS offload types ESP and AH net/i40e: add ESP patterns app/test-pmd/cmdline.c | 4 +++- app/test-pmd/config.c | 2 ++ doc/guides/nics/i40e.rst | 3 ++- drivers/net/i40e/i40e_flow.c | 4 ++++ lib/librte_ethdev/rte_ethdev.h | 2 ++ 5 files changed, 13 insertions(+), 2 deletions(-) -- 2.7.4
add ETH_RSS_ESP and ETH_RSS_AH macros Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- lib/librte_ethdev/rte_ethdev.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index d1a593a..113e953 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -511,6 +511,8 @@ struct rte_eth_rss_conf { #define ETH_RSS_GENEVE (1ULL << 20) #define ETH_RSS_NVGRE (1ULL << 21) #define ETH_RSS_GTPU (1ULL << 23) +#define ETH_RSS_AH (1ULL << 24) +#define ETH_RSS_ESP (1ULL << 25) /* * We use the following macros to combine with above ETH_RSS_* for -- 2.7.4
parse RSS offload types ESP and AH add printf for rss_hf Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- app/test-pmd/cmdline.c | 4 +++- app/test-pmd/config.c | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index a037a55..997f063 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -2338,8 +2338,10 @@ cmd_config_rss_parsed(void *parsed_result, i, -diag, strerror(-diag)); } } - if (all_updated && !use_default) + if (all_updated && !use_default) { rss_hf = rss_conf.rss_hf; + printf("rss_hf %#"PRIx64"\n", rss_hf); + } } cmdline_parse_token_string_t cmd_config_rss_port = diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 8cf84cc..f7d6dd9 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -106,6 +106,8 @@ const struct rss_type_info rss_type_table[] = { { "l3-dst-only", ETH_RSS_L3_DST_ONLY }, { "l4-src-only", ETH_RSS_L4_SRC_ONLY }, { "l4-dst-only", ETH_RSS_L4_DST_ONLY }, + { "esp", ETH_RSS_ESP }, + { "ah", ETH_RSS_AH }, { NULL, 0 }, }; -- 2.7.4
add ESP patterns to i40e_flow_parse_rss_pattern(). update i40e PMD user guide with download link for esp-ah.pkg file. Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- doc/guides/nics/i40e.rst | 3 ++- drivers/net/i40e/i40e_flow.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst index 92590da..556835e 100644 --- a/doc/guides/nics/i40e.rst +++ b/doc/guides/nics/i40e.rst @@ -508,7 +508,8 @@ https://downloadcenter.intel.com/download/27587. PPPoE package is released, and it can be downloaded from https://downloadcenter.intel.com/download/28040. -ESP-AH package is not released yet. +ESP-AH package is released, and it can be downloaded from +https://downloadcenter.intel.com/download/29446. Load a profile which supports GTP and store backup profile: diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index d67cd64..baacc9d 100644 --- a/drivers/net/i40e/i40e_flow.c +++ b/drivers/net/i40e/i40e_flow.c @@ -4456,11 +4456,15 @@ i40e_flow_parse_rss_pattern(__rte_unused struct rte_eth_dev *dev, { pattern_fdir_ipv4_tcp, ETH_RSS_NONFRAG_IPV4_TCP }, { pattern_fdir_ipv4_udp, ETH_RSS_NONFRAG_IPV4_UDP }, { pattern_fdir_ipv4_sctp, ETH_RSS_NONFRAG_IPV4_SCTP }, + { pattern_fdir_ipv4_esp, ETH_RSS_ESP }, + { pattern_fdir_ipv4_udp_esp, ETH_RSS_ESP }, { pattern_fdir_ipv6, ETH_RSS_FRAG_IPV6 | ETH_RSS_NONFRAG_IPV6_OTHER }, { pattern_fdir_ipv6_tcp, ETH_RSS_NONFRAG_IPV6_TCP }, { pattern_fdir_ipv6_udp, ETH_RSS_NONFRAG_IPV6_UDP }, { pattern_fdir_ipv6_sctp, ETH_RSS_NONFRAG_IPV6_SCTP }, + { pattern_fdir_ipv6_esp, ETH_RSS_ESP }, + { pattern_fdir_ipv6_udp_esp, ETH_RSS_ESP }, }; p_info->types = I40E_RSS_TYPE_INVALID; -- 2.7.4
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Bernard Iremonger
> Sent: Tuesday, March 31, 2020 4:57 PM
> To: dev@dpdk.org; beilei.xing@intel.com; qi.z.zhang@intel.com;
> declan.doherty@intel.com
> Cc: konstantin.ananyev@intel.com; Bernard Iremonger
> <bernard.iremonger@intel.com>
> Subject: [dpdk-dev] [PATCH v3 2/3] app/testpmd: handle RSS offload types ESP
> and AH
>
> parse RSS offload types ESP and AH
> add printf for rss_hf
>
> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> ---
> app/test-pmd/cmdline.c | 4 +++-
> app/test-pmd/config.c | 2 ++
> 2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index a037a55..997f063 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -2338,8 +2338,10 @@ cmd_config_rss_parsed(void *parsed_result,
> i, -diag, strerror(-diag));
> }
> }
> - if (all_updated && !use_default)
> + if (all_updated && !use_default) {
> rss_hf = rss_conf.rss_hf;
> + printf("rss_hf %#"PRIx64"\n", rss_hf);
> + }
> }
>
> cmdline_parse_token_string_t cmd_config_rss_port =
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index 8cf84cc..f7d6dd9 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -106,6 +106,8 @@ const struct rss_type_info rss_type_table[] = {
> { "l3-dst-only", ETH_RSS_L3_DST_ONLY },
> { "l4-src-only", ETH_RSS_L4_SRC_ONLY },
> { "l4-dst-only", ETH_RSS_L4_DST_ONLY },
> + { "esp", ETH_RSS_ESP },
> + { "ah", ETH_RSS_AH },
> { NULL, 0 },
> };
>
> --
> 2.7.4
Acked-by: Ori Kam <orika@mellanox.com>
Thanks,
Ori
> -----Original Message----- > From: Iremonger, Bernard <bernard.iremonger@intel.com> > Sent: Tuesday, March 31, 2020 9:57 PM > To: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z > <qi.z.zhang@intel.com>; Doherty, Declan <declan.doherty@intel.com> > Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Iremonger, > Bernard <bernard.iremonger@intel.com> > Subject: [PATCH v3 1/3] librte_ethdev: add RSS offload types for ESP and AH > > add ETH_RSS_ESP and ETH_RSS_AH macros > > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> > --- > lib/librte_ethdev/rte_ethdev.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h > index d1a593a..113e953 100644 > --- a/lib/librte_ethdev/rte_ethdev.h > +++ b/lib/librte_ethdev/rte_ethdev.h > @@ -511,6 +511,8 @@ struct rte_eth_rss_conf { > #define ETH_RSS_GENEVE (1ULL << 20) > #define ETH_RSS_NVGRE (1ULL << 21) > #define ETH_RSS_GTPU (1ULL << 23) > +#define ETH_RSS_AH (1ULL << 24) > +#define ETH_RSS_ESP (1ULL << 25) It's duplicate with patch http://patches.dpdk.org/patch/68423/. > > /* > * We use the following macros to combine with above ETH_RSS_* for > -- > 2.7.4
Configure the RSS hash for the i40e PMD using the rte_flow API RSS pattern. The i40e patch depends on the following patch: http://patches.dpdk.org/patch/68533/ [v9] net/i40e: enable hash configuration in RSS flow Changes in v4: -------------- Rebased to dpdk-next-net Renumbered esp and ah in librte_ethdev patch. Changes in v3: -------------- Reduce types in testpmd patch to esp and ah. Changes in v2: -------------- i40e changes are based on http://patches.dpdk.org/patch/67042/ update i40e PMD user guide. Add more types to testpmd patch Bernard Iremonger (3): librte_ethdev: add RSS offload types for ESP and AH app/testpmd: handle RSS offload types ESP and AH net/i40e: add ESP patterns app/test-pmd/cmdline.c | 4 +++- app/test-pmd/config.c | 2 ++ doc/guides/nics/i40e.rst | 3 ++- drivers/net/i40e/i40e_flow.c | 4 ++++ lib/librte_ethdev/rte_ethdev.h | 3 +++ 5 files changed, 14 insertions(+), 2 deletions(-) -- 2.7.4
add ETH_RSS_ESP and ETH_RSS_AH macros Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- lib/librte_ethdev/rte_ethdev.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index d1a593a..26381a1 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -511,6 +511,9 @@ struct rte_eth_rss_conf { #define ETH_RSS_GENEVE (1ULL << 20) #define ETH_RSS_NVGRE (1ULL << 21) #define ETH_RSS_GTPU (1ULL << 23) +#define ETH_RSS_ESP (1ULL << 27) +#define ETH_RSS_AH (1ULL << 28) + /* * We use the following macros to combine with above ETH_RSS_* for -- 2.7.4
parse RSS offload types ESP and AH add printf for rss_hf Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Acked-by: Ori Kam <orika@mellanox.com> --- app/test-pmd/cmdline.c | 4 +++- app/test-pmd/config.c | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 863b567..982322c 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -2338,8 +2338,10 @@ cmd_config_rss_parsed(void *parsed_result, i, -diag, strerror(-diag)); } } - if (all_updated && !use_default) + if (all_updated && !use_default) { rss_hf = rss_conf.rss_hf; + printf("rss_hf %#"PRIx64"\n", rss_hf); + } } cmdline_parse_token_string_t cmd_config_rss_port = diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 71aeb54..69c5633 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -108,6 +108,8 @@ const struct rss_type_info rss_type_table[] = { { "l3-dst-only", ETH_RSS_L3_DST_ONLY }, { "l4-src-only", ETH_RSS_L4_SRC_ONLY }, { "l4-dst-only", ETH_RSS_L4_DST_ONLY }, + { "esp", ETH_RSS_ESP }, + { "ah", ETH_RSS_AH }, { NULL, 0 }, }; -- 2.7.4
add ESP patterns to i40e_flow_parse_rss_pattern(). update i40e PMD user guide with download link for esp-ah.pkg file. Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> --- doc/guides/nics/i40e.rst | 3 ++- drivers/net/i40e/i40e_flow.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst index f72a54b..416b390 100644 --- a/doc/guides/nics/i40e.rst +++ b/doc/guides/nics/i40e.rst @@ -509,7 +509,8 @@ https://downloadcenter.intel.com/download/27587. PPPoE package is released, and it can be downloaded from https://downloadcenter.intel.com/download/28040. -ESP-AH package is not released yet. +ESP-AH package is released, and it can be downloaded from +https://downloadcenter.intel.com/download/29446. Load a profile which supports GTP and store backup profile: diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index 1d0eaf6..e65a07a 100644 --- a/drivers/net/i40e/i40e_flow.c +++ b/drivers/net/i40e/i40e_flow.c @@ -4507,11 +4507,15 @@ i40e_flow_parse_rss_pattern(__rte_unused struct rte_eth_dev *dev, { pattern_fdir_ipv4_tcp, ETH_RSS_NONFRAG_IPV4_TCP }, { pattern_fdir_ipv4_udp, ETH_RSS_NONFRAG_IPV4_UDP }, { pattern_fdir_ipv4_sctp, ETH_RSS_NONFRAG_IPV4_SCTP }, + { pattern_fdir_ipv4_esp, ETH_RSS_ESP }, + { pattern_fdir_ipv4_udp_esp, ETH_RSS_ESP }, { pattern_fdir_ipv6, ETH_RSS_FRAG_IPV6 | ETH_RSS_NONFRAG_IPV6_OTHER }, { pattern_fdir_ipv6_tcp, ETH_RSS_NONFRAG_IPV6_TCP }, { pattern_fdir_ipv6_udp, ETH_RSS_NONFRAG_IPV6_UDP }, { pattern_fdir_ipv6_sctp, ETH_RSS_NONFRAG_IPV6_SCTP }, + { pattern_fdir_ipv6_esp, ETH_RSS_ESP }, + { pattern_fdir_ipv6_udp_esp, ETH_RSS_ESP }, }; p_info->types = I40E_RSS_TYPE_INVALID; -- 2.7.4
> -----Original Message-----
> From: Iremonger, Bernard <bernard.iremonger@intel.com>
> Sent: Wednesday, April 15, 2020 7:14 PM
> To: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Doherty, Declan <declan.doherty@intel.com>
> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Iremonger,
> Bernard <bernard.iremonger@intel.com>
> Subject: [PATCH v4 3/3] net/i40e: add ESP patterns
>
> add ESP patterns to i40e_flow_parse_rss_pattern().
> update i40e PMD user guide with download link for esp-ah.pkg file.
>
> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> ---
> doc/guides/nics/i40e.rst | 3 ++-
> drivers/net/i40e/i40e_flow.c | 4 ++++
> 2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst index
> f72a54b..416b390 100644
> --- a/doc/guides/nics/i40e.rst
> +++ b/doc/guides/nics/i40e.rst
> @@ -509,7 +509,8 @@ https://downloadcenter.intel.com/download/27587.
> PPPoE package is released, and it can be downloaded from
> https://downloadcenter.intel.com/download/28040.
>
> -ESP-AH package is not released yet.
> +ESP-AH package is released, and it can be downloaded from
> +https://downloadcenter.intel.com/download/29446.
>
> Load a profile which supports GTP and store backup profile:
>
> diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c index
> 1d0eaf6..e65a07a 100644
> --- a/drivers/net/i40e/i40e_flow.c
> +++ b/drivers/net/i40e/i40e_flow.c
> @@ -4507,11 +4507,15 @@ i40e_flow_parse_rss_pattern(__rte_unused
> struct rte_eth_dev *dev,
> { pattern_fdir_ipv4_tcp, ETH_RSS_NONFRAG_IPV4_TCP },
> { pattern_fdir_ipv4_udp, ETH_RSS_NONFRAG_IPV4_UDP },
> { pattern_fdir_ipv4_sctp, ETH_RSS_NONFRAG_IPV4_SCTP },
> + { pattern_fdir_ipv4_esp, ETH_RSS_ESP },
> + { pattern_fdir_ipv4_udp_esp, ETH_RSS_ESP },
> { pattern_fdir_ipv6,
> ETH_RSS_FRAG_IPV6 |
> ETH_RSS_NONFRAG_IPV6_OTHER },
> { pattern_fdir_ipv6_tcp, ETH_RSS_NONFRAG_IPV6_TCP },
> { pattern_fdir_ipv6_udp, ETH_RSS_NONFRAG_IPV6_UDP },
> { pattern_fdir_ipv6_sctp, ETH_RSS_NONFRAG_IPV6_SCTP },
> + { pattern_fdir_ipv6_esp, ETH_RSS_ESP },
> + { pattern_fdir_ipv6_udp_esp, ETH_RSS_ESP },
> };
>
> p_info->types = I40E_RSS_TYPE_INVALID;
> --
> 2.7.4
Acked-by: Beilei Xing <beilei.xing@intel.com>
> -----Original Message-----
> From: Iremonger, Bernard <bernard.iremonger@intel.com>
> Sent: Wednesday, April 15, 2020 7:14 PM
> To: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Doherty, Declan <declan.doherty@intel.com>
> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Iremonger,
> Bernard <bernard.iremonger@intel.com>
> Subject: [PATCH v4 1/3] librte_ethdev: add RSS offload types for ESP and AH
>
> add ETH_RSS_ESP and ETH_RSS_AH macros
>
> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> ---
> lib/librte_ethdev/rte_ethdev.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index d1a593a..26381a1 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -511,6 +511,9 @@ struct rte_eth_rss_conf {
> #define ETH_RSS_GENEVE (1ULL << 20)
> #define ETH_RSS_NVGRE (1ULL << 21)
> #define ETH_RSS_GTPU (1ULL << 23)
> +#define ETH_RSS_ESP (1ULL << 27)
> +#define ETH_RSS_AH (1ULL << 28)
> +
>
> /*
> * We use the following macros to combine with above ETH_RSS_* for
> --
> 2.7.4
Reviewed-by: Beilei Xing <beilei.xing@intel.com>
> -----Original Message-----
> From: Iremonger, Bernard <bernard.iremonger@intel.com>
> Sent: Wednesday, April 15, 2020 7:14 PM
> To: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Doherty, Declan <declan.doherty@intel.com>
> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Iremonger,
> Bernard <bernard.iremonger@intel.com>
> Subject: [PATCH v4 1/3] librte_ethdev: add RSS offload types for ESP and AH
>
> add ETH_RSS_ESP and ETH_RSS_AH macros
>
> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> ---
The describe is too simple, more introduces can be added in code or commit log.
On 4/16/2020 2:26 PM, Dong Zhou wrote:
>
>> -----Original Message-----
>> From: Iremonger, Bernard <bernard.iremonger@intel.com>
>> Sent: Wednesday, April 15, 2020 7:14 PM
>> To: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
>> <qi.z.zhang@intel.com>; Doherty, Declan <declan.doherty@intel.com>
>> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Iremonger,
>> Bernard <bernard.iremonger@intel.com>
>> Subject: [PATCH v4 1/3] librte_ethdev: add RSS offload types for ESP and AH
>>
>> add ETH_RSS_ESP and ETH_RSS_AH macros
>>
>> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
>> ---
>
> The describe is too simple, more introduces can be added in code or commit log.
>
Change is already simple, but if more details comes I can update them in next-net.
Thanks,
ferruh
On 4/16/2020 2:14 AM, Xing, Beilei wrote:
>
>
>> -----Original Message-----
>> From: Iremonger, Bernard <bernard.iremonger@intel.com>
>> Sent: Wednesday, April 15, 2020 7:14 PM
>> To: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
>> <qi.z.zhang@intel.com>; Doherty, Declan <declan.doherty@intel.com>
>> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Iremonger,
>> Bernard <bernard.iremonger@intel.com>
>> Subject: [PATCH v4 1/3] librte_ethdev: add RSS offload types for ESP and AH
>>
>> add ETH_RSS_ESP and ETH_RSS_AH macros
>>
>> Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
>> ---
>> lib/librte_ethdev/rte_ethdev.h | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
>> index d1a593a..26381a1 100644
>> --- a/lib/librte_ethdev/rte_ethdev.h
>> +++ b/lib/librte_ethdev/rte_ethdev.h
>> @@ -511,6 +511,9 @@ struct rte_eth_rss_conf {
>> #define ETH_RSS_GENEVE (1ULL << 20)
>> #define ETH_RSS_NVGRE (1ULL << 21)
>> #define ETH_RSS_GTPU (1ULL << 23)
>> +#define ETH_RSS_ESP (1ULL << 27)
>> +#define ETH_RSS_AH (1ULL << 28)
>> +
>>
>> /*
>> * We use the following macros to combine with above ETH_RSS_* for
>> --
>> 2.7.4
>
> Reviewed-by: Beilei Xing <beilei.xing@intel.com>
>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
On 4/15/2020 12:14 PM, Bernard Iremonger wrote:
> Configure the RSS hash for the i40e PMD using the
> rte_flow API RSS pattern.
>
> The i40e patch depends on the following patch:
> http://patches.dpdk.org/patch/68533/
> [v9] net/i40e: enable hash configuration in RSS flow
>
> Changes in v4:
> --------------
> Rebased to dpdk-next-net
> Renumbered esp and ah in librte_ethdev patch.
>
> Changes in v3:
> --------------
> Reduce types in testpmd patch to esp and ah.
>
> Changes in v2:
> --------------
> i40e changes are based on http://patches.dpdk.org/patch/67042/
> update i40e PMD user guide.
> Add more types to testpmd patch
>
>
> Bernard Iremonger (3):
> librte_ethdev: add RSS offload types for ESP and AH
> app/testpmd: handle RSS offload types ESP and AH
> net/i40e: add ESP patterns
>
Series applied to dpdk-next-net/master, thanks.
Hi Dong,
> -----Original Message-----
> From: Dong Zhou <dongz@mellanox.com>
> Sent: Thursday, April 16, 2020 2:26 PM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>
> Cc: Xing, Beilei <beilei.xing@intel.com>; Doherty, Declan
> <declan.doherty@intel.com>; dev@dpdk.org; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v4 1/3] librte_ethdev: add RSS offload types
> for ESP and AH
>
>
> > -----Original Message-----
> > From: Iremonger, Bernard <bernard.iremonger@intel.com>
> > Sent: Wednesday, April 15, 2020 7:14 PM
> > To: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z
> > <qi.z.zhang@intel.com>; Doherty, Declan <declan.doherty@intel.com>
> > Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Iremonger,
> > Bernard <bernard.iremonger@intel.com>
> > Subject: [PATCH v4 1/3] librte_ethdev: add RSS offload types for ESP
> > and AH
> >
> > add ETH_RSS_ESP and ETH_RSS_AH macros
> >
> > Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
> > ---
>
> The describe is too simple, more introduces can be added in code or commit
> log.
The patch is simple, and the commit messages describes what has been changed.
What extra information would you like to see?
Regards,
Bernard.