Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updates for tunnel routing #3859

Merged
merged 3 commits into from
Jan 24, 2024
Merged

updates for tunnel routing #3859

merged 3 commits into from
Jan 24, 2024

Conversation

rcgoodfellow
Copy link
Contributor

@rcgoodfellow rcgoodfellow commented Aug 9, 2023

Up until now, we've advertised a hard-coded boundary services address fd00:99::1 from each sidecar to all the gimlets. Effectively creating an anycast tunnel endpoint for geneve packets to be decapsulated and transit to upstream networks. That's problematic if a given sidecar is not a viable tunnel endpoint for any packet destined for external networks. This PR changes that to conform to the model of RFD 404.

Omicron no longer manages boundary services tunnel endpoint addresses, as these are now really now an implementation detail of how the underlay network and the external network intersect. See RFD 404 section 2.1 for more details.

This PR depends on the following.

Code changes to Omicron itself in this PR include

  • Removing code to advertise boundary services tunnel endpoint addresses via ddm, as this is now mgd's job.
  • Adding static routes via mgd instead of dpd. This is required for mgd to have visibility of the entire RIB, both static and dynamic, and to make tunnel endpoint advertisements automatically based on changes in the RIB. See RFD 404 section 2.2 for more details. Updates for both early networking and Nexus API handlers have been made.

@rcgoodfellow rcgoodfellow force-pushed the boundary-tunnel-routing branch from c2265a0 to aa9017a Compare August 9, 2023 06:04
@rcgoodfellow rcgoodfellow marked this pull request as ready for review August 10, 2023 01:54
Copy link
Contributor

@internet-diglett internet-diglett left a comment

Choose a reason for hiding this comment

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

Looks good to me!

@@ -83,6 +83,15 @@ z_swadm () {
pfexec zlogin oxz_switch /opt/oxide/dendrite/bin/swadm $@
}

# XXX remove. This is just to test against a development branch of OPTE in CI.
Copy link
Contributor

Choose a reason for hiding this comment

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

When should this be removed?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@rcgoodfellow rcgoodfellow force-pushed the boundary-tunnel-routing branch 2 times, most recently from 6bc5372 to 43d5f0a Compare January 9, 2024 04:48
@rcgoodfellow rcgoodfellow force-pushed the boundary-tunnel-routing branch 3 times, most recently from a0942ed to e89ab39 Compare January 13, 2024 03:36
@internet-diglett
Copy link
Contributor

internet-diglett commented Jan 16, 2024

First pass of new changes look good, gonna get some more coffee and give it another once over. Just to persist our earlier convo here, we have several scenarios in which routing data will need to be persisted and restored that we will need to double-check coverage of:

  • Scrimlet Restart (possibly covered by coldboot / early networking?)
  • Scrimlet Replacement (possibly covered by coldboot / early networking?)
  • Zone Restart
  • mgd daemon restart (possibly covered by disk-backed key/value store?)

I don't think that should block this PR since I believe the changes in this PR perform just as well, if not better, than our current implementation.

@rcgoodfellow rcgoodfellow force-pushed the boundary-tunnel-routing branch from e89ab39 to 8bce2af Compare January 23, 2024 22:30
@rcgoodfellow rcgoodfellow force-pushed the boundary-tunnel-routing branch from 8bce2af to 978cf08 Compare January 23, 2024 22:37
@rcgoodfellow rcgoodfellow enabled auto-merge (squash) January 24, 2024 08:40
@rcgoodfellow rcgoodfellow disabled auto-merge January 24, 2024 16:03
@rcgoodfellow rcgoodfellow merged commit 9ac047e into main Jan 24, 2024
22 checks passed
@rcgoodfellow rcgoodfellow deleted the boundary-tunnel-routing branch January 24, 2024 20: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