| 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/ | ||||