Jerin Jacob 7146aa19ac ethdev: introduce lock-free Tx queue capability
Introducing the DEV_TX_OFFLOAD_MT_LOCKFREE TX capability flag.
if a PMD advertises DEV_TX_OFFLOAD_MT_LOCKFREE capable, multiple threads
can invoke rte_eth_tx_burst() concurrently on the same tx queue without
SW lock. This PMD feature will be useful in the following use cases and
found in the OCTEON family of NPUs.

1) Remove explicit spinlock in some applications where lcores
to TX queues are not mapped 1:1.
example: OVS has such instance
https://github.com/openvswitch/ovs/blob/master/lib/netdev-dpdk.c#L299
https://github.com/openvswitch/ovs/blob/master/lib/netdev-dpdk.c#L1859
See the the usage of tx_lock spinlock.

2) In the eventdev use case, avoid dedicating a separate TX core for
transmitting and thus enables more scaling as all workers can
send the packets.

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
2017-07-18 15:32:55 +03:00

78 lines
1.8 KiB
INI

;
; Features of a default network driver.
;
; This file defines the features that are valid for inclusion in
; the other driver files and also the order that they appear in
; the features table in the documentation. The feature description
; string should not exceed feature_str_len defined in conf.py.
;
[Features]
Speed capabilities =
Link status =
Link status event =
Removal event =
Queue status event =
Rx interrupt =
Lock-free Tx queue =
Free Tx mbuf on demand =
Queue start/stop =
MTU update =
Jumbo frame =
Scattered Rx =
LRO =
TSO =
Promiscuous mode =
Allmulticast mode =
Unicast MAC filter =
Multicast MAC filter =
RSS hash =
RSS key update =
RSS reta update =
VMDq =
SR-IOV =
DCB =
VLAN filter =
Ethertype filter =
N-tuple filter =
SYN filter =
Tunnel filter =
Flexible filter =
Hash filter =
Flow director =
Flow control =
Flow API =
Rate limitation =
Traffic mirroring =
CRC offload =
VLAN offload =
QinQ offload =
L3 checksum offload =
L4 checksum offload =
MACsec offload =
Inner L3 checksum =
Inner L4 checksum =
Packet type parsing =
Timesync =
Rx descriptor status =
Tx descriptor status =
Basic stats =
Extended stats =
Stats per queue =
FW version =
EEPROM dump =
Registers dump =
LED =
Multiprocess aware =
BSD nic_uio =
Linux UIO =
Linux VFIO =
Other kdrv =
ARMv7 =
ARMv8 =
Power8 =
x86-32 =
x86-64 =
Usage doc =
Design doc =
Perf doc =