Chelsio T580 bajo pfSense: cómo poner un puerto QSFP+ en 4x10G para un cable de desglose
Corro pfSense en una caja pequeña con un Chelsio T580 y quiero que uno de los puertos QSFP+ alimente cuatro hosts de 10G en vez de un solo enlace de 40G. El cable de desglose todavía va de camino, así que preferiría tener la tarjeta en el modo correcto antes de que llegue.
- Caja pfSense, Chelsio T580, un puerto QSFP+ hoy sobre un DAC de 40G, la segunda jaula vacía
- driver cxgbe, cxgbetool disponible desde el shell
- DAC de desglose QSFP+ a 4xSFP+, OCTTAPCABLE3M (un AOC OCTCABLE5M-SR como plan de respaldo)
- hosts de 10G en el extremo remoto, jaulas SFP+ normales
Ahora mismo la tarjeta solo muestra dos interfaces de 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
Lo que ya hice:
- recorrí los subcomandos de cxgbetool buscando algo parecido a un ajuste de modo de puerto, no encontré nada
- busqué un tunable de loader para cxgbe que dividiera el puerto, tampoco nada
- leí lo suficiente para estar bastante seguro de que el cable por sí solo no lo hará, el adaptador tiene que estar primero en modo 4x10G
Así que ¿es la división 40G / 4x10G algo que el driver de FreeBSD pueda cambiar en absoluto, o vive en la configuración del adaptador? Y si es la configuración, ¿cuál es la forma soportada de cambiarla desde una caja basada en FreeBSD?
Comments 5
Versión corta: el driver no puede hacerlo. La disposición de puertos viene de la configuración cargada en el adaptador, que es exactamente por qué ni cxgbe ni cxgbetool exponen un cambio de modo. Lo cambias con la propia utilidad de configuración de Chelsio y la tarjeta vuelve con la nueva personalidad.
Lleva la utilidad a la caja (una memoria USB montada en algún sitio basta) y ejecútala:
Pregunta a qué adaptador te refieres y luego qué modo quieres. El de desglose aparece listado como Spider (4x10G), esa es la entrada que convierte el puerto QSFP+ en cuatro carriles de 10G.
En una instalación limpia la primera ejecución tiende a fallar directamente:
Nada exótico, solo una biblioteca faltante. Instala flashrom y viene incluida como dependencia:
Eso trae libpci 3.5.6_1 con él, tras lo cual el script arranca y el cambio de modo reporta éxito.
Una advertencia, ya que estás haciendo esto antes de que llegue el cable: todo lo que obtienes en ese momento es que la utilidad diga que el modo se aplicó. Si los cuatro carriles realmente suben solo se demuestra con el cable de desglose en la jaula, así que no desmontes el lado de 40G de la configuración hasta haberlo probado.
Antes de que sigas buscando ajustes en el driver: ¿qué configuración está corriendo realmente la tarjeta, y puedes conseguir python2.7 en esa caja? Lo que cambia esto es una utilidad de Chelsio, no parte de las herramientas de FreeBSD, y en una instalación de serie necesita un par de piezas que no vienen por defecto.
Otra cosa, dado que cxgbe0 está enlazado a 40G ahora mismo: ¿hay algo montado sobre ese puerto que no puedas permitirte tumbar? El modo viene de la configuración cargada en el adaptador, así que la tarjeta vuelve con una personalidad distinta y ambos puertos desaparecen mientras eso ocurre. Hazlo desde la consola en vez de a través del enlace de 40G.
Confirmado, y exactamente en ese orden. La primera ejecución murió con
luego pkg install flashrom trajo libpci 3.5.6_1 y el script arrancó bien. Listó el adaptador, elegí Spider (4x10G), y reportó el cambio de modo como exitoso.
El cable todavía no ha llegado, así que no puedo decir nada sobre los cuatro puertos en sí todavía. Reportaré de vuelta en cuanto el OCTTAPCABLE3M esté realmente en la jaula.
Misma idea en silicio de switch, con mucha más ceremonia. En un ICX 7750 el puerto de 40G no se divide hasta que la caja sale del modo cut-through:
Luego quitas cualquier configuración del puerto de 40G y activas el desglose en él:
Después del segundo reload los cuatro subpuertos aparecen como 1/2/1:1 hasta 1/2/1:4 y se comportan como interfaces de 10G independientes normales. Dos reloads para enchufar un cable, pero al menos es un comportamiento documentado en vez de una configuración de adaptador oculta que tienes que saber que existe.
Vale la pena añadir que el modo es solo la mitad de la batalla, el extremo remoto también tiene que aceptar el cable en sí. En MX204 y MX10003 un DAC de 40G corriente enlazaba bien bajo versiones antiguas de Junos; una vez que los DAC de 100G obtuvieron soporte oficial, los de 40G silenciosamente cayeron de la lista, y hoy no están soportados en absoluto en esas cajas. Lo que está soportado es óptica de desglose 4x10G, QSFPP-4X10GE-LR o SFPP-4X10GE-SR, y las piezas de terceros generalmente tienen que estar codificadas para el SKU correspondiente antes de que el puerto las mire siquiera.
Tu Chelsio es mucho menos exigente que una tarjeta de línea de router, pero si las cuatro patas van a caer en equipo de fabricante, comprueba qué hace ese equipo con un DAC de desglose antes de volver a culpar al modo del adaptador.