Chelsio T580 no pfSense: como eu coloco uma porta QSFP+ em 4x10G para um cabo breakout
Rodo pfSense numa caixa pequena com um Chelsio T580 e quero uma das portas QSFP+ alimentando quatro hosts 10G em vez de um único link 40G. O cabo breakout ainda está a caminho, então eu preferia ter a placa no modo certo antes dele chegar.
- caixa pfSense, Chelsio T580, uma porta QSFP+ hoje sentada num DAC 40G, a segunda gaiola vazia
- driver cxgbe, cxgbetool disponível pelo shell
- DAC breakout QSFP+ para 4xSFP+, OCTTAPCABLE3M (um AOC OCTCABLE5M-SR como plano B)
- hosts 10G na outra ponta, gaiolas SFP+ comuns
Agora mesmo a placa só mostra duas interfaces 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
O que já fiz:
- percorri os subcomandos do cxgbetool procurando por algo parecido com uma configuração de modo de porta, não achei nada
- procurei um tunable de loader para o cxgbe que dividisse a porta, também nada
- li o suficiente para ter bastante certeza de que o cabo sozinho não vai fazer isso, o adaptador precisa estar em modo 4x10G primeiro
Então a divisão 40G / 4x10G é algo que o driver do FreeBSD consegue alternar, ou isso mora na configuração do adaptador? E se for a configuração, qual é o jeito suportado de mudar isso a partir de uma caixa baseada em FreeBSD?
Comments 5
Versão curta: o driver não consegue fazer isso. O layout da porta vem da configuração carregada no adaptador, e é exatamente por isso que nem o cxgbe nem o cxgbetool expõem uma troca de modo. Você muda isso com o utilitário de configuração da própria Chelsio e a placa volta na nova personalidade.
Coloque o utilitário na caixa (um pendrive montado em algum lugar já basta) e rode:
Ele pergunta qual adaptador você quer dizer e depois qual modo você quer. O de breakout está listado como Spider (4x10G), essa é a entrada que transforma a porta QSFP+ em quatro lanes de 10G.
Numa instalação limpa a primeira execução costuma cair direto:
Nada exótico, só uma biblioteca faltando. Instale o flashrom e ela vem junto como dependência:
Isso traz o libpci 3.5.6_1 junto, depois disso o script inicia e a troca de modo reporta sucesso.
Uma ressalva, já que você está fazendo isso antes do cabo chegar: tudo que você tem nesse ponto é o utilitário dizendo que o modo foi aplicado. Se as quatro lanes realmente sobem só se prova com o cabo breakout na gaiola, então não desmonte o lado 40G da config antes de testar.
Antes de continuar caçando chaves de driver: qual configuração a placa está realmente rodando, e você consegue colocar python2.7 nessa caixa? A coisa que muda isso é um utilitário da Chelsio, não faz parte do ferramental do FreeBSD, e numa instalação padrão precisa de algumas peças que não vêm de fábrica.
Mais uma coisa, já que a cxgbe0 está linkada em 40G agora: tem alguma coisa rodando nessa porta que você não pode se dar ao luxo de derrubar? O modo vem da configuração carregada no adaptador, então a placa volta numa personalidade diferente e as duas portas somem enquanto isso acontece. Faça pelo console, não através do link 40G.
Confirmado, e exatamente nessa ordem. A primeira execução morreu com
depois o pkg install flashrom puxou o libpci 3.5.6_1 e o script subiu numa boa. Ele listou o adaptador, escolhi Spider (4x10G), e reportou a troca de modo como bem-sucedida.
O cabo ainda não chegou, então não posso dizer nada sobre as quatro portas em si ainda. Reporto de volta assim que o OCTTAPCABLE3M estiver de fato na gaiola.
Mesma ideia no silício do switch, com bem mais cerimônia. Num ICX 7750 a porta 40G não divide até a caixa sair do modo cut-through:
Depois você tira qualquer configuração da porta 40G e habilita breakout nela:
Depois do segundo reload as quatro subportas aparecem como 1/2/1:1 até 1/2/1:4 e se comportam como interfaces 10G independentes comuns. Dois reloads para plugar um cabo, mas pelo menos é comportamento documentado, não uma configuração escondida do adaptador que você precisa saber que existe.
Vale acrescentar que o modo é só metade da batalha, a outra ponta também precisa aceitar o cabo em si. No MX204 e no MX10003, um DAC 40G comum linkava bem sob Junos mais antigo; assim que os DACs 100G ganharam suporte oficial, os 40G silenciosamente saíram da lista, e hoje não são suportados nessas caixas de jeito nenhum. O que é suportado é óptica breakout 4x10G, QSFPP-4X10GE-LR ou SFPP-4X10GE-SR, e peças de terceiros geralmente têm que ser codificadas para o SKU correspondente antes da porta sequer olhar para elas.
Seu Chelsio é bem menos exigente do que uma linecard de roteador, mas se as quatro pernas vão cair em equipamento de fabricante, confira o que esse equipamento faz com um DAC breakout antes de voltar a culpar o modo do adaptador.