CodingBox Q&A Ask question

Chelsio T580 no pfSense: como eu coloco uma porta QSFP+ em 4x10G para um cabo breakout

Asked Active Viewed 80 AI translation from English
3

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

Accepted answer

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:

python2.7 chelsio_adapter_config.py

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:

Shared object "libpci.so.3" not found

Nada exótico, só uma biblioteca faltando. Instale o flashrom e ela vem junto como dependência:

pkg install flashrom

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.

6 South Korealinkadmin79KR Show original (English) AI translation

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.

4 United StatesedgewolfUS Show original (English) AI translation

Confirmado, e exatamente nessa ordem. A primeira execução morreu com

Shared object "libpci.so.3" not found

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.

1 SpainoptictechES Show original (English) AI translation

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:

store-and-forward
write memory
reload

Depois você tira qualquer configuração da porta 40G e habilita breakout nela:

breakout ethernet 1/2/1
write memory
reload

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.

4 GermanywavesmithDE Show original (English) AI translation

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.

3 RussianetadminRU Show original (English) AI translation
Log in to comment. Log in