Disable flow control Mellanox ConnectX 2 on boot

Started by DerKammi, November 02, 2022, 11:39:31 AM

Previous topic - Next topic
Hope someone can help me out with turning of txpause and rxpause during boot on a Mellanox ConnectX 2 NIC.

My ISP is requesting to disable txpause and rxpause if you want to run a direct fiber into your firewall. By using the following command I can disable this on both interfaces:

ifconfig mlxeno -mediaopt txpause,rxpause
ifconfig mlxen1 -mediaopt txpause,rxpause


This is verified in the ifconfig output and on the dashboard.

However I can't figure out how to make this happen during boot via either tunables or a config file.

I tried a couple of different tunables but none of them are supported after I enter them.


hw.mlx4_en.0.fc
hw.mlxen0.fc.
hw.mlxen.0.fc


Also with hw changed in dev. I tested more, don't remenber them all :)

Just to be sure, the dmesg output:

mlx4_core0: <mlx4_core> mem 0xfe900000-0xfe9fffff,0xf8000000-0xf9ffffff irq 24 at device 0.0 on pci1
mlx4_core: Mellanox ConnectX core driver v3.7.1 (November 2021)
mlx4_core: Initializing mlx4_core
mlx4_core0: Unable to determine PCI device chain minimum BW
mlx4_en mlx4_core0: Activating port:1
mlxen0: Ethernet address: 00:02:c9:5a:05:2c
mlx4_en: mlx4_core0: Port 1: Using 4 TX rings
mlxen0: link state changed to DOWN
mlx4_en: mlx4_core0: Port 1: Using 8 RX rings
mlx4_en: mlxen0: Using 4 TX rings
mlx4_en: mlxen0: Using 8 RX rings
mlx4_en: mlxen0: Initializing port
mlx4_en mlx4_core0: Activating port:2
mlxen1: Ethernet address: 00:02:c9:5a:05:2d
mlx4_en: mlx4_core0: Port 2: Using 4 TX rings
mlxen1: link state changed to DOWN
mlx4_en: mlx4_core0: Port 2: Using 8 RX rings
mlx4_en: mlxen1: Using 4 TX rings
mlx4_en: mlxen1: Using 8 RX rings
mlx4_en: mlxen1: Initializing port
mlxen0: link state changed to UP
mlxen1: link state changed to UP



Otherwise you can put a script with ifconfig commands unter /usr/local/etc/rc.syshook.d/start

Franco also mentioned individual settings for interfaces, but I haven't found them yet in the GUI.

Kind regards
Torsten

Finnaly had some time to play with the suggestions and came to the conclusion that there are no tuneables for these X2 cards in OPNSense/FreeBSD and all is done via ipconfig.

The pdf mentioned is for newer generation cards which uses a different driver.

In the end I found a pdf for de X2 cards which uses ipconfig command for rxpause,txpause settings and sysctl commands for the most other settings of the X2 cards.

https://usermanual.wiki/m/d86f82c808d6b799caa50e77b7e97b12495b5b4b89b64471678c8d9e6895eab3.pdf

So I resulted to Torsten his suggestion of using a script in /usr/local/etc/rc.syshook.d/start/99-fc


#!/bin/sh

ifconfig mlxen0 -mediaopt txpause,rxpause
ifconfig mlxen1 -mediaopt txpause,rxpause


which is working fine.

So no longer I need to enter these commands manually after boot.

Thanks for the help.