Linkspeed-Konfiguration von Broadcom Netzwerkkarten

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Bei der Einbindung von Broadcom Netzwerkkarten in Linux Distributionen kann die Verbindungsgeschwindigkeit (Linkspeed) vom erwarteten Wert abweichen. Dieser lässt sich nachträglich mithilfe der Firmware Utility bnxtnvm konfigurieren.

Dieser Artikel beschreibt die Prüfung und Konfiguration der Linkspeeds mithilfe von bnxtnvm.

Prüfung der Verbindungsgeschwindigkeit

Aufgrund des Mischbetriebs von unterschiedlichen Linkspeeds können einzelne Ports außer Funktion gesetzt sein. Im Produktivbetrieb macht sich das durch fehlende Verbindungen und/oder eine geringere Geschwindigkeit im Netzwerk bemerkbar, z.B. bei Betrieb eines Server-Clusters mit Mesh-Verkabelung.

Hinweis: Beachten Sie dazu die Kompatibilität der Linkspeeds. Bestimmte Broadcomkarten unterstützen keinen oder nur bestimmte Mischbetriebe.

Hier ein Beispiel für eine fehlerhafte Ausgabe:

root@PMX1:~# ethtool enp67s0f0np0 
Settings for enp67s0f0np0:
       Supported ports: [ FIBRE ]
       Supported link modes:   10000baseT/Full
                               25000baseCR/Full
       Supported pause frame use: Symmetric Receive-only
       Supports auto-negotiation: Yes
       Supported FEC modes: RS  BASER
       Advertised link modes:  10000baseT/Full
       Advertised pause frame use: No
       Advertised auto-negotiation: Yes
       Advertised FEC modes: RS         BASER
       Speed: 10000Mb/s
       Duplex: Full
       Auto-negotiation: on
       Port: Direct Attach Copper
       PHYAD: 0
       Transceiver: internal
       Supports Wake-on: g
       Wake-on: d
       Current message level: 0x00002081 (8321)
                              drv tx_err hw
       Link detected: yes

Unter "Advertised link modes" wird nur eine Geschwindigkeit angezeigt (10 Gb/s), obwohl die Netzwerkkarte auf 25 Gb/s laufen könnte.

Linkspeed Konfiguration mit bnxtnvm

Hinweis: Im Falle einer Mesh-Verkabelung ist es unter Umständen notwendig, dass Sie die Direktverkabelung der zu konfigurierenden Systeme vor Beginn der Konfiguration trennen. Die anderen Systeme können untereinander verkabelt bleiben.

Um die gewünschte und volle Funktionalität der Netzwerkkarten zu erreichen, müssen Sie die Netzwerkkarten mithilfe von bnxtnvm zur Nutzung der gewünschten Geschwindigkeit zwingen.

bnxtnvm können Sie im Thomas-Krenn Downloadsbereich für Ihre Windows-Systeme herunterladen oder durch folgende Befehle auf Ihren Linux-Systemen nutzen:

wget https://www.thomaskrenn.com/redx/tools/mb_download.php/ct.YuuHGw/mid.y9b3b4ba2bf7ab3b8/bnxtnvm.zip &&
unzip bnxtnvm.zip &&
chmod +x bnxtnvm

Anschließend müssen sie eine Reihe von Befehlen absetzen, um Ihr System auf die gewünschte Geschwindigkeit anzupassen:

Auslesen konfigurierbarer Geschwindigkeiten

Im ersten Schritt werden die Linkspeed-IDs des Treibers der Netzwerkkarte benötigt:

./bnxtnvm  -dev=enp67s0f0np0 optionhelp=drv_link_speed

Ausgabe:

Name                   : drv_link_speed
Description            : Driver Link speed
Option Type            : Multi Instance Type
Max Instance Indexes   : 0 to 15
Valid values           :
  0 (Autoneg)
  1 (1G)
  2 (10G)
  3 (25G)
  4 (40G)
  5 (50G)
  6 (100G)
  7 (200G_PAM4)
  8 (50G_PAM4)
  9 (100G_PAM4)
  14 (5G)
  15 (100M)

Die Linkspeed-ID wird für die Erzwingung der gewünschten Verbindungsgeschwindigkeit benötigt.

Konfiguration des Linkspeeds

Die Verbindungsgeschwindigkeit wird jetzt mithilfe der Linkspeed-ID gesetzt:

./bnxtnvm -dev=enp67s0f0np0 setoption=drv_link_speed:0#3

./bnxtnvm -dev=enp67s0f0np0 setoption=firmware_link_speed_d0:0#3

./bnxtnvm -dev=enp67s0f0np0 setoption=firmware_link_speed_d3:0#3

Zur Erläuterung der Befehle:

Interface-ID Option Port Linkspeed-ID
enp67s0f0np0 drv_link_speed 0 3
enp67s0f0np0 firmware_link_speed_d0 0 3
enp67s0f0np0 firmware_link_speed_d3 0 3

Der drv_link_speed, firmware_link_speed_d0 & firmware_link_speed_d3 müssen für alle Ports gesetzt werden.

Die Werte entsprechen der Port-Anzahl der verwendeten Netzwerkkarte (z.B.: 0, 1, 2 und 3 bei einer Netzwerkkarte mit 4 Netzwerkports).

Mit der Linkspeed-ID "3" wird eine Geschwindigkeit von 25 Gb/s erzwungen.

Man erhält folgende Ausgabe nach Durchführung des Befehls:

root@PMX1:~# ./bnxtnvm  -dev=enp67s0f0np0 setoption=drv_link_speed:0#3
drv_link_speed is set successfully
Please reboot the system to apply the configuration

Nach Eingabe der Befehle für alle Ports ist ein Reboot des Systems notwendig.

Verifizierung der Änderungen

Führen Sie folgenden Befehl aus um den Status zu prüfen:

./bnxtnvm -dev=enp67s0f0np0 device_info

Die Konfiguration wurde korrekt durchgeführt, wenn der FW Image Status den Wert Operational ausgibt:

root@PMX1:~# ./bnxtnvm -dev=enp67s0f0np0 device_info

Device Interface Name       : enp67s0f0np0
MACAddress                  : bc:97:e1:da:92:a0
Base MACAddress             : BC:97:E1:DA:92:A0
Device Serial Number        : P425G214400143FV
Chip Number                 : BCM57504
Part Number                 : BCM957504-P425G
Description                 : Broadcom NetXtreme-E Quad-port 25Gb Ethernet PCIe Adapter
PCI Vendor Id               : 14e4
PCI Device Id               : 1750
PCI Subsys Vendor Id        : 14e4
PCI Subsys Device Id        : 2100
PCI Device Name             : 0000:01:00.0
Adapter Rev                 : 11
Active Package version      : 224.1.102.0
Package version on NVM      : 224.1.102.0
Firmware version            : 224.0.159.0
Active NVM config version   : 0.0.34
NVM config version          : 0.0.34
Firmware Reset Counter      : 0
Error Recovery Counter      : 0
Crash Dump Timestamp        : N/A
Reboot Required             : No
Secure Boot                 : Enabled
Secure Firmware Update      : Enabled
FW Image Status                              : Operational
Crash Dump Available in DDR : False

Ist das nicht der Fall, muss zusätzlich die Firmware der Netzwerkkarte synchronisiert werden.

Firmware Sync

Durch die Synchronisation der Firmware wird der eingetragene Link Speed übernommen:

./bnxtnvm -dev=enp67s0f0np0 fw_sync

Kontrolle mithilfe von ethtool

Die erfolgreiche Konfiguration kann jetzt mit dem ethtool überprüft werden:

root@PMX1:~# ethtool enp67f0np0 
Settings for enp67f0np0:
       Supported ports: [ FIBRE ]
       Supported link modes:   10000baseT/Full
                               25000baseCR/Full
       Supported pause frame use: Symmetric Receive-only
       Supports auto-negotiation: Yes
       Supported FEC modes: RS  BASER
       Advertised link modes:  25000baseCR/Full
       Advertised pause frame use: No
       Advertised auto-negotiation: Yes
       Advertised FEC modes: RS         BASER
       Speed: 25000Mb/s
       Duplex: Full
       Auto-negotiation: on
       Port: Direct Attach Copper
       PHYAD: 0
       Transceiver: internal
       Supports Wake-on: g
       Wake-on: d
       Current message level: 0x00002081 (8321)
                              drv tx_err hw
       Link detected: yes


Foto Niklas Pauli.jpg

Autor: Niklas Pauli

Niklas Pauli arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte am Gymnasium Freyung seine Allgemeine Hochschulreife und ist seit 2021 als Azubi zum Fachinformatiker für Systemintegration bei Thomas-Krenn beschäftigt. Dabei beschäftigt sich Herr Pauli unter anderem mit Proxmox Virtualisierung oder dem Thomas-Krenn-Wiki.

Icon-LinkedIn.png

Das könnte Sie auch interessieren

BNXT NVM - failed to get mac address
Broadcom NICCLI Configuration Utility
Firmware Update Broadcom Netzwerkkarte