Falscher NIC-Treiber nach Update?

Started by tokade, October 25, 2020, 01:43:22 PM

Previous topic - Next topic
Hallo zusammen,

ich kämpfe immer noch mit dem Durchreichen von VFs meiner Intel i350 (SR-IOV). Nach dem Update auf opnsense 20.7.4 (vielleicht aber auch schon vorher - bin jetzt erst mal wieder dazugekommen, mich damit zu beschäftigen), benutzen die durchgereichten VFs m.E. den falschen Treiber "Intel(R) PRO/1000 PCI-Express Network Driver" anstelle des igbvf:

igb1: <Intel(R) PRO/1000 PCI-Express Network Driver> mem 0xf5194000-0xf5197fff,0xf5198000-0xf519bfff at device 6.0 on pci0
igb1: Using 2048 TX descriptors and 2048 RX descriptors
igb1: Using 1 RX queues 1 TX queues
igb1: Using MSI-X interrupts with 2 vectors
igb1: Ethernet address: 00:16:3e:a0:16:f0
igb1: link state changed to UP
igb1: netmap queues/slots: TX 1/2048, RX 1/2048
igb2: <Intel(R) PRO/1000 PCI-Express Network Driver> mem 0xf519c000-0xf519ffff,0xf51a0000-0xf51a3fff at device 7.0 on pci0
igb2: Using 2048 TX descriptors and 2048 RX descriptors
igb2: Using 1 RX queues 1 TX queues
igb2: Using MSI-X interrupts with 2 vectors
igb2: Ethernet address: 00:16:3e:a0:16:f1
igb2: link state changed to UP
igb2: netmap queues/slots: TX 1/2048, RX 1/2048
igb3: <Intel(R) PRO/1000 PCI-Express Network Driver> mem 0xf51a4000-0xf51a7fff,0xf51a8000-0xf51abfff at device 8.0 on pci0
igb3: Using 2048 TX descriptors and 2048 RX descriptors
igb3: Using 1 RX queues 1 TX queues
igb3: Using MSI-X interrupts with 2 vectors
igb3: Ethernet address: 00:16:3e:a0:16:f2
igb3: link state changed to UP
igb3: netmap queues/slots: TX 1/2048, RX 1/2048


pciconf zeigt aber, dass es sich um "I350 Ethernet Controller Virtual Function" z.B. igb1 handelt:
igb1@pci0:0:6:0:        class=0x020000 card=0x00018086 chip=0x15208086 rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'I350 Ethernet Controller Virtual Function'
    class      = network
    subclass   = ethernet
    bar   [10] = type Prefetchable Memory, range 64, base 0xf5194000, size 16384, enabled
    bar   [1c] = type Prefetchable Memory, range 64, base 0xf5198000, size 16384, enabled
    cap 11[70] = MSI-X supports 3 messages, enabled
                 Table in map 0x1c[0x0], PBA in map 0x1c[0x2000]
    cap 10[a0] = PCI-Express 2 endpoint max data 128(512) RO NS
                 link x0(x4) speed 0.0(5.0) ASPM disabled(L0s/L1)


Wie kann ich es erreichen, dass der igbvf Treiber verwendet wird? Muss ich dazu im Host (Ubuntu 20.04 mit Xen 4.11) oder in der opnsense VM etwas anderes einstellen?

Beste Grüße
Torsten

ich verstehe nicht was du mit durchreichen meinst.
ich installiere bei mir die sense und fertig, da muss ich nichts durchreichen.
Internet: Willy.tel Down: 1Gbit/s, UP: 250Mbit/s Glasfaser  |
Router/Firewall: pfSense+ 23.09  |
Hardware: Netgate 6100

opnsense läuft beim mir als VM unter xen (Ubuntu 20.04 mit Xen 4.11) - steht aber auch schon im Thread

Die Intel i350 4-port Karte kann SR-IOV, sodass man jeder VM eine eigene virtuelle Netzwerkkarte durchreichen kann (pci passthrough).

Dabei gab es in der Vergangenheit ein merkwürdiges Verhalten mit VLAN auf dieser virtuellen Netzwerkkarte, die den Intel igbvf Treiber im Gast (opnsense) verwendet.

So wie es aber mit der neusten Version opnsense aussieht, wird der igbvf Treiber nicht verwendet.

Also ich habe davon in deinem ersten Post nicht gelesen von Virtualisierungssoftware oder vm


Gesendet von iPad mit Tapatalk Pro
Internet: Willy.tel Down: 1Gbit/s, UP: 250Mbit/s Glasfaser  |
Router/Firewall: pfSense+ 23.09  |
Hardware: Netgate 6100

Um zu beurteilen, ob der Treiber "falsch" ist müsste man sich jetzt die FreeBSD 12.1 Release Notes und ggf. den Source hernehmen. Z.B. wurden beim Wechsel von 11 auf 12 der em(4) und der igb(4) Treiber zusammengelegt, so dass jetzt nur noch ein Treiber mit beiden Hardwarevarianten arbeitet.
Trotzdem wird natürlich die ältere Netzwerkkarte nach wie vor als "emX" aktiviert, sonst würden ja reihenweise Maschinen weltweit nach dem Reboot nicht mehr hochkommen.

Unter Umständen ist Dein SR-IOV Interface jetzt auch mit in dem "Grand Unified Driver". Dazu müsste man aber bei FreeBSD recherchieren, das ist kein spezifisches OPNsense-Thema ...

Gruß
Patrick
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Hallo Patrick,

danke für den Hinweis. Also eine größere Änderung an den Treibern durch die FreeBSD 12.1 Version. Dann muss ich versuchen herauszufinden, ob SR-IOV bzw. die VF Funktionen unterstützt werden und ob das VLAN Problem dann behoben ist.

Bis dahin werde ich dann weiter je eine bridge pro Netz aus der dom0 durchreichen.

Gruß
Torsten

Ein Hinweis noch: mach innerhalb der OPNsense auf jeden Fall erstmal alle Hardware-Features der Netzwerkkarten aus. TSO, VLAN-Tagging, ... die machen tatsächlich immer wieder Probleme, speziell mit Bridging (innerhalb vom FreeBSD) oder NAT. Letztendlich sind diese Features aber auch nicht sinnvoll, wenn der (virtuelle) Host, Router oder Bridge ist und nicht Ziel der TCP-Session.

Langer Rede kurzer Sinn: mach's aus ;)

Gruß
Patrick
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)