Experimental

RFC 3101 - The OSPF Not-So-Stubby Area (NSSA) Option

Every requirement this repository extracted from RFC 3101, 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 ways100.0%16 of 16 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 16 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 16 binding obligations

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

No test at all0.0%0 of 16 binding obligations

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

Proven by a recorded break0.0%0 of 52 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 MUSTs16of 20 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 scope0of 16 gated MUSTs

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

The 4 shares marked as a part above are the whole of the 16 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 ok 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 Experimental
Enrolment Enrolled
Requirements 20
Gated MUST-level 16
Obligations that bind Ze 16
Not applicable, so out of scope 0
Declared gaps 0
Gated with no test 0
Nightly-only evidence 0
Test tags 52
Tagged units 52
Recorded audit verdicts 0
Discrimination records 0
Summary rfc/short/rfc3101.md
Requirement shard rfc/requirements/rfc3101.md
RFC text rfc/full/rfc3101.txt

Enrolment

Enrolled: OSPF NSSA (RFC 3101): 13 MET (N/E-bit Hello negotiation, Type-7 origination/flood-scope, P-bit boundary policy, ASBR E-bit, Type-3 import, translator election, Type-7->Type-5 translation, highest-RID duplicate suppression) + 2 gap (install-side default P-gate, unconditional default into every NSSA)

What the public ledger says

Status: Experimental

What the ledger says is covered Type-7 origination/flooding, redistribution into NSSA, N/E-bit Hello negotiation, Router-LSA Nt/E/B flags, translator election (Nt-bit candidates, highest-RID, always/never roles, stability grace), Type-7 to Type-5 translation with FA/metric/tag preservation and highest-RID duplicate suppression, source preference, Type-3 summary import policy. For both address families: mandatory border-router defaults with no operator gate, no-summary defaults through the summary path (Type-3 for OSPFv2, Inter-Area-Prefix for OSPFv3), and the P-bit and suppressed-summary-import gates on installing a received Type-7 default.
What the ledger says remains The Section 2.4 default-route origination now dispatches on address family in applyNSSADefaults (internal/plugins/ospf/nssa.go), so an OSPFv3 NSSA border router originates the 0x2007 NSSA-LSA that RFC 5340 Section 4.4.3.7 defines rather than the OSPFv2 0x0007. Both halves are unit-proven in each family, and OSPFv2 origination is additionally proven against FRR by test/interop/scenarios/ospf-stub-nssa-frr. Two things are still owed, tracked by plan/spec-ospf-rfc3101-nssa-defaults.md: OSPFv3 has unit evidence only, with no interop scenario and no functional .ci driving a running daemon; and three sites compute NSSA border-router status independently, so the advertised Router-LSA B-bit and the originated default can disagree across a backbone transition. Note that the rfc/short/rfc3101.md checklist cannot record the difference: its requirement ids carry no address-family dimension, so a tagged test on either path satisfies it for both. Same OSPF experimental status.

Coverage

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

Positive and negative tests (16): RFC3101-2.1-1, RFC3101-2.1-2, RFC3101-x-1, RFC3101-2.3-1, RFC3101-2.3-2, RFC3101-2.4-1, RFC3101-2.4-2, RFC3101-2.4-3, RFC3101-2.4-4, RFC3101-2.4-5, RFC3101-2.5-1, RFC3101-3.1-1, RFC3101-2.7-1, RFC3101-3.1-2, RFC3101-3.2-1, RFC3101-3.2-2

Requirements

RequirementLevelSectionTests
RFC3101-2.1-1Verify N-bit and E-bit in received Hellos match the area type before adjacency (Section 2.1)
MUST 2.1
positiveunit/verifyTestOSPFNSSANbitMismatch
negativeunit/verifyTestOSPFNSSANbitMismatch
RFC3101-2.1-2Refuse adjacency unless both routers agree on the N-bit (Section 2.1)
MUST 2.1
positiveunit/verifyTestOSPFNSSANbitMismatch
negativeunit/verifyTestOSPFNSSANbitMismatch
RFC3101-x-1Keep the E-bit clear whenever the N-bit is set (Appendix A)
MUST x
positiveunit/verifyTestOSPFNSSANbitMismatch
negativeunit/verifyTestOSPFNSSANbitMismatch
RFC3101-2.3-1Originate Type-7 NSSA-LSAs with LS Type value 7 (Section 2.3)
MUST 2.3
positiveunit/verifyTestOSPFType7Origination
negativeunit/verifyTestOSPFType7Origination
RFC3101-2.3-2Flood Type-7 LSAs only within the originating NSSA (Section 2.3)
MUST 2.3
positiveunit/verifyTestOSPFType7FloodScope
negativeunit/verifyTestOSPFType7FloodScope
RFC3101-2.4-1Set the P-bit on Type-7 LSAs an NSSA internal ASBR wants in the transit topology (Section 2.4)
MUST 2.4
positiveunit/verifyTestOSPFType7Origination
negativeunit/verifyTestOSPFType7Origination
RFC3101-2.4-2Ensure a non-zero forwarding address whenever the P-bit is set; otherwise do not originate the Type-7 LSA (Section 2.4)
MUST 2.4
RFC3101-2.4-3Clear the P-bit on a Type-7 LSA when the same network is also originated as a Type-5 LSA (Section 2.4)
MUST 2.4
RFC3101-2.4-4Clear the P-bit on a Type-7 default LSA originated by an NSSA border router; install a Type-7 default only if its P-bit is set (Section 2.4)
MUST 2.4
RFC3101-2.4-5Originate a default-destination LSA into every directly attached NSSA (Section 2.4)
MUST 2.4
RFC3101-2.5-1Ignore Type-7 default LSAs on an NSSA border router that suppresses Type-3 summary import (Section 2.5)
MUST 2.5
RFC3101-3.1-1Set the E-bit in Type-1 router-LSAs of directly attached non-stub areas (Section 3.1)
MUST 3.1
positiveunit/verifyTestOSPFASBRBitFromNSSAType7
negativeunit/verifyTestOSPFASBRBitFromNSSAType7
RFC3101-2.7-1Support optional import of summary routes into NSSAs as Type-3 summary-LSAs (Section 2.7)
MUST 2.7
RFC3101-3.1-2Elect the translator as the reachable NSSA border router with Nt set or the highest Router ID (Section 3.1)
MUST 3.1
RFC3101-3.2-1In translation, set the advertising router to the translator's Router ID and preserve mask, path type, metric, forwarding address, and route tag (Section 3.2)
MUST 3.2
positiveunit/verifyTestOSPFNSSATranslation
negativeunit/verifyTestOSPFNSSATranslation
RFC3101-3.2-2Suppress duplicate translation: translate only if this router has the highest Router ID among translators advertising a functionally equivalent Type-5 LSA (Section 3.2)
MUST 3.2
RFC3101-x-2Honor the TranslatorStabilityInterval (default 40 s) before relinquishing translator duties (Appendix D)
SHOULD x
positiveno testno positive test
negativeno testno negative test
RFC3101-2.4-6Originate Type-4 summary-LSAs into an NSSA (Section 2.4)
SHOULD NOT 2.4
positiveno testno positive test
negativeno testno negative test
RFC3101-2.7-2Originate a Type-3 summary-LSA as the NSSA default when summary import is disabled (no-summary NSSA) (Section 2.7)
SHOULD 2.7
RFC3101-2.2-1Aggregate Type-7 routes into one Type-5 LSA per configured Type-7 address range, with a 0.0.0.0 forwarding address (Section 2.2, Section 3.2)
MAY 2.2
positiveno testno positive test
negativeno testno negative test

Gaps and untested MUSTs

RFC 3101 declares no gap, and every gated MUST it carries has a test bound to it.

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.

RFC3101-2.1-1

Verify N-bit and E-bit in received Hellos match the area type before adjacency (Section 2.1)

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

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

RFC3101-2.1-2

Refuse adjacency unless both routers agree on the N-bit (Section 2.1)

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

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

RFC3101-x-1

Keep the E-bit clear whenever the N-bit is set (Appendix A)

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

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

RFC3101-2.3-1

Originate Type-7 NSSA-LSAs with LS Type value 7 (Section 2.3)

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

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

RFC3101-2.3-2

Flood Type-7 LSAs only within the originating NSSA (Section 2.3)

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

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

RFC3101-2.4-1

Set the P-bit on Type-7 LSAs an NSSA internal ASBR wants in the transit topology (Section 2.4)

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

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

RFC3101-2.4-2

Ensure a non-zero forwarding address whenever the P-bit is set; otherwise do not originate the Type-7 LSA (Section 2.4)

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

PolarityTestKind and tierProof state
negative TestOSPFNSSAPBitBoundaryPolicy unit/verify unproven
negative TestOSPFv3NSSAInternalRouterDefaultNeedsForwardingAddress unit/verify unproven
positive TestOSPFNSSAPBitBoundaryPolicy unit/verify unproven

RFC3101-2.4-3

Clear the P-bit on a Type-7 LSA when the same network is also originated as a Type-5 LSA (Section 2.4)

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

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

RFC3101-2.4-4

Clear the P-bit on a Type-7 default LSA originated by an NSSA border router; install a Type-7 default only if its P-bit is set (Section 2.4)

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

PolarityTestKind and tierProof state
negative TestOSPFv3NSSADefaultPBitFollowsForwardingAddress unit/verify unproven
negative TestOSPFNSSABorderRouterDefaultPBit unit/verify unproven
positive TestOSPFNSSABorderRouterDefaultsEveryArea unit/verify unproven
positive TestOSPFv3NSSABorderRouterOriginatesDefault unit/verify unproven
positive TestOSPFNSSABorderRouterDefaultPBit unit/verify unproven

RFC3101-2.4-5

Originate a default-destination LSA into every directly attached NSSA (Section 2.4)

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

PolarityTestKind and tierProof state
negative TestOSPFNSSAInternalRouterOriginatesNoBorderDefault unit/verify unproven
negative TestOSPFv3NSSAInternalRouterDefaultNeedsForwardingAddress unit/verify unproven
positive checkNSSADefault interop/nightly unproven
positive TestOSPFNSSABorderRouterDefaultsEveryArea unit/verify unproven
positive TestOSPFv3NSSABorderRouterOriginatesDefault unit/verify unproven
positive TestOSPFNSSANoSummaryDefaultInjection unit/verify unproven
positive TestOSPFNSSAType3SummaryImport unit/verify unproven

RFC3101-2.5-1

Ignore Type-7 default LSAs on an NSSA border router that suppresses Type-3 summary import (Section 2.5)

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

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

RFC3101-3.1-1

Set the E-bit in Type-1 router-LSAs of directly attached non-stub areas (Section 3.1)

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

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

RFC3101-2.7-1

Support optional import of summary routes into NSSAs as Type-3 summary-LSAs (Section 2.7)

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

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

RFC3101-3.1-2

Elect the translator as the reachable NSSA border router with Nt set or the highest Router ID (Section 3.1)

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

PolarityTestKind and tierProof state
negative TestOSPFNSSANoTranslateWhenNotElected unit/verify unproven
negative TestOSPFNSSATranslatorElection unit/verify unproven
positive TestOSPFNSSANonCandidateDoesNotWedge unit/verify unproven
positive TestOSPFNSSATranslatorElection unit/verify unproven

RFC3101-3.2-1

In translation, set the advertising router to the translator's Router ID and preserve mask, path type, metric, forwarding address, and route tag (Section 3.2)

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

PolarityTestKind and tierProof state
negative TestOSPFNSSAPbitNotTranslated unit/verify unproven
negative TestOSPFNSSATranslation unit/verify unproven
positive TestOSPFNSSATranslation unit/verify unproven

RFC3101-3.2-2

Suppress duplicate translation: translate only if this router has the highest Router ID among translators advertising a functionally equivalent Type-5 LSA (Section 3.2)

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

PolarityTestKind and tierProof state
negative TestOSPFHigherRIDType5Exists unit/verify unproven
negative TestOSPFNSSAHigherRIDType5Suppresses unit/verify unproven
positive TestOSPFHigherRIDType5Exists unit/verify unproven
positive TestOSPFNSSAHigherRIDType5Suppresses unit/verify unproven

RFC3101-2.7-2

Originate a Type-3 summary-LSA as the NSSA default when summary import is disabled (no-summary NSSA) (Section 2.7)

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

PolarityTestKind and tierProof state
negative TestOSPFv3NSSANoSummaryDefaultUsesSummaryLSA unit/verify unproven
negative TestOSPFNSSANoSummaryDefaultInjection unit/verify unproven
negative TestOSPFNSSAType3SummaryImport unit/verify unproven
positive TestOSPFv3NSSANoSummaryDefaultUsesSummaryLSA unit/verify unproven
positive TestOSPFNSSANoSummaryDefaultInjection unit/verify unproven
positive TestOSPFNSSAType3SummaryImport unit/verify unproven

Extraction sign-off

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

Superseded

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