Hi all,  We are meeting this issue too.
Would you please give us some comments or advice?

Here is the detail of this issue (copy from topic: Bidirectional RSS and [DPDK 
rte_flow]/[Intel DDP] in VPP):

We are encountering an issue with configuring symmetric hash functions for RSS 
in our VPP-DPDK setup. In the past, we successfully calculated symmetric 
Toeplitz hash keys in software and ensured that forward and reverse tuples of 
the same connection were mapped to the same DPDK worker (VPP not used in that 
project). However, while attempting to replicate this functionality using VPP 
with hardware support for symmetric Toeplitz hashing, we have run into 
difficulties.
In VPP, direct use of DPDK functions to configure RSS hashing and Rx queues is 
not possible due to the abstraction layer provided by the vnet flow mechanism. 
Although we have reviewed the source code and found it generally aligned with 
our requirements, we have been unable to achieve a proper RSS-to-queue mapping 
with a symmetric hash function (it doesn’t have to be Toeplitz but must be 
symmetric). Below are the specific tests we conducted:
Tests Conducted
Intel E810 Cards
With Intel E810 cards, RSS hashing in VPP appears to work; however, we faced 
SFP compatibility issues in our lab, so we couldn't fully verify the 
functionality.
The following command executes without errors for IPv4 but fails for IPv6:
```
test flow add dst-ip any proto udp rss function symmetric_toeplitz rss types 
ipv4-udp use l4-src-only and l4-dst-only rss queues 0 to 15
test flow enable index 0 HundredGigabitEthernetb1/0/0
```
Intel X710 Cards
Switching to Intel X710 cards in our 10G setup, we encountered errors when 
attempting to add a flow and enable it on the interface.
Mellanox ConnectX-5 Cards
We tested Mellanox ConnectX-5 cards with DPDK and attempted to create flows 
using VPP commands (test flow add and test flow enable), but always received 
errors.
We also configured the Mellanox cards in RDMA mode and executed the same tests, 
which again failed.
Using ethtool, we configured RSS hashing with the following command:
```
ethtool -X ens8f1np1 hfunc toeplitz hkey 
6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a:6d:5a
```
While no errors were reported, the forward and reverse directions of the same 
flow were still mapped to different workers/queues.
Interface RX Placement
We enabled interface RX placement to assign specific queues to workers using:
```
set interface rx-placement eth80 queue 0 worker 0
```
However, this also did not resolve the issue, and the forward and reverse 
directions of the same flow continued to be distributed to different queues.
Observations and Issues
We suspect that symmetric hashing is not being correctly enabled on the RSS and 
receive queues, leading to the distribution of flow directions across different 
queues. Despite extensive testing with various configurations, we have been 
unable to achieve symmetric hashing in our setup.
Environment Details
VPP version: 24.20-release
We believe enabling symmetric hashing in a VPP-DPDK setup should be a 
straightforward process. However, we are struggling to implement it 
successfully. Has anyone encountered similar issues or have insights into 
resolving this problem?
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#26524): https://lists.fd.io/g/vpp-dev/message/26524
Mute This Topic: https://lists.fd.io/mt/116352931/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to