Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Want `swadm` subcommand for simulating physically reseating a transceiver

Aperta
#351 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 5 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
30/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Attiva
Stack tecnologico
rust

Direzione di ricerca

Inizia tracciando le operazioni esistenti swadm sp xcvr reset e della modalità di gestione, insieme al comportamento di riconciliazione di sled-agent descritto qui. Determina se un sottocomando swadm e/o la Dendrite API possono eseguire in modo affidabile la sequenza di reinserimento elencata; il lavoro è completato quando i link e lo stato del modulo sono ripristinati senza operazioni API in conflitto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

In some situations, we'd like to "fully reset" a transceiver. As an example, the Tofino software sometimes fails to fully power up a module. We haven't seen this much for a while, but we did just have another, similar situation at a customer site. In this case, we were also running Omicron's rack-setup process, which means the sled-agent is continually attempting to construct the links we've configured.

This complicates things. swadm sp xcvr reset will fail if the module is in automatic mode, but setting it to manual with swam sp xcvr set-management-mode manual will fail if there are extant links. One could instead use the lower-level xcvradm tool to reset the module, but that's out of band, and the Tofino doesn't reliably restart its module state machines.

We should add a subcommand to swadm and possibly a new Dendrite API, for fully effecting this kind of simulated reseat. It's a little tricky in light of the sled-agent reconciliation mentioned above, but this would essentially do:

  • probably set some bit to prevent API operations on the module
  • store the parameters for all the links on the port
  • delete all the links
  • set the module into management mode
  • reset the module
  • set the module into auto mode
  • recreate all the links
  • unset the bit from the top

I'm not convinced this could be done reliably, but it's worth pursuing. We often have physical access

Lingua principale
Rust
Stelle
20
Fork
3
Merge medio
8h 29m
PR unite (30g)
2

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di oxidecomputer/dendrite

Tutte le issue di oxidecomputer/dendrite

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.