Skip to content

Conversation

@Fredi-raspall
Copy link
Contributor

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

This goes on top of #1198 although it is not too related.
However, I needed to add it there to be able to test the latest changes around defaults.
Fixes #1210

@Fredi-raspall Fredi-raspall requested a review from a team as a code owner January 19, 2026 21:50
@Fredi-raspall Fredi-raspall changed the title fix underlay routing fix underlay forwarding Jan 19, 2026
Copy link
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.

Nice, I like the last commit in particular.

@Fredi-raspall
Copy link
Contributor Author

Nice, I like the last commit in particular.

Thanks 😍 .

I've added two clean-up commits. They are no too related (I can make another PR if needed), which, if approved, should be merged soon to avoid conflicts.

Copy link
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 good. I've got mixed feelings about the crate renaming, flow-entry makes sense to me but I fear there will be confusion between flow-entry and flow-info. But I suppose we can always rename again in the future if it's too confusing. It will be nice indeed to have the two closer to each other in the list.

Cargo.toml Outdated
net = { path = "./net", package = "dataplane-net", features = [] }
pipeline = { path = "./pipeline", package = "dataplane-pipeline", features = [] }
pkt-meta = { path = "./pkt-meta", package = "dataplane-pkt-meta", features = [] }
flow-entry = { path = "./flow-entry", package = "dataplane-flow-entry", features = [] }
Copy link
Member

Choose a reason for hiding this comment

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

Nit: Move up in the list, to keep them sorted

Copy link
Contributor Author

Choose a reason for hiding this comment

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

fixed

@qmonnet
Copy link
Member

qmonnet commented Jan 20, 2026

CI complains about a few remaining includes referring to pkt-meta, it seems

@Fredi-raspall
Copy link
Contributor Author

CI complains about a few remaining includes referring to pkt-meta, it seems

Yup, just saw it. Fixing ...

@Fredi-raspall
Copy link
Contributor Author

Looks good. I've got mixed feelings about the crate renaming, flow-entry makes sense to me but I fear there will be confusion between flow-entry and flow-info. But I suppose we can always rename again in the future if it's too confusing. It will be nice indeed to have the two closer to each other in the list.

Agreed, I wonder if we should merge them. We could also rename flow-entry to flow-table.

@qmonnet
Copy link
Member

qmonnet commented Jan 20, 2026

I wonder if we should merge them.

I thought about it, but ask @mvachhar first, I think he had a reason for keeping them split at the time.

flow-table might avoid some of the confusion, it's easier to distinguish between information for the flows and a whole table, compared to information and just entries, I find

@Fredi-raspall Fredi-raspall force-pushed the pr/fredi/fix_underlay branch 2 times, most recently from 2ee5a19 to f35885f Compare January 20, 2026 14:02
@Fredi-raspall
Copy link
Contributor Author

Fredi-raspall commented Jan 20, 2026

I wonder if we should merge them.

I thought about it, but ask @mvachhar first, I think he had a reason for keeping them split at the time.

flow-table might avoid some of the confusion, it's easier to distinguish between information for the flows and a whole table, compared to information and just entries, I find

Yeah, although it has a submodule called flow-table. If nothing else needs to go in that crate I'd remove the submodule and call it flow-table. Let's see what @mvachhar thinks about it. Probably the reason not to include the flow-info was to avoid some circular dependency?

Base automatically changed from pr/fredi/expose_refined to main January 20, 2026 15:41
Add a flag "is_overlay" to the packet metadata flags to indicate
that the packet is an overlay one; i.e. a packet that has been
decapsulated.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Fix a misleading log in ip forward regarding the vrf to use,
that referred to older logic. Also, move the vrf check inside the
process() method so that the overal logic is clearer and take into
account if packet is from the overlay when failing.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
The flow-filter should only act on overlay packets. Skip processing
packets that are 'done' or not overlay.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
We only need (atm) flow entry lookups for overlay packets. Let the
stage to create / lookup flow entries ignore done packets or
packets that are not in the overlay.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Given that we annotate overlay packets as such and that all of
those packets may be subjected to NAT, there some semantic
overlap between flags "is_underlay" and "nat". We can't remove
the nat flag as it is currently used to prevent statefully NATing
a packet that has been statelessly NATed. So, repurpose the flag to
indicate that a packet has been NATed, which helps in diagnostics
(packet dumps) and preventing double NATs that are currently
not supported.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Rename pkt-meta crate (which is a bit confusing) to flow-entry
(closer to the purpose). The rename also keeps it closer to related
crates in the IDE ;-)

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
The BGP instance in the default VRF should be configured
with as-path relax in order to allow multipath, given the
eBGP configuration in fabric. The BGP config for the default
VRF should come from user and be configurable. Since, with the
removal of the gRPC, that degree of configurability was lost,
enable it by default for the time being until we can configure it.

Signed-off-by: Fredi Raspall <fredi@githedgehog.com>
@Fredi-raspall Fredi-raspall added the ci:-upgrade Disable VLAB upgrade tests label Jan 20, 2026
@qmonnet qmonnet added this pull request to the merge queue Jan 20, 2026
Merged via the queue into main with commit a2c8292 Jan 20, 2026
23 checks passed
@qmonnet qmonnet deleted the pr/fredi/fix_underlay branch January 20, 2026 18:06
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.

Fix underlay forwarding & routing

3 participants