The two Bosgame M5 PCs used for this setup have neither an Oculink port nor a PCIe slot. So we use M.2 to Oculink adapters to get PCIe 4.0 x4 for the NICs. Here's some hardware used for a setup with cheap used Mellanox cards. The more recent PCIe 4.0 cards are quite a bit more expensive than the older cards. The PCIe 3.0 x4 connection limits the cards to speeds of around 26GBit/s. Not too shabby.
* 2x Strix Halo with a spare M.2 slot (tested using Bosgame M5)
-
* 1x ATX PC PSU (any will do, needs just 20 Watts)
[ 9.162204] mlx4_core 0000:c3:00.0: DMFS high rate steer mode is: disabled performance optimized steering
+
[ 9.162913] mlx4_core 0000:c3:00.0: 31.504 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x4 link at 0000:00:02.5 (capable of 63.008 Gb/s with 8.0 GT/s PCIe x8 link)
[ 9.404284] <mlx4_ib> mlx4_ib_probe: counter index 0 for port 1 allocated 0
+
[ 9.404286] <mlx4_ib> mlx4_ib_probe: counter index 1 for port 2 allocated 0
+
[ 10.781441] mlx4_core 0000:c3:00.0 ibp195s0: renamed from ib0
+
[ 10.781830] mlx4_core 0000:c3:00.0 ibp195s0d1: renamed from ib1
+
[ 12.486493] mlx4_core 0000:c3:00.0 ibp195s0d1: "NetworkManager" wants to know my dev_id. Should it look at dev_port instead? See Documentation/ABI/testing/sysfs-class-net for more info.
+
[ 1943.886040] mlx4_core 0000:c3:00.0 ibp195s0: Port: 1 Link INIT
+
[ 1943.941515] mlx4_core 0000:c3:00.0 ibp195s0: Port: 1 Link ACTIVE
+
```
+
To enable performance optimized steering (and surrender VLAN support), edit
+
`/etc/modprobe.d/mlx4.conf` and add this line:
+
```options mlx4_core log_num_mgm_entry_size=-7
+
```
+
as mentioned in the [driver documentation](https://doc.dpdk.org/guides/nics/mlx4.html).
+
Install needed packages on both PCs running Fedora 43: