Skip to content

[1/n] [sled-agent] split early networking into its own crate#10448

Merged
sunshowers merged 4 commits into
mainfrom
sunshowers/spr/1n-sled-agent-split-early-networking-into-its-own-crate
May 15, 2026
Merged

[1/n] [sled-agent] split early networking into its own crate#10448
sunshowers merged 4 commits into
mainfrom
sunshowers/spr/1n-sled-agent-split-early-networking-into-its-own-crate

Conversation

@sunshowers
Copy link
Copy Markdown
Contributor

@sunshowers sunshowers commented May 14, 2026

Working on extending the ls-apis analysis to treat RSS separately from Sled Agent (#10318 (comment)), we realized that certain assumptions that hold for RSS (namely that the rack has a consistent version) are not upheld for early networking.

Split early networking into its own crate, and make the main omicron-sled-agent crate depend on it. (Due to #10370, RSS no longer depends on the new early networking crate.) This means that after the work to treat RSS separately, any clients depended on by the new sled-agent-early-networking crate are attributed only to Sled Agent.

Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Comment on lines +12 to +15
# XXX NOTE this is due to https://github.com/oxidecomputer/omicron/issues/9704
# This is the R17 dpd client
# dpd-client.workspace = true
dpd-client = { git = "https://github.com/oxidecomputer/dendrite", rev = "cc8e02a0800034c431c8cf96b889ea638da3d194" }
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still the status quo?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically yes. I think we could bump it up to the R18 dpd client, now that R19 is shipping? But I don't know that there's a need to do that and test it.

Comment thread sled-agent/Cargo.toml Outdated
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Comment on lines -268 to -271
// We used transparent, because `EarlyNetworkSetupError` contains a subset
// of error variants already in this type
#[error(transparent)]
EarlyNetworkSetup(#[from] EarlyNetworkSetupError),
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe #10370 made this unused, meaning that the RSS crate no longer depends on the early networking crate.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh! I didn't realize that was the only RSS use; that's great. Should we move early_networking back into sled-agent proper? (I don't have strong feelings either way - seems fine to me to leave it separate as you have on this branch.)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mild preference for just leaving it separate.

@sunshowers sunshowers requested a review from jgallagher May 15, 2026 02:06
Comment on lines +12 to +15
# XXX NOTE this is due to https://github.com/oxidecomputer/omicron/issues/9704
# This is the R17 dpd client
# dpd-client.workspace = true
dpd-client = { git = "https://github.com/oxidecomputer/dendrite", rev = "cc8e02a0800034c431c8cf96b889ea638da3d194" }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically yes. I think we could bump it up to the R18 dpd client, now that R19 is shipping? But I don't know that there's a need to do that and test it.

Comment on lines -268 to -271
// We used transparent, because `EarlyNetworkSetupError` contains a subset
// of error variants already in this type
#[error(transparent)]
EarlyNetworkSetup(#[from] EarlyNetworkSetupError),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh! I didn't realize that was the only RSS use; that's great. Should we move early_networking back into sled-agent proper? (I don't have strong feelings either way - seems fine to me to leave it separate as you have on this branch.)

@sunshowers sunshowers merged commit 17ceb72 into main May 15, 2026
18 checks passed
@sunshowers sunshowers deleted the sunshowers/spr/1n-sled-agent-split-early-networking-into-its-own-crate branch May 15, 2026 18:50
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.

2 participants