rfc-9748

Updating the NTP Registries

R. Salz
date2025-02 streamIETF areaint wgntp statusPROPOSED STANDARD pages10 canonicalhttps://www.rfc-editor.org/rfc/rfc9748 doi10.17487/RFC9748
The Network Time Protocol (NTP) and Network Time Security (NTS) documents define a number of registries, collectively called the NTP registries. Some registries are correct, but some include incorrect assignments and some don't follow common practice. For the sake of completeness, this document reviews all NTP and NTS registries, and corrects the registries where necessary. This document updates RFCs 5905, 5906, 7821, 7822, and 8573.

updates

Extracted elements (15)

design-rationale §2.2

Erroneous nibble-swapped Autokey Field Type values are marked 'Reserved for historic reasons' rather than being silently removed or reassigned. This ensures any implementation that was built against the incorrect registered values (rather than the dominant implementation's actual wire values) can continue to function without conflict.

ntp, registry

design-rationale §2.2

RFC 5906 defined 30 Autokey extension field types but split the Field Type into four subfields (only for Autokey) and did not formally define registry columns, leading to inconsistencies. RFC 9748 provides formal column definitions and a complete corrected table to resolve the ambiguity.

ntp, registry

interoperability-note §4.3

Field Type 0x0204 is assigned to both 'Autokey Message Request' (RFC 5906) and 'NTS Cookie' (RFC 8915 Section 5.4). The registry Note states this dual assignment is not a problem in practice because field semantics are determined by other parts of the NTP message.

ntp, registry

interoperability-note §2.2

Many entries in the original 'NTP Extension Field Types' registry had nibble-swapped Field Type values due to documentation errors in the original Autokey implementation; for example, 0x0302 was listed instead of the correct 0x0203 for Cookie Message Request. This document marks the erroneous values as 'Reserved for historic reasons' rather than removing them, to preserve interoperability with any implementation that used the registered (incorrect) values.

ntp, registry

interoperability-note §2.2

Some Extension Field Type values were mistakenly reused across different Autokey messages in the original registry. This document corrects the assignments so each unique message type has a distinct, correct Field Type value.

ntp, registry

normative-requirement §4.3 REQUIRED

Extension Field Type values in the range 0xF000 through 0xFFFF inclusive are reserved for Private or Experimental Use; IANA cannot assign them.

ntp, registry

normative-requirement §3 REQUIRED

In the NTP Reference Identifier Codes and NTP Kiss-o'-Death Codes registries, each byte of the ID field (other than zero-padding) MUST be an ASCII uppercase letter or digit. Fields starting with 0x58 (uppercase 'X') are reserved for Private or Experimental Use and IANA cannot assign them.

ntp, registry

normative-requirement §3.1 REQUIRED

The IESG is requested to appoint three Designated Experts (DEs) for the NTP registries, with approvals from at least two DEs required to implement any change. DEs must be familiar with RFC 8126 Section 5 and this document's historical context.

ntp, registry, process

normative-requirement §3 REQUIRED

The registration policy for all three updated NTP registries (Reference Identifier Codes, Kiss-o'-Death Codes, and Extension Field Types) is now Specification Required as defined in RFC 8126 Section 4.6, replacing the prior First Come First Served policy.

ntp, registry

protocol-element §4.3

NTP Extension Field Types are encoded as a two-byte hexadecimal value. The registry columns are Field Type (required, 2-byte hex), Meaning (required, text description), and Reference (required, defining publication).

ntp

protocol-element §4.1

NTP Reference Identifier Codes and Kiss-o'-Death Codes are encoded as a four-byte value, right-padded with all-bits-zero. Each non-padding byte must be an ASCII uppercase letter or digit (0x41–0x5A, 0x30–0x39). Entries starting with 0x58 ('X') are reserved for Private or Experimental Use.

ntp

registry §4.3

The 'NTP Extension Field Types' registry is substantially revised: registration procedure changed to Specification Required, a range of 0xF000–0xFFFF reserved for Private or Experimental Use, many nibble-swapped Autokey values marked 'Reserved for historic reasons', and the full corrected table of ~70 entries (including NTS fields from RFC 8915) is specified.

ntp, registry

registry §4.2

The 'NTP Kiss-o'-Death Codes' registry is updated: registration procedure changed to Specification Required, Note updated for 'X'-prefix reservation, and columns formally defined as ID (4-byte ASCII uppercase/digits, zero-padded), Meaning source, and Reference.

ntp, registry

registry §4.1

The 'NTP Reference Identifier Codes' registry is updated: registration procedure changed to Specification Required, the Note updated to clarify that codes beginning with 'X' are reserved for experimentation and IANA cannot assign them, and columns formally defined as ID (4-byte ASCII uppercase/digits, zero-padded), Clock source, and Reference.

ntp, registry

security-consideration §5

RFC 9748 introduces no new security considerations. Security properties for each extension field type are defined in the document that specifies that extension; implementors should consult the References column of the appropriate IANA registry.

ntp, security