OPNsense Netzwerkkarten-Treiber

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

OPNsense enthält Treiber für zahlreiche Netzwerkkarten. Diese Wiki Artikel zeigt, welche Treiber für welche Netzwerkkarten zum Einsatz kommen. Manche Treiber müssen manuell aktiviert werden, Informationen dazu liefert der Artikel OPNsense Chelsio Mellanox Broadcom Netzwerkkarten-Treiber aktivieren.

Treiber Versionen

Treiber Unterstützte Netzwerk-Chips/Karten Treiberversion

in OPNsense 26.1

(FreeBSD 14.3-RELEASE)

Treiberversion

in OPNsense 25.7

(FreeBSD 14.3-RELEASE)

Treiberversion

in OPNsense 25.1

(FreeBSD 14.2-RELEASE)

Treiberversion

in OPNsense 24.7

(FreeBSD 14.1-RELEASE)

Treiberversion

in OPNsense 24.1

(FreeBSD 13.2-RELEASE)

Treiberversion

in OPNsense 23.7

(FreeBSD 13.2-RELEASE)

Treiberversion

in OPNsense 23.1

(FreeBSD 13.1-RELEASE)

Treiberversion

in OPNsense 22.7

(FreeBSD 13.1-RELEASE)

Treiberversion

in OPNsense 22.1

(FreeBSD 13.0-STABLE)

Treiberversion

in OPNsense 21.7

(FreeBSD 12.1)

Treiberversion

in OPNsense 21.1

(FreeBSD 12.1)

Treiberversion

in OPNsense 20.7

(FreeBSD 12.1)

Treiberversion

in OPNsense 20.1

(FreeBSD 11.2)

bge
  • Broadcom 1Gbit, z.B.
    • H12SSL-i - BCM5720
    • H12SSW-iN - BCM5720
bnxt
  • Broadcom 10GBit, z.B.
    • H12SSL-NT/CT - BCM57416
    • H12SSW-NT - BCM57416
    • P210TP - BCM57416
  • Broadcom 25GBit, z.B.
    • X12SPZ-SPLN6F - BCM57414
    • P225P - BCM57414
230.0.133.0 (via iflib, Treiber wird automatisch aktiviert)[1] 2.20.0.1 (via iflib, Treiber wird nun automatisch aktiviert)[2] 2.20.0.1 (via iflib)[3] 1.0.0.2 (via iflib)[4]
cxgbe
  • Chelsio T4/T5/T6
em
  • Intel I219
7.6.1-k (via iflib)[5] 7.6.1-k
igb
  • Intel I210
  • Intel I211
  • Intel I350
2.5.28-fbsd (via iflib)[6] 2.5.19-fbsd (via iflib)[7] 7.6.1-k (via iflib)[5] 2.5.3-k
igc
  • Intel I225-V
  • Intel I225-LM
  • Intel I226-V
1 (via iflib)[8]

[9]

1 (via iflib)[10] (nicht unterstützt)
ix
  • Intel X520
  • Intel X550
  • Intel E610
5.0.1-k(via iflib)[11] 4.0.1-k (via iflib)[12] 4.0.1-k (via iflib)[12] 4.0.1-k (via iflib)[13] 3.2.12-k ? (war bei OPNsense 18.7)
ixl
  • Intel X700 Series
2.3.3-k (via iflib)[14] 2.3.3-k (via iflib)[15] 2.3.3-k (via iflib)[16] 2.3.3-k (via iflib)[17] 2.3.1-k (via iflib) 2.1.0-k (via iflib)[18] 1.9.9-k ?
ice
  • Intel E800 Series
1.43.3-k (via iflib)[19] 1.39.13-k (via iflib)[20] 1.37.11-k (via iflib)[21] 1.34.2-k (via iflib)[22] (nicht unterstützt)
mlx4en
  • Mellanox ConnectX-4
mlx5en
  • Mellanox ConnectX-5
re
  • Realtek
Siehe Realtek NICs in OPNsense

iflib

Iflib ist ein Framework für Netzwerkschnittstellentreiber für FreeBSD. Es wurde entwickelt, um Standard-Codeblöcke (Boilerplates) zu entfernen, die oft für moderne Netzwerkschnittstellengeräte erforderlich sind. Treiberautoren sollen sich damit auf den spezifischen Code konzentrieren können, der für ihre Hardware benötigt wird.[23]

Iflib wurde im Herbst 2017 eingeführt und bietet einen standardisierten Satz von Funktionen für die Implementierung von Netzwerktreibern. iflib unterstützt derzeit die meisten Intel-Treiber und Karten der Broadcom NetExtreme-Familie.[24]

Die Idee hinter iflib war, redundanten Code in den verschiedenen NIC-Treibern zu reduzieren, um bestimmte Kernel-Schnittstellenfunktionen zu standardisieren. Die meisten, aber nicht alle, NIC-Treiber wurden von den Herstellern umgeschrieben, um die iflib-API zu unterstützen. Die neue Bibliothek kümmert sich um Dinge wie z.B. die Anbindung von Netmap-Geräten, um den Treiberentwicklern der Hersteller diese Last abzunehmen.

Die Verwendung von iflib in FreeBSD bedeutet also, dass sich die Treiberversionen geändert haben. Die Version, die Sie in aktuellen FreeBSD-Kerneln sehen, ist also die iflib-Version des Treibers, und diese Versionsnummer stimmt meist nicht mit der neuesten Version des Treibers überein, die auf der Website des Herstellers angezeigt wird. Einige Hersteller haben eine iflib-Version ihres FreeBSD-Treibers für neuere Kernel-Versionen und eine ältere nicht-iflib-Version für ältere Kernel. Und der eigentliche Knackpunkt ist, dass bei einigen NIC-Treibern die scheinbar neuere und höhere Nummer in Wirklichkeit älterer Code ist als der, der in einer nicht-iflib-Version enthalten sein könnte.[25]

IPS Unterstützung

Eine Übersicht, welche Treiber IPS Unterstützung bieten, zeigt das folgende Spreadsheet:

Hintergrundinformation zum ixl Treiber netmap Support:

  • ixl: not working in netmap mode (Kommentar #30) (bugs.freebsd.org) I'm not surprised this works, because ixl in FreeBSD 12.x is implemented through iflib, and netmap in this case uses iflib to access the hw (and iflib must work, otherwise you would not be able to use an ixl NIC using the traditional networking tools and applications).

Weitere Informationen:

Einzelnachweise

  1. [Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 bei einem System mit eingebauter Broadcom P225P Netzwerkkarte:
    dev.bnxt.0.iflib.driver_version: 230.0.133.0
    dev.bnxt.0.%iommu: rid=0x8100
    dev.bnxt.0.%parent: pci6
    dev.bnxt.0.%pnpinfo: vendor=0x14e4 device=0x16d7 subvendor=0x14e4 subdevice=0x1402 class=0x020000
    dev.bnxt.0.%location: slot=0 function=0 dbsf=pci0:129:0:0
    dev.bnxt.0.%driver: bnxt
    
  2. [Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 bei einem System mit eingebauter Broadcom P225P Netzwerkkarte:
    dev.bnxt.0.iflib.driver_version: 2.20.0.1
    dev.bnxt.0.%domain: 0
    dev.bnxt.0.%parent: pci6
    dev.bnxt.0.%pnpinfo: vendor=0x14e4 device=0x16d7 subvendor=0x14e4 subdevice=0x1402 class=0x020000
    dev.bnxt.0.%location: slot=0 function=0 dbsf=pci0:24:0:0 handle=\_SB_.PC01.BR1A.H000
    dev.bnxt.0.%driver: bnxt
    dev.bnxt.0.%desc: Broadcom BCM57414 NetXtreme-E 10Gb/25Gb Ethernet
    
  3. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem System mit Supermicro H13SSL-NT Mainboard:
    dev.bnxt.0.iflib.driver_version: 2.20.0.1
    dev.bnxt.0.%domain: 0
    dev.bnxt.0.%parent: pci1
    dev.bnxt.0.%pnpinfo: vendor=0x14e4 device=0x16d8 subvendor=0x15d9 subdevice=0x16d8 class=0x020000
    dev.bnxt.0.%location: slot=0 function=0 dbsf=pci0:195:0:0
    dev.bnxt.0.%driver: bnxt
    
  4. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5
    dev.bnxt.0.iflib.driver_version: 1.0.0.2
    dev.bnxt.0.%parent: pci2
    dev.bnxt.0.%pnpinfo: vendor=0x14e4 device=0x16d7 subvendor=0x14e4 subdevice=0x1402 class=0x020000
    dev.bnxt.0.%location: slot=0 function=0 dbsf=pci0:194:0:0
    dev.bnxt.0.%driver: bnxt
    dev.bnxt.0.%desc: Broadcom BCM57414 NetXtreme-E 10Gb/25Gb Ethernet
    
  5. 5,0 5,1 Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem LES compact 4L mit I210:
    dev.igb.0.iflib.driver_version: 7.6.1-k
    dev.igb.0.%parent: pci1
    dev.igb.0.%pnpinfo: vendor=0x8086 device=0x157b subvendor=0x8086 subdevice=0x0000 class=0x020000
    dev.igb.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PCI0.RP01.PXSX
    dev.igb.0.%driver: igb
    dev.igb.0.%desc: Intel(R) PRO/1000 PCI-Express Network Driver
    
  6. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem LES compact 4L:
    dev.igb.0.iflib.driver_version: 2.5.28-fbsd
    dev.igb.0.%iommu: rid=0x100
    dev.igb.0.%parent: pci1
    dev.igb.0.%pnpinfo: vendor=0x8086 device=0x157b subvendor=0x8086 subdevice=0x0000 class=0x020000
    dev.igb.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PCI0.RP01.PXSX
    dev.igb.0.%driver: igb
    
  7. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem Edge 4L:
    dev.igb.0.iflib.driver_version: 2.5.19-fbsd
    dev.igb.0.%parent: pci1
    dev.igb.0.%pnpinfo: vendor=0x8086 device=0x1533 subvendor=0xffff subdevice=0x0000 class=0x020000
    dev.igb.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PCI0.RP03.PXSX
    dev.igb.0.%driver: igb
    dev.igb.0.%desc: Intel(R) I210 (Copper)
    
  8. Ausgelesen via sysctl -a | grep -E 'dev.igc.0.iflib.driver_version' -A 6 auf einem LES v4:
    dev.igc.0.iflib.driver_version: 1
    dev.igc.0.%parent: pci1
    dev.igc.0.%pnpinfo: vendor=0x8086 device=0x15f3 subvendor=0x8086 subdevice=0x0000 class=0x020000
    dev.igc.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PC00.RP01.PXSX
    dev.igc.0.%driver: igc
    dev.igc.0.%desc: Intel(R) Ethernet Controller I225-V
    dev.igc.%parent:
    
  9. Ausgelesen via sysctl -a | grep -E 'dev.igc.0.iflib.driver_version' -A 6 auf einem LES plus v4:
    dev.igc.0.iflib.driver_version: 1
    dev.igc.0.%parent: pci2
    dev.igc.0.%pnpinfo: vendor=0x8086 device=0x125c subvendor=0x8086 subdevice=0x0000 class=0x020000
    dev.igc.0.%location: slot=0 function=0 dbsf=pci0:2:0:0 handle=\_SB_.PC00.RP05.PXSX
    dev.igc.0.%driver: igc
    dev.igc.0.%desc: Intel(R) Ethernet Controller I226-V
    dev.igc.%parent:
    
  10. Ausgelesen via sysctl -a | grep -E 'dev.igc.0.iflib.driver_version' -A 6 auf einem LES network 6L:
    dev.igc.0.iflib.driver_version: 1
    dev.igc.0.%parent: pci1
    dev.igc.0.%pnpinfo: vendor=0x8086 device=0x15f3 subvendor=0x8086 subdevice=0x0000 class=0x020000
    dev.igc.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PCI0.RP05.PXSX
    dev.igc.0.%driver: igc
    dev.igc.0.%desc: Intel(R) Ethernet Controller I225-V
    dev.igc.%parent:
    
  11. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 6 auf einem System mit X520 (82599ES) Schnittstellen:
    dev.ix.0.iflib.driver_version: 5.0.1-k
    dev.ix.0.%iommu: rid=0x200
    dev.ix.0.%parent: pci2
    dev.ix.0.%pnpinfo: vendor=0x8086 device=0x10fb subvendor=0xffff subdevice=0xffff class=0x020000
    dev.ix.0.%location: slot=0 function=0 dbsf=pci0:2:0:0 handle=\_SB_.PC00.RP01.PXSX
    dev.ix.0.%driver: ix
    dev.ix.0.%desc: Intel(R) X520 82599ES (SFI/SFP+)
    
  12. 12,0 12,1 Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 6 auf einem System mit Supermicro X12SPi-TF Mainboard:
    dev.ix.0.iflib.driver_version: 4.0.1-k
    dev.ix.0.%domain: 0
    dev.ix.0.%parent: pci1
    dev.ix.0.%pnpinfo: vendor=0x8086 device=0x1563 subvendor=0x15d9 subdevice=0x1563 class=0x020000
    dev.ix.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PC00.RP01.D033
    dev.ix.0.%driver: ix
    
  13. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 6 auf einem System mit Supermicro X10SDV-TP8F Mainboard:
    dev.ix.0.iflib.driver_version: 4.0.1-k
    dev.ix.0.%parent: pci5
    dev.ix.0.%pnpinfo: vendor=0x8086 device=0x15ac subvendor=0x15d9 subdevice=0x15ac class=0x020000
    dev.ix.0.%location: slot=0 function=0 dbsf=pci0:4:0:0 handle=\_SB_.PCI0.BR2C.H000
    dev.ix.0.%driver: ix
    dev.ix.0.%desc: Intel(R) X552 (SFP+)
    
  14. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 mit Advantech FWA-3034:
    dev.ixl.0.iflib.driver_version: 2.3.3-k
    dev.ixl.0.%iommu: rid=0x200
    dev.ixl.0.%parent: pci2
    dev.ixl.0.%pnpinfo: vendor=0x8086 device=0x1572 subvendor=0x13fe subdevice=0x303d class=0x020000
    dev.ixl.0.%location: slot=0 function=0 dbsf=pci0:2:0:0 handle=\_SB_.PC00.PEG0.PEGP
    dev.ixl.0.%driver: ixl
    
  15. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 mit einem System mit Asus P13R-M/10G-2T Mainboard:
    dev.ixl.0.iflib.driver_version: 2.3.3-k
    dev.ixl.0.%iommu: rid=0x300
    dev.ixl.0.%parent: pci3
    dev.ixl.0.%pnpinfo: vendor=0x8086 device=0x15ff subvendor=0x1043 subdevice=0x0000 class=0x020000
    dev.ixl.0.%location: slot=0 function=0 dbsf=pci0:3:0:0 handle=\_SB_.PC00.RP13.PXSX
    dev.ixl.0.%driver: ixl
    
  16. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 mit einem System mit eingebauter Intel X710-T4 Netzwerkkarte:
    dev.ixl.0.iflib.driver_version: 2.3.3-k
    dev.ixl.0.%domain: 0
    dev.ixl.0.%parent: pci8
    dev.ixl.0.%pnpinfo: vendor=0x8086 device=0x15ff subvendor=0x8086 subdevice=0x0001 class=0x020000
    dev.ixl.0.%location: slot=0 function=0 dbsf=pci0:81:0:0 handle=\_SB_.PC02.BR2A.H000
    dev.ixl.0.%driver: ixl
    dev.ixl.0.%desc: Intel(R) Ethernet Controller X710 for 10GBASE-T - 2.3.3-k
    
  17. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 mit einem System mit Asus P12R-M/10G-2T Mainboard:
    dev.ixl.0.iflib.driver_version: 2.3.3-k
    dev.ixl.0.%parent: pci3
    dev.ixl.0.%pnpinfo: vendor=0x8086 device=0x15ff subvendor=0x1043 subdevice=0x0000 class=0x020000
    dev.ixl.0.%location: slot=0 function=0 dbsf=pci0:3:0:0 handle=\_SB_.PC00.RP09.D073
    dev.ixl.0.%driver: ixl
    dev.ixl.0.%desc: Intel(R) Ethernet Controller X710 for 10GBASE-T - 2.3.3-k
    
  18. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 mit einer Supermicro AOC-STG-i4S Netzwerkkarte:
    dev.ixl.0.iflib.driver_version: 2.1.0-k
    dev.ixl.0.%parent: pci20
    dev.ixl.0.%pnpinfo: vendor=0x8086 device=0x1572 subvendor=0x15d9 subdevice=0x087e class=0x020000
    dev.ixl.0.%location: slot=0 function=0 dbsf=pci0:65:0:0
    dev.ixl.0.%driver: ixl
    dev.ixl.0.%desc: Intel(R) Ethernet Controller X710 for 10GbE SFP+ - 2.1.0-k
    
  19. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 mit Advantech FWA-3034:
    dev.ice.0.iflib.driver_version: 1.43.3-k
    dev.ice.0.%iommu: rid=0x100
    dev.ice.0.%parent: pci1
    dev.ice.0.%pnpinfo: vendor=0x8086 device=0x1593 subvendor=0x13fe subdevice=0x2060 class=0x020000
    dev.ice.0.%location: slot=0 function=0 dbsf=pci0:1:0:0 handle=\_SB_.PC00.PEG1.PEGP
    dev.ice.0.%driver: ice
    
  20. Ausgelesen via sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 mit einem System mit eingebauter Intel E810-XXVDA2 Netzwerkkarte:
    dev.ice.0.iflib.driver_version: 1.39.13-k
    dev.ice.0.%domain: 0
    dev.ice.0.%parent: pci10
    dev.ice.0.%pnpinfo: vendor=0x8086 device=0x159b subvendor=0x8086 subdevice=0x0003 class=0x020000
    dev.ice.0.%location: slot=0 function=0 dbsf=pci0:138:0:0 handle=\_SB_.PC04.BR4A.H000
    dev.ice.0.%driver: ice
    dev.ice.0.%desc: Intel(R) Ethernet Network Adapter E810-XXV-2 - 1.39.13-k
    
  21. Ausgelesen via root@OPNsense:~ # sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem System mit Supermicro X12SDV-4C-SP6F Mainboard:
    dev.ice.0.iflib.driver_version: 1.37.11-k
    dev.ice.0.%domain: 0
    dev.ice.0.%parent: pci8
    dev.ice.0.%pnpinfo: vendor=0x8086 device=0x124d subvendor=0x15d9 subdevice=0x124d class=0x020000
    dev.ice.0.%location: slot=0 function=0 dbsf=pci0:244:0:0 handle=\_SB_.PC02.VP2A.CPM0
    dev.ice.0.%driver: ice
    
  22. Ausgelesen via root@OPNsense:~ # sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 auf einem System mit Supermicro X12SDV-4C-SP6F Mainboard:
    dev.ice.1.iflib.driver_version: 1.34.2-k
    dev.ice.1.%domain: 0
    dev.ice.1.%parent: pci8
    dev.ice.1.%pnpinfo: vendor=0x8086 device=0x124d subvendor=0x15d9 subdevice=0x124d class=0x020000
    dev.ice.1.%location: slot=0 function=2 dbsf=pci0:244:0:2 handle=\_SB_.PC02.VP2A.D077
    dev.ice.1.%driver: ice
    
  23. iflib Manpage (www.freebsd.org)
  24. Sam Gwydir: Improving netdump hardware support and performance with iflib - BSDCan 2018 (youtube.com)
  25. Any one know which Intel ix driver for x520 card is in the actual kernel? (forum.netgate.com)


Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.

 

Autor: Thomas Niedermeier

Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates.


Das könnte Sie auch interessieren

Broadcom Netzwerkkarten Firmware mit niccli unter OPNsense aktualisieren
Intel E610 Netzwerkkarten unter OPNsense 25.7 mit FreeBSD 14.3 nutzen
OPNsense Update