Skip to content

Commit a9d4b82

Browse files
[multicast] Narrow underlay scope to ff04::/64 and add ASM source filtering (#189)
Underlay changes: - Restrict internal multicast from admin/site/org scoped (ff04, ff05, ff08) to just Omicron's reserved subnet (ff04::/64). These underlay addresses are made unique in Omicron. - Rename `AdminScopedIpv6` to `UnderlayMulticastIpv6`. - Simplify P4 to only match ff04::/64. - Use omicron-common multicast constants for validation. Source filtering changes: - Replace IpSrc::Subnet with IpSrc::Any for any-source matching. - Change IPv6 source filter from exact to LPM match. - Allow source filters on ASM groups (previously SSM-only). API changes: - API v5 adds IpSrc::Any for ASM source filtering. - API v6 enforces strict underlay subnet validation.
1 parent 188a758 commit a9d4b82

30 files changed

Lines changed: 23979 additions & 965 deletions

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ omicron-common = { git = "https://github.com/oxidecomputer/omicron", branch= "ma
5151
oximeter = { git = "https://github.com/oxidecomputer/omicron", branch = "main" }
5252
oximeter-producer = { git = "https://github.com/oxidecomputer/omicron", branch = "main" }
5353
oximeter-instruments = { git = "https://github.com/oxidecomputer/omicron", branch = "main", default-features = false, features = ["kstat"] }
54-
oxnet = { version = "0.1.3", default-features = false, features = ["schemars", "serde"] }
54+
oxnet = { version = "0.1.4", default-features = false, features = ["schemars", "serde"] }
5555
propolis = { git = "https://github.com/oxidecomputer/propolis" }
5656
smf = { git = "https://github.com/illumos/smf-rs" }
5757
softnpu-lib = { git = "https://github.com/oxidecomputer/softnpu" , package = "softnpu" , branch = "main"}
@@ -69,7 +69,7 @@ colored = "3"
6969
csv = "1.3"
7070
curl = "0.4"
7171
display-error-chain = "0.2"
72-
dropshot = "0.16.4"
72+
dropshot = "0.16.6"
7373
dropshot-api-manager = "0.2.2"
7474
dropshot-api-manager-types = "0.2.2"
7575
expectorate = "1"

README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,5 +341,14 @@ proxy_arp:
341341
3. run `SDE=/opt/oxide/tofino_sde cargo test --features=<feature>` to execute
342342
the tests.
343343

344-
If regenerating the openapi specifications, set `EXPECTORATE=overwrite` when
345-
runnning the tests with the `tofino_asic` feature.
344+
### OpenAPI Generation
345+
346+
`dpd-api/src/lib.rs` contains endpoint [dropshot][dropshot-gh] definitions and
347+
controls API versioning for the `dpd` OpenAPI interface. If you add/remove or
348+
edit API points and/or documentation, you can update the API version and
349+
regenerate the latest OpenAPI specification bindings by running
350+
`cargo xtask openapi generate`. Use `cargo xtask openapi check` to verify
351+
specs are up-to-date.
352+
353+
354+
[dropshot-gh]: https://github.com/oxidecomputer/dropshot

0 commit comments

Comments
 (0)