Skip to content

Add Sidecar image for Reverso#2401

Open
hawkw wants to merge 9 commits intomasterfrom
mkeeter/sidecar-reverso
Open

Add Sidecar image for Reverso#2401
hawkw wants to merge 9 commits intomasterfrom
mkeeter/sidecar-reverso

Conversation

@hawkw
Copy link
Member

@hawkw hawkw commented Feb 24, 2026

Note

This is just @mkeeter's PR #2226, but rebased onto the latest master, since it turns out we actually do need this. I had wanted to just re-open Matt's original PR but github would not let me do this for some kind of reason I really don't fully understand. Anyway, heeeeeere's Matt Keeeeeeeterrrr!!!

"Reverso" is a board with the same form factor as a Gimlet which loops back the two backplane connectors.

In this configuration, packets leaving the VSC7448 destined for SP i instead arrive at the peer Sidecar, appearing to have originated at SP i.

In the unlocked VLAN configuration, this is a problem: packets can arrive at one tech port and emerge from the other tech port, which creates a routing loop. When this happens, our CM's network unceremoniously turns off the offending network port, and we have to manually get it re-enabled.

This PR adds a VlanTargets parameter to unlock-related code:

  • VlanTargets::EverySp is our existing behavior, where the technician port can communicate with every cubby
  • VlanTargets::ScrimletOnly limits technician ports to only communicate with Scrimlet cubbies, which are guaranteed to be populated

By preventing the technician port from talking to cubbies with Reverso installed, we can avoid network loops.

The switch zone in the scrimlet can still communicate with every cubby; indeed, this is how we expect to test connectivity with Reverso installed.

@hawkw
Copy link
Member Author

hawkw commented Feb 24, 2026

The CI build is now broken since the medusa BSP now also uses configure_sidecar_vlan_unlocked, which Matt added an argument to. I'll fix that. But, the sidecar images should still be useable in the interim.

I'm *pretty* sure it's fine to just put back the original behavior on
Medusa, since Medusa just tests the front-IO board in isolation, and
thus there wouldn't ever be a situation where it would encounter a
looped-back backplane connector since Those Don't Exist When You're Just
A Front IO Board. But I'll ask a person who actually knows about such
things to be sure.
@hawkw
Copy link
Member Author

hawkw commented Feb 24, 2026

Per https://github.com/oxidecomputer/mfg/issues/38#issuecomment-3955324142, this has been confirmed to fix the Reverso situation at the CM. So we should probably try to merge this now.

@jclulow
Copy link
Contributor

jclulow commented Feb 25, 2026

I haven't looked closely at this, but I have a high level question: is the new "-reverso" sidecar image variant the same as "-dev" images? Viz., including all the udprpc remote debug stuff, etc. it seems like it would be good for that to be the case, given we're in a very debug test rack situation at all times.

@Aaron-Hartwig
Copy link
Contributor

I haven't looked closely at this, but I have a high level question: is the new "-reverso" sidecar image variant the same as "-dev" images? Viz., including all the udprpc remote debug stuff, etc. it seems like it would be good for that to be the case, given we're in a very debug test rack situation at all times.

Yes it inherits the -dev flavored TOML!

@labbott
Copy link
Collaborator

labbott commented Feb 27, 2026

This LGTM, has this change been tested on a regular sidecar just to extra special make sure we haven't broken the existing behavior?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants