Skip to content

Add dual-stack support for Antrea Egress#7761

Draft
XinShuYang wants to merge 3 commits intoantrea-io:mainfrom
XinShuYang:egressds
Draft

Add dual-stack support for Antrea Egress#7761
XinShuYang wants to merge 3 commits intoantrea-io:mainfrom
XinShuYang:egressds

Conversation

@XinShuYang
Copy link
Contributor

@XinShuYang XinShuYang commented Feb 5, 2026

Introduce dual-stack Egress by enabling new fields spec.egressIPs and
spec.externalIPPools. Both IPv4 and IPv6 egress IPs are always scheduled
to the same Node via an extended consistent hash scheduler.

The antrea-controller allocates IPs atomically from their respective
ExternalIPPools in egress HA mode.

The antrea-agent handles dual-stack Egress through a dedicated sync path
that installs per-IP SNAT mark flows and iptables rules, and installs
per-Pod OFPort flows for both IP families.

Admission webhook validation ensures the dual-stack and single-stack
fields are mutually exclusive.

@XinShuYang XinShuYang force-pushed the egressds branch 9 times, most recently from 82fc42e to 766a9fb Compare February 9, 2026 05:44
@XinShuYang XinShuYang force-pushed the egressds branch 6 times, most recently from c4151f9 to 71371c1 Compare March 4, 2026 04:58
@XinShuYang XinShuYang changed the title [NOTFORREVIEW]Egress test Add dual-stack support for Antrea Egress Mar 4, 2026
@XinShuYang XinShuYang force-pushed the egressds branch 2 times, most recently from 93e34cc to c35a752 Compare March 5, 2026 06:54
@XinShuYang
Copy link
Contributor Author

/test-ipv6-e2e

@XinShuYang XinShuYang force-pushed the egressds branch 9 times, most recently from 41ea06f to cbe1265 Compare March 5, 2026 15:48
@XinShuYang
Copy link
Contributor Author

/test-ipv6-e2e

@XinShuYang XinShuYang marked this pull request as ready for review March 5, 2026 16:01
@XinShuYang XinShuYang force-pushed the egressds branch 15 times, most recently from 6fea007 to 51a62d3 Compare March 11, 2026 06:05
@XinShuYang XinShuYang marked this pull request as ready for review March 11, 2026 06:07
@XinShuYang
Copy link
Contributor Author

/test-ipv6-e2e

Introduce dual-stack Egress by enabling new fields spec.egressIPs and
spec.externalIPPools. Both IPv4 and IPv6 egress IPs are always scheduled
to the same Node via an extended consistent hash scheduler.

The antrea-controller allocates IPs atomically from their respective
ExternalIPPools in egress HA mode.

The antrea-agent handles dual-stack Egress through a dedicated sync path
that installs per-IP SNAT mark flows and iptables rules, and installs
per-Pod OFPort flows for both IP families.

Admission webhook validation ensures the dual-stack and single-stack
fields are mutually exclusive.

Signed-off-by: Shuyang Xin <shuyang.xin@broadcom.com>
Signed-off-by: Shuyang Xin <shuyang.xin@broadcom.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

// We don't care about the value of egress.Spec.EgressIPs, just use it to reach a consensus among all agents
// about which one should do the update.
if len(egress.Spec.EgressIPs) != expectedDualStackCount {
return fmt.Errorf("spec.EgressIPs is unavailable, the dual-stack egress status failed to update")
@XinShuYang XinShuYang marked this pull request as draft March 13, 2026 08:05
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