- Multi arch support: x86_64, POWER8, ARMv8, i686.
- Multiple TX and RX queues.
+- Shared Rx queue.
+- Rx queue delay drop.
- Support for scattered TX frames.
- Advanced support for scattered Rx frames with tunable buffer attributes.
- IPv4, IPv6, TCPv4, TCPv6, UDPv4 and UDPv6 RSS on any number of queues.
process. If the external memory is registered by primary process but has
different virtual address in secondary process, unexpected error may happen.
+- Shared Rx queue:
+
+ - Counters of received packets and bytes number of devices in same share group are same.
+ - Counters of received packets and bytes number of queues in same group and queue ID are same.
+
- When using Verbs flow engine (``dv_flow_en`` = 0), flow pattern without any
specific VLAN will match for VLAN packets as well:
extension header type = 0x85).
- Match on GTP extension header is not supported in group 0.
+- Flex item:
+
+ - Hardware support: BlueField 2.
+ - Flex item is supported on PF only.
+ - Hardware limits ``header_length_mask_width`` up to 6 bits.
+ - Firmware supports 8 global sample fields.
+ Each flex item allocates non-shared sample fields from that pool.
+ - Supported flex item can have 1 input link - ``eth`` or ``udp``
+ and up to 2 output links - ``ipv4`` or ``ipv6``.
+ - Flex item fields (``next_header``, ``next_protocol``, ``samples``)
+ do not participate in RSS hash functions.
+ - In flex item configuration, ``next_header.field_base`` value
+ must be byte aligned (multiple of 8).
+
- No Tx metadata go to the E-Switch steering domain for the Flow group 0.
The flows within group 0 and set metadata action are rejected by hardware.
- yellow: QUEUE, RSS, PORT_ID, REPRESENTED_PORT, JUMP, DROP, MARK and SET_TAG.
- RED: must be DROP.
- Policy actions of RSS for green and yellow should have the same configuration except queues.
+ - Policy with RSS/queue action is not supported when ``dv_xmeta_en`` enabled.
- meter profile packet mode is supported.
- meter profiles of RFC2697, RFC2698 and RFC4115 are supported.
- Needs OFED 5.4+.
+- Timestamps:
+
+ - CQE timestamp field width is limited by hardware to 63 bits, MSB is zero.
+ - In the free-running mode the timestamp counter is reset on power on
+ and 63-bit value provides over 1800 years of uptime till overflow.
+ - In the real-time mode
+ (configurable with ``REAL_TIME_CLOCK_ENABLE`` firmware settings),
+ the timestamp presents the nanoseconds elapsed since 01-Jan-1970,
+ hardware timestamp overflow will happen on 19-Jan-2038
+ (0x80000000 seconds since 01-Jan-1970).
+ - The send scheduling is based on timestamps
+ from the reference "Clock Queue" completions,
+ the scheduled send timestamps should not be specified with non-zero MSB.
+
Statistics
----------
- POWER8 and ARMv8 with ConnectX-4 Lx, ConnectX-5, ConnectX-6, ConnectX-6 Dx,
ConnectX-6 Lx, BlueField and BlueField-2.
+- ``delay_drop`` parameter [int]
+
+ Bitmask value for the Rx queue delay drop attribute. Bit 0 is used for the
+ standard Rx queue and bit 1 is used for the hairpin Rx queue. By default, the
+ delay drop is disabled for all Rx queues. It will be ignored if the port does
+ not support the attribute even if it is enabled explicitly.
+
+ The packets being received will not be dropped immediately when the WQEs are
+ exhausted in a Rx queue with delay drop enabled.
+
+ A timeout value is set in the driver to control the waiting time before
+ dropping a packet. Once the timer is expired, the delay drop will be
+ deactivated for all the Rx queues with this feature enable. To re-activeate
+ it, a rearming is needed and it is part of the kernel driver starting from
+ OFED 5.5.
+
+ To enable / disable the delay drop rearming, the private flag ``dropless_rq``
+ can be set and queried via ethtool:
+
+ - ethtool --set-priv-flags <netdev> dropless_rq on (/ off)
+ - ethtool --show-priv-flags <netdev>
+
+ The configuration flag is global per PF and can only be set on the PF, once
+ it is on, all the VFs', SFs' and representors' Rx queues will share the timer
+ and rearming.
+
- ``mprq_en`` parameter [int]
A nonzero value enables configuring Multi-Packet Rx queues. Rx queue is
FLEX_PARSER_PROFILE_ENABLE=4
PROG_PARSE_GRAPH=1
+- enable dynamic flex parser for flex item::
+
+ FLEX_PARSER_PROFILE_ENABLE=4
+ PROG_PARSE_GRAPH=1
+
+- enable realtime timestamp format::
+
+ REAL_TIME_CLOCK_ENABLE=1
+
Linux Prerequisites
-------------------