Chelsio T580 onder pfSense: hoe zet ik een QSFP+-poort in 4x10G voor een breakoutkabel
Ik draai pfSense op een klein doosje met een Chelsio T580 en ik wil een van de QSFP+-poorten vier 10G-hosts laten voeden in plaats van één enkele 40G-link. De breakoutkabel is nog onderweg, dus ik zou de kaart liever al in de juiste modus hebben voordat hij aankomt.
- pfSense-doosje, Chelsio T580, één QSFP+-poort draait vandaag op een 40G-DAC, de tweede cage leeg
- cxgbe-driver, cxgbetool beschikbaar vanuit de shell
- QSFP+-naar-4xSFP+-breakout-DAC, OCTTAPCABLE3M (een OCTCABLE5M-SR AOC als back-upplan)
- 10G-hosts aan de andere kant, gewone SFP+-cages
Op dit moment toont de kaart alleen maar twee 40G-interfaces:
cxgbe0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 9000
media: Ethernet 40Gbase-CR4 <full-duplex>
cxgbe1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
media: Ethernet autoselect
status: no carrier
Wat ik al heb gedaan:
- de cxgbetool-subcommando's doorgelopen op zoek naar iets dat op een port-mode-instelling lijkt, niets gevonden
- gezocht naar een loader-tunable voor cxgbe die de poort zou splitsen, ook niets
- genoeg gelezen om er redelijk zeker van te zijn dat de kabel alleen het niet doet, de adapter moet eerst in 4x10G-modus staan
Is de 40G/4x10G-splitsing dus iets dat de FreeBSD-driver kan omschakelen, of zit het in de adapterconfiguratie? En als het de configuratie is, wat is de ondersteunde manier om dat te wijzigen vanaf een op FreeBSD gebaseerde doos?
Comments 5
Korte versie: de driver kan het niet. De poortindeling komt uit de configuratie die op de adapter geladen is, en precies daarom heeft noch cxgbe noch cxgbetool een mode-switch. Je wijzigt het met Chelsio's eigen configuratietool en de kaart komt terug in de nieuwe personality.
Zet de tool op de doos (een gemount USB-stickje is genoeg) en voer hem uit:
Hij vraagt welke adapter je bedoelt en daarna welke modus je wilt. De breakoutoptie staat vermeld als Spider (4x10G), dat is de entry die de QSFP+-poort in vier 10G-lanes verandert.
Op een schone installatie valt de eerste run meestal meteen om:
Niets exotisch, gewoon een ontbrekende library. Installeer flashrom en die komt als dependency mee:
Dat brengt libpci 3.5.6_1 mee, waarna het script start en de moduswijziging succes meldt.
Eén kanttekening, aangezien je dit doet voordat de kabel aankomt: op dat moment krijg je alleen te horen dat de modus is toegepast. Of de vier lanes ook echt opkomen, wordt pas bewezen met de breakoutkabel in de cage, dus breek de 40G-kant van de configuratie niet af voordat je het getest hebt.
Voordat je verder gaat zoeken naar driver-knoppen: welke configuratie draait de kaart eigenlijk, en kun je python2.7 op die doos krijgen? Wat dit verandert is een Chelsio-tool, geen onderdeel van de FreeBSD-tooling, en op een standaardinstallatie mist die een paar stukken die er niet standaard bij zitten.
Nog iets, aangezien cxgbe0 nu op 40G gelinkt is: draait er iets op die poort dat je je niet kunt veroorloven te verliezen? De modus komt uit de configuratie die op de adapter geladen is, dus de kaart komt terug in een andere personality en beide poorten verdwijnen terwijl dat gebeurt. Doe het vanaf de console in plaats van via de 40G-link.
Bevestigd, en in precies die volgorde. De eerste run stierf met
daarna trok pkg install flashrom libpci 3.5.6_1 binnen en startte het script prima. Het toonde de adapter, ik koos Spider (4x10G), en het meldde de moduswijziging als geslaagd.
De kabel is er nog steeds niet, dus over de vier poorten zelf kan ik nog niets zeggen. Ik meld me terug zodra OCTTAPCABLE3M daadwerkelijk in de cage zit.
Zelfde idee op switch-silicium, met een stuk meer ceremonie. Op een ICX 7750 splitst de 40G-poort niet totdat de doos uit cut-through-modus is:
Daarna strip je alle configuratie van de 40G-poort en schakel je er breakout op in:
Na de tweede reload verschijnen de vier subpoorten als 1/2/1:1 tot en met 1/2/1:4 en gedragen ze zich als gewone onafhankelijke 10G-interfaces. Twee reloads om één kabel in te pluggen, maar het is tenminste gedocumenteerd gedrag in plaats van een verborgen adapterconfiguratie waarvan je moet weten dat die bestaat.
De moeite waard om toe te voegen dat de modus maar het halve verhaal is, de andere kant moet de kabel zelf ook accepteren. Op MX204 en MX10003 linkte een gewone 40G-DAC prima onder oudere Junos; zodra 100G-DAC's officiële ondersteuning kregen, vielen de 40G-varianten stilletjes van de lijst, en tegenwoordig worden ze op die dozen helemaal niet meer ondersteund. Wat wel ondersteund wordt is 4x10G-breakoutoptiek, QSFPP-4X10GE-LR of SFPP-4X10GE-SR, en onderdelen van derden moeten meestal gecodeerd zijn naar het passende SKU voordat de poort ernaar kijkt.
Jouw Chelsio is een stuk minder kieskeurig dan een routerlinecard, maar als de vier benen op vendorapparatuur landen, check dan wat die apparatuur met een breakout-DAC doet voordat je de adaptermodus weer de schuld geeft.