DNSOP Working Group                                            L. Lhotka
Internet-Draft                                                 P. Spacek
Intended status: Standards Track                                  CZ.NIC
Expires: December 29, 2019                                 June 27, 2019


          YANG Types for DNS Classes and Resource Record Types
               draft-lhotka-dnsop-iana-class-type-yang-02

Abstract

   This document contains the initial revision of the YANG module iana-
   dns-class-rr-type that contains derived types reflecting two IANA
   registries: DNS CLASSes and Resource Record (RR) TYPEs.  These YANG
   types are intended as a minimum basis for future data modeling work.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   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
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on December 29, 2019.

Copyright Notice

   Copyright (c) 2019 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.




Lhotka & Spacek         Expires December 29, 2019               [Page 1]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  YANG Design Considerations  . . . . . . . . . . . . . . . . .   3
   3.  YANG Module . . . . . . . . . . . . . . . . . . . . . . . . .   4
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  22
     4.1.  URI Registrations . . . . . . . . . . . . . . . . . . . .  23
     4.2.  YANG Module Registrations . . . . . . . . . . . . . . . .  23
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .  24
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  24
     6.1.  Normative References  . . . . . . . . . . . . . . . . . .  24
     6.2.  Informative References  . . . . . . . . . . . . . . . . .  24
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  24

1.  Introduction

   YANG [RFC7950] has become a de facto standard as a language for
   modeling configuration and state data, as well as specifying
   management operations and asynchronous notifications.  It is
   reasonable to expect that the approach based on utilizing such data
   models along with standard management protocols such as NETCONF and
   RESTCONF can be effectively used in DNS operations, too.  In fact,
   several efforts are currently underway that attempt to use NETCONF or
   RESTCONF for configuring and managing

   o  authoritative servers

   o  resolvers

   o  zone data.

   While it is possible to use the management protocols mentioned above
   with ad hoc or proprietary data models, their real potential can be
   realized only if there is a (completely or partly) unified data model
   supported by multiple DNS software implementations.  Operators can
   then, for instance, run several different DNS servers in parallel,
   and use a common configuration and management interface and data for
   all of them.  Also, it becomes considerably easier to migrate to
   another implementation.

   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 a lengthy and complicated process that will require active
   cooperation and compromises from the vendors and developers of major
   DNS server platforms.  Nevertheless, it is likely that any DNS-
   related data modeling effort will need to use various DNS parameters
   and enumerations that are specified in several IANA registries.  For
   use with YANG, these parameters and enumerations have to be



Lhotka & Spacek         Expires December 29, 2019               [Page 2]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


   translated into corresponding YANG types or other structures.  Such
   translations should be straightforward and relatively
   uncontroversial.

   This document is a first step in translating DNS-related IANA
   registries to YANG.  It contains the initial revision of the YANG
   module "iana-dns-class-rr-type" that defines derived types for the
   common parameters of DNS resource records (RR): class and type.
   These YANG types, "dns-class" and "rr-type", reflect the IANA
   registries "DNS CLASSes" and "Resource Record (RR) TYPEs"
   [IANA-DNS-PARAMETERS].

   It is worth emphasizing that the role of the DNSOP Working Group is
   only in preparing and publishing this initial revision of the YANG
   module.  Subsequently, whenever a new class or RR type is added to
   the above registries, IANA will also update the iana-dns-class-rr-
   type YANG module, following the instructions in Section 4 below.

2.  YANG Design Considerations

   The IANA document "Domain Name System (DNS) Parameters"
   [IANA-DNS-PARAMETERS] contains altogether thirteen registries.  The
   YANG module iana-dns-class-rr-type defines derived types
   corresponding to only two of the registries that are essential for
   data models involving zone data, namely "DNS CLASSes" and "Resource
   Record (RR) TYPEs".  It is expected that the remaining registries in
   [IANA-DNS-PARAMETERS], as well as other DNS-related IANA registries,
   will be analogically reflected in future YANG modules as necessary.
   This way, an appropriate combination of YANG modules can be chosen
   depending on which YANG types are needed for a given data modeling
   purpose.

   [RFC3597] introduced the option of specifying a class or type via its
   assigned decimal number, as an alternative to the mnemonic name.  For
   example, the "IN" class can be equivalently written as "CLASS1", and
   "AAAA" type as "TYPE28".

   Accordingly, the derived types "dns-class" and "rr-type" are defined
   in the YANG module as a union of two member types:

   o  16-bit decimal integer ("uint16")

   o  mnemonic name, represented by the enumeration type "dns-class-
      name" and "rr-type-name", respectively.

   As unassigned and reserved class and types values are not included in
   the mnemonic name enumerations, they can be used only via their
   decimal codes.



Lhotka & Spacek         Expires December 29, 2019               [Page 3]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


3.  YANG Module

   RFC Editor: In this section, replace all occurrences of "XXXX" with
   the actual RFC number and all occurrences of the revision date below
   with the date of RFC publication (and remove this note).

   <CODE BEGINS> file "ietf-iana-dns-class-rr-type@2019-06-27.yang"

   module iana-dns-class-rr-type {

     yang-version 1.1;

     namespace "urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type";

     prefix dnsct;

     organization
       "Internet Assigned Numbers Authority (IANA)";

     contact
       "        Internet Assigned Numbers Authority

        Postal: ICANN
                4676 Admiralty Way, Suite 330
                Marina del Rey, CA 90292

        Tel:    +1 310 823 9358

        <mailto:iana@iana.org>";

     description
       "This YANG module translates IANA registries 'DNS CLASSes' and
        'Resource Record (RR) TYPEs' to YANG derived types.

        Copyright (c) 2018 IETF Trust and the persons identified as
        authors of the code. All rights reserved.

        Redistribution and use in source and binary forms, with or
        without modification, is permitted pursuant to, and subject to
        the license terms contained in, the Simplified BSD License set
        forth in Section 4.c of the IETF Trust's Legal Provisions
        Relating to IETF Documents
        (https://trustee.ietf.org/license-info).

        This version of this YANG module is part of RFC XXXX
        (https://tools.ietf.org/html/rfcXXXX); see the RFC itself for
        full legal notices.";




Lhotka & Spacek         Expires December 29, 2019               [Page 4]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


     reference
       "IANA 'Domain Name System (DNS) Parameters' registry
        https://www.iana.org/assignments/dns-parameters";

     revision 2019-06-27 {
       description
         "Initial revision.";
       reference
         "RFC XXXX: YANG Types for DNS Classes and Resource Record
          Types";
     }

     /* Typedefs */

     typedef dns-class-name {
       type enumeration {
         enum IN {
           value "1";
           description
             "Internet";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum CH {
           value "3";
           description
             "Chaos";
           reference
             "Moon, D., 'Chaosnet', A. I. Memo 628, MIT Artificial
              Intelligence Laboratory, June 1981";
         }
         enum HS {
           value "4";
           description
             "Hesiod";
           reference
             "Dyer, S. and Hsu, F, 'Hesiod', Project Athena Technical
              Plan - Name Service, April 1987";
         }
         enum NONE {
           value "254";
           description
             "QCLASS NONE";
           reference
             "RFC 2136: Dynamic Updates in the Domain Name System (DNS
              UPDATE)";
         }



Lhotka & Spacek         Expires December 29, 2019               [Page 5]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


         enum ANY {
           value "255";
           description
             "QCLASS * (ANY)";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
       }
       description
         "This enumeration type defines mnemonic names and corresponding
          numeric values of DNS classes.";
       reference
         "RFC 6895: Domain Name System (DNS) IANA Considerations";
     }

     typedef dns-class {
       type union {
         type uint16;
         type dns-class-name;
       }
       description
         "This type allows for referring to a DNS class using either the
          assigned mnemonic name or numeric value.";
     }

     typedef rr-type-name {
       type enumeration {
         enum A {
           value "1";
           description
             "A host address.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum NS {
           value "2";
           description
             "An authoritative name server.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum MD {
           value "3";
           status "obsolete";
           description



Lhotka & Spacek         Expires December 29, 2019               [Page 6]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


             "A mail destination (obsolete - use MX).";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum MF {
           value "4";
           status "obsolete";
           description
             "A mail forwarder (obsolete - use MX).";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum CNAME {
           value "5";
           description
             "The canonical name for an alias.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum SOA {
           value "6";
           description
             "Start of a zone of authority.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum MB {
           value "7";
           description
             "A mailbox domain name (experimental).";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum MG {
           value "8";
           description
             "A mail group member (experimental).";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum MR {
           value "9";



Lhotka & Spacek         Expires December 29, 2019               [Page 7]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


           description
             "A mail rename domain name (experimental).";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum NULL {
           value "10";
           description
             "A null RR (experimental).";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum WKS {
           value "11";
           description
             "A well known service description.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum PTR {
           value "12";
           description
             "A domain name pointer.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum HINFO {
           value "13";
           description
             "Host information.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum MINFO {
           value "14";
           description
             "Mailbox or mail list information.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum MX {
           value "15";



Lhotka & Spacek         Expires December 29, 2019               [Page 8]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


           description
             "Mail exchange.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum TXT {
           value "16";
           description
             "Text strings.";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum RP {
           value "17";
           description
             "Responsible person.";
           reference
             "RFC 1183: New DNS RR Definitions";
         }
         enum AFSDB {
           value "18";
           description
             "AFS data base location.";
           reference
             "- RFC 1183: New DNS RR Definitions

              - RFC 5864: DNS SRV Resource Records for AFS";
         }
         enum X25 {
           value "19";
           description
             "X.25 PSDN address.";
           reference
             "RFC 1183: New DNS RR Definitions";
         }
         enum ISDN {
           value "20";
           description
             "ISDN address.";
           reference
             "RFC 1183: New DNS RR Definitions";
         }
         enum RT {
           value "21";
           description
             "Route through.";



Lhotka & Spacek         Expires December 29, 2019               [Page 9]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


           reference
             "RFC 1183: New DNS RR Definitions";
         }
         enum NSAP {
           value "22";
           description
             "NSAP address, NSAP style A record.";
           reference
             "RFC 1706: DNS NSAP Resource Records";
         }
         enum NSAP-PTR {
           value "23";
           description
             "Domain name pointer, NSAP style.";
           reference
             "- RFC 1348: DNS NSAP RRs

              - RFC 1637: DNS NSAP Resource Records

              - RFC 1706: DNS NSAP Resource Records";
         }
         enum SIG {
           value "24";
           description
             "Security signature.";
           reference
             "- RFC 4034: Resource Records for the DNS Security
                Extensions

              - RFC 3755: Legacy Resolver Compatibility for Delegation
                Signer (DS)

              - RFC 2535: Domain Name System Security Extensions

              - RFC 2536: DSA KEYs and SIGs in the Domain Name System
                (DNS)

              - RFC 2537: RSA/MD5 KEYs and SIGs in the Domain Name
                System (DNS)

              - RFC 2931: DNS Request and Transaction Signatures
                (SIG(0)s)

              - RFC 3110: RSA/SHA-1 SIGs and RSA KEYs in the Domain Name
                System (DNS)

              - RFC 3008: Domain Name System Security (DNSSEC) Signing
                Authority";



Lhotka & Spacek         Expires December 29, 2019              [Page 10]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


         }
         enum KEY {
           value "25";
           description
             "Security key.";
           reference
             "- RFC 4034: Resource Records for the DNS Security
                Extensions

              - RFC 3755: Legacy Resolver Compatibility for Delegation
                Signer (DS)

              - RFC 2535: Domain Name System Security Extensions

              - RFC 2536: DSA KEYs and SIGs in the Domain Name System
                (DNS)

              - RFC 2537: RSA/MD5 KEYs and SIGs in the Domain Name
                System (DNS)

              - RFC 2539: Storage of Diffie-Hellman Keys in the Domain
                Name System (DNS)

              - RFC 3008: Domain Name System Security (DNSSEC) Signing
                Authority

              - RFC 3110: RSA/SHA-1 SIGs and RSA KEYs in the Domain Name
                System (DNS)";
         }
         enum PX {
           value "26";
           description
             "X.400 mail mapping information.";
           reference
             "RFC 2163: Using the Internet DNS to Distribute MIXER
              Conformant Global Address Mapping (MCGAM)";
         }
         enum GPOS {
           value "27";
           description
             "Geographical position.";
           reference
             "RFC 1712: DNS Encoding of Geographical Location";
         }
         enum AAAA {
           value "28";
           description
             "IPv6 address.";



Lhotka & Spacek         Expires December 29, 2019              [Page 11]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


           reference
             "RFC 3596: DNS Extensions to Support IP Version 6";
         }
         enum LOC {
           value "29";
           description
             "Location information.";
           reference
             "RFC 1876: A Means for Expressing Location Information in
              the Domain Name System";
         }
         enum NXT {
           value "30";
           status "obsolete";
           description
             "Next domain (obsolete).";
           reference
             "- RFC 3755: Legacy Resolver Compatibility for Delegation
                Signer (DS)

              - RFC 2535: Domain Name System Security Extensions";
         }
         enum EID {
           value "31";
           description
             "Endpoint identifier.";
         }
         enum NIMLOC {
           value "32";
           description
             "Nimrod locator.";
         }
         enum SRV {
           value "33";
           description
             "Server selection.";
           reference
             "RFC 2782: A DNS RR for specifying the location of services
              (DNS SRV)";
         }
         enum ATMA {
           value "34";
           description
             "ATM address.";
           reference
             "ATM Forum Technical Committee, 'ATM Name System V2.0',
              AF-DANS-0152.00, July 2000";
         }



Lhotka & Spacek         Expires December 29, 2019              [Page 12]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


         enum NAPTR {
           value "35";
           description
             "Naming authority pointer.";
           reference
             "- RFC 2915: The Naming Authority Pointer (NAPTR) DNS
                Resource Record

              - RFC 2168: Resolution of Uniform Resource Identifiers
                using the Domain Name System

              - RFC 3403: Dynamic Delegation Discovery System (DDDS)
                Part Three: The Domain Name System (DNS) Database";
         }
         enum KX {
           value "36";
           description
             "Key exchanger.";
           reference
             "RFC 2230: Key Exchange Delegation Record for the DNS";
         }
         enum CERT {
           value "37";
           description
             "Certificate.";
           reference
             "RFC 4398: Storing Certificates in the Domain Name System
              (DNS)";
         }
         enum A6 {
           value "38";
           status "obsolete";
           description
             "IPv6 address (obsolete - use AAAA).";
           reference
             "- RFC 3226: DNSSEC and IPv6 A6 Aware Server/Resolver
                Message Size Requirements

              - RFC 2874: DNS Extensions to Support IPv6 Address
                Aggregation and Renumbering

              - RFC 6563: Moving A6 to Historic Status";
         }
         enum DNAME {
           value "39";
           description
             "DNAME.";
           reference



Lhotka & Spacek         Expires December 29, 2019              [Page 13]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


             "- RFC 2672: Non-Terminal DNS Name Redirection

              - RFC 6672: DNAME Redirection in the DNS";
         }
         enum SINK {
           value "40";
           description
             "Kitchen sink.";
         }
         enum OPT {
           value "41";
           description
             "OPT pseudo-RR.";
           reference
             "- RFC 6891: Extension Mechanisms for DNS (EDNS(0))

              - RFC 3225: Indicating Resolver Support of DNSSEC";
         }
         enum APL {
           value "42";
           description
             "Address prefix list.";
           reference
             "RFC 3123: A DNS RR Type for Lists of Address Prefixes (APL
              RR)";
         }
         enum DS {
           value "43";
           description
             "Delegation signer.";
           reference
             "- RFC 4034: Resource Records for the DNS Security
                Extensions

              - RFC 3658: Delegation Signer (DS) Resource Record (RR)";
         }
         enum SSHFP {
           value "44";
           description
             "SSH key fingerprint.";
           reference
             "RFC 4255: Using DNS to Securely Publish Secure Shell (SSH)
              Key Fingerprints";
         }
         enum IPSECKEY {
           value "45";
           description
             "IPSec key.";



Lhotka & Spacek         Expires December 29, 2019              [Page 14]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


           reference
             "RFC 4025: A Method for Storing IPsec Keying Material in
              DNS";
         }
         enum RRSIG {
           value "46";
           description
             "RR signature.";
           reference
             "- RFC 4034: Resource Records for the DNS Security
                Extensions

              - RFC 3755: Legacy Resolver Compatibility for Delegation
                Signer (DS)";
         }
         enum NSEC {
           value "47";
           description
             "NSEC resource record.";
           reference
             "- RFC 4034: Resource Records for the DNS Security
                Extensions

              - RFC 3755: Legacy Resolver Compatibility for Delegation
                Signer (DS)";
         }
         enum DNSKEY {
           value "48";
           description
             "DNSKEY resource record.";
           reference
             "- RFC 4034: Resource Records for the DNS Security
                Extensions

              - RFC 3755: Legacy Resolver Compatibility for Delegation
                Signer (DS)";
         }
         enum DHCID {
           value "49";
           description
             "DHCID resource record.";
           reference
             "RFC 4701: A DNS Resource Record (RR) for Encoding Dynamic
              Host Configuration Protocol (DHCP) Information (DHCID
              RR)";
         }
         enum NSEC3 {
           value "50";



Lhotka & Spacek         Expires December 29, 2019              [Page 15]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


           description
             "NSEC3 resource record.";
           reference
             "RFC 5155: DNS Security (DNSSEC) Hashed Authenticated
              Denial of Existence";
         }
         enum NSEC3PARAM {
           value "51";
           description
             "NSEC3PARAM resource record.";
           reference
             "RFC 5155: DNS Security (DNSSEC) Hashed Authenticated
              Denial of Existence";
         }
         enum TLSA {
           value "52";
           description
             "TLSA resource record.";
           reference
             "RFC 6698: The DNS-Based Authentication of Named Entities
              (DANE) Transport Layer Security (TLS) Protocol: TLSA";
         }
         enum SMIMEA {
           value "53";
           description
             "S/MIME cert association";
           reference
             "RFC 8162: Using Secure DNS to Associate Certificates with
              Domain Names for S/MIME";
         }
         enum HIP {
           value "55";
           description
             "Host identity protocol.";
           reference
             "RFC 5205: Host Identity Protocol (HIP) Domain Name System
              (DNS) Extension";
         }
         enum NINFO {
           value "56";
           description
             "NINFO resource record.";
         }
         enum RKEY {
           value "57";
           description
             "RKEY resource record.";
         }



Lhotka & Spacek         Expires December 29, 2019              [Page 16]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


         enum TALINK {
           value "58";
           description
             "Trust anchor LINK.";
         }
         enum CDS {
           value "59";
           description
             "Child DS.";
           reference
             "RFC 7344: Automating DNSSEC Delegation Trust
              Maintenance";
         }
         enum CDNSKEY {
           value "60";
           description
             "DNSKEY(s) the child wants reflected in DS.";
           reference
             "RFC 7344: Automating DNSSEC Delegation Trust
              Maintenance";
         }
         enum OPENPGPKEY {
           value "61";
           description
             "OpenPGP key.";
           reference
             "RFC 7929: DNS-Based Authentication of Named Entities
              (DANE) Bindings for OpenPGP";
         }
         enum CSYNC {
           value "62";
           description
             "Child-to-parent synchronization.";
           reference
             "RFC 7477: Child-to-Parent Synchronization in DNS";
         }
         enum SPF {
           value "99";
           description
             "SPF (sender policy framework) resource record.";
           reference
             "RFC 7208: Sender Policy Framework (SPF) for Authorizing
              Use of Domains in Email, Version 1";
         }
         enum UINFO {
           value "100";
           description
             "IANA-reserved.";



Lhotka & Spacek         Expires December 29, 2019              [Page 17]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


         }
         enum UID {
           value "101";
           description
             "IANA-reserved.";
         }
         enum GID {
           value "102";
           description
             "IANA-reserved.";
         }
         enum UNSPEC {
           value "103";
           description
             "IANA-reserved.";
         }
         enum NID {
           value "104";
           description
             "Node identifier.";
           reference
             "RFC 6742: DNS Resource Records for the Identifier-Locator
              Network Protocol (ILNP)";
         }
         enum L32 {
           value "105";
           description
             "L32 resource record.";
           reference
             "RFC 6742: DNS Resource Records for the Identifier-Locator
              Network Protocol (ILNP)";
         }
         enum L64 {
           value "106";
           description
             "L64 resource record.";
           reference
             "RFC 6742: DNS Resource Records for the Identifier-Locator
              Network Protocol (ILNP)";
         }
         enum LP {
           value "107";
           description
             "LP resource record.";
           reference
             "RFC 6742: DNS Resource Records for the Identifier-Locator
              Network Protocol (ILNP)";
         }



Lhotka & Spacek         Expires December 29, 2019              [Page 18]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


         enum EUI48 {
           value "108";
           description
             "An EUI-48 address.";
           reference
             "RFC 7043: Resource Records for EUI-48 and EUI-64 Addresses
              in the DNS";
         }
         enum EUI64 {
           value "109";
           description
             "An EUI-64 address.";
           reference
             "RFC 7043: Resource Records for EUI-48 and EUI-64 Addresses
              in the DNS";
         }
         enum TKEY {
           value "249";
           description
             "Transaction key.";
           reference
             "RFC 2930: Secret Key Establishment for DNS (TKEY RR)";
         }
         enum TSIG {
           value "250";
           description
             "Transaction signature.";
           reference
             "RFC 2845: Secret Key Transaction Authentication for DNS
              (TSIG)";
         }
         enum IXFR {
           value "251";
           description
             "Incremental transfer.";
           reference
             "RFC 1995: Incremental Zone Transfer in DNS";
         }
         enum AXFR {
           value "252";
           description
             "Transfer of an entire zone.";
           reference
             "- RFC 1035: Domain Names - Implementation and
                Specification

              - RFC 5936: DNS Zone Transfer Protocol (AXFR)";
         }



Lhotka & Spacek         Expires December 29, 2019              [Page 19]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


         enum MAILB {
           value "253";
           description
             "Mailbox-related RRs (MB, MG or MR).";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum MAILA {
           value "254";
           status "obsolete";
           description
             "Mail agent RRs (obsolete - see MX).";
           reference
             "RFC 1035: Domain Names - Implementation and
              Specification";
         }
         enum * {
           value "255";
           description
             "A request for all records the server/cache has
              available.";
           reference
             "- RFC 1035: Domain Names - Implementation and
                Specification

              - RFC 6895: Domain Name System (DNS) IANA
                Considerations";
         }
         enum URI {
           value "256";
           description
             "URI resource record.";
           reference
             "RFC 7553: The Uniform Resource Identifier (URI) DNS
              Resource Record";
         }
         enum CAA {
           value "257";
           description
             "Certification authority authorization.";
           reference
             "RFC 6844: DNS Certification Authority Authorization (CAA)
              Resource Record";
         }
         enum AVC {
           value "258";
           description



Lhotka & Spacek         Expires December 29, 2019              [Page 20]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


             "Application visibility and control.";
         }
         enum DOA {
           value "259";
           description
             "Digital object architecture";
           reference
             "draft-durand-doa-over-dns: DOA over DNS";
         }
         enum AMTRELAY {
           value "260";
           description
             "Automatic multicast tunneling relay.";
           reference
             "J. Holland: DNS Reverse IP AMT Discovery.
              draft-ietf-mboned-driad-amt-discovery.";
         }
         enum TA {
           value "32768";
           description
             "DNSSEC trust authorities.";
         }
         enum DLV {
           value "32769";
           description
             "DNSSEC lookaside validation.";
           reference
             "RFC 4431: The DNSSEC Lookaside Validation (DLV) DNS
              Resource Record";
         }
       }
       description
         "This enumeration type defines mnemonic names and corresponding
          numeric values of DNS resource record types.";
       reference
         "- RFC 6895: Domain Name System (DNS) IANA Considerations

          - RFC 1035: Domain Names - Implementation and Specification";
     }

     typedef rr-type {
       type union {
         type uint16;
         type rr-type-name;
       }
       description
         "This type allows for referring to a DNS resource record type
          using either the assigned mnemonic name or numeric value.";



Lhotka & Spacek         Expires December 29, 2019              [Page 21]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


     }
   }

   <CODE ENDS>

4.  IANA Considerations

   RFC Editor: In this section, replace all occurrences of "XXXX" with
   the actual RFC number (and remove this note).

   This document defines the initial version of the IANA-maintained
   iana-dns-class-rr-type YANG module.

   The iana-dns-class-rr-type YANG module is intended to reflect the
   "DNS CLASSes" and "Resource Record (RR) TYPEs" registries in
   [IANA-DNS-PARAMETERS].

   IANA has added this new note to the "iana-dns-class-rr-type YANG
   Module" registry:

      Classes and types of DNS resource records must not be directly
      added to the iana-dns-class-rr-type YANG module. They must instead
      be added to the "DNS CLASSes" and "Resource Record (RR) TYPEs"
      registries, respectively.

   When a new DNS class or RR type is added to the "DNS CLASSes" or
   "Resource Record (RR) TYPEs" registry, a new "enum" statement must be
   added to the "dns-class-name" or "rr-type-name" type, respectively.
   The assigned name defined by the "enum" statement is the same as the
   mnemonic name of the new class or type.  The following substatements
   to the "enum" statement should be defined:

   "value":       Use the decimal value from the registry.

   "status":      Include only if a class or type registration has been
                  deprecated (use the value "deprecated") or obsoleted
                  (use the value "obsolete").

   "description": Replicate the corresponding information from the
                  registry, namely the full name of the new DNS class,
                  or the meaning of the new RR type, if any.

   "reference":   Replicate the reference from the registry, if any, and
                  add the title of the document, if applicable.

   Unassigned or reserved values are not included in the "dns-class-
   name" and "rr-type-name" enumeration types.




Lhotka & Spacek         Expires December 29, 2019              [Page 22]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


   Each time the iana-dns-class-rr-type YANG module is updated, a new
   "revision" statement must be added before the existing "revision"
   statements.

   IANA has added this new note to the "DNS CLASSes" and "Resource
   Record (RR) TYPEs" registries:

      When this registry is modified, the YANG module
      iana-dns-class-rr-type must be updated as defined in RFC XXXX.

   The "Reference" text in the "DNS CLASSes" registry has been updated
   as follows:

      OLD:
        [RFC6895]

      NEW:
        [RFC6895][RFCXXXX]

   The "Reference" text in the "Resource Record (RR) TYPEs" registry has
   been updated as follows:

      OLD:
        [RFC6895][RFC1035]

      NEW:
        [RFC6895][RFC1035][RFCXXXX]

4.1.  URI Registrations

   This document registers a URI in the "IETF XML Registry" [RFC3688].
   The following registration has been made:

      URI: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type
      Registrant Contact: The IESG.
      XML: N/A, the requested URI is an XML namespace.

4.2.  YANG Module Registrations

   This document registers a YANG module in the "YANG Module Names"
   registry [RFC6020].  The following registration has been made:

      name:      iana-dns-class-rr-type
      namespace: urn:ietf:params:xml:ns:yang:iana-dns-class-rr-type
      prefix:    dnsct
      reference: RFC XXXX





Lhotka & Spacek         Expires December 29, 2019              [Page 23]


Internet-Draft         iana-dns-class-rr-type-yang             June 2019


5.  Security Considerations

   This documents translates two IANA registries into YANG data types
   and otherwise introduces no technology or protocol.  Consequently,
   there are no security issues to be considered for this document.

6.  References

6.1.  Normative References

   [IANA-DNS-PARAMETERS]
              Internet Assigned Numbers Authority, "Domain Name System
              (DNS) Parameters", January 2018,
              <https://www.iana.org/assignments/dns-parameters>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <https://www.rfc-editor.org/info/rfc6020>.

   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
              RFC 7950, DOI 10.17487/RFC7950, August 2016,
              <https://www.rfc-editor.org/info/rfc7950>.

6.2.  Informative References

   [RFC3597]  Gustafsson, A., "Handling of Unknown DNS Resource Record
              (RR) Types", RFC 3597, DOI 10.17487/RFC3597, September
              2003, <https://www.rfc-editor.org/info/rfc3597>.

Authors' Addresses

   Ladislav Lhotka
   CZ.NIC

   Email: lhotka@nic.cz


   Petr Spacek
   CZ.NIC

   Email: petr.spacek@nic.cz





Lhotka & Spacek         Expires December 29, 2019              [Page 24]