Partial

RFC 7432 - BGP MPLS-Based Ethernet VPN

Every requirement this repository extracted from RFC 7432, the tests bound to it, and what a reader has verified about them. This summary is enrolled and gated by ./le rfc check.

Overview

Positive

what Ze has

Tested both ways16.7%3 of 18 binding obligations

a positive test proves Ze does what the requirement demands and a negative one proves it refuses what the requirement forbids

One polarity plus reason0.0%0 of 18 binding obligations

the requirement admits no counter-case, so one polarity plus a recorded reason is the whole proof available for it

One polarity, unexcused0.0%0 of 18 binding obligations

one direction is tested, the other is neither tested nor excused, and nothing states which

Proven by a recorded break0.0%0 of 6 tagged units

a red was observed once under a recorded procedure, and the unit, the claim and the producer it rested on still hash to what was recorded. The break is not re-run. A test pair is not a proof until one has been observed

Neutral

measures that are neither good news nor bad

Gated MUSTs82of 99 this summary declares

MUST-level requirements the gate HOLDS. A population, not a result: the shares beside it are what says how Ze stands

Out of scope64of 82 gated MUSTs

a {not-applicable} annotation says the obligation does not bind Ze. Scope, not coverage: it is in no share below

Negative

what Ze owes

No test at all83.3%15 of 18 binding obligations

no test carries the requirement id, whether or not a gap states why

The 4 shares marked as a part above are the whole of the 18 obligations that bind Ze: they add to 100%. Proven by a recorded break is a share of TAGGED UNITS, a different population, so it is not one of them.

How to read the colors

A color names what the measure MEANS, not how well Ze scores on it. Green is a good outcome at any value, red is a bad one, and neither a population nor a scope count is an outcome, so both take no color. The number under the label is what says how far Ze has got.

CardTone hereWhy that color
Gated MUSTs neutral no color: a population is a scale, and a larger one is neither good news nor bad. It is the accounting total
Out of scope neutral no color: an obligation that never bound Ze is neither an achievement nor a failure, and counting it either way would be a claim
Tested both ways ok green at every value: a test pair is the outcome this gate exists to produce, and the share under the label is what says how far Ze has got
One polarity plus reason ok green at every value: where no counter-case exists, one polarity IS the complete answer, and a recorded reason is what the gate demands beside it
One polarity, unexcused ok green at zero, RED above it: half a proof with no reason for the other half
No test at all bad green at zero, RED above it: a binding obligation nothing exercises is a claim with nothing behind it, whether or not a reason is stated
Proven by a recorded break ok green at every value: an observed break is the outcome the discrimination gate exists to produce. The denominator is TAGGED UNITS, not obligations, so this share is not one of the parts above
Audit verdicts warn RED on the first weak, wrong or unimplemented verdict, amber while a verdict is no longer current or a gated MUST is unjudged, green when every one is judged sound and current

At a glance

FieldValue
Public status Partial
Enrolment Enrolled
Requirements 99
Gated MUST-level 82
Obligations that bind Ze 18
Not applicable, so out of scope 64
Declared gaps 15
Gated with no test 0
Nightly-only evidence 0
Test tags 8
Tagged units 6
Recorded audit verdicts 0
Discrimination records 0
Summary rfc/short/rfc7432.md
Requirement shard rfc/requirements/rfc7432.md
RFC text rfc/full/rfc7432.txt

Enrolment

Enrolled: BGP MPLS-Based Ethernet VPN (EVPN)

What the public ledger says

Status: Partial

What the ledger says is covered EVPN NLRI family (AFI 25 / SAFI 70), common [route-type][length][body] header, and the route-type 1-4 codecs: Route Distinguisher, the 10-octet Ethernet Segment Identifier, Ethernet Tag ID, the 48-bit / 6-octet 802.1Q MAC address, the 0/32/128-bit IP Address Length, Originating Router's IP Address, and the MPLS label stack, plus ADD-PATH framing and the EVPN MP_REACH_NLRI UPDATE builder (internal/component/bgp/plugins/nlri/evpn/types.go, internal/component/bgp/message/update_build_evpn.go). Tests bound per requirement in rfc/requirements/rfc7432.md.
What the ledger says remains Fifteen MUST gaps annotated in rfc/short/rfc7432.md: RFC7432-7.9-1/-2/-3 (the RD is per configured route, with no MAC-VRF binding and no uniqueness check), 8.2.1-1/-2 (no per-ES versus per-EVI Ethernet A-D distinction, so MAX-ET and the zero NLRI label are unenforced), 8.1.1-1 (an Ethernet Segment route accepts any RD type, not only Type 1), 9.2.1-2 (an EVPN route with no configured next hop is advertised with next hop 0.0.0.0 instead of the advertising PE address), 9.2.1-3 (Label1 is operator-supplied, with no local label allocation), and 8.2.1-8 / 9.2.1-4 / 8.4.1-1 / 11.1-2 (route targets are attached only when pre-packed by the caller), 8.2.1-3 and 8.1.1-2 (neither the Ethernet A-D per ES route nor the Ethernet Segment route can be originated from a session: NewEVPNType1 and NewEVPNType4 (internal/component/bgp/plugins/nlri/evpn/encode.go) are reached only from the offline ze bgp encode hex tool, while the session origination path buildEVPNFromParams admits route types 2, 3 and 5 only. No ESI Label extended community is attached on any path, and the codec defines no type 0x06 sub-type 0x01 value), plus 11.1-1 (the Inclusive Multicast Originating Router's IP is per route). Sixty-four further MUSTs bind PE roles ze does not play: it is a BGP speaker with no MAC-VRF or EVI model, no bridge or MAC learning, no ARP/ND cache, no EVPN forwarding plane, no ES-Import or MAC Mobility or Default Gateway extended community, no PMSI Tunnel attribute, no designated-forwarder election, and no split-horizon, aliasing, or BUM replication.

Coverage

BucketCountWhat it counts
Positive and negative tests 3 one part of the gated population
Annotated instead of tested 79 one part of the gated population
One polarity only 0 one part of the gated population
No test and no annotation 0 one part of the gated population
Evidence that runs nightly only 0 an overlay: each of these is also counted by the part it falls in
Gated MUST-level requirements82every gated MUST falls in exactly one bucket above

Positive and negative tests (3): RFC7432-5-1, RFC7432-9.2.1-1, RFC7432-10-1

Annotated instead of tested (79): RFC7432-7.9-1, RFC7432-7.9-2, RFC7432-7.9-3, RFC7432-8.2.1-1, RFC7432-8.2.1-2, RFC7432-8.2.1-3, RFC7432-8.2.1-4, RFC7432-8.2.1-5, RFC7432-8.2.1-6, RFC7432-8.2.1-7, RFC7432-8.2.1-8, RFC7432-8.1.1-1, RFC7432-8.1.1-2, RFC7432-7.6-1, RFC7432-7.6-2, RFC7432-11-1, RFC7432-9.2.1-2, RFC7432-9.2.1-3, RFC7432-9.1-1, RFC7432-9.2.1-4, RFC7432-8.4.1-1, RFC7432-10-2, RFC7432-10-3, RFC7432-10-4, RFC7432-11.1-1, RFC7432-11.1-2, RFC7432-11.2-1, RFC7432-11.2-2, RFC7432-11.2-3, RFC7432-6.1-1, RFC7432-6.1-2, RFC7432-6.2-1, RFC7432-6.3-1, RFC7432-6.3-2, RFC7432-8.3.1.1-1, RFC7432-8.3.1.2-1, RFC7432-8.3.1-1, RFC7432-15-1, RFC7432-15-2, RFC7432-15.1-1, RFC7432-15.1-2, RFC7432-15.2-1, RFC7432-10.1-1, RFC7432-17.3-1, RFC7432-14.1.1-1, RFC7432-8.4-1, RFC7432-8.3.1.1-2, RFC7432-8.3.1.1-3, RFC7432-5-3, RFC7432-5-4, RFC7432-5-5, RFC7432-5-6, RFC7432-5-7, RFC7432-5-8, RFC7432-5-9, RFC7432-5-10, RFC7432-5-11, RFC7432-5-12, RFC7432-5-13, RFC7432-12-1, RFC7432-12.1-1, RFC7432-12.1-2, RFC7432-12.2-1, RFC7432-13.1-1, RFC7432-13.1-2, RFC7432-13.1-3, RFC7432-13.1-4, RFC7432-13.1-5, RFC7432-14.1-1, RFC7432-14.1.1-2, RFC7432-14.1.1-3, RFC7432-14.1.2-1, RFC7432-14.1.2-2, RFC7432-9.2.2-1, RFC7432-9.2.2-2, RFC7432-10.1-4, RFC7432-9.2.1-5, RFC7432-6.2-2, RFC7432-6.3-3

Requirements

RequirementLevelSectionTests
RFC7432-7.9-1RD MUST be set to the RD of the MAC-VRF advertising the NLRI (§7.9)
MUST 7.9
positiveno testno positive test
negativeno testno negative test

{gap}: the RD of an EVPN NLRI is whatever the route command supplies -- l2vpnRouteToEVPNParams parses it with ParseRDString and hands it straight to the NLRI constructors (internal/component/bgp/plugins/nlri/evpn/encode.go:71-78) -- and ze holds no MAC-VRF whose RD the advertisement could be required to match

RFC7432-7.9-2An RD MUST be assigned for a given MAC-VRF on a PE (§7.9)
MUST 7.9
positiveno testno positive test
negativeno testno negative test

{gap}: parseL2VPNArgs refuses a route with an empty route-distinguisher (internal/component/bgp/plugins/nlri/evpn/encode.go:240-242), so every advertised EVPN NLRI does carry an RD, but the unit of assignment is the configured route and ze has no MAC-VRF construct nor any per-MAC-VRF RD allocation

RFC7432-7.9-3RD MUST be unique across all MAC-VRFs on a PE (§7.9)
MUST 7.9
positiveno testno positive test
negativeno testno negative test

{gap}: each route command's RD is parsed on its own (internal/component/bgp/plugins/nlri/evpn/encode.go:73-77) and no code compares it against the RDs already in use, so nothing enforces uniqueness across instances

RFC7432-5-1Ethernet Segment Identifier MUST be a 10-octet entity (§5, §8.2.1)
MUST 5
positiveunit/verifyTestEVPNESIIsTenOctets
negativeunit/verifyTestEVPNESIIsTenOctets
RFC7432-8.2.1-1For per-ES A-D route, Ethernet Tag ID MUST be set to MAX-ET (0xFFFFFFFF) (§8.2.1)
MUST 8.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: NewEVPNType1 stores the operator-supplied Ethernet Tag unchanged (internal/component/bgp/plugins/nlri/evpn/encode.go:90-95) and parseEVPNType1 reads it back verbatim (internal/component/bgp/plugins/nlri/evpn/types.go:281); ze draws no per-ES versus per-EVI distinction and never forces MAX-ET

RFC7432-8.2.1-2For per-ES A-D route, MPLS label in the NLRI MUST be set to 0 (§8.2.1)
MUST 8.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: the Ethernet A-D encoder attaches whichever label the route command carries (internal/component/bgp/plugins/nlri/evpn/encode.go:91-95), with no rule that zeroes the NLRI label for a per-ES route

RFC7432-8.2.1-3ESI Label extended community MUST be included in per-ES A-D route (§8.2.1)
MUST 8.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: the route this obligation attaches to cannot be originated from a session, and the ESI Label extended community has no producer at all. NewEVPNType1 has one non-test caller, EncodeRoute (internal/component/bgp/plugins/nlri/evpn/encode.go:95), which is registered only as InProcessRouteEncoder (internal/component/bgp/plugins/nlri/evpn/register.go:42) and resolved only by registry.RouteEncoderByFamily (internal/component/plugin/registry/registry.go:856), whose one non-test caller is the offline hex tool cmdEncode (internal/component/bgp/cli/encode.go:149). The session origination path is buildEVPNFromParams (internal/component/bgp/plugins/nlri/evpn/plugin.go:227), which admits route types 2, 3 and 5 only, and the family registers no InProcessConfigRouteParser, so no configured route reaches route type 1 either. No ESI Label extended community is ever attached on any path: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches only unrelated OSPF SID/Label helpers, the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and BuildEVPN emits an EXTENDED_COMMUNITIES attribute only from the caller-supplied pre-packed ExtCommunityBytes (internal/component/bgp/message/update_build_evpn.go), which l2vpnRouteToEVPNParams never fills. Disclosed in docs/features/rfc-status.md

RFC7432-8.2.1-4For all-active mode, Single-Active bit MUST be 0 and ESI label MUST be a valid downstream assigned MPLS label (§8.2.1)
MUST 8.2.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and ze signals no all-active redundancy mode

RFC7432-8.2.1-5ESI label MUST have the same value in each Ethernet A-D per ES route for the ES (§8.2.1)
MUST 8.2.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, so there is no per-ES label value to keep consistent

RFC7432-8.2.1-6For P2MP LSPs, ESI label MUST be an upstream assigned MPLS label (§8.2.1)
MUST 8.2.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and ze sets up no P2MP LSP, so no upstream-assigned label is allocated

RFC7432-8.2.1-7For single-active mode, Single-Active bit MUST be set to 1 (§8.2.1)
MUST 8.2.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and ze signals no single-active redundancy mode

RFC7432-8.2.1-8Each Ethernet A-D per ES route MUST carry one or more RT attributes (§8.2.1)
MUST 8.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: BuildEVPN emits an EXTENDED_COMMUNITIES attribute only when the caller hands it pre-packed bytes (internal/component/bgp/message/update_build_evpn.go:118-124), and l2vpnRouteToEVPNParams never fills ExtCommunityBytes (internal/component/bgp/plugins/nlri/evpn/encode.go:64-124), so an Ethernet A-D per ES route configured without a route target is advertised carrying none

RFC7432-8.1.1-1RD for Ethernet Segment route MUST be a Type 1 RD (§8.1.1)
MUST 8.1.1
positiveno testno positive test
negativeno testno negative test

{gap}: the Ethernet Segment encoder accepts any RD type -- l2vpnRouteToEVPNParams passes the parsed RD to NewEVPNType4 unchecked (internal/component/bgp/plugins/nlri/evpn/encode.go:111-112) and parseEVPNType4 accepts every RD type ParseRouteDistinguisher returns (internal/component/bgp/plugins/nlri/evpn/types.go:642-646)

RFC7432-8.1.1-2Ethernet Segment route MUST carry an ESI Label extended community (§8.1.1)
MUST 8.1.1
positiveno testno positive test
negativeno testno negative test

{gap}: the route this obligation attaches to cannot be originated from a session, and the ESI Label extended community has no producer at all. NewEVPNType4 has one non-test caller, EncodeRoute (internal/component/bgp/plugins/nlri/evpn/encode.go:112), which is registered only as InProcessRouteEncoder (internal/component/bgp/plugins/nlri/evpn/register.go:42) and resolved only by registry.RouteEncoderByFamily (internal/component/plugin/registry/registry.go:856), whose one non-test caller is the offline hex tool cmdEncode (internal/component/bgp/cli/encode.go:149). The session origination path is buildEVPNFromParams (internal/component/bgp/plugins/nlri/evpn/plugin.go:227), which admits route types 2, 3 and 5 only, and the family registers no InProcessConfigRouteParser, so no configured route reaches route type 4 either. No ESI Label extended community is ever attached on any path: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches only unrelated OSPF SID/Label helpers, the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and BuildEVPN emits an EXTENDED_COMMUNITIES attribute only from the caller-supplied pre-packed ExtCommunityBytes (internal/component/bgp/message/update_build_evpn.go), which l2vpnRouteToEVPNParams never fills. Disclosed in docs/features/rfc-status.md

RFC7432-7.6-1Ethernet Segment route filtering MUST ensure route reaches all PEs attached to the ES (§7.6)
MUST 7.6
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze has no ES-Import route target and no Ethernet-segment-scoped distribution logic: grep -rni 'es-import|esimport' --include=*.go over internal/ and pkg/ matches only an unrelated IANA service name in internal/core/portname/services_table.go

RFC7432-7.6-2A BGP speaker implementing RT Constraint MUST apply the RT Constraint procedures to the ES-Import RT (§7.6)
MUST 7.6
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze implements no RT Constraint procedures: the rtc plugin is an NLRI codec alone (internal/component/bgp/plugins/nlri/rtc/types.go:97 parses, :186 writes) and grep -rni 'rtc' over internal/component/bgp/reactor, internal/component/bgp/rib and internal/component/bgp/plugins/rib matches only two comments naming RTC as a non-CIDR family, so no route-target-based filtering exists to extend to an ES-Import RT

RFC7432-11-1Each PE MUST advertise an Inclusive Multicast Ethernet Tag route (§11)
MUST 11
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no EVI or MAC-VRF: grep -rn '\bEVI\b' --include=*.go over internal/component/bgp matches nothing and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing, so no per-instance origination duty is expressed anywhere; the Inclusive Multicast codec advertises only what an operator asks for

RFC7432-9.2.1-1Encoding of a MAC address MUST be the 6-octet format specified by 802.1Q (§9.2.1)
MUST 9.2.1
positiveunit/verifyTestEVPNMACAddressLength
negativeunit/verifyTestEVPNMACAddressLength
RFC7432-9.2.1-2Next Hop field of MP_REACH_NLRI MUST be set to the IPv4 or IPv6 address of the advertising PE (§9.2.1, §11.1)
MUST 9.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: buildMPReachEVPN writes the configured next hop but substitutes the 4-octet 0.0.0.0 whenever the next hop is unset (internal/component/bgp/message/update_build_evpn.go:161-165), and parseL2VPNArgs treats next-hop as an optional keyword (internal/component/bgp/plugins/nlri/evpn/encode.go:227-232), so an EVPN route reaches the wire with a next hop that is not the advertising PE's address

RFC7432-9.2.1-3MPLS Label1 MUST be downstream assigned (§9.2.1)
MUST 9.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: Label1 is the number typed into the route command (internal/component/bgp/plugins/nlri/evpn/encode.go:101-107); ze allocates no local label space for EVPN, so nothing makes the advertised label downstream assigned

RFC7432-9.1-1PEs MUST support local data-plane learning using standard IEEE Ethernet learning procedures (§9.1)
MUST 9.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze runs no bridge and keeps no MAC table: the EVPN feature is the NLRI codec at internal/component/bgp/plugins/nlri/evpn/types.go plus the UPDATE builder at internal/component/bgp/message/update_build_evpn.go, and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing

RFC7432-9.2.1-4MAC/IP Advertisement route MUST carry one or more RT attributes (§9.2.1)
MUST 9.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: BuildEVPN emits an EXTENDED_COMMUNITIES attribute only when the caller hands it pre-packed bytes (internal/component/bgp/message/update_build_evpn.go:118-124), and l2vpnRouteToEVPNParams never fills ExtCommunityBytes (internal/component/bgp/plugins/nlri/evpn/encode.go:64-124), so a MAC/IP Advertisement route configured without a route target is advertised carrying none

RFC7432-8.4.1-1Ethernet A-D per EVI route MUST carry one or more RT attributes (§8.4.1)
MUST 8.4.1
positiveno testno positive test
negativeno testno negative test

{gap}: BuildEVPN emits an EXTENDED_COMMUNITIES attribute only when the caller hands it pre-packed bytes (internal/component/bgp/message/update_build_evpn.go:118-124), and l2vpnRouteToEVPNParams never fills ExtCommunityBytes (internal/component/bgp/plugins/nlri/evpn/encode.go:64-124), so an Ethernet A-D per EVI route configured without a route target is advertised carrying none

RFC7432-10-1IP Address Length field MUST be 0, 32, or 128 bits for ARP/ND purposes (§10)
MUST 10
positiveunit/verifyTestEVPNIPAddressLength
negativeunit/verifyTestEVPNIPAddressLength
RFC7432-10-2If a MAC is associated with multiple IPs, multiple MAC/IP Advertisement routes MUST be generated (§10)
MUST 10
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze keeps no IP-to-MAC binding table to enumerate: ze runs no bridge and keeps no MAC table: the EVPN feature is the NLRI codec at internal/component/bgp/plugins/nlri/evpn/types.go plus the UPDATE builder at internal/component/bgp/message/update_build_evpn.go, and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing

RFC7432-10-3When an IP-to-MAC binding is removed, the corresponding MAC/IP Advertisement route MUST be withdrawn (§10)
MUST 10
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze keeps no IP-to-MAC binding whose removal could drive a withdrawal: ze runs no bridge and keeps no MAC table: the EVPN feature is the NLRI codec at internal/component/bgp/plugins/nlri/evpn/types.go plus the UPDATE builder at internal/component/bgp/message/update_build_evpn.go, and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing

RFC7432-10-4On receiving MAC/IP withdrawal with IP but MAC remaining, PE MUST delete ARP table entry but not the MAC (§10)
MUST 10
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze keeps no ARP or ND cache to delete an entry from: ze runs no bridge and keeps no MAC table: the EVPN feature is the NLRI codec at internal/component/bgp/plugins/nlri/evpn/types.go plus the UPDATE builder at internal/component/bgp/message/update_build_evpn.go, and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing

RFC7432-11.1-1Originating Router's IP Address MUST be common for all EVIs on the PE (§11.1)
MUST 11.1
positiveno testno positive test
negativeno testno negative test

{gap}: NewEVPNType3 takes the Originating Router's IP Address from the per-route next hop (internal/component/bgp/plugins/nlri/evpn/encode.go:109-110), and ze holds no PE-wide originating address that would keep the field common across instances

RFC7432-11.1-2RT assignment per Section 7.10 MUST be followed for Inclusive Multicast route (§11.1)
MUST 11.1
positiveno testno positive test
negativeno testno negative test

{gap}: BuildEVPN emits an EXTENDED_COMMUNITIES attribute only when the caller hands it pre-packed bytes (internal/component/bgp/message/update_build_evpn.go:118-124), and l2vpnRouteToEVPNParams never fills ExtCommunityBytes (internal/component/bgp/plugins/nlri/evpn/encode.go:64-124), and no Section 7.10 route-target derivation exists, so an Inclusive Multicast route carries only the route targets an operator pre-packs

RFC7432-11.2-1Inclusive Multicast route with P-tunnel MUST carry a PMSI Tunnel attribute (§11.2)
MUST 11.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze parses no PMSI Tunnel attribute: internal/core/bgp/attribute/wire.go:419 lists PMSI among the known attribute codes that have no parser, and grep -rni 'pmsi' --include=*.go finds only MVPN route-type names

RFC7432-11.2-2Leaf Information Required flag of PMSI Tunnel attribute MUST be set to zero and MUST be ignored on receipt (§11.2)
MUST 11.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze parses no PMSI Tunnel attribute: internal/core/bgp/attribute/wire.go:419 lists PMSI among the known attribute codes that have no parser, and grep -rni 'pmsi' --include=*.go finds only MVPN route-type names

RFC7432-11.2-3For ingress replication P-tunnel, the PMSI Tunnel attribute MUST carry a downstream assigned MPLS label (§11.2)
MUST 11.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze parses no PMSI Tunnel attribute: internal/core/bgp/attribute/wire.go:419 lists PMSI among the known attribute codes that have no parser, and grep -rni 'pmsi' --include=*.go finds only MVPN route-type names

RFC7432-6.1-1VLAN-based service: VID translation MUST be supported in data path and performed on disposition PE (§6.1)
MUST 6.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), and no data path performs VID translation

RFC7432-6.1-2VLAN-based service: Ethernet Tag ID in all EVPN routes MUST be set to 0 (§6.1)
MUST 6.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189)

RFC7432-6.2-1VLAN bundle service: MAC addresses MUST be unique across all VLANs in the bundle (§6.2)
MUST 6.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), so no bundle of VLANs shares a MAC learning space

RFC7432-6.3-1VLAN-aware bundle (single VID per domain, no translation): MPLS-encapsulated packet MUST carry that VID (§6.3)
MUST 6.3
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), and ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists

RFC7432-6.3-2VLAN-aware bundle (VID translation required): normalized Ethernet Tag ID MUST be carried in EVPN BGP routes (§6.3)
MUST 6.3
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), so no VID normalization happens before origination

RFC7432-8.3.1.1-1Non-DF ingress PE MUST include ESI label distributed by egress PE in BUM packets (§8.3.1.1)
MUST 8.3.1.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, and ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value

RFC7432-8.3.1.2-1Penultimate hop popping MUST be disabled on P2MP LSPs used in MPLS transport (§8.3.1.2)
MUST 8.3.1.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze builds no P2MP LSP and controls no penultimate hop popping: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing

RFC7432-8.3.1-1ESI label MUST be programmed in forwarding plane by all PEs that receive ES route (§8.3.1)
MUST 8.3.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists

RFC7432-15-1Implementation MUST handle sequence number wraparound in MAC Mobility (§15)
MUST 15
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing

RFC7432-15-2All advertisements of MAC reachable via previous ES MUST be withdrawn on MAC move (§15)
MUST 15
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing, so no MAC move is observed and nothing is withdrawn

RFC7432-15.1-1PE MUST alert operator and stop processing MAC/IP routes on duplicate MAC detection (N moves in M seconds) (§15.1)
MUST 15.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing, so no duplicate-MAC counter or operator alert exists

RFC7432-15.1-2Values of M and N for duplicate MAC detection MUST be configurable (§15.1)
MUST 15.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing, so the M and N duplicate-detection parameters have nothing to configure

RFC7432-15.2-1PE receiving sticky MAC and learning same MAC locally MUST alert operator (§15.2)
MUST 15.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing, so the sticky flag is never read and local learning never happens

RFC7432-10.1-1Default gateway route MUST carry Default Gateway Extended Community (§10.1)
MUST 10.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze has no Default Gateway extended community: grep -rni 'default.gateway' --include=*.go over internal/core/bgp/attribute matches nothing, and no default-gateway route origination exists

RFC7432-17.3-1On PE-to-CE link failure, PE MUST withdraw Ethernet A-D per ES, per EVI routes, and MAC/IP Advertisement routes (§17.3)
MUST 17.3
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no PE-to-CE attachment circuit: grep -rni 'attachment circuit|pe.to.ce' --include=*.go over internal/ matches nothing, so no link event drives an EVPN withdrawal

RFC7432-14.1.1-1Single-active redundancy: ESI Label Extended Community MUST have Single-Active bit set (§14.1.1)
MUST 14.1.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value

RFC7432-8.4-1Ethernet A-D per EVI route MUST NOT be used for traffic forwarding until per-ES routes received (§8.4)
MUST NOT 8.4
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists, so no route ever becomes a forwarding entry to withhold

RFC7432-8.3.1.1-2Ingress PE MUST NOT include ESI label in BUM packet sent to PE not on same ES (§8.3.1.1)
MUST NOT 8.3.1.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, and ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value

RFC7432-8.3.1.1-3When ESI label matches, egress PE MUST NOT forward packet onto that ES (split-horizon) (§8.3.1.1, §8.3.1.2)
MUST NOT 8.3.1.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, and ze holds no Ethernet segment state and elects no designated forwarder: grep -rni 'designated.forwarder|df.election|split.horizon' --include=*.go over internal/ and pkg/ matches only a prose comment in the EVPN codec tests, never code

RFC7432-5-2Ethernet segment SHOULD have a non-reserved ESI (§5)
SHOULD 5
positiveno testno positive test
negativeno testno negative test
RFC7432-7.9-4Use Type 1 RD for MAC-VRF (§7.9)
SHOULD 7.9
positiveno testno positive test
negativeno testno negative test
RFC7432-8.4-2Remote PE receiving MAC/IP route with non-reserved ESI SHOULD consider MAC reachable via all PEs advertising that ES (§8.4)
SHOULD 8.4
positiveno testno positive test
negativeno testno negative test
RFC7432-10-5PE SHOULD perform ARP proxy when it has the MAC binding for a requested IP (§10)
SHOULD 10
positiveno testno positive test
negativeno testno negative test
RFC7432-8.5-1PE that becomes elected DF SHOULD trigger a MAC address flush notification (§8.5)
SHOULD 8.5
positiveno testno positive test
negativeno testno negative test
RFC7432-8.3.1-2ESI label SHOULD be distributed by all PEs in single-active mode (§8.3.1)
SHOULD 8.3.1
positiveno testno positive test
negativeno testno negative test
RFC7432-8.3.1.1-4Ingress PE (DF or non-DF) SHOULD include ESI label for known unicast to multihomed ES (§8.3.1.1)
SHOULD 8.3.1.1
positiveno testno positive test
negativeno testno negative test
RFC7432-8.6-1DF election procedures SHOULD be supported even by single-homing PEs (§8.6)
SHOULD 8.6
positiveno testno positive test
negativeno testno negative test
RFC7432-10.1-2PE SHOULD notify operator on default gateway discrepancy (§10.1)
SHOULD 10.1
positiveno testno positive test
negativeno testno negative test
RFC7432-9.1-2PEs MAY learn MAC addresses via control plane or management plane integration (§9.1)
MAY 9.1
positiveno testno positive test
negativeno testno negative test
RFC7432-11.2-4A PE MAY aggregate two or more EVPN instances onto the same P-multicast tree (§11.2)
MAY 11.2
positiveno testno positive test
negativeno testno negative test
RFC7432-10.1-3Each PE acting as default gateway MAY advertise a MAC/IP route with Default Gateway Extended Community (§10.1)
MAY 10.1
positiveno testno positive test
negativeno testno negative test
RFC7432-5-3ESI Type 1: CE LACP System MAC address MUST be encoded in high-order 6 octets of ESI Value (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-4ESI Type 1: CE LACP Port Key MUST be encoded in the 2 octets next to System MAC address (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-5ESI Type 2: Root Bridge MAC address MUST be encoded in high-order 6 octets of ESI Value (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-6ESI Type 2: Root Bridge Priority MUST be encoded in the 2 octets next to Root Bridge MAC address (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-7ESI Type 3: System MAC address MUST be encoded in high-order 6 octets of ESI Value (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-8ESI Type 3: Local Discriminator value MUST be encoded in low-order 3 octets of ESI Value (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-9ESI Type 4: Router ID MUST be encoded in high-order 4 octets of ESI Value (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-10ESI Type 4: Local Discriminator MUST be encoded in 4 octets next to IP address (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-11ESI Type 5: AS number MUST be encoded in high-order 4 octets of ESI Value (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-12ESI Type 5: Local Discriminator MUST be encoded in 4 octets next to AS number (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists

RFC7432-5-13If CE(s) is not managed, operator MUST configure a non-reserved ESI for multihomed segments (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no multihomed Ethernet segment and no managed CE: ze holds no Ethernet segment state and elects no designated forwarder: grep -rni 'designated.forwarder|df.election|split.horizon' --include=*.go over internal/ and pkg/ matches only a prose comment in the EVPN codec tests, never code; the ESI is operator-provided text parsed by ParseESIString (internal/component/bgp/plugins/nlri/evpn/types.go:119)

RFC7432-12-1PE receiving BUM packet from another PE MUST NOT send the frame to other PEs (§12)
MUST NOT 12
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing

RFC7432-12.1-1PE receiving packet with ingress replication label MUST treat it as BUM traffic (§12.1)
MUST 12.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, so no received label is classified as BUM

RFC7432-12.1-2PE receiving unicast MAC in BUM-labeled packet MUST treat it as unknown unicast (§12.1)
MUST 12.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, so no received frame is classified as unknown unicast

RFC7432-12.2-1PE receiving packet on P2MP LSP from PMSI Tunnel attribute MUST treat it as BUM traffic (§12.2)
MUST 12.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze parses no PMSI Tunnel attribute: internal/core/bgp/attribute/wire.go:419 lists PMSI among the known attribute codes that have no parser, and grep -rni 'pmsi' --include=*.go finds only MVPN route-type names, and ze receives no P2MP LSP traffic

RFC7432-13.1-1When flooding unknown unicast, PE MUST flood to other PEs and MUST first encapsulate with ESI label (§13.1)
MUST 13.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing

RFC7432-13.1-2If ingress replication for unknown unicast, packet MUST be replicated to each remote PE with the PMSI label (§13.1)
MUST 13.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing

RFC7432-13.1-3If P2MP LSPs for unknown unicast, packet MUST be sent on the P2MP LSP of which PE is root (§13.1)
MUST 13.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing

RFC7432-13.1-4If same P2MP LSP is used for all Ethernet tags, all PEs in the EVPN instance MUST be leaves (§13.1)
MUST 13.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing

RFC7432-13.1-5If no flooding allowed and MAC unknown, PE MUST drop the packet (§13.1)
MUST 13.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, so no packet is dropped for an unknown MAC

RFC7432-14.1-1When importing MAC/IP route for an ESI, remote PE MUST examine all imported Ethernet A-D routes for that ESI (§14.1)
MUST 14.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists, so importing a MAC/IP route triggers no correlation with Ethernet A-D routes

RFC7432-14.1.1-2If Single-Active flag is set in ESI Label extended community, remote PE MUST deduce Single-Active redundancy mode (§14.1.1)
MUST 14.1.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, so a receiving speaker deduces no redundancy mode

RFC7432-14.1.1-3For Single-Active with multiple backup PEs, remote PE MUST use primary PE withdrawal to start flooding (§14.1.1)
MUST 14.1.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists, so no primary or backup PE state and no flooding decision exists

RFC7432-14.1.2-1If no Single-Active flag in any ES route, remote PE MUST deduce All-Active redundancy mode (§14.1.2)
MUST 14.1.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, so a receiving speaker deduces no redundancy mode

RFC7432-14.1.2-2Remote PE MUST use received MAC/IP and Ethernet A-D routes to build ECMP forwarding for All-Active ES (§14.1.2)
MUST 14.1.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists, so no ECMP set is built from EVPN routes

RFC7432-9.2.2-1If ESI is reserved (0 or MAX-ESI), forwarding state MUST be based on MAC/IP route alone (§9.2.2)
MUST 9.2.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists

RFC7432-9.2.2-2If ESI is non-reserved, forwarding state for MAC MUST wait until both MAC/IP and Ethernet A-D per ES routes are received (§9.2.2)
MUST 9.2.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists

RFC7432-10.1-4Unless all PEs are known to be default gateways, MPLS label in default gateway route MUST be a valid downstream assigned label (§10.1)
MUST 10.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze has no Default Gateway extended community and allocates no label space for one: grep -rni 'default.gateway' --include=*.go over internal/core/bgp/attribute matches nothing

RFC7432-9.2.1-5PE creating MAC forwarding state from received MAC/IP routes MUST enable forwarding to remote destinations (§9.2.1)
MUST 9.2.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists

RFC7432-6.2-2VLAN-bundle service: MAC addresses MUST remain tagged with originating VID in MPLS encapsulation (§6.2)
MUST 6.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), and ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists

RFC7432-6.3-3VLAN-aware bundle with VID translation: Ethernet frames MUST remain tagged with normalized VID (§6.3)
MUST 6.3
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), and ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists

RFC7432-6.1-3VLAN-based service: Ethernet frames SHOULD remain tagged with originating VID in MPLS transport (§6.1)
SHOULD 6.1
positiveno testno positive test
negativeno testno negative test
RFC7432-17.3-2Remote PE receiving Ethernet A-D per ES withdrawal SHOULD consider all MAC/IP routes from that ESI as withdrawn (§17.3)
SHOULD 17.3
positiveno testno positive test
negativeno testno negative test
RFC7432-8.3.1.1-5Non-DF PE receiving BUM from CE SHOULD not forward it back to CEs on same ES (§8.3.1.1)
SHOULD 8.3.1.1
positiveno testno positive test
negativeno testno negative test
RFC7432-18-1Preferred PW MPLS Control Word SHOULD NOT be used when sending EVPN-encapsulated packets over pseudowire (§18)
SHOULD NOT 18
positiveno testno positive test
negativeno testno negative test
RFC7432-18-2Preferred PW MPLS Control Word SHOULD be used with the Ethernet pseudowire type (§18)
SHOULD 18
positiveno testno positive test
negativeno testno negative test

Gaps and untested MUSTs

RequirementStateReason
RFC7432-7.9-1 RD MUST be set to the RD of the MAC-VRF advertising the NLRI (§7.9) {gap}, no test the RD of an EVPN NLRI is whatever the route command supplies -- l2vpnRouteToEVPNParams parses it with ParseRDString and hands it straight to the NLRI constructors (internal/component/bgp/plugins/nlri/evpn/encode.go:71-78) -- and ze holds no MAC-VRF whose RD the advertisement could be required to match
RFC7432-7.9-2 An RD MUST be assigned for a given MAC-VRF on a PE (§7.9) {gap}, no test parseL2VPNArgs refuses a route with an empty route-distinguisher (internal/component/bgp/plugins/nlri/evpn/encode.go:240-242), so every advertised EVPN NLRI does carry an RD, but the unit of assignment is the configured route and ze has no MAC-VRF construct nor any per-MAC-VRF RD allocation
RFC7432-7.9-3 RD MUST be unique across all MAC-VRFs on a PE (§7.9) {gap}, no test each route command's RD is parsed on its own (internal/component/bgp/plugins/nlri/evpn/encode.go:73-77) and no code compares it against the RDs already in use, so nothing enforces uniqueness across instances
RFC7432-8.2.1-1 For per-ES A-D route, Ethernet Tag ID MUST be set to MAX-ET (0xFFFFFFFF) (§8.2.1) {gap}, no test NewEVPNType1 stores the operator-supplied Ethernet Tag unchanged (internal/component/bgp/plugins/nlri/evpn/encode.go:90-95) and parseEVPNType1 reads it back verbatim (internal/component/bgp/plugins/nlri/evpn/types.go:281); ze draws no per-ES versus per-EVI distinction and never forces MAX-ET
RFC7432-8.2.1-2 For per-ES A-D route, MPLS label in the NLRI MUST be set to 0 (§8.2.1) {gap}, no test the Ethernet A-D encoder attaches whichever label the route command carries (internal/component/bgp/plugins/nlri/evpn/encode.go:91-95), with no rule that zeroes the NLRI label for a per-ES route
RFC7432-8.2.1-3 ESI Label extended community MUST be included in per-ES A-D route (§8.2.1) {gap}, no test the route this obligation attaches to cannot be originated from a session, and the ESI Label extended community has no producer at all. NewEVPNType1 has one non-test caller, EncodeRoute (internal/component/bgp/plugins/nlri/evpn/encode.go:95), which is registered only as InProcessRouteEncoder (internal/component/bgp/plugins/nlri/evpn/register.go:42) and resolved only by registry.RouteEncoderByFamily (internal/component/plugin/registry/registry.go:856), whose one non-test caller is the offline hex tool cmdEncode (internal/component/bgp/cli/encode.go:149). The session origination path is buildEVPNFromParams (internal/component/bgp/plugins/nlri/evpn/plugin.go:227), which admits route types 2, 3 and 5 only, and the family registers no InProcessConfigRouteParser, so no configured route reaches route type 1 either. No ESI Label extended community is ever attached on any path: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches only unrelated OSPF SID/Label helpers, the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and BuildEVPN emits an EXTENDED_COMMUNITIES attribute only from the caller-supplied pre-packed ExtCommunityBytes (internal/component/bgp/message/update_build_evpn.go), which l2vpnRouteToEVPNParams never fills. Disclosed in docs/features/rfc-status.md
RFC7432-8.2.1-4 For all-active mode, Single-Active bit MUST be 0 and ESI label MUST be a valid downstream assigned MPLS label (§8.2.1) no test no test carries this requirement id; annotated {not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and ze signals no all-active redundancy mode
RFC7432-8.2.1-5 ESI label MUST have the same value in each Ethernet A-D per ES route for the ES (§8.2.1) no test no test carries this requirement id; annotated {not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, so there is no per-ES label value to keep consistent
RFC7432-8.2.1-6 For P2MP LSPs, ESI label MUST be an upstream assigned MPLS label (§8.2.1) no test no test carries this requirement id; annotated {not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and ze sets up no P2MP LSP, so no upstream-assigned label is allocated
RFC7432-8.2.1-7 For single-active mode, Single-Active bit MUST be set to 1 (§8.2.1) no test no test carries this requirement id; annotated {not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and ze signals no single-active redundancy mode
RFC7432-8.2.1-8 Each Ethernet A-D per ES route MUST carry one or more RT attributes (§8.2.1) {gap}, no test BuildEVPN emits an EXTENDED_COMMUNITIES attribute only when the caller hands it pre-packed bytes (internal/component/bgp/message/update_build_evpn.go:118-124), and l2vpnRouteToEVPNParams never fills ExtCommunityBytes (internal/component/bgp/plugins/nlri/evpn/encode.go:64-124), so an Ethernet A-D per ES route configured without a route target is advertised carrying none
RFC7432-8.1.1-1 RD for Ethernet Segment route MUST be a Type 1 RD (§8.1.1) {gap}, no test the Ethernet Segment encoder accepts any RD type -- l2vpnRouteToEVPNParams passes the parsed RD to NewEVPNType4 unchecked (internal/component/bgp/plugins/nlri/evpn/encode.go:111-112) and parseEVPNType4 accepts every RD type ParseRouteDistinguisher returns (internal/component/bgp/plugins/nlri/evpn/types.go:642-646)
RFC7432-8.1.1-2 Ethernet Segment route MUST carry an ESI Label extended community (§8.1.1) {gap}, no test the route this obligation attaches to cannot be originated from a session, and the ESI Label extended community has no producer at all. NewEVPNType4 has one non-test caller, EncodeRoute (internal/component/bgp/plugins/nlri/evpn/encode.go:112), which is registered only as InProcessRouteEncoder (internal/component/bgp/plugins/nlri/evpn/register.go:42) and resolved only by registry.RouteEncoderByFamily (internal/component/plugin/registry/registry.go:856), whose one non-test caller is the offline hex tool cmdEncode (internal/component/bgp/cli/encode.go:149). The session origination path is buildEVPNFromParams (internal/component/bgp/plugins/nlri/evpn/plugin.go:227), which admits route types 2, 3 and 5 only, and the family registers no InProcessConfigRouteParser, so no configured route reaches route type 4 either. No ESI Label extended community is ever attached on any path: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches only unrelated OSPF SID/Label helpers, the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and BuildEVPN emits an EXTENDED_COMMUNITIES attribute only from the caller-supplied pre-packed ExtCommunityBytes (internal/component/bgp/message/update_build_evpn.go), which l2vpnRouteToEVPNParams never fills. Disclosed in docs/features/rfc-status.md
RFC7432-7.6-1 Ethernet Segment route filtering MUST ensure route reaches all PEs attached to the ES (§7.6) no test no test carries this requirement id; annotated {not-applicable}: ze has no ES-Import route target and no Ethernet-segment-scoped distribution logic: grep -rni 'es-import|esimport' --include=*.go over internal/ and pkg/ matches only an unrelated IANA service name in internal/core/portname/services_table.go
RFC7432-7.6-2 A BGP speaker implementing RT Constraint MUST apply the RT Constraint procedures to the ES-Import RT (§7.6) no test no test carries this requirement id; annotated {not-applicable}: ze implements no RT Constraint procedures: the rtc plugin is an NLRI codec alone (internal/component/bgp/plugins/nlri/rtc/types.go:97 parses, :186 writes) and grep -rni 'rtc' over internal/component/bgp/reactor, internal/component/bgp/rib and internal/component/bgp/plugins/rib matches only two comments naming RTC as a non-CIDR family, so no route-target-based filtering exists to extend to an ES-Import RT
RFC7432-11-1 Each PE MUST advertise an Inclusive Multicast Ethernet Tag route (§11) no test no test carries this requirement id; annotated {not-applicable}: ze models no EVI or MAC-VRF: grep -rn '\bEVI\b' --include=*.go over internal/component/bgp matches nothing and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing, so no per-instance origination duty is expressed anywhere; the Inclusive Multicast codec advertises only what an operator asks for
RFC7432-9.2.1-2 Next Hop field of MP_REACH_NLRI MUST be set to the IPv4 or IPv6 address of the advertising PE (§9.2.1, §11.1) {gap}, no test buildMPReachEVPN writes the configured next hop but substitutes the 4-octet 0.0.0.0 whenever the next hop is unset (internal/component/bgp/message/update_build_evpn.go:161-165), and parseL2VPNArgs treats next-hop as an optional keyword (internal/component/bgp/plugins/nlri/evpn/encode.go:227-232), so an EVPN route reaches the wire with a next hop that is not the advertising PE's address
RFC7432-9.2.1-3 MPLS Label1 MUST be downstream assigned (§9.2.1) {gap}, no test Label1 is the number typed into the route command (internal/component/bgp/plugins/nlri/evpn/encode.go:101-107); ze allocates no local label space for EVPN, so nothing makes the advertised label downstream assigned
RFC7432-9.1-1 PEs MUST support local data-plane learning using standard IEEE Ethernet learning procedures (§9.1) no test no test carries this requirement id; annotated {not-applicable}: ze runs no bridge and keeps no MAC table: the EVPN feature is the NLRI codec at internal/component/bgp/plugins/nlri/evpn/types.go plus the UPDATE builder at internal/component/bgp/message/update_build_evpn.go, and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing
RFC7432-9.2.1-4 MAC/IP Advertisement route MUST carry one or more RT attributes (§9.2.1) {gap}, no test BuildEVPN emits an EXTENDED_COMMUNITIES attribute only when the caller hands it pre-packed bytes (internal/component/bgp/message/update_build_evpn.go:118-124), and l2vpnRouteToEVPNParams never fills ExtCommunityBytes (internal/component/bgp/plugins/nlri/evpn/encode.go:64-124), so a MAC/IP Advertisement route configured without a route target is advertised carrying none
RFC7432-8.4.1-1 Ethernet A-D per EVI route MUST carry one or more RT attributes (§8.4.1) {gap}, no test BuildEVPN emits an EXTENDED_COMMUNITIES attribute only when the caller hands it pre-packed bytes (internal/component/bgp/message/update_build_evpn.go:118-124), and l2vpnRouteToEVPNParams never fills ExtCommunityBytes (internal/component/bgp/plugins/nlri/evpn/encode.go:64-124), so an Ethernet A-D per EVI route configured without a route target is advertised carrying none
RFC7432-10-2 If a MAC is associated with multiple IPs, multiple MAC/IP Advertisement routes MUST be generated (§10) no test no test carries this requirement id; annotated {not-applicable}: ze keeps no IP-to-MAC binding table to enumerate: ze runs no bridge and keeps no MAC table: the EVPN feature is the NLRI codec at internal/component/bgp/plugins/nlri/evpn/types.go plus the UPDATE builder at internal/component/bgp/message/update_build_evpn.go, and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing
RFC7432-10-3 When an IP-to-MAC binding is removed, the corresponding MAC/IP Advertisement route MUST be withdrawn (§10) no test no test carries this requirement id; annotated {not-applicable}: ze keeps no IP-to-MAC binding whose removal could drive a withdrawal: ze runs no bridge and keeps no MAC table: the EVPN feature is the NLRI codec at internal/component/bgp/plugins/nlri/evpn/types.go plus the UPDATE builder at internal/component/bgp/message/update_build_evpn.go, and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing
RFC7432-10-4 On receiving MAC/IP withdrawal with IP but MAC remaining, PE MUST delete ARP table entry but not the MAC (§10) no test no test carries this requirement id; annotated {not-applicable}: ze keeps no ARP or ND cache to delete an entry from: ze runs no bridge and keeps no MAC table: the EVPN feature is the NLRI codec at internal/component/bgp/plugins/nlri/evpn/types.go plus the UPDATE builder at internal/component/bgp/message/update_build_evpn.go, and grep -rni 'mac.vrf|macvrf' --include=*.go matches nothing
RFC7432-11.1-1 Originating Router's IP Address MUST be common for all EVIs on the PE (§11.1) {gap}, no test NewEVPNType3 takes the Originating Router's IP Address from the per-route next hop (internal/component/bgp/plugins/nlri/evpn/encode.go:109-110), and ze holds no PE-wide originating address that would keep the field common across instances
RFC7432-11.1-2 RT assignment per Section 7.10 MUST be followed for Inclusive Multicast route (§11.1) {gap}, no test BuildEVPN emits an EXTENDED_COMMUNITIES attribute only when the caller hands it pre-packed bytes (internal/component/bgp/message/update_build_evpn.go:118-124), and l2vpnRouteToEVPNParams never fills ExtCommunityBytes (internal/component/bgp/plugins/nlri/evpn/encode.go:64-124), and no Section 7.10 route-target derivation exists, so an Inclusive Multicast route carries only the route targets an operator pre-packs
RFC7432-11.2-1 Inclusive Multicast route with P-tunnel MUST carry a PMSI Tunnel attribute (§11.2) no test no test carries this requirement id; annotated {not-applicable}: ze parses no PMSI Tunnel attribute: internal/core/bgp/attribute/wire.go:419 lists PMSI among the known attribute codes that have no parser, and grep -rni 'pmsi' --include=*.go finds only MVPN route-type names
RFC7432-11.2-2 Leaf Information Required flag of PMSI Tunnel attribute MUST be set to zero and MUST be ignored on receipt (§11.2) no test no test carries this requirement id; annotated {not-applicable}: ze parses no PMSI Tunnel attribute: internal/core/bgp/attribute/wire.go:419 lists PMSI among the known attribute codes that have no parser, and grep -rni 'pmsi' --include=*.go finds only MVPN route-type names
RFC7432-11.2-3 For ingress replication P-tunnel, the PMSI Tunnel attribute MUST carry a downstream assigned MPLS label (§11.2) no test no test carries this requirement id; annotated {not-applicable}: ze parses no PMSI Tunnel attribute: internal/core/bgp/attribute/wire.go:419 lists PMSI among the known attribute codes that have no parser, and grep -rni 'pmsi' --include=*.go finds only MVPN route-type names
RFC7432-6.1-1 VLAN-based service: VID translation MUST be supported in data path and performed on disposition PE (§6.1) no test no test carries this requirement id; annotated {not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), and no data path performs VID translation
RFC7432-6.1-2 VLAN-based service: Ethernet Tag ID in all EVPN routes MUST be set to 0 (§6.1) no test no test carries this requirement id; annotated {not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189)
RFC7432-6.2-1 VLAN bundle service: MAC addresses MUST be unique across all VLANs in the bundle (§6.2) no test no test carries this requirement id; annotated {not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), so no bundle of VLANs shares a MAC learning space
RFC7432-6.3-1 VLAN-aware bundle (single VID per domain, no translation): MPLS-encapsulated packet MUST carry that VID (§6.3) no test no test carries this requirement id; annotated {not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), and ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists
RFC7432-6.3-2 VLAN-aware bundle (VID translation required): normalized Ethernet Tag ID MUST be carried in EVPN BGP routes (§6.3) no test no test carries this requirement id; annotated {not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), so no VID normalization happens before origination
RFC7432-8.3.1.1-1 Non-DF ingress PE MUST include ESI label distributed by egress PE in BUM packets (§8.3.1.1) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, and ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value
RFC7432-8.3.1.2-1 Penultimate hop popping MUST be disabled on P2MP LSPs used in MPLS transport (§8.3.1.2) no test no test carries this requirement id; annotated {not-applicable}: ze builds no P2MP LSP and controls no penultimate hop popping: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing
RFC7432-8.3.1-1 ESI label MUST be programmed in forwarding plane by all PEs that receive ES route (§8.3.1) no test no test carries this requirement id; annotated {not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, and ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists
RFC7432-15-1 Implementation MUST handle sequence number wraparound in MAC Mobility (§15) no test no test carries this requirement id; annotated {not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing
RFC7432-15-2 All advertisements of MAC reachable via previous ES MUST be withdrawn on MAC move (§15) no test no test carries this requirement id; annotated {not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing, so no MAC move is observed and nothing is withdrawn
RFC7432-15.1-1 PE MUST alert operator and stop processing MAC/IP routes on duplicate MAC detection (N moves in M seconds) (§15.1) no test no test carries this requirement id; annotated {not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing, so no duplicate-MAC counter or operator alert exists
RFC7432-15.1-2 Values of M and N for duplicate MAC detection MUST be configurable (§15.1) no test no test carries this requirement id; annotated {not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing, so the M and N duplicate-detection parameters have nothing to configure
RFC7432-15.2-1 PE receiving sticky MAC and learning same MAC locally MUST alert operator (§15.2) no test no test carries this requirement id; annotated {not-applicable}: ze has no MAC Mobility extended community and no MAC table: grep -rni 'mac.mobility|macmobility' --include=*.go over internal/ and pkg/ matches nothing, so the sticky flag is never read and local learning never happens
RFC7432-10.1-1 Default gateway route MUST carry Default Gateway Extended Community (§10.1) no test no test carries this requirement id; annotated {not-applicable}: ze has no Default Gateway extended community: grep -rni 'default.gateway' --include=*.go over internal/core/bgp/attribute matches nothing, and no default-gateway route origination exists
RFC7432-17.3-1 On PE-to-CE link failure, PE MUST withdraw Ethernet A-D per ES, per EVI routes, and MAC/IP Advertisement routes (§17.3) no test no test carries this requirement id; annotated {not-applicable}: ze models no PE-to-CE attachment circuit: grep -rni 'attachment circuit|pe.to.ce' --include=*.go over internal/ matches nothing, so no link event drives an EVPN withdrawal
RFC7432-14.1.1-1 Single-active redundancy: ESI Label Extended Community MUST have Single-Active bit set (§14.1.1) no test no test carries this requirement id; annotated {not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value
RFC7432-8.4-1 Ethernet A-D per EVI route MUST NOT be used for traffic forwarding until per-ES routes received (§8.4) no test no test carries this requirement id; annotated {not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists, so no route ever becomes a forwarding entry to withhold
RFC7432-8.3.1.1-2 Ingress PE MUST NOT include ESI label in BUM packet sent to PE not on same ES (§8.3.1.1) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, and ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value
RFC7432-8.3.1.1-3 When ESI label matches, egress PE MUST NOT forward packet onto that ES (split-horizon) (§8.3.1.1, §8.3.1.2) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, and ze holds no Ethernet segment state and elects no designated forwarder: grep -rni 'designated.forwarder|df.election|split.horizon' --include=*.go over internal/ and pkg/ matches only a prose comment in the EVPN codec tests, never code
RFC7432-5-3 ESI Type 1: CE LACP System MAC address MUST be encoded in high-order 6 octets of ESI Value (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-4 ESI Type 1: CE LACP Port Key MUST be encoded in the 2 octets next to System MAC address (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-5 ESI Type 2: Root Bridge MAC address MUST be encoded in high-order 6 octets of ESI Value (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-6 ESI Type 2: Root Bridge Priority MUST be encoded in the 2 octets next to Root Bridge MAC address (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-7 ESI Type 3: System MAC address MUST be encoded in high-order 6 octets of ESI Value (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-8 ESI Type 3: Local Discriminator value MUST be encoded in low-order 3 octets of ESI Value (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-9 ESI Type 4: Router ID MUST be encoded in high-order 4 octets of ESI Value (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-10 ESI Type 4: Local Discriminator MUST be encoded in 4 octets next to IP address (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-11 ESI Type 5: AS number MUST be encoded in high-order 4 octets of ESI Value (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-12 ESI Type 5: Local Discriminator MUST be encoded in 4 octets next to AS number (§5) no test no test carries this requirement id; annotated {not-applicable}: ze treats the ESI as ten opaque octets: ESI is declared as [10]byte at internal/component/bgp/plugins/nlri/evpn/types.go:95, ParseESIString reads hex or colon-hex text without inspecting the type octet, and grep -rn 'ESIType|esiType|esi\[0\]' --include=*.go over internal/ matches only a formatting call in internal/component/bgp/plugins/cmd/update/update_text_evpn.go:335, so no type-specific ESI construction exists
RFC7432-5-13 If CE(s) is not managed, operator MUST configure a non-reserved ESI for multihomed segments (§5) no test no test carries this requirement id; annotated {not-applicable}: ze models no multihomed Ethernet segment and no managed CE: ze holds no Ethernet segment state and elects no designated forwarder: grep -rni 'designated.forwarder|df.election|split.horizon' --include=*.go over internal/ and pkg/ matches only a prose comment in the EVPN codec tests, never code; the ESI is operator-provided text parsed by ParseESIString (internal/component/bgp/plugins/nlri/evpn/types.go:119)
RFC7432-12-1 PE receiving BUM packet from another PE MUST NOT send the frame to other PEs (§12) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing
RFC7432-12.1-1 PE receiving packet with ingress replication label MUST treat it as BUM traffic (§12.1) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, so no received label is classified as BUM
RFC7432-12.1-2 PE receiving unicast MAC in BUM-labeled packet MUST treat it as unknown unicast (§12.1) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, so no received frame is classified as unknown unicast
RFC7432-12.2-1 PE receiving packet on P2MP LSP from PMSI Tunnel attribute MUST treat it as BUM traffic (§12.2) no test no test carries this requirement id; annotated {not-applicable}: ze parses no PMSI Tunnel attribute: internal/core/bgp/attribute/wire.go:419 lists PMSI among the known attribute codes that have no parser, and grep -rni 'pmsi' --include=*.go finds only MVPN route-type names, and ze receives no P2MP LSP traffic
RFC7432-13.1-1 When flooding unknown unicast, PE MUST flood to other PEs and MUST first encapsulate with ESI label (§13.1) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing
RFC7432-13.1-2 If ingress replication for unknown unicast, packet MUST be replicated to each remote PE with the PMSI label (§13.1) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing
RFC7432-13.1-3 If P2MP LSPs for unknown unicast, packet MUST be sent on the P2MP LSP of which PE is root (§13.1) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing
RFC7432-13.1-4 If same P2MP LSP is used for all Ethernet tags, all PEs in the EVPN instance MUST be leaves (§13.1) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing
RFC7432-13.1-5 If no flooding allowed and MAC unknown, PE MUST drop the packet (§13.1) no test no test carries this requirement id; annotated {not-applicable}: ze forwards no BUM traffic for EVPN: it terminates BGP UPDATEs and has no bridge domain, no ingress replication, and no P2MP LSP; grep -rni 'evpn' --include=*.go over internal/plugins/fib/ matches nothing, so no packet is dropped for an unknown MAC
RFC7432-14.1-1 When importing MAC/IP route for an ESI, remote PE MUST examine all imported Ethernet A-D routes for that ESI (§14.1) no test no test carries this requirement id; annotated {not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists, so importing a MAC/IP route triggers no correlation with Ethernet A-D routes
RFC7432-14.1.1-2 If Single-Active flag is set in ESI Label extended community, remote PE MUST deduce Single-Active redundancy mode (§14.1.1) no test no test carries this requirement id; annotated {not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, so a receiving speaker deduces no redundancy mode
RFC7432-14.1.1-3 For Single-Active with multiple backup PEs, remote PE MUST use primary PE withdrawal to start flooding (§14.1.1) no test no test carries this requirement id; annotated {not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists, so no primary or backup PE state and no flooding decision exists
RFC7432-14.1.2-1 If no Single-Active flag in any ES route, remote PE MUST deduce All-Active redundancy mode (§14.1.2) no test no test carries this requirement id; annotated {not-applicable}: ze carries no ESI Label extended community: grep -rni 'esi.label' --include=*.go over internal/ and pkg/ matches nothing, and the extended-community codec internal/core/bgp/attribute/community.go defines no type 0x06 sub-type 0x01 value, so a receiving speaker deduces no redundancy mode
RFC7432-14.1.2-2 Remote PE MUST use received MAC/IP and Ethernet A-D routes to build ECMP forwarding for All-Active ES (§14.1.2) no test no test carries this requirement id; annotated {not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists, so no ECMP set is built from EVPN routes
RFC7432-9.2.2-1 If ESI is reserved (0 or MAX-ESI), forwarding state MUST be based on MAC/IP route alone (§9.2.2) no test no test carries this requirement id; annotated {not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists
RFC7432-9.2.2-2 If ESI is non-reserved, forwarding state for MAC MUST wait until both MAC/IP and Ethernet A-D per ES routes are received (§9.2.2) no test no test carries this requirement id; annotated {not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists
RFC7432-10.1-4 Unless all PEs are known to be default gateways, MPLS label in default gateway route MUST be a valid downstream assigned label (§10.1) no test no test carries this requirement id; annotated {not-applicable}: ze has no Default Gateway extended community and allocates no label space for one: grep -rni 'default.gateway' --include=*.go over internal/core/bgp/attribute matches nothing
RFC7432-9.2.1-5 PE creating MAC forwarding state from received MAC/IP routes MUST enable forwarding to remote destinations (§9.2.1) no test no test carries this requirement id; annotated {not-applicable}: ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists
RFC7432-6.2-2 VLAN-bundle service: MAC addresses MUST remain tagged with originating VID in MPLS encapsulation (§6.2) no test no test carries this requirement id; annotated {not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), and ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists
RFC7432-6.3-3 VLAN-aware bundle with VID translation: Ethernet frames MUST remain tagged with normalized VID (§6.3) no test no test carries this requirement id; annotated {not-applicable}: ze models no EVPN service type: grep -rni 'vlan.based|vlan.bundle|vlan.aware' --include=*.go over internal/ matches nothing, and the Ethernet Tag ID is simply the value the route command supplies (internal/component/bgp/plugins/nlri/evpn/encode.go:189), and ze programs no EVPN forwarding plane: grep -rni 'evpn' --include=*.go over internal/plugins/fib/ and internal/component/iface/ matches nothing, so no encapsulation, label push, or bridge-port decision exists

Proof state

A tagged unit reads unproven where no discrimination record exists for it: nothing in this tree has been observed to break it, so the claim its tag makes is unproven.

RFC7432-7.9-1

RD MUST be set to the RD of the MAC-VRF advertising the NLRI (§7.9)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-7.9-1, so no unit is bound to it.

RFC7432-7.9-2

An RD MUST be assigned for a given MAC-VRF on a PE (§7.9)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-7.9-2, so no unit is bound to it.

RFC7432-7.9-3

RD MUST be unique across all MAC-VRFs on a PE (§7.9)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-7.9-3, so no unit is bound to it.

RFC7432-5-1

Ethernet Segment Identifier MUST be a 10-octet entity (§5, §8.2.1)

Audit verdict: not audited: no reader has judged these tests

PolarityTestKind and tierProof state
negative TestEVPNESIIsTenOctets unit/verify unproven
positive TestEVPNESIIsTenOctets unit/verify unproven

RFC7432-8.2.1-1

For per-ES A-D route, Ethernet Tag ID MUST be set to MAX-ET (0xFFFFFFFF) (§8.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.2.1-1, so no unit is bound to it.

RFC7432-8.2.1-2

For per-ES A-D route, MPLS label in the NLRI MUST be set to 0 (§8.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.2.1-2, so no unit is bound to it.

RFC7432-8.2.1-3

ESI Label extended community MUST be included in per-ES A-D route (§8.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.2.1-3, so no unit is bound to it.

RFC7432-8.2.1-4

For all-active mode, Single-Active bit MUST be 0 and ESI label MUST be a valid downstream assigned MPLS label (§8.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.2.1-4, so no unit is bound to it.

RFC7432-8.2.1-5

ESI label MUST have the same value in each Ethernet A-D per ES route for the ES (§8.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.2.1-5, so no unit is bound to it.

RFC7432-8.2.1-6

For P2MP LSPs, ESI label MUST be an upstream assigned MPLS label (§8.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.2.1-6, so no unit is bound to it.

RFC7432-8.2.1-7

For single-active mode, Single-Active bit MUST be set to 1 (§8.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.2.1-7, so no unit is bound to it.

RFC7432-8.2.1-8

Each Ethernet A-D per ES route MUST carry one or more RT attributes (§8.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.2.1-8, so no unit is bound to it.

RFC7432-8.1.1-1

RD for Ethernet Segment route MUST be a Type 1 RD (§8.1.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.1.1-1, so no unit is bound to it.

RFC7432-8.1.1-2

Ethernet Segment route MUST carry an ESI Label extended community (§8.1.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.1.1-2, so no unit is bound to it.

RFC7432-7.6-1

Ethernet Segment route filtering MUST ensure route reaches all PEs attached to the ES (§7.6)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-7.6-1, so no unit is bound to it.

RFC7432-7.6-2

A BGP speaker implementing RT Constraint MUST apply the RT Constraint procedures to the ES-Import RT (§7.6)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-7.6-2, so no unit is bound to it.

RFC7432-11-1

Each PE MUST advertise an Inclusive Multicast Ethernet Tag route (§11)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-11-1, so no unit is bound to it.

RFC7432-9.2.1-1

Encoding of a MAC address MUST be the 6-octet format specified by 802.1Q (§9.2.1)

Audit verdict: not audited: no reader has judged these tests

PolarityTestKind and tierProof state
negative TestEVPNMACAddressLength unit/verify unproven
positive TestEVPNMACAddressLength unit/verify unproven

RFC7432-9.2.1-2

Next Hop field of MP_REACH_NLRI MUST be set to the IPv4 or IPv6 address of the advertising PE (§9.2.1, §11.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-9.2.1-2, so no unit is bound to it.

RFC7432-9.2.1-3

MPLS Label1 MUST be downstream assigned (§9.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-9.2.1-3, so no unit is bound to it.

RFC7432-9.1-1

PEs MUST support local data-plane learning using standard IEEE Ethernet learning procedures (§9.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-9.1-1, so no unit is bound to it.

RFC7432-9.2.1-4

MAC/IP Advertisement route MUST carry one or more RT attributes (§9.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-9.2.1-4, so no unit is bound to it.

RFC7432-8.4.1-1

Ethernet A-D per EVI route MUST carry one or more RT attributes (§8.4.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.4.1-1, so no unit is bound to it.

RFC7432-10-1

IP Address Length field MUST be 0, 32, or 128 bits for ARP/ND purposes (§10)

Audit verdict: not audited: no reader has judged these tests

PolarityTestKind and tierProof state
negative TestEVPNIPAddressLength unit/verify unproven
positive TestEVPNIPAddressLength unit/verify unproven

RFC7432-10-2

If a MAC is associated with multiple IPs, multiple MAC/IP Advertisement routes MUST be generated (§10)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-10-2, so no unit is bound to it.

RFC7432-10-3

When an IP-to-MAC binding is removed, the corresponding MAC/IP Advertisement route MUST be withdrawn (§10)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-10-3, so no unit is bound to it.

RFC7432-10-4

On receiving MAC/IP withdrawal with IP but MAC remaining, PE MUST delete ARP table entry but not the MAC (§10)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-10-4, so no unit is bound to it.

RFC7432-11.1-1

Originating Router's IP Address MUST be common for all EVIs on the PE (§11.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-11.1-1, so no unit is bound to it.

RFC7432-11.1-2

RT assignment per Section 7.10 MUST be followed for Inclusive Multicast route (§11.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-11.1-2, so no unit is bound to it.

RFC7432-11.2-1

Inclusive Multicast route with P-tunnel MUST carry a PMSI Tunnel attribute (§11.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-11.2-1, so no unit is bound to it.

RFC7432-11.2-2

Leaf Information Required flag of PMSI Tunnel attribute MUST be set to zero and MUST be ignored on receipt (§11.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-11.2-2, so no unit is bound to it.

RFC7432-11.2-3

For ingress replication P-tunnel, the PMSI Tunnel attribute MUST carry a downstream assigned MPLS label (§11.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-11.2-3, so no unit is bound to it.

RFC7432-6.1-1

VLAN-based service: VID translation MUST be supported in data path and performed on disposition PE (§6.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-6.1-1, so no unit is bound to it.

RFC7432-6.1-2

VLAN-based service: Ethernet Tag ID in all EVPN routes MUST be set to 0 (§6.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-6.1-2, so no unit is bound to it.

RFC7432-6.2-1

VLAN bundle service: MAC addresses MUST be unique across all VLANs in the bundle (§6.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-6.2-1, so no unit is bound to it.

RFC7432-6.3-1

VLAN-aware bundle (single VID per domain, no translation): MPLS-encapsulated packet MUST carry that VID (§6.3)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-6.3-1, so no unit is bound to it.

RFC7432-6.3-2

VLAN-aware bundle (VID translation required): normalized Ethernet Tag ID MUST be carried in EVPN BGP routes (§6.3)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-6.3-2, so no unit is bound to it.

RFC7432-8.3.1.1-1

Non-DF ingress PE MUST include ESI label distributed by egress PE in BUM packets (§8.3.1.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.3.1.1-1, so no unit is bound to it.

RFC7432-8.3.1.2-1

Penultimate hop popping MUST be disabled on P2MP LSPs used in MPLS transport (§8.3.1.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.3.1.2-1, so no unit is bound to it.

RFC7432-8.3.1-1

ESI label MUST be programmed in forwarding plane by all PEs that receive ES route (§8.3.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.3.1-1, so no unit is bound to it.

RFC7432-15-1

Implementation MUST handle sequence number wraparound in MAC Mobility (§15)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-15-1, so no unit is bound to it.

RFC7432-15-2

All advertisements of MAC reachable via previous ES MUST be withdrawn on MAC move (§15)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-15-2, so no unit is bound to it.

RFC7432-15.1-1

PE MUST alert operator and stop processing MAC/IP routes on duplicate MAC detection (N moves in M seconds) (§15.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-15.1-1, so no unit is bound to it.

RFC7432-15.1-2

Values of M and N for duplicate MAC detection MUST be configurable (§15.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-15.1-2, so no unit is bound to it.

RFC7432-15.2-1

PE receiving sticky MAC and learning same MAC locally MUST alert operator (§15.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-15.2-1, so no unit is bound to it.

RFC7432-10.1-1

Default gateway route MUST carry Default Gateway Extended Community (§10.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-10.1-1, so no unit is bound to it.

RFC7432-17.3-1

On PE-to-CE link failure, PE MUST withdraw Ethernet A-D per ES, per EVI routes, and MAC/IP Advertisement routes (§17.3)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-17.3-1, so no unit is bound to it.

RFC7432-14.1.1-1

Single-active redundancy: ESI Label Extended Community MUST have Single-Active bit set (§14.1.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-14.1.1-1, so no unit is bound to it.

RFC7432-8.4-1

Ethernet A-D per EVI route MUST NOT be used for traffic forwarding until per-ES routes received (§8.4)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.4-1, so no unit is bound to it.

RFC7432-8.3.1.1-2

Ingress PE MUST NOT include ESI label in BUM packet sent to PE not on same ES (§8.3.1.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.3.1.1-2, so no unit is bound to it.

RFC7432-8.3.1.1-3

When ESI label matches, egress PE MUST NOT forward packet onto that ES (split-horizon) (§8.3.1.1, §8.3.1.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-8.3.1.1-3, so no unit is bound to it.

RFC7432-5-3

ESI Type 1: CE LACP System MAC address MUST be encoded in high-order 6 octets of ESI Value (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-3, so no unit is bound to it.

RFC7432-5-4

ESI Type 1: CE LACP Port Key MUST be encoded in the 2 octets next to System MAC address (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-4, so no unit is bound to it.

RFC7432-5-5

ESI Type 2: Root Bridge MAC address MUST be encoded in high-order 6 octets of ESI Value (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-5, so no unit is bound to it.

RFC7432-5-6

ESI Type 2: Root Bridge Priority MUST be encoded in the 2 octets next to Root Bridge MAC address (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-6, so no unit is bound to it.

RFC7432-5-7

ESI Type 3: System MAC address MUST be encoded in high-order 6 octets of ESI Value (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-7, so no unit is bound to it.

RFC7432-5-8

ESI Type 3: Local Discriminator value MUST be encoded in low-order 3 octets of ESI Value (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-8, so no unit is bound to it.

RFC7432-5-9

ESI Type 4: Router ID MUST be encoded in high-order 4 octets of ESI Value (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-9, so no unit is bound to it.

RFC7432-5-10

ESI Type 4: Local Discriminator MUST be encoded in 4 octets next to IP address (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-10, so no unit is bound to it.

RFC7432-5-11

ESI Type 5: AS number MUST be encoded in high-order 4 octets of ESI Value (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-11, so no unit is bound to it.

RFC7432-5-12

ESI Type 5: Local Discriminator MUST be encoded in 4 octets next to AS number (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-12, so no unit is bound to it.

RFC7432-5-13

If CE(s) is not managed, operator MUST configure a non-reserved ESI for multihomed segments (§5)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-5-13, so no unit is bound to it.

RFC7432-12-1

PE receiving BUM packet from another PE MUST NOT send the frame to other PEs (§12)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-12-1, so no unit is bound to it.

RFC7432-12.1-1

PE receiving packet with ingress replication label MUST treat it as BUM traffic (§12.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-12.1-1, so no unit is bound to it.

RFC7432-12.1-2

PE receiving unicast MAC in BUM-labeled packet MUST treat it as unknown unicast (§12.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-12.1-2, so no unit is bound to it.

RFC7432-12.2-1

PE receiving packet on P2MP LSP from PMSI Tunnel attribute MUST treat it as BUM traffic (§12.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-12.2-1, so no unit is bound to it.

RFC7432-13.1-1

When flooding unknown unicast, PE MUST flood to other PEs and MUST first encapsulate with ESI label (§13.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-13.1-1, so no unit is bound to it.

RFC7432-13.1-2

If ingress replication for unknown unicast, packet MUST be replicated to each remote PE with the PMSI label (§13.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-13.1-2, so no unit is bound to it.

RFC7432-13.1-3

If P2MP LSPs for unknown unicast, packet MUST be sent on the P2MP LSP of which PE is root (§13.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-13.1-3, so no unit is bound to it.

RFC7432-13.1-4

If same P2MP LSP is used for all Ethernet tags, all PEs in the EVPN instance MUST be leaves (§13.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-13.1-4, so no unit is bound to it.

RFC7432-13.1-5

If no flooding allowed and MAC unknown, PE MUST drop the packet (§13.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-13.1-5, so no unit is bound to it.

RFC7432-14.1-1

When importing MAC/IP route for an ESI, remote PE MUST examine all imported Ethernet A-D routes for that ESI (§14.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-14.1-1, so no unit is bound to it.

RFC7432-14.1.1-2

If Single-Active flag is set in ESI Label extended community, remote PE MUST deduce Single-Active redundancy mode (§14.1.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-14.1.1-2, so no unit is bound to it.

RFC7432-14.1.1-3

For Single-Active with multiple backup PEs, remote PE MUST use primary PE withdrawal to start flooding (§14.1.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-14.1.1-3, so no unit is bound to it.

RFC7432-14.1.2-1

If no Single-Active flag in any ES route, remote PE MUST deduce All-Active redundancy mode (§14.1.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-14.1.2-1, so no unit is bound to it.

RFC7432-14.1.2-2

Remote PE MUST use received MAC/IP and Ethernet A-D routes to build ECMP forwarding for All-Active ES (§14.1.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-14.1.2-2, so no unit is bound to it.

RFC7432-9.2.2-1

If ESI is reserved (0 or MAX-ESI), forwarding state MUST be based on MAC/IP route alone (§9.2.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-9.2.2-1, so no unit is bound to it.

RFC7432-9.2.2-2

If ESI is non-reserved, forwarding state for MAC MUST wait until both MAC/IP and Ethernet A-D per ES routes are received (§9.2.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-9.2.2-2, so no unit is bound to it.

RFC7432-10.1-4

Unless all PEs are known to be default gateways, MPLS label in default gateway route MUST be a valid downstream assigned label (§10.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-10.1-4, so no unit is bound to it.

RFC7432-9.2.1-5

PE creating MAC forwarding state from received MAC/IP routes MUST enable forwarding to remote destinations (§9.2.1)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-9.2.1-5, so no unit is bound to it.

RFC7432-6.2-2

VLAN-bundle service: MAC addresses MUST remain tagged with originating VID in MPLS encapsulation (§6.2)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-6.2-2, so no unit is bound to it.

RFC7432-6.3-3

VLAN-aware bundle with VID translation: Ethernet frames MUST remain tagged with normalized VID (§6.3)

Audit verdict: not audited: no reader has judged these tests

No test carries RFC7432-6.3-3, so no unit is bound to it.

Extraction sign-off

No extraction sign-off exists for RFC 7432, so no reviewer has walked its text sentence by sentence.

Superseded

No document obsoletes RFC 7432, so its obligations are stated where they were written.