The patches contain the following changes: 1. new APIs to bind and unbind hairpin ports in manual binding mode. 2. new API to get the hairpin peer ports list. 3. new internal APIs for PMD to pass the queue information and configure the queue pair. 4. new attribute members in the hairpin queue configuraiton structure to specify the binding mode and enable explicit TX flow mode. 5. Testpmd support to configure the hairpin modes for two ports hairpin verification. 6. documents update.
--- v3: 1. add length to protect the pointer to the array from getting corrupted 2. change the direction from bool to unsigned int v2: 1. add documents update 2. remove all peer ports logic from rte API 3. conf structure optimizing 4. new API to get the peer ports and testpmd change to support hot-plug / unplug case --- Bing Zhao (6): ethdev: add hairpin bind and unbind APIs ethdev: add new attributes to hairpin config ethdev: add API to get hairpin peer ports list ethdev: add APIs for hairpin queue operation app/testpmd: change hairpin queues setup doc: update for two ports hairpin mode app/test-pmd/parameters.c | 15 +++ app/test-pmd/testpmd.c | 125 ++++++++++++++++++++- app/test-pmd/testpmd.h | 2 + doc/guides/prog_guide/rte_flow.rst | 3 + doc/guides/rel_notes/release_20_11.rst | 8 ++ doc/guides/testpmd_app_ug/run_app.rst | 8 ++ lib/librte_ethdev/rte_ethdev.c | 133 +++++++++++++++++++++- lib/librte_ethdev/rte_ethdev.h | 85 +++++++++++++- lib/librte_ethdev/rte_ethdev_driver.h | 187 +++++++++++++++++++++++++++++++ lib/librte_ethdev/rte_ethdev_version.map | 6 + 10 files changed, 563 insertions(+), 9 deletions(-) -- 1.8.3.1