YANG Types for DNS Classes and Resource Record Types
Extracted elements (18)
An XSLT 1.0 stylesheet (Appendix A) is provided so IANA can mechanically generate the initial and subsequent versions of the 'iana-dns-class-rr-type' module from the XML version of the IANA DNS Parameters registry, ensuring the YANG module stays synchronized with the authoritative registry without manual transcription.
Of the thirteen registries in 'Domain Name System (DNS) Parameters', only 'DNS CLASSes' and 'Resource Record (RR) TYPEs' are translated here because they are essential for data models involving zone data. Remaining registries are expected to be addressed in future YANG modules as needed, enabling modular composition.
The 'dns-class' and 'rr-type' types are defined as unions of uint16 and an enumeration name because RFC 3597 permits specifying class or RR type via assigned decimal number as an alternative to the mnemonic (e.g., 'CLASS1' for IN, 'TYPE28' for AAAA). Unassigned and reserved values not present in enumerations can only be expressed numerically.
The YANG module is intended as the minimum basis for future DNS data modeling; it covers only dns-class and rr-type. Other DNS-related IANA registries are expected to be translated in separate future YANG modules, allowing data models to import only the specific types they require.
Classes and types of DNS resource records MUST NOT be directly added to the 'iana-dns-class-rr-type' YANG module; they MUST instead be added to the 'DNS CLASSes' and 'Resource Record (RR) TYPEs' IANA registries respectively, which then trigger module updates.
Each time the 'iana-dns-class-rr-type' YANG module is updated, a new 'revision' statement SHALL be added before the existing 'revision' statements.
For each new enum added to the YANG module, the substatements SHALL be populated as follows: 'value' from the registry decimal value; 'status' only if the registration is deprecated or obsoleted (mapping IANA 'deprecated'→YANG 'deprecated', IANA 'obsolete'→YANG 'obsolete'); 'description' replicating the registry full name or meaning; 'reference' replicating the registry references.
Unassigned or reserved values SHALL NOT be included in the 'dns-class-name' and 'rr-type-name' enumeration types.
When a new DNS class or RR type is added to the IANA registries, a new 'enum' statement SHALL be added to the 'dns-class-name' or 'rr-type-name' type respectively. The enum's assigned name SHALL match the registry mnemonic.
The typedef 'dns-class' is a YANG union type combining uint16 (16-bit decimal integer) and the dns-class-name enumeration, allowing reference to a DNS class by either numeric value or mnemonic name.
The typedef 'dns-class-name' is a YANG enumeration type mapping mnemonic names (e.g., IN) to their assigned decimal values for DNS classes, derived from the IANA 'DNS CLASSes' registry.
The typedef 'rr-type' is a YANG union type combining uint16 (16-bit decimal integer) and the rr-type-name enumeration, allowing reference to a DNS RR type by either numeric value or mnemonic name.
The typedef 'rr-type-name' is a YANG enumeration type mapping mnemonic names (e.g., AAAA) to their assigned decimal values for DNS resource record types, derived from the IANA 'Resource Record (RR) TYPEs' registry.
The YANG module 'iana-dns-class-rr-type' defines derived types reflecting two IANA registries: 'DNS CLASSes' and 'Resource Record (RR) TYPEs'. It provides the minimum basis for DNS data modeling work using NETCONF/RESTCONF.
A URI registration was made in the IETF XML Registry (RFC 3688): URI 'urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type', registrant IESG, representing an XML namespace.
IANA created the 'iana-dns-class-rr-type' YANG module entry in the 'YANG Module Names' registry (RFC 6020) with name 'iana-dns-class-rr-type', namespace 'urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type', prefix 'dnsct', and reference RFC 9108.
The 'DNS CLASSes' and 'Resource Record (RR) TYPEs' IANA registries were updated to add a note referencing RFC 9108 and to include RFC 9108 in their 'Reference' fields, establishing the linkage between registry updates and YANG module maintenance.
The document translates two IANA registries into YANG data types and introduces no new technology or protocol. The definitions themselves have no security impact on the Internet, but their use in concrete YANG modules might; the security considerations of the YANG specification (RFC 7950) apply.