When we send parallel flows such as VXLAN to a PF[1] port in OVS-DPDK with multiple PMDs. OVS will create a RTE flow with Mark and RSS actions to send flows to the software data path. But the RSS action does not work well and all the flows are forwarded to a single PMD. This is because RSS hash types should be set in RSS action.
[1]: In our testbed, a Mellanox ConnectX-6 is used as a PF port. Signed-off-by: Harold Huang <[email protected]> --- lib/netdev-offload-dpdk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index 94dc6a9b7..1b8fba2e3 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -18,6 +18,7 @@ #include <sys/types.h> #include <netinet/ip6.h> +#include <rte_ethdev.h> #include <rte_flow.h> #include <rte_gre.h> @@ -1697,7 +1698,7 @@ add_flow_mark_rss_actions(struct flow_actions *actions, .conf = (struct rte_flow_action_rss) { .func = RTE_ETH_HASH_FUNCTION_DEFAULT, .level = 0, - .types = 0, + .types = RTE_ETH_RSS_IP | RTE_ETH_RSS_UDP | RTE_ETH_RSS_TCP, .queue_num = netdev_n_rxq(netdev), .queue = rss_data->queue, .key_len = 0, -- 2.27.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
