Skip to content

[v1.18] bpf: tests: egressgw improvements#43337

Merged
julianwiedmann merged 6 commits intov1.18from
pr/jwi/v1.18/egw-ipv6
Jan 5, 2026
Merged

[v1.18] bpf: tests: egressgw improvements#43337
julianwiedmann merged 6 commits intov1.18from
pr/jwi/v1.18/egw-ipv6

Conversation

@julianwiedmann
Copy link
Copy Markdown
Member

@julianwiedmann julianwiedmann commented Dec 15, 2025

Manual backport of

Along with one v1.18-only patch to let us pass the verifier.

Once this PR is merged, a GitHub action will update the labels of these PRs:

 42955 42988

@maintainer-s-little-helper maintainer-s-little-helper Bot added backport/1.18 This PR represents a backport for Cilium 1.18.x of a PR that was merged to main. kind/backports This PR provides functionality previously merged into master. labels Dec 15, 2025
@julianwiedmann julianwiedmann changed the title Pr/jwi/v1.18/egw ipv6 [v1.18] bpf: tests: egressgw improvements Dec 15, 2025
@julianwiedmann
Copy link
Copy Markdown
Member Author

/test

At least on v1.18 this is necessary to enable EGW and HostFW, otherwise
one of the memcpy()'s in the RevSNAT path is rejected by the verifier.

Not upstreaming this for now, since the same test config passes on the
main branch.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
[ upstream commit 2bc33c2 ]

The memcpy() below expects the IPv6 address to be aligned.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
[ upstream commit d36dc8c ]

Replace open-coded occurrences with the appropriate helper.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
[ upstream commit 741109f ]

Let's validate that EGW replies (ext_endpoint -> EgressIP) make it through
the ingress path on the GW node without being blocked by the HostFW.

This relies on the following sequence
1. RevSNAT (turns the packet into ext_endpoint -> PodIP), then
2. HostFW ingress enforcement, which does an on-the-spot ipcache lookup for
   the daddr (PodIP) and breaks out if the matched identity is not HOST_ID.

Also enable HostFW in the "redirect_from_host" tests, even though this only
tests the egress path on the GW node.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
[ upstream commit db404c0 ]

In order for this entry to be actually catch-all, we need to adjust its
LPM prefix length. This matches the IPv4 path.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
[ upstream commit 4650e58 ]

In a real-world cluster we wouldn't actually expect the cluster-external
endpoint to have a dedicated IPcache entry. Instead there's a catch-all
entry that we should match against.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
@julianwiedmann
Copy link
Copy Markdown
Member Author

/test

@julianwiedmann julianwiedmann marked this pull request as ready for review December 16, 2025 14:50
@julianwiedmann julianwiedmann requested a review from a team as a code owner December 16, 2025 14:50
Copy link
Copy Markdown
Member

@qmonnet qmonnet left a comment

Choose a reason for hiding this comment

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

Looks OK

@julianwiedmann julianwiedmann added this pull request to the merge queue Jan 5, 2026
Merged via the queue into v1.18 with commit 7bbd8fa Jan 5, 2026
356 of 357 checks passed
@julianwiedmann julianwiedmann deleted the pr/jwi/v1.18/egw-ipv6 branch January 5, 2026 12:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport/1.18 This PR represents a backport for Cilium 1.18.x of a PR that was merged to main. kind/backports This PR provides functionality previously merged into master.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants