This series introduces a new hash-based Tx packets steering mode alognside existing XPS and static modes. The goal is to provide a mode where all the transmit queues are used, whatever the number of PMD threads. This may be used with Vhost-user ports, where the guest application driving the Virtio device expects packets to be distributed on all the queues.
As a preliminary step, in order to be able to validate the feature at OVS level, the two first patches introduce per-queue basic statistics for Vhost-user and dummy ports. These patches are complementary to David's patch [0] adding per-queue statistics to DPDK ports using xstats. The series also introduces a dpif-netdev test for tx steering, using dummy-pmd ports only, instead of the more complex Vhost-user test in first revision. Changes in v4: ============== - Change config option from tx-steering=hash|default to tx-steering=hash|thread (Kevin, Ilya) - Support case where packet's RSS is not valid (Ilya) - Fix Txq packets counts check in hash test - Add sub-test in Tx steering test with hw-offload=true,tx-steering=hash (Ilya) - Revisit documentation (Ilya) - Rebased on top of master branch Changes in v3: ============== - Free rxq_stats and txq_stats in netdev_dummy_destruct() caught by ASan (David) - Fix line length in the documentation part (Ilya) - Replace "\" with "dnl" in the dpif-netdev test (Ilya) - Replace "xps-mode" with "tx-steering" in documenation (Ilya) Changes in v2: ============== - Use macros to generate Vhost custom stats (David) - Change config option from hxps=true|false to tx-steering=hash|default (Ilya) - Fix use-after-free of tx_port->txq_pkts (Kevin) - Fix out-of-bound writes on Vhost-user rxq stats (David) - Implement Tx steering test in dpif-netdev without fuzzing (Ilya) - Remove Vhost-user tx-steering tests (Ilya) - Fix various indents & other cosmetic issues (David) - Move documenation out of dpdk/ Maxime Coquelin (5): netdev-dpdk: Introduce per rxq/txq Vhost-user statistics. netdev-dummy: Introduce per rxq/txq statistics. dpif-netdev: Introduce Tx queue mode. dpif-netdev: Introduce hash-based Tx packet steering mode. dpif-netdev.at: Add test for Tx packets steering. Documentation/automake.mk | 1 + Documentation/topics/index.rst | 1 + .../topics/userspace-tx-steering.rst | 75 +++++++++ lib/dpif-netdev.c | 142 ++++++++++++++--- lib/netdev-dpdk.c | 149 ++++++++++++++++-- lib/netdev-dummy.c | 82 +++++++++- tests/dpif-netdev.at | 67 ++++++++ tests/ofproto.at | 3 +- 8 files changed, 478 insertions(+), 42 deletions(-) create mode 100644 Documentation/topics/userspace-tx-steering.rst -- 2.31.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
