--- 1/draft-ietf-rtgwg-routing-types-04.txt 2017-05-24 10:13:22.124103034 -0700 +++ 2/draft-ietf-rtgwg-routing-types-05.txt 2017-05-24 10:13:22.184104467 -0700 @@ -1,25 +1,25 @@ Network Working Group X. Liu Internet-Draft Jabil Intended status: Standards Track Y. Qu -Expires: November 17, 2017 Futurewei Technologies, Inc. +Expires: November 25, 2017 Futurewei Technologies, Inc. A. Lindem Cisco Systems C. Hopps Deutsche Telekom L. Berger LabN Consulting, L.L.C. - May 16, 2017 + May 24, 2017 Routing Area Common YANG Data Types - draft-ietf-rtgwg-routing-types-04 + draft-ietf-rtgwg-routing-types-05 Abstract This document defines a collection of common data types using the YANG data modeling language. These derived common types are designed to be imported by other modules defined in the routing area. Status of This Memo This Internet-Draft is submitted in full conformance with the @@ -28,21 +28,21 @@ 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 http://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 November 17, 2017. + This Internet-Draft will expire on November 25, 2017. Copyright Notice Copyright (c) 2017 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 (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -54,27 +54,27 @@ Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. IETF Routing Types YANG Module . . . . . . . . . . . . . . . 6 4. IANA Routing Types YANG Module . . . . . . . . . . . . . . . 18 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 - 5.1. IANA-Maintained iana-routing-types Module . . . . . . . . 28 + 5.1. IANA-Maintained iana-routing-types Module . . . . . . . . 29 6. Security Considerations . . . . . . . . . . . . . . . . . . . 30 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 8.1. Normative References . . . . . . . . . . . . . . . . . . 30 8.2. Informative References . . . . . . . . . . . . . . . . . 31 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 1. Introduction The YANG [RFC6020] [RFC7950] is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. The YANG language supports a small set of built-in data types and provides mechanisms to derive other types from the built-in types. This document introduces a collection of common data types derived @@ -90,21 +90,21 @@ 1.2. Terminology The terminology for describing YANG data models is found in [RFC7950]. 2. Overview This document defines the two models for common routing types, ietf- routing-types and iana-routing-types. The only module imports are - from [RFC6021]. The ietf-routing-types model contains common routing + from [RFC6991]. The ietf-routing-types model contains common routing types other than those corresponding directly to IANA mappings. These include: router-id Router Identifiers are commonly used to identify a nodes in routing and other control plane protocols. An example usage of router-id can be found in [I-D.ietf-ospf-yang]. route-target Route Targets (RTs) are commonly used to control the distribution @@ -251,78 +251,170 @@ [I-D.ietf-idr-bgp-model]. subsequent-address-family This type defines values for use in subsequent address family (SAFI) identifiers. The values are based on the IANA Subsequent Address Family Identifiers (SAFI) Parameters Registry [IANA-SAFI-REGISTRY]. 3. IETF Routing Types YANG Module - file "ietf-routing-types@2017-05-10.yang" + file "ietf-routing-types@2017-05-24.yang" module ietf-routing-types { namespace "urn:ietf:params:xml:ns:yang:ietf-routing-types"; prefix "rt-types"; import ietf-yang-types { prefix "yang"; } import ietf-inet-types { prefix "inet"; } - organization "IETF Routing Area Working Group (rtgwg)"; + organization + "IETF RTGWG - Routing Area Working Group"; contact - "Routing Area Working Group - "; + "WG Web: + WG List: + + Editor: Xufeng Lui + + Yingzhen Qu + + Acee Lindem + + Christian Hopps + + Lou Berger + "; description "This module contains a collection of YANG data types considered generally useful for routing protocols. - Copyright (c) 2017 IETF Trust and the persons identified as - authors of the code. All rights reserved. + Copyright (c) 2017 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 + 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 (http://trustee.ietf.org/license-info). - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and - 'OPTIONAL' in the module text are to be interpreted as described - in RFC 2119. + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices."; - This version of this YANG module is part of RFC XXXX; - see the RFC itself for full legal notices."; + reference "RFC XXXX"; - revision 2017-05-10 { + revision 2017-05-24 { description "Initial revision."; reference "RFC TBD: Routing YANG Data Types"; } - /*** collection of types related to routing ***/ + /*** Identities related to MPLS/GMPLS ***/ + identity mpls-label-special-purpose-value { + description + "Base identity for deriving identities describing + special-purpose Multiprotocol Label Switching (MPLS) label + values."; + reference + "RFC7274: Allocating and Retiring Special-Purpose MPLS + Labels."; + } + + identity ipv4-explicit-null-label { + base mpls-label-special-purpose-value; + description + "This identity represents the IPv4 Explicit NULL Label."; + reference + "RFC3032: MPLS Label Stack Encoding. Section 2.1."; + } + + identity router-alert-label { + base mpls-label-special-purpose-value; + description + "This identity represents the Router Alert Label."; + reference + "RFC3032: MPLS Label Stack Encoding. Section 2.1."; + } + + identity ipv6-explicit-null-label { + base mpls-label-special-purpose-value; + description + "This identity represents the IPv6 Explicit NULL Label."; + reference + "RFC3032: MPLS Label Stack Encoding. Section 2.1."; + } + + identity implicit-null-label { + base mpls-label-special-purpose-value; + description + "This identity represents the Implicit NULL Label."; + reference + "RFC3032: MPLS Label Stack Encoding. Section 2.1."; + } + + identity entropy-label-indicator { + base mpls-label-special-purpose-value; + description + "This identity represents the Entropy Label Indicator."; + reference + "RFC6790: The Use of Entropy Labels in MPLS Forwarding. + Sections 3 and 10.1."; + } + + identity gal-label { + base mpls-label-special-purpose-value; + description + "This identity represents the Generic Associated Channel Label + (GAL)."; + reference + "RFC5586: MPLS Generic Associated Channel. + Sections 4 and 10."; + } + + identity oam-alert-label { + base mpls-label-special-purpose-value; + description + "This identity represents the OAM Alert Label."; + reference + "RFC3429: Assignment of the 'OAM Alert Label' for Multiprotocol + Label Switching Architecture (MPLS) Operation and Maintenance + (OAM) Functions. + Sections 3 and 6."; + } + + identity extension-label { + base mpls-label-special-purpose-value; + description + "This identity represents the Extension Label."; + reference + "RFC7274: Allocating and Retiring Special-Purpose MPLS Labels. + Sections 3.1 and 5."; + } + + /*** Collection of types related to routing ***/ typedef router-id { type yang:dotted-quad; description "A 32-bit number in the dotted quad format assigned to each router. This number uniquely identifies the router within an Autonomous System."; } - /*** collection of types related to VPN ***/ + /*** Collection of types related to VPN ***/ typedef route-target { type string { pattern '(0:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' + '[0-5]?\d{0,3}\d):(429496729[0-5]|42949672[0-8]\d|' + '4294967[01]\d{2}|429496[0-6]\d{3}|42949[0-5]\d{4}|' + '4294[0-8]\d{5}|429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|' + '[0-3]?\d{0,8}\d))|' + '(1:(((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|' + '1\d{2}|2[0-4]\d|25[0-5])):(6553[0-5]|655[0-2]\d|' @@ -413,29 +504,28 @@ 1:4-octet-ipv4addr:2-octet-number 2:4-octet-asn:2-octet-number. 2-octet-other-hex-number:6-octet-hex-number Some valid examples are: 0:100:100, 1:1.1.1.1:100, and 2:1234567890:203."; reference "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; } - /*** collection of types common to multicast ***/ + /*** Collection of types common to multicast ***/ typedef ipv4-multicast-group-address { type inet:ipv4-address { pattern '(2((2[4-9])|(3[0-9]))\.).*'; } description "This type represents an IPv4 multicast group address, which is in the range from 224.0.0.0 to 239.255.255.255."; - reference "RFC1112: Host Extensions for IP Multicasting."; } typedef ipv6-multicast-group-address { type inet:ipv6-address { pattern '(([fF]{2}[0-9a-fA-F]{2}):).*'; } description @@ -470,30 +560,29 @@ description "Multicast source IPv4 address type."; } typedef ipv6-multicast-source-address { type union { type enumeration { enum '*' { description "Any source address."; - } } type inet:ipv6-address; } description "Multicast source IPv6 address type."; } - /*** collection of types common to protocols ***/ + /*** Collection of types common to protocols ***/ typedef bandwidth-ieee-float32 { type string { pattern '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' + '1[01]\d|0?\d?\d)?)'; } description "Bandwidth in IEEE 754 floating point 32-bit binary format: (-1)**(S) * 2**(Exponent-127) * (1 + Fraction), @@ -611,111 +700,29 @@ typedef timeticks64 { type uint64; description "This type is based on the timeticks type defined in RFC 6991, but with 64-bit width. It represents the time, modulo 2^64, in hundredths of a second between two epochs."; reference "RFC 6991 - Common YANG Data Types"; } - /*** collection of types related to MPLS/GMPLS ***/ + /*** Collection of types related to MPLS/GMPLS ***/ typedef generalized-label { type binary; description "Generalized label. Nodes sending and receiving the Generalized Label are aware of the link-specific label context and type."; reference "RFC3471: Section 3.2"; } - - identity mpls-label-special-purpose-value { - description - "Base identity for deriving identities describing - special-purpose Multiprotocol Label Switching (MPLS) label - values."; - reference - "RFC7274: Allocating and Retiring Special-Purpose MPLS - Labels."; - } - - identity ipv4-explicit-null-label { - base mpls-label-special-purpose-value; - description - "This identity represents the IPv4 Explicit NULL Label."; - reference - "RFC3032: MPLS Label Stack Encoding. Section 2.1."; - } - - identity router-alert-label { - base mpls-label-special-purpose-value; - description - "This identity represents the Router Alert Label."; - reference - "RFC3032: MPLS Label Stack Encoding. Section 2.1."; - } - - identity ipv6-explicit-null-label { - base mpls-label-special-purpose-value; - description - "This identity represents the IPv6 Explicit NULL Label."; - reference - "RFC3032: MPLS Label Stack Encoding. Section 2.1."; - } - - identity implicit-null-label { - base mpls-label-special-purpose-value; - description - "This identity represents the Implicit NULL Label."; - reference - "RFC3032: MPLS Label Stack Encoding. Section 2.1."; - } - - identity entropy-label-indicator { - base mpls-label-special-purpose-value; - description - "This identity represents the Entropy Label Indicator."; - reference - "RFC6790: The Use of Entropy Labels in MPLS Forwarding. - Sections 3 and 10.1."; - } - - identity gal-label { - base mpls-label-special-purpose-value; - description - "This identity represents the Generic Associated Channel Label - (GAL)."; - reference - "RFC5586: MPLS Generic Associated Channel. - Sections 4 and 10."; - } - - identity oam-alert-label { - base mpls-label-special-purpose-value; - description - "This identity represents the OAM Alert Label."; - reference - "RFC3429: Assignment of the 'OAM Alert Label' for Multiprotocol - Label Switching Architecture (MPLS) Operation and Maintenance - (OAM) Functions. - Sections 3 and 6."; - } - - identity extension-label { - base mpls-label-special-purpose-value; - description - "This identity represents the Extension Label."; - reference - "RFC7274: Allocating and Retiring Special-Purpose MPLS Labels. - Sections 3.1 and 5."; - } - typedef mpls-label-special-purpose { type identityref { base mpls-label-special-purpose-value; } description "This type represents the special-purpose Multiprotocol Label Switching (MPLS) label values."; reference "RFC3032: MPLS Label Stack Encoding. RFC7274: Allocating and Retiring Special-Purpose MPLS @@ -742,23 +749,21 @@ type mpls-label-general-use; } description "The 20-bit label values in an MPLS label stack entry, specified in RFC3032. This label value does not include the encodings of Traffic Class and TTL (time to live)."; reference "RFC3032: MPLS Label Stack Encoding."; } - /* - * Groupings - */ + /*** Groupings **/ grouping mpls-label-stack { description "A grouping that specifies an MPLS label stack."; container mpls-label-stack { description "Container for a list of MPLS label stack entries."; list entry { key "id"; description "List of MPLS label stack entries."; @@ -819,65 +824,68 @@ description "Import/export type of the Route Target."; } } } } 4. IANA Routing Types YANG Module - file "iana-routing-types@2017-05-10.yang" + file "iana-routing-types@2017-05-24.yang" module iana-routing-types { namespace "urn:ietf:params:xml:ns:yang:iana-routing-types"; prefix "iana-rt-types"; - organization "IETF Routing Area Working Group (rtgwg)"; + organization "IANA"; contact - "Routing Area Working Group - "; + " Internet Assigned Numbers Authority + + Postal: ICANN + 4676 Admiralty Way, Suite 330 + Marina del Rey, CA 90292 + + Tel: +1 310 823 9358 + "; description "This module contains a collection of YANG data types considered defined by IANA and used for routing protocols. - Copyright (c) 2017 IETF Trust and the persons identified as - authors of the code. All rights reserved. + Copyright (c) 2017 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 + 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 (http://trustee.ietf.org/license-info). - The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL - NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and - 'OPTIONAL' in the module text are to be interpreted as described - in RFC 2119. + This version of this YANG module is part of RFC XXXX; see + the RFC itself for full legal notices."; - This version of this YANG module is part of RFC XXXX; - see the RFC itself for full legal notices."; + reference "RFC XXXX"; - revision 2017-05-10 { + revision 2017-05-24 { description "Initial revision."; - reference "RFC TBD: IANA Routing YANG Data Types"; } /*** Collection of IANA types related to routing ***/ - /*** IANA address family Identies ***/ + /*** IANA address family Identities ***/ identity address-family { description "Base identity from which identities describing address families are derived."; } identity ipv4 { base address-family; description "IPv4 Address Family - IANA Registry Assigned Number: 1"; } @@ -1124,21 +1132,21 @@ "TRILL Remote Bridge (RBridge) Port ID Address Family - IANA Registry Assigned Number: 16394"; } identity trill-nickname { base address-family; description "TRILL Nickname Address Family - IANA Registry Assigned Number: 16395"; } - /*** Subsequent Address Family for Multi-Protocol BGP */ + /*** SAFIs for Multi-Protocol BGP Identities ***/ identity bgp-safi { description "Base identity from which identities describing BGP Subsequent Address Family Identifier (SAFI) - RFC 4760."; } identity unicast-safi { base bgp-safi; description "Unicast SAFI - @@ -1301,21 +1310,21 @@ registry [RFC3688]: -------------------------------------------------------------------- URI: urn:ietf:params:xml:ns:yang:ietf-routing-types Registrant Contact: The IESG. XML: N/A, the requested URI is an XML namespace. -------------------------------------------------------------------- -------------------------------------------------------------------- URI: urn:ietf:params:xml:ns:yang:iana-routing-types - Registrant Contact: The IESG. + Registrant Contact: IANA XML: N/A, the requested URI is an XML namespace. -------------------------------------------------------------------- This document registers the following YANG modules in the YANG Module Names registry [RFC6020]: -------------------------------------------------------------------- name: ietf-routing-types namespace: urn:ietf:params:xml:ns:yang:ietf-routing-types prefix: rt-types @@ -1407,23 +1416,23 @@ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, . - [RFC6021] Schoenwaelder, J., Ed., "Common YANG Data Types", - RFC 6021, DOI 10.17487/RFC6021, October 2010, - . + [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", + RFC 6991, DOI 10.17487/RFC6991, July 2013, + . [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016, . [IANA-ADDRESS-FAMILY-REGISTRY] "IANA Address Family Registry", . @@ -1505,30 +1514,27 @@ [RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer 2 Virtual Private Networks (L2VPNs)", RFC 4664, DOI 10.17487/RFC4664, September 2006, . [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, . - [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", - RFC 6991, DOI 10.17487/RFC6991, July 2013, - . - [RFC7274] Kompella, K., Andersson, L., and A. Farrel, "Allocating and Retiring Special-Purpose MPLS Labels", RFC 7274, DOI 10.17487/RFC7274, June 2014, . Authors' Addresses + Xufeng Liu Jabil 8281 Greensboro Drive, Suite 200 McLean VA 22102 USA EMail: Xufeng_Liu@jabil.com Yingzhen Qu Futurewei Technologies, Inc.