# RFC 9097 §9: Reporting Formats

The 15 Requirements of RFC 9097 §9, each quoted from the RFC with its state and the tests that prove it. [Conformance](index.md) explains the states.

| State | Requirements |
|---|--:|
| Tested | 9 |
| Deviation | 6 |

## RFC9097-9-1 {#RFC9097-9-1}

**Tested**

> The Singleton IP-Layer Capacity results SHOULD be accompanied by the context under which they were measured. * Timestamp (especially the time when the maximum was observed in dtn). * Source and Destination (by IP or other meaningful ID). * Other inner Parameters of the test case (Section 4). * Outer Parameters, such as "test conducted in motion" or other factors belonging to the context of the measurement. * Result validity (indicating cases where the process was somehow interrupted or the attempt failed). * A field where unusual circumstances could be documented, and another one for "ignore / mask out" purposes in further processing.

Proving tests:

- [`crates/udpstp/src/results.rs::a_completed_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/results.rs::terminal_layout_preserves_measurements_context_and_validity`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/test_results.rs::human_context_preserves_private_identities_and_received_times`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/test_results.rs)

## RFC9097-9-2 {#RFC9097-9-2}

**Deviation**

> The Maximum IP-Layer Capacity results SHOULD be reported in tabular format.

Recorded in [compact-human-final-metrics](../conformance/deviations.md#compact-human-final-metrics).

Proving tests:

- [`crates/udpstp/src/results.rs::a_completed_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/results.rs::terminal_layout_preserves_measurements_context_and_validity`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-3 {#RFC9097-9-3}

**Deviation**

> There SHOULD be a column that identifies the test Phase.

Note: Maximum IP-Layer Capacity table.

Recorded in [compact-human-final-metrics](../conformance/deviations.md#compact-human-final-metrics).

Conformance Records: [results-name-the-phase-and-f](../conformance/interpretations.md#results-name-the-phase-and-f).

Proving tests:

- [`crates/udpstp/src/results.rs::a_completed_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/results.rs::terminal_layout_preserves_measurements_context_and_validity`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-4 {#RFC9097-9-4}

**Deviation**

> There SHOULD be a column listing the number of flows used in that Phase.

Recorded in [compact-human-final-metrics](../conformance/deviations.md#compact-human-final-metrics).

Conformance Records: [results-name-the-phase-and-f](../conformance/interpretations.md#results-name-the-phase-and-f).

Proving tests:

- [`crates/udpstp/src/results.rs::a_completed_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/results.rs::terminal_layout_preserves_measurements_context_and_validity`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-5 {#RFC9097-9-5}

**Deviation**

> The remaining columns SHOULD report the following results for the aggregate of all flows, including the Maximum IP-Layer Capacity, the Loss Ratio, the RTT minimum, RTT maximum, and other metrics tested having similar relevance.

Recorded in [compact-human-final-metrics](../conformance/deviations.md#compact-human-final-metrics).

Proving tests:

- [`crates/udpstp/src/results.rs::a_completed_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/results.rs::terminal_layout_preserves_measurements_context_and_validity`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-6 {#RFC9097-9-6}

**Tested**

> As mentioned in Section 6.6, bimodal (or multi-modal) maxima SHALL be reported for each mode separately.

Note: Capacity Modes; restates RFC9097-6.6-3.

Proving tests:

- [`crates/udpstp/src/json.rs::a_bimodal_test_has_obudpst_keys_and_forms`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/json.rs)
- [`crates/udpstp/src/results.rs::a_watchdog_ended_test_with_two_capacity_modes`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/results.rs::terminal_layout_preserves_measurements_context_and_validity`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp-core/src/results.rs::a_split_makes_two_capacity_modes`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp-core/src/results.rs)

## RFC9097-9-7 {#RFC9097-9-7}

**Tested**

> The sub-interval time, dt, MUST accompany a report of Maximum IP- Layer Capacity results, as well as the remaining Parameters from Section 4 ("General Parameters and Definitions").

Proving tests:

- [`crates/udpstp/src/results.rs::a_completed_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/results.rs::terminal_layout_preserves_measurements_context_and_validity`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-8 {#RFC9097-9-8}

**Tested**

> The PM list metrics corresponding to the sub-interval where the Maximum Capacity occurred MUST accompany a report of Maximum IP-Layer Capacity results, for each test Phase.

Proving tests:

- [`crates/udpstp/src/results.rs::a_completed_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/results.rs::terminal_layout_preserves_measurements_context_and_validity`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)
- [`crates/udpstp/src/results.rs::maxima_keep_measured_rtt_minimum_without_variation`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-9 {#RFC9097-9-9}

**Tested**

> The IP-Layer Sender Bit Rate results SHOULD be reported in tabular format.

Proving tests:

- [`crates/udpstp/src/results.rs::an_upstream_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-10 {#RFC9097-9-10}

**Tested**

> There SHOULD be a column that identifies the test Phase.

Note: The table of IP-Layer Sender Bit Rates.

Conformance Records: [results-name-the-phase-and-f](../conformance/interpretations.md#results-name-the-phase-and-f).

Proving tests:

- [`crates/udpstp/src/results.rs::a_completed_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-11 {#RFC9097-9-11}

**Deviation**

> There SHOULD be a column listing each individual (numbered) flow used in that Phase, or the aggregate of flows in that Phase.

Recorded in [sender-bit-rate-per-sub-interval](../conformance/deviations.md#sender-bit-rate-per-sub-interval).

## RFC9097-9-12 {#RFC9097-9-12}

**Deviation**

> A corresponding column SHOULD identify the specific sending rate sub- interval, stn, for each flow and aggregate.

Recorded in [sender-bit-rate-per-sub-interval](../conformance/deviations.md#sender-bit-rate-per-sub-interval).

## RFC9097-9-13 {#RFC9097-9-13}

**Tested**

> A final column SHOULD report the IP-Layer Sender Bit Rate results for each flow used, or the aggregate of all flows.

Proving tests:

- [`crates/udpstp/src/results.rs::an_upstream_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-14 {#RFC9097-9-14}

**Tested**

> The sub-interval duration, st, MUST accompany a report of Sender IP- Layer Bit Rate results.

Proving tests:

- [`crates/udpstp/src/results.rs::an_upstream_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

## RFC9097-9-15 {#RFC9097-9-15}

**Tested**

> Also, the values of the remaining Parameters from Section 4 ("General Parameters and Definitions") MUST be reported.

Proving tests:

- [`crates/udpstp/src/results.rs::an_upstream_test`](https://github.com/pederbe/udpstp/blob/c88fe32e0973594682a069c58de24fd703714277/crates/udpstp/src/results.rs)

