On 10/31/19 2:53 AM, Ori Kam wrote:
This commit introduce hairpin queue type.

The hairpin queue in build from Rx queue binded to Tx queue.
It is used to offload traffic coming from the wire and redirect it back
to the wire.

There are 3 new functions:
- rte_eth_dev_hairpin_capability_get
- rte_eth_rx_hairpin_queue_setup
- rte_eth_tx_hairpin_queue_setup

In order to use the queue, there is a need to create rte_flow
with queue / RSS action that targets one or more of the Rx queues.

Signed-off-by: Ori Kam <or...@mellanox.com>
Reviewed-by: Andrew Rybchenko <arybche...@solarflare.com>

LGTM, one note below which could be fixed on applying

diff --git a/lib/librte_ethdev/rte_ethdev_version.map 
b/lib/librte_ethdev/rte_ethdev_version.map
index e59d516..48b5389 100644
--- a/lib/librte_ethdev/rte_ethdev_version.map
+++ b/lib/librte_ethdev/rte_ethdev_version.map
@@ -288,4 +288,7 @@ EXPERIMENTAL {
        rte_eth_rx_burst_mode_get;
        rte_eth_tx_burst_mode_get;
        rte_eth_burst_mode_option_name;
+       rte_eth_rx_hairpin_queue_setup;
+       rte_eth_tx_hairpin_queue_setup;
+       rte_eth_dev_hairpin_capability_get;
  };

As I understand  rte_eth_dev_is_rx_hairpin_queue() and
rte_eth_dev_is_tx_hairpin_queue() should be listed above.
Yes, these functions are internal, but used in header
inline functions and should be visible outside.
We have discussed similar case recently in [1].

[1] http://inbox.dpdk.org/dev/20191030142938.bpi4txlrebqfq7uw@platinum/

Reply via email to