examples/ip_pipeline: fix RSS
Checks
Commit Message
Fix for RSS issue triggered by latest changes in ethdev layer.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
examples/ip_pipeline/link.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
Comments
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Cristian Dumitrescu
> Sent: Tuesday, July 31, 2018 3:49 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] examples/ip_pipeline: fix RSS
>
> Fix for RSS issue triggered by latest changes in ethdev layer.
>
> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> ---
> examples/ip_pipeline/link.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c index
> 2ccfea4..392a890 100644
> --- a/examples/ip_pipeline/link.c
> +++ b/examples/ip_pipeline/link.c
> @@ -158,12 +158,9 @@ link_create(const char *name, struct link_params
> *params)
> memcpy(&port_conf, &port_conf_default, sizeof(port_conf));
> if (rss) {
> port_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
> - if (port_info.flow_type_rss_offloads & ETH_RSS_IPV4)
> - port_conf.rx_adv_conf.rss_conf.rss_hf |=
> - ETH_RSS_IPV4;
> - if (port_info.flow_type_rss_offloads & ETH_RSS_IPV6)
> - port_conf.rx_adv_conf.rss_conf.rss_hf |=
> - ETH_RSS_IPV6;
> + port_conf.rx_adv_conf.rss_conf.rss_hf =
> + (ETH_RSS_IP | ETH_RSS_TCP | ETH_RSS_UDP) &
> + port_info.flow_type_rss_offloads;
> }
>
> cpu_id = (uint32_t) rte_eth_dev_socket_id(port_id);
> --
> 2.7.4
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Cristian Dumitrescu
> Sent: Tuesday, July 31, 2018 3:49 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] examples/ip_pipeline: fix RSS
>
> Fix for RSS issue triggered by latest changes in ethdev layer.
>
> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
> ---
> examples/ip_pipeline/link.c | 9 +++------
> 1 file changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c
> index 2ccfea4..392a890 100644
> --- a/examples/ip_pipeline/link.c
> +++ b/examples/ip_pipeline/link.c
> @@ -158,12 +158,9 @@ link_create(const char *name, struct link_params *params)
> memcpy(&port_conf, &port_conf_default, sizeof(port_conf));
> if (rss) {
> port_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
> - if (port_info.flow_type_rss_offloads & ETH_RSS_IPV4)
> - port_conf.rx_adv_conf.rss_conf.rss_hf |=
> - ETH_RSS_IPV4;
> - if (port_info.flow_type_rss_offloads & ETH_RSS_IPV6)
> - port_conf.rx_adv_conf.rss_conf.rss_hf |=
> - ETH_RSS_IPV6;
> + port_conf.rx_adv_conf.rss_conf.rss_hf =
> + (ETH_RSS_IP | ETH_RSS_TCP | ETH_RSS_UDP) &
> + port_info.flow_type_rss_offloads;
> }
>
> cpu_id = (uint32_t) rte_eth_dev_socket_id(port_id);
> --
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> 2.7.4
Tested-by: Peng, Yuan <yuan.peng@intel.com>
- Tested Commit: 23888166d99682b1491a917277e4ff0ff01639b2
- OS: 4.5.5-300.fc24.x86_64
- GCC: gcc (GCC) 5.3.1 20151207 (Red Hat 5.3.1-2)
- CPU: Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
- NIC: Intel Corporation Device Fortville [8086:1583]
- Default x86_64-native-linuxapp-gcc configuration
I have verified the ip_pipeline rss case with 18.08-rc2 applied your patch 43469
* ./build/ip_pipeline -c 0x1F -n 4 -- -s ./examples/rss.cli
* Start traffic on just one input port.
* output traffic was seen (in equal amounts) for each of the 4x output ports
the bug is not represented.
-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Cristian Dumitrescu
Sent: Tuesday, July 31, 2018 10:49 PM
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH] examples/ip_pipeline: fix RSS
Fix for RSS issue triggered by latest changes in ethdev layer.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
examples/ip_pipeline/link.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c index 2ccfea4..392a890 100644
--- a/examples/ip_pipeline/link.c
+++ b/examples/ip_pipeline/link.c
@@ -158,12 +158,9 @@ link_create(const char *name, struct link_params *params)
memcpy(&port_conf, &port_conf_default, sizeof(port_conf));
if (rss) {
port_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
- if (port_info.flow_type_rss_offloads & ETH_RSS_IPV4)
- port_conf.rx_adv_conf.rss_conf.rss_hf |=
- ETH_RSS_IPV4;
- if (port_info.flow_type_rss_offloads & ETH_RSS_IPV6)
- port_conf.rx_adv_conf.rss_conf.rss_hf |=
- ETH_RSS_IPV6;
+ port_conf.rx_adv_conf.rss_conf.rss_hf =
+ (ETH_RSS_IP | ETH_RSS_TCP | ETH_RSS_UDP) &
+ port_info.flow_type_rss_offloads;
}
cpu_id = (uint32_t) rte_eth_dev_socket_id(port_id);
--
2.7.4
31/07/2018 16:49, Cristian Dumitrescu:
> Fix for RSS issue triggered by latest changes in ethdev layer.
>
> Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Collected agreements:
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Tested-by: Yuan Peng <yuan.peng@intel.com>
But 3 things are missing:
- The issue is not described
- The fix is not explained (you chose to mask unsupported RSS fields)
- There is no Fixes line, I guess this one:
Fixes: aa1a6d87f15d ("ethdev: force RSS offload rules again")
Please send a v2
@@ -158,12 +158,9 @@ link_create(const char *name, struct link_params *params)
memcpy(&port_conf, &port_conf_default, sizeof(port_conf));
if (rss) {
port_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
- if (port_info.flow_type_rss_offloads & ETH_RSS_IPV4)
- port_conf.rx_adv_conf.rss_conf.rss_hf |=
- ETH_RSS_IPV4;
- if (port_info.flow_type_rss_offloads & ETH_RSS_IPV6)
- port_conf.rx_adv_conf.rss_conf.rss_hf |=
- ETH_RSS_IPV6;
+ port_conf.rx_adv_conf.rss_conf.rss_hf =
+ (ETH_RSS_IP | ETH_RSS_TCP | ETH_RSS_UDP) &
+ port_info.flow_type_rss_offloads;
}
cpu_id = (uint32_t) rte_eth_dev_socket_id(port_id);