ConnectX-6 Dx (MCX621102AN-ADA): hardware-accelerated port-to-port forwarding?

Hello,

We have a ConnectX-6 Dx adapter (MCX621102AN-ADA) in a Linux host. The topology is:

Machine 1 ←→ Port 1 (ConnectX-6 Dx) — internal — Port 2 (ConnectX-6 Dx) ←→ Machine 2

The requirement is to forward L2 traffic bidirectionally between Port 1 and Port 2 at 10G line rate (MTU may vary), with minimal CPU / Linux kernel data-path involvement.

So far, we have only managed to do this via the Linux network stack (switchdev + Linux bridge, tc-based forwarding on representor ports, etc.). This clearly runs in software and leads to high CPU usage, packet loss, and throughput drops under load.

My questions are:

  1. Does this NIC family support fully hardware-offloaded port-to-port forwarding (eswitch / embedded switch / hairpin) between its physical ports in this kind of setup, with the host used only for control-plane?

  2. If yes, where can I find an official, step-by-step configuration guide (mlxconfig / devlink / tc / OFED, etc.) for this use case?

  3. If not, is there any ConnectX-6 or ConnectX-7 card that does support documented, hardware-accelerated port-to-port L2 forwarding between its physical ports?

Thanks.

ConnectX-6 Dx does not support true hardware-only L2 forwarding between its two physical ports. Any solution based on switchdev, Linux bridge, or tc (including representors) will still involve the host datapath and consume CPU.

The embedded eSwitch is designed for PF/VF/SF steering and VM/container networking, not for wire-to-wire PHY switching. Hairpin offload helps VF↔VF or VF↔wire use cases, but does not enable physical port-to-physical port switching.

If you need line-rate, MTU-agnostic L2 forwarding with minimal host involvement, the supported options are an external Ethernet switch or a BlueField DPU (where switching runs on the DPU, not the host). ConnectX-7 does not change this limitation in NIC mode.