- 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.
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.
- 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
-------------------