Skip to content

[multicast] Drop (m)vlan from multicast groups#9451

Open
zeeshanlakhani wants to merge 2 commits intomainfrom
zl/drop-mvlan-from-group
Open

[multicast] Drop (m)vlan from multicast groups#9451
zeeshanlakhani wants to merge 2 commits intomainfrom
zl/drop-mvlan-from-group

Conversation

@zeeshanlakhani
Copy link
Collaborator

@zeeshanlakhani zeeshanlakhani commented Nov 30, 2025

Egress multicast (instances sending to external receivers) is not in MVP scope. The mvlan field for VLAN-tagged upstream traffic is unnecessary since it probably will not be attached specifically to a group. Worth revisiting when egress support lands.

This PR also replaces mvlan with has_any_source_member on the multicast group view, which tracks whether any member joined without source filtering, using for source IP logic. The source_ips field now contains only IPs from members that explicitly specified sources, making the semantics clearer. The group-to-view conversion simplifies from TryFrom to From.

@zeeshanlakhani zeeshanlakhani force-pushed the zl/drop-mvlan-from-group branch 2 times, most recently from f86fc3f to 5ca441d Compare December 17, 2025 10:43
@zeeshanlakhani
Copy link
Collaborator Author

zeeshanlakhani commented Dec 17, 2025

This PR should be good now after rummaging through conflicts on sources post-merge of #9450.

zeeshanlakhani added a commit that referenced this pull request Dec 23, 2025
Previously, each silo could only have one default IP pool. This change
allows one default pool per (pool_type, ip_version) combination, enabling
silos to have separate defaults for:

  - Unicast IPv4
  - Unicast IPv6
  - Multicast IPv4
  - Multicast IPv6

This work previously branched off
#9451, but now off `main`,
involving changes that have to do with the mcast lifecycle changes.

Includes:

  - Each default can now be set or unset and demoted independently.
    Unsetting the unicast IPv4 default does not affect the multicast IPv4
    default, for example.
  - Add `pool_type` and `ip_version` columns to `ip_pool_resource`
    (denormalized from parent `ip_pool` for unique index)
  - Replace unique index with partial index on (resource_id, pool_type,
    ip_version) WHERE is_default = true
  - Rename `IpPoolResourceLink` to `IncompleteIpPoolResource` to reflect
    that pool_type/ip_version are actually populated by the linking query
  - Add `ip_version` field to API params for default pool disambiguation
  - API versioning for backwards compatibility with older clients
zeeshanlakhani added a commit that referenced this pull request Dec 23, 2025
Previously, each silo could only have one default IP pool. This change
allows one default pool per (pool_type, ip_version) combination, enabling
silos to have separate defaults for:

  - Unicast IPv4
  - Unicast IPv6
  - Multicast IPv4
  - Multicast IPv6

This work previously branched off #9451, but is now off `main`,
involving changes that have to do with the mcast lifecycle changes.

Includes:

  - Each default can now be set or unset and demoted independently.
    Unsetting the unicast IPv4 default does not affect the multicast IPv4
    default, for example.
  - Add `pool_type` and `ip_version` columns to `ip_pool_resource`
    (denormalized from parent `ip_pool` for unique index)
  - Replace unique index with partial index on (resource_id, pool_type,
    ip_version) WHERE is_default = true
  - Rename `IpPoolResourceLink` to `IncompleteIpPoolResource` to reflect
    that pool_type/ip_version are actually populated by the linking query
  - Add `ip_version` field to API params for default pool disambiguation
  - API versioning for backwards compatibility with older clients
zeeshanlakhani added a commit that referenced this pull request Dec 23, 2025
Previously, each silo could only have one default IP pool. This change
allows one default pool per (pool_type, ip_version) combination, enabling
silos to have separate defaults for:

  - Unicast IPv4
  - Unicast IPv6
  - Multicast IPv4
  - Multicast IPv6

This work previously branched off #9451, but is now off `main`,
involving changes that have to do with the mcast lifecycle changes.

Includes:

  - Each default can now be set or unset and demoted independently.
    Unsetting the unicast IPv4 default does not affect the multicast IPv4
    default, for example.
  - Add `pool_type` and `ip_version` columns to `ip_pool_resource`
    (denormalized from parent `ip_pool` for unique index)
  - Replace unique index with partial index on (resource_id, pool_type,
    ip_version) WHERE is_default = true
  - Rename `IpPoolResourceLink` to `IncompleteIpPoolResource` to reflect
    that pool_type/ip_version are actually populated by the linking query
  - Add `ip_version` field to API params for default pool disambiguation
  - API versioning for backwards compatibility with older clients
zeeshanlakhani added a commit that referenced this pull request Dec 23, 2025
Previously, each silo could only have one default IP pool. This change
allows one default pool per (pool_type, ip_version) combination, enabling
silos to have separate defaults for:

  - Unicast IPv4
  - Unicast IPv6
  - Multicast IPv4
  - Multicast IPv6

This work previously branched off #9451, but is now off `main`,
involving changes that have to do with the mcast lifecycle changes.

Includes:

  - Each default can now be set or unset and demoted independently.
    Unsetting the unicast IPv4 default does not affect the multicast IPv4
    default, for example.
  - Add `pool_type` and `ip_version` columns to `ip_pool_resource`
    (denormalized from parent `ip_pool` for unique index)
  - Replace unique index with partial index on (resource_id, pool_type,
    ip_version) WHERE is_default = true
  - Rename `IpPoolResourceLink` to `IncompleteIpPoolResource` to reflect
    that pool_type/ip_version are actually populated by the linking query
  - Add `ip_version` field to API params for default pool disambiguation
  - API versioning for backwards compatibility with older clients
Base automatically changed from zl/mcast-implicit-lifecycle to main January 10, 2026 06:52
@zeeshanlakhani
Copy link
Collaborator Author

I'll merge in main once #9687 is in, but this is still reviewable @rcgoodfellow @internet-diglett.

@zeeshanlakhani zeeshanlakhani force-pushed the zl/drop-mvlan-from-group branch from 3b7b3ca to 9002d36 Compare January 21, 2026 19:38
@zeeshanlakhani zeeshanlakhani changed the base branch from main to multicast-e2e February 19, 2026 06:12
@zeeshanlakhani zeeshanlakhani force-pushed the multicast-e2e branch 4 times, most recently from 52ad8d8 to cc63562 Compare March 6, 2026 01:46
@zeeshanlakhani zeeshanlakhani changed the base branch from multicast-e2e to main March 6, 2026 02:14
@zeeshanlakhani zeeshanlakhani force-pushed the zl/drop-mvlan-from-group branch from 4a0d377 to 06466aa Compare March 9, 2026 16:51
@zeeshanlakhani zeeshanlakhani force-pushed the zl/drop-mvlan-from-group branch from 06466aa to 70f8b39 Compare March 10, 2026 14:25
Copy link
Contributor

@FelixMcFelix FelixMcFelix left a comment

Choose a reason for hiding this comment

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

I had a quick look over this again, nothing looks to be out of the ordinary. Thanks!

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.

3 participants