ethdev: add function to get hairpin peer ports list
authorBing Zhao <bingz@nvidia.com>
Thu, 15 Oct 2020 13:08:53 +0000 (21:08 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 16 Oct 2020 17:48:19 +0000 (19:48 +0200)
commit9a9ba10ada5eaf4af0f7e17090b22eeab346a2a4
tree5cdd0bbed22d0b34e07a769b22f7a7413aae141f
parent5d9f23fb8f15532722f592bbe9a0f796ed71d0a1
ethdev: add function to get hairpin peer ports list

After hairpin queues are configured, in general, the application will
maintain the ports topology and even the queues configuration for
the hairpin. But sometimes it will not.

If there is no hot-plug, it is easy to bind and unbind hairpin among
all the ports. The application can just connect or disconnect the
hairpin egress ports to/from all the probed ingress ports. Then all
the connections could be handled properly.

But with hot-plug / hot-unplug, one port could be probed and removed
dynamically. With two ports hairpin, all the connections from and to
this port should be handled after start(bind) or before stop(unbind).
It is necessary to know the hairpin topology with this port.

This function will return the ports list with the actual peer ports
number after configuration. Either peer Rx or Tx ports will be
gotten with this function call.

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
doc/guides/rel_notes/release_20_11.rst
lib/librte_ethdev/rte_ethdev.c
lib/librte_ethdev/rte_ethdev.h
lib/librte_ethdev/rte_ethdev_driver.h
lib/librte_ethdev/rte_ethdev_version.map