Skip to content

Conversation

@Fredi-raspall
Copy link
Contributor

@Fredi-raspall Fredi-raspall commented Jan 15, 2026

@Fredi-raspall Fredi-raspall requested a review from a team as a code owner January 15, 2026 14:52
@Fredi-raspall Fredi-raspall requested review from qmonnet and sergeymatov and removed request for a team and sergeymatov January 15, 2026 14:52
@Fredi-raspall Fredi-raspall added the ci:-upgrade Disable VLAB upgrade tests label Jan 15, 2026
qmonnet and others added 10 commits January 16, 2026 16:42
By policy, we no longer support overlap between peerings for exposed
prefixes. This means that if VPC A exposes a given prefix to VPC B, then
VPC C cannot expose an overlapping prefix (except for "default"
destination prefixes, which will be handled differently).

This means we can remove the code for overlap support from the
flow-filter stage, along with related tests. The nat crate also contains
some tests relying on the flow-filter stage behaviour for overlap, so we
prune them as well.

Signed-off-by: Quentin Monnet <qmo@qmon.net>
Following our change of policy regarding overlap in prefixes, we can
remove the code that we added for the sole purpose of supporting
overlapping IPs in crates nat and pkt-meta.

We already removed some related code in a previous commit: here we
remove the creation of a 3rd flow table entry for each connection, with
an empty destination VPC discriminant, which would be used for lookup up
the discriminant from the flow table, if relevant. We also remove the
related check and destination VPC lookup attachment to packet metadata
from the flow table lookup stage. The flow table lookup stage is now
agnostic to the destination VPC for the packet.

This reverts code from the following commits (all from Pull Request
#1038):

- 5abd3d9 ("feat(nat): Write destination VPC discriminant to flow table values")
- 8c1282e ("feat(nat): Add 3rd stateful NAT session entry for destination VPC lookup")
- d5a2c14 ("feat(pkt-meta): Move "unroutable" drop from dst VPC to flow lookup")

Signed-off-by: Quentin Monnet <qmo@qmon.net>
Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Extends the conversion from CRD to internal type to allow the
support of default exposes. A default expose cannot contain
any ip/nots or nat configuration.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Since we keep at most one config, there's no need to clear
intermediate collections. Also, reorganize the code so that
adding validations is clearer.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
- Forbid prefixes 0/0 or ::/0 in ip/nat/nots/as-not's in exposes
- Do not allow default exposes to have ip/nat/nots/not-as

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Reorganize code so that we validate the `Peering` objects collected
in Vpcs instead of the undirected `VpcPeering` objects learnt from
the CRD.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Adds a method to return the set of prefixes that should be
advertised for an expose.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Adapt the logic to determine prefixes to be advertised for a
given peering expose.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
qmonnet added a commit that referenced this pull request Jan 16, 2026
Because the follow-up commits should be based on the changes from
#1198, but we just need
this tiny change to get the rest to compile.
@Fredi-raspall Fredi-raspall force-pushed the pr/fredi/expose_refined branch from cfe7896 to e08e39b Compare January 16, 2026 22:20
qmonnet added a commit that referenced this pull request Jan 17, 2026
Because the follow-up commits should be based on the changes from
#1198, but we just need
this tiny change to get the rest to compile.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:-upgrade Disable VLAB upgrade tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants