The manadv API provides low-level, direct access to MANA devices, bypassing the general branching and abstractions found in libibverbs.
When to use it:
Use manadv when application performance optimization is more critical than portability. While libibverbs provides a portable, provider-agnostic interface, it introduces a performance penalty. manadv allows applications to perform mana-specific low-level operations directly.
Key Constraints:
- This version of the driver supports only one Queue Pair (QP) type:
IBV_QPT_RAW_PACKET. - The
IBV_QPT_RAW_PACKET QP shares the same hardware resources as the Ethernet port used in the kernel. - Exclusive Access Required: To use
IBV_QPT_RAW_PACKET on a specific port, the port must not be used by any other software (including the Kernel). If the port is in use, ibv_create_qp() will fail with errno set to EBUSY.