Skip to content

Multicast e2e#667

Draft
zeeshanlakhani wants to merge 2 commits intomainfrom
multicast-e2e
Draft

Multicast e2e#667
zeeshanlakhani wants to merge 2 commits intomainfrom
multicast-e2e

Conversation

@zeeshanlakhani
Copy link
Copy Markdown

No description provided.

…ni type, sled transactions, merge main (665)

This is setup to come after #665 API modifications, but
uses the up-to-date setup and dropshot API manager.
zeeshanlakhani added a commit that referenced this pull request Mar 31, 2026
…thops

Address review comments from #667:

- UnicastAddrV4/V6 validated newtypes for multicast source addresses.
  Rejects multicast, broadcast, loopback, unspecified, link-local,
  Class E (V4), and this-network 0/8 (V4). RFC-grounded validation
  consistent with DPD's multicast address checks.

- MulticastRouteKeyV4/V6 source fields use UnicastAddrV4/V6 instead
  of raw Ipv4Addr/Ipv6Addr. Source validation removed from validate(),
  enforced at construction by types.

- VNI field changed from u32 to omicron_common Vni type. Removes
  manual 24-bit validation. CLI uses value_parser for parse-time
  validation at the clap boundary.

- Removed underlay_nexthops from MulticastRoute. Sled membership is
  managed by Omicron and programmed into DPD/OPTE directly. The MRIB
  only carries underlay_group (ff04::/64) for DDM advertisement.

- Renamed MulticastRouteSource to MulticastSourceProtocol to avoid
  confusion with source addresses.

- Convert proptest validation tests to unit tests: AF mismatch (v4/v6,
  v6/v4), RPF AF mismatch, loopback/unspecified source rejection.
  Type-level enforcement via UnicastAddr newtypes makes property-based
  testing redundant for these invariants.

- Added prop_unicast_addr_v4_rejects_class_e proptest.

- Removed unnecessary non-zero group ID bias in proptest strategy.

- Regenerated mg-admin v8 OpenAPI spec.
zeeshanlakhani added a commit that referenced this pull request Mar 31, 2026
Address review comments from #667:

- This addes UnicastAddrV4/V6 validated newtypes for multicast source addresses.
  These types reject multicast, broadcast, loopback, unspecified, link-local,
  Class E (V4), and this-network 0/8 (V4). We could eventually move these
  to more common structures, but there's some churn around omicron-common
  for new networking types in Omicron's codebase. 

- VNI field changed from u32 to omicron_common Vni type. This removes
  all manual 24-bit validation. The clap CLI uses value_parser for parse-time
  validation at the clap boundary.

- We removed underlay_nexthops from MulticastRoute. Sled membership is
  managed by Omicron and programmed into DPD/OPTE directly. The MRIB
  only carries underlay_group (ff04::/64) for DDM advertisement.

- MulticastRouteSource was renamed to MulticastSourceProtocol to avoid
  confusion with source addresses.

- We converted a set of proptest validation tests to unit tests.
zeeshanlakhani added a commit that referenced this pull request Mar 31, 2026
…erge main

Address review comments from #667:

- This adds UnicastAddrV4/V6 validated newtypes for multicast source addresses.
  These types reject multicast, broadcast, loopback, unspecified, link-local,
  Class E (V4), and this-network 0/8 (V4). We could eventually move these
  to more common structures, but there's some churn around omicron-common
  for new networking types in Omicron's codebase. 

- VNI field changed from u32 to omicron_common Vni type. This removes
  all manual 24-bit validation. The clap CLI uses value_parser for parse-time
  validation at the clap boundary.

- We removed underlay_nexthops from MulticastRoute. Sled membership is
  managed by Omicron and programmed into DPD/OPTE directly. The MRIB
  only carries underlay_group (ff04::/64) for DDM advertisement.

- MulticastRouteSource was renamed to MulticastSourceProtocol to avoid
  confusion with source addresses.

- We converted a set of proptest validation tests to unit tests.
zeeshanlakhani added a commit that referenced this pull request Mar 31, 2026
…erge main

Address review comments from #667:

- This adds UnicastAddrV4/V6 validated newtypes for multicast source addresses.
  These types reject multicast, broadcast, loopback, unspecified, link-local,
  Class E (V4), and this-network 0/8 (V4). We could eventually move these
  to more common structures, but there's some churn around omicron-common
  for new networking types in Omicron's codebase. 

- VNI field changed from u32 to omicron_common Vni type. This removes
  all manual 24-bit validation. The clap CLI uses value_parser for parse-time
  validation at the clap boundary.

- We removed underlay_nexthops from MulticastRoute. Sled membership is
  managed by Omicron and programmed into DPD/OPTE directly. The MRIB
  only carries underlay_group (ff04::/64) for DDM advertisement.

- MulticastRouteSource was renamed to MulticastSourceProtocol to avoid
  confusion with source addresses.

- We converted a set of proptest validation tests to unit tests.
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