Changes and New Features
Support Added in User Space Version
Support Added in Firmware Version
Live Migration Dirty Page Tracking Support in Linux
[ConnectX-7] The dirty pages tracking support enables reducing downtime upon live migration. Once it is used, only the pages that were really dirtied by the device will be marked in QEMU as dirty and will be sent to the target upon stop. Without dirty tracking, all RAM is marked dirty so all RAM is resent upon stop and the downtime is increased.
Graceful Shutdown of Parent and Page Supplier
[All HCAs] Set default graceful period values for functions based on their type. ECPFs will get graceful period of 3 minutes, PFs get 1 minute, and VFs/SFs get 30 seconds.
Support RSS over XSK Queues
Use default RSS functionality to spread traffic across different XSK queues instead of having to provide explicit steering rules.
Added support of kTLS offload with key size of 256 bits.
Decouple Flow Steering
[All HCAs] Added support for Decouple Flow steering into a separate module, making it loosely coupled and thus easier to read, maintain, and debug.
N Pulses Per Second (NPPS)
[ConnectX-6 Dx and above] Enhanced NPPS to allow setting a pulse period higher than 1 pulse per second and to allow setting the pulse width.
If the width is unset, the driver implicitly sets it to half the given period (the width should be less than the pulse period). In this release, the pulse duration ranges between 65536 NS?524288 NS.
[All HCAs] Addded support for the option to enable remote invalidation when creating a new MKey. This way the RKey for a memory region can be changed frequently.
Floating LID (FLID)
[ConnectX-7] Added support for Floating LID (FLID) which can be used to identify a group of InfiniBand routers that allow communication with another subnet's entity. With this feature, multiple routers can be used per destination so that adaptive routing is supported. The FLID feature needs support from components such as the host, the subnet manager, the router, and more. This feature is only supported on the host portion of the sysrem.
Firmware Port Selection Based on Steering
[ConnectX-6 Dx and above] Added firmware support to allow explicit port selection based on steering and not QP affinity.
Use LAG Hash Mode for the HCA with two ports, if supported. Make sure to keep port affinity function in LAG Hash Mode if it supports bypass select flow table in non-SwitchDev mode.
Offloading MACsec with Replay Protection
[ConnectX-7 and above] Added driver support to allow offloading MACsec with replay protection enabled. This provides protection against replay attacks while using hardware offload.
Offloading MACsec with EPN
[ConnectX-7 and above] Added driver support to allow offloading MACsec with extended packet number (EPN) enabled. This feature extends the packet number field to a 64 bit field allowing a longer lifetime of the MACsec session.
[ConnectX-7 and above] Added driver support to allow offloading MACsec. This feature adds support for hardware offloading for MACsec protocol with encryption.
Adding/removing/updating SAs/SecYs is supported.
Note: Hardware offloading for MACsec protocol with no encryption/authentication is a separate feature and is not part of this feature.
[ConnectX-6 Dx, BlueField-2, and above] Multi-block encryption is currently unsupported, due to a hardware limitation.