numam-dpdk/lib/librte_ethdev
Bing Zhao bc6e15de08 ethdev: add hairpin queue operations
Every hairpin queue pair should be configured properly and the
connection between Tx and Rx queues should be established, before
hairpin function works. In single port hairpin mode, the queues of
each pair belong to the same device. It is easy to get the hardware
and software information of each queue and configure the hairpin
connection with such information. In two ports hairpin mode, it is
not easy or inappropriate to access one queue's information from
another device.

Since hairpin is configured per queue pair, three new APIs are
introduced and they are internal for the PMD using.

The peer update API helps to pass one queue's information to the
peer queue and get the peer's information back for the next step.
The peer bind API configures the current queue with the peer's
information. For each hairpin queue pair, this API may need to be
called twice to configure the Tx, Rx queues separately.
The peer unbind API resets the current queue configuration and state
to disconnect it from the peer queue. Also, it may need to be called
twice to disconnect Tx, Rx queues from each other.

Some parameter of the above APIs might not be mandatory, and it
depends on the PMD implementation.

The structure of `rte_hairpin_peer_info` is only a declaration and
the actual members will be defined in each PMD when being used.

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
2020-10-16 19:48:19 +02:00
..
ethdev_private.c ethdev: move representor parsing functions 2018-10-26 22:14:06 +02:00
ethdev_private.h rename private header files 2019-10-27 22:03:06 +01:00
ethdev_profile.c ethdev: change vtune profiling approach 2018-08-28 15:27:39 +02:00
ethdev_profile.h ethdev: fix build when vtune profiling is on 2020-04-21 13:57:06 +02:00
ethdev_trace_points.c trace: simplify trace point registration 2020-07-05 21:34:21 +02:00
meson.build eal: add telemetry as dependency 2020-05-11 00:37:16 +02:00
rte_class_eth.c ethdev: use new ethernet parsing function 2019-07-08 21:26:52 +02:00
rte_dev_info.h ethdev: add definitions for EEPROM standards 2019-10-23 16:43:08 +02:00
rte_eth_ctrl.h ethdev: fix include of ethernet header file 2019-10-25 19:00:22 +02:00
rte_ethdev_core.h ethdev: make flow API thread safe 2020-10-16 00:44:58 +02:00
rte_ethdev_driver.h ethdev: add hairpin queue operations 2020-10-16 19:48:19 +02:00
rte_ethdev_pci.h ethdev: reset device and interrupt pointers on release 2020-09-30 19:19:13 +02:00
rte_ethdev_trace_fp.h ethdev: add tracepoints 2020-04-23 15:40:06 +02:00
rte_ethdev_trace.h ethdev: add tracepoints 2020-04-23 15:40:06 +02:00
rte_ethdev_vdev.h ethdev: remove redundant license text 2020-09-18 18:55:08 +02:00
rte_ethdev_version.map ethdev: add hairpin queue operations 2020-10-16 19:48:19 +02:00
rte_ethdev.c ethdev: add hairpin queue operations 2020-10-16 19:48:19 +02:00
rte_ethdev.h ethdev: add function to get hairpin peer ports list 2020-10-16 19:48:19 +02:00
rte_flow_driver.h ethdev: add shared actions to flow API 2020-10-16 19:48:18 +02:00
rte_flow.c ethdev: add IPv6 fragment extension header item 2020-10-16 19:48:18 +02:00
rte_flow.h ethdev: add IPv6 fragment extension header item 2020-10-16 19:48:18 +02:00
rte_mtr_driver.h ethdev: make device operations struct private 2020-09-18 18:55:08 +02:00
rte_mtr.c remove experimental tags from all symbol definitions 2019-06-29 19:04:43 +02:00
rte_mtr.h ethdev: replace license text with SPDX tag 2019-07-29 15:07:48 +02:00
rte_tm_driver.h ethdev: make device operations struct private 2020-09-18 18:55:08 +02:00
rte_tm.c ethdev: rename folder to library name 2018-04-27 18:01:00 +01:00
rte_tm.h ethdev: support TM for shaper config in packet mode 2020-09-18 18:55:10 +02:00