rfc9108.original | rfc9108.txt | |||
---|---|---|---|---|
DNSOP Working Group L. Lhotka | Internet Engineering Task Force (IETF) L. Lhotka | |||
Internet-Draft CZ.NIC | Request for Comments: 9108 CZ.NIC | |||
Intended status: Standards Track P. Spacek | Category: Standards Track P. Špaček | |||
Expires: 19 December 2021 Internet Systems Consortium | ISSN: 2070-1721 Internet Systems Consortium | |||
17 June 2021 | September 2021 | |||
YANG Types for DNS Classes and Resource Record Types | YANG Types for DNS Classes and Resource Record Types | |||
draft-ietf-dnsop-iana-class-type-yang-05 | ||||
Abstract | Abstract | |||
This document introduces the YANG module "iana-dns-class-rr-type" | This document introduces the YANG module "iana-dns-class-rr-type", | |||
that contains derived types reflecting two IANA registries: DNS | which contains derived types reflecting two IANA registries: DNS | |||
CLASSes and Resource Record (RR) TYPEs. These YANG types are | CLASSes and Resource Record (RR) TYPEs. These YANG types are | |||
intended as a minimum basis for future data modeling work. | intended as the minimum basis for future data modeling work. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 19 December 2021. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9108. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Simplified BSD License text | to this document. Code Components extracted from this document must | |||
as described in Section 4.e of the Trust Legal Provisions and are | include Simplified BSD License text as described in Section 4.e of | |||
provided without warranty as described in the Simplified BSD License. | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
3. YANG Design Considerations . . . . . . . . . . . . . . . . . 3 | 3. YANG Design Considerations | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 | 4. IANA Considerations | |||
4.1. URI Registrations . . . . . . . . . . . . . . . . . . . . 6 | 4.1. URI Registrations | |||
4.2. YANG Module Registrations . . . . . . . . . . . . . . . . 6 | 4.2. YANG Module Registrations | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 5. Security Considerations | |||
6. Normative References . . . . . . . . . . . . . . . . . . . . 7 | 6. References | |||
7. Informative References . . . . . . . . . . . . . . . . . . . 8 | 6.1. Normative References | |||
Appendix A. XSLT Stylesheet . . . . . . . . . . . . . . . . . . 8 | 6.2. Informative References | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Appendix A. XSLT Stylesheet | |||
Authors' Addresses | ||||
1. Introduction | 1. Introduction | |||
YANG [RFC7950] has become a de facto standard as a language for | YANG [RFC7950] has become a de facto standard as a language for | |||
modeling configuration and state data, as well as specifying | modeling configuration and state data, as well as specifying | |||
management operations and asynchronous notifications. It is | management operations and asynchronous notifications. It is | |||
reasonable to expect that the approach based on utilizing such data | reasonable to expect that the approach based on utilizing such data | |||
models along with standard management protocols such as | models along with standard management protocols such as | |||
NETCONF [RFC6241] and RESTCONF [RFC8040] can be effectively used in | NETCONF [RFC6241] and RESTCONF [RFC8040] can be effectively used in | |||
DNS operations, too. In fact, several efforts are currently underway | DNS operations, too. In fact, several efforts are currently underway | |||
that attempt to use NETCONF or RESTCONF for configuring and managing | that attempt to use NETCONF or RESTCONF for configuring and managing | |||
* authoritative servers | * authoritative servers, | |||
* resolvers | * resolvers, and | |||
* zone data. | * zone data. | |||
While it is possible to use the management protocols mentioned above | While it is possible to use the management protocols mentioned above | |||
with ad hoc or proprietary data models, their real potential can be | with ad hoc or proprietary data models, their real potential can be | |||
realized only if there is a (completely or partly) unified data model | realized only if there is a (completely or partly) unified data model | |||
supported by multiple DNS software implementations. Operators can | supported by multiple DNS software implementations. Operators can | |||
then, for instance, run several DNS server implementations in | then, for instance, run several DNS server implementations in | |||
parallel, and use a common configuration and management interface and | parallel, and use a common configuration and management interface and | |||
data for all of them. Also, it becomes considerably easier to | data for all of them. Also, it becomes considerably easier to | |||
migrate to another implementation. | migrate to another implementation. | |||
Based on the previous experience from the IETF Routing Area, it is to | Based on the previous experience from the IETF Routing Area, it is to | |||
be expected that the development of unified data models for DNS will | be expected that the development of unified data models for DNS will | |||
be a lengthy and complicated process that will require active | be a lengthy and complicated process that will require active | |||
cooperation and compromises from the vendors and developers of major | cooperation and compromise from the vendors and developers of major | |||
DNS server platforms. Nevertheless, it is likely that any DNS- | DNS server platforms. Nevertheless, it is likely that any DNS- | |||
related data modeling effort will need to use various DNS parameters | related data modeling effort will need to use various DNS parameters | |||
and enumerations that are specified in several IANA registries. For | and enumerations that are specified in several IANA registries. For | |||
use with YANG, these parameters and enumerations have to be | use with YANG, these parameters and enumerations have to be | |||
translated into corresponding YANG types or other structures. Such | translated into corresponding YANG types or other structures. Such | |||
translations should be straightforward and relatively | translations should be straightforward and relatively | |||
uncontroversial. | uncontroversial. | |||
This document provides a translation of two fundamental DNS-related | This document provides a translation of two fundamental DNS-related | |||
IANA registries to YANG. It contains the initial revision of the | IANA registries to YANG. It contains the initial version of the YANG | |||
YANG module "iana-dns-class-rr-type" that defines derived types for | module "iana-dns-class-rr-type", which defines derived types for the | |||
the common parameters of DNS resource records (RR): class and type. | common parameters of DNS resource records (RR): class and type. | |||
These YANG types, "dns-class" and "rr-type", reflect the IANA | These YANG types, "dns-class" and "rr-type", reflect the IANA | |||
registries "DNS CLASSes" and "Resource Record (RR) TYPEs" | registries "DNS CLASSes" and "Resource Record (RR) TYPEs" | |||
[IANA-DNS-PARAMETERS]. | [IANA-DNS-PARAMETERS]. | |||
Appendix A contains an XSLT 1.0 stylesheet that is intended to be | Appendix A contains an XSLT 1.0 stylesheet that is intended to be | |||
used by IANA for generating the initial revision of the "iana-dns- | used by IANA for generating the initial version of the "iana-dns- | |||
class-rr-type" YANG module. Subsequently, whenever a new class or RR | class-rr-type" YANG module. Subsequently, whenever a new class or RR | |||
type is added to the above registries, IANA will also update the | type is added to the above registries, IANA will also update the | |||
"iana-dns-class-rr-type" YANG module, following the instructions in | "iana-dns-class-rr-type" YANG module, following the instructions in | |||
Section 4 below. | Section 4 below. | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
The terminology for describing YANG data models can be found in | The terminology for describing YANG data models can be found in | |||
[RFC7950]. DNS terminology used in this document can be found in | [RFC7950]. DNS terminology used in this document can be found in | |||
[RFC1035] and [RFC8499]. | [RFC1035] and [RFC8499]. | |||
3. YANG Design Considerations | 3. YANG Design Considerations | |||
At the time of writing, the IANA document "Domain Name System (DNS) | At the time of writing, the "Domain Name System (DNS) Parameters" | |||
Parameters" [IANA-DNS-PARAMETERS] contains altogether thirteen | [IANA-DNS-PARAMETERS] contains altogether thirteen registries. The | |||
registries. The YANG module "iana-dns-class-rr-type" defines derived | YANG module "iana-dns-class-rr-type" defines derived types | |||
types corresponding to only two of the registries that are essential | corresponding to only two of the registries that are essential for | |||
for data models involving zone data, namely "DNS CLASSes" and | data models involving zone data, namely "DNS CLASSes" and "Resource | |||
"Resource Record (RR) TYPEs". It is expected that the remaining | Record (RR) TYPEs". It is expected that the remaining registries in | |||
registries in [IANA-DNS-PARAMETERS], as well as other DNS-related | [IANA-DNS-PARAMETERS], as well as other DNS-related IANA registries, | |||
IANA registries, will be analogously reflected in future YANG modules | will be analogously reflected in future YANG modules as necessary. | |||
as necessary. This way, an appropriate combination of YANG modules | This way, an appropriate combination of YANG modules can be chosen | |||
can be chosen depending on which YANG types are needed for a given | depending on which YANG types are needed for a given data modeling | |||
data modeling purpose. | purpose. | |||
The registries "DNS CLASSes" and "Resource Record (RR) TYPEs" are | The registries "DNS CLASSes" and "Resource Record (RR) TYPEs" are | |||
transformed into YANG enumeration types "dns-class-name" and "rr- | transformed into YANG enumeration types "dns-class-name" and "rr- | |||
type-name", respectively. This is the initial fragment of the | type-name", respectively. This is the initial fragment of the | |||
former: | former: | |||
typedef dns-class-name { | typedef dns-class-name { | |||
type enumeration { | type enumeration { | |||
enum IN { | enum IN { | |||
value 1; | value 1; | |||
skipping to change at page 4, line 27 ¶ | skipping to change at line 162 ¶ | |||
"RFC 1035"; | "RFC 1035"; | |||
} | } | |||
... | ... | |||
} | } | |||
... | ... | |||
} | } | |||
The other derived type, "rr-type-name", is defined similarly. | The other derived type, "rr-type-name", is defined similarly. | |||
[RFC3597] introduced the option of specifying a class or RR type via | [RFC3597] introduced the option of specifying a class or RR type via | |||
its assigned decimal number, as an alternative to the mnemonic name. | its assigned decimal number as an alternative to the mnemonic name. | |||
For example, the "IN" class can be equivalently written as "CLASS1", | For example, the "IN" class can be equivalently written as "CLASS1", | |||
and "AAAA" type can be written as "TYPE28". | and "AAAA" type can be written as "TYPE28". | |||
Accordingly, the derived types "dns-class" and "rr-type" are defined | Accordingly, the derived types "dns-class" and "rr-type" are defined | |||
in the YANG module as a union of two member types: | in the YANG module as a union of two member types: | |||
* 16-bit decimal integer ("uint16") | * 16-bit decimal integer ("uint16") | |||
* mnemonic name belonging to the enumerations "dns-class-name" and | * mnemonic name belonging to the enumerations "dns-class-name" and | |||
"rr-type-name", respectively. | "rr-type-name", respectively. | |||
For instance, the "rr-type" type is defined as follows: | For instance, the "rr-type" type is defined as follows: | |||
typedef rr-type { | typedef rr-type { | |||
type union { | type union { | |||
type uint16; | type uint16; | |||
type rr-type-name; | type rr-type-name; | |||
} | } | |||
description | description | |||
"This type allows for referring to a DNS resource record type | "This type allows reference to a DNS resource record type | |||
using either the assigned mnemonic name or numeric value."; | using either the assigned mnemonic name or numeric value."; | |||
} | } | |||
As unassigned and reserved class and RR type values are not included | As unassigned and reserved class and RR type values are not included | |||
in the mnemonic name enumerations, they can only be specified using | in the mnemonic name enumerations, they can only be specified using | |||
their decimal values. | their decimal values. | |||
4. IANA Considerations | 4. IANA Considerations | |||
RFC Editor: In this section, replace all occurrences of "XXXX" with | ||||
the actual RFC number (and remove this note). | ||||
This section deals with actions and processes necessary for IANA to | This section deals with actions and processes necessary for IANA to | |||
undertake to maintain the "iana-dns-class-rr-type" YANG module. This | undertake to maintain the "iana-dns-class-rr-type" YANG module. This | |||
YANG module is intended to reflect the "DNS CLASSes" and "Resource | YANG module is intended to reflect the "DNS CLASSes" and "Resource | |||
Record (RR) TYPEs" registries in [IANA-DNS-PARAMETERS]. The most | Record (RR) TYPEs" registries in [IANA-DNS-PARAMETERS]. The most | |||
recent revision of the YANG module is available from the "YANG | recent version of the YANG module is available from the "YANG | |||
Parameters" registry [IANA-YANG-PARAMETERS]. | Parameters" registry [IANA-YANG-PARAMETERS]. | |||
Upon publication of this document, the initial revision of the "iana- | With the publication of this document, IANA has created and posted | |||
dns-class-rr-type" YANG module SHALL be created by applying the XSLT | the initial version of the "iana-dns-class-rr-type" YANG module by | |||
stylesheet from Appendix A to the XML version of | applying the XSLT stylesheet from Appendix A to the XML version of | |||
[IANA-DNS-PARAMETERS]. | [IANA-DNS-PARAMETERS]. | |||
IANA SHALL add this note to the "iana-dns-class-rr-type" item of the | IANA has added this note to the "iana-dns-class-rr-type" item of the | |||
"YANG Module Names" registry [IANA-YANG-PARAMETERS]: | "YANG Module Names" registry [IANA-YANG-PARAMETERS]: | |||
| Classes and types of DNS resource records must not be directly | | Classes and types of DNS resource records must not be directly | |||
| added to the "iana-dns-class-rr-type" YANG module. They must | | added to the "iana-dns-class-rr-type" YANG module. They must | |||
| instead be added to the "DNS CLASSes" and "Resource Record (RR) | | instead be added to the "DNS CLASSes" and "Resource Record (RR) | |||
| TYPEs" registries, respectively. | | TYPEs" registries, respectively. | |||
When a new DNS class or RR type is added to the "DNS CLASSes" or | When a new DNS class or RR type is added to the "DNS CLASSes" or | |||
"Resource Record (RR) TYPEs" registry, a new "enum" statement SHALL | "Resource Record (RR) TYPEs" registry, a new "enum" statement SHALL | |||
be added to the "dns-class-name" or "rr-type-name" type, | be added to the "dns-class-name" or "rr-type-name" type, | |||
respectively. The assigned name defined by the "enum" statement | respectively. The assigned name defined by the "enum" statement | |||
SHALL be the same as the mnemonic name of the new class or type. The | SHALL be the same as the mnemonic name of the new class or type. The | |||
following substatements to the "enum" statement SHALL be defined: | following substatements to the "enum" statement SHALL be defined: | |||
"value": Use the decimal value from the registry. | "value": Use the decimal value from the registry. | |||
"status": Include only if a class or type registration has been | "status": Include only if a class or type registration has been | |||
deprecated or obsoleted. IANA "deprecated" maps to YANG status | deprecated or obsoleted. IANA "deprecated" maps to | |||
"deprecated", and IANA "obsolete" maps to YANG status "obsolete". | YANG status "deprecated", and IANA "obsolete" maps to | |||
YANG status "obsolete". | ||||
"description": Replicate the corresponding information from the | "description": Replicate the corresponding information from the | |||
registry, namely the full name of the new DNS class, or the | registry, namely the full name of the new DNS class, | |||
meaning of the new RR type, if any. | or the meaning of the new RR type, if any. | |||
"reference": Replicate the reference(s) from the registry. | "reference": Replicate the reference(s) from the registry. | |||
Unassigned or reserved values SHALL NOT be included in the "dns- | Unassigned or reserved values SHALL NOT be included in the "dns- | |||
class-name" and "rr-type-name" enumeration types. | class-name" and "rr-type-name" enumeration types. | |||
Each time the "iana-dns-class-rr-type" YANG module is updated, a new | Each time the "iana-dns-class-rr-type" YANG module is updated, a new | |||
"revision" statement SHALL be added before the existing "revision" | "revision" statement SHALL be added before the existing "revision" | |||
statements. | statements. | |||
IANA SHALL add this new note to the "DNS CLASSes" and "Resource | IANA has added this note to the "DNS CLASSes" and "Resource Record | |||
Record (RR) TYPEs" registries: | (RR) TYPEs" registries: | |||
| When this registry is modified, the YANG module "iana-dns-class- | | When this registry is modified, the YANG module "iana-dns-class- | |||
| rr-type" must be updated as defined in RFC XXXX. | | rr-type" must be updated as defined in [RFC9108]. | |||
The "Reference" text in the "DNS CLASSes" registry SHALL be updated | The "Reference" text in the "DNS CLASSes" registry has been updated | |||
as follows: | as follows: | |||
| OLD: | OLD: | |||
| [RFC6895] | ||||
| | ||||
| NEW: | ||||
| [RFC6895][RFCXXXX] | ||||
The "Reference" text in the "Resource Record (RR) TYPEs" registry | | [RFC6895] | |||
SHALL be updated as follows: | ||||
| OLD: | NEW: | |||
| [RFC6895][RFC1035] | ||||
| | | [RFC6895][RFC9108] | |||
| NEW: | ||||
| [RFC6895][RFC1035][RFCXXXX] | The "Reference" text in the "Resource Record (RR) TYPEs" registry has | |||
been updated as follows: | ||||
OLD: | ||||
| [RFC6895][RFC1035] | ||||
NEW: | ||||
| [RFC6895][RFC1035][RFC9108] | ||||
4.1. URI Registrations | 4.1. URI Registrations | |||
This document registers a URI in the "IETF XML Registry" [RFC3688]. | This document registers a URI in the "IETF XML Registry" [RFC3688]. | |||
The following registration has been made: | The following registration has been made: | |||
| URI: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type | URI: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type | |||
| Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
| XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
4.2. YANG Module Registrations | 4.2. YANG Module Registrations | |||
This document registers a YANG module in the "YANG Module Names" | This document registers a YANG module in the "YANG Module Names" | |||
registry [RFC6020]. The following registration has been made: | registry [RFC6020]. The following registration has been made: | |||
| name: iana-dns-class-rr-type | Name: iana-dns-class-rr-type | |||
| namespace: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type | Namespace: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type | |||
| prefix: dnsct | Prefix: dnsct | |||
| reference: RFC XXXX | Reference: RFC 9108 | |||
5. Security Considerations | 5. Security Considerations | |||
This document translates two IANA registries into YANG data types and | This document translates two IANA registries into YANG data types and | |||
otherwise introduces no technology or protocol. The definitions | otherwise introduces no technology or protocol. The definitions | |||
themselves have no security impact on the Internet, but their use in | themselves have no security impact on the Internet, but their use in | |||
concrete YANG modules might have. The security considerations | concrete YANG modules might have. The security considerations | |||
spelled out in the YANG specification [RFC7950] apply for this | spelled out in the YANG specification [RFC7950] apply to this | |||
document as well. | document as well. | |||
6. Normative References | 6. References | |||
6.1. Normative References | ||||
[IANA-DNS-PARAMETERS] | [IANA-DNS-PARAMETERS] | |||
Internet Assigned Numbers Authority, "Domain Name System | IANA, "Domain Name System (DNS) Parameters", | |||
(DNS) Parameters", | ||||
<https://www.iana.org/assignments/dns-parameters>. | <https://www.iana.org/assignments/dns-parameters>. | |||
[IANA-YANG-PARAMETERS] | [IANA-YANG-PARAMETERS] | |||
Internet Assigned Numbers Authority, "YANG Parameters", | IANA, "YANG Parameters", | |||
<https://www.iana.org/assignments/yang-parameters>. | <https://www.iana.org/assignments/yang-parameters>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
skipping to change at page 8, line 6 ¶ | skipping to change at line 330 ¶ | |||
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", | |||
RFC 7950, DOI 10.17487/RFC7950, August 2016, | RFC 7950, DOI 10.17487/RFC7950, August 2016, | |||
<https://www.rfc-editor.org/info/rfc7950>. | <https://www.rfc-editor.org/info/rfc7950>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[W3C.REC-xslt-19991116] | [W3C.REC-xslt-19991116] | |||
Clark, J., "XSL Transformations (XSLT) Version 1.0", World | Clark, J., "XSL Transformations (XSLT) Version 1.0", W3C | |||
Wide Web Consortium Recommendation REC-xslt-19991116, 16 | Recommendation REC-xslt-19991116, November 1999, | |||
November 1999, | ||||
<https://www.w3.org/TR/1999/REC-xslt-19991116>. | <https://www.w3.org/TR/1999/REC-xslt-19991116>. | |||
7. Informative References | 6.2. Informative References | |||
[RFC1035] Mockapetris, P., "Domain names - implementation and | [RFC1035] Mockapetris, P., "Domain names - implementation and | |||
specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | |||
November 1987, <https://www.rfc-editor.org/info/rfc1035>. | November 1987, <https://www.rfc-editor.org/info/rfc1035>. | |||
[RFC3597] Gustafsson, A., "Handling of Unknown DNS Resource Record | [RFC3597] Gustafsson, A., "Handling of Unknown DNS Resource Record | |||
(RR) Types", RFC 3597, DOI 10.17487/RFC3597, September | (RR) Types", RFC 3597, DOI 10.17487/RFC3597, September | |||
2003, <https://www.rfc-editor.org/info/rfc3597>. | 2003, <https://www.rfc-editor.org/info/rfc3597>. | |||
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., | |||
skipping to change at page 8, line 36 ¶ | skipping to change at line 359 ¶ | |||
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | |||
<https://www.rfc-editor.org/info/rfc8040>. | <https://www.rfc-editor.org/info/rfc8040>. | |||
[RFC8499] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS | [RFC8499] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS | |||
Terminology", BCP 219, RFC 8499, DOI 10.17487/RFC8499, | Terminology", BCP 219, RFC 8499, DOI 10.17487/RFC8499, | |||
January 2019, <https://www.rfc-editor.org/info/rfc8499>. | January 2019, <https://www.rfc-editor.org/info/rfc8499>. | |||
Appendix A. XSLT Stylesheet | Appendix A. XSLT Stylesheet | |||
RFC Editor: In this section, replace all occurrences of "XXXX" with | ||||
the actual RFC number (and remove this note). | ||||
This appendix contains an XSLT 1.0 stylesheet [W3C.REC-xslt-19991116] | This appendix contains an XSLT 1.0 stylesheet [W3C.REC-xslt-19991116] | |||
that is intended to be used for generating the initial revision of | that is to be used to generate the initial revision of the "iana-dns- | |||
the "iana-dns-class-rr-type" YANG module. This is achieved by | class-rr-type" YANG module. This is achieved by applying the | |||
applying the stylesheet to the XML version of the IANA registry | stylesheet to the XML version of the IANA registry "Domain Name | |||
"Domain Name System (DNS) Parameters" [IANA-DNS-PARAMETERS] that was | System (DNS) Parameters" [IANA-DNS-PARAMETERS] that was current at | |||
current at the time when this document was published. | the time this document was published. | |||
Using the ubiquitous xsltproc tool, the YANG module text can be | Using the ubiquitous xsltproc tool, the YANG module text can be | |||
generated with this command: | generated with this command: | |||
$ xsltproc iana-dns-class-rr-type.xsl dns-parameters.xml | $ xsltproc iana-dns-class-rr-type.xsl dns-parameters.xml | |||
<CODE BEGINS> file "iana-dns-class-rr-type.xsl" | <CODE BEGINS> file "iana-dns-class-rr-type.xsl" | |||
<?xml version="1.0" standalone="yes"?> | <?xml version="1.0" standalone="yes"?> | |||
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" | <stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" | |||
xmlns:iana="http://www.iana.org/assignments" | xmlns:iana="http://www.iana.org/assignments" | |||
skipping to change at page 9, line 30 ¶ | skipping to change at line 396 ¶ | |||
"urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type"; | "urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type"; | |||
prefix dnsct; | prefix dnsct; | |||
organization | organization | |||
"Internet Assigned Numbers Authority (IANA)"; | "Internet Assigned Numbers Authority (IANA)"; | |||
contact | contact | |||
" Internet Assigned Numbers Authority | " Internet Assigned Numbers Authority | |||
Postal: ICANN | Postal: ICANN | |||
4676 Admiralty Way, Suite 330 | 12025 Waterfront Drive, Suite 300 | |||
Marina del Rey, CA 90292 | Los Angeles, CA 90094 | |||
Tel: +1 310 823 9358 | Tel: +1 424 254 5300 | |||
<mailto:iana@iana.org>"; | <mailto:iana@iana.org>"; | |||
description | description | |||
"This YANG module translates IANA registries 'DNS CLASSes' and | "This YANG module translates IANA registries 'DNS CLASSes' and | |||
'Resource Record (RR) TYPEs' to YANG derived types. | 'Resource Record (RR) TYPEs' to YANG-derived types. | |||
Copyright (c) 2020 IETF Trust and the persons identified as | Copyright (c) 2021 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
the license terms contained in, the Simplified BSD License set | the license terms contained in, the Simplified BSD License set | |||
forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
This initial version of this YANG module was generated from | This version of this YANG module was generated from | |||
the corresponding IANA registries using an XSLT stylesheet | the corresponding IANA registries using an XSLT stylesheet | |||
from Appendix A of RFC XXXX | from Appendix A of RFC 9108 | |||
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | (https://www.rfc-editor.org/info/rfc9108); see the RFC itself | |||
for full legal notices."; | for full legal notices."; | |||
reference | reference | |||
"IANA 'Domain Name System (DNS) Parameters' registry | "IANA 'Domain Name System (DNS) Parameters' registry | |||
https://www.iana.org/assignments/dns-parameters";</text> | https://www.iana.org/assignments/dns-parameters";</text> | |||
<text>

</text> | <text>

</text> | |||
</variable> | </variable> | |||
<template name="enum"> | <template name="enum"> | |||
<param name="id"/> | <param name="id"/> | |||
skipping to change at page 11, line 4 ¶ | skipping to change at line 467 ¶ | |||
<apply-templates | <apply-templates | |||
select="iana:registry[@id='dns-parameters-4']"/> | select="iana:registry[@id='dns-parameters-4']"/> | |||
</template> | </template> | |||
<template match="iana:updated"> | <template match="iana:updated"> | |||
<value-of select="concat(' revision ', ., ' {')"/> | <value-of select="concat(' revision ', ., ' {')"/> | |||
<text> | <text> | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: YANG Types for DNS Classes and Resource Record | "RFC 9108: YANG Types for DNS Classes and Resource Record | |||
Types"; | Types"; | |||
} | } | |||
/* Typedefs */

</text> | /* Typedefs */

</text> | |||
</template> | </template> | |||
<template match="iana:registry[@id='dns-parameters-2']"> | <template match="iana:registry[@id='dns-parameters-2']"> | |||
<text> typedef dns-class-name {
</text> | <text> typedef dns-class-name {
</text> | |||
<text> type enumeration {
</text> | <text> type enumeration {
</text> | |||
<apply-templates | <apply-templates | |||
skipping to change at page 11, line 32 ¶ | skipping to change at line 495 ¶ | |||
reference | reference | |||
"RFC 6895: Domain Name System (DNS) IANA Considerations"; | "RFC 6895: Domain Name System (DNS) IANA Considerations"; | |||
} | } | |||
typedef dns-class { | typedef dns-class { | |||
type union { | type union { | |||
type uint16; | type uint16; | |||
type dns-class-name; | type dns-class-name; | |||
} | } | |||
description | description | |||
"This type allows for referring to a DNS class using either the | "This type allows reference to a DNS class using either the | |||
assigned mnemonic name or numeric value."; | assigned mnemonic name or numeric value."; | |||
}

</text> | }

</text> | |||
</template> | </template> | |||
<template match="iana:registry[@id='dns-parameters-4']"> | <template match="iana:registry[@id='dns-parameters-4']"> | |||
<text> typedef rr-type-name {
</text> | <text> typedef rr-type-name {
</text> | |||
<text> type enumeration {
</text> | <text> type enumeration {
</text> | |||
<apply-templates | <apply-templates | |||
select="iana:record[iana:type!='Unassigned' and | select="iana:record[iana:type!='Unassigned' and | |||
iana:type!='Private use' and iana:type!='Reserved']" | iana:type!='Private use' and iana:type!='Reserved']" | |||
mode="rr-type"/> | mode="rr-type"/> | |||
<text> } | <text> } | |||
description | description | |||
"This enumeration type defines mnemonic names and corresponding | "This enumeration type defines mnemonic names and corresponding | |||
numeric values of DNS resource record types."; | numeric values of DNS resource record types."; | |||
reference | reference | |||
"- RFC 6895: Domain Name System (DNS) IANA Considerations | "- RFC 6895: Domain Name System (DNS) IANA Considerations | |||
- RFC 1035: Domain Names - Implementation and Specification"; | - RFC 1035: Domain names - implementation and specification"; | |||
} | } | |||
typedef rr-type { | typedef rr-type { | |||
type union { | type union { | |||
type uint16; | type uint16; | |||
type rr-type-name; | type rr-type-name; | |||
} | } | |||
description | description | |||
"This type allows for referring to a DNS resource record type | "This type allows reference to a DNS resource record type | |||
using either the assigned mnemonic name or numeric value."; | using either the assigned mnemonic name or numeric value."; | |||
}
</text> | }
</text> | |||
</template> | </template> | |||
<template match="iana:record" mode="class"> | <template match="iana:record" mode="class"> | |||
<call-template name="enum"> | <call-template name="enum"> | |||
<with-param name="id"> | <with-param name="id"> | |||
<choose> | <choose> | |||
<when test="contains(iana:description,'(')"> | <when test="contains(iana:description,'(')"> | |||
<value-of select="substring-before(substring-after( | <value-of select="substring-before(substring-after( | |||
skipping to change at page 13, line 40 ¶ | skipping to change at line 599 ¶ | |||
<CODE ENDS> | <CODE ENDS> | |||
Authors' Addresses | Authors' Addresses | |||
Ladislav Lhotka | Ladislav Lhotka | |||
CZ.NIC | CZ.NIC | |||
Czech Republic | Czech Republic | |||
Email: ladislav.lhotka@nic.cz | Email: ladislav.lhotka@nic.cz | |||
Petr Spacek | Petr Špaček | |||
Internet Systems Consortium | Internet Systems Consortium | |||
Czech Republic | Czech Republic | |||
Email: pspacek@isc.org | Email: pspacek@isc.org | |||
End of changes. 52 change blocks. | ||||
129 lines changed or deleted | 125 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |