Partial

RFC 9830 - BGP Extensions for the Advertisement of Segment Routing (SR) Policies

Every requirement this repository extracted from RFC 9830, 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 ways71.4%60 of 84 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 reason4.8%4 of 84 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 84 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 125 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 MUSTs96of 137 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 scope12of 96 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 all23.8%20 of 84 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 84 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 137
Gated MUST-level 96
Obligations that bind Ze 84
Not applicable, so out of scope 12
Declared gaps 20
Gated with no test 0
Nightly-only evidence 0
Test tags 125
Tagged units 125
Recorded audit verdicts 0
Discrimination records 0
Summary rfc/short/rfc9830.md
Requirement shard rfc/requirements/rfc9830.md
RFC text rfc/full/rfc9830.txt

Enrolment

Enrolled: BGP Extensions for SR Policy

What the public ledger says

Status: Partial

What the ledger says is covered Ze originates and carries SR Policy: the SAFI 73 NLRI is written with the mandated 96-bit or 192-bit length for AFI 1 and AFI 2 (internal/component/bgp/plugins/nlri/srpolicy/types.go), parsed back (types.go) and split on the wire (split.go), and every candidate-path sub-TLV is encoded into one Tunnel Type 15 TLV of the Tunnel Encapsulation attribute -- preference, MPLS and SRv6 binding SID, priority, weighted segment lists of Type A and Type B segments with the SRv6 Endpoint Behavior and SID Structure, and the policy and candidate-path names (internal/component/bgp/plugins/nlri/srpolicy/config.go). Each sub-TLV carries its mandated value length with zero Flags and RESERVED octets, and the MPLS TC, S and TTL bits are zero. On receipt the attribute is kept as raw TLV bytes and re-advertised octet for octet, with the Preference sub-TLV decoded at its mandated 6-octet length (internal/core/bgp/attribute/tunnel_encap.go, :104, :145). Requirements bound per line in rfc/short/rfc9830.md.
What the ledger says remains

20 MUST-level gaps annotated in rfc/short/rfc9830.md.

Encoding defects: the Binding SID Flags octet is written as 0x10, a bit Section 2.4.2 leaves unassigned (RFC9830-2.4.2-5); a reserved MPLS label value 0-15 is accepted as a binding SID (RFC9830-2.4.2-11); SID-structure lengths totalling more than 128 are accepted (RFC9830-2.4.4.2.4-4); and an SR Policy advertisement carries neither a route target nor NO_ADVERTISE (RFC9830-4.1-2).

Receive-side validation is absent: SAFI 73 is skipped by the RFC 7606 NLRI check and attribute 23 has no validator, so nothing is treated as withdraw for a wrong or duplicated tunnel type, a bad NLRI length, a missing route target or NO_ADVERTISE, a malformed sub-TLV or a malformed attribute (RFC9830-2.2-1, RFC9830-2.2-3, RFC9830-4.2.1-1, RFC9830-4.2.1-3, RFC9830-4.2.1-4, RFC9830-4.2.1-5, RFC9830-4.2.1-8, RFC9830-5-1, RFC9830-5-2, RFC9830-5-4, RFC9830-5-5, RFC9830-5-6, RFC9830-5-7, RFC9830-5-8).

Propagation is family-generic: NO_ADVERTISE is not honored on egress and there is no eBGP-by-default block for SAFI 73 (RFC9830-4.2.3-1, RFC9830-4.2.3-2). Twelve further MUSTs are annotated not-applicable: ze implements no ENLP sub-TLV, no color-based steering and no SRPM, so it never instantiates, selects or deletes a candidate path.

Coverage

BucketCountWhat it counts
Positive and negative tests 60 one part of the gated population
Annotated instead of tested 36 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 requirements96every gated MUST falls in exactly one bucket above

Positive and negative tests (60): RFC9830-2.1-1, RFC9830-2.1-2, RFC9830-2.1-3, RFC9830-2.3-1, RFC9830-2.3-3, RFC9830-2.4-1, RFC9830-2.4-2, RFC9830-2.4.1-2, RFC9830-2.4.1-3, RFC9830-2.4.1-4, RFC9830-2.4.1-5, RFC9830-2.4.1-6, RFC9830-2.4.1-7, RFC9830-2.4.2-2, RFC9830-2.4.2-4, RFC9830-2.4.2-6, RFC9830-2.4.2-7, RFC9830-2.4.2-8, RFC9830-2.4.2-9, RFC9830-2.4.2-10, RFC9830-2.4.3-4, RFC9830-2.4.3-5, RFC9830-2.4.3-6, RFC9830-2.4.3-7, RFC9830-2.4.4-4, RFC9830-2.4.4-5, RFC9830-2.4.4.1-2, RFC9830-2.4.4.1-3, RFC9830-2.4.4.1-4, RFC9830-2.4.4.1-5, RFC9830-2.4.4.1-6, RFC9830-2.4.4.1-7, RFC9830-2.4.4.2.1-1, RFC9830-2.4.4.2.1-2, RFC9830-2.4.4.2.1-3, RFC9830-2.4.4.2.1-4, RFC9830-2.4.4.2.1-5, RFC9830-2.4.4.2.2-1, RFC9830-2.4.4.2.2-2, RFC9830-2.4.4.2.2-3, RFC9830-2.4.4.2.2-4, RFC9830-2.4.4.2.3-1, RFC9830-2.4.4.2.3-2, RFC9830-2.4.4.2.3-3, RFC9830-2.4.4.2.4-2, RFC9830-2.4.4.2.4-3, RFC9830-2.4.6-3, RFC9830-2.4.6-4, RFC9830-2.4.6-5, RFC9830-2.4.6-6, RFC9830-2.4.7-5, RFC9830-2.4.7-6, RFC9830-2.4.7-7, RFC9830-2.4.8-5, RFC9830-2.4.8-6, RFC9830-2.4.8-7, RFC9830-4.2.1-2, RFC9830-4.2.1-7, RFC9830-4.2.3-6, RFC9830-5-9

Annotated instead of tested (36): RFC9830-2.2-1, RFC9830-2.2-2, RFC9830-2.2-3, RFC9830-2.4.2-5, RFC9830-2.4.2-11, RFC9830-2.4.3-3, RFC9830-2.4.3-9, RFC9830-2.4.4.2.4-4, RFC9830-2.4.5-2, RFC9830-2.4.5-3, RFC9830-2.4.5-4, RFC9830-2.4.5-5, RFC9830-2.4.5-6, RFC9830-2.4.5-7, RFC9830-2.4.5-8, RFC9830-3-3, RFC9830-4.1-2, RFC9830-4.2.1-1, RFC9830-4.2.1-3, RFC9830-4.2.1-4, RFC9830-4.2.1-5, RFC9830-4.2.1-6, RFC9830-4.2.1-8, RFC9830-4.2.1-9, RFC9830-4.2.2-1, RFC9830-4.2.2-2, RFC9830-4.2.2-5, RFC9830-4.2.3-1, RFC9830-4.2.3-2, RFC9830-5-1, RFC9830-5-2, RFC9830-5-4, RFC9830-5-5, RFC9830-5-6, RFC9830-5-7, RFC9830-5-8

Requirements

RequirementLevelSectionTests
RFC9830-2.1-1The AFI used MUST be IPv4(1) or IPv6(2) (§2.1)
MUST 2.1
RFC9830-2.1-2The NLRI Length value MUST be 96 when AFI = 1 and 192 when AFI = 2 (§2.1)
MUST 2.1
RFC9830-2.1-3A BGP UPDATE carrying MP_REACH_NLRI or MP_UNREACH_NLRI with the SR Policy SAFI MUST also carry the BGP mandatory attributes (§2.1)
MUST 2.1
RFC9830-2.2-1Use of any Tunnel Type other than SR Policy with the SR Policy SAFI MUST be considered malformed and handled by treat-as-withdraw (§2.2)
MUST 2.2
positiveno testno positive test
negativeno testno negative test

{gap}: nothing rejects a non-SR-Policy tunnel type under SAFI 73. The RFC 7606 validator table has no entry for attribute 23 (internal/component/bgp/message/rfc7606.go:415-429), so no attribute-level check ever runs on a received Tunnel Encapsulation attribute, and the attribute itself is kept as raw TLV bytes parsed only on demand (internal/core/bgp/attribute/wire.go:346 and :418, internal/core/bgp/attribute/tunnel_encap.go:39). ze parses and re-advertises the attribute; it applies no treat-as-withdraw

RFC9830-2.2-2A Tunnel Encapsulation Attribute MUST NOT contain more than one TLV of type "SR Policy" (§2.2)
MUST NOT 2.2
negativeno testno negative test

{single-polarity}: buildTunnelEncap assembles every configured sub-TLV into a single Tunnel Type 15 TLV and has no path that appends a second one (internal/component/bgp/plugins/nlri/srpolicy/config.go:365-370), so no input to ze's encoder produces the forbidden encoding for a negative to assert. The receive-side obligation to treat two such TLVs as malformed is the separate RFC9830-2.2-3, which is annotated as a gap

RFC9830-2.2-3Updates carrying more than one SR Policy TLV MUST be considered malformed and handled by treat-as-withdraw (§2.2)
MUST 2.2
positiveno testno positive test
negativeno testno negative test

{gap}: a Tunnel Encapsulation attribute holding two SR Policy TLVs is accepted. ParseTunnelEncap walks every TLV and appends each one without counting types (internal/core/bgp/attribute/tunnel_encap.go:41-54), and there is no RFC 7606 validator for attribute 23 (internal/component/bgp/message/rfc7606.go:415-429), so no treat-as-withdraw is applied. ze's own encoder emits exactly one such TLV, which is the separate RFC9830-2.2-2

RFC9830-2.3-1If the Tunnel Egress Endpoint and Color sub-TLVs are present, a BGP speaker MUST ignore them (§2.3)
MUST 2.3
RFC9830-2.3-3Any other sub-TLVs without explicitly defined applicability to the SR Policy SAFI MUST be ignored by the BGP speaker (§2.3)
MUST 2.3
RFC9830-2.4-1For single-instance TLVs/sub-TLVs, only the first instance is used and the other instances MUST be ignored (§2.4)
MUST 2.4
RFC9830-2.4-2The other (duplicate) instances of a single-instance TLV/sub-TLV MUST NOT be considered malformed (§2.4)
MUST NOT 2.4
RFC9830-2.4.1-2The Preference sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.1)
MUST NOT 2.4.1
positiveunit/verifyTestRFC9830PreferenceSubTLV
negativeunit/verifyTestRFC9830PreferenceSubTLV
RFC9830-2.4.1-3The Preference sub-TLV Length value MUST be 6 (§2.4.1)
MUST 2.4.1
RFC9830-2.4.1-4The Preference Flags field MUST be set to zero on transmission (§2.4.1)
MUST 2.4.1
positiveunit/verifyTestRFC9830PreferenceSubTLV
negativeunit/verifyTestRFC9830PreferenceSubTLV
RFC9830-2.4.1-5The Preference Flags field MUST be ignored on receipt (§2.4.1)
MUST 2.4.1
RFC9830-2.4.1-6The Preference RESERVED field MUST be set to zero on transmission (§2.4.1)
MUST 2.4.1
positiveunit/verifyTestRFC9830PreferenceSubTLV
negativeunit/verifyTestRFC9830PreferenceSubTLV
RFC9830-2.4.1-7The Preference RESERVED field MUST be ignored on receipt (§2.4.1)
MUST 2.4.1
RFC9830-2.4.2-2The Binding SID sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.2)
MUST NOT 2.4.2
positiveunit/verifyTestRFC9830BindingSIDSubTLV
negativeunit/verifyTestRFC9830BindingSIDSubTLV
RFC9830-2.4.2-4The Binding SID Length value MUST be 18 when an SRv6 BSID is present, 6 when an SR-MPLS BSID is present, or 2 when no BSID is present (§2.4.2)
MUST 2.4.2
positiveunit/verifyTestRFC9830BindingSIDSubTLV
negativeunit/verifyTestRFC9830BindingSIDSubTLV
RFC9830-2.4.2-5The unassigned bits in the Binding SID Flags field MUST be set to zero upon transmission (§2.4.2)
MUST 2.4.2
positiveno testno positive test
negativeno testno negative test

{gap}: buildBindingSIDSubTLV writes 0x10 into the Binding SID Flags octet (internal/component/bgp/plugins/nlri/srpolicy/config.go:385). Section 2.4.2 assigns only S (bit 0, 0x80) and I (bit 1, 0x40) in that field, so bit 3 is unassigned and is set on transmission. The value is pinned as ExaBGP-interoperable in TestSRPolicyInteropExaBGPSubTLVBytes (internal/component/bgp/plugins/nlri/srpolicy/encode_test.go:118-124), which emits the same octet, so the two implementations agree with each other and not with the RFC

RFC9830-2.4.2-6The unassigned bits in the Binding SID Flags field MUST be ignored upon receipt (§2.4.2)
MUST 2.4.2
RFC9830-2.4.2-7The Binding SID RESERVED field MUST be set to zero on transmission (§2.4.2)
MUST 2.4.2
positiveunit/verifyTestRFC9830BindingSIDSubTLV
negativeunit/verifyTestRFC9830BindingSIDSubTLV
RFC9830-2.4.2-8The Binding SID RESERVED field MUST be ignored on receipt (§2.4.2)
MUST 2.4.2
RFC9830-2.4.2-9The Binding SID Label TC, S, and TTL bits MUST be set to zero (§2.4.2)
MUST 2.4.2
positiveunit/verifyTestRFC9830BindingSIDSubTLV
negativeunit/verifyTestRFC9830BindingSIDSubTLV
RFC9830-2.4.2-10The Binding SID Label TC, S, and TTL bits MUST be ignored (§2.4.2)
MUST 2.4.2
RFC9830-2.4.2-11The Binding SID Label field MUST NOT contain the reserved MPLS label values (0-15) (§2.4.2)
MUST NOT 2.4.2
positiveno testno positive test
negativeno testno negative test

{gap}: the config parser accepts any 32-bit binding-sid label and range-checks nothing (internal/component/bgp/plugins/nlri/srpolicy/config.go:137-142), so a reserved MPLS label value 0-15 is encoded verbatim by buildBindingSIDSubTLV (internal/component/bgp/plugins/nlri/srpolicy/config.go:387-390). The TC, S and TTL bits ARE forced to zero on the same path, which is the separate RFC9830-2.4.2-9

RFC9830-2.4.3-3The SRv6 Binding SID Length value MUST be 26 when the SRv6 Endpoint Behavior and SID Structure is present, else MUST be 18 (§2.4.3)
MUST 2.4.3
negativeno testno negative test

{single-polarity}: buildSRv6BindingSIDSubTLV always writes the 18-octet form and never appends the SRv6 Endpoint Behavior and SID Structure (internal/component/bgp/plugins/nlri/srpolicy/config.go:409-416), so the 26-octet case has no producer and there is no contrasting length to assert. The same 18-versus-26 rule for the Type B segment sub-TLV, where ze DOES produce both, is covered with both polarities under RFC9830-2.4.4.2.2-1

RFC9830-2.4.3-4The unassigned bits in the SRv6 Binding SID Flags field MUST be set to zero upon transmission (§2.4.3)
MUST 2.4.3
RFC9830-2.4.3-5The unassigned bits in the SRv6 Binding SID Flags field MUST be ignored upon receipt (§2.4.3)
MUST 2.4.3
RFC9830-2.4.3-6The SRv6 Binding SID RESERVED field MUST be set to zero on transmission (§2.4.3)
MUST 2.4.3
RFC9830-2.4.3-7The SRv6 Binding SID RESERVED field MUST be ignored on receipt (§2.4.3)
MUST 2.4.3
RFC9830-2.4.3-9The SRv6 Endpoint Behavior and SID Structure MUST NOT be included when the SRv6 SID has not been included (§2.4.3)
MUST NOT 2.4.3
negativeno testno negative test

{single-polarity}: the SRv6 Binding SID sub-TLV ze writes always carries the 16-octet SID and never the Endpoint Behavior and SID Structure (internal/component/bgp/plugins/nlri/srpolicy/config.go:409-416), so the forbidden combination has no producer to drive a negative from. The parallel Type B rule, where an endpoint-behavior token without a preceding SRv6 SID IS refused, is covered with both polarities under RFC9830-2.4.4.2.2-4

RFC9830-2.4.4-4The Segment List RESERVED field MUST be set to zero on transmission (§2.4.4)
MUST 2.4.4
positiveunit/verifyTestRFC9830SegmentListSubTLV
negativeunit/verifyTestRFC9830SegmentListSubTLV
RFC9830-2.4.4-5The Segment List RESERVED field MUST be ignored on receipt (§2.4.4)
MUST 2.4.4
RFC9830-2.4.4.1-2The Weight sub-TLV MUST NOT appear more than once inside the Segment List sub-TLV (§2.4.4.1)
MUST NOT 2.4.4.1
positiveunit/verifyTestRFC9830SegmentListSubTLV
negativeunit/verifyTestRFC9830SegmentListSubTLV
RFC9830-2.4.4.1-3The Weight sub-TLV Length value MUST be 6 (§2.4.4.1)
MUST 2.4.4.1
positiveunit/verifyTestRFC9830SegmentListSubTLV
negativeunit/verifyTestRFC9830SegmentListSubTLV
RFC9830-2.4.4.1-4The Weight Flags field MUST be set to zero on transmission (§2.4.4.1)
MUST 2.4.4.1
positiveunit/verifyTestRFC9830SegmentListSubTLV
negativeunit/verifyTestRFC9830SegmentListSubTLV
RFC9830-2.4.4.1-5The Weight Flags field MUST be ignored on receipt (§2.4.4.1)
MUST 2.4.4.1
RFC9830-2.4.4.1-6The Weight RESERVED field MUST be set to zero on transmission (§2.4.4.1)
MUST 2.4.4.1
positiveunit/verifyTestRFC9830SegmentListSubTLV
negativeunit/verifyTestRFC9830SegmentListSubTLV
RFC9830-2.4.4.1-7The Weight RESERVED field MUST be ignored on receipt (§2.4.4.1)
MUST 2.4.4.1
RFC9830-2.4.4.2.1-1The Type A Segment sub-TLV Length value MUST be 6 (§2.4.4.2.1)
MUST 2.4.4.2.1
RFC9830-2.4.4.2.1-2The Type A Segment RESERVED field MUST be set to zero on transmission (§2.4.4.2.1)
MUST 2.4.4.2.1
RFC9830-2.4.4.2.1-3The Type A Segment RESERVED field MUST be ignored on receipt (§2.4.4.2.1)
MUST 2.4.4.2.1
RFC9830-2.4.4.2.1-4The Type A Segment S bit MUST be zero upon transmission (§2.4.4.2.1)
MUST 2.4.4.2.1
RFC9830-2.4.4.2.1-5The Type A Segment S bit MUST be ignored upon reception (§2.4.4.2.1)
MUST 2.4.4.2.1
RFC9830-2.4.4.2.2-1The Type B Segment sub-TLV Length value MUST be 26 when the SRv6 Endpoint Behavior and SID Structure is present, else MUST be 18 (§2.4.4.2.2)
MUST 2.4.4.2.2
RFC9830-2.4.4.2.2-2The Type B Segment RESERVED field MUST be set to zero on transmission (§2.4.4.2.2)
MUST 2.4.4.2.2
RFC9830-2.4.4.2.2-3The Type B Segment RESERVED field MUST be ignored on receipt (§2.4.4.2.2)
MUST 2.4.4.2.2
RFC9830-2.4.4.2.2-4The Type B SRv6 Endpoint Behavior and SID Structure MUST NOT be included when the SRv6 SID has not been included (§2.4.4.2.2)
MUST NOT 2.4.4.2.2
RFC9830-2.4.4.2.3-1The unassigned bits in the Segment Flags field MUST be set to zero upon transmission (§2.4.4.2.3)
MUST 2.4.4.2.3
RFC9830-2.4.4.2.3-2The unassigned bits in the Segment Flags field MUST be ignored upon receipt (§2.4.4.2.3)
MUST 2.4.4.2.3
RFC9830-2.4.4.2.3-3If the B-Flag appears with Segment Type A, it MUST be ignored (§2.4.4.2.3)
MUST 2.4.4.2.3
RFC9830-2.4.4.2.4-2The SRv6 Endpoint Behavior and SID Structure Reserved field MUST be set to zero on transmission (§2.4.4.2.4)
MUST 2.4.4.2.4
RFC9830-2.4.4.2.4-3The SRv6 Endpoint Behavior and SID Structure Reserved field MUST be ignored on receipt (§2.4.4.2.4)
MUST 2.4.4.2.4
RFC9830-2.4.4.2.4-4The total of the locator block, locator node, function, and argument lengths MUST be less than or equal to 128 (§2.4.4.2.4)
MUST 2.4.4.2.4
positiveno testno positive test
negativeno testno negative test

{gap}: the four SID-structure lengths are parsed as independent octets with no sum check (internal/component/bgp/plugins/nlri/srpolicy/config.go:312-318) and written verbatim into the segment sub-TLV (internal/component/bgp/plugins/nlri/srpolicy/config.go:478-481), so a configuration whose locator block, locator node, function and argument lengths total more than 128 is encoded rather than refused

RFC9830-2.4.5-2The ENLP sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.5)
MUST NOT 2.4.5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze neither encodes nor interprets the ENLP sub-TLV, so it never writes a second instance. The SR Policy sub-TLV constant set holds no type 14 (internal/component/bgp/plugins/nlri/srpolicy/config.go:23-29), buildTunnelEncap has no ENLP branch (internal/component/bgp/plugins/nlri/srpolicy/config.go:339-363), and grep -rniE '\benlp\b|explicit.?null.?label' over the Go tree matches only the OSPF MPLS Explicit NULL label, an unrelated feature

RFC9830-2.4.5-3The ENLP sub-TLV Length value MUST be 3 (§2.4.5)
MUST 2.4.5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze writes no ENLP sub-TLV, so it declares no length for one. There is no type-14 constant in the SR Policy encoder (internal/component/bgp/plugins/nlri/srpolicy/config.go:23-29) and no ENLP branch in buildTunnelEncap (internal/component/bgp/plugins/nlri/srpolicy/config.go:339-363)

RFC9830-2.4.5-4The ENLP Flags field MUST be set to zero on transmission (§2.4.5)
MUST 2.4.5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze transmits no ENLP sub-TLV, so it has no ENLP Flags field to zero; the config keyword set has no ENLP spelling (internal/component/bgp/plugins/nlri/srpolicy/config.go:72-187) and buildTunnelEncap emits no type-14 sub-TLV (internal/component/bgp/plugins/nlri/srpolicy/config.go:339-363)

RFC9830-2.4.5-5The ENLP Flags field MUST be ignored on receipt (§2.4.5)
MUST 2.4.5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze decodes no ENLP sub-TLV, so it reads no ENLP Flags field. Preference is the only typed sub-TLV accessor (internal/core/bgp/attribute/tunnel_encap.go:145) and the sub-TLV type constants stop at Segment List (internal/core/bgp/attribute/tunnel_encap.go:87-92)

RFC9830-2.4.5-6The ENLP RESERVED field MUST be set to zero on transmission (§2.4.5)
MUST 2.4.5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze transmits no ENLP sub-TLV, so it has no ENLP RESERVED octet to zero; buildTunnelEncap emits no type-14 sub-TLV (internal/component/bgp/plugins/nlri/srpolicy/config.go:339-363)

RFC9830-2.4.5-7The ENLP RESERVED field MUST be ignored on receipt (§2.4.5)
MUST 2.4.5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze decodes no ENLP sub-TLV, so it reads no ENLP RESERVED octet; the only typed sub-TLV accessor is Preference (internal/core/bgp/attribute/tunnel_encap.go:145)

RFC9830-2.4.5-8Implementations MUST ignore the ENLP sub-TLV with unrecognized values (other than 1 through 4) (§2.4.5)
MUST 2.4.5
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze interprets no ENLP value, recognized or not. The requirement presupposes a receiver that acts on values 1 through 4; ze has no ENLP decoder at all (internal/core/bgp/attribute/tunnel_encap.go:87-92, :145) and no Explicit NULL push driven by an SR Policy

RFC9830-2.4.6-3The Priority sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.6)
MUST NOT 2.4.6
positiveunit/verifyTestRFC9830PrioritySubTLV
negativeunit/verifyTestRFC9830PrioritySubTLV
RFC9830-2.4.6-4The Priority sub-TLV Length value MUST be 2 (§2.4.6)
MUST 2.4.6
RFC9830-2.4.6-5The Priority RESERVED field MUST be set to zero on transmission (§2.4.6)
MUST 2.4.6
positiveunit/verifyTestRFC9830PrioritySubTLV
negativeunit/verifyTestRFC9830PrioritySubTLV
RFC9830-2.4.6-6The Priority RESERVED field MUST be ignored on receipt (§2.4.6)
MUST 2.4.6
RFC9830-2.4.7-5The SR Policy Candidate Path Name sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.7)
MUST NOT 2.4.7
positiveunit/verifyTestRFC9830NameSubTLVs
negativeunit/verifyTestRFC9830NameSubTLVs
RFC9830-2.4.7-6The SR Policy Candidate Path Name RESERVED field MUST be set to zero on transmission (§2.4.7)
MUST 2.4.7
positiveunit/verifyTestRFC9830NameSubTLVs
negativeunit/verifyTestRFC9830NameSubTLVs
RFC9830-2.4.7-7The SR Policy Candidate Path Name RESERVED field MUST be ignored on receipt (§2.4.7)
MUST 2.4.7
RFC9830-2.4.8-5The SR Policy Name sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.8)
MUST NOT 2.4.8
positiveunit/verifyTestRFC9830NameSubTLVs
negativeunit/verifyTestRFC9830NameSubTLVs
RFC9830-2.4.8-6The SR Policy Name RESERVED field MUST be set to zero on transmission (§2.4.8)
MUST 2.4.8
positiveunit/verifyTestRFC9830NameSubTLVs
negativeunit/verifyTestRFC9830NameSubTLVs
RFC9830-2.4.8-7The SR Policy Name RESERVED field MUST be ignored on receipt (§2.4.8)
MUST 2.4.8
RFC9830-3-3Upon reception, an implementation MUST treat Color-Only Type 3 (bits 11) like Type 0 (§3)
MUST 3
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze performs no color-based steering, so it never compares a route's Color Extended Community with an SR Policy and the Color-Only bits are never read. The eight octets are carried as an opaque extended community (internal/core/bgp/attribute/community.go, ParseExtendedCommunities) and grep -rniE 'color.?only|colorExtended' over the Go tree matches only test names, with no producer that decodes the CO field

RFC9830-4.1-2If no route target is attached, the NO_ADVERTISE community MUST be attached to the SR Policy update (§4.1)
MUST 4.1
positiveno testno positive test
negativeno testno negative test

{gap}: ze attaches neither a route target nor NO_ADVERTISE to an SR Policy advertisement. parseConfigRoute builds exactly one attribute, the Tunnel Encapsulation attribute (internal/component/bgp/plugins/nlri/srpolicy/config.go:218-225), and deliberately ignores the pre-parsed attribute block that carries communities for other families (internal/component/bgp/plugins/nlri/srpolicy/config.go:43-44), so an SR Policy route ze originates carries no community at all

RFC9830-4.2.1-1A BGP speaker MUST first perform validation based on the §4.2.1 rules in addition to the validation in §5 (§4.2.1)
MUST 4.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: no SR Policy validation runs on receipt. validateMPNLRISyntax returns nil for every SAFI other than unicast and multicast, so SAFI 73 is skipped (internal/component/bgp/message/rfc7606.go:701-704), and the RFC 7606 validator table has no entry for attribute 23 (internal/component/bgp/message/rfc7606.go:415-429). A received SR Policy update reaches the RIB without any of the Section 4.2.1 checks

RFC9830-4.2.1-2The SR Policy NLRI MUST include a Distinguisher, Color, and Endpoint field (§4.2.1)
MUST 4.2.1
RFC9830-4.2.1-3The length of the NLRI MUST be either 12 or 24 octets depending on the Endpoint address family (§4.2.1)
MUST 4.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: SplitSRPolicy accepts any non-zero byte-aligned length that fits the buffer and never compares it with the AFI's mandated 12 or 24 octets (internal/component/bgp/plugins/nlri/srpolicy/split.go:22-33), and its error is discarded by the RIB walk (internal/component/bgp/plugins/rib/rib_structured.go:229). The encoder always writes the mandated length, which is the separate RFC9830-2.1-2

RFC9830-4.2.1-4The SR Policy update MUST have either the NO_ADVERTISE community, at least one IPv4-address-format Route Target extended community, or both (§4.2.1)
MUST 4.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: nothing inspects the communities of a received SR Policy update. There is no RFC 7606 validator for attribute 23 and none for the SAFI (internal/component/bgp/message/rfc7606.go:415-429, :701-704), and no code path reads NO_ADVERTISE or a route target for SAFI 73: grep for SAFISRPolicy outside the NLRI codec matches only the family registry and the next-hop length table (internal/core/bgp/attribute/mpnlri.go:277)

RFC9830-4.2.1-5An SR Policy update with no Route Target extended communities and no NO_ADVERTISE community MUST be considered malformed (§4.2.1)
MUST 4.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: an SR Policy update with neither a route target nor NO_ADVERTISE is accepted like any other. The malformed decision would have to come from an RFC 7606 validator for attribute 23 or for SAFI 73, and neither exists (internal/component/bgp/message/rfc7606.go:415-429, :701-704)

RFC9830-4.2.1-6The Tunnel Encapsulation Attribute MUST be attached to the BGP UPDATE message (§4.2.1)
MUST 4.2.1
negativeno testno negative test

{single-polarity}: parseConfigRoute attaches the Tunnel Encapsulation attribute to every SR Policy route it builds -- buildTunnelEncap always returns at least the 4-octet TLV header, so the len(tunnelEncapValue) > 0 guard never fails (internal/component/bgp/plugins/nlri/srpolicy/config.go:209-225, :365-370) -- leaving no update-without-the-attribute for a negative to observe. The receive-side obligation to call such an update malformed is the separate RFC9830-4.2.1-8, which is annotated as a gap

RFC9830-4.2.1-7The Tunnel Encapsulation Attribute MUST have a Tunnel Type TLV set to SR Policy (code point 15) (§4.2.1)
MUST 4.2.1
RFC9830-4.2.1-8A router receiving an update not valid according to these criteria MUST treat the update as malformed (§4.2.1)
MUST 4.2.1
positiveno testno positive test
negativeno testno negative test

{gap}: no receive-side validity criteria are evaluated, so none can drive a malformed verdict. SAFI 73 is excluded from the NLRI syntax check (internal/component/bgp/message/rfc7606.go:701-704) and attribute 23 has no validator (internal/component/bgp/message/rfc7606.go:415-429)

RFC9830-4.2.1-9An invalid SR Policy CP MUST NOT be passed to the SRPM (§4.2.1)
MUST NOT 4.2.1
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze has no SRPM. grep -rni '\bsrpm\b' over the Go tree matches nothing, the SR Policy plugin registers only an NLRI codec and a config route encoder (internal/component/bgp/plugins/nlri/srpolicy/register.go:29-40), and no candidate path is ever handed to a policy manager, valid or otherwise

RFC9830-4.2.2-1If route targets are present, at least one MUST match the BGP Identifier of the receiver for the update to be usable (§4.2.2)
MUST 4.2.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze never makes an SR Policy locally usable, so there is no eligibility decision for a route target to gate. There is no SRPM (grep -rni '\bsrpm\b' over the Go tree matches nothing) and no SAFI 73 consumer outside the NLRI codec and the family registry (internal/component/bgp/plugins/nlri/srpolicy/register.go:29-40, internal/core/family/family.go:93)

RFC9830-4.2.2-2The Route Target extended community MUST be of the same format (4-octet, unsigned, non-zero) as the BGP Identifier (§4.2.2)
MUST 4.2.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze compares no route target against its BGP Identifier for SAFI 73, because it makes no SR Policy locally usable; there is no SRPM and no local-use path (internal/component/bgp/plugins/nlri/srpolicy/register.go:29-40), so the format constraint governs a comparison ze never performs

RFC9830-4.2.2-5When an update results in the SR Policy NLRI becoming unusable, BGP MUST delete its corresponding SR Policy CP from the SRPM (§4.2.2)
MUST 4.2.2
positiveno testno positive test
negativeno testno negative test

{not-applicable}: ze holds no SR Policy candidate path to delete. grep -rni '\bsrpm\b' over the Go tree matches nothing and the SR Policy plugin keeps no state beyond the NLRI codec (internal/component/bgp/plugins/nlri/srpolicy/register.go:29-40); withdrawal of a SAFI 73 route removes the RIB entry and nothing else

RFC9830-4.2.3-1SR Policy NLRIs that have the NO_ADVERTISE community MUST NOT be propagated (§4.2.3)
MUST NOT 4.2.3
positiveno testno positive test
negativeno testno negative test

{gap}: the egress gate consults only the operator-configured export filter chain and never inspects community values (writeUpdateGated, internal/component/bgp/reactor/session_write.go:263-283), so an SR Policy NLRI carrying NO_ADVERTISE is propagated unless an operator filter happens to match it. The same omission is disclosed for RFC 1997

RFC9830-4.2.3-2By default, a BGP node receiving an SR Policy NLRI MUST NOT propagate it to any EBGP neighbor (§4.2.3)
MUST NOT 4.2.3
positiveno testno positive test
negativeno testno negative test

{gap}: propagation of SAFI 73 is family-generic with no eBGP default. The reactor's forwarding path keys on the negotiated families and the per-peer export filter, and grep for SAFISRPolicy over internal/component/bgp/reactor matches nothing, so a received SR Policy NLRI is forwarded to an eBGP neighbor that negotiated the family like any other route

RFC9830-4.2.3-6A BGP node MUST NOT alter the SR Policy information carried in the Tunnel Encapsulation Attribute during propagation (§4.2.3)
MUST NOT 4.2.3
RFC9830-5-1A BGP speaker MUST perform syntactic validation of the SR Policy NLRI (per-NLRI length, total MP_REACH_NLRI/MP_UNREACH_NLRI length, and consistency of NLRI length with the AFI and endpoint) to determine if malformed (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{gap}: the syntactic validation is partial and its verdict is discarded. SplitSRPolicy checks the framing -- zero length, byte alignment, buffer overrun (internal/component/bgp/plugins/nlri/srpolicy/split.go:22-33) -- but never the consistency of the length with the AFI and endpoint, and every caller drops its error (internal/component/bgp/plugins/rib/rib_structured.go:229). The MP attribute's own NLRI check skips SAFI 73 outright (internal/component/bgp/message/rfc7606.go:701-704)

RFC9830-5-2When the error allows skipping the malformed NLRI(s) and continuing, the router MUST handle such malformed NLRIs as treat-as-withdraw (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{gap}: no SR Policy NLRI is ever treated as withdrawn for being malformed. SAFI 73 is excluded from validateMPNLRISyntax (internal/component/bgp/message/rfc7606.go:701-704), which is the only path that turns an NLRI-level error into an RFC 7606 action, and the splitter's error is discarded (internal/component/bgp/plugins/rib/rib_structured.go:229)

RFC9830-5-4The router MUST perform session reset when the session is only used for SR Policy or when AFI/SAFI disable is not possible (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{gap}: no SR Policy error path exists, so no session reset can be reached from one. The RFC7606ActionSessionReset verdict is produced only by the checks in internal/component/bgp/message/rfc7606.go, and SAFI 73 reaches none of them (internal/component/bgp/message/rfc7606.go:701-704, :415-429)

RFC9830-5-5The validation of the TLVs/sub-TLVs defined in Section 2.4 MUST be performed to determine if they are malformed or invalid (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{gap}: only one Section 2.4 sub-TLV is validated. TunnelTLV.Preference checks the mandated 6-octet value length before reading it (internal/core/bgp/attribute/tunnel_encap.go:151); every other sub-TLV is walked for framing only by TunnelTLV.SubTLVs (internal/core/bgp/attribute/tunnel_encap.go:104-131) and no length, flag or field of the Binding SID, SRv6 Binding SID, Priority, Segment List, Weight, Segment or name sub-TLVs is checked

RFC9830-5-6The validation of the Tunnel Encapsulation Attribute and other TLVs/sub-TLVs (RFC 9012 Section 13) MUST be done as described in that document (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{gap}: the RFC 9012 Section 13 structural validation exists but is never driven at reception. ParseTunnelEncap is registered as the parser for attribute 23 (internal/core/bgp/attribute/wire.go:418) and rejects broken TLV framing (internal/core/bgp/attribute/tunnel_encap.go:41-54), but attributes are parsed lazily, only when something reads them (internal/core/bgp/attribute/wire.go:346), and nothing reads attribute 23 for a SAFI 73 route; there is no RFC 7606 validator that would force the parse (internal/component/bgp/message/rfc7606.go:415-429)

RFC9830-5-7In case of any error detected at the attribute or its TLV/sub-TLV level, the treat-as-withdraw strategy MUST be applied (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{gap}: an error at the attribute or sub-TLV level produces no treat-as-withdraw. The RFC 7606 validator table has no entry for attribute 23 (internal/component/bgp/message/rfc7606.go:415-429), so the ParseTunnelEncap and SubTLVs errors (internal/core/bgp/attribute/tunnel_encap.go:43, :109) are only ever seen by a caller that chose to parse, never by the UPDATE validation path

RFC9830-5-8An SR Policy update determined not valid per Section 4.2.1 MUST be handled by treat-as-withdraw (§5)
MUST 5
positiveno testno positive test
negativeno testno negative test

{gap}: the Section 4.2.1 validity criteria are not evaluated at all (see RFC9830-4.2.1-1), so no update can be handled as treat-as-withdraw for failing them; SAFI 73 reaches neither the NLRI check nor an attribute validator (internal/component/bgp/message/rfc7606.go:701-704, :415-429)

RFC9830-5-9A BGP implementation MUST NOT perform semantic verification of the individual TLV/sub-TLV fields, nor consider the SR Policy update invalid or not usable based on such validation (§5)
MUST NOT 5
RFC9830-2.1-5When several CPs of the same SR Policy are signaled via BGP, it is RECOMMENDED that each NLRI use a different distinguisher (§2.1)
RECOMMENDED 2.1
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.2-3It is RECOMMENDED that the SRv6 Binding SID sub-TLV be used when signaling an SRv6 BSID for an SR Policy CP (§2.4.2)
RECOMMENDED 2.4.2
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.7-2It is RECOMMENDED that the size of the symbolic name for the CP be limited to 255 bytes (§2.4.7)
RECOMMENDED 2.4.7
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.8-2It is RECOMMENDED that the size of the symbolic name for the SR Policy be limited to 255 bytes (§2.4.8)
RECOMMENDED 2.4.8
positiveno testno positive test
negativeno testno negative test
RFC9830-3-2Color-Only Type 3 (bits 11) is reserved for future use and SHOULD NOT be used (§3)
SHOULD NOT 3
positiveno testno positive test
negativeno testno negative test
RFC9830-4.1-1One or more route targets SHOULD be attached to the advertisement (§4.1)
SHOULD 4.1
positiveno testno positive test
negativeno testno negative test
RFC9830-4.2.2-3When the SR Policy tunnel type includes any unrecognized or unsupported sub-TLV, the update SHOULD NOT be considered usable (§4.2.2)
SHOULD NOT 4.2.2
positiveno testno positive test
negativeno testno negative test
RFC9830-4.2.3-4By default, a BGP node receiving an SR Policy NLRI SHOULD NOT remove the Route Target extended community before propagation (§4.2.3)
SHOULD NOT 4.2.3
positiveno testno positive test
negativeno testno negative test
RFC9830-5-3Where the error prevents processing the UPDATE, the router SHOULD handle such malformed NLRIs as AFI/SAFI disable when other AFI/SAFIs share the session (§5)
SHOULD 5
positiveno testno positive test
negativeno testno negative test
RFC9830-5-10An implementation SHOULD log any errors found during the above validation (§5)
SHOULD 5
positiveno testno positive test
negativeno testno negative test
RFC9830-2.1-4The BGP UPDATE message MAY also contain any of the BGP optional attributes (§2.1)
MAY 2.1
positiveno testno positive test
negativeno testno negative test
RFC9830-2.3-2A BGP speaker MAY remove the Tunnel Egress Endpoint and Color sub-TLVs from the Tunnel Encapsulation Attribute during propagation (§2.3)
MAY 2.3
positiveno testno positive test
negativeno testno negative test
RFC9830-2.3-4Other sub-TLVs without defined applicability to the SR Policy SAFI MAY be removed from the Tunnel Encapsulation Attribute during propagation (§2.3)
MAY 2.3
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.1-1The Preference sub-TLV is OPTIONAL (§2.4.1)
OPTIONAL 2.4.1
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.2-1The Binding SID sub-TLV is OPTIONAL (§2.4.2)
OPTIONAL 2.4.2
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.3-1The SRv6 Binding SID sub-TLV is OPTIONAL (§2.4.3)
OPTIONAL 2.4.3
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.3-2More than one SRv6 Binding SID sub-TLV MAY be signaled in the same SR Policy encoding (§2.4.3)
MAY 2.4.3
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.3-8The SRv6 Binding SID value 0 MAY be used to indicate the desired behavior without specifying the BSID (§2.4.3)
MAY 2.4.3
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.4-1The Segment List sub-TLV is OPTIONAL (§2.4.4)
OPTIONAL 2.4.4
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.4-2The Segment List sub-TLV MAY appear multiple times in the SR Policy encoding (§2.4.4)
MAY 2.4.4
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.4-3The Segment List sub-TLV MAY contain a Weight sub-TLV (§2.4.4)
MAY 2.4.4
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.4.1-1The Weight sub-TLV is OPTIONAL (§2.4.4.1)
OPTIONAL 2.4.4.1
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.4.2-1The Segment sub-TLVs are OPTIONAL (§2.4.4.2)
OPTIONAL 2.4.4.2
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.4.2-2The Segment sub-TLVs MAY appear multiple times in the Segment List sub-TLV (§2.4.4.2)
MAY 2.4.4.2
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.4.2.1-6The receiver MAY override the originator's TC and/or TTL values, as determined by local policy (§2.4.4.2.1)
MAY 2.4.4.2.1
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.4.2.4-1The Segment Type sub-TLVs MAY contain the SRv6 Endpoint Behavior and SID Structure encoding (§2.4.4.2.4)
MAY 2.4.4.2.4
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.5-1The ENLP sub-TLV is OPTIONAL (§2.4.5)
OPTIONAL 2.4.5
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.5-9The behavior signaled in the ENLP sub-TLV MAY be overridden by local configuration (§2.4.5)
MAY 2.4.5
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.6-1An operator MAY set the SR Policy Priority sub-TLV to indicate recomputation order upon topological change (§2.4.6)
MAY 2.4.6
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.6-2The Priority sub-TLV is OPTIONAL (§2.4.6)
OPTIONAL 2.4.6
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.7-1An operator MAY set the SR Policy Candidate Path Name sub-TLV to attach a symbolic name to the SR Policy CP (§2.4.7)
MAY 2.4.7
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.7-3Implementations MAY choose to truncate long CP names to 255 bytes when signaling via BGP (§2.4.7)
MAY 2.4.7
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.7-4The SR Policy Candidate Path Name sub-TLV is OPTIONAL (§2.4.7)
OPTIONAL 2.4.7
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.8-1An operator MAY set the SR Policy Name sub-TLV to associate a symbolic name with the SR Policy (§2.4.8)
MAY 2.4.8
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.8-3Implementations MAY choose to truncate long SR Policy names to 255 bytes when signaling via BGP (§2.4.8)
MAY 2.4.8
positiveno testno positive test
negativeno testno negative test
RFC9830-2.4.8-4The SR Policy Name sub-TLV is OPTIONAL (§2.4.8)
OPTIONAL 2.4.8
positiveno testno positive test
negativeno testno negative test
RFC9830-3-1The Color Extended Community MAY be carried in any BGP UPDATE message whose AFI/SAFI is one of the families listed (§3)
MAY 3
positiveno testno positive test
negativeno testno negative test
RFC9830-3-4One or more Color Extended Communities MAY be associated with a BGP route update (§3)
MAY 3
positiveno testno positive test
negativeno testno negative test
RFC9830-4.2.2-4An implementation MAY provide an option for ignoring unsupported sub-TLVs (§4.2.2)
MAY 4.2.2
positiveno testno positive test
negativeno testno negative test
RFC9830-4.2.3-3An implementation MAY provide explicit configuration to override the EBGP default and enable propagation to specific EBGP neighbors (§4.2.3)
MAY 4.2.3
positiveno testno positive test
negativeno testno negative test
RFC9830-4.2.3-5An implementation MAY provide support for configuration to filter and/or remove the Route Target extended community before propagation (§4.2.3)
MAY 4.2.3
positiveno testno positive test
negativeno testno negative test

Gaps and untested MUSTs

RequirementStateReason
RFC9830-2.2-1 Use of any Tunnel Type other than SR Policy with the SR Policy SAFI MUST be considered malformed and handled by treat-as-withdraw (§2.2) {gap}, no test nothing rejects a non-SR-Policy tunnel type under SAFI 73. The RFC 7606 validator table has no entry for attribute 23 (internal/component/bgp/message/rfc7606.go:415-429), so no attribute-level check ever runs on a received Tunnel Encapsulation attribute, and the attribute itself is kept as raw TLV bytes parsed only on demand (internal/core/bgp/attribute/wire.go:346 and :418, internal/core/bgp/attribute/tunnel_encap.go:39). ze parses and re-advertises the attribute; it applies no treat-as-withdraw
RFC9830-2.2-3 Updates carrying more than one SR Policy TLV MUST be considered malformed and handled by treat-as-withdraw (§2.2) {gap}, no test a Tunnel Encapsulation attribute holding two SR Policy TLVs is accepted. ParseTunnelEncap walks every TLV and appends each one without counting types (internal/core/bgp/attribute/tunnel_encap.go:41-54), and there is no RFC 7606 validator for attribute 23 (internal/component/bgp/message/rfc7606.go:415-429), so no treat-as-withdraw is applied. ze's own encoder emits exactly one such TLV, which is the separate RFC9830-2.2-2
RFC9830-2.4.2-5 The unassigned bits in the Binding SID Flags field MUST be set to zero upon transmission (§2.4.2) {gap}, no test buildBindingSIDSubTLV writes 0x10 into the Binding SID Flags octet (internal/component/bgp/plugins/nlri/srpolicy/config.go:385). Section 2.4.2 assigns only S (bit 0, 0x80) and I (bit 1, 0x40) in that field, so bit 3 is unassigned and is set on transmission. The value is pinned as ExaBGP-interoperable in TestSRPolicyInteropExaBGPSubTLVBytes (internal/component/bgp/plugins/nlri/srpolicy/encode_test.go:118-124), which emits the same octet, so the two implementations agree with each other and not with the RFC
RFC9830-2.4.2-11 The Binding SID Label field MUST NOT contain the reserved MPLS label values (0-15) (§2.4.2) {gap}, no test the config parser accepts any 32-bit binding-sid label and range-checks nothing (internal/component/bgp/plugins/nlri/srpolicy/config.go:137-142), so a reserved MPLS label value 0-15 is encoded verbatim by buildBindingSIDSubTLV (internal/component/bgp/plugins/nlri/srpolicy/config.go:387-390). The TC, S and TTL bits ARE forced to zero on the same path, which is the separate RFC9830-2.4.2-9
RFC9830-2.4.4.2.4-4 The total of the locator block, locator node, function, and argument lengths MUST be less than or equal to 128 (§2.4.4.2.4) {gap}, no test the four SID-structure lengths are parsed as independent octets with no sum check (internal/component/bgp/plugins/nlri/srpolicy/config.go:312-318) and written verbatim into the segment sub-TLV (internal/component/bgp/plugins/nlri/srpolicy/config.go:478-481), so a configuration whose locator block, locator node, function and argument lengths total more than 128 is encoded rather than refused
RFC9830-2.4.5-2 The ENLP sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.5) no test no test carries this requirement id; annotated {not-applicable}: ze neither encodes nor interprets the ENLP sub-TLV, so it never writes a second instance. The SR Policy sub-TLV constant set holds no type 14 (internal/component/bgp/plugins/nlri/srpolicy/config.go:23-29), buildTunnelEncap has no ENLP branch (internal/component/bgp/plugins/nlri/srpolicy/config.go:339-363), and grep -rniE '\benlp\b|explicit.?null.?label' over the Go tree matches only the OSPF MPLS Explicit NULL label, an unrelated feature
RFC9830-2.4.5-3 The ENLP sub-TLV Length value MUST be 3 (§2.4.5) no test no test carries this requirement id; annotated {not-applicable}: ze writes no ENLP sub-TLV, so it declares no length for one. There is no type-14 constant in the SR Policy encoder (internal/component/bgp/plugins/nlri/srpolicy/config.go:23-29) and no ENLP branch in buildTunnelEncap (internal/component/bgp/plugins/nlri/srpolicy/config.go:339-363)
RFC9830-2.4.5-4 The ENLP Flags field MUST be set to zero on transmission (§2.4.5) no test no test carries this requirement id; annotated {not-applicable}: ze transmits no ENLP sub-TLV, so it has no ENLP Flags field to zero; the config keyword set has no ENLP spelling (internal/component/bgp/plugins/nlri/srpolicy/config.go:72-187) and buildTunnelEncap emits no type-14 sub-TLV (internal/component/bgp/plugins/nlri/srpolicy/config.go:339-363)
RFC9830-2.4.5-5 The ENLP Flags field MUST be ignored on receipt (§2.4.5) no test no test carries this requirement id; annotated {not-applicable}: ze decodes no ENLP sub-TLV, so it reads no ENLP Flags field. Preference is the only typed sub-TLV accessor (internal/core/bgp/attribute/tunnel_encap.go:145) and the sub-TLV type constants stop at Segment List (internal/core/bgp/attribute/tunnel_encap.go:87-92)
RFC9830-2.4.5-6 The ENLP RESERVED field MUST be set to zero on transmission (§2.4.5) no test no test carries this requirement id; annotated {not-applicable}: ze transmits no ENLP sub-TLV, so it has no ENLP RESERVED octet to zero; buildTunnelEncap emits no type-14 sub-TLV (internal/component/bgp/plugins/nlri/srpolicy/config.go:339-363)
RFC9830-2.4.5-7 The ENLP RESERVED field MUST be ignored on receipt (§2.4.5) no test no test carries this requirement id; annotated {not-applicable}: ze decodes no ENLP sub-TLV, so it reads no ENLP RESERVED octet; the only typed sub-TLV accessor is Preference (internal/core/bgp/attribute/tunnel_encap.go:145)
RFC9830-2.4.5-8 Implementations MUST ignore the ENLP sub-TLV with unrecognized values (other than 1 through 4) (§2.4.5) no test no test carries this requirement id; annotated {not-applicable}: ze interprets no ENLP value, recognized or not. The requirement presupposes a receiver that acts on values 1 through 4; ze has no ENLP decoder at all (internal/core/bgp/attribute/tunnel_encap.go:87-92, :145) and no Explicit NULL push driven by an SR Policy
RFC9830-3-3 Upon reception, an implementation MUST treat Color-Only Type 3 (bits 11) like Type 0 (§3) no test no test carries this requirement id; annotated {not-applicable}: ze performs no color-based steering, so it never compares a route's Color Extended Community with an SR Policy and the Color-Only bits are never read. The eight octets are carried as an opaque extended community (internal/core/bgp/attribute/community.go, ParseExtendedCommunities) and grep -rniE 'color.?only|colorExtended' over the Go tree matches only test names, with no producer that decodes the CO field
RFC9830-4.1-2 If no route target is attached, the NO_ADVERTISE community MUST be attached to the SR Policy update (§4.1) {gap}, no test ze attaches neither a route target nor NO_ADVERTISE to an SR Policy advertisement. parseConfigRoute builds exactly one attribute, the Tunnel Encapsulation attribute (internal/component/bgp/plugins/nlri/srpolicy/config.go:218-225), and deliberately ignores the pre-parsed attribute block that carries communities for other families (internal/component/bgp/plugins/nlri/srpolicy/config.go:43-44), so an SR Policy route ze originates carries no community at all
RFC9830-4.2.1-1 A BGP speaker MUST first perform validation based on the §4.2.1 rules in addition to the validation in §5 (§4.2.1) {gap}, no test no SR Policy validation runs on receipt. validateMPNLRISyntax returns nil for every SAFI other than unicast and multicast, so SAFI 73 is skipped (internal/component/bgp/message/rfc7606.go:701-704), and the RFC 7606 validator table has no entry for attribute 23 (internal/component/bgp/message/rfc7606.go:415-429). A received SR Policy update reaches the RIB without any of the Section 4.2.1 checks
RFC9830-4.2.1-3 The length of the NLRI MUST be either 12 or 24 octets depending on the Endpoint address family (§4.2.1) {gap}, no test SplitSRPolicy accepts any non-zero byte-aligned length that fits the buffer and never compares it with the AFI's mandated 12 or 24 octets (internal/component/bgp/plugins/nlri/srpolicy/split.go:22-33), and its error is discarded by the RIB walk (internal/component/bgp/plugins/rib/rib_structured.go:229). The encoder always writes the mandated length, which is the separate RFC9830-2.1-2
RFC9830-4.2.1-4 The SR Policy update MUST have either the NO_ADVERTISE community, at least one IPv4-address-format Route Target extended community, or both (§4.2.1) {gap}, no test nothing inspects the communities of a received SR Policy update. There is no RFC 7606 validator for attribute 23 and none for the SAFI (internal/component/bgp/message/rfc7606.go:415-429, :701-704), and no code path reads NO_ADVERTISE or a route target for SAFI 73: grep for SAFISRPolicy outside the NLRI codec matches only the family registry and the next-hop length table (internal/core/bgp/attribute/mpnlri.go:277)
RFC9830-4.2.1-5 An SR Policy update with no Route Target extended communities and no NO_ADVERTISE community MUST be considered malformed (§4.2.1) {gap}, no test an SR Policy update with neither a route target nor NO_ADVERTISE is accepted like any other. The malformed decision would have to come from an RFC 7606 validator for attribute 23 or for SAFI 73, and neither exists (internal/component/bgp/message/rfc7606.go:415-429, :701-704)
RFC9830-4.2.1-8 A router receiving an update not valid according to these criteria MUST treat the update as malformed (§4.2.1) {gap}, no test no receive-side validity criteria are evaluated, so none can drive a malformed verdict. SAFI 73 is excluded from the NLRI syntax check (internal/component/bgp/message/rfc7606.go:701-704) and attribute 23 has no validator (internal/component/bgp/message/rfc7606.go:415-429)
RFC9830-4.2.1-9 An invalid SR Policy CP MUST NOT be passed to the SRPM (§4.2.1) no test no test carries this requirement id; annotated {not-applicable}: ze has no SRPM. grep -rni '\bsrpm\b' over the Go tree matches nothing, the SR Policy plugin registers only an NLRI codec and a config route encoder (internal/component/bgp/plugins/nlri/srpolicy/register.go:29-40), and no candidate path is ever handed to a policy manager, valid or otherwise
RFC9830-4.2.2-1 If route targets are present, at least one MUST match the BGP Identifier of the receiver for the update to be usable (§4.2.2) no test no test carries this requirement id; annotated {not-applicable}: ze never makes an SR Policy locally usable, so there is no eligibility decision for a route target to gate. There is no SRPM (grep -rni '\bsrpm\b' over the Go tree matches nothing) and no SAFI 73 consumer outside the NLRI codec and the family registry (internal/component/bgp/plugins/nlri/srpolicy/register.go:29-40, internal/core/family/family.go:93)
RFC9830-4.2.2-2 The Route Target extended community MUST be of the same format (4-octet, unsigned, non-zero) as the BGP Identifier (§4.2.2) no test no test carries this requirement id; annotated {not-applicable}: ze compares no route target against its BGP Identifier for SAFI 73, because it makes no SR Policy locally usable; there is no SRPM and no local-use path (internal/component/bgp/plugins/nlri/srpolicy/register.go:29-40), so the format constraint governs a comparison ze never performs
RFC9830-4.2.2-5 When an update results in the SR Policy NLRI becoming unusable, BGP MUST delete its corresponding SR Policy CP from the SRPM (§4.2.2) no test no test carries this requirement id; annotated {not-applicable}: ze holds no SR Policy candidate path to delete. grep -rni '\bsrpm\b' over the Go tree matches nothing and the SR Policy plugin keeps no state beyond the NLRI codec (internal/component/bgp/plugins/nlri/srpolicy/register.go:29-40); withdrawal of a SAFI 73 route removes the RIB entry and nothing else
RFC9830-4.2.3-1 SR Policy NLRIs that have the NO_ADVERTISE community MUST NOT be propagated (§4.2.3) {gap}, no test the egress gate consults only the operator-configured export filter chain and never inspects community values (writeUpdateGated, internal/component/bgp/reactor/session_write.go:263-283), so an SR Policy NLRI carrying NO_ADVERTISE is propagated unless an operator filter happens to match it. The same omission is disclosed for RFC 1997
RFC9830-4.2.3-2 By default, a BGP node receiving an SR Policy NLRI MUST NOT propagate it to any EBGP neighbor (§4.2.3) {gap}, no test propagation of SAFI 73 is family-generic with no eBGP default. The reactor's forwarding path keys on the negotiated families and the per-peer export filter, and grep for SAFISRPolicy over internal/component/bgp/reactor matches nothing, so a received SR Policy NLRI is forwarded to an eBGP neighbor that negotiated the family like any other route
RFC9830-5-1 A BGP speaker MUST perform syntactic validation of the SR Policy NLRI (per-NLRI length, total MP_REACH_NLRI/MP_UNREACH_NLRI length, and consistency of NLRI length with the AFI and endpoint) to determine if malformed (§5) {gap}, no test the syntactic validation is partial and its verdict is discarded. SplitSRPolicy checks the framing -- zero length, byte alignment, buffer overrun (internal/component/bgp/plugins/nlri/srpolicy/split.go:22-33) -- but never the consistency of the length with the AFI and endpoint, and every caller drops its error (internal/component/bgp/plugins/rib/rib_structured.go:229). The MP attribute's own NLRI check skips SAFI 73 outright (internal/component/bgp/message/rfc7606.go:701-704)
RFC9830-5-2 When the error allows skipping the malformed NLRI(s) and continuing, the router MUST handle such malformed NLRIs as treat-as-withdraw (§5) {gap}, no test no SR Policy NLRI is ever treated as withdrawn for being malformed. SAFI 73 is excluded from validateMPNLRISyntax (internal/component/bgp/message/rfc7606.go:701-704), which is the only path that turns an NLRI-level error into an RFC 7606 action, and the splitter's error is discarded (internal/component/bgp/plugins/rib/rib_structured.go:229)
RFC9830-5-4 The router MUST perform session reset when the session is only used for SR Policy or when AFI/SAFI disable is not possible (§5) {gap}, no test no SR Policy error path exists, so no session reset can be reached from one. The RFC7606ActionSessionReset verdict is produced only by the checks in internal/component/bgp/message/rfc7606.go, and SAFI 73 reaches none of them (internal/component/bgp/message/rfc7606.go:701-704, :415-429)
RFC9830-5-5 The validation of the TLVs/sub-TLVs defined in Section 2.4 MUST be performed to determine if they are malformed or invalid (§5) {gap}, no test only one Section 2.4 sub-TLV is validated. TunnelTLV.Preference checks the mandated 6-octet value length before reading it (internal/core/bgp/attribute/tunnel_encap.go:151); every other sub-TLV is walked for framing only by TunnelTLV.SubTLVs (internal/core/bgp/attribute/tunnel_encap.go:104-131) and no length, flag or field of the Binding SID, SRv6 Binding SID, Priority, Segment List, Weight, Segment or name sub-TLVs is checked
RFC9830-5-6 The validation of the Tunnel Encapsulation Attribute and other TLVs/sub-TLVs (RFC 9012 Section 13) MUST be done as described in that document (§5) {gap}, no test the RFC 9012 Section 13 structural validation exists but is never driven at reception. ParseTunnelEncap is registered as the parser for attribute 23 (internal/core/bgp/attribute/wire.go:418) and rejects broken TLV framing (internal/core/bgp/attribute/tunnel_encap.go:41-54), but attributes are parsed lazily, only when something reads them (internal/core/bgp/attribute/wire.go:346), and nothing reads attribute 23 for a SAFI 73 route; there is no RFC 7606 validator that would force the parse (internal/component/bgp/message/rfc7606.go:415-429)
RFC9830-5-7 In case of any error detected at the attribute or its TLV/sub-TLV level, the treat-as-withdraw strategy MUST be applied (§5) {gap}, no test an error at the attribute or sub-TLV level produces no treat-as-withdraw. The RFC 7606 validator table has no entry for attribute 23 (internal/component/bgp/message/rfc7606.go:415-429), so the ParseTunnelEncap and SubTLVs errors (internal/core/bgp/attribute/tunnel_encap.go:43, :109) are only ever seen by a caller that chose to parse, never by the UPDATE validation path
RFC9830-5-8 An SR Policy update determined not valid per Section 4.2.1 MUST be handled by treat-as-withdraw (§5) {gap}, no test the Section 4.2.1 validity criteria are not evaluated at all (see RFC9830-4.2.1-1), so no update can be handled as treat-as-withdraw for failing them; SAFI 73 reaches neither the NLRI check nor an attribute validator (internal/component/bgp/message/rfc7606.go:701-704, :415-429)

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.

RFC9830-2.1-1

The AFI used MUST be IPv4(1) or IPv6(2) (§2.1)

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

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

RFC9830-2.1-2

The NLRI Length value MUST be 96 when AFI = 1 and 192 when AFI = 2 (§2.1)

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

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

RFC9830-2.1-3

A BGP UPDATE carrying MP_REACH_NLRI or MP_UNREACH_NLRI with the SR Policy SAFI MUST also carry the BGP mandatory attributes (§2.1)

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

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

RFC9830-2.2-1

Use of any Tunnel Type other than SR Policy with the SR Policy SAFI MUST be considered malformed and handled by treat-as-withdraw (§2.2)

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

No test carries RFC9830-2.2-1, so no unit is bound to it.

RFC9830-2.2-2

A Tunnel Encapsulation Attribute MUST NOT contain more than one TLV of type "SR Policy" (§2.2)

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

PolarityTestKind and tierProof state
positive TestRFC9830SinglePolicyTLVPerAttribute unit/verify unproven

RFC9830-2.2-3

Updates carrying more than one SR Policy TLV MUST be considered malformed and handled by treat-as-withdraw (§2.2)

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

No test carries RFC9830-2.2-3, so no unit is bound to it.

RFC9830-2.3-1

If the Tunnel Egress Endpoint and Color sub-TLVs are present, a BGP speaker MUST ignore them (§2.3)

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

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

RFC9830-2.3-3

Any other sub-TLVs without explicitly defined applicability to the SR Policy SAFI MUST be ignored by the BGP speaker (§2.3)

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

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

RFC9830-2.4-1

For single-instance TLVs/sub-TLVs, only the first instance is used and the other instances MUST be ignored (§2.4)

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

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

RFC9830-2.4-2

The other (duplicate) instances of a single-instance TLV/sub-TLV MUST NOT be considered malformed (§2.4)

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

PolarityTestKind and tierProof state
negative TestRFC9012MalformedAttributeIsRejected unit/verify unproven
positive TestRFC9012DuplicateSingleInstanceSubTLVs unit/verify unproven

RFC9830-2.4.1-2

The Preference sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.1)

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

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

RFC9830-2.4.1-3

The Preference sub-TLV Length value MUST be 6 (§2.4.1)

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

PolarityTestKind and tierProof state
negative TestRFC9830PreferenceFlagsAndReservedIgnored unit/verify unproven
positive TestRFC9830PreferenceSubTLV unit/verify unproven

RFC9830-2.4.1-4

The Preference Flags field MUST be set to zero on transmission (§2.4.1)

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

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

RFC9830-2.4.1-5

The Preference Flags field MUST be ignored on receipt (§2.4.1)

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

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

RFC9830-2.4.1-6

The Preference RESERVED field MUST be set to zero on transmission (§2.4.1)

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

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

RFC9830-2.4.1-7

The Preference RESERVED field MUST be ignored on receipt (§2.4.1)

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

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

RFC9830-2.4.2-2

The Binding SID sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.2)

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

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

RFC9830-2.4.2-4

The Binding SID Length value MUST be 18 when an SRv6 BSID is present, 6 when an SR-MPLS BSID is present, or 2 when no BSID is present (§2.4.2)

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

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

RFC9830-2.4.2-5

The unassigned bits in the Binding SID Flags field MUST be set to zero upon transmission (§2.4.2)

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

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

RFC9830-2.4.2-6

The unassigned bits in the Binding SID Flags field MUST be ignored upon receipt (§2.4.2)

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

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

RFC9830-2.4.2-7

The Binding SID RESERVED field MUST be set to zero on transmission (§2.4.2)

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

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

RFC9830-2.4.2-8

The Binding SID RESERVED field MUST be ignored on receipt (§2.4.2)

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

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

RFC9830-2.4.2-9

The Binding SID Label TC, S, and TTL bits MUST be set to zero (§2.4.2)

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

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

RFC9830-2.4.2-10

The Binding SID Label TC, S, and TTL bits MUST be ignored (§2.4.2)

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

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

RFC9830-2.4.2-11

The Binding SID Label field MUST NOT contain the reserved MPLS label values (0-15) (§2.4.2)

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

No test carries RFC9830-2.4.2-11, so no unit is bound to it.

RFC9830-2.4.3-3

The SRv6 Binding SID Length value MUST be 26 when the SRv6 Endpoint Behavior and SID Structure is present, else MUST be 18 (§2.4.3)

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

PolarityTestKind and tierProof state
positive TestRFC9830SRv6BindingSIDSubTLV unit/verify unproven

RFC9830-2.4.3-4

The unassigned bits in the SRv6 Binding SID Flags field MUST be set to zero upon transmission (§2.4.3)

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

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

RFC9830-2.4.3-5

The unassigned bits in the SRv6 Binding SID Flags field MUST be ignored upon receipt (§2.4.3)

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

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

RFC9830-2.4.3-6

The SRv6 Binding SID RESERVED field MUST be set to zero on transmission (§2.4.3)

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

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

RFC9830-2.4.3-7

The SRv6 Binding SID RESERVED field MUST be ignored on receipt (§2.4.3)

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

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

RFC9830-2.4.3-9

The SRv6 Endpoint Behavior and SID Structure MUST NOT be included when the SRv6 SID has not been included (§2.4.3)

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

PolarityTestKind and tierProof state
positive TestRFC9830SRv6BindingSIDSubTLV unit/verify unproven

RFC9830-2.4.4-4

The Segment List RESERVED field MUST be set to zero on transmission (§2.4.4)

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

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

RFC9830-2.4.4-5

The Segment List RESERVED field MUST be ignored on receipt (§2.4.4)

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

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

RFC9830-2.4.4.1-2

The Weight sub-TLV MUST NOT appear more than once inside the Segment List sub-TLV (§2.4.4.1)

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

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

RFC9830-2.4.4.1-3

The Weight sub-TLV Length value MUST be 6 (§2.4.4.1)

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

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

RFC9830-2.4.4.1-4

The Weight Flags field MUST be set to zero on transmission (§2.4.4.1)

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

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

RFC9830-2.4.4.1-5

The Weight Flags field MUST be ignored on receipt (§2.4.4.1)

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

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

RFC9830-2.4.4.1-6

The Weight RESERVED field MUST be set to zero on transmission (§2.4.4.1)

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

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

RFC9830-2.4.4.1-7

The Weight RESERVED field MUST be ignored on receipt (§2.4.4.1)

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

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

RFC9830-2.4.4.2.1-1

The Type A Segment sub-TLV Length value MUST be 6 (§2.4.4.2.1)

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

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

RFC9830-2.4.4.2.1-2

The Type A Segment RESERVED field MUST be set to zero on transmission (§2.4.4.2.1)

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

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

RFC9830-2.4.4.2.1-3

The Type A Segment RESERVED field MUST be ignored on receipt (§2.4.4.2.1)

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

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

RFC9830-2.4.4.2.1-4

The Type A Segment S bit MUST be zero upon transmission (§2.4.4.2.1)

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

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

RFC9830-2.4.4.2.1-5

The Type A Segment S bit MUST be ignored upon reception (§2.4.4.2.1)

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

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

RFC9830-2.4.4.2.2-1

The Type B Segment sub-TLV Length value MUST be 26 when the SRv6 Endpoint Behavior and SID Structure is present, else MUST be 18 (§2.4.4.2.2)

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

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

RFC9830-2.4.4.2.2-2

The Type B Segment RESERVED field MUST be set to zero on transmission (§2.4.4.2.2)

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

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

RFC9830-2.4.4.2.2-3

The Type B Segment RESERVED field MUST be ignored on receipt (§2.4.4.2.2)

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

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

RFC9830-2.4.4.2.2-4

The Type B SRv6 Endpoint Behavior and SID Structure MUST NOT be included when the SRv6 SID has not been included (§2.4.4.2.2)

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

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

RFC9830-2.4.4.2.3-1

The unassigned bits in the Segment Flags field MUST be set to zero upon transmission (§2.4.4.2.3)

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

PolarityTestKind and tierProof state
negative TestRFC9830SegmentTypeBSubTLV unit/verify unproven
positive TestRFC9830SegmentTypeASubTLV unit/verify unproven
positive TestRFC9830SegmentTypeBSubTLV unit/verify unproven

RFC9830-2.4.4.2.3-2

The unassigned bits in the Segment Flags field MUST be ignored upon receipt (§2.4.4.2.3)

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

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

RFC9830-2.4.4.2.3-3

If the B-Flag appears with Segment Type A, it MUST be ignored (§2.4.4.2.3)

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

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

RFC9830-2.4.4.2.4-2

The SRv6 Endpoint Behavior and SID Structure Reserved field MUST be set to zero on transmission (§2.4.4.2.4)

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

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

RFC9830-2.4.4.2.4-3

The SRv6 Endpoint Behavior and SID Structure Reserved field MUST be ignored on receipt (§2.4.4.2.4)

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

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

RFC9830-2.4.4.2.4-4

The total of the locator block, locator node, function, and argument lengths MUST be less than or equal to 128 (§2.4.4.2.4)

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

No test carries RFC9830-2.4.4.2.4-4, so no unit is bound to it.

RFC9830-2.4.5-2

The ENLP sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.5)

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

No test carries RFC9830-2.4.5-2, so no unit is bound to it.

RFC9830-2.4.5-3

The ENLP sub-TLV Length value MUST be 3 (§2.4.5)

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

No test carries RFC9830-2.4.5-3, so no unit is bound to it.

RFC9830-2.4.5-4

The ENLP Flags field MUST be set to zero on transmission (§2.4.5)

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

No test carries RFC9830-2.4.5-4, so no unit is bound to it.

RFC9830-2.4.5-5

The ENLP Flags field MUST be ignored on receipt (§2.4.5)

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

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

RFC9830-2.4.5-6

The ENLP RESERVED field MUST be set to zero on transmission (§2.4.5)

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

No test carries RFC9830-2.4.5-6, so no unit is bound to it.

RFC9830-2.4.5-7

The ENLP RESERVED field MUST be ignored on receipt (§2.4.5)

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

No test carries RFC9830-2.4.5-7, so no unit is bound to it.

RFC9830-2.4.5-8

Implementations MUST ignore the ENLP sub-TLV with unrecognized values (other than 1 through 4) (§2.4.5)

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

No test carries RFC9830-2.4.5-8, so no unit is bound to it.

RFC9830-2.4.6-3

The Priority sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.6)

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

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

RFC9830-2.4.6-4

The Priority sub-TLV Length value MUST be 2 (§2.4.6)

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

PolarityTestKind and tierProof state
negative TestRFC9830PriorityLengthIsValueLength unit/verify unproven
positive TestRFC9830PrioritySubTLV unit/verify unproven

RFC9830-2.4.6-5

The Priority RESERVED field MUST be set to zero on transmission (§2.4.6)

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

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

RFC9830-2.4.6-6

The Priority RESERVED field MUST be ignored on receipt (§2.4.6)

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

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

RFC9830-2.4.7-5

The SR Policy Candidate Path Name sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.7)

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

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

RFC9830-2.4.7-6

The SR Policy Candidate Path Name RESERVED field MUST be set to zero on transmission (§2.4.7)

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

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

RFC9830-2.4.7-7

The SR Policy Candidate Path Name RESERVED field MUST be ignored on receipt (§2.4.7)

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

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

RFC9830-2.4.8-5

The SR Policy Name sub-TLV MUST NOT appear more than once in the SR Policy encoding (§2.4.8)

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

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

RFC9830-2.4.8-6

The SR Policy Name RESERVED field MUST be set to zero on transmission (§2.4.8)

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

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

RFC9830-2.4.8-7

The SR Policy Name RESERVED field MUST be ignored on receipt (§2.4.8)

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

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

RFC9830-3-3

Upon reception, an implementation MUST treat Color-Only Type 3 (bits 11) like Type 0 (§3)

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

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

RFC9830-4.1-2

If no route target is attached, the NO_ADVERTISE community MUST be attached to the SR Policy update (§4.1)

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

No test carries RFC9830-4.1-2, so no unit is bound to it.

RFC9830-4.2.1-1

A BGP speaker MUST first perform validation based on the §4.2.1 rules in addition to the validation in §5 (§4.2.1)

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

No test carries RFC9830-4.2.1-1, so no unit is bound to it.

RFC9830-4.2.1-2

The SR Policy NLRI MUST include a Distinguisher, Color, and Endpoint field (§4.2.1)

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

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

RFC9830-4.2.1-3

The length of the NLRI MUST be either 12 or 24 octets depending on the Endpoint address family (§4.2.1)

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

No test carries RFC9830-4.2.1-3, so no unit is bound to it.

RFC9830-4.2.1-4

The SR Policy update MUST have either the NO_ADVERTISE community, at least one IPv4-address-format Route Target extended community, or both (§4.2.1)

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

No test carries RFC9830-4.2.1-4, so no unit is bound to it.

RFC9830-4.2.1-5

An SR Policy update with no Route Target extended communities and no NO_ADVERTISE community MUST be considered malformed (§4.2.1)

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

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

RFC9830-4.2.1-6

The Tunnel Encapsulation Attribute MUST be attached to the BGP UPDATE message (§4.2.1)

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

PolarityTestKind and tierProof state
positive TestRFC9830TunnelTypeIsSRPolicy unit/verify unproven

RFC9830-4.2.1-7

The Tunnel Encapsulation Attribute MUST have a Tunnel Type TLV set to SR Policy (code point 15) (§4.2.1)

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

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

RFC9830-4.2.1-8

A router receiving an update not valid according to these criteria MUST treat the update as malformed (§4.2.1)

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

No test carries RFC9830-4.2.1-8, so no unit is bound to it.

RFC9830-4.2.1-9

An invalid SR Policy CP MUST NOT be passed to the SRPM (§4.2.1)

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

No test carries RFC9830-4.2.1-9, so no unit is bound to it.

RFC9830-4.2.2-1

If route targets are present, at least one MUST match the BGP Identifier of the receiver for the update to be usable (§4.2.2)

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

No test carries RFC9830-4.2.2-1, so no unit is bound to it.

RFC9830-4.2.2-2

The Route Target extended community MUST be of the same format (4-octet, unsigned, non-zero) as the BGP Identifier (§4.2.2)

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

No test carries RFC9830-4.2.2-2, so no unit is bound to it.

RFC9830-4.2.2-5

When an update results in the SR Policy NLRI becoming unusable, BGP MUST delete its corresponding SR Policy CP from the SRPM (§4.2.2)

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

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

RFC9830-4.2.3-1

SR Policy NLRIs that have the NO_ADVERTISE community MUST NOT be propagated (§4.2.3)

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

No test carries RFC9830-4.2.3-1, so no unit is bound to it.

RFC9830-4.2.3-2

By default, a BGP node receiving an SR Policy NLRI MUST NOT propagate it to any EBGP neighbor (§4.2.3)

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

No test carries RFC9830-4.2.3-2, so no unit is bound to it.

RFC9830-4.2.3-6

A BGP node MUST NOT alter the SR Policy information carried in the Tunnel Encapsulation Attribute during propagation (§4.2.3)

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

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

RFC9830-5-1

A BGP speaker MUST perform syntactic validation of the SR Policy NLRI (per-NLRI length, total MP_REACH_NLRI/MP_UNREACH_NLRI length, and consistency of NLRI length with the AFI and endpoint) to determine if malformed (§5)

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

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

RFC9830-5-2

When the error allows skipping the malformed NLRI(s) and continuing, the router MUST handle such malformed NLRIs as treat-as-withdraw (§5)

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

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

RFC9830-5-4

The router MUST perform session reset when the session is only used for SR Policy or when AFI/SAFI disable is not possible (§5)

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

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

RFC9830-5-5

The validation of the TLVs/sub-TLVs defined in Section 2.4 MUST be performed to determine if they are malformed or invalid (§5)

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

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

RFC9830-5-6

The validation of the Tunnel Encapsulation Attribute and other TLVs/sub-TLVs (RFC 9012 Section 13) MUST be done as described in that document (§5)

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

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

RFC9830-5-7

In case of any error detected at the attribute or its TLV/sub-TLV level, the treat-as-withdraw strategy MUST be applied (§5)

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

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

RFC9830-5-8

An SR Policy update determined not valid per Section 4.2.1 MUST be handled by treat-as-withdraw (§5)

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

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

RFC9830-5-9

A BGP implementation MUST NOT perform semantic verification of the individual TLV/sub-TLV fields, nor consider the SR Policy update invalid or not usable based on such validation (§5)

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

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

Extraction sign-off

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

Superseded

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