| rfc9108.original.xml | rfc9108.xml | |||
|---|---|---|---|---|
| <?xml version="1.0"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <?rfc strict="yes"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <?rfc toc="yes"?> | ||||
| <?rfc tocdepth="3"?> | <rfc docName="draft-ietf-dnsop-iana-class-type-yang-05" number="9108" ipr="trust | |||
| <?rfc symrefs="yes"?> | 200902" xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" categor | |||
| <?rfc sortrefs="yes"?> | y="std" consensus="true" tocInclude="true" tocDepth="3" symRefs="true" sortRefs= | |||
| <?rfc compact="yes"?> | "true" updates="" obsoletes="" xml:lang="en" version="3"> | |||
| <?rfc subcompact="no"?> | ||||
| <rfc docName="draft-ietf-dnsop-iana-class-type-yang-05" ipr="trust200902" catego | ||||
| ry="std" submissionType="IETF" version="3" consensus="true"> | ||||
| <front> | <front> | |||
| <title abbrev="iana-dns-class-rr-type-yang">YANG Types for DNS | <title abbrev="YANG Types for DNS and RR">YANG Types for DNS | |||
| Classes and Resource Record Types</title> | Classes and Resource Record Types</title> | |||
| <seriesInfo name="Internet-Draft" status="standard" value="draft-ietf-dnsop- iana-class-type-yang-03"/> | <seriesInfo name="RFC" value="9108"/> | |||
| <author fullname="Ladislav Lhotka" initials="L." surname="Lhotka"> | <author fullname="Ladislav Lhotka" initials="L." surname="Lhotka"> | |||
| <organization>CZ.NIC</organization> | <organization>CZ.NIC</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <country>Czech Republic</country> | <country>Czech Republic</country> | |||
| </postal> | </postal> | |||
| <email>ladislav.lhotka@nic.cz</email> | <email>ladislav.lhotka@nic.cz</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Petr Spacek" initials="P." surname="Spacek"> | <author fullname="Petr Špaček" initials="P." surname="Špaček"> | |||
| <organization>Internet Systems Consortium</organization> | <organization>Internet Systems Consortium</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <country>Czech Republic</country> | <country>Czech Republic</country> | |||
| </postal> | </postal> | |||
| <email>pspacek@isc.org</email> | <email>pspacek@isc.org</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date day="17" month="June" year="2021"/> | <date month="September" year="2021"/> | |||
| <area>Operations and Management</area> | <area>Operations and Management</area> | |||
| <workgroup>DNSOP Working Group</workgroup> | <workgroup>DNSOP Working Group</workgroup> | |||
| <keyword>IANA registry</keyword> | ||||
| <keyword>DNA Parameters</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>This document introduces the YANG | <t>This document introduces the YANG | |||
| module "iana-dns-class-rr-type" that contains derived types | module "iana-dns-class-rr-type", which contains derived types | |||
| reflecting two IANA registries: DNS CLASSes and Resource Record | reflecting two IANA registries: DNS CLASSes and Resource Record | |||
| (RR) TYPEs. These YANG types are intended as a minimum basis for | (RR) TYPEs. These YANG types are intended as the minimum basis for | |||
| future data modeling work.</t> | future data modeling work.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="introduction" title="Introduction"> | <section anchor="introduction" title="Introduction"> | |||
| <t>YANG <xref target="RFC7950"/> has become a de facto standard | <t>YANG <xref target="RFC7950"/> has become a de facto standard | |||
| as a language for modeling configuration and state data, as well | as a language for modeling configuration and state data, as well | |||
| as specifying management operations and asynchronous | as specifying management operations and asynchronous | |||
| notifications. It is reasonable to expect that the approach | notifications. It is reasonable to expect that the approach | |||
| based on utilizing such data models along with standard | based on utilizing such data models along with standard | |||
| management protocols such as NETCONF <xref target="RFC6241"/> | management protocols such as NETCONF <xref target="RFC6241"/> | |||
| and RESTCONF <xref target="RFC8040"/> can be effectively used in | and RESTCONF <xref target="RFC8040"/> can be effectively used in | |||
| DNS operations, too. In fact, several efforts are currently | DNS operations, too. In fact, several efforts are currently | |||
| underway that attempt to use NETCONF or RESTCONF for configuring | underway that attempt to use NETCONF or RESTCONF for configuring | |||
| and managing</t> | and managing</t> | |||
| <ul> | <ul> | |||
| <li>authoritative servers</li> | <li>authoritative servers,</li> | |||
| <li>resolvers</li> | <li>resolvers, and</li> | |||
| <li>zone data.</li> | <li>zone data.</li> | |||
| </ul> | </ul> | |||
| <t>While it is possible to use the management protocols | <t>While it is possible to use the management protocols | |||
| mentioned above with ad hoc or proprietary data models, their | mentioned above with ad hoc or proprietary data models, their | |||
| real potential can be realized only if there is a (completely or | real potential can be realized only if there is a (completely or | |||
| partly) unified data model supported by multiple DNS software | partly) unified data model supported by multiple DNS software | |||
| implementations. Operators can then, for instance, run several | implementations. Operators can then, for instance, run several | |||
| DNS server implementations in parallel, and use a common | DNS server implementations in parallel, and use a common | |||
| configuration and management interface and data for all of | configuration and management interface and data for all of | |||
| them. Also, it becomes considerably easier to migrate to another | them. Also, it becomes considerably easier to migrate to another | |||
| implementation.</t> | implementation.</t> | |||
| <t>Based on the previous experience from the IETF Routing Area, | <t>Based on the previous experience from the IETF Routing Area, | |||
| it is to be expected that the development of unified data models | it is to be expected that the development of unified data models | |||
| for DNS will be a lengthy and complicated process that will | for DNS will be a lengthy and complicated process that will | |||
| require active cooperation and compromises from the vendors and | require active cooperation and compromise from the vendors and | |||
| developers of major DNS server platforms. Nevertheless, it is | developers of major DNS server platforms. Nevertheless, it is | |||
| likely that any DNS-related data modeling effort will need to | likely that any DNS-related data modeling effort will need to | |||
| use various DNS parameters and enumerations that are specified | use various DNS parameters and enumerations that are specified | |||
| in several IANA registries. For use with YANG, these parameters | in several IANA registries. For use with YANG, these parameters | |||
| and enumerations have to be translated into corresponding YANG | and enumerations have to be translated into corresponding YANG | |||
| types or other structures. Such translations should be | types or other structures. Such translations should be | |||
| straightforward and relatively uncontroversial.</t> | straightforward and relatively uncontroversial.</t> | |||
| <t>This document provides a translation of two fundamental | <t>This document provides a translation of two fundamental | |||
| DNS-related IANA registries to YANG. It contains the initial | DNS-related IANA registries to YANG. It contains the initial | |||
| revision of the YANG module "iana-dns-class-rr-type" that | version of the YANG module "iana-dns-class-rr-type", which | |||
| defines derived types for the common parameters of DNS resource | defines derived types for the common parameters of DNS resource | |||
| records (RR): class and type. These YANG types, "dns-class" and | records (RR): class and type. These YANG types, "dns-class" and | |||
| "rr-type", reflect the IANA registries "DNS CLASSes" and | "rr-type", reflect the IANA registries "DNS CLASSes" and | |||
| "Resource Record (RR) TYPEs" <xref target="IANA-DNS-PARAMETERS"/>.</t> | "Resource Record (RR) TYPEs" <xref target="IANA-DNS-PARAMETERS"/>.</t> | |||
| <t><xref target="app.xslt"/> contains an XSLT 1.0 stylesheet | <t><xref target="app.xslt"/> contains an XSLT 1.0 stylesheet | |||
| that is intended to be used by IANA for generating the initial | that is intended to be used by IANA for generating the initial | |||
| revision of the "iana-dns-class-rr-type" YANG | version of the "iana-dns-class-rr-type" YANG | |||
| module. Subsequently, whenever a new class or RR type is added | module. Subsequently, whenever a new class or RR type is added | |||
| to the above registries, IANA will also update the | to the above registries, IANA will also update the | |||
| "iana-dns-class-rr-type" YANG module, following the instructions | "iana-dns-class-rr-type" YANG module, following the instructions | |||
| in <xref target="iana"/> below.</t> | in <xref target="iana"/> below.</t> | |||
| </section> | </section> | |||
| <section anchor="terminology" title="Terminology"> | <section anchor="terminology" title="Terminology"> | |||
| <t> | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| and only when, they | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| appear in all capitals, as shown here.</t> | be interpreted as | |||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| <t>The terminology for describing YANG data models can be found | <t>The terminology for describing YANG data models can be found | |||
| in <xref target="RFC7950"/>. DNS terminology used in this | in <xref target="RFC7950"/>. DNS terminology used in this | |||
| document can be found in <xref target="RFC1035"/> and <xref target="RFC849 9"/>.</t> | document can be found in <xref target="RFC1035"/> and <xref target="RFC849 9"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="design" title="YANG Design Considerations"> | <section anchor="design" title="YANG Design Considerations"> | |||
| <t>At the time of writing, the IANA document "Domain Name System | <t>At the time of writing, the "Domain Name System | |||
| (DNS) Parameters" <xref target="IANA-DNS-PARAMETERS"/> contains | (DNS) Parameters" <xref target="IANA-DNS-PARAMETERS"/> contains | |||
| altogether thirteen registries. The YANG module | altogether thirteen registries. The YANG module | |||
| "iana-dns-class-rr-type" defines derived types corresponding to | "iana-dns-class-rr-type" defines derived types corresponding to | |||
| only two of the registries that are essential for data models | only two of the registries that are essential for data models | |||
| involving zone data, namely "DNS CLASSes" and "Resource Record | involving zone data, namely "DNS CLASSes" and "Resource Record | |||
| (RR) TYPEs". It is expected that the remaining registries in | (RR) TYPEs". It is expected that the remaining registries in | |||
| <xref target="IANA-DNS-PARAMETERS"/>, as well as other | <xref target="IANA-DNS-PARAMETERS"/>, as well as other | |||
| DNS-related IANA registries, will be analogously reflected in | DNS-related IANA registries, will be analogously reflected in | |||
| future YANG modules as necessary. This way, an appropriate | future YANG modules as necessary. This way, an appropriate | |||
| combination of YANG modules can be chosen depending on which | combination of YANG modules can be chosen depending on which | |||
| skipping to change at line 151 ¶ | skipping to change at line 151 ¶ | |||
| } | } | |||
| ... | ... | |||
| } | } | |||
| ... | ... | |||
| } | } | |||
| </sourcecode> | </sourcecode> | |||
| <t>The other derived type, "rr-type-name", is defined | <t>The other derived type, "rr-type-name", is defined | |||
| similarly.</t> | similarly.</t> | |||
| <t><xref target="RFC3597"/> introduced the option of specifying | <t><xref target="RFC3597"/> introduced the option of specifying | |||
| a class or RR type via its assigned decimal number, as an | a class or RR type via its assigned decimal number as an | |||
| alternative to the mnemonic name. For example, the "IN" class | alternative to the mnemonic name. For example, the "IN" class | |||
| can be equivalently written as "CLASS1", and "AAAA" type can be | can be equivalently written as "CLASS1", and "AAAA" type can be | |||
| written as "TYPE28".</t> | written as "TYPE28".</t> | |||
| <t>Accordingly, the derived types "dns-class" and "rr-type" are | <t>Accordingly, the derived types "dns-class" and "rr-type" are | |||
| defined in the YANG module as a union of two member types:</t> | defined in the YANG module as a union of two member types:</t> | |||
| <ul> | <ul> | |||
| <li>16-bit decimal integer ("uint16")</li> | <li>16-bit decimal integer ("uint16")</li> | |||
| <li>mnemonic name belonging to the enumerations | <li>mnemonic name belonging to the enumerations | |||
| "dns-class-name" and "rr-type-name", respectively.</li> | "dns-class-name" and "rr-type-name", respectively.</li> | |||
| </ul> | </ul> | |||
| <t>For instance, the "rr-type" type is defined as follows:</t> | <t>For instance, the "rr-type" type is defined as follows:</t> | |||
| <sourcecode type="yang"> | <sourcecode type="yang"> | |||
| 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."; | |||
| } | } | |||
| </sourcecode> | </sourcecode> | |||
| <t>As unassigned and reserved class and RR type values are not | <t>As unassigned and reserved class and RR type values are not | |||
| included in the mnemonic name enumerations, they can only be specified | included in the mnemonic name enumerations, they can only be specified | |||
| using their decimal values.</t> | using their decimal values.</t> | |||
| </section> | </section> | |||
| <section anchor="iana" title="IANA Considerations"> | <section anchor="iana" title="IANA Considerations"> | |||
| <t>RFC Editor: In this section, replace all occurrences of "XXXX" | ||||
| with the actual RFC number (and remove this note).</t> | ||||
| <t>This section deals with actions and processes necessary for | <t>This section deals with actions and processes necessary for | |||
| IANA to undertake to maintain the "iana-dns-class-rr-type" YANG | IANA to undertake to maintain the "iana-dns-class-rr-type" YANG | |||
| module. This YANG module is intended to reflect the "DNS | module. This YANG module is intended to reflect the "DNS | |||
| CLASSes" and "Resource Record (RR) TYPEs" registries in <xref target="IANA -DNS-PARAMETERS"/>. The most recent revision of the | CLASSes" and "Resource Record (RR) TYPEs" registries in <xref target="IANA -DNS-PARAMETERS"/>. The most recent version of the | |||
| YANG module is available from the "YANG Parameters" registry <xref target= "IANA-YANG-PARAMETERS"/>.</t> | YANG module is available from the "YANG Parameters" registry <xref target= "IANA-YANG-PARAMETERS"/>.</t> | |||
| <t>Upon publication of this document, the initial revision of the | <t>With the publication of this document, IANA has created and posted the | |||
| "iana-dns-class-rr-type" YANG module SHALL be created by applying | initial version | |||
| the XSLT stylesheet from <xref target="app.xslt"/> to the XML | of the "iana-dns-class-rr-type" YANG module by applying the XSLT stylesheet from | |||
| version of <xref target="IANA-DNS-PARAMETERS"/>.</t> | <xref target="app.xslt"/> to the XML version of <xref target="IANA-DNS-PARAMETER | |||
| S"/>.</t> | ||||
| <t>IANA SHALL add this note to the "iana-dns-class-rr-type" item | <t>IANA has added this note to the "iana-dns-class-rr-type" item | |||
| of the "YANG Module Names" registry <xref target="IANA-YANG-PARAMETERS"/>: </t> | of the "YANG Module Names" registry <xref target="IANA-YANG-PARAMETERS"/>: </t> | |||
| <blockquote> | <blockquote> | |||
| 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 | instead be added to the "DNS CLASSes" and "Resource Record | |||
| (RR) TYPEs" registries, respectively. | (RR) TYPEs" registries, respectively. | |||
| </blockquote> | </blockquote> | |||
| <t>When a new DNS class or RR type is added to the "DNS CLASSes" | <t>When a new DNS class or RR type is added to the "DNS CLASSes" | |||
| or "Resource Record (RR) TYPEs" registry, a new "enum" statement | or "Resource Record (RR) TYPEs" registry, a new "enum" statement | |||
| SHALL be added to the "dns-class-name" or "rr-type-name" type, | <bcp14>SHALL</bcp14> be added to the "dns-class-name" or "rr-type-name" ty pe, | |||
| 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 | <bcp14>SHALL</bcp14> be the same as the mnemonic name of the new class or | |||
| type. The following substatements to the "enum" statement SHALL | type. The following substatements to the "enum" statement <bcp14>SHALL</bc | |||
| p14> | ||||
| be defined:</t> | be defined:</t> | |||
| <dl> | <dl indent="16"> | |||
| <dt>"value":</dt> | <dt>"value":</dt> | |||
| <dd>Use the decimal value from the registry.</dd> | <dd>Use the decimal value from the registry.</dd> | |||
| <dt>"status":</dt> | <dt>"status":</dt> | |||
| <dd>Include only if a class or type registration has been | <dd>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 YANG status | |||
| "deprecated", and IANA "obsolete" maps to YANG status "obsolete".</dd> | "deprecated", and IANA "obsolete" maps to YANG status "obsolete".</dd> | |||
| <dt>"description":</dt> | <dt>"description":</dt> | |||
| <dd>Replicate the corresponding information from the registry, | <dd>Replicate the corresponding information from the registry, | |||
| namely the full name of the new DNS class, or the meaning of | namely the full name of the new DNS class, or the meaning of | |||
| the new RR type, if any.</dd> | the new RR type, if any.</dd> | |||
| <dt>"reference":</dt> | <dt>"reference":</dt> | |||
| <dd>Replicate the reference(s) from the registry.</dd> | <dd>Replicate the reference(s) from the registry.</dd> | |||
| </dl> | </dl> | |||
| <t>Unassigned or reserved values SHALL NOT be included in the | <t>Unassigned or reserved values <bcp14>SHALL NOT</bcp14> be included in t he | |||
| "dns-class-name" and "rr-type-name" enumeration types.</t> | "dns-class-name" and "rr-type-name" enumeration types.</t> | |||
| <t>Each time the "iana-dns-class-rr-type" YANG module is updated, a new | <t>Each time the "iana-dns-class-rr-type" YANG module is updated, a new | |||
| "revision" statement SHALL be added before the existing | "revision" statement <bcp14>SHALL</bcp14> be added before the existing | |||
| "revision" statements.</t> | "revision" statements.</t> | |||
| <t>IANA SHALL add this new note to the "DNS CLASSes" and | <t>IANA has added this note to the "DNS CLASSes" and | |||
| "Resource Record (RR) TYPEs" registries:</t> | "Resource Record (RR) TYPEs" registries:</t> | |||
| <blockquote> | <blockquote> | |||
| When this registry is modified, the YANG module | When this registry is modified, the YANG module | |||
| "iana-dns-class-rr-type" must be updated as defined in RFC | "iana-dns-class-rr-type" must be updated as defined in [RFC9108]. | |||
| XXXX. | ||||
| </blockquote> | </blockquote> | |||
| <t>The "Reference" text in the "DNS CLASSes" registry SHALL be | <t>The "Reference" text in the "DNS CLASSes" registry has been | |||
| updated as follows:</t> | updated as follows:</t> | |||
| <blockquote> | ||||
| <artwork> | ||||
| OLD: | ||||
| [RFC6895] | ||||
| NEW: | <t> | |||
| [RFC6895][RFCXXXX] | OLD:</t> | |||
| </artwork> | <blockquote> | |||
| </blockquote> | [RFC6895] </blockquote> | |||
| <t> | ||||
| NEW:</t> | ||||
| <blockquote> | ||||
| [RFC6895][RFC9108] | ||||
| </blockquote> | ||||
| <t>The "Reference" text in the "Resource Record (RR) TYPEs" | <t>The "Reference" text in the "Resource Record (RR) TYPEs" | |||
| registry SHALL be updated as follows:</t> | registry has been updated as follows:</t> | |||
| <t> | ||||
| OLD:</t> | ||||
| <blockquote> | <blockquote> | |||
| <artwork> | [RFC6895][RFC1035] </blockquote> | |||
| OLD: | <t> | |||
| [RFC6895][RFC1035] | NEW:</t> | |||
| <blockquote> | ||||
| NEW: | [RFC6895][RFC1035][RFC9108] | |||
| [RFC6895][RFC1035][RFCXXXX] | ||||
| </artwork> | ||||
| </blockquote> | </blockquote> | |||
| <section title="URI Registrations"> | <section title="URI Registrations"> | |||
| <t>This document registers a URI in the "IETF XML Registry" | <t>This document registers a URI in the "IETF XML Registry" | |||
| <xref target="RFC3688"/>. The following registration has been | <xref target="RFC3688"/>. The following registration has been | |||
| made:</t> | made:</t> | |||
| <blockquote> | <dl spacing="compact"> | |||
| <artwork> | <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type</dd> | |||
| URI: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type | <dt>Registrant Contact:</dt><dd>The IESG.</dd> | |||
| Registrant Contact: The IESG. | <dt>XML:</dt><dd>N/A, the requested URI is an XML namespace.</dd> | |||
| XML: N/A, the requested URI is an XML namespace. | </dl> | |||
| </artwork> | ||||
| </blockquote> | ||||
| </section> | </section> | |||
| <section title="YANG Module Registrations"> | <section title="YANG Module Registrations"> | |||
| <t>This document registers a YANG module in the "YANG Module | <t>This document registers a YANG module in the "YANG Module | |||
| Names" registry <xref target="RFC6020"/>. The following | Names" registry <xref target="RFC6020"/>. The following | |||
| registration has been made:</t> | registration has been made:</t> | |||
| <blockquote> | <dl spacing="compact"> | |||
| <artwork> | <dt>Name:</dt><dd>iana-dns-class-rr-type</dd> | |||
| name: iana-dns-class-rr-type | <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type</dd> | |||
| namespace: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type | <dt>Prefix:</dt><dd>dnsct</dd> | |||
| prefix: dnsct | <dt>Reference:</dt><dd>RFC 9108</dd> | |||
| reference: RFC XXXX | </dl> | |||
| </artwork> | ||||
| </blockquote> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="security" title="Security Considerations"> | <section anchor="security" title="Security Considerations"> | |||
| <t>This document translates two IANA registries into YANG data | <t>This document translates two IANA registries into YANG data | |||
| types and otherwise introduces no technology or | types and otherwise introduces no technology or | |||
| protocol. The definitions themselves have no security impact on | protocol. The definitions themselves have no security impact on | |||
| the Internet, but their use in concrete YANG modules might | the Internet, but their use in concrete YANG modules might | |||
| have. The security considerations spelled out in the YANG | have. The security considerations spelled out in the YANG | |||
| specification <xref target="RFC7950"/> apply for this document | specification <xref target="RFC7950"/> apply to this document | |||
| as well.</t> | as well.</t> | |||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references> | ||||
| <name>References</name> | ||||
| <references title="Normative References"> | <references title="Normative References"> | |||
| <reference anchor="IANA-DNS-PARAMETERS" target="https://www.iana.org/assig nments/dns-parameters"> | <reference anchor="IANA-DNS-PARAMETERS" target="https://www.iana.org/assig nments/dns-parameters"> | |||
| <front> | <front> | |||
| <title>Domain Name System (DNS) Parameters</title> | <title>Domain Name System (DNS) Parameters</title> | |||
| <author> | <author> | |||
| <organization>Internet Assigned Numbers Authority</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor="IANA-YANG-PARAMETERS" target="https://www.iana.org/assi gnments/yang-parameters"> | <reference anchor="IANA-YANG-PARAMETERS" target="https://www.iana.org/assi gnments/yang-parameters"> | |||
| <front> | <front> | |||
| <title>YANG Parameters</title> | <title>YANG Parameters</title> | |||
| <author> | <author> | |||
| <organization>Internet Assigned Numbers Authority</organization> | <organization>IANA</organization> | |||
| </author> | </author> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | |||
| <front> | xml"/> | |||
| <title>Key words for use in RFCs to Indicate Requirement Levels</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3688. | |||
| <author initials="S." surname="Bradner" fullname="S. Bradner"><organization/></a | xml"/> | |||
| uthor> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6020. | |||
| <date year="1997" month="March"/> | xml"/> | |||
| <abstract><t>In many standards track documents several words are used to signify | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7950. | |||
| the requirements in the specification. These words are often capitalized. This | xml"/> | |||
| document defines these words as they should be interpreted in IETF documents. | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | |||
| This document specifies an Internet Best Current Practices for the Internet Comm | xml"/> | |||
| unity, and requests discussion and suggestions for improvements.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="2119"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
| </reference> | ||||
| <reference anchor="RFC3688" target="https://www.rfc-editor.org/info/rfc3688"> | ||||
| <front> | ||||
| <title>The IETF XML Registry</title> | ||||
| <author initials="M." surname="Mealling" fullname="M. Mealling"><organization/>< | ||||
| /author> | ||||
| <date year="2004" month="January"/> | ||||
| <abstract><t>This document describes an IANA maintained registry for IETF standa | ||||
| rds which use Extensible Markup Language (XML) related items such as Namespaces, | ||||
| Document Type Declarations (DTDs), Schemas, and Resource Description Framework | ||||
| (RDF) Schemas.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="81"/> | ||||
| <seriesInfo name="RFC" value="3688"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3688"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020"> | ||||
| <front> | ||||
| <title>YANG - A Data Modeling Language for the Network Configuration Protocol (N | ||||
| ETCONF)</title> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor"> | ||||
| <organization/></author> | ||||
| <date year="2010" month="October"/> | ||||
| <abstract><t>YANG is a data modeling language used to model configuration and st | ||||
| ate data manipulated by the Network Configuration Protocol (NETCONF), NETCONF re | ||||
| mote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t></abstract | ||||
| > | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6020"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6020"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950"> | ||||
| <front> | ||||
| <title>The YANG 1.1 Data Modeling Language</title> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor"> | ||||
| <organization/></author> | ||||
| <date year="2016" month="August"/> | ||||
| <abstract><t>YANG is a data modeling language used to model configuration data, | ||||
| state data, Remote Procedure Calls, and notifications for network management pro | ||||
| tocols. This document describes the syntax and semantics of version 1.1 of the | ||||
| YANG language. YANG version 1.1 is a maintenance release of the YANG language, | ||||
| addressing ambiguities and defects in the original specification. There are a s | ||||
| mall number of backward incompatibilities from YANG version 1. This document al | ||||
| so specifies the YANG mappings to the Network Configuration Protocol (NETCONF).< | ||||
| /t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7950"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7950"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> | ||||
| <author initials="B." surname="Leiba" fullname="B. Leiba"><organization/></autho | ||||
| r> | ||||
| <date year="2017" month="May"/> | ||||
| <abstract><t>RFC 2119 specifies common key words that may be used in protocol s | ||||
| pecifications. This document aims to reduce the ambiguity by clarifying that on | ||||
| ly UPPERCASE usage of the key words have the defined special meanings.</t></abs | ||||
| tract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| <reference anchor="W3C.REC-xslt-19991116" target="https://www.w3.org/TR/1999/REC -xslt-19991116"> | <reference anchor="W3C.REC-xslt-19991116" target="https://www.w3.org/TR/1999/REC -xslt-19991116"> | |||
| <front> | <front> | |||
| <title>XSL Transformations (XSLT) Version 1.0</title> | <title>XSL Transformations (XSLT) Version 1.0</title> | |||
| <author initials="J." surname="Clark" fullname="James Clark"> | <author initials="J." surname="Clark" fullname="James Clark"> | |||
| <organization/> | <organization/> | |||
| </author> | </author> | |||
| <date month="November" year="1999"/> | ||||
| <date month="November" day="16" year="1999"/> | ||||
| </front> | </front> | |||
| <seriesInfo name="W3C Recommendation" value="REC-xslt-19991116"/> | ||||
| <seriesInfo name="World Wide Web Consortium Recommendation" value="REC-xslt-1999 | ||||
| 1116"/> | ||||
| <format type="HTML" target="https://www.w3.org/TR/1999/REC-xslt-19991116"/> | ||||
| </reference> | </reference> | |||
| </references> | </references> | |||
| <references title="Informative References"> | <references title="Informative References"> | |||
| <reference anchor="RFC1035" target="https://www.rfc-editor.org/info/rfc1035"> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1035. | |||
| <front> | xml"/> | |||
| <title>Domain names - implementation and specification</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3597. | |||
| <author initials="P.V." surname="Mockapetris" fullname="P.V. Mockapetris"><organ | xml"/> | |||
| ization/></author> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6241. | |||
| <date year="1987" month="November"/> | xml"/> | |||
| <abstract><t>This RFC is the revised specification of the protocol and format us | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8040. | |||
| ed in the implementation of the Domain Name System. It obsoletes RFC-883. This | xml"/> | |||
| memo documents the details of the domain name client - server communication.</t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8499. | |||
| </abstract> | xml"/> | |||
| </front> | ||||
| <seriesInfo name="STD" value="13"/> | ||||
| <seriesInfo name="RFC" value="1035"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC1035"/> | ||||
| </reference> | ||||
| <reference anchor="RFC3597" target="https://www.rfc-editor.org/info/rfc3597"> | ||||
| <front> | ||||
| <title>Handling of Unknown DNS Resource Record (RR) Types</title> | ||||
| <author initials="A." surname="Gustafsson" fullname="A. Gustafsson"><organizatio | ||||
| n/></author> | ||||
| <date year="2003" month="September"/> | ||||
| <abstract><t>Extending the Domain Name System (DNS) with new Resource Record (RR | ||||
| ) types currently requires changes to name server software. This document speci | ||||
| fies the changes necessary to allow future DNS implementations to handle new RR | ||||
| types transparently. [STANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3597"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3597"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241"> | ||||
| <front> | ||||
| <title>Network Configuration Protocol (NETCONF)</title> | ||||
| <author initials="R." surname="Enns" fullname="R. Enns" role="editor"><organizat | ||||
| ion/></author> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund" role="editor"> | ||||
| <organization/></author> | ||||
| <author initials="J." surname="Schoenwaelder" fullname="J. Schoenwaelder" role=" | ||||
| editor"><organization/></author> | ||||
| <author initials="A." surname="Bierman" fullname="A. Bierman" role="editor"><org | ||||
| anization/></author> | ||||
| <date year="2011" month="June"/> | ||||
| <abstract><t>The Network Configuration Protocol (NETCONF) defined in this docume | ||||
| nt provides mechanisms to install, manipulate, and delete the configuration of n | ||||
| etwork devices. It uses an Extensible Markup Language (XML)-based data encoding | ||||
| for the configuration data as well as the protocol messages. The NETCONF proto | ||||
| col operations are realized as remote procedure calls (RPCs). This document obs | ||||
| oletes RFC 4741. [STANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6241"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6241"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8040" target="https://www.rfc-editor.org/info/rfc8040"> | ||||
| <front> | ||||
| <title>RESTCONF Protocol</title> | ||||
| <author initials="A." surname="Bierman" fullname="A. Bierman"><organization/></a | ||||
| uthor> | ||||
| <author initials="M." surname="Bjorklund" fullname="M. Bjorklund"><organization/ | ||||
| ></author> | ||||
| <author initials="K." surname="Watsen" fullname="K. Watsen"><organization/></aut | ||||
| hor> | ||||
| <date year="2017" month="January"/> | ||||
| <abstract><t>This document describes an HTTP-based protocol that provides a prog | ||||
| rammatic interface for accessing data defined in YANG, using the datastore conce | ||||
| pts defined in the Network Configuration Protocol (NETCONF).</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8040"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8040"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8499" target="https://www.rfc-editor.org/info/rfc8499"> | ||||
| <front> | ||||
| <title>DNS Terminology</title> | ||||
| <author initials="P." surname="Hoffman" fullname="P. Hoffman"><organization/></a | ||||
| uthor> | ||||
| <author initials="A." surname="Sullivan" fullname="A. Sullivan"><organization/>< | ||||
| /author> | ||||
| <author initials="K." surname="Fujiwara" fullname="K. Fujiwara"><organization/>< | ||||
| /author> | ||||
| <date year="2019" month="January"/> | ||||
| <abstract><t>The Domain Name System (DNS) is defined in literally dozens of diff | ||||
| erent RFCs. The terminology used by implementers and developers of DNS protocol | ||||
| s, and by operators of DNS systems, has sometimes changed in the decades since t | ||||
| he DNS was first defined. This document gives current definitions for many of t | ||||
| he terms used in the DNS in a single document.</t><t>This document obsoletes RFC | ||||
| 7719 and updates RFC 2308.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="219"/> | ||||
| <seriesInfo name="RFC" value="8499"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8499"/> | ||||
| </reference> | ||||
| </references> | </references> | |||
| </references> | ||||
| <section anchor="app.xslt" title="XSLT Stylesheet"> | <section anchor="app.xslt" title="XSLT Stylesheet"> | |||
| <t>RFC Editor: In this section, replace all occurrences of "XXXX" | <t>This appendix contains an XSLT 1.0 stylesheet <xref target="W3C.REC-xsl | |||
| with the actual RFC number (and remove this note).</t> | t-19991116"/> that is to be used to | |||
| generate the initial revision of the "iana-dns-class-rr-type" | ||||
| <t>This appendix contains an XSLT 1.0 stylesheet <xref target="W3C.REC-xsl | ||||
| t-19991116"/> that is intended to be used for | ||||
| generating the initial revision of the "iana-dns-class-rr-type" | ||||
| YANG module. This is achieved by applying the stylesheet to the | YANG module. This is achieved by applying the stylesheet to the | |||
| XML version of the IANA registry "Domain Name System (DNS) | XML version of the IANA registry "Domain Name System (DNS) | |||
| Parameters" <xref target="IANA-DNS-PARAMETERS"/> that was | Parameters" <xref target="IANA-DNS-PARAMETERS"/> that was | |||
| current at the time when this document was published.</t> | current at the time this document was published.</t> | |||
| <t>Using the ubiquitous xsltproc tool, the YANG module text can | <t>Using the ubiquitous xsltproc tool, the YANG module text can | |||
| be generated with this command:</t> | be generated with this command:</t> | |||
| <sourcecode type="bash"> | <sourcecode type="bash"> | |||
| $ xsltproc iana-dns-class-rr-type.xsl dns-parameters.xml | $ xsltproc iana-dns-class-rr-type.xsl dns-parameters.xml | |||
| </sourcecode> | </sourcecode> | |||
| <sourcecode markers="true" name="iana-dns-class-rr-type.xsl" type="xml"> | <sourcecode markers="true" name="iana-dns-class-rr-type.xsl" type="xml"><! | |||
| <?xml version="1.0" standalone="yes"?> | [CDATA[ | |||
| <stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" | <?xml version="1.0" standalone="yes"?> | |||
| <stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" | ||||
| xmlns:iana="http://www.iana.org/assignments" | xmlns:iana="http://www.iana.org/assignments" | |||
| version="1.0"> | version="1.0"> | |||
| <output method="text"/> | <output method="text"/> | |||
| <strip-space elements="*"/> | <strip-space elements="*"/> | |||
| <variable name="dq">"</variable> | <variable name="dq">"</variable> | |||
| <variable name="sq">'</variable> | <variable name="sq">'</variable> | |||
| <variable name="module-intro"> | <variable name="module-intro"> | |||
| <text>module iana-dns-class-rr-type { | <text>module iana-dns-class-rr-type { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace | namespace | |||
| "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 | |||
| &lt;mailto:iana@iana.org&gt;"; | <mailto:iana@iana.org&gt;"; | |||
| 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>&#xA;&#xA;</text> | <text>

</text> | |||
| </variable> | </variable> | |||
| <template name="enum"> | <template name="enum"> | |||
| <param name="id"/> | <param name="id"/> | |||
| <value-of select="concat(' enum ', $id)"/> | <value-of select="concat(' enum ', $id)"/> | |||
| <text> {&#xA; value </text> | <text> {
 value </text> | |||
| <value-of select="concat(iana:value, ';&#xA;')"/> | <value-of select="concat(iana:value, ';
')"/> | |||
| <if test="contains(iana:description, 'OBSOLETE')"> | <if test="contains(iana:description, 'OBSOLETE')"> | |||
| <text> status obsolete;&#xA;</text> | <text> status obsolete;
</text> | |||
| </if> | </if> | |||
| <apply-templates select="iana:description"/> | <apply-templates select="iana:description"/> | |||
| <variable name="xrefs" select="iana:xref[@type!='note']"/> | <variable name="xrefs" select="iana:xref[@type!='note']"/> | |||
| <if test="$xrefs"> | <if test="$xrefs"> | |||
| <text> reference&#xA; "</text> | <text> reference
 "</text> | |||
| <if test="count($xrefs)&gt;1">- </if> | <if test="count($xrefs)>1">- </if> | |||
| <apply-templates select="iana:xref[@type!='note']"/> | <apply-templates select="iana:xref[@type!='note']"/> | |||
| </if> | </if> | |||
| <text> }&#xA;</text> | <text> }
</text> | |||
| </template> | </template> | |||
| <template match="/"> | <template match="/"> | |||
| <value-of select="$module-intro"/> | <value-of select="$module-intro"/> | |||
| <apply-templates select="iana:registry[@id='dns-parameters']"/> | <apply-templates select="iana:registry[@id='dns-parameters']"/> | |||
| <text>}&#xA;</text> | <text>}
</text> | |||
| </template> | </template> | |||
| <template match="iana:registry[@id='dns-parameters']"> | <template match="iana:registry[@id='dns-parameters']"> | |||
| <apply-templates select="iana:updated"/> | <apply-templates select="iana:updated"/> | |||
| <apply-templates | <apply-templates | |||
| select="iana:registry[@id='dns-parameters-2']"/> | select="iana:registry[@id='dns-parameters-2']"/> | |||
| <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 */&#xA;&#xA;</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 {&#xA;</text> | <text> typedef dns-class-name {
</text> | |||
| <text> type enumeration {&#xA;</text> | <text> type enumeration {
</text> | |||
| <apply-templates | <apply-templates | |||
| select="iana:record[not(iana:description='Unassigned' or | select="iana:record[not(iana:description='Unassigned' or | |||
| starts-with(iana:description,'Reserved'))]" | starts-with(iana:description,'Reserved'))]" | |||
| mode="class"/> | mode="class"/> | |||
| <text> } | <text> } | |||
| description | description | |||
| "This enumeration type defines mnemonic names and corresponding | "This enumeration type defines mnemonic names and corresponding | |||
| numeric values of DNS classes."; | numeric values of DNS classes."; | |||
| 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."; | |||
| }&#xA;&#xA;</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 {&#xA;</text> | <text> typedef rr-type-name {
</text> | |||
| <text> type enumeration {&#xA;</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."; | |||
| }&#xA;</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( | |||
| iana:description, '('), ')')"/> | iana:description, '('), ')')"/> | |||
| </when> | </when> | |||
| <otherwise> | <otherwise> | |||
| <value-of | <value-of | |||
| select="substring-after(iana:description, ' ')"/> | select="substring-after(iana:description, ' ')"/> | |||
| </otherwise> | </otherwise> | |||
| </choose> | </choose> | |||
| </with-param> | </with-param> | |||
| </call-template> | </call-template> | |||
| </template> | </template> | |||
| <template match="iana:record" mode="rr-type"> | <template match="iana:record" mode="rr-type"> | |||
| <call-template name="enum"> | <call-template name="enum"> | |||
| <with-param name="id" select="iana:type"/> | <with-param name="id" select="iana:type"/> | |||
| </call-template> | </call-template> | |||
| </template> | </template> | |||
| <template match="iana:description"> | <template match="iana:description"> | |||
| <text> description&#xA; </text> | <text> description
 </text> | |||
| <value-of select="concat($dq, ., $dq, ';&#xA;')"/> | <value-of select="concat($dq, ., $dq, ';
')"/> | |||
| </template> | </template> | |||
| <template match="iana:xref"> | <template match="iana:xref"> | |||
| <choose> | <choose> | |||
| <when test="@type='rfc'"> | <when test="@type='rfc'"> | |||
| <value-of | <value-of | |||
| select="concat('RFC ', substring-after(@data, 'rfc'))"/> | select="concat('RFC ', substring-after(@data, 'rfc'))"/> | |||
| </when> | </when> | |||
| <when test="@type='person'"> | <when test="@type='person'"> | |||
| <apply-templates | <apply-templates | |||
| select="/iana:registry/iana:people/iana:person[ | select="/iana:registry/iana:people/iana:person[ | |||
| @id=current()/@data]"/> | @id=current()/@data]"/> | |||
| </when> | </when> | |||
| <when test="@type='text'"> | <when test="@type='text'"> | |||
| <value-of select="translate(., $dq, $sq)"/> | <value-of select="translate(., $dq, $sq)"/> | |||
| </when> | </when> | |||
| <otherwise> | <otherwise> | |||
| <value-of select="@data"/> | <value-of select="@data"/> | |||
| </otherwise> | </otherwise> | |||
| </choose> | </choose> | |||
| <choose> | <choose> | |||
| <when test="position()=last()"> | <when test="position()=last()"> | |||
| <text>";&#xA;</text> | <text>";
</text> | |||
| </when> | </when> | |||
| <otherwise> | <otherwise> | |||
| <text>&#xA; - </text> | <text>
 - </text> | |||
| </otherwise> | </otherwise> | |||
| </choose> | </choose> | |||
| </template> | </template> | |||
| <template match="iana:person"> | <template match="iana:person"> | |||
| <value-of select="concat(iana:name, ' &lt;', iana:uri, '&gt;')"/& | <value-of select="concat(iana:name, ' <', iana:uri, '>')"/> | |||
| gt; | </template> | |||
| </template> | ||||
| </stylesheet> | </stylesheet> | |||
| </sourcecode> | ]]></sourcecode> | |||
| </section> | </section> | |||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 81 change blocks. | ||||
| 411 lines changed or deleted | 246 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/ | ||||