if this flag is advertised by a PMD, Multiple threads can invoke rte_eth_tx_burst() concurrently on the same tx queue without SW lock. This is an HW feature found in some NICs and useful in the following use cases if HW supports it.
1) Remove explicit spinlock in some application where cores to tx queues are not mapped 1:1. example: OVS has such instance https://github.com/openvswitch/ovs/blob/master/lib/netdev-dpdk.c#L292 https://github.com/openvswitch/ovs/blob/master/lib/netdev-dpdk.c#L1821 2) In eventdev use case, Avoid dedicating a separate tx core for transmit and thus enables more scaling as all workers can transmit the packets. Signed-off-by: Jerin Jacob <jerin.ja...@caviumnetworks.com> --- lib/librte_ether/rte_ethdev.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index f9de9a2b6..696bc9d44 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -899,6 +899,10 @@ struct rte_eth_conf { #define DEV_TX_OFFLOAD_IPIP_TNL_TSO 0x00000800 /**< Used for tunneling packet. */ #define DEV_TX_OFFLOAD_GENEVE_TNL_TSO 0x00001000 /**< Used for tunneling packet. */ #define DEV_TX_OFFLOAD_MACSEC_INSERT 0x00002000 +#define DEV_TX_OFFLOAD_TXQ_MT_LOCKFREE 0x00004000 +/**< Multiple threads can invoke rte_eth_tx_burst() concurrently on the same + * tx queue without SW lock. + */ struct rte_pci_device; -- 2.12.2