Dendrite could take more responsibility over resetting modules
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- rust
- Área
- embedded-iot, networking
Línea de trabajo
Comienza siguiendo los mensajes ExtendedStatus y el flujo de restablecimiento de módulos en Dendrite y en el crate transceiver-control. Después, inspecciona el código de FPGA relacionado y las interfaces de Hubris mencionadas en la issue. El trabajo estará terminado cuando los módulos detectados recientemente puedan ocultarse, restablecerse por completo, volver a mostrarse y confirmarse, de modo que la FPGA borre su bit new.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We've been debugging some frustrating issues with transceivers in our manufacturing pipeline. We generally attempt to bring up all the links at once, and then go through various, mostly-manual steps when that fails. We often look at the Tofino software state machines, optical power, or BER counters, and then use that to diagnose the issue.
This process doesn't work very well. We have limited visibility into what the Tofino SDE is actually doing: what requests has it made, what state does it think the modules are in, what is it waiting for before moving on? We can capture all the messages we send to the SP about the transceivers on its behalf, but that's usually hard to sift through or interpret. At the same time, we have debugged and fixed numerous issues in the past around the SDE's state machines. In general, the machines only go forward. They also never attempt to verify that the state of the module matches the state the software expects. It asks for something to happen, checks the return code, and then assumes the module is still that way forever.
The only exception to this is when a module is physically unplugged. At that point, the SDE resets its state machines entirely and starts over. For many of these manufacturing issues, this is the only reliable way to fix them. @Aaron-Hartwig and I feel that we should consider adding some machinery in both Dendrite, the transceiver-control crate, and the front I/O FPGA board to more cleanly reset modules in some circumstances.
@Aaron-Hartwig suggested adding some bits in the FPGA to track whether a module is "new". This would be set for each module if the presence pin changes state. Dendrite could receive this in the extra space in the ExtendedStatus messages. When it finds new modules, it goes through a complete reset process: hide them from the Tofino SDE, fully reset them, and then unhide them. It can also ACK to the SP that it has handled these, so the FPGA can clear the "new" bit.
This doesn't cover every case, or even most. But it does let us physically unplug the module, and be sure that it will be fully reset and handled from the beginning of the SDE state machines when it is reinserted.
This is a Dendrite issue because it's the brains of this operation, but there's work in the FPGA code, Hubris, and the transceiver-control crate as well.
- Lenguaje dominante
- Rust
- Estrellas
- 21
- Forks
- 3
- Merge medio
- 8 h 29 min
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de oxidecomputer/dendrite
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
oxidecomputer/dendrite#380 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
oxidecomputer/dendrite#375 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
oxidecomputer/dendrite#369 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
oxidecomputer/dendrite#368 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
oxidecomputer/dendrite#359 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de oxidecomputer/dendrite
Issues similares
-
backend::vllm diffusion multimodal
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
lambdaclass/ethrex#7329 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
shadowsocks/shadowsocks-rust#2186 · 1 comentario ·
-
[Chore]: Inconsistent wasm-pack binary invocation in justfile breaks cross-platform executionAbiertoC-bug S-awaiting-triage
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
juspay/hyperswitch#14479 ·
Los mantenedores suelen responder en 1 día