# Conformance

Every normative statement of RFC 9946, and of the RFC 9097 sections it uses, is a Requirement with a stable ID: 420 in all. A Requirement counts as met when a test that runs on Linux proves it, unless it is recorded otherwise. These pages are generated by `cargo xtask req`'s checks when the site is built.

**348 of 420** Requirements are proven by tests. Of the rest, 24 are Deviations, each recorded with its reason, 33 are operational (they concern how udpstp is deployed or used rather than its code), and 15 don't apply to udpstp.

## Coverage by section

| Section | Requirements | Tested | Deviation | Operational | Not applicable |
|---|--:|--:|--:|--:|--:|
| [RFC 9097 §2: Scope, Goals, and Applicability](rfc9097-02.md) | 6 | 3 | 0 | 3 | 0 |
| [RFC 9097 §4: General Parameters and Definitions](rfc9097-04.md) | 9 | 7 | 0 | 0 | 2 |
| [RFC 9097 §5: IP-Layer Capacity Singleton Metric Definitions](rfc9097-05.md) | 17 | 13 | 1 | 1 | 2 |
| [RFC 9097 §6: Maximum IP-Layer Capacity Metric Definitions (Statistics)](rfc9097-06.md) | 18 | 12 | 0 | 3 | 3 |
| [RFC 9097 §7: IP-Layer Sender Bit Rate Singleton Metric Definitions](rfc9097-07.md) | 10 | 7 | 1 | 0 | 2 |
| [RFC 9097 §8: Method of Measurement](rfc9097-08.md) | 49 | 37 | 6 | 6 | 0 |
| [RFC 9097 §9: Reporting Formats](rfc9097-09.md) | 15 | 9 | 6 | 0 | 0 |
| [RFC 9097 §10: Security Considerations](rfc9097-10.md) | 7 | 6 | 0 | 1 | 0 |
| [RFC 9946 §2: Conventions and Terminology](rfc9946-02.md) | 1 | 0 | 0 | 0 | 1 |
| [RFC 9946 §3: Scope, Goals, and Applicability](rfc9946-03.md) | 1 | 0 | 0 | 1 | 0 |
| [RFC 9946 §4: Protocol Overview](rfc9946-04.md) | 15 | 8 | 1 | 6 | 0 |
| [RFC 9946 §5: Requirements, Security Operations, and Optional Checksum](rfc9946-05.md) | 73 | 57 | 3 | 8 | 5 |
| [RFC 9946 §6: Test Setup Request and Response](rfc9946-06.md) | 60 | 58 | 2 | 0 | 0 |
| [RFC 9946 §7: Test Activation Request and Response](rfc9946-07.md) | 44 | 44 | 0 | 0 | 0 |
| [RFC 9946 §8: Test Load Stream Transmission and Measurement Status Feedback Messages](rfc9946-08.md) | 57 | 55 | 2 | 0 | 0 |
| [RFC 9946 §9: Stopping a Test](rfc9946-09.md) | 12 | 12 | 0 | 0 | 0 |
| [RFC 9946 §10: Operational Considerations for the Measurement Method](rfc9946-10.md) | 5 | 1 | 1 | 3 | 0 |
| [RFC 9946 §11: Security Considerations](rfc9946-11.md) | 8 | 6 | 1 | 1 | 0 |
| [RFC 9946 §12: IANA Considerations](rfc9946-12.md) | 13 | 13 | 0 | 0 | 0 |
| **Total** | **420** | **348** | **24** | **33** | **15** |

## Conformance Records

Where udpstp departs from a Requirement, reads an ambiguous one, or differs from OB-UDPST, a Conformance Record says what it does, why, and which tests prove it.

| Kind | Records |
|---|--:|
| [Deviations](deviations.md) | 17 |
| [Interpretations](interpretations.md) | 117 |
| [OB-UDPST Differences](obudpst-differences.md) | 31 |

[How the records work](format.md) describes the files these pages come from.

## States

- **Tested**: a test that runs on Linux, in CI and before every push, proves it.
- **Tested nightly**: only tests in the nightly workflow prove it.
- **Pending**: no test proves it yet.
- **Deviation**: udpstp departs from it, as a Deviation records.
- **Interpretation**: udpstp meets it as an Interpretation reads it.
- **Operational**: it concerns deployment or use, not udpstp's code.
- **Not applicable**: it doesn't apply to udpstp.
