[sidecar/pipeline] P4 cleanup and a return to 18 stages#208
Open
zeeshanlakhani wants to merge 1 commit intomainfrom
Open
[sidecar/pipeline] P4 cleanup and a return to 18 stages#208zeeshanlakhani wants to merge 1 commit intomainfrom
zeeshanlakhani wants to merge 1 commit intomainfrom
Conversation
ed6d7d9 to
a75a02e
Compare
0d3cbfc to
4367608
Compare
580af39 to
499f3c7
Compare
52ac6a8 to
c951d18
Compare
ab643d8 to
0b8a5d7
Compare
dbe4e51 to
2116f9b
Compare
cee9f7d to
e8a6811
Compare
6bf36ea to
3254541
Compare
ce88768 to
079b582
Compare
*P4/sidecar pipeline changes*:
* Unify route_result_t struct for Router4/Router6 to prevent PHV liverange divergence
* Unify nexthop: replace separate nexthop_ipv4/nexthop_ipv6 with single nexthop (ipv6_addr_t) plus nexthop_is_v6 flag
* Add TTL compound key (idx, route_ttl_is_1) to route tables for TTL offload
- This includes Rust updates and a larger routing table for the compound key
* Add @pa_no_init pragmas for metadata fields to guard against compiler init bugs
* Add @pa_container_type("normal") pragmas for all ingress booleans and wider metadata fields to prevent mocha container corruption (whole-container writes clobbering neighboring fields)
* Extend @pa_container_type to egress bridge header fields and drop_reason
* Zero sc_pad at every sc_code write site (was uninitialized before)
* Bridge header now includes is_mcast_routed for CPU copy detection
*EgressFilter*:
* Moves EgressFilter from ingress to egress pipeline to free one ingress stage for NatEgressFilter
* Adds nat_egress_hit to bridge header to carry NAT state across TM boundary
* Control Plane: updates table path and match key (egress_port instead of ucast_egress_port)
*Egress MacRewrite*:
* Creates separate unicast_mac_rewrite and mcast_mac_rewrite instances of MacRewrite
* Unicast instance: rewrites src_mac only (dst_mac already correct from ARP/NDP)
* Multicast instance: derives dst_mac from group address per RFC 1112/2464
*Multicast Egress changes*:
* Checks egress_rid != 0 first to identify PRE-replicated packets
* Validates is_mcast_routed for CPU copies (egress_rid == 0 but routed to multicast)
* Drops any CPU copies with DROP_MULTICAST_CPU_COPY reason
*Counters*:
* Moves Unicast, MulticastLL, EgressDropPort, EgressDropReason counters from multicast to base
* Adds a Forwarded counter (for every packet copy that egresses the pipeline)
* Removes Egress counter (from ingress pipe, replaced by per-port counters)
* Removes MulticastDrop from MULTICAST_COUNTERS, as it's covered in general drop w/ reason
* Handles link-local multicast counting in both MULTICAST and non-MULTICAST paths
*Build*:
* Configures TOFINO_STAGES where there's 15 for base, 18 for multicast (the win!)
079b582 to
808e4dd
Compare
Contributor
Author
|
Decided to target |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
P4/sidecar pipeline changes:
EgressFilter:
Egress MacRewrite:
Multicast Egress changes:
Counters:
Build: