# RFC 9946 §12: IANA Considerations

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

| State | Requirements |
|---|--:|
| Tested | 13 |

## RFC9946-12.1-L1 {#RFC9946-12.1-L1}

**Tested**

> IANA has registered the following service name in the "Service Name and Transport Protocol Port Number Registry":

Note: Service Name and Transport Protocol Port Number Registry: udpstp, UDP port 24601, the Standard Port.

Proving tests:

- [`crates/udpstp/tests/cli.rs::the_server_defaults_apply_without_a_file`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp/tests/cli.rs)
- [`crates/udpstp/tests/loopback.rs::the_client_uses_the_standard_port_by_default`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp/tests/loopback.rs)

## RFC9946-12.2-L1 {#RFC9946-12.2-L1}

**Tested**

> IANA has added the following KDF entry to the "KeyTable KDFs" registry (see &lt;https://www.iana.org/assignments/keytable&gt;):

Note: KeyTable KDFs registry: HMAC-SHA-256, the KDF of Section 5.4.1.

Proving tests:

- [`crates/udpstp-wire/tests/kdf_kat.rs::derived_keys_match_every_openssl_vector`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-wire/tests/kdf_kat.rs)

## RFC9946-12.3.1-L1 {#RFC9946-12.3.1-L1}

**Tested**

> IANA has assigned values in the "PDU Identifier" registry as follows:

Note: PDU Identifier registry (pduId): 0xACE1 Test Setup, 0xACE2 Test Activation, 0xBEEF Load, 0xDEAD Null, 0xFEED Status Feedback; 0x0000 and 0xFFFF reserved.

Proving tests:

- [`crates/udpstp-wire/tests/load_pdu.rs::header_encodes_to_the_rfc_layout`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-wire/tests/load_pdu.rs)
- [`crates/udpstp-wire/tests/setup_pdu.rs::setup_pdu_encodes_to_the_rfc_layout`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-wire/tests/setup_pdu.rs)
- [`crates/udpstp-wire/tests/status_pdu.rs::status_pdu_encodes_to_the_rfc_layout`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-wire/tests/status_pdu.rs)

## RFC9946-12.3.2-L1 {#RFC9946-12.3.2-L1}

**Tested**

> IANA has assigned decimal value 20 in the "Protocol Version" registry as follows:

Note: Protocol Version registry (protocolVer): 20.

Proving tests:

- [`crates/udpstp-core/tests/setup_rejections.rs::a_bad_protocol_version_is_rejected_with_the_expected_version`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/setup_rejections.rs)
- [`crates/udpstp-wire/tests/setup_pdu.rs::setup_pdu_encodes_to_the_rfc_layout`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-wire/tests/setup_pdu.rs)

## RFC9946-12.3.3-L1 {#RFC9946-12.3.3-L1}

**Tested**

> IANA has assigned bitmap values in the "Test Setup PDU Modifier Bitmap" registry as follows:

Note: Test Setup PDU Modifier Bitmap registry (modifierBitmap): 0x01 Jumbo datagram sizes above 1 Gbps, 0x02 Traditional MTU.

Proving tests:

- [`crates/udpstp-core/tests/setup_rejections.rs::a_jumbo_setting_the_server_doesnt_use_is_rejected`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/setup_rejections.rs)
- [`crates/udpstp-core/tests/table_variants.rs::a_client_asking_for_the_server_s_modifiers_is_served`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/table_variants.rs)

## RFC9946-12.3.4-L1 {#RFC9946-12.3.4-L1}

**Tested**

> IANA has assigned decimal values in the "Test Setup PDU Authentication Mode" registry as follows:

Note: Test Setup PDU Authentication Mode registry (authMode): 0 not used, 1 the Control Phase, 2 the Control Phase and Status PDUs.

Proving tests:

- [`crates/udpstp-core/tests/setup_exchange.rs::unauthenticated_setup_ends_in_ack_with_a_test_port_when_both_ends_opt_in`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/setup_exchange.rs)
- [`crates/udpstp-core/tests/setup_mode1.rs::mode1_setup_between_our_cores_is_accepted`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/setup_mode1.rs)
- [`crates/udpstp-core/tests/setup_rejections.rs::a_mode_2_request_is_accepted_in_mode_2`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/setup_rejections.rs)

## RFC9946-12.3.5-L1 {#RFC9946-12.3.5-L1}

**Tested**

> IANA has assigned decimal values in the "Test Setup PDU Command Response Field" registry as follows:

Note: Test Setup PDU Command Response Field registry (cmdResponse): 0 None, 1 Acknowledgment, 2 to 13 errors; 255 reserved.

Conformance Records: [server-limits-refuse-with-connfail](../conformance/interpretations.md#server-limits-refuse-with-connfail).

Proving tests:

- [`crates/udpstp-core/tests/setup_responses.rs::each_rejection_code_ends_the_setup_with_its_own_failure`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/setup_responses.rs)

## RFC9946-12.3.5-L2 {#RFC9946-12.3.5-L2}

**Tested**

> Note that value 4 is required for backward compatibility with previous experimental versions of software already in use.

Note: Test Setup cmdResponse 4, unexpected authentication in Setup Request.

Proving tests:

- [`crates/udpstp-core/tests/troubleshooting_mode.rs::an_authenticated_request_to_a_server_without_keys_is_answered_with_authnc`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/troubleshooting_mode.rs)

## RFC9946-12.3.5-L3 {#RFC9946-12.3.5-L3}

**Tested**

> Further, value 6 signals that a client erroneously used an authMode that hasn't been standardized yet (i.e., authMode is greater than 1 or 2).

Note: Test Setup cmdResponse 6; "greater than 1 or 2" is garbled.

Proving tests:

- [`crates/udpstp-core/tests/troubleshooting_mode.rs::an_unsupported_mode_is_answered_with_authinv`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/troubleshooting_mode.rs)

## RFC9946-12.3.6-L1 {#RFC9946-12.3.6-L1}

**Tested**

> IANA has assigned decimal values in the "Test Activation PDU Command Request" registry as follows:

Note: Test Activation PDU Command Request registry (cmdRequest): 0 No Request, 1 upstream, 2 downstream; 255 reserved. The section says "Test Setup PDU layout" in error.

Proving tests:

- [`crates/udpstp-core/tests/activation_exchange.rs::downstream_test_is_activated_on_the_test_port`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/activation_exchange.rs)
- [`crates/udpstp-core/tests/activation_exchange.rs::upstream_test_is_activated`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/activation_exchange.rs)

## RFC9946-12.3.7-L1 {#RFC9946-12.3.7-L1}

**Tested**

> IANA has assigned bitmap values in the "Test Activation PDU Modifier Bitmap" registry as follows:

Note: Test Activation PDU Modifier Bitmap registry (modifierBitmap): 0x01 CHTA_SRIDX_ISSTART, 0x02 randomized UDP payload.

Proving tests:

- [`crates/udpstp-core/tests/downstream_load.rs::payload_content_is_random_when_asked_for`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/downstream_load.rs)
- [`crates/udpstp-core/tests/sending_rate_table.rs::a_requested_starting_row_is_sent`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/sending_rate_table.rs)

## RFC9946-12.3.8-L1 {#RFC9946-12.3.8-L1}

**Tested**

> IANA has assigned capitalized alphabetic UTF-8 values, as well as the corresponding incremental numeric values, in the "Test Activation PDU Rate Adjustment Algo" registry as follows:

Note: Test Activation PDU Rate Adjustment Algo registry (rateAdjAlgo): B is 0, C is 1; A not used.

Proving tests:

- [`crates/udpstp/tests/loopback.rs::a_client_can_ask_for_algorithm_c`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp/tests/loopback.rs)
- [`crates/udpstp-core/tests/activation_coercion.rs::an_unknown_rate_adjustment_algorithm_is_rejected_with_badparam`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/activation_coercion.rs)
- [`crates/udpstp-core/tests/activation_coercion.rs::algorithm_c_is_accepted`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/activation_coercion.rs)

## RFC9946-12.3.9-L1 {#RFC9946-12.3.9-L1}

**Tested**

> IANA has assigned decimal values in the "Test Activation PDU Command Response Field" registry as follows:

Note: Test Activation PDU Command Response Field registry (cmdResponse): 0 None, 1 CHTA_CRSP_ACKOK, 2 CHTA_CRSP_BADPARAM; 255 reserved.

Proving tests:

- [`crates/udpstp-core/tests/activation_coercion.rs::an_unknown_rate_adjustment_algorithm_is_rejected_with_badparam`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/activation_coercion.rs)
- [`crates/udpstp-core/tests/activation_mode1.rs::client_terminates_on_an_unknown_activation_response_code`](https://github.com/pederbe/udpstp/blob/71a76d83a56e62fb96fd5a1558ed1ea063b05feb/crates/udpstp-core/tests/activation_mode1.rs)

