* [dpdk-stable] [PATCH] examples/vmdq: fix RSS configuration @ 2020-03-03 9:16 Junyu Jiang 2020-03-05 2:02 ` Li, Xiaoyun ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Junyu Jiang @ 2020-03-03 9:16 UTC (permalink / raw) To: dev; +Cc: Xiaoyun Li, Qiming Yang, Junyu Jiang, stable In order that all queues of pools can receive packets, add enable-rss argument to change rss configuration. Fixes: 6bb97df521aa ("examples/vmdq: new app") Cc: stable@dpdk.org Signed-off-by: Junyu Jiang <junyux.jiang@intel.com> --- examples/vmdq/main.c | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index 011110920..98032e6a3 100644 --- a/examples/vmdq/main.c +++ b/examples/vmdq/main.c @@ -59,6 +59,7 @@ static uint32_t enabled_port_mask; /* number of pools (if user does not specify any, 8 by default */ static uint32_t num_queues = 8; static uint32_t num_pools = 8; +static uint8_t rss_enable; /* empty vmdq configuration structure. Filled in programatically */ static const struct rte_eth_conf vmdq_conf_default = { @@ -143,6 +144,13 @@ get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_pools) (void)(rte_memcpy(eth_conf, &vmdq_conf_default, sizeof(*eth_conf))); (void)(rte_memcpy(ð_conf->rx_adv_conf.vmdq_rx_conf, &conf, sizeof(eth_conf->rx_adv_conf.vmdq_rx_conf))); + if (rss_enable) { + eth_conf->rxmode.mq_mode = ETH_MQ_RX_VMDQ_RSS; + eth_conf->rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP | + ETH_RSS_UDP | + ETH_RSS_TCP | + ETH_RSS_SCTP; + } return 0; } @@ -164,6 +172,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) uint16_t q; uint16_t queues_per_pool; uint32_t max_nb_pools; + uint64_t rss_hf_tmp; /* * The max pool number from dev_info will be used to validate the pool @@ -209,6 +218,17 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) if (!rte_eth_dev_is_valid_port(port)) return -1; + rss_hf_tmp = port_conf.rx_adv_conf.rss_conf.rss_hf; + port_conf.rx_adv_conf.rss_conf.rss_hf &= + dev_info.flow_type_rss_offloads; + if (port_conf.rx_adv_conf.rss_conf.rss_hf != rss_hf_tmp) { + printf("Port %u modified RSS hash function based on hardware support," + "requested:%#"PRIx64" configured:%#"PRIx64"\n", + port, + rss_hf_tmp, + port_conf.rx_adv_conf.rss_conf.rss_hf); + } + /* * Though in this example, we only receive packets from the first queue * of each pool and send packets through first rte_lcore_count() tx @@ -363,7 +383,8 @@ static void vmdq_usage(const char *prgname) { printf("%s [EAL options] -- -p PORTMASK]\n" - " --nb-pools NP: number of pools\n", + " --nb-pools NP: number of pools\n" + " --enable-rss: enable RSS (disabled by default)\n", prgname); } @@ -377,6 +398,7 @@ vmdq_parse_args(int argc, char **argv) const char *prgname = argv[0]; static struct option long_option[] = { {"nb-pools", required_argument, NULL, 0}, + {"enable-rss", 0, NULL, 0}, {NULL, 0, 0, 0} }; @@ -394,11 +416,18 @@ vmdq_parse_args(int argc, char **argv) } break; case 0: - if (vmdq_parse_num_pools(optarg) == -1) { - printf("invalid number of pools\n"); - vmdq_usage(prgname); - return -1; + if (!strcmp(long_option[option_index].name, + "nb-pools")) { + if (vmdq_parse_num_pools(optarg) == -1) { + printf("invalid number of pools\n"); + vmdq_usage(prgname); + return -1; + } } + + if (!strcmp(long_option[option_index].name, + "enable-rss")) + rss_enable = 1; break; default: -- 2.17.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-stable] [PATCH] examples/vmdq: fix RSS configuration 2020-03-03 9:16 [dpdk-stable] [PATCH] examples/vmdq: fix RSS configuration Junyu Jiang @ 2020-03-05 2:02 ` Li, Xiaoyun 2020-03-27 8:33 ` Han, YingyaX 2020-03-09 16:44 ` Ferruh Yigit [not found] ` <20200325063248.28484-1-junyux.jiang@intel.com> 2 siblings, 1 reply; 9+ messages in thread From: Li, Xiaoyun @ 2020-03-05 2:02 UTC (permalink / raw) To: Jiang, JunyuX, dev; +Cc: Yang, Qiming, stable > -----Original Message----- > From: Jiang, JunyuX > Sent: Tuesday, March 3, 2020 17:16 > To: dev@dpdk.org > Cc: Li, Xiaoyun <xiaoyun.li@intel.com>; Yang, Qiming > <qiming.yang@intel.com>; Jiang, JunyuX <junyux.jiang@intel.com>; > stable@dpdk.org > Subject: [PATCH] examples/vmdq: fix RSS configuration > > In order that all queues of pools can receive packets, add enable-rss > argument to change rss configuration. > > Fixes: 6bb97df521aa ("examples/vmdq: new app") > Cc: stable@dpdk.org > > Signed-off-by: Junyu Jiang <junyux.jiang@intel.com> > --- Acked-by: Xiaoyun Li <xiaoyun.li@intel.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-stable] [PATCH] examples/vmdq: fix RSS configuration 2020-03-05 2:02 ` Li, Xiaoyun @ 2020-03-27 8:33 ` Han, YingyaX 0 siblings, 0 replies; 9+ messages in thread From: Han, YingyaX @ 2020-03-27 8:33 UTC (permalink / raw) To: Li, Xiaoyun, Jiang, JunyuX, dev; +Cc: stable Tested-by: Han,YingyaX <yingyax.han@intel.com> BRs, Yingya -----Original Message----- From: stable <stable-bounces@dpdk.org> On Behalf Of Li, Xiaoyun Sent: Thursday, March 5, 2020 10:03 AM To: Jiang, JunyuX <junyux.jiang@intel.com>; dev@dpdk.org Cc: Yang, Qiming <qiming.yang@intel.com>; stable@dpdk.org Subject: Re: [dpdk-stable] [PATCH] examples/vmdq: fix RSS configuration > -----Original Message----- > From: Jiang, JunyuX > Sent: Tuesday, March 3, 2020 17:16 > To: dev@dpdk.org > Cc: Li, Xiaoyun <xiaoyun.li@intel.com>; Yang, Qiming > <qiming.yang@intel.com>; Jiang, JunyuX <junyux.jiang@intel.com>; > stable@dpdk.org > Subject: [PATCH] examples/vmdq: fix RSS configuration > > In order that all queues of pools can receive packets, add enable-rss > argument to change rss configuration. > > Fixes: 6bb97df521aa ("examples/vmdq: new app") > Cc: stable@dpdk.org > > Signed-off-by: Junyu Jiang <junyux.jiang@intel.com> > --- Acked-by: Xiaoyun Li <xiaoyun.li@intel.com> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-stable] [PATCH] examples/vmdq: fix RSS configuration 2020-03-03 9:16 [dpdk-stable] [PATCH] examples/vmdq: fix RSS configuration Junyu Jiang 2020-03-05 2:02 ` Li, Xiaoyun @ 2020-03-09 16:44 ` Ferruh Yigit [not found] ` <20200325063248.28484-1-junyux.jiang@intel.com> 2 siblings, 0 replies; 9+ messages in thread From: Ferruh Yigit @ 2020-03-09 16:44 UTC (permalink / raw) To: Junyu Jiang, dev; +Cc: Xiaoyun Li, Qiming Yang, stable On 3/3/2020 9:16 AM, Junyu Jiang wrote: > In order that all queues of pools can receive packets, > add enable-rss argument to change rss configuration. > > Fixes: 6bb97df521aa ("examples/vmdq: new app") > Cc: stable@dpdk.org > > Signed-off-by: Junyu Jiang <junyux.jiang@intel.com> Hi Junyu, I was about to ask to document new 'enable-rss' argument in the sample app documentation, but it seems there is no documentation for it, if I am not missing anything. Would it be possible to add some documentation for it, later update the documentation with new 'enable-rss' argument in this patch? Thanks, ferruh ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <20200325063248.28484-1-junyux.jiang@intel.com>]
* [dpdk-stable] [PATCH v2 2/2] examples/vmdq: fix RSS configuration [not found] ` <20200325063248.28484-1-junyux.jiang@intel.com> @ 2020-03-25 6:32 ` Junyu Jiang 2020-03-30 2:35 ` [dpdk-stable] [dpdk-dev] " Han, YingyaX 2020-04-03 0:08 ` Wu, Jingjing 0 siblings, 2 replies; 9+ messages in thread From: Junyu Jiang @ 2020-03-25 6:32 UTC (permalink / raw) To: dev; +Cc: Qiming Yang, Ferruh Yigit, Junyu Jiang, stable In order that all queues of pools can receive packets, add enable-rss argument to change rss configuration. Fixes: 6bb97df521aa ("examples/vmdq: new app") Cc: stable@dpdk.org Signed-off-by: Junyu Jiang <junyux.jiang@intel.com> Acked-by: Xiaoyun Li <xiaoyun.li@intel.com> --- doc/guides/sample_app_ug/vmdq_forwarding.rst | 6 +-- examples/vmdq/main.c | 39 +++++++++++++++++--- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/doc/guides/sample_app_ug/vmdq_forwarding.rst b/doc/guides/sample_app_ug/vmdq_forwarding.rst index df23043d6..658d6742d 100644 --- a/doc/guides/sample_app_ug/vmdq_forwarding.rst +++ b/doc/guides/sample_app_ug/vmdq_forwarding.rst @@ -26,13 +26,13 @@ The Intel® 82599 10 Gigabit Ethernet Controller NIC also supports the splitting While the Intel® X710 or XL710 Ethernet Controller NICs support many configurations of VMDQ pools of 4 or 8 queues each. And queues numbers for each VMDQ pool can be changed by setting CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM in config/common_* file. -The nb-pools parameter can be passed on the command line, after the EAL parameters: +The nb-pools and enable-rss parameters can be passed on the command line, after the EAL parameters: .. code-block:: console - ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP + ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP --enable-rss -where, NP can be 8, 16 or 32. +where, NP can be 8, 16 or 32, rss is disabled by default. In Linux* user space, the application can display statistics with the number of packets received on each queue. To have the application display the statistics, send a SIGHUP signal to the running application process. diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index 011110920..98032e6a3 100644 --- a/examples/vmdq/main.c +++ b/examples/vmdq/main.c @@ -59,6 +59,7 @@ static uint32_t enabled_port_mask; /* number of pools (if user does not specify any, 8 by default */ static uint32_t num_queues = 8; static uint32_t num_pools = 8; +static uint8_t rss_enable; /* empty vmdq configuration structure. Filled in programatically */ static const struct rte_eth_conf vmdq_conf_default = { @@ -143,6 +144,13 @@ get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_pools) (void)(rte_memcpy(eth_conf, &vmdq_conf_default, sizeof(*eth_conf))); (void)(rte_memcpy(ð_conf->rx_adv_conf.vmdq_rx_conf, &conf, sizeof(eth_conf->rx_adv_conf.vmdq_rx_conf))); + if (rss_enable) { + eth_conf->rxmode.mq_mode = ETH_MQ_RX_VMDQ_RSS; + eth_conf->rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP | + ETH_RSS_UDP | + ETH_RSS_TCP | + ETH_RSS_SCTP; + } return 0; } @@ -164,6 +172,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) uint16_t q; uint16_t queues_per_pool; uint32_t max_nb_pools; + uint64_t rss_hf_tmp; /* * The max pool number from dev_info will be used to validate the pool @@ -209,6 +218,17 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) if (!rte_eth_dev_is_valid_port(port)) return -1; + rss_hf_tmp = port_conf.rx_adv_conf.rss_conf.rss_hf; + port_conf.rx_adv_conf.rss_conf.rss_hf &= + dev_info.flow_type_rss_offloads; + if (port_conf.rx_adv_conf.rss_conf.rss_hf != rss_hf_tmp) { + printf("Port %u modified RSS hash function based on hardware support," + "requested:%#"PRIx64" configured:%#"PRIx64"\n", + port, + rss_hf_tmp, + port_conf.rx_adv_conf.rss_conf.rss_hf); + } + /* * Though in this example, we only receive packets from the first queue * of each pool and send packets through first rte_lcore_count() tx @@ -363,7 +383,8 @@ static void vmdq_usage(const char *prgname) { printf("%s [EAL options] -- -p PORTMASK]\n" - " --nb-pools NP: number of pools\n", + " --nb-pools NP: number of pools\n" + " --enable-rss: enable RSS (disabled by default)\n", prgname); } @@ -377,6 +398,7 @@ vmdq_parse_args(int argc, char **argv) const char *prgname = argv[0]; static struct option long_option[] = { {"nb-pools", required_argument, NULL, 0}, + {"enable-rss", 0, NULL, 0}, {NULL, 0, 0, 0} }; @@ -394,11 +416,18 @@ vmdq_parse_args(int argc, char **argv) } break; case 0: - if (vmdq_parse_num_pools(optarg) == -1) { - printf("invalid number of pools\n"); - vmdq_usage(prgname); - return -1; + if (!strcmp(long_option[option_index].name, + "nb-pools")) { + if (vmdq_parse_num_pools(optarg) == -1) { + printf("invalid number of pools\n"); + vmdq_usage(prgname); + return -1; + } } + + if (!strcmp(long_option[option_index].name, + "enable-rss")) + rss_enable = 1; break; default: -- 2.17.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v2 2/2] examples/vmdq: fix RSS configuration 2020-03-25 6:32 ` [dpdk-stable] [PATCH v2 2/2] " Junyu Jiang @ 2020-03-30 2:35 ` Han, YingyaX 2020-04-03 0:08 ` Wu, Jingjing 1 sibling, 0 replies; 9+ messages in thread From: Han, YingyaX @ 2020-03-30 2:35 UTC (permalink / raw) To: Jiang, JunyuX, dev; +Cc: Yang, Qiming, Yigit, Ferruh, Jiang, JunyuX, stable Tested-by: Han,YingyaX <yingyax.han@intel.com> BRs, Yingya -----Original Message----- From: dev <dev-bounces@dpdk.org> On Behalf Of Junyu Jiang Sent: Wednesday, March 25, 2020 2:33 PM To: dev@dpdk.org Cc: Yang, Qiming <qiming.yang@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>; Jiang, JunyuX <junyux.jiang@intel.com>; stable@dpdk.org Subject: [dpdk-dev] [PATCH v2 2/2] examples/vmdq: fix RSS configuration In order that all queues of pools can receive packets, add enable-rss argument to change rss configuration. Fixes: 6bb97df521aa ("examples/vmdq: new app") Cc: stable@dpdk.org Signed-off-by: Junyu Jiang <junyux.jiang@intel.com> Acked-by: Xiaoyun Li <xiaoyun.li@intel.com> --- doc/guides/sample_app_ug/vmdq_forwarding.rst | 6 +-- examples/vmdq/main.c | 39 +++++++++++++++++--- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/doc/guides/sample_app_ug/vmdq_forwarding.rst b/doc/guides/sample_app_ug/vmdq_forwarding.rst index df23043d6..658d6742d 100644 --- a/doc/guides/sample_app_ug/vmdq_forwarding.rst +++ b/doc/guides/sample_app_ug/vmdq_forwarding.rst @@ -26,13 +26,13 @@ The Intel® 82599 10 Gigabit Ethernet Controller NIC also supports the splitting While the Intel® X710 or XL710 Ethernet Controller NICs support many configurations of VMDQ pools of 4 or 8 queues each. And queues numbers for each VMDQ pool can be changed by setting CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM in config/common_* file. -The nb-pools parameter can be passed on the command line, after the EAL parameters: +The nb-pools and enable-rss parameters can be passed on the command line, after the EAL parameters: .. code-block:: console - ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP + ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP + --enable-rss -where, NP can be 8, 16 or 32. +where, NP can be 8, 16 or 32, rss is disabled by default. In Linux* user space, the application can display statistics with the number of packets received on each queue. To have the application display the statistics, send a SIGHUP signal to the running application process. diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index 011110920..98032e6a3 100644 --- a/examples/vmdq/main.c +++ b/examples/vmdq/main.c @@ -59,6 +59,7 @@ static uint32_t enabled_port_mask; /* number of pools (if user does not specify any, 8 by default */ static uint32_t num_queues = 8; static uint32_t num_pools = 8; +static uint8_t rss_enable; /* empty vmdq configuration structure. Filled in programatically */ static const struct rte_eth_conf vmdq_conf_default = { @@ -143,6 +144,13 @@ get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_pools) (void)(rte_memcpy(eth_conf, &vmdq_conf_default, sizeof(*eth_conf))); (void)(rte_memcpy(ð_conf->rx_adv_conf.vmdq_rx_conf, &conf, sizeof(eth_conf->rx_adv_conf.vmdq_rx_conf))); + if (rss_enable) { + eth_conf->rxmode.mq_mode = ETH_MQ_RX_VMDQ_RSS; + eth_conf->rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP | + ETH_RSS_UDP | + ETH_RSS_TCP | + ETH_RSS_SCTP; + } return 0; } @@ -164,6 +172,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) uint16_t q; uint16_t queues_per_pool; uint32_t max_nb_pools; + uint64_t rss_hf_tmp; /* * The max pool number from dev_info will be used to validate the pool @@ -209,6 +218,17 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) if (!rte_eth_dev_is_valid_port(port)) return -1; + rss_hf_tmp = port_conf.rx_adv_conf.rss_conf.rss_hf; + port_conf.rx_adv_conf.rss_conf.rss_hf &= + dev_info.flow_type_rss_offloads; + if (port_conf.rx_adv_conf.rss_conf.rss_hf != rss_hf_tmp) { + printf("Port %u modified RSS hash function based on hardware support," + "requested:%#"PRIx64" configured:%#"PRIx64"\n", + port, + rss_hf_tmp, + port_conf.rx_adv_conf.rss_conf.rss_hf); + } + /* * Though in this example, we only receive packets from the first queue * of each pool and send packets through first rte_lcore_count() tx @@ -363,7 +383,8 @@ static void vmdq_usage(const char *prgname) { printf("%s [EAL options] -- -p PORTMASK]\n" - " --nb-pools NP: number of pools\n", + " --nb-pools NP: number of pools\n" + " --enable-rss: enable RSS (disabled by default)\n", prgname); } @@ -377,6 +398,7 @@ vmdq_parse_args(int argc, char **argv) const char *prgname = argv[0]; static struct option long_option[] = { {"nb-pools", required_argument, NULL, 0}, + {"enable-rss", 0, NULL, 0}, {NULL, 0, 0, 0} }; @@ -394,11 +416,18 @@ vmdq_parse_args(int argc, char **argv) } break; case 0: - if (vmdq_parse_num_pools(optarg) == -1) { - printf("invalid number of pools\n"); - vmdq_usage(prgname); - return -1; + if (!strcmp(long_option[option_index].name, + "nb-pools")) { + if (vmdq_parse_num_pools(optarg) == -1) { + printf("invalid number of pools\n"); + vmdq_usage(prgname); + return -1; + } } + + if (!strcmp(long_option[option_index].name, + "enable-rss")) + rss_enable = 1; break; default: -- 2.17.1 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v2 2/2] examples/vmdq: fix RSS configuration 2020-03-25 6:32 ` [dpdk-stable] [PATCH v2 2/2] " Junyu Jiang 2020-03-30 2:35 ` [dpdk-stable] [dpdk-dev] " Han, YingyaX @ 2020-04-03 0:08 ` Wu, Jingjing 2020-04-03 1:35 ` Li, Xiaoyun 1 sibling, 1 reply; 9+ messages in thread From: Wu, Jingjing @ 2020-04-03 0:08 UTC (permalink / raw) To: Jiang, JunyuX, dev; +Cc: Yang, Qiming, Yigit, Ferruh, Jiang, JunyuX, stable > -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of Junyu Jiang > Sent: Wednesday, March 25, 2020 2:33 PM > To: dev@dpdk.org > Cc: Yang, Qiming <qiming.yang@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>; Jiang, > JunyuX <junyux.jiang@intel.com>; stable@dpdk.org > Subject: [dpdk-dev] [PATCH v2 2/2] examples/vmdq: fix RSS configuration > > In order that all queues of pools can receive packets, > add enable-rss argument to change rss configuration. > > Fixes: 6bb97df521aa ("examples/vmdq: new app") > Cc: stable@dpdk.org > > Signed-off-by: Junyu Jiang <junyux.jiang@intel.com> > Acked-by: Xiaoyun Li <xiaoyun.li@intel.com> > --- > doc/guides/sample_app_ug/vmdq_forwarding.rst | 6 +-- > examples/vmdq/main.c | 39 +++++++++++++++++--- > 2 files changed, 37 insertions(+), 8 deletions(-) > > diff --git a/doc/guides/sample_app_ug/vmdq_forwarding.rst > b/doc/guides/sample_app_ug/vmdq_forwarding.rst > index df23043d6..658d6742d 100644 > --- a/doc/guides/sample_app_ug/vmdq_forwarding.rst > +++ b/doc/guides/sample_app_ug/vmdq_forwarding.rst > @@ -26,13 +26,13 @@ The Intel® 82599 10 Gigabit Ethernet Controller NIC also supports > the splitting > While the Intel® X710 or XL710 Ethernet Controller NICs support many configurations of > VMDQ pools of 4 or 8 queues each. > And queues numbers for each VMDQ pool can be changed by setting > CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM > in config/common_* file. > -The nb-pools parameter can be passed on the command line, after the EAL parameters: > +The nb-pools and enable-rss parameters can be passed on the command line, after the > EAL parameters: > > .. code-block:: console > > - ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP > + ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP --enable-rss > > -where, NP can be 8, 16 or 32. > +where, NP can be 8, 16 or 32, rss is disabled by default. > > In Linux* user space, the application can display statistics with the number of packets > received on each queue. > To have the application display the statistics, send a SIGHUP signal to the running > application process. > diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c > index 011110920..98032e6a3 100644 > --- a/examples/vmdq/main.c > +++ b/examples/vmdq/main.c > @@ -59,6 +59,7 @@ static uint32_t enabled_port_mask; > /* number of pools (if user does not specify any, 8 by default */ > static uint32_t num_queues = 8; > static uint32_t num_pools = 8; > +static uint8_t rss_enable; > > /* empty vmdq configuration structure. Filled in programatically */ > static const struct rte_eth_conf vmdq_conf_default = { > @@ -143,6 +144,13 @@ get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t > num_pools) > (void)(rte_memcpy(eth_conf, &vmdq_conf_default, sizeof(*eth_conf))); > (void)(rte_memcpy(ð_conf->rx_adv_conf.vmdq_rx_conf, &conf, > sizeof(eth_conf->rx_adv_conf.vmdq_rx_conf))); > + if (rss_enable) { > + eth_conf->rxmode.mq_mode = ETH_MQ_RX_VMDQ_RSS; > + eth_conf->rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP | > + ETH_RSS_UDP | > + ETH_RSS_TCP | > + ETH_RSS_SCTP; > + } > return 0; > } > > @@ -164,6 +172,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) > uint16_t q; > uint16_t queues_per_pool; > uint32_t max_nb_pools; > + uint64_t rss_hf_tmp; > > /* > * The max pool number from dev_info will be used to validate the pool > @@ -209,6 +218,17 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) > if (!rte_eth_dev_is_valid_port(port)) > return -1; > > + rss_hf_tmp = port_conf.rx_adv_conf.rss_conf.rss_hf; > + port_conf.rx_adv_conf.rss_conf.rss_hf &= > + dev_info.flow_type_rss_offloads; > + if (port_conf.rx_adv_conf.rss_conf.rss_hf != rss_hf_tmp) { > + printf("Port %u modified RSS hash function based on hardware support," This is RSS offload type but not hash function. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v2 2/2] examples/vmdq: fix RSS configuration 2020-04-03 0:08 ` Wu, Jingjing @ 2020-04-03 1:35 ` Li, Xiaoyun 2020-04-03 3:15 ` Wu, Jingjing 0 siblings, 1 reply; 9+ messages in thread From: Li, Xiaoyun @ 2020-04-03 1:35 UTC (permalink / raw) To: Wu, Jingjing, Jiang, JunyuX, dev Cc: Yang, Qiming, Yigit, Ferruh, Jiang, JunyuX, stable > -----Original Message----- > From: stable <stable-bounces@dpdk.org> On Behalf Of Wu, Jingjing > Sent: Friday, April 3, 2020 08:08 > To: Jiang, JunyuX <junyux.jiang@intel.com>; dev@dpdk.org > Cc: Yang, Qiming <qiming.yang@intel.com>; Yigit, Ferruh > <ferruh.yigit@intel.com>; Jiang, JunyuX <junyux.jiang@intel.com>; > stable@dpdk.org > Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH v2 2/2] examples/vmdq: fix RSS > configuration > > > > > -----Original Message----- > > From: dev <dev-bounces@dpdk.org> On Behalf Of Junyu Jiang > > Sent: Wednesday, March 25, 2020 2:33 PM > > To: dev@dpdk.org > > Cc: Yang, Qiming <qiming.yang@intel.com>; Yigit, Ferruh > > <ferruh.yigit@intel.com>; Jiang, JunyuX <junyux.jiang@intel.com>; > > stable@dpdk.org > > Subject: [dpdk-dev] [PATCH v2 2/2] examples/vmdq: fix RSS > > configuration > > > > In order that all queues of pools can receive packets, add enable-rss > > argument to change rss configuration. > > > > Fixes: 6bb97df521aa ("examples/vmdq: new app") > > Cc: stable@dpdk.org > > > > Signed-off-by: Junyu Jiang <junyux.jiang@intel.com> > > Acked-by: Xiaoyun Li <xiaoyun.li@intel.com> > > --- > > doc/guides/sample_app_ug/vmdq_forwarding.rst | 6 +-- > > examples/vmdq/main.c | 39 +++++++++++++++++--- > > 2 files changed, 37 insertions(+), 8 deletions(-) > > > > diff --git a/doc/guides/sample_app_ug/vmdq_forwarding.rst > > b/doc/guides/sample_app_ug/vmdq_forwarding.rst > > index df23043d6..658d6742d 100644 > > --- a/doc/guides/sample_app_ug/vmdq_forwarding.rst > > +++ b/doc/guides/sample_app_ug/vmdq_forwarding.rst > > @@ -26,13 +26,13 @@ The Intel® 82599 10 Gigabit Ethernet Controller > > NIC also supports the splitting While the Intel® X710 or XL710 > > Ethernet Controller NICs support many configurations of VMDQ pools of > > 4 or 8 queues each. > > And queues numbers for each VMDQ pool can be changed by setting > > CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM > > in config/common_* file. > > -The nb-pools parameter can be passed on the command line, after the EAL > parameters: > > +The nb-pools and enable-rss parameters can be passed on the command > > +line, after the > > EAL parameters: > > > > .. code-block:: console > > > > - ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP > > + ./build/vmdq_app [EAL options] -- -p PORTMASK --nb-pools NP > > + --enable-rss > > > > -where, NP can be 8, 16 or 32. > > +where, NP can be 8, 16 or 32, rss is disabled by default. > > > > In Linux* user space, the application can display statistics with the > > number of packets received on each queue. > > To have the application display the statistics, send a SIGHUP signal > > to the running application process. > > diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c index > > 011110920..98032e6a3 100644 > > --- a/examples/vmdq/main.c > > +++ b/examples/vmdq/main.c > > @@ -59,6 +59,7 @@ static uint32_t enabled_port_mask; > > /* number of pools (if user does not specify any, 8 by default */ > > static uint32_t num_queues = 8; static uint32_t num_pools = 8; > > +static uint8_t rss_enable; > > > > /* empty vmdq configuration structure. Filled in programatically */ > > static const struct rte_eth_conf vmdq_conf_default = { @@ -143,6 > > +144,13 @@ get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t > > num_pools) > > (void)(rte_memcpy(eth_conf, &vmdq_conf_default, sizeof(*eth_conf))); > > (void)(rte_memcpy(ð_conf->rx_adv_conf.vmdq_rx_conf, &conf, > > sizeof(eth_conf->rx_adv_conf.vmdq_rx_conf))); > > + if (rss_enable) { > > + eth_conf->rxmode.mq_mode = ETH_MQ_RX_VMDQ_RSS; > > + eth_conf->rx_adv_conf.rss_conf.rss_hf = ETH_RSS_IP | > > + ETH_RSS_UDP | > > + ETH_RSS_TCP | > > + ETH_RSS_SCTP; > > + } > > return 0; > > } > > > > @@ -164,6 +172,7 @@ port_init(uint16_t port, struct rte_mempool > *mbuf_pool) > > uint16_t q; > > uint16_t queues_per_pool; > > uint32_t max_nb_pools; > > + uint64_t rss_hf_tmp; > > > > /* > > * The max pool number from dev_info will be used to validate the > > pool @@ -209,6 +218,17 @@ port_init(uint16_t port, struct rte_mempool > *mbuf_pool) > > if (!rte_eth_dev_is_valid_port(port)) > > return -1; > > > > + rss_hf_tmp = port_conf.rx_adv_conf.rss_conf.rss_hf; > > + port_conf.rx_adv_conf.rss_conf.rss_hf &= > > + dev_info.flow_type_rss_offloads; > > + if (port_conf.rx_adv_conf.rss_conf.rss_hf != rss_hf_tmp) { > > + printf("Port %u modified RSS hash function based on hardware > support," > > This is RSS offload type but not hash function. * The *rss_hf* field of the *rss_conf* structure indicates the different * types of IPv4/IPv6 packets to which the RSS hashing must be applied. * Supplying an *rss_hf* equal to zero disables the RSS feature. And in testpmd, it's the same. port->dev_conf.rx_adv_conf.rss_conf.rss_hf = rss_hf & port->dev_info.flow_type_rss_offloads; ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-stable] [dpdk-dev] [PATCH v2 2/2] examples/vmdq: fix RSS configuration 2020-04-03 1:35 ` Li, Xiaoyun @ 2020-04-03 3:15 ` Wu, Jingjing 0 siblings, 0 replies; 9+ messages in thread From: Wu, Jingjing @ 2020-04-03 3:15 UTC (permalink / raw) To: Li, Xiaoyun, Jiang, JunyuX, dev Cc: Yang, Qiming, Yigit, Ferruh, Jiang, JunyuX, stable > > > + rss_hf_tmp = port_conf.rx_adv_conf.rss_conf.rss_hf; > > > + port_conf.rx_adv_conf.rss_conf.rss_hf &= > > > + dev_info.flow_type_rss_offloads; > > > + if (port_conf.rx_adv_conf.rss_conf.rss_hf != rss_hf_tmp) { > > > + printf("Port %u modified RSS hash function based on hardware > > support," > > > > This is RSS offload type but not hash function. > > * The *rss_hf* field of the *rss_conf* structure indicates the different > * types of IPv4/IPv6 packets to which the RSS hashing must be applied. > * Supplying an *rss_hf* equal to zero disables the RSS feature. > > And in testpmd, it's the same. > port->dev_conf.rx_adv_conf.rss_conf.rss_hf = > rss_hf & port->dev_info.flow_type_rss_offloads; OK. I got, the definition of rss_hf at the beginning might be hash function which also the same as RSS offload type. Ignore my comments then. BTW hash function is also indicating TOEPLITZ/XOR... in somewhere. Thanks Jingjng ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-04-03 3:15 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-03 9:16 [dpdk-stable] [PATCH] examples/vmdq: fix RSS configuration Junyu Jiang 2020-03-05 2:02 ` Li, Xiaoyun 2020-03-27 8:33 ` Han, YingyaX 2020-03-09 16:44 ` Ferruh Yigit [not found] ` <20200325063248.28484-1-junyux.jiang@intel.com> 2020-03-25 6:32 ` [dpdk-stable] [PATCH v2 2/2] " Junyu Jiang 2020-03-30 2:35 ` [dpdk-stable] [dpdk-dev] " Han, YingyaX 2020-04-03 0:08 ` Wu, Jingjing 2020-04-03 1:35 ` Li, Xiaoyun 2020-04-03 3:15 ` Wu, Jingjing
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).