| < draft-ietf-rtgwg-routing-types-06.txt | draft-ietf-rtgwg-routing-types-07.txt > | |||
|---|---|---|---|---|
| Network Working Group X. Liu | Network Working Group X. Liu | |||
| Internet-Draft Jabil | Internet-Draft Jabil | |||
| Intended status: Standards Track Y. Qu | Intended status: Standards Track Y. Qu | |||
| Expires: December 15, 2017 Futurewei Technologies, Inc. | Expires: December 31, 2017 Futurewei Technologies, Inc. | |||
| A. Lindem | A. Lindem | |||
| Cisco Systems | Cisco Systems | |||
| C. Hopps | C. Hopps | |||
| Deutsche Telekom | Deutsche Telekom | |||
| L. Berger | L. Berger | |||
| LabN Consulting, L.L.C. | LabN Consulting, L.L.C. | |||
| June 13, 2017 | June 29, 2017 | |||
| Routing Area Common YANG Data Types | Routing Area Common YANG Data Types | |||
| draft-ietf-rtgwg-routing-types-06 | draft-ietf-rtgwg-routing-types-07 | |||
| Abstract | Abstract | |||
| This document defines a collection of common data types using the | This document defines a collection of common data types using the | |||
| YANG data modeling language. These derived common types are designed | YANG data modeling language. These derived common types are designed | |||
| to be imported by other modules defined in the routing area. | to be imported by other modules defined in the routing area. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 39 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on December 15, 2017. | This Internet-Draft will expire on December 31, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 16 ¶ | skipping to change at page 2, line 16 ¶ | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 3. IETF Routing Types YANG Module . . . . . . . . . . . . . . . 6 | 3. IETF Routing Types YANG Module . . . . . . . . . . . . . . . 6 | |||
| 4. IANA Routing Types YANG Module . . . . . . . . . . . . . . . 18 | 4. IANA Routing Types YANG Module . . . . . . . . . . . . . . . 22 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 5.1. IANA-Maintained iana-routing-types Module . . . . . . . . 28 | 5.1. IANA-Maintained iana-routing-types Module . . . . . . . . 33 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 30 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 35 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 31 | 8.2. Informative References . . . . . . . . . . . . . . . . . 35 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
| 1. Introduction | 1. Introduction | |||
| The YANG [RFC6020] [RFC7950] is a data modeling language used to | The YANG [RFC6020] [RFC7950] is a data modeling language used to | |||
| model configuration data, state data, Remote Procedure Calls, and | model configuration data, state data, Remote Procedure Calls, and | |||
| notifications for network management protocols. The YANG language | notifications for network management protocols. The YANG language | |||
| supports a small set of built-in data types and provides mechanisms | supports a small set of built-in data types and provides mechanisms | |||
| to derive other types from the built-in types. | to derive other types from the built-in types. | |||
| This document introduces a collection of common data types derived | This document introduces a collection of common data types derived | |||
| skipping to change at page 3, line 14 ¶ | skipping to change at page 3, line 14 ¶ | |||
| Router Identifiers are commonly used to identify a nodes in | Router Identifiers are commonly used to identify a nodes in | |||
| routing and other control plane protocols. An example usage of | routing and other control plane protocols. An example usage of | |||
| router-id can be found in [I-D.ietf-ospf-yang]. | router-id can be found in [I-D.ietf-ospf-yang]. | |||
| route-target | route-target | |||
| Route Targets (RTs) are commonly used to control the distribution | Route Targets (RTs) are commonly used to control the distribution | |||
| of virtual routing and forwarding (VRF) information, see | of virtual routing and forwarding (VRF) information, see | |||
| [RFC4364], in support of virtual private networks (VPNs). An | [RFC4364], in support of virtual private networks (VPNs). An | |||
| example usage can be found in [I-D.ietf-bess-l2vpn-yang]. | example usage can be found in [I-D.ietf-bess-l2vpn-yang]. | |||
| ipv6-route-target | ||||
| IPv6 Route Targets (RTs) are similar to standard Route Targets | ||||
| only they IPv6 Address Specific BGP Extended Communities as | ||||
| described in [RFC5701]. An IPv6 Route Target is 20 octets and | ||||
| includes an IPv6 address as the global administrator. | ||||
| route-target-type | route-target-type | |||
| This type defines the import and export rules of Route Targets, as | This type defines the import and export rules of Route Targets, as | |||
| descibed in Section 4.3.1 of [RFC4364]. An example usage can be | descibed in Section 4.3.1 of [RFC4364]. An example usage can be | |||
| found in [I-D.ietf-idr-bgp-model]. | found in [I-D.ietf-idr-bgp-model]. | |||
| route-distinguisher | route-distinguisher | |||
| Route Distinguishers (RDs) are commonly used to identify separate | Route Distinguishers (RDs) are commonly used to identify separate | |||
| routes in support of virtual private networks (VPNs). For | routes in support of virtual private networks (VPNs). For | |||
| example, in [RFC4364], RDs are commonly used to identify | example, in [RFC4364], RDs are commonly used to identify | |||
| independent VPNs and VRFs, and more generally, to identify | independent VPNs and VRFs, and more generally, to identify | |||
| multiple routes to the same prefix. An example usage can be found | multiple routes to the same prefix. An example usage can be found | |||
| in [I-D.ietf-idr-bgp-model]. | in [I-D.ietf-idr-bgp-model]. | |||
| route-origin | ||||
| Route Origin is commonly used to indicate the Site of Origin for | ||||
| Routng and forwarding (VRF) information, see [RFC4364], in support | ||||
| of virtual private networks (VPNs). An example usage can be found | ||||
| in [I-D.ietf-bess-l3vpn-yang]. | ||||
| ipv6-route-origin | ||||
| An IPv6 Route Origin would also be used to indicate the Site of | ||||
| Origin for Routng and forwarding (VRF) information, see [RFC4364], | ||||
| in support of virtual private networks (VPNs). IPv6 Route Origins | ||||
| are IPv6 Address Specific BGP Extended Communities as described in | ||||
| [RFC5701]. An IPv6 Route Origin is 20 octets and includes an IPv6 | ||||
| address as the global administrator. | ||||
| ipv4-multicast-group-address | ipv4-multicast-group-address | |||
| This type defines the representation of an IPv4 multicast group | This type defines the representation of an IPv4 multicast group | |||
| address, which is in the range from 224.0.0.0 to 239.255.255.255. | address, which is in the range from 224.0.0.0 to 239.255.255.255. | |||
| An example usage can be found in [I-D.ietf-pim-yang]. | An example usage can be found in [I-D.ietf-pim-yang]. | |||
| ipv6-multicast-group-address | ipv6-multicast-group-address | |||
| This type defines the representation of an IPv6 multicast group | This type defines the representation of an IPv6 multicast group | |||
| address, which is in the range of FF00::/8. An example usage can | address, which is in the range of FF00::/8. An example usage can | |||
| be found in [I-D.ietf-pim-yang]. | be found in [I-D.ietf-pim-yang]. | |||
| skipping to change at page 5, line 7 ¶ | skipping to change at page 5, line 28 ¶ | |||
| percentage | percentage | |||
| This type defines a percentage with a range of 0-100%. An example | This type defines a percentage with a range of 0-100%. An example | |||
| usage can be found in [I-D.ietf-idr-bgp-model]. | usage can be found in [I-D.ietf-idr-bgp-model]. | |||
| timeticks64 | timeticks64 | |||
| This type is based on the timeticks type defined in [RFC6991] but | This type is based on the timeticks type defined in [RFC6991] but | |||
| with 64-bit precision. It represents the time in hundredths of a | with 64-bit precision. It represents the time in hundredths of a | |||
| second between two epochs. An example usage can be found in | second between two epochs. An example usage can be found in | |||
| [I-D.ietf-idr-bgp-model]. | [I-D.ietf-idr-bgp-model]. | |||
| uint24 | ||||
| This type defines a 24-bit unsigned integer. It is used by | ||||
| target="I-D.ietf-ospf-yang"/>. | ||||
| generalized-label | generalized-label | |||
| This type represents a generalized label for Generalized Multi- | This type represents a generalized label for Generalized Multi- | |||
| Protocol Label Switching (GMPLS) [RFC3471]. The Generalized Label | Protocol Label Switching (GMPLS) [RFC3471]. The Generalized Label | |||
| does not identify its type, which is known from the context. An | does not identify its type, which is known from the context. An | |||
| example usage can be found in [I-D.ietf-teas-yang-te]. | example usage can be found in [I-D.ietf-teas-yang-te]. | |||
| mpls-label-special-purpose | mpls-label-special-purpose | |||
| This type represents the special-purpose Multiprotocol Label | This type represents the special-purpose Multiprotocol Label | |||
| Switching (MPLS) label values [RFC7274]. An example usage can be | Switching (MPLS) label values [RFC7274]. An example usage can be | |||
| found in [I-D.ietf-mpls-base-yang]. | found in [I-D.ietf-mpls-base-yang]. | |||
| skipping to change at page 5, line 47 ¶ | skipping to change at page 6, line 24 ¶ | |||
| This grouping defines a reusable collection of schema nodes | This grouping defines a reusable collection of schema nodes | |||
| representing an MPLS label stack [RFC3032]. An example usage can | representing an MPLS label stack [RFC3032]. An example usage can | |||
| be found in [I-D.ietf-mpls-base-yang]. | be found in [I-D.ietf-mpls-base-yang]. | |||
| vpn-route-targets | vpn-route-targets | |||
| This grouping defines a reusable collection of schema nodes | This grouping defines a reusable collection of schema nodes | |||
| representing Route Target import-export rules used in the BGP | representing Route Target import-export rules used in the BGP | |||
| enabled Virtual Private Networks (VPNs). [RFC4364][RFC4664]. An | enabled Virtual Private Networks (VPNs). [RFC4364][RFC4664]. An | |||
| example usage can be found in [I-D.ietf-bess-l2vpn-yang]. | example usage can be found in [I-D.ietf-bess-l2vpn-yang]. | |||
| geo-coordinates | ||||
| This grouping defines a reusable collection of schema nodes | ||||
| representing the Geo-coordinates in IETF models. The schema modes | ||||
| specify the location of an object using the WGS-84 (World Geodetic | ||||
| System) reference coordinate system [WGS84]. This is expected to | ||||
| used in augmentations to routing protocol models such as | ||||
| [I-D.ietf-ospf-yang]. | ||||
| The iana-routing-types model contains common routing types | The iana-routing-types model contains common routing types | |||
| corresponding directly to IANA mappings. These include: | corresponding directly to IANA mappings. These include: | |||
| address-family | address-family | |||
| This type defines values for use in address family identifiers. | This type defines values for use in address family identifiers. | |||
| The values are based on the IANA Address Family Numbers Registry | The values are based on the IANA Address Family Numbers Registry | |||
| [IANA-ADDRESS-FAMILY-REGISTRY]. An example usage can be found in | [IANA-ADDRESS-FAMILY-REGISTRY]. An example usage can be found in | |||
| [I-D.ietf-idr-bgp-model]. | [I-D.ietf-idr-bgp-model]. | |||
| subsequent-address-family | subsequent-address-family | |||
| This type defines values for use in subsequent address family | This type defines values for use in subsequent address family | |||
| (SAFI) identifiers. The values are based on the IANA Subsequent | (SAFI) identifiers. The values are based on the IANA Subsequent | |||
| Address Family Identifiers (SAFI) Parameters Registry | Address Family Identifiers (SAFI) Parameters Registry | |||
| [IANA-SAFI-REGISTRY]. | [IANA-SAFI-REGISTRY]. | |||
| 3. IETF Routing Types YANG Module | 3. IETF Routing Types YANG Module | |||
| <CODE BEGINS> file "ietf-routing-types@2017-06-13.yang" | <CODE BEGINS> file "ietf-routing-types@2017-06-29.yang" | |||
| module ietf-routing-types { | module ietf-routing-types { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-routing-types"; | ||||
| prefix rt-types; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-routing-types"; | import ietf-yang-types { | |||
| prefix "rt-types"; | prefix yang; | |||
| } | ||||
| import ietf-inet-types { | ||||
| prefix inet; | ||||
| } | ||||
| import ietf-yang-types { | organization | |||
| prefix "yang"; | "IETF RTGWG - Routing Area Working Group"; | |||
| } | contact | |||
| "WG Web: <http://tools.ietf.org/wg/rtgwg/> | ||||
| WG List: <mailto:rtgwg@ietf.org> | ||||
| import ietf-inet-types { | Editor: Xufeng Lui | |||
| prefix "inet"; | <mailto:Xufeng_Lui@jabail.com> | |||
| } | Yingzhen Qu | |||
| <mailto:yingzhen.qu@huawei.com> | ||||
| Acee Lindem | ||||
| <mailto:acee@cisco.com> | ||||
| Christian Hopps | ||||
| <mailto:chopps@chopps.org> | ||||
| Lou Berger | ||||
| <mailto:lberger@labn.com>"; | ||||
| description | ||||
| "This module contains a collection of YANG data types | ||||
| considered generally useful for routing protocols. | ||||
| organization | Copyright (c) 2017 IETF Trust and the persons | |||
| "IETF RTGWG - Routing Area Working Group"; | identified as authors of the code. All rights reserved. | |||
| contact | Redistribution and use in source and binary forms, with or | |||
| "WG Web: <http://tools.ietf.org/wg/rtgwg/> | without modification, is permitted pursuant to, and subject | |||
| WG List: <mailto:rtgwg@ietf.org> | 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). | ||||
| Editor: Xufeng Lui | This version of this YANG module is part of RFC XXXX; see | |||
| <mailto:Xufeng_Lui@jabail.com> | the RFC itself for full legal notices."; | |||
| Yingzhen Qu | reference "RFC XXXX"; | |||
| <mailto:yingzhen.qu@huawei.com> | ||||
| Acee Lindem | ||||
| <mailto:acee@cisco.com> | ||||
| Christian Hopps | ||||
| <mailto:chopps@chopps.org> | ||||
| Lou Berger | ||||
| <mailto:lberger@labn.com>"; | ||||
| description | revision 2017-06-29 { | |||
| "This module contains a collection of YANG data types | description | |||
| considered generally useful for routing protocols. | "Initial revision."; | |||
| reference "RFC TBD: Routing YANG Data Types"; | ||||
| } | ||||
| /*** Identities related to MPLS/GMPLS ***/ | ||||
| Copyright (c) 2017 IETF Trust and the persons | identity mpls-label-special-purpose-value { | |||
| identified as authors of the code. All rights reserved. | description | |||
| "Base identity for deriving identities describing | ||||
| special-purpose Multiprotocol Label Switching (MPLS) label | ||||
| values."; | ||||
| reference | ||||
| "RFC7274: Allocating and Retiring Special-Purpose MPLS | ||||
| Labels."; | ||||
| } | ||||
| Redistribution and use in source and binary forms, with or | identity ipv4-explicit-null-label { | |||
| without modification, is permitted pursuant to, and subject | base mpls-label-special-purpose-value; | |||
| to the license terms contained in, the Simplified BSD License | description | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | "This identity represents the IPv4 Explicit NULL Label."; | |||
| Relating to IETF Documents | reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; | |||
| (http://trustee.ietf.org/license-info). | } | |||
| This version of this YANG module is part of RFC XXXX; see | identity router-alert-label { | |||
| the RFC itself for full legal notices."; | base mpls-label-special-purpose-value; | |||
| description | ||||
| "This identity represents the Router Alert Label."; | ||||
| reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; | ||||
| } | ||||
| reference "RFC XXXX"; | 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."; | ||||
| } | ||||
| revision 2017-06-13 { | identity implicit-null-label { | |||
| description | base mpls-label-special-purpose-value; | |||
| "Initial revision."; | description | |||
| reference | "This identity represents the Implicit NULL Label."; | |||
| "RFC TBD: Routing YANG Data Types"; | reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; | |||
| } | } | |||
| /*** Identities related to MPLS/GMPLS ***/ | identity entropy-label-indicator { | |||
| identity mpls-label-special-purpose-value { | base mpls-label-special-purpose-value; | |||
| description | description | |||
| "Base identity for deriving identities describing | "This identity represents the Entropy Label Indicator."; | |||
| special-purpose Multiprotocol Label Switching (MPLS) label | reference | |||
| values."; | "RFC6790: The Use of Entropy Labels in MPLS Forwarding. | |||
| reference | Sections 3 and 10.1."; | |||
| "RFC7274: Allocating and Retiring Special-Purpose MPLS | } | |||
| Labels."; | 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 ipv4-explicit-null-label { | identity oam-alert-label { | |||
| base mpls-label-special-purpose-value; | base mpls-label-special-purpose-value; | |||
| description | description | |||
| "This identity represents the IPv4 Explicit NULL Label."; | "This identity represents the OAM Alert Label."; | |||
| reference | reference | |||
| "RFC3032: MPLS Label Stack Encoding. Section 2.1."; | "RFC3429: Assignment of the 'OAM Alert Label' for | |||
| } | Multiprotocol Label Switching Architecture (MPLS) | |||
| Operation and Maintenance (OAM) Functions. | ||||
| Sections 3 and 6."; | ||||
| } | ||||
| identity router-alert-label { | identity extension-label { | |||
| base mpls-label-special-purpose-value; | base mpls-label-special-purpose-value; | |||
| description | description | |||
| "This identity represents the Router Alert Label."; | "This identity represents the Extension Label."; | |||
| reference | reference | |||
| "RFC3032: MPLS Label Stack Encoding. Section 2.1."; | "RFC7274: Allocating and Retiring Special-Purpose MPLS | |||
| } | Labels. Sections 3.1 and 5."; | |||
| 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 { | /*** Collection of types related to routing ***/ | |||
| 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 { | typedef router-id { | |||
| base mpls-label-special-purpose-value; | type yang:dotted-quad; | |||
| description | description | |||
| "This identity represents the Entropy Label Indicator."; | "A 32-bit number in the dotted quad format assigned to each | |||
| reference | router. This number uniquely identifies the router within | |||
| "RFC6790: The Use of Entropy Labels in MPLS Forwarding. | an Autonomous System."; | |||
| Sections 3 and 10.1."; | } | |||
| } | ||||
| identity gal-label { | /*** Collection of types related to VPN ***/ | |||
| 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 { | typedef route-target { | |||
| base mpls-label-special-purpose-value; | type string { | |||
| description | 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|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d))|(2:(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):(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d))"; | |||
| "This identity represents the OAM Alert Label."; | } | |||
| reference | description | |||
| "RFC3429: Assignment of the 'OAM Alert Label' for Multiprotocol | "A route target is an 8-octet BGP extended community | |||
| Label Switching Architecture (MPLS) Operation and Maintenance | initially identifying a set of sites in a BGP | |||
| (OAM) Functions. | VPN (RFC 4364). However, it has since taken on a more | |||
| Sections 3 and 6."; | general role in BGP route filtering. | |||
| } | A route target consists of three fields: | |||
| a 2-octet type field, an administrator field, | ||||
| and an assigned number field. | ||||
| According to the data formats for type 0, 1, and 2 defined | ||||
| in RFC4360 and RFC5668, the encoding pattern is defined as: | ||||
| identity extension-label { | 0:2-octet-asn:4-octet-number | |||
| base mpls-label-special-purpose-value; | 1:4-octet-ipv4addr:2-octet-number | |||
| description | 2:4-octet-asn:2-octet-number. | |||
| "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 ***/ | Some valid examples are: 0:100:100, 1:1.1.1.1:100, and | |||
| typedef router-id { | 2:1234567890:203."; | |||
| type yang:dotted-quad; | reference | |||
| description | "RFC4360: BGP Extended Communities Attribute. | |||
| "A 32-bit number in the dotted quad format assigned to each | RFC5668: 4-Octet AS Specific BGP Extended Community."; | |||
| router. This number uniquely identifies the router within an | } | |||
| Autonomous System."; | ||||
| } | ||||
| /*** Collection of types related to VPN ***/ | typedef ipv6-route-target { | |||
| typedef route-target { | type string { | |||
| type string { | pattern "((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9]))):(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d)"; | |||
| pattern | pattern "((([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)):(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d)"; | |||
| '(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|' | description | |||
| + '4294967[01]\d{2}|429496[0-6]\d{3}|42949[0-5]\d{4}|' | "An IPv6 route target is a 20-octet BGP IPv6 address | |||
| + '4294[0-8]\d{5}|429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|' | specific extended community serving the same function | |||
| + '[0-3]?\d{0,8}\d))|' | as a standard 8-octet route target only allowing for | |||
| + '(1:(((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|' | an IPv6 address as the global adminstrator. The format | |||
| + '1\d{2}|2[0-4]\d|25[0-5])):(6553[0-5]|655[0-2]\d|' | is <ipv6-address:2-octet-number>. | |||
| + '65[0-4]\d{2}|6[0-4]\d{3}|[0-5]?\d{0,3}\d))|' | ||||
| + '(2:(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):' | ||||
| + '(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' | ||||
| + '[0-5]?\d{0,3}\d))'; | ||||
| } | ||||
| description | ||||
| "A route target is an 8-octet BGP extended community | ||||
| initially identifying a set of sites in a BGP | ||||
| VPN (RFC 4364). However, it has since taken on a more | ||||
| general role in BGP route filtering. | ||||
| A route target consists of three fields: | ||||
| a 2-octet type field, an administrator field, | ||||
| and an assigned number field. | ||||
| According to the data formats for type 0, 1, and 2 defined in | ||||
| RFC4360 and RFC5668, the encoding pattern is defined as: | ||||
| 0:2-octet-asn:4-octet-number | Some valid examples are: 2001:DB8::1:6544 and | |||
| 1:4-octet-ipv4addr:2-octet-number | 2001:DB8::5eb1:791:6b37:17958"; | |||
| 2:4-octet-asn:2-octet-number. | reference | |||
| "RFC5701: IPv6 Address Specific BGP Extended Community | ||||
| Attribute"; | ||||
| } | ||||
| Some valid examples are: 0:100:100, 1:1.1.1.1:100, and | typedef route-target-type { | |||
| 2:1234567890:203."; | type enumeration { | |||
| reference | enum "import" { | |||
| "RFC4360: BGP Extended Communities Attribute. | value 0; | |||
| RFC5668: 4-Octet AS Specific BGP Extended Community."; | description | |||
| } | "The route target applies to route import."; | |||
| } | ||||
| enum "export" { | ||||
| value 1; | ||||
| description | ||||
| "The route target applies to route export."; | ||||
| } | ||||
| enum "both" { | ||||
| value 2; | ||||
| description | ||||
| "The route target applies to both route import and | ||||
| route export."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Indicates the role a route target takes | ||||
| in route filtering."; | ||||
| reference "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; | ||||
| } | ||||
| typedef route-target-type { | typedef route-distinguisher { | |||
| type enumeration { | type string { | |||
| enum "import" { | 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|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d))|(2:(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):(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d))|(([3-9a-fA-F]|[1-9a-fA-F][\\da-fA-F]{1,3}):[\\da-fA-F]{1,12})"; | |||
| value "0"; | } | |||
| description | description | |||
| "The route target applies to route import."; | "A route distinguisher is an 8-octet value used to distinguish | |||
| } | routes from different BGP VPNs (RFC 4364). A route | |||
| enum "export" { | distinguisher consists of three fields: A 2-octet type field, | |||
| value "1"; | an administrator field, and an assigned number field. | |||
| description | According to the data formats for type 0, 1, and 2 defined in | |||
| "The route target applies to route export."; | RFC4364, the encoding pattern is defined as: | |||
| } | ||||
| enum "both" { | ||||
| value "2"; | ||||
| description | ||||
| "The route target applies to both route import and | ||||
| route export."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Indicates the role a route target takes | ||||
| in route filtering."; | ||||
| reference | ||||
| "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; | ||||
| } | ||||
| typedef route-distinguisher { | 0:2-octet-asn:4-octet-number | |||
| type string { | 1:4-octet-ipv4addr:2-octet-number | |||
| pattern | 2:4-octet-asn:2-octet-number. | |||
| '(0:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' | 2-octet-other-hex-number:6-octet-hex-number | |||
| + '[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|' | ||||
| + '65[0-4]\d{2}|6[0-4]\d{3}|[0-5]?\d{0,3}\d))|' | ||||
| + '(2:(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):' | ||||
| + '(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' | ||||
| + '[0-5]?\d{0,3}\d))|' | ||||
| + '(([3-9a-fA-F]|[1-9a-fA-F][\da-fA-F]{1,3}):' | ||||
| + '[\da-fA-F]{1,12})'; | ||||
| } | ||||
| description | ||||
| "A route distinguisher is an 8-octet value used to distinguish | ||||
| routes from different BGP VPNs (RFC 4364). A route | ||||
| distinguisher consists of three fields: A 2-octet type field, | ||||
| an administrator field, and an assigned number field. | ||||
| According to the data formats for type 0, 1, and 2 defined in | ||||
| RFC4364, the encoding pattern is defined as: | ||||
| 0:2-octet-asn:4-octet-number | Some valid examples are: 0:100:100, 1:1.1.1.1:100, and | |||
| 1:4-octet-ipv4addr:2-octet-number | 2:1234567890:203."; | |||
| 2:4-octet-asn:2-octet-number. | reference "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; | |||
| 2-octet-other-hex-number:6-octet-hex-number | } | |||
| Some valid examples are: 0:100:100, 1:1.1.1.1:100, and | typedef route-origin { | |||
| 2:1234567890:203."; | type string { | |||
| reference | 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|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d))|(2:(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):(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d))|(([3-9a-fA-F]|[1-9a-fA-F][\\da-fA-F]{1,3}):[\\da-fA-F]{1,12})"; | |||
| "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; | } | |||
| } | description | |||
| "A route origin is an 8-octet BGP extended community | ||||
| identifying the set of sites where the BGP route | ||||
| originated(RFC 4364). A route origin consists of three | ||||
| fields: A 2-octet type field, an administrator field, | ||||
| and an assigned number field. According to the data | ||||
| formats for type 0, 1, and 2 defined in RFC4364, | ||||
| the encoding pattern is defined as: | ||||
| /*** Collection of types common to multicast ***/ | 0:2-octet-asn:4-octet-number | |||
| typedef ipv4-multicast-group-address { | 1:4-octet-ipv4addr:2-octet-number | |||
| type inet:ipv4-address { | 2:4-octet-asn:2-octet-number. | |||
| pattern '(2((2[4-9])|(3[0-9]))\.).*'; | 2-octet-other-hex-number:6-octet-hex-number | |||
| } | ||||
| 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 { | Some valid examples are: 0:100:100, 1:1.1.1.1:100, and | |||
| type inet:ipv6-address { | 2:1234567890:203."; | |||
| pattern | reference | |||
| '(([fF]{2}[0-9a-fA-F]{2}):).*'; | "RFC4360: BGP Extended Communities Attribute. | |||
| } | RFC4369: BGP/MPLS IP Virtual Private Networks (VPNs) | |||
| description | RFC5668: 4-Octet AS Specific BGP Extended Community."; | |||
| "This type represents an IPv6 multicast group address, | } | |||
| which is in the range of FF00::/8."; | ||||
| reference | ||||
| "RFC4291: IP Version 6 Addressing Architecture. Sec 2.7. | ||||
| RFC7346: IPv6 Multicast Address Scopes."; | ||||
| } | ||||
| typedef ip-multicast-group-address { | ||||
| type union { | ||||
| type ipv4-multicast-group-address; | ||||
| type ipv6-multicast-group-address; | ||||
| } | ||||
| description | ||||
| "This type represents a version-neutral IP multicast group | ||||
| address. The format of the textual representation implies | ||||
| the IP version."; | ||||
| } | ||||
| typedef ipv4-multicast-source-address { | typedef ipv6-route-origin { | |||
| type union { | type string { | |||
| type enumeration { | pattern "((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9]))):(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d)"; | |||
| enum '*' { | pattern "((([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)):(6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|[0-5]?\\d{0,3}\\d)"; | |||
| description | } | |||
| "Any source address."; | description | |||
| } | "An IPv6 route origin is a 20-octet BGP IPv6 address | |||
| } | specific extended community serving the same function | |||
| type inet:ipv4-address; | as a standard 8-octet route only only allowing for | |||
| } | an IPv6 address as the global adminstrator. The format | |||
| description | is <ipv6-address:2-octet-number>. | |||
| "Multicast source IPv4 address type."; | ||||
| } | ||||
| typedef ipv6-multicast-source-address { | Some valid examples are: 2001:DB8::1:6544 and | |||
| type union { | 2001:DB8::5eb1:791:6b37:17958"; | |||
| type enumeration { | reference | |||
| enum '*' { | "RFC5701: IPv6 Address Specific BGP Extended Community | |||
| description | Attribute"; | |||
| "Any source address."; | } | |||
| } | ||||
| } | ||||
| type inet:ipv6-address; | ||||
| } | ||||
| description | ||||
| "Multicast source IPv6 address type."; | ||||
| } | ||||
| /*** Collection of types common to protocols ***/ | /*** Collection of types common to multicast ***/ | |||
| 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), | ||||
| where Exponent uses 8 bits, and Fraction uses 23 bits. | ||||
| The units are octets per second. | ||||
| The encoding format is the external hexadecimal-significant | ||||
| character sequences specified in IEEE 754 and C99. The | ||||
| format is restricted to be normalized, non-negative, and | ||||
| non-fraction: 0x1.hhhhhhp{+}d or 0X1.HHHHHHP{+}D | ||||
| where 'h' and 'H' are hexadecimal digits, 'd' and 'D' are | ||||
| integers in the range of [0..127]. | ||||
| When six hexadecimal digits are used for 'hhhhhh' or 'HHHHHH', | ||||
| the least significant digit must be an even number. | ||||
| 'x' and 'X' indicate hexadecimal; 'p' and 'P' indicate power | ||||
| of two. Some examples are: 0x0p0, 0x1p10, and | ||||
| 0x1.abcde2p+20"; | ||||
| reference | ||||
| "IEEE Std 754-2008: IEEE Standard for Floating-Point | ||||
| Arithmetic."; | ||||
| } | ||||
| typedef link-access-type { | typedef ipv4-multicast-group-address { | |||
| type enumeration { | type inet:ipv4-address { | |||
| enum "broadcast" { | pattern "(2((2[4-9])|(3[0-9]))\\.).*"; | |||
| description | } | |||
| "Specify broadcast multi-access network."; | description | |||
| } | "This type represents an IPv4 multicast group address, | |||
| enum "non-broadcast-multiaccess" { | which is in the range from 224.0.0.0 to 239.255.255.255."; | |||
| description | reference "RFC1112: Host Extensions for IP Multicasting."; | |||
| "Specify Non-Broadcast Multi-Access (NBMA) network."; | } | |||
| } | ||||
| enum "point-to-multipoint" { | ||||
| description | ||||
| "Specify point-to-multipoint network."; | ||||
| } | ||||
| enum "point-to-point" { | ||||
| description | ||||
| "Specify point-to-point network."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Link access type."; | ||||
| } | ||||
| typedef timer-multiplier { | typedef ipv6-multicast-group-address { | |||
| type uint8; | type inet:ipv6-address { | |||
| description | pattern "(([fF]{2}[0-9a-fA-F]{2}):).*"; | |||
| "The number of timer value intervals that should be | } | |||
| interpreted as a failure."; | description | |||
| "This type represents an IPv6 multicast group address, | ||||
| which is in the range of FF00::/8."; | ||||
| reference | ||||
| "RFC4291: IP Version 6 Addressing Architecture. Sec 2.7. | ||||
| RFC7346: IPv6 Multicast Address Scopes."; | ||||
| } | ||||
| } | typedef ip-multicast-group-address { | |||
| type union { | ||||
| type ipv4-multicast-group-address; | ||||
| type ipv6-multicast-group-address; | ||||
| } | ||||
| description | ||||
| "This type represents a version-neutral IP multicast group | ||||
| address. The format of the textual representation implies | ||||
| the IP version."; | ||||
| } | ||||
| typedef timer-value-seconds16 { | typedef ipv4-multicast-source-address { | |||
| type union { | type union { | |||
| type uint16 { | type enumeration { | |||
| range "1..65535"; | enum "*" { | |||
| } | description | |||
| type enumeration { | "Any source address."; | |||
| enum "infinity" { | } | |||
| description "The timer is set to infinity."; | } | |||
| } | type inet:ipv4-address; | |||
| enum "not-set" { | } | |||
| description "The timer is not set."; | description | |||
| } | "Multicast source IPv4 address type."; | |||
| } | } | |||
| } | ||||
| units seconds; | ||||
| description "Timer value type, in seconds (16-bit range)."; | ||||
| } | ||||
| typedef timer-value-seconds32 { | typedef ipv6-multicast-source-address { | |||
| type union { | type union { | |||
| type uint32 { | type enumeration { | |||
| range "1..4294967295"; | enum "*" { | |||
| } | description | |||
| type enumeration { | "Any source address."; | |||
| enum "infinity" { | } | |||
| description "The timer is set to infinity."; | } | |||
| } | type inet:ipv6-address; | |||
| enum "not-set" { | } | |||
| description "The timer is not set."; | description | |||
| } | "Multicast source IPv6 address type."; | |||
| } | ||||
| } | ||||
| units seconds; | ||||
| description "Timer value type, in seconds (32-bit range)."; | ||||
| } | ||||
| typedef timer-value-milliseconds { | } | |||
| type union { | ||||
| type uint32{ | ||||
| range "1..4294967295"; | ||||
| } | ||||
| type enumeration { | ||||
| enum "infinity" { | ||||
| description "The timer is set to infinity."; | ||||
| } | ||||
| enum "not-set" { | ||||
| description "The timer is not set."; | ||||
| } | ||||
| } | ||||
| } | ||||
| units milliseconds; | ||||
| description "Timer value type, in milliseconds."; | ||||
| } | ||||
| typedef percentage { | /*** Collection of types common to protocols ***/ | |||
| type uint8 { | ||||
| range "0..100"; | ||||
| } | ||||
| description | ||||
| "Integer indicating a percentage value"; | ||||
| } | ||||
| typedef timeticks64 { | typedef bandwidth-ieee-float32 { | |||
| type uint64; | 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), | ||||
| where Exponent uses 8 bits, and Fraction uses 23 bits. | ||||
| The units are octets per second. | ||||
| The encoding format is the external hexadecimal-significant | ||||
| character sequences specified in IEEE 754 and C99. The | ||||
| format is restricted to be normalized, non-negative, and | ||||
| non-fraction: 0x1.hhhhhhp{+}d or 0X1.HHHHHHP{+}D | ||||
| where 'h' and 'H' are hexadecimal digits, 'd' and 'D' are | ||||
| integers in the range of [0..127]. | ||||
| When six hexadecimal digits are used for 'hhhhhh' or 'HHHHHH', | ||||
| the least significant digit must be an even number. | ||||
| 'x' and 'X' indicate hexadecimal; 'p' and 'P' indicate power | ||||
| of two. Some examples are: 0x0p0, 0x1p10, and | ||||
| 0x1.abcde2p+20"; | ||||
| reference | ||||
| "IEEE Std 754-2008: IEEE Standard for Floating-Point | ||||
| Arithmetic."; | ||||
| } | ||||
| typedef link-access-type { | ||||
| type enumeration { | ||||
| enum "broadcast" { | ||||
| description | description | |||
| "This type is based on the timeticks type defined in | "Specify broadcast multi-access network."; | |||
| RFC 6991, but with 64-bit width. It represents the time, | } | |||
| modulo 2^64, in hundredths of a second between two epochs."; | enum "non-broadcast-multiaccess" { | |||
| reference | description | |||
| "RFC 6991 - Common YANG Data Types"; | "Specify Non-Broadcast Multi-Access (NBMA) network."; | |||
| } | } | |||
| enum "point-to-multipoint" { | ||||
| description | ||||
| "Specify point-to-multipoint network."; | ||||
| } | ||||
| enum "point-to-point" { | ||||
| description | ||||
| "Specify point-to-point network."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Link access type."; | ||||
| } | ||||
| /*** Collection of types related to MPLS/GMPLS ***/ | typedef timer-multiplier { | |||
| typedef generalized-label { | type uint8; | |||
| type binary; | description | |||
| description | "The number of timer value intervals that should be | |||
| "Generalized label. Nodes sending and receiving the | interpreted as a failure."; | |||
| Generalized Label are aware of the link-specific | } | |||
| label context and type."; | ||||
| reference "RFC3471: Section 3.2"; | ||||
| } | ||||
| typedef mpls-label-special-purpose { | typedef timer-value-seconds16 { | |||
| type identityref { | type union { | |||
| base mpls-label-special-purpose-value; | type uint16 { | |||
| } | range "1..65535"; | |||
| description | } | |||
| "This type represents the special-purpose Multiprotocol Label | type enumeration { | |||
| Switching (MPLS) label values."; | enum "infinity" { | |||
| reference | description | |||
| "RFC3032: MPLS Label Stack Encoding. | "The timer is set to infinity."; | |||
| RFC7274: Allocating and Retiring Special-Purpose MPLS | } | |||
| Labels."; | enum "not-set" { | |||
| } | description | |||
| typedef mpls-label-general-use { | "The timer is not set."; | |||
| type uint32 { | } | |||
| range "16..1048575"; | } | |||
| } | } | |||
| description | units "seconds"; | |||
| "The 20-bit label values in an MPLS label stack entry, | description | |||
| specified in RFC3032. This label value does not include | "Timer value type, in seconds (16-bit range)."; | |||
| the encodings of Traffic Class and TTL (time to live). | } | |||
| The label range specified by this type is for general use, | ||||
| with special-purpose MPLS label values excluded."; | ||||
| reference | ||||
| "RFC3032: MPLS Label Stack Encoding."; | ||||
| } | ||||
| typedef mpls-label { | typedef timer-value-seconds32 { | |||
| type union { | type union { | |||
| type mpls-label-special-purpose; | type uint32 { | |||
| type mpls-label-general-use; | range "1..4294967295"; | |||
| } | } | |||
| description | type enumeration { | |||
| "The 20-bit label values in an MPLS label stack entry, | enum "infinity" { | |||
| specified in RFC3032. This label value does not include | description | |||
| the encodings of Traffic Class and TTL (time to live)."; | "The timer is set to infinity."; | |||
| reference | } | |||
| "RFC3032: MPLS Label Stack Encoding."; | enum "not-set" { | |||
| } | description | |||
| "The timer is not set."; | ||||
| } | ||||
| } | ||||
| } | ||||
| units "seconds"; | ||||
| description | ||||
| "Timer value type, in seconds (32-bit range)."; | ||||
| } | ||||
| /*** Groupings **/ | typedef timer-value-milliseconds { | |||
| grouping mpls-label-stack { | type union { | |||
| description | type uint32 { | |||
| "A grouping that specifies an MPLS label stack."; | range "1..4294967295"; | |||
| container mpls-label-stack { | } | |||
| description | type enumeration { | |||
| "Container for a list of MPLS label stack entries."; | enum "infinity" { | |||
| list entry { | description | |||
| key "id"; | "The timer is set to infinity."; | |||
| description | } | |||
| "List of MPLS label stack entries."; | enum "not-set" { | |||
| leaf id { | description | |||
| type uint8; | "The timer is not set."; | |||
| description | } | |||
| "Identifies the sequence of an MPLS label stack entries. | } | |||
| An entry with smaller ID value is precedes an entry in | } | |||
| the label stack with a smaller ID."; | units "milliseconds"; | |||
| } | description | |||
| leaf label { | "Timer value type, in milliseconds."; | |||
| type rt-types:mpls-label; | } | |||
| description | ||||
| "Label value."; | ||||
| } | ||||
| leaf ttl { | ||||
| type uint8; | ||||
| description | ||||
| "Time to Live (TTL)."; | ||||
| reference | ||||
| "RFC3032: MPLS Label Stack Encoding."; | ||||
| } | ||||
| leaf traffic-class { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "Traffic Class (TC)."; | ||||
| reference | ||||
| "RFC5462: Multiprotocol Label Switching (MPLS) Label | ||||
| Stack Entry: 'EXP' Field Renamed to 'Traffic Class' | ||||
| Field."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping vpn-route-targets { | typedef percentage { | |||
| description | type uint8 { | |||
| "A grouping that specifies Route Target import-export rules | range "0..100"; | |||
| used in the BGP enabled Virtual Private Networks (VPNs)."; | } | |||
| reference | description | |||
| "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs). | "Integer indicating a percentage value"; | |||
| RFC4664: Framework for Layer 2 Virtual Private Networks | } | |||
| (L2VPNs)"; | ||||
| list vpn-target { | ||||
| key route-target; | ||||
| description | ||||
| "List of Route Targets."; | ||||
| leaf route-target { | ||||
| type rt-types:route-target; | ||||
| description | ||||
| "Route Target value"; | ||||
| } | ||||
| leaf route-target-type { | ||||
| type rt-types:route-target-type; | ||||
| mandatory true; | ||||
| description | ||||
| "Import/export type of the Route Target."; | ||||
| } | ||||
| } | ||||
| } | typedef timeticks64 { | |||
| } | type uint64; | |||
| <CODE ENDS> | 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"; | ||||
| } | ||||
| typedef uint24 { | ||||
| type uint32 { | ||||
| range "0 .. 16777215"; | ||||
| } | ||||
| description | ||||
| "24-bit unsigned integer"; | ||||
| } | ||||
| /*** 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"; | ||||
| } | ||||
| 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 | ||||
| Labels."; | ||||
| } | ||||
| typedef mpls-label-general-use { | ||||
| type uint32 { | ||||
| range "16..1048575"; | ||||
| } | ||||
| 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). | ||||
| The label range specified by this type is for general use, | ||||
| with special-purpose MPLS label values excluded."; | ||||
| reference "RFC3032: MPLS Label Stack Encoding."; | ||||
| } | ||||
| typedef mpls-label { | ||||
| type union { | ||||
| type mpls-label-special-purpose; | ||||
| 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 **/ | ||||
| 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."; | ||||
| leaf id { | ||||
| type uint8; | ||||
| description | ||||
| "Identifies the sequence of an MPLS label stack entries. | ||||
| An entry with smaller ID value is precedes an entry in | ||||
| the label stack with a smaller ID."; | ||||
| } | ||||
| leaf label { | ||||
| type rt-types:mpls-label; | ||||
| description | ||||
| "Label value."; | ||||
| } | ||||
| leaf ttl { | ||||
| type uint8; | ||||
| description | ||||
| "Time to Live (TTL)."; | ||||
| reference "RFC3032: MPLS Label Stack Encoding."; | ||||
| } | ||||
| leaf traffic-class { | ||||
| type uint8 { | ||||
| range "0..7"; | ||||
| } | ||||
| description | ||||
| "Traffic Class (TC)."; | ||||
| reference | ||||
| "RFC5462: Multiprotocol Label Switching (MPLS) Label | ||||
| Stack Entry: 'EXP' Field Renamed to 'Traffic Class' | ||||
| Field."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping vpn-route-targets { | ||||
| description | ||||
| "A grouping that specifies Route Target import-export rules | ||||
| used in the BGP enabled Virtual Private Networks (VPNs)."; | ||||
| reference | ||||
| "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs). | ||||
| RFC4664: Framework for Layer 2 Virtual Private Networks | ||||
| (L2VPNs)"; | ||||
| list vpn-target { | ||||
| key "route-target"; | ||||
| description | ||||
| "List of Route Targets."; | ||||
| leaf route-target { | ||||
| type rt-types:route-target; | ||||
| description | ||||
| "Route Target value"; | ||||
| } | ||||
| leaf route-target-type { | ||||
| type rt-types:route-target-type; | ||||
| mandatory true; | ||||
| description | ||||
| "Import/export type of the Route Target."; | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping geo-coordinates { | ||||
| description | ||||
| "Standard grouping for Geo Coordinates | ||||
| in routing information"; | ||||
| container geo-coordinates { | ||||
| description | ||||
| "Container for Geo Coordinates"; | ||||
| leaf flags { | ||||
| type bits { | ||||
| bit U { | ||||
| description | ||||
| "If the U-bit is set, it indicates that | ||||
| the location-uncertainty is specified, If the | ||||
| U-bit is clear, it indicates the | ||||
| location-uncertainty is unspecified."; | ||||
| } | ||||
| bit N { | ||||
| description | ||||
| "If the N-bit is set, it indicates the | ||||
| latitude is north relative to the Equator. If | ||||
| the N-bit is clear, it indicates the latitude | ||||
| is south of the Equator."; | ||||
| } | ||||
| bit E { | ||||
| description | ||||
| "If the E-bit is set, it indicates the | ||||
| longitute is east of the Prime Meridian. If | ||||
| the E-bit is clear, it indicates the longitude | ||||
| is west of the Prime Meridian."; | ||||
| } | ||||
| bit A { | ||||
| description | ||||
| "If the A-bit is set, it indicates the | ||||
| altitude is specified. If the A-bit is clear, | ||||
| it indicates the altitude is unspecified."; | ||||
| } | ||||
| bit M { | ||||
| description | ||||
| "If the M-bit is set, it indicates the | ||||
| altitude is specified in meters. If the M-bit | ||||
| is clear, it indicates the altitude is | ||||
| specified in centimeters."; | ||||
| } | ||||
| bit R { | ||||
| description | ||||
| "If the R-bit is set, it indicates the | ||||
| radius is specified and the encoding is for a | ||||
| circular area. If the R-bit is clear, it | ||||
| indicates the radius is unspecified and the | ||||
| encoding is for a single point."; | ||||
| } | ||||
| bit K { | ||||
| description | ||||
| "If the R-bit is set, it indicates the | ||||
| radius is specified in kilometers. If the | ||||
| R-bit is clear, it indicates the radius is | ||||
| specified in meters."; | ||||
| } | ||||
| } | ||||
| description | ||||
| "Bits defining granularity or semantics | ||||
| of Geo Coordinates fields."; | ||||
| } | ||||
| leaf location-uncertainty { | ||||
| type uint16; | ||||
| description | ||||
| "Number of centimeters of uncertainty for | ||||
| the location."; | ||||
| } | ||||
| leaf latitude-degrees { | ||||
| type uint8 { | ||||
| range "0 .. 90"; | ||||
| } | ||||
| description | ||||
| "Latitude degrees north or south of the | ||||
| Equator (northern or southern hemisphere, | ||||
| respectively)."; | ||||
| } | ||||
| leaf latitude-milliseconds { | ||||
| type uint24 { | ||||
| range "0 .. 3599999"; | ||||
| } | ||||
| description | ||||
| "Latitude millisecond granularity (less | ||||
| than 60 minutes or a single degree)."; | ||||
| } | ||||
| leaf longitude-degrees { | ||||
| type uint8 { | ||||
| range "0 .. 180"; | ||||
| } | ||||
| description | ||||
| "Longitude degrees east or westof the | ||||
| Prime Meridian (eastern or western hemisphere, | ||||
| respectively)."; | ||||
| } | ||||
| leaf longitude-milliseconds { | ||||
| type uint24 { | ||||
| range "0 .. 3599999"; | ||||
| } | ||||
| description | ||||
| "Longitude millisecond granularity (less | ||||
| than 60 minutes or a single degree)."; | ||||
| } | ||||
| leaf altitude { | ||||
| type int32; | ||||
| description | ||||
| "Height relative to sea level in | ||||
| centimeters or meters. A negative height | ||||
| indicates that the location is below sea | ||||
| level."; | ||||
| } | ||||
| leaf radius { | ||||
| type uint16; | ||||
| description | ||||
| "Radius of a circle centered at the | ||||
| specified coordinates. The radius is specified | ||||
| in meters unless the K-bit is specified | ||||
| indicating specification in kilometers. If the | ||||
| radius is specified, the geo-coordinates specify | ||||
| the entire area of the circle defined by the | ||||
| radius and center point."; | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | ||||
| 4. IANA Routing Types YANG Module | 4. IANA Routing Types YANG Module | |||
| <CODE BEGINS> file "iana-routing-types@2017-06-13.yang" | <CODE BEGINS> file "iana-routing-types@2017-06-29.yang" | |||
| module iana-routing-types { | module iana-routing-types { | |||
| namespace "urn:ietf:params:xml:ns:yang:iana-routing-types"; | namespace "urn:ietf:params:xml:ns:yang:iana-routing-types"; | |||
| prefix "iana-rt-types"; | prefix iana-rt-types; | |||
| organization "IANA"; | ||||
| organization | ||||
| "IANA"; | ||||
| contact | contact | |||
| " Internet Assigned Numbers Authority | " Internet Assigned Numbers Authority | |||
| Postal: ICANN | ||||
| 4676 Admiralty Way, Suite 330 | ||||
| Marina del Rey, CA 90292 | ||||
| Tel: +1 310 823 9358 | Postal: ICANN | |||
| <mailto:iana@iana.org>"; | 4676 Admiralty Way, Suite 330 | |||
| Marina del Rey, CA 90292 | ||||
| Tel: +1 310 823 9358 | ||||
| <mailto:iana@iana.org>"; | ||||
| description | description | |||
| "This module contains a collection of YANG data types | "This module contains a collection of YANG data types | |||
| considered defined by IANA and used for routing | considered defined by IANA and used for routing | |||
| protocols. | protocols. | |||
| Copyright (c) 2017 IETF Trust and the persons | Copyright (c) 2017 IETF Trust and the persons | |||
| identified as authors of the code. All rights reserved. | identified as 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 | without modification, is permitted pursuant to, and subject | |||
| skipping to change at page 18, line 46 ¶ | skipping to change at page 22, line 49 ¶ | |||
| 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 | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
| set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| reference "RFC XXXX"; | reference "RFC XXXX"; | |||
| revision 2017-06-13 { | revision 2017-06-29 { | |||
| description | description | |||
| "Initial revision."; | "Initial revision."; | |||
| reference | reference "RFC TBD: IANA Routing YANG Data Types"; | |||
| "RFC TBD: IANA Routing YANG Data Types"; | ||||
| } | } | |||
| /*** Collection of IANA types related to routing ***/ | /*** Collection of IANA types related to routing ***/ | |||
| /*** IANA address family Identities ***/ | /*** IANA address family Identities ***/ | |||
| identity address-family { | identity address-family { | |||
| description | description | |||
| "Base identity from which identities describing address | "Base identity from which identities describing address | |||
| families are derived."; | families are derived."; | |||
| } | } | |||
| identity ipv4 { | identity ipv4 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "IPv4 Address Family - IANA Registry Assigned Number: 1"; | "IPv4 Address Family - IANA Registry Assigned Number: 1"; | |||
| } | } | |||
| identity ipv6 { | identity ipv6 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "IPv6 Address Family - IANA Registry Assigned Number: 2"; | "IPv6 Address Family - IANA Registry Assigned Number: 2"; | |||
| } | } | |||
| identity nsap { | identity nsap { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "OSI Network Service Access Point (NSAP) Address Family - | "OSI Network Service Access Point (NSAP) Address Family - | |||
| IANA Registry Assigned Number: 3"; | IANA Registry Assigned Number: 3"; | |||
| } | } | |||
| identity hdlc { | identity hdlc { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "High-Level Data Link Control (HDLC) Address Family - | "High-Level Data Link Control (HDLC) Address Family - | |||
| IANA Registry Assigned Number: 4"; | IANA Registry Assigned Number: 4"; | |||
| } | } | |||
| identity bbn1822 { | identity bbn1822 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Bolt, Beranek, and Newman Report 1822 (BBN 1822) | "Bolt, Beranek, and Newman Report 1822 (BBN 1822) | |||
| Address Family - IANA Registry Assigned Number: 5"; | Address Family - IANA Registry Assigned Number: 5"; | |||
| } | } | |||
| identity ieee802 { | identity ieee802 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "IEEE 802 Committee Address Family (aka, MAC address) - | "IEEE 802 Committee Address Family (aka, MAC address) - | |||
| IANA Registry Assigned Number: 6"; | IANA Registry Assigned Number: 6"; | |||
| } | } | |||
| identity e163 { | identity e163 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "ITU-T E.163 Address Family - | "ITU-T E.163 Address Family - | |||
| IANA Registry Assigned Number: 7"; | IANA Registry Assigned Number: 7"; | |||
| } | } | |||
| identity e164 { | identity e164 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "ITU-T E.164 (SMDS, Frame Relay, ATM) Address Family - | "ITU-T E.164 (SMDS, Frame Relay, ATM) Address Family - | |||
| IANA Registry Assigned Number: 8"; | IANA Registry Assigned Number: 8"; | |||
| } | } | |||
| identity f69 { | identity f69 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "ITU-T F.69 (Telex) Address Family - | "ITU-T F.69 (Telex) Address Family - | |||
| IANA Registry Assigned Number: 9"; | IANA Registry Assigned Number: 9"; | |||
| } | } | |||
| identity x121 { | identity x121 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "ITU-T X.121 (X.25, Frame Relay) Address Family - | "ITU-T X.121 (X.25, Frame Relay) Address Family - | |||
| IANA Registry Assigned Number: 10"; | IANA Registry Assigned Number: 10"; | |||
| } | } | |||
| identity ipx { | identity ipx { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Novell Internetwork Packet Exchange (IPX) | "Novell Internetwork Packet Exchange (IPX) | |||
| Address Family - IANA Registry Assigned Number: 11"; | Address Family - IANA Registry Assigned Number: 11"; | |||
| } | } | |||
| identity appletalk { | identity appletalk { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Apple AppleTalk Address Family - | "Apple AppleTalk Address Family - | |||
| IANA Registry Assigned Number: 12"; | IANA Registry Assigned Number: 12"; | |||
| } | } | |||
| identity decnet-iv { | identity decnet-iv { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Digital Equipment DECnet Phase IV Address Family - | "Digital Equipment DECnet Phase IV Address Family - | |||
| IANA Registry Assigned Number: 13"; | IANA Registry Assigned Number: 13"; | |||
| } | } | |||
| identity vines { | identity vines { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Banyan Vines Address Family - | "Banyan Vines Address Family - | |||
| IANA Registry Assigned Number: 14"; | IANA Registry Assigned Number: 14"; | |||
| } | } | |||
| identity e164-nsap { | identity e164-nsap { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "ITU-T E.164 with NSAP sub-address Address Family - | "ITU-T E.164 with NSAP sub-address Address Family - | |||
| IANA Registry Assigned Number: 15"; | IANA Registry Assigned Number: 15"; | |||
| } | } | |||
| identity dns { | identity dns { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Domain Name System (DNS) Address Family - | "Domain Name System (DNS) Address Family - | |||
| IANA Registry Assigned Number: 16"; | IANA Registry Assigned Number: 16"; | |||
| } | } | |||
| identity distinguished-name { | identity distinguished-name { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Distinguished Name Address Family - | "Distinguished Name Address Family - | |||
| IANA Registry Assigned Number: 17"; | IANA Registry Assigned Number: 17"; | |||
| } | } | |||
| identity as-num { | identity as-num { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "AS Number Family - | "AS Number Family - | |||
| IANA Registry Assigned Number: 18"; | IANA Registry Assigned Number: 18"; | |||
| } | } | |||
| identity xtp-v4 { | identity xtp-v4 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Xpress Transport Protocol (XTP) over IPv4 | "Xpress Transport Protocol (XTP) over IPv4 | |||
| Address Family - IANA Registry Assigned Number: 19"; | Address Family - IANA Registry Assigned Number: 19"; | |||
| } | } | |||
| identity xtp-v6 { | identity xtp-v6 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Xpress Transport Protocol (XTP) over IPv4 | "Xpress Transport Protocol (XTP) over IPv4 | |||
| Address Family - IANA Registry Assigned Number: 20"; | Address Family - IANA Registry Assigned Number: 20"; | |||
| } | } | |||
| identity xtp-native { | identity xtp-native { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Xpress Transport Protocol (XTP) native mode | "Xpress Transport Protocol (XTP) native mode | |||
| Address Family - IANA Registry Assigned Number: 21"; | Address Family - IANA Registry Assigned Number: 21"; | |||
| } | } | |||
| identity fc-port { | identity fc-port { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Fibre Channel (FC) World-Wide Port Name | "Fibre Channel (FC) World-Wide Port Name | |||
| Address Family - IANA Registry Assigned Number: 22"; | Address Family - IANA Registry Assigned Number: 22"; | |||
| } | } | |||
| identity fc-node { | identity fc-node { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Fibre Channel (FC) World-Wide Node Name | "Fibre Channel (FC) World-Wide Node Name | |||
| Address Family - IANA Registry Assigned Number: 23"; | Address Family - IANA Registry Assigned Number: 23"; | |||
| } | } | |||
| identity gwid { | identity gwid { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "ATM Gateway Identifier (GWID) Number Family - | "ATM Gateway Identifier (GWID) Number Family - | |||
| IANA Registry Assigned Number: 24"; | IANA Registry Assigned Number: 24"; | |||
| } | } | |||
| identity l2vpn { | identity l2vpn { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Layer-2 VPN (L2VPN) Address Family - | "Layer-2 VPN (L2VPN) Address Family - | |||
| IANA Registry Assigned Number: 25"; | IANA Registry Assigned Number: 25"; | |||
| } | } | |||
| identity mpls-tp-section-eid { | identity mpls-tp-section-eid { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "MPLS-TP Section Endpoint Identifier Address Family - | "MPLS-TP Section Endpoint Identifier Address Family - | |||
| IANA Registry Assigned Number: 26"; | IANA Registry Assigned Number: 26"; | |||
| } | } | |||
| identity mpls-tp-lsp-eid { | identity mpls-tp-lsp-eid { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "MPLS-TP LSP Endpoint Identifier Address Family - | "MPLS-TP LSP Endpoint Identifier Address Family - | |||
| IANA Registry Assigned Number: 27"; | IANA Registry Assigned Number: 27"; | |||
| } | } | |||
| identity mpls-tp-pwe-eid { | identity mpls-tp-pwe-eid { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "MPLS-TP Pseudowire Endpoint Identifier | "MPLS-TP Pseudowire Endpoint Identifier | |||
| Address Family - IANA Registry Assigned Number: 28"; | Address Family - IANA Registry Assigned Number: 28"; | |||
| } | } | |||
| identity mt-v4 { | identity mt-v4 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Multi-Topology IPv4 Address Family - | "Multi-Topology IPv4 Address Family - | |||
| Address Family - IANA Registry Assigned Number: 29"; | Address Family - IANA Registry Assigned Number: 29"; | |||
| } | } | |||
| identity mt-v6 { | identity mt-v6 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Multi-Topology IPv6 Address Family - | "Multi-Topology IPv6 Address Family - | |||
| Address Family - IANA Registry Assigned Number: 30"; | Address Family - IANA Registry Assigned Number: 30"; | |||
| } | } | |||
| identity eigrp-common-sf { | identity eigrp-common-sf { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Enhanced Interior Gateway Routing Protocol (EIGRP) | "Enhanced Interior Gateway Routing Protocol (EIGRP) | |||
| Common Service Family Address Family - | Common Service Family Address Family - | |||
| IANA Registry Assigned Number: 16384"; | IANA Registry Assigned Number: 16384"; | |||
| } | } | |||
| identity eigrp-v4-sf { | identity eigrp-v4-sf { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Enhanced Interior Gateway Routing Protocol (EIGRP) | "Enhanced Interior Gateway Routing Protocol (EIGRP) | |||
| IPv4 Service Family Address Family - | IPv4 Service Family Address Family - | |||
| IANA Registry Assigned Number: 16385"; | IANA Registry Assigned Number: 16385"; | |||
| } | } | |||
| identity eigrp-v6-sf { | identity eigrp-v6-sf { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Enhanced Interior Gateway Routing Protocol (EIGRP) | "Enhanced Interior Gateway Routing Protocol (EIGRP) | |||
| IPv6 Service Family Address Family - | IPv6 Service Family Address Family - | |||
| IANA Registry Assigned Number: 16386"; | IANA Registry Assigned Number: 16386"; | |||
| } | } | |||
| identity lcaf { | identity lcaf { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "LISP Canonical Address Format (LCAF) | "LISP Canonical Address Format (LCAF) | |||
| Address Family - IANA Registry Assigned Number: 16387"; | Address Family - IANA Registry Assigned Number: 16387"; | |||
| } | } | |||
| identity bgp-ls { | identity bgp-ls { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "Border Gatway Protocol - Link State (BGP-LS) | "Border Gatway Protocol - Link State (BGP-LS) | |||
| Address Family - IANA Registry Assigned Number: 16388"; | Address Family - IANA Registry Assigned Number: 16388"; | |||
| } | } | |||
| identity mac-48 { | identity mac-48 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "IEEE 48-bit Media Access Control (MAC) | "IEEE 48-bit Media Access Control (MAC) | |||
| Address Family - IANA Registry Assigned Number: 16389"; | Address Family - IANA Registry Assigned Number: 16389"; | |||
| } | } | |||
| identity mac-64 { | identity mac-64 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "IEEE 64-bit Media Access Control (MAC) | "IEEE 64-bit Media Access Control (MAC) | |||
| Address Family - IANA Registry Assigned Number: 16390"; | Address Family - IANA Registry Assigned Number: 16390"; | |||
| } | } | |||
| identity trill-oui { | identity trill-oui { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "TRILL IEEE Organizationally Unique Identifier (OUI) - | "TRILL IEEE Organizationally Unique Identifier (OUI) - | |||
| Address Family - IANA Registry Assigned Number: 16391"; | Address Family - IANA Registry Assigned Number: 16391"; | |||
| } | } | |||
| identity trill-mac-24 { | identity trill-mac-24 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "TRILL Final 3 octets of 48-bit MAC address | "TRILL Final 3 octets of 48-bit MAC address | |||
| Address Family - IANA Registry Assigned Number: 16392"; | Address Family - IANA Registry Assigned Number: 16392"; | |||
| } | } | |||
| identity trill-mac-48 { | identity trill-mac-48 { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "TRILL Final 5 octets of 64-bit MAC address | "TRILL Final 5 octets of 64-bit MAC address | |||
| Address Family - IANA Registry Assigned Number: 16393"; | Address Family - IANA Registry Assigned Number: 16393"; | |||
| } | } | |||
| identity trill-rbridge-port-id { | identity trill-rbridge-port-id { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "TRILL Remote Bridge (RBridge) Port ID | "TRILL Remote Bridge (RBridge) Port ID | |||
| Address Family - IANA Registry Assigned Number: 16394"; | Address Family - IANA Registry Assigned Number: 16394"; | |||
| } | } | |||
| identity trill-nickname { | identity trill-nickname { | |||
| base address-family; | base address-family; | |||
| description | description | |||
| "TRILL Nickname | "TRILL Nickname | |||
| Address Family - IANA Registry Assigned Number: 16395"; | Address Family - IANA Registry Assigned Number: 16395"; | |||
| } | } | |||
| /*** SAFIs for Multi-Protocol BGP Identities ***/ | /*** SAFIs for Multi-Protocol BGP Identities ***/ | |||
| identity bgp-safi { | identity bgp-safi { | |||
| description | description | |||
| "Base identity from which identities describing BGP | "Base identity from which identities describing BGP | |||
| Subsequent Address Family Identifier (SAFI) - RFC 4760."; | Subsequent Address Family Identifier (SAFI) - RFC 4760."; | |||
| } | } | |||
| identity unicast-safi { | identity unicast-safi { | |||
| base bgp-safi; | base bgp-safi; | |||
| description | description | |||
| "Unicast SAFI - | "Unicast SAFI - | |||
| skipping to change at page 30, line 20 ¶ | skipping to change at page 35, line 6 ¶ | |||
| might have. The security considerations spelled out in the YANG | might have. The security considerations spelled out in the YANG | |||
| specification [RFC7950] apply for this document as well. | specification [RFC7950] apply for this document as well. | |||
| 7. Acknowledgements | 7. Acknowledgements | |||
| The Routing Area Yang Architecture design team members included Acee | The Routing Area Yang Architecture design team members included Acee | |||
| Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Ebben Aries, | Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Ebben Aries, | |||
| Lou Berger, Qin Wu, Rob Shakir, Xufeng Liu, and Yingzhen Qu. | Lou Berger, Qin Wu, Rob Shakir, Xufeng Liu, and Yingzhen Qu. | |||
| Thanks to Martin Bjorkland, Tom Petch, Stewart Bryant, and Radek | Thanks to Martin Bjorkland, Tom Petch, Stewart Bryant, and Radek | |||
| Krejci for comments on the model and document text. | Krejci for comments on the model and document text. Thanks to Jeff | |||
| Haas and Robert Raszuk for suggestions for additional common routing | ||||
| types. | ||||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <http://www.rfc-editor.org/info/rfc3688>. | <http://www.rfc-editor.org/info/rfc3688>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
| skipping to change at page 32, line 5 ¶ | skipping to change at page 36, line 40 ¶ | |||
| I. Bryskin, "A YANG Data Model for Traffic Engineering | I. Bryskin, "A YANG Data Model for Traffic Engineering | |||
| Tunnels and Interfaces", draft-ietf-teas-yang-te-06 (work | Tunnels and Interfaces", draft-ietf-teas-yang-te-06 (work | |||
| in progress), March 2017. | in progress), March 2017. | |||
| [I-D.ietf-bess-l2vpn-yang] | [I-D.ietf-bess-l2vpn-yang] | |||
| Shah, H., Brissette, P., Chen, I., Hussain, I., Wen, B., | Shah, H., Brissette, P., Chen, I., Hussain, I., Wen, B., | |||
| and K. Tiruveedhula, "YANG Data Model for MPLS-based | and K. Tiruveedhula, "YANG Data Model for MPLS-based | |||
| L2VPN", draft-ietf-bess-l2vpn-yang-05 (work in progress), | L2VPN", draft-ietf-bess-l2vpn-yang-05 (work in progress), | |||
| March 2017. | March 2017. | |||
| [I-D.ietf-bess-l3vpn-yang] | ||||
| Jain, D., Patel, K., Brissette, P., Li, Z., Zhuang, S., | ||||
| Liu, X., Haas, J., Esale, S., and B. Wen, "Yang Data Model | ||||
| for BGP/MPLS L3 VPNs", draft-ietf-bess-l3vpn-yang-01 (work | ||||
| in progress), April 2017. | ||||
| [I-D.ietf-mpls-base-yang] | [I-D.ietf-mpls-base-yang] | |||
| Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., | Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., | |||
| Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data | Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data | |||
| Model for MPLS Base", draft-ietf-mpls-base-yang-04 (work | Model for MPLS Base", draft-ietf-mpls-base-yang-04 (work | |||
| in progress), March 2017. | in progress), March 2017. | |||
| [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | |||
| Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | |||
| Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | |||
| <http://www.rfc-editor.org/info/rfc3032>. | <http://www.rfc-editor.org/info/rfc3032>. | |||
| skipping to change at page 32, line 35 ¶ | skipping to change at page 37, line 29 ¶ | |||
| [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private | |||
| Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February | |||
| 2006, <http://www.rfc-editor.org/info/rfc4364>. | 2006, <http://www.rfc-editor.org/info/rfc4364>. | |||
| [RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer | [RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer | |||
| 2 Virtual Private Networks (L2VPNs)", RFC 4664, | 2 Virtual Private Networks (L2VPNs)", RFC 4664, | |||
| DOI 10.17487/RFC4664, September 2006, | DOI 10.17487/RFC4664, September 2006, | |||
| <http://www.rfc-editor.org/info/rfc4664>. | <http://www.rfc-editor.org/info/rfc4664>. | |||
| [RFC5701] Rekhter, Y., "IPv6 Address Specific BGP Extended Community | ||||
| Attribute", RFC 5701, DOI 10.17487/RFC5701, November 2009, | ||||
| <http://www.rfc-editor.org/info/rfc5701>. | ||||
| [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection | |||
| (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, | |||
| <http://www.rfc-editor.org/info/rfc5880>. | <http://www.rfc-editor.org/info/rfc5880>. | |||
| [RFC7274] Kompella, K., Andersson, L., and A. Farrel, "Allocating | [RFC7274] Kompella, K., Andersson, L., and A. Farrel, "Allocating | |||
| and Retiring Special-Purpose MPLS Labels", RFC 7274, | and Retiring Special-Purpose MPLS Labels", RFC 7274, | |||
| DOI 10.17487/RFC7274, June 2014, | DOI 10.17487/RFC7274, June 2014, | |||
| <http://www.rfc-editor.org/info/rfc7274>. | <http://www.rfc-editor.org/info/rfc7274>. | |||
| Authors' Addresses | [WGS84] National Imagery and Mapping Agency, "Department of | |||
| Defense World Geodetic System 1984, Third Edition", | ||||
| NIMA TR83500.2, January 2000. | ||||
| Authors' Addresses | ||||
| Xufeng Liu | Xufeng Liu | |||
| Jabil | Jabil | |||
| 8281 Greensboro Drive, Suite 200 | 8281 Greensboro Drive, Suite 200 | |||
| McLean VA 22102 | McLean VA 22102 | |||
| USA | USA | |||
| EMail: Xufeng_Liu@jabil.com | EMail: Xufeng_Liu@jabil.com | |||
| Yingzhen Qu | Yingzhen Qu | |||
| Futurewei Technologies, Inc. | Futurewei Technologies, Inc. | |||
| 2330 Central Expressway | 2330 Central Expressway | |||
| Santa Clara CA 95050 | Santa Clara CA 95050 | |||
| USA | USA | |||
| EMail: yingzhen.qu@huawei.com | EMail: yingzhen.qu@huawei.com | |||
| Acee Lindem | Acee Lindem | |||
| Cisco Systems | Cisco Systems | |||
| End of changes. 158 change blocks. | ||||
| 638 lines changed or deleted | 887 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/ | ||||