Summary

  • RFC 9819 updates RFC 9252 because bitwise OR constructs the intended End.DT2M Service SID only when the Ethernet A-D and Inclusive Multicast advertisements use identical SID structures.
  • With ESI filtering, the Inclusive Multicast route owns LOC:FUNC and its insertion boundary; the Ethernet A-D per ES route supplies Arg.FE2. Equal, non-zero Argument Length is required, but equal length does not make every other boundary identical.
  • Receiving and parsing both routes is control-plane evidence. It does not prove current association, local selection, FIB or local-SID programming, execution of split-horizon filtering, or correct BUM delivery.

The attractive incident ticket says: both routes present, attribute valid, SID calculated. Close the case. The dangerous question is one bit more precise: calculated under whose structure?

RFC 9252 originally told an ingress PE to merge the ESI Filtering Argument from an EVPN Ethernet Auto-Discovery per Ethernet Segment route with the applicable End.DT2M SID from an Inclusive Multicast Ethernet Tag route by bitwise logical OR. That works when the two contributions place their meaningful bits in the same structure. RFC 9819, published in July 2025, records that implementation and interoperability work exposed an ambiguity: uniform structure is not universal.

The update is small in packet-format terms and large in evidentiary consequence. Two syntactically acceptable BGP objects do not become one valid forwarding instruction merely because an operator can combine 128-bit values. The receiver must know which advertisement owns the service SID layout, whether an argument is accepted, how many bits it occupies, where it begins and which service association makes it applicable.

One SID, two sources of meaning

RFC 8986 divides an SRv6 SID into Locator, Function and optional Argument. End.DT2M decapsulates an Ethernet payload and floods it through an L2 table. Its Arg.FE2 value maps locally to an Ethernet Segment Identifier so the disposition PE can exclude the relevant output interfaces and preserve split horizon.

For this use, RFC 9819 separates the components. The Inclusive Multicast Ethernet Tag route, EVPN Route Type 3, advertises the End.DT2M LOC:FUNC portion for a broadcast domain. The Ethernet A-D per ES route, Route Type 1, advertises the ESI Filtering argument. Both carry an SRv6 SID Structure Sub-Sub-TLV because the behavior supports an argument.

The structure is not decorative metadata. Locator Block Length, Locator Node Length and Function Length determine the offset at which the argument begins. Argument Length determines the accepted size. The endpoint that owns LOC:FUNC advertises that structure. The SR source then constructs the complete LOC:FUNC:ARG value for use as an IPv6 destination or an SRH segment.

That ownership rule resolves a subtle failure. RFC 9819's multi-bridge-domain example uses one 16-bit argument while one Type 3 Service SID has a 32-bit Function and another has a 16-bit Function. The same argument therefore lands at different offsets. A blind OR is not a neutral operation; it silently assumes the offsets already coincide.

The decision tree is more useful than a green parser

RFC 9819 defines three materially different states.

If Type 3 advertises AL=0, the service does not expect an ESI Filtering argument for that SID. The ingress builds LOC:FUNC with later bits zero and ignores the Type 1 SID value and structure. A parser that proudly displays an argument from Type 1 has learned something it must not use.

If Type 3 advertises non-zero AL, the ingress finds the matching Ethernet A-D per ES route and verifies End.DT2M. A missing advertisement or AL=0 in Type 1 leaves no usable argument; the ingress falls back to the LOC:FUNC-only construction and should log when filtering was expected.

If both AL values are non-zero but differ, the inconsistency is a configuration error. The argument is unusable, and BUM traffic from that Ethernet Segment must not be forwarded because a loop can result. If they are equal, the ingress inserts the Type 1 argument at the offset defined by the Type 3 structure and zeroes every bit beyond the declared SID.

Equal AL is thus a gate, not a universal compatibility certificate. It says the payload will fit the argument field advertised by the owner. It does not say the two full layouts are identical, that the Route Type 1 record belongs to the intended Ethernet Segment, or that the resulting address is installed at the endpoint.

Identity and time precede composition

RFC 7432 gives the two route types their EVPN context: Route Distinguishers, Route Targets, Ethernet tags, ESIs, originating PEs and withdrawal behavior. Those fields are not administrative clutter. They stop a fresh LOC:FUNC from being joined to an argument for another segment, another broadcast domain or another path epoch.

A useful composition record names the received paths and the association used. “Type 1 and Type 3 exist” is too weak. It should say which originator advertised which route, for which EVI and Ethernet Segment, under which best paths, at what observation time, after which withdrawals, and with which End.DT2M flavor. Route receipt is not freshness; a current RIB view is not proof that every downstream cache or programmed object consumed the same generation.

Compression makes precision more important, not less. RFC 9800 defines compressed SID-list behaviors. RFC 9819 permits compressed and uncompressed End.DT2M flavors to appear in the relevant advertisements if the AL checks succeed. It does not permit the receiver to erase the behavior flavor or structure from the record. Nor does it change RFC 9252's Transposition Scheme: when variable bits travel in an MPLS label field, transposition offset, length and field limits remain independent validation inputs.

A constructed SID stops short of the network result

RFC 9819 directly specifies signaling, consistency checks and construction. It does not claim that a conforming calculation was selected by policy, written to hardware or executed by a packet. Those are later authorities.

The ingress must show its supported behavior, feature version and chosen construction method. It must show whether the route remained eligible and selected. The programming layer must show the completed 128-bit destination, next hop or encapsulation and generation. The egress must show that the corresponding local SID invokes the intended End.DT2M flavor, L2 table and current Arg.FE2 mapping.

Only packet evidence can then show decapsulation and exclusion of the correct output interfaces. Even correct split-horizon execution is not the final customer result. The intended recipients must receive the BUM traffic, forbidden copies must not return to the originating segment, and duplicates or loops must remain absent for the same observation window.

This boundary keeps adjacent standards in their proper place. RFC 9819 is not RFC 9830's BGP-to-SR-Policy-Manager candidate selection, RFC 9863's PCEP Color semantics, RFC 10039's interdomain D-PATH declaration, or RFC 10018's P2MP tree and per-leaf delivery lifecycle. It addresses the narrower moment before any of those larger claims: whether two advertised components can be formed into the intended Service SID without inventing a shared structure.

Heng Lu's Minimum Initial Specification provides the editorial discipline. Keep the common rule deterministic and locally verifiable; leave later operational decisions with the participants running the system. Running-Code Primacy adds the limit that publication is not operation, while Reality Layers warns against mistaking a symbolic declaration for physical effect. These are this author's analytical framework, not claims about IETF intent.

The defensible chain has eight receipts: route identity and freshness; behavior and structure; cross-route association; exact construction; local acceptance and selection; programmed ingress and egress state; packet execution; observed service outcome. RFC 9819 makes the middle of that chain much harder to fake with a bitwise operation. It does not collapse the chain into one green light.

Sources