CodingBox Q&A Ask question

Dell M14MK SFP28 rifiutato su OpenWrt con no common interface modes mentre un QSFPTEK SFP+ si collega

Asked Active Viewed 92 AI translation from English
7

Piccolo lab domestico. Ho flashato un Linksys LGS328C con OpenWrt SNAPSHOT per allontanarmi dall'interfaccia web stock. Tutto è sopravvissuto al passaggio tranne una porta SFP28 che prima funzionava perfettamente.

  • switch: Linksys LGS328C (Realtek rtl930x), OpenWrt SNAPSHOT
  • modulo: Dell S28-10G-25G-SR-85C, dual-rate 10G/25G, l'EEPROM legge DELL M14MK rev A1
  • modulo di riferimento nella stessa cage: QSFPTEK QT-SFP+-SR
  • stessa fibra e stesso lato remoto in entrambi i test

Il modulo Dell viene rilevato e poi buttato fuori all'istante:

sfp sfp-p49: module DELL M14MK rev A1
rtl83xx-switch ...: unsupported SFP module: no common interface modes

# ethtool lan28
        Advertised link modes:  10000baseCR/Full
        Link detected: no

Cose che ho già controllato:

  • sostituito con il QSFPTEK SFP+ nella stessa cage: il log mostra la porta che sceglie inband/10gbase-r, e ottengo un link pulito a 10 Gbps;
  • lo stesso modulo Dell funzionava bene su questo switch con il firmware stock, quindi l'ottica non è morta;
  • riseduto e pulito il connettore, nessun cambiamento nel log.

Il modulo è davvero programmato male, oppure il driver dello switch è pignolo con un componente capace di 25G? Preferirei capire questa faccenda piuttosto che comprare semplicemente un'altra ottica.

Comments 5

Accepted answer

Quel dump spiega tutto. Il layer sfp del kernel ha esattamente un input quando deve capire quali modalità di interfaccia un modulo può gestire, e sono quei byte di compliance. Senza nessuno di essi impostato finisce con un insieme vuoto, lo interseca con quello che offre il MAC, non trova niente in comune, e stampa esattamente il messaggio che stai guardando. Il 10000baseCR/Full in ethtool è quello che resta dal lato porta, non qualcosa che il modulo ha chiesto. Il firmware stock del vendor non se ne cura, perché quelle immagini in genere saltano del tutto i byte di compliance e confrontano invece le stringhe vendor e part contro una lista hardcoded - ecco perché l'ottica funzionava prima che flashassi.

La correzione che regge davvero è un quirk per il modulo. In drivers/net/phy/sfp.c aggiungi una voce SFP_QUIRK_S che corrisponde al vendor DELL con part M14MK e forza ETHTOOL_LINK_MODE_10000baseSR_Full e PHY_INTERFACE_MODE_10GBASER, poi ricostruisci l'immagine. La porta sale come un normale link 10G che riporta 10000baseSR/Full e la riga unsupported-module sparisce dal log.

Due avvertenze. Tieni la patch in una forma che puoi mandare a netdev invece di tenertela sotto: l'EEPROM non si aggiusta da sola e altri hanno lo stesso componente Dell. E se preferisci non mantenerti dietro una build del kernel, l'alternativa noiosa è il QSFPTEK SFP+ che hai già - 10G è comunque tutto quello che questa porta ti darà.

5 United Statestxnode67US Show original (English) AI translation

Prima di dare la colpa al driver dello switch, fai il dump dell'EEPROM e guarda cosa dichiara il modulo: ethtool --module-info lan28. Posta le prime righe del dump esadecimale più l'ethtool lan28 completo. "no common interface modes" significa che il kernel non è riuscito a ricavare nemmeno una modalità utilizzabile dal modulo, quindi il contenuto di questi byte è tutta la storia qui.

Un'altra cosa da confermare: il QSFPTEK sta nella stessa cage, non in una vicina? La tua riga di log dice p49 mentre l'output di ethtool è lan28, e confondere le porte in questo tipo di test fa perdere un sacco di tempo.

3 United Statesphotonrunner70US Show original (English) AI translation

Fatto il dump. Versione breve: non c'è impostato nessun codice di compliance 10G - quei byte sono semplicemente vuoti, mentre le stringhe vendor e part sono popolate esattamente come ci si aspetterebbe per un DELL M14MK rev A1. ethtool lan28 mostra ancora Advertised link modes: 10000baseCR/Full e Link detected: no, e dmesg | grep lan25 non tira fuori nulla oltre le due righe del mio primo post.

Quindi il modulo non dice quasi niente all'host su cosa può fare davvero, e il QSFPTEK nella stessa cage sta ancora collegato a 10 Gbps.

0 South Koreawaverunner63KR Show original (English) AI translation

Vale la pena scriverlo, perché il bug report precedente su questo stesso abbinamento ipotizzava qualcosa di diverso. La teoria lì era che il modulo dual-rate annuncia 25gbase-r, il driver rtl930x non implementa quella modalità, l'intersezione viene vuota e non c'è niente di sbagliato nel modulo in sé. Il dump esadecimale demolisce quella spiegazione: il modulo non annuncia nulla, non 25G. Stesso messaggio del kernel, causa diversa, e solo il dump distingue le due cose.

È anche un promemoria che un'ottica a marchio vendor non è automaticamente codificata correttamente. Lo stesso OS10 di Dell mostra un Q28-128GFC-SW4 genuino (part KP0VM) come QSFP28 100GBASE-SR4 con Qualified false, perché alcuni lotti portano una codifica EEPROM che la sua qualificazione media non riconosce, e il link FC resta giù finché non permetti a mano i transceiver non supportati.

1 RussianetadminRU Show original (English) AI translation

Ho costruito un'immagine con la voce SFP_QUIRK_S per DELL / M14MK e fa esattamente quello che hai descritto. La porta si collega a 10 Gbps, ethtool lan28 ora riporta 10000baseSR/Full con il link up, e il log è pulito - nessuna riga unsupported-module da nessuna parte. L'ho lasciata girare con traffico reale per qualche giorno prima di toccare qualsiasi altra cosa sul box, nessun flap.

Sto ripulendo la patch adesso per mandarla a netdev, visto che tenerla nel mio albero personale non aiuta nessuno. Grazie per avermi spinto prima verso il dump di module-info, avevo passato due sere a leggere le tabelle delle modalità del driver.

2 South Koreawaverunner63KR Show original (English) AI translation
Log in to comment. Log in