Chelsio T580 sotto pfSense: come metto una porta QSFP+ in 4x10G per un cavo breakout
Uso pfSense su un piccolo box con un Chelsio T580 e voglio che una delle porte QSFP+ alimenti quattro host 10G invece di un singolo link 40G. Il cavo breakout è ancora in viaggio, quindi preferirei avere la scheda nella modalità giusta prima che arrivi.
- box pfSense, Chelsio T580, una porta QSFP+ oggi su un DAC 40G, la seconda cage vuota
- driver cxgbe, cxgbetool disponibile dalla shell
- DAC breakout QSFP+ a 4xSFP+, OCTTAPCABLE3M (un AOC OCTCABLE5M-SR come piano di riserva)
- host 10G dal lato remoto, semplici cage SFP+
Al momento la scheda mostra sempre e solo due interfacce 40G:
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
Cosa ho già fatto:
- passato in rassegna i sottocomandi di cxgbetool cercando qualcosa che somigliasse a un'impostazione di modalità porta, non ho trovato nulla
- cercato un tunable del loader per cxgbe che dividesse la porta, anche lì nulla
- letto abbastanza da essere ragionevolmente sicuro che il cavo da solo non basti, l'adattatore deve prima essere in modalità 4x10G
Quindi lo split 40G / 4x10G è qualcosa che il driver FreeBSD può commutare, oppure vive nella configurazione dell'adattatore? E se è nella configurazione, qual è il modo supportato per cambiarla da un box basato su FreeBSD?
Comments 5
Versione breve: il driver non può farlo. Il layout delle porte viene dalla configurazione caricata nell'adattatore, ed è esattamente per questo che né cxgbe né cxgbetool espongono un cambio modalità. Lo cambi con l'utility di configurazione di Chelsio e la scheda torna con la nuova personalità.
Porta l'utility sul box (basta una chiavetta USB montata da qualche parte) ed eseguila:
Chiede quale adattatore intendi e poi quale modalità vuoi. Quella breakout è elencata come Spider (4x10G), è la voce che trasforma la porta QSFP+ in quattro lane 10G.
Su un'installazione pulita il primo avvio tende a cadere subito:
Niente di esotico, solo una libreria mancante. Installa flashrom e arriva insieme come dipendenza:
Questo porta con sé libpci 3.5.6_1, dopo di che lo script parte e il cambio modalità riporta successo.
Un avvertimento, visto che lo stai facendo prima che arrivi il cavo: tutto quello che ottieni a quel punto è l'utility che ti dice che la modalità è stata applicata. Se le quattro lane salgono davvero si dimostra solo con il cavo breakout nella cage, quindi non smontare il lato 40G della config finché non l'hai testato.
Prima di continuare a cercare leve nel driver: quale configurazione sta davvero eseguendo la scheda, e riesci a portare python2.7 su quel box? La cosa che cambia questo è un'utility Chelsio, non parte del tooling FreeBSD, e su un'installazione stock servono un paio di pezzi che non ci sono di serie.
Un'altra cosa, dato che cxgbe0 è collegato a 40G proprio adesso: c'è qualcosa che passa su quella porta che non puoi permetterti di perdere? La modalità viene dalla configurazione caricata nell'adattatore, quindi la scheda torna con una personalità diversa ed entrambe le porte spariscono mentre succede. Fallo dalla console invece che attraverso il link 40G.
Confermato, e proprio in quell'ordine. Il primo avvio è morto con
poi pkg install flashrom ha tirato dentro libpci 3.5.6_1 e lo script è partito bene. Ha elencato l'adattatore, ho scelto Spider (4x10G), e ha riportato il cambio modalità come riuscito.
Il cavo non è ancora arrivato, quindi non posso ancora dire nulla sulle quattro porte in sé. Riporterò appena OCTTAPCABLE3M sarà davvero nella cage.
Stessa idea sul silicio degli switch, con molta più cerimonia. Su un ICX 7750 la porta 40G non si divide finché il box non esce dalla modalità cut-through:
Poi togli qualsiasi configurazione dalla porta 40G e abiliti il breakout su di essa:
Dopo il secondo reload le quattro sotto-porte compaiono come 1/2/1:1 fino a 1/2/1:4 e si comportano come normali interfacce 10G indipendenti. Due reload per inserire un cavo, ma almeno è un comportamento documentato invece di una configurazione nascosta dell'adattatore che devi sapere che esiste.
Vale la pena aggiungere che la modalità è solo metà della battaglia, anche il lato remoto deve accettare il cavo in sé. Su MX204 e MX10003 un semplice DAC 40G si collegava bene sotto Junos più vecchi; una volta che i DAC 100G hanno ottenuto supporto ufficiale, quelli 40G sono silenziosamente spariti dalla lista, e oggi non sono affatto supportati su quei box. Quello che è supportato sono ottiche breakout 4x10G, QSFPP-4X10GE-LR o SFPP-4X10GE-SR, e i componenti di terze parti in genere devono essere codificati sullo SKU corrispondente prima che la porta li consideri.
Il tuo Chelsio è molto meno pignolo di una linecard da router, ma se le quattro gambe finiscono su apparati vendor, controlla cosa fa quell'apparato con un DAC breakout prima di tornare a dare la colpa alla modalità dell'adattatore.