I've been wanting to find out more about 25GbE options for Mac as well. I downloaded the driver for ThunderLink NS3252 and used The Unarchiver to extract some of the files from the ATTOThunderLinkNC3_1081f1.pkg.
Inside the ATTOThunderLinkNC3_1081f1/ATTOThunderLinkNC3.pkg/Payload file there are multiple mentions of Mellanox:
L186879: !pbase
/Volumes/Development/mellanox/source/cna3/osx/driver/mlx5/mlx5_core/mlx5_fs_tree.c!devmlx5_core: %s:%s:%d
pid %d): failed to allocate inbox
L186890:
fdb_rootfdb_prioesw_egress_rootesw_egress_prioesw_ingress_rootesw_ingress_priosniffer_tx_rootsniffer_priosniffer_rx_rootmlx5_cmd_fs_set_fte"queue_work on inactive work queue\n"@
/Volumes/Development/mellanox/source/cna3/osx/kext/compat/osdep.cpp:174mlx5_core: %s:%s:%d
pid %d): MLX5_CMD_OP_MODIFY_VPORT_STATE failed
L187086:
mlx5_get_rsccreate_qprqsq_commonpxd_ready_bppci_write_bppci_read_bppci_read_stuck_no_completion_buffermax_pci_bwused_pci_bwrx_pci_errorstx_pci_errorstx_pci_correctable_errorstx_pci_non_fatal_errorstx_pci_fatal_errorsl0_mtt_missl0_mtt_hitl1_mtt_missl1_mtt_hitl0_mpt_missl0_mpt_hitl1_mpt_missl1_mpt_hitrxb_no_slow_path_creditsrxb_no_fast_path_creditsrxb_rxt_no_slow_path_cred_perf_countrxb_rxt_no_fast_path_cred_perf_countrxt_ctrl_perf_slice_load_slowrxt_ctrl_perf_slice_load_fastrxt_steering_perf_count_steering0_rse_work_raterxt_steering_perf_count_steering1_rse_work_rateperf_count_tpt_creditperf_wb_missperf_wb_hitrxw_perf_rx_l1_slow_miss_ldbrxw_perf_rx_l1_slow_hit_ldbrxw_perf_rx_l1_fast_miss_ldbrxw_perf_rx_l1_fast_hit_ldbrxw_perf_l2_cache_read_miss_ldbrxw_perf_l2_cache_read_hit_ldbrxw_perf_rx_l1_slow_miss_reqslrxw_perf_rx_l1_slow_hit_reqslrxw_perf_rx_l1_fast_miss_reqslrxw_perf_rx_l1_fast_hit_reqslrxw_perf_l2_cache_read_miss_reqslrxw_perf_l2_cache_read_hit_reqslrxs_no_pxt_creditsrxc_eq_all_slices_busyrxc_cq_all_slices_busyrxc_msix_all_slices_busysxw_qp_done_due_to_vl_limitedsxw_qp_done_due_to_deschedsxw_qp_done_due_to_work_donesxw_qp_done_due_to_limitedsxw_qp_done_due_to_e2e_creditssxw_packet_send_sxw2sxp_go_vldsxw_perf_count_steering_hitsxw_perf_count_steering_misssxw_perf_count_steering_rse_0sxd_no_sched_creditssxd_no_slow_path_sched_creditstpt_indirect_mem_keymlx5_alloc_db_from_pgdir(pgdir, db)/Volumes/Development/mellanox/source/cna3/osx/driver/mlx5/mlx5_core/mlx5_alloc.cHardwareLroHardware LROEnable hardware LRO.
L187137:
œÌÒ
*ÒLÒmÒÄÒóÒÆÒ«Ò ÂÒ Ú Ú 8Ú WÚ vÚ íÚ ØÚ ÕÚ$‚Ú$Û(v¥–.|¥ÿ.Ç¥‡.à¥Ë.é¥..ö¥/†¥/¶¥/k¥p «¥/Ω¥"¥ /‰¥Ä"^¥∞!!
±¥@"’¥¿"#Y¥#ØATT000000003ATTO FastFrame N351N351∞ATT000000004ATTO FastFrame N352N352±ATT000000005ATTO FastFrame N311N311≤ATT000000006ATTO FastFrame N312N312¥ATT000000007ATTO FastFrame N322N322∏@ATT000000008ATTO ThunderLink N3 3102N3 3102∑@ATT000000009ATTO ThunderLink NS 3252NS 3252
Mellanox Ethernet driver (3.1.0-dev) PËvHÄÓ∆ ËvH«2P‰T'Ä «2‰T'@«+P ö;ËÄR«+ ö;Ëq«"ˇˇˇˇ¿ã é‡éè∑¡n;Ç Ÿ&C
‹vkk≈≤MÜPG∏Ì&…"÷÷ä/aÀK+dõ5”ÜÕ1
L187321:
!pbase
/Volumes/Development/mellanox/source/cna3/osx/driver/mlx5/mlx5_core/mlx5_fs_tree.c!devmlx5_core: %s:%s:%d
pid %d): failed to allocate inbox
L187528:
mlx5_get_rsccreate_qprqsq_commonpxd_ready_bppci_write_bppci_read_bppci_read_stuck_no_completion_buffermax_pci_bwused_pci_bwrx_pci_errorstx_pci_errorstx_pci_correctable_errorstx_pci_non_fatal_errorstx_pci_fatal_errorsl0_mtt_missl0_mtt_hitl1_mtt_missl1_mtt_hitl0_mpt_missl0_mpt_hitl1_mpt_missl1_mpt_hitrxb_no_slow_path_creditsrxb_no_fast_path_creditsrxb_rxt_no_slow_path_cred_perf_countrxb_rxt_no_fast_path_cred_perf_countrxt_ctrl_perf_slice_load_slowrxt_ctrl_perf_slice_load_fastrxt_steering_perf_count_steering0_rse_work_raterxt_steering_perf_count_steering1_rse_work_rateperf_count_tpt_creditperf_wb_missperf_wb_hitrxw_perf_rx_l1_slow_miss_ldbrxw_perf_rx_l1_slow_hit_ldbrxw_perf_rx_l1_fast_miss_ldbrxw_perf_rx_l1_fast_hit_ldbrxw_perf_l2_cache_read_miss_ldbrxw_perf_l2_cache_read_hit_ldbrxw_perf_rx_l1_slow_miss_reqslrxw_perf_rx_l1_slow_hit_reqslrxw_perf_rx_l1_fast_miss_reqslrxw_perf_rx_l1_fast_hit_reqslrxw_perf_l2_cache_read_miss_reqslrxw_perf_l2_cache_read_hit_reqslrxs_no_pxt_creditsrxc_eq_all_slices_busyrxc_cq_all_slices_busyrxc_msix_all_slices_busysxw_qp_done_due_to_vl_limitedsxw_qp_done_due_to_deschedsxw_qp_done_due_to_work_donesxw_qp_done_due_to_limitedsxw_qp_done_due_to_e2e_creditssxw_packet_send_sxw2sxp_go_vldsxw_perf_count_steering_hitsxw_perf_count_steering_misssxw_perf_count_steering_rse_0sxd_no_sched_creditssxd_no_slow_path_sched_creditstpt_indirect_mem_keymlx5_alloc_db_from_pgdir(pgdir, db)
/Volumes/Development/mellanox/source/cna3/osx/driver/mlx5/mlx5_core/mlx5_alloc.cHardwareLroHardware LROEnable hardware LRO.
L189117:
A˘÷PêA˘÷PêA˘÷PêA˘÷PêA˘÷PêA˘÷Pê"A˘÷Pê&A˘÷Pê*A˘÷Pê2A˘÷Pê6A˘÷Pê:A˘÷Pê>A˘÷PêFA˘÷PêJA˘÷PêNA˘÷PêRA˘÷PêVA˘÷PêZA˘÷Pê^A˘÷PêbA˘÷PêfA˘÷PêjA˘÷PênA˘÷PêrA˘÷PêvA˘÷PêzA˘÷Pê~A˘÷PêÇA˘÷PêÜA˘÷PêäA˘÷PêéA˘÷PêíA˘÷PêñA˘÷PêöA˘÷PêûA˘÷Pê¢A˘÷Pê¶A˘÷Pê™A˘÷PêÆA˘÷Pê≤A˘÷Pê∂A˘÷Pê∫A˘÷PêæA˘÷Pê¬A˘÷Pê∆A˘÷Pê A˘÷PêŒA˘÷Pê“A˘÷Pê÷A˘÷PêfiA˘÷Pê‚A˘÷PêÊA˘÷PêÍA˘÷PêÓA˘÷PêÚA˘÷PêˆA˘÷Pê˙A˘÷Pê˛A˘÷PêB˘÷ÓHOpÙPOp˙XOp `Op hOp pOp xOp ÄOp àOp„@ê ? êOp5 êBph òOp\ Cê÷@B0ÄB@
) –BpM PC0êC@—†C`ØATT000000003ATTO FastFrame N351N351∞ATT000000004ATTO FastFrame N352N352±ATT000000005ATTO FastFrame N311N311≤ATT000000006ATTO FastFrame N312N312¥ATT000000007ATTO FastFrame N322N322∏@ATT000000008ATTO ThunderLink N3 3102N3 3102∑@ATT000000009ATTO ThunderLink NS 3252NS 3252
Mellanox Ethernet driver (3.1.0-dev) PËvHÄ@ ËvH;@2P‰T'ÄM@2‰T'm@+P ö;ËÄ@+ ö;ËûP"ˇˇˇˇ·#Äê„ÿsÄ<‰ÈÄl‰#@à∑¡n;Ç Ÿ&C
‹vkk≈≤MÜPG∏Ì&…"÷÷ä/aÀK+dõ5”ÜÕ1
I also found the
ATTO FastFrame N322, which is a 2x25 GbE PCIe NIC. This may be the card that is used inside the ThunderLink product above. A better picture is available
here.
If so, it does look very much like the Mellanox MCX4121A-ACAT:
https://store.mellanox.com/products...25gbe-dual-port-sfp28-pcie3-0-x8-rohs-r6.html
I mean, all the components on the PCB have identical shape and placement (though I cannot read the exact writing on the small ICs).
Therefore I am almost certain that these 25+ GbE ATTO products are rebranded Mellanox (now Nvidia) products.
However, that does NOT mean that a Mellanox card will work directly with the ATTO driver. Mellanox/Nvidia does not officially supply a Mac driver (at least not from their downloads page), and it may well be that ATTO has made modifications to the firmware, just like Small Tree did with their Intel-based X520 10GbE NICs. It later did turn out that it was possible to modify standard Intel cards to be compatible with the Small Tree drivers, see
this link.
Finally, if anyone has a Mellanox MCX4xxx card and could try it with the ATTO driver and give some feedback here that would be great!
Otherwise I think if you want 25/50/100 GbE on a Mac today I think the best option price-wise is to look for a used Chelsio T6225 / T6250 / T62100 card on eBay and put in a Thunderbolt enclosure. Chelsio provides a Mac driver that is supposed to be working very well.
If you need faster than 10G but can't afford 25/50/100G switches, then it may also be worth looking into the a bit older Chelsio T580 card. This is 2x40 GbE, so using QSFP+ instead of QSFP28. That could be a great fit together with one of the relatively cheap Mikrotik switches with 40G.
(Side note: Older Chelsio S3xx/T3xx/T4xx cards should still work well in a Mac Pro with PCIe slots, but supposedly do not support Thunderbolt tunneling. I've got an old Chelsio S310E-CR that I tried putting in a Akitio Node TB2 chassis. It is detected by the driver even in Big Sur, shows up in system settings, says a cable is connected, but cannot get a link and only gets a self-assigned IP address. Setting an IP manually did not help.)
EDIT: It seems MacRumors forum member nbritton has already done some work on modifying other Mellanox cards to work on the ATTO driver
here. Nothing specifically mentioned about these 25G cards though.