idnits 2.17.00 (12 Aug 2021) /tmp/idnits6908/draft-ietf-rtgwg-routing-types-07.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 8 instances of too long lines in the document, the longest one being 640 characters in excess of 72. == There are 2 instances of lines with multicast IPv4 addresses in the document. If these are generic example addresses, they should be changed to use the 233.252.0.x range defined in RFC 5771 Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (June 29, 2017) is 1786 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Possible downref: Non-RFC (?) normative reference: ref. 'IANA-ADDRESS-FAMILY-REGISTRY' -- Possible downref: Non-RFC (?) normative reference: ref. 'IANA-SAFI-REGISTRY' == Outdated reference: draft-ietf-bfd-yang has been published as RFC 9127 == Outdated reference: A later version (-13) exists of draft-ietf-idr-bgp-model-02 == Outdated reference: A later version (-29) exists of draft-ietf-ospf-yang-07 == Outdated reference: A later version (-17) exists of draft-ietf-pim-yang-08 == Outdated reference: A later version (-17) exists of draft-ietf-teas-yang-rsvp-07 == Outdated reference: A later version (-29) exists of draft-ietf-teas-yang-te-06 == Outdated reference: A later version (-10) exists of draft-ietf-bess-l2vpn-yang-05 == Outdated reference: A later version (-05) exists of draft-ietf-bess-l3vpn-yang-01 == Outdated reference: draft-ietf-mpls-base-yang has been published as RFC 8960 Summary: 1 error (**), 0 flaws (~~), 11 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group X. Liu 3 Internet-Draft Jabil 4 Intended status: Standards Track Y. Qu 5 Expires: December 31, 2017 Futurewei Technologies, Inc. 6 A. Lindem 7 Cisco Systems 8 C. Hopps 9 Deutsche Telekom 10 L. Berger 11 LabN Consulting, L.L.C. 12 June 29, 2017 14 Routing Area Common YANG Data Types 15 draft-ietf-rtgwg-routing-types-07 17 Abstract 19 This document defines a collection of common data types using the 20 YANG data modeling language. These derived common types are designed 21 to be imported by other modules defined in the routing area. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on December 31, 2017. 40 Copyright Notice 42 Copyright (c) 2017 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 58 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 59 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 60 3. IETF Routing Types YANG Module . . . . . . . . . . . . . . . 6 61 4. IANA Routing Types YANG Module . . . . . . . . . . . . . . . 22 62 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 63 5.1. IANA-Maintained iana-routing-types Module . . . . . . . . 33 64 6. Security Considerations . . . . . . . . . . . . . . . . . . . 34 65 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 34 66 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 67 8.1. Normative References . . . . . . . . . . . . . . . . . . 35 68 8.2. Informative References . . . . . . . . . . . . . . . . . 35 69 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37 71 1. Introduction 73 The YANG [RFC6020] [RFC7950] is a data modeling language used to 74 model configuration data, state data, Remote Procedure Calls, and 75 notifications for network management protocols. The YANG language 76 supports a small set of built-in data types and provides mechanisms 77 to derive other types from the built-in types. 79 This document introduces a collection of common data types derived 80 from the built-in YANG data types. The derived types are designed to 81 be the common types applicable for modeling in the routing area. 83 1.1. Terminology 85 The terminology for describing YANG data models is found in 86 [RFC7950]. 88 2. Overview 90 This document defines the two models for common routing types, ietf- 91 routing-types and iana-routing-types. The only module imports are 92 from [RFC6991]. The ietf-routing-types model contains common routing 93 types other than those corresponding directly to IANA mappings. 94 These include: 96 router-id 97 Router Identifiers are commonly used to identify a nodes in 98 routing and other control plane protocols. An example usage of 99 router-id can be found in [I-D.ietf-ospf-yang]. 101 route-target 102 Route Targets (RTs) are commonly used to control the distribution 103 of virtual routing and forwarding (VRF) information, see 104 [RFC4364], in support of virtual private networks (VPNs). An 105 example usage can be found in [I-D.ietf-bess-l2vpn-yang]. 107 ipv6-route-target 108 IPv6 Route Targets (RTs) are similar to standard Route Targets 109 only they IPv6 Address Specific BGP Extended Communities as 110 described in [RFC5701]. An IPv6 Route Target is 20 octets and 111 includes an IPv6 address as the global administrator. 113 route-target-type 114 This type defines the import and export rules of Route Targets, as 115 descibed in Section 4.3.1 of [RFC4364]. An example usage can be 116 found in [I-D.ietf-idr-bgp-model]. 118 route-distinguisher 119 Route Distinguishers (RDs) are commonly used to identify separate 120 routes in support of virtual private networks (VPNs). For 121 example, in [RFC4364], RDs are commonly used to identify 122 independent VPNs and VRFs, and more generally, to identify 123 multiple routes to the same prefix. An example usage can be found 124 in [I-D.ietf-idr-bgp-model]. 126 route-origin 127 Route Origin is commonly used to indicate the Site of Origin for 128 Routng and forwarding (VRF) information, see [RFC4364], in support 129 of virtual private networks (VPNs). An example usage can be found 130 in [I-D.ietf-bess-l3vpn-yang]. 132 ipv6-route-origin 133 An IPv6 Route Origin would also be used to indicate the Site of 134 Origin for Routng and forwarding (VRF) information, see [RFC4364], 135 in support of virtual private networks (VPNs). IPv6 Route Origins 136 are IPv6 Address Specific BGP Extended Communities as described in 137 [RFC5701]. An IPv6 Route Origin is 20 octets and includes an IPv6 138 address as the global administrator. 140 ipv4-multicast-group-address 141 This type defines the representation of an IPv4 multicast group 142 address, which is in the range from 224.0.0.0 to 239.255.255.255. 143 An example usage can be found in [I-D.ietf-pim-yang]. 145 ipv6-multicast-group-address 146 This type defines the representation of an IPv6 multicast group 147 address, which is in the range of FF00::/8. An example usage can 148 be found in [I-D.ietf-pim-yang]. 150 ip-multicast-group-address 151 This type represents an IP multicast group address and is IP 152 version neutral. The format of the textual representation implies 153 the IP version. An example usage can be found in 154 [I-D.ietf-pim-yang]. 156 ipv4-multicast-source-address 157 IPv4 source address type for use in multicast control protocols. 158 This type also allows the indication of wildcard sources, i.e., 159 "*". An example of where this type may/will be used is 160 [I-D.ietf-pim-yang]. 162 ipv6-multicast-source-address 163 IPv6 source address type for use in multicast control protocols. 164 This type also allows the indication of wildcard sources, i.e., 165 "*". An example of where this type may/will be used is 166 [I-D.ietf-pim-yang]. 168 bandwidth-ieee-float32 169 Bandwidth in IEEE 754 floating point 32-bit binary format 170 [IEEE754]. Commonly used in Traffic Engineering control plane 171 protocols. An example of where this type may/will be used is 172 [I-D.ietf-ospf-yang]. 174 link-access-type 175 This type identifies the IGP link type. An example of where this 176 type may/will be used is [I-D.ietf-ospf-yang]. 178 timer-multiplier 179 This type is used in conjunction with a timer-value type. It is 180 generally used to indicate define the number of timer-value 181 intervals that may expire before a specific event must occur. 182 Examples of this include the arrival of any BFD packets, see 183 [RFC5880] Section 6.8.4, or hello_interval in [RFC3209]. Example 184 of where this type may/will be used is [I-D.ietf-idr-bgp-model] 185 and [I-D.ietf-teas-yang-rsvp]. 187 timer-value-seconds16 188 This type covers timers which can be set in seconds, not set, or 189 set to infinity. This type supports a range of values that can be 190 represented in a uint16 (2 octets). An example of where this type 191 may/will be used is [I-D.ietf-ospf-yang]. 193 timer-value-seconds32 194 This type covers timers which can be set in seconds, not set, or 195 set to infinity. This type supports a range of values that can be 196 represented in a uint32 (4 octets). An example of where this type 197 may/will be used is [I-D.ietf-teas-yang-rsvp]. 199 timer-value-milliseconds 200 This type covers timers which can be set in milliseconds, not set, 201 or set to infinity. This type supports a range of values that can 202 be represented in a uint32 (4 octets). Examples of where this 203 type may/will be used include [I-D.ietf-teas-yang-rsvp] and 204 [I-D.ietf-bfd-yang]. 206 percentage 207 This type defines a percentage with a range of 0-100%. An example 208 usage can be found in [I-D.ietf-idr-bgp-model]. 210 timeticks64 211 This type is based on the timeticks type defined in [RFC6991] but 212 with 64-bit precision. It represents the time in hundredths of a 213 second between two epochs. An example usage can be found in 214 [I-D.ietf-idr-bgp-model]. 216 uint24 217 This type defines a 24-bit unsigned integer. It is used by 218 target="I-D.ietf-ospf-yang"/>. 220 generalized-label 221 This type represents a generalized label for Generalized Multi- 222 Protocol Label Switching (GMPLS) [RFC3471]. The Generalized Label 223 does not identify its type, which is known from the context. An 224 example usage can be found in [I-D.ietf-teas-yang-te]. 226 mpls-label-special-purpose 227 This type represents the special-purpose Multiprotocol Label 228 Switching (MPLS) label values [RFC7274]. An example usage can be 229 found in [I-D.ietf-mpls-base-yang]. 231 mpls-label-general-use 232 The 20 bits label values in an MPLS label stack entry, specified 233 in [RFC3032]. This label value does not include the encodings of 234 Traffic Class and TTL (time to live). The label range specified 235 by this type is for general use, with special-purpose MPLS label 236 values excluded. An example usage can be found in 237 [I-D.ietf-mpls-base-yang]. 239 mpls-label 240 The 20 bits label values in an MPLS label stack entry, specified 241 in [RFC3032]. This label value does not include the encodings of 242 Traffic Class and TTL (time to live). The label range specified 243 by this type covers the general use values and the special-purpose 244 label values. An example usage can be found in 245 [I-D.ietf-mpls-base-yang]. 247 This document defines the following YANG groupings: 249 mpls-label-stack 250 This grouping defines a reusable collection of schema nodes 251 representing an MPLS label stack [RFC3032]. An example usage can 252 be found in [I-D.ietf-mpls-base-yang]. 254 vpn-route-targets 255 This grouping defines a reusable collection of schema nodes 256 representing Route Target import-export rules used in the BGP 257 enabled Virtual Private Networks (VPNs). [RFC4364][RFC4664]. An 258 example usage can be found in [I-D.ietf-bess-l2vpn-yang]. 260 geo-coordinates 261 This grouping defines a reusable collection of schema nodes 262 representing the Geo-coordinates in IETF models. The schema modes 263 specify the location of an object using the WGS-84 (World Geodetic 264 System) reference coordinate system [WGS84]. This is expected to 265 used in augmentations to routing protocol models such as 266 [I-D.ietf-ospf-yang]. 268 The iana-routing-types model contains common routing types 269 corresponding directly to IANA mappings. These include: 271 address-family 272 This type defines values for use in address family identifiers. 273 The values are based on the IANA Address Family Numbers Registry 274 [IANA-ADDRESS-FAMILY-REGISTRY]. An example usage can be found in 275 [I-D.ietf-idr-bgp-model]. 277 subsequent-address-family 278 This type defines values for use in subsequent address family 279 (SAFI) identifiers. The values are based on the IANA Subsequent 280 Address Family Identifiers (SAFI) Parameters Registry 281 [IANA-SAFI-REGISTRY]. 283 3. IETF Routing Types YANG Module 285 file "ietf-routing-types@2017-06-29.yang" 286 module ietf-routing-types { 287 namespace "urn:ietf:params:xml:ns:yang:ietf-routing-types"; 288 prefix rt-types; 290 import ietf-yang-types { 291 prefix yang; 292 } 293 import ietf-inet-types { 294 prefix inet; 295 } 297 organization 298 "IETF RTGWG - Routing Area Working Group"; 299 contact 300 "WG Web: 301 WG List: 303 Editor: Xufeng Lui 304 305 Yingzhen Qu 306 307 Acee Lindem 308 309 Christian Hopps 310 311 Lou Berger 312 "; 313 description 314 "This module contains a collection of YANG data types 315 considered generally useful for routing protocols. 317 Copyright (c) 2017 IETF Trust and the persons 318 identified as authors of the code. All rights reserved. 320 Redistribution and use in source and binary forms, with or 321 without modification, is permitted pursuant to, and subject 322 to the license terms contained in, the Simplified BSD License 323 set forth in Section 4.c of the IETF Trust's Legal Provisions 324 Relating to IETF Documents 325 (http://trustee.ietf.org/license-info). 327 This version of this YANG module is part of RFC XXXX; see 328 the RFC itself for full legal notices."; 329 reference "RFC XXXX"; 331 revision 2017-06-29 { 332 description 333 "Initial revision."; 334 reference "RFC TBD: Routing YANG Data Types"; 335 } 336 /*** Identities related to MPLS/GMPLS ***/ 338 identity mpls-label-special-purpose-value { 339 description 340 "Base identity for deriving identities describing 341 special-purpose Multiprotocol Label Switching (MPLS) label 342 values."; 343 reference 344 "RFC7274: Allocating and Retiring Special-Purpose MPLS 345 Labels."; 346 } 348 identity ipv4-explicit-null-label { 349 base mpls-label-special-purpose-value; 350 description 351 "This identity represents the IPv4 Explicit NULL Label."; 352 reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; 353 } 355 identity router-alert-label { 356 base mpls-label-special-purpose-value; 357 description 358 "This identity represents the Router Alert Label."; 359 reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; 360 } 362 identity ipv6-explicit-null-label { 363 base mpls-label-special-purpose-value; 364 description 365 "This identity represents the IPv6 Explicit NULL Label."; 366 reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; 367 } 369 identity implicit-null-label { 370 base mpls-label-special-purpose-value; 371 description 372 "This identity represents the Implicit NULL Label."; 373 reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; 374 } 376 identity entropy-label-indicator { 377 base mpls-label-special-purpose-value; 378 description 379 "This identity represents the Entropy Label Indicator."; 380 reference 381 "RFC6790: The Use of Entropy Labels in MPLS Forwarding. 382 Sections 3 and 10.1."; 383 } 384 identity gal-label { 385 base mpls-label-special-purpose-value; 386 description 387 "This identity represents the Generic Associated Channel 388 Label (GAL)."; 389 reference 390 "RFC5586: MPLS Generic Associated Channel. 391 Sections 4 and 10."; 392 } 394 identity oam-alert-label { 395 base mpls-label-special-purpose-value; 396 description 397 "This identity represents the OAM Alert Label."; 398 reference 399 "RFC3429: Assignment of the 'OAM Alert Label' for 400 Multiprotocol Label Switching Architecture (MPLS) 401 Operation and Maintenance (OAM) Functions. 402 Sections 3 and 6."; 403 } 405 identity extension-label { 406 base mpls-label-special-purpose-value; 407 description 408 "This identity represents the Extension Label."; 409 reference 410 "RFC7274: Allocating and Retiring Special-Purpose MPLS 411 Labels. Sections 3.1 and 5."; 412 } 414 /*** Collection of types related to routing ***/ 416 typedef router-id { 417 type yang:dotted-quad; 418 description 419 "A 32-bit number in the dotted quad format assigned to each 420 router. This number uniquely identifies the router within 421 an Autonomous System."; 422 } 424 /*** Collection of types related to VPN ***/ 426 typedef route-target { 427 type string { 428 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))"; 429 } 430 description 431 "A route target is an 8-octet BGP extended community 432 initially identifying a set of sites in a BGP 433 VPN (RFC 4364). However, it has since taken on a more 434 general role in BGP route filtering. 435 A route target consists of three fields: 436 a 2-octet type field, an administrator field, 437 and an assigned number field. 438 According to the data formats for type 0, 1, and 2 defined 439 in RFC4360 and RFC5668, the encoding pattern is defined as: 441 0:2-octet-asn:4-octet-number 442 1:4-octet-ipv4addr:2-octet-number 443 2:4-octet-asn:2-octet-number. 445 Some valid examples are: 0:100:100, 1:1.1.1.1:100, and 446 2:1234567890:203."; 447 reference 448 "RFC4360: BGP Extended Communities Attribute. 449 RFC5668: 4-Octet AS Specific BGP Extended Community."; 450 } 452 typedef ipv6-route-target { 453 type string { 454 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)"; 455 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)"; 456 } 457 description 458 "An IPv6 route target is a 20-octet BGP IPv6 address 459 specific extended community serving the same function 460 as a standard 8-octet route target only allowing for 461 an IPv6 address as the global adminstrator. The format 462 is . 464 Some valid examples are: 2001:DB8::1:6544 and 465 2001:DB8::5eb1:791:6b37:17958"; 466 reference 467 "RFC5701: IPv6 Address Specific BGP Extended Community 468 Attribute"; 469 } 471 typedef route-target-type { 472 type enumeration { 473 enum "import" { 474 value 0; 475 description 476 "The route target applies to route import."; 477 } 478 enum "export" { 479 value 1; 480 description 481 "The route target applies to route export."; 482 } 483 enum "both" { 484 value 2; 485 description 486 "The route target applies to both route import and 487 route export."; 488 } 489 } 490 description 491 "Indicates the role a route target takes 492 in route filtering."; 493 reference "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; 494 } 496 typedef route-distinguisher { 497 type string { 498 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})"; 499 } 500 description 501 "A route distinguisher is an 8-octet value used to distinguish 502 routes from different BGP VPNs (RFC 4364). A route 503 distinguisher consists of three fields: A 2-octet type field, 504 an administrator field, and an assigned number field. 505 According to the data formats for type 0, 1, and 2 defined in 506 RFC4364, the encoding pattern is defined as: 508 0:2-octet-asn:4-octet-number 509 1:4-octet-ipv4addr:2-octet-number 510 2:4-octet-asn:2-octet-number. 511 2-octet-other-hex-number:6-octet-hex-number 513 Some valid examples are: 0:100:100, 1:1.1.1.1:100, and 514 2:1234567890:203."; 515 reference "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; 516 } 518 typedef route-origin { 519 type string { 520 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})"; 521 } 522 description 523 "A route origin is an 8-octet BGP extended community 524 identifying the set of sites where the BGP route 525 originated(RFC 4364). A route origin consists of three 526 fields: A 2-octet type field, an administrator field, 527 and an assigned number field. According to the data 528 formats for type 0, 1, and 2 defined in RFC4364, 529 the encoding pattern is defined as: 531 0:2-octet-asn:4-octet-number 532 1:4-octet-ipv4addr:2-octet-number 533 2:4-octet-asn:2-octet-number. 534 2-octet-other-hex-number:6-octet-hex-number 536 Some valid examples are: 0:100:100, 1:1.1.1.1:100, and 537 2:1234567890:203."; 538 reference 539 "RFC4360: BGP Extended Communities Attribute. 540 RFC4369: BGP/MPLS IP Virtual Private Networks (VPNs) 541 RFC5668: 4-Octet AS Specific BGP Extended Community."; 542 } 544 typedef ipv6-route-origin { 545 type string { 546 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)"; 547 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)"; 548 } 549 description 550 "An IPv6 route origin is a 20-octet BGP IPv6 address 551 specific extended community serving the same function 552 as a standard 8-octet route only only allowing for 553 an IPv6 address as the global adminstrator. The format 554 is . 556 Some valid examples are: 2001:DB8::1:6544 and 557 2001:DB8::5eb1:791:6b37:17958"; 558 reference 559 "RFC5701: IPv6 Address Specific BGP Extended Community 560 Attribute"; 561 } 563 /*** Collection of types common to multicast ***/ 565 typedef ipv4-multicast-group-address { 566 type inet:ipv4-address { 567 pattern "(2((2[4-9])|(3[0-9]))\\.).*"; 568 } 569 description 570 "This type represents an IPv4 multicast group address, 571 which is in the range from 224.0.0.0 to 239.255.255.255."; 572 reference "RFC1112: Host Extensions for IP Multicasting."; 573 } 575 typedef ipv6-multicast-group-address { 576 type inet:ipv6-address { 577 pattern "(([fF]{2}[0-9a-fA-F]{2}):).*"; 578 } 579 description 580 "This type represents an IPv6 multicast group address, 581 which is in the range of FF00::/8."; 582 reference 583 "RFC4291: IP Version 6 Addressing Architecture. Sec 2.7. 584 RFC7346: IPv6 Multicast Address Scopes."; 585 } 587 typedef ip-multicast-group-address { 588 type union { 589 type ipv4-multicast-group-address; 590 type ipv6-multicast-group-address; 591 } 592 description 593 "This type represents a version-neutral IP multicast group 594 address. The format of the textual representation implies 595 the IP version."; 596 } 598 typedef ipv4-multicast-source-address { 599 type union { 600 type enumeration { 601 enum "*" { 602 description 603 "Any source address."; 604 } 605 } 606 type inet:ipv4-address; 607 } 608 description 609 "Multicast source IPv4 address type."; 610 } 612 typedef ipv6-multicast-source-address { 613 type union { 614 type enumeration { 615 enum "*" { 616 description 617 "Any source address."; 618 } 619 } 620 type inet:ipv6-address; 621 } 622 description 623 "Multicast source IPv6 address type."; 625 } 627 /*** Collection of types common to protocols ***/ 629 typedef bandwidth-ieee-float32 { 630 type string { 631 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)?)"; 632 } 633 description 634 "Bandwidth in IEEE 754 floating point 32-bit binary format: 635 (-1)**(S) * 2**(Exponent-127) * (1 + Fraction), 636 where Exponent uses 8 bits, and Fraction uses 23 bits. 637 The units are octets per second. 638 The encoding format is the external hexadecimal-significant 639 character sequences specified in IEEE 754 and C99. The 640 format is restricted to be normalized, non-negative, and 641 non-fraction: 0x1.hhhhhhp{+}d or 0X1.HHHHHHP{+}D 642 where 'h' and 'H' are hexadecimal digits, 'd' and 'D' are 643 integers in the range of [0..127]. 644 When six hexadecimal digits are used for 'hhhhhh' or 'HHHHHH', 645 the least significant digit must be an even number. 646 'x' and 'X' indicate hexadecimal; 'p' and 'P' indicate power 647 of two. Some examples are: 0x0p0, 0x1p10, and 648 0x1.abcde2p+20"; 649 reference 650 "IEEE Std 754-2008: IEEE Standard for Floating-Point 651 Arithmetic."; 652 } 654 typedef link-access-type { 655 type enumeration { 656 enum "broadcast" { 657 description 658 "Specify broadcast multi-access network."; 659 } 660 enum "non-broadcast-multiaccess" { 661 description 662 "Specify Non-Broadcast Multi-Access (NBMA) network."; 663 } 664 enum "point-to-multipoint" { 665 description 666 "Specify point-to-multipoint network."; 667 } 668 enum "point-to-point" { 669 description 670 "Specify point-to-point network."; 671 } 672 } 673 description 674 "Link access type."; 675 } 677 typedef timer-multiplier { 678 type uint8; 679 description 680 "The number of timer value intervals that should be 681 interpreted as a failure."; 682 } 684 typedef timer-value-seconds16 { 685 type union { 686 type uint16 { 687 range "1..65535"; 688 } 689 type enumeration { 690 enum "infinity" { 691 description 692 "The timer is set to infinity."; 693 } 694 enum "not-set" { 695 description 696 "The timer is not set."; 697 } 698 } 699 } 700 units "seconds"; 701 description 702 "Timer value type, in seconds (16-bit range)."; 703 } 705 typedef timer-value-seconds32 { 706 type union { 707 type uint32 { 708 range "1..4294967295"; 709 } 710 type enumeration { 711 enum "infinity" { 712 description 713 "The timer is set to infinity."; 714 } 715 enum "not-set" { 716 description 717 "The timer is not set."; 718 } 719 } 720 } 721 units "seconds"; 722 description 723 "Timer value type, in seconds (32-bit range)."; 724 } 726 typedef timer-value-milliseconds { 727 type union { 728 type uint32 { 729 range "1..4294967295"; 730 } 731 type enumeration { 732 enum "infinity" { 733 description 734 "The timer is set to infinity."; 735 } 736 enum "not-set" { 737 description 738 "The timer is not set."; 739 } 740 } 741 } 742 units "milliseconds"; 743 description 744 "Timer value type, in milliseconds."; 745 } 747 typedef percentage { 748 type uint8 { 749 range "0..100"; 750 } 751 description 752 "Integer indicating a percentage value"; 753 } 755 typedef timeticks64 { 756 type uint64; 757 description 758 "This type is based on the timeticks type defined in 759 RFC 6991, but with 64-bit width. It represents the time, 760 modulo 2^64, in hundredths of a second between two epochs."; 761 reference "RFC 6991 - Common YANG Data Types"; 762 } 764 typedef uint24 { 765 type uint32 { 766 range "0 .. 16777215"; 767 } 768 description 769 "24-bit unsigned integer"; 770 } 772 /*** Collection of types related to MPLS/GMPLS ***/ 774 typedef generalized-label { 775 type binary; 776 description 777 "Generalized label. Nodes sending and receiving the 778 Generalized Label are aware of the link-specific 779 label context and type."; 780 reference "RFC3471: Section 3.2"; 781 } 783 typedef mpls-label-special-purpose { 784 type identityref { 785 base mpls-label-special-purpose-value; 786 } 787 description 788 "This type represents the special-purpose Multiprotocol Label 789 Switching (MPLS) label values."; 790 reference 791 "RFC3032: MPLS Label Stack Encoding. 792 RFC7274: Allocating and Retiring Special-Purpose MPLS 793 Labels."; 794 } 796 typedef mpls-label-general-use { 797 type uint32 { 798 range "16..1048575"; 799 } 800 description 801 "The 20-bit label values in an MPLS label stack entry, 802 specified in RFC3032. This label value does not include 803 the encodings of Traffic Class and TTL (time to live). 804 The label range specified by this type is for general use, 805 with special-purpose MPLS label values excluded."; 806 reference "RFC3032: MPLS Label Stack Encoding."; 807 } 809 typedef mpls-label { 810 type union { 811 type mpls-label-special-purpose; 812 type mpls-label-general-use; 813 } 814 description 815 "The 20-bit label values in an MPLS label stack entry, 816 specified in RFC3032. This label value does not include 817 the encodings of Traffic Class and TTL (time to live)."; 818 reference "RFC3032: MPLS Label Stack Encoding."; 819 } 821 /*** Groupings **/ 823 grouping mpls-label-stack { 824 description 825 "A grouping that specifies an MPLS label stack."; 826 container mpls-label-stack { 827 description 828 "Container for a list of MPLS label stack entries."; 829 list entry { 830 key "id"; 831 description 832 "List of MPLS label stack entries."; 833 leaf id { 834 type uint8; 835 description 836 "Identifies the sequence of an MPLS label stack entries. 837 An entry with smaller ID value is precedes an entry in 838 the label stack with a smaller ID."; 839 } 840 leaf label { 841 type rt-types:mpls-label; 842 description 843 "Label value."; 844 } 845 leaf ttl { 846 type uint8; 847 description 848 "Time to Live (TTL)."; 849 reference "RFC3032: MPLS Label Stack Encoding."; 850 } 851 leaf traffic-class { 852 type uint8 { 853 range "0..7"; 854 } 855 description 856 "Traffic Class (TC)."; 857 reference 858 "RFC5462: Multiprotocol Label Switching (MPLS) Label 859 Stack Entry: 'EXP' Field Renamed to 'Traffic Class' 860 Field."; 861 } 862 } 863 } 864 } 865 grouping vpn-route-targets { 866 description 867 "A grouping that specifies Route Target import-export rules 868 used in the BGP enabled Virtual Private Networks (VPNs)."; 869 reference 870 "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs). 871 RFC4664: Framework for Layer 2 Virtual Private Networks 872 (L2VPNs)"; 873 list vpn-target { 874 key "route-target"; 875 description 876 "List of Route Targets."; 877 leaf route-target { 878 type rt-types:route-target; 879 description 880 "Route Target value"; 881 } 882 leaf route-target-type { 883 type rt-types:route-target-type; 884 mandatory true; 885 description 886 "Import/export type of the Route Target."; 887 } 888 } 889 } 891 grouping geo-coordinates { 892 description 893 "Standard grouping for Geo Coordinates 894 in routing information"; 895 container geo-coordinates { 896 description 897 "Container for Geo Coordinates"; 898 leaf flags { 899 type bits { 900 bit U { 901 description 902 "If the U-bit is set, it indicates that 903 the location-uncertainty is specified, If the 904 U-bit is clear, it indicates the 905 location-uncertainty is unspecified."; 906 } 907 bit N { 908 description 909 "If the N-bit is set, it indicates the 910 latitude is north relative to the Equator. If 911 the N-bit is clear, it indicates the latitude 912 is south of the Equator."; 914 } 915 bit E { 916 description 917 "If the E-bit is set, it indicates the 918 longitute is east of the Prime Meridian. If 919 the E-bit is clear, it indicates the longitude 920 is west of the Prime Meridian."; 921 } 922 bit A { 923 description 924 "If the A-bit is set, it indicates the 925 altitude is specified. If the A-bit is clear, 926 it indicates the altitude is unspecified."; 927 } 928 bit M { 929 description 930 "If the M-bit is set, it indicates the 931 altitude is specified in meters. If the M-bit 932 is clear, it indicates the altitude is 933 specified in centimeters."; 934 } 935 bit R { 936 description 937 "If the R-bit is set, it indicates the 938 radius is specified and the encoding is for a 939 circular area. If the R-bit is clear, it 940 indicates the radius is unspecified and the 941 encoding is for a single point."; 942 } 943 bit K { 944 description 945 "If the R-bit is set, it indicates the 946 radius is specified in kilometers. If the 947 R-bit is clear, it indicates the radius is 948 specified in meters."; 949 } 950 } 951 description 952 "Bits defining granularity or semantics 953 of Geo Coordinates fields."; 954 } 955 leaf location-uncertainty { 956 type uint16; 957 description 958 "Number of centimeters of uncertainty for 959 the location."; 960 } 961 leaf latitude-degrees { 962 type uint8 { 963 range "0 .. 90"; 964 } 965 description 966 "Latitude degrees north or south of the 967 Equator (northern or southern hemisphere, 968 respectively)."; 969 } 970 leaf latitude-milliseconds { 971 type uint24 { 972 range "0 .. 3599999"; 973 } 974 description 975 "Latitude millisecond granularity (less 976 than 60 minutes or a single degree)."; 977 } 978 leaf longitude-degrees { 979 type uint8 { 980 range "0 .. 180"; 981 } 982 description 983 "Longitude degrees east or westof the 984 Prime Meridian (eastern or western hemisphere, 985 respectively)."; 986 } 987 leaf longitude-milliseconds { 988 type uint24 { 989 range "0 .. 3599999"; 990 } 991 description 992 "Longitude millisecond granularity (less 993 than 60 minutes or a single degree)."; 994 } 995 leaf altitude { 996 type int32; 997 description 998 "Height relative to sea level in 999 centimeters or meters. A negative height 1000 indicates that the location is below sea 1001 level."; 1002 } 1003 leaf radius { 1004 type uint16; 1005 description 1006 "Radius of a circle centered at the 1007 specified coordinates. The radius is specified 1008 in meters unless the K-bit is specified 1009 indicating specification in kilometers. If the 1010 radius is specified, the geo-coordinates specify 1011 the entire area of the circle defined by the 1012 radius and center point."; 1013 } 1014 } 1015 } 1016 } 1018 1020 4. IANA Routing Types YANG Module 1022 file "iana-routing-types@2017-06-29.yang" 1023 module iana-routing-types { 1024 namespace "urn:ietf:params:xml:ns:yang:iana-routing-types"; 1025 prefix iana-rt-types; 1027 organization 1028 "IANA"; 1029 contact 1030 " Internet Assigned Numbers Authority 1032 Postal: ICANN 1033 4676 Admiralty Way, Suite 330 1034 Marina del Rey, CA 90292 1036 Tel: +1 310 823 9358 1037 "; 1038 description 1039 "This module contains a collection of YANG data types 1040 considered defined by IANA and used for routing 1041 protocols. 1043 Copyright (c) 2017 IETF Trust and the persons 1044 identified as authors of the code. All rights reserved. 1046 Redistribution and use in source and binary forms, with or 1047 without modification, is permitted pursuant to, and subject 1048 to the license terms contained in, the Simplified BSD License 1049 set forth in Section 4.c of the IETF Trust's Legal Provisions 1050 Relating to IETF Documents 1051 (http://trustee.ietf.org/license-info). 1053 This version of this YANG module is part of RFC XXXX; see 1054 the RFC itself for full legal notices."; 1055 reference "RFC XXXX"; 1057 revision 2017-06-29 { 1058 description 1059 "Initial revision."; 1060 reference "RFC TBD: IANA Routing YANG Data Types"; 1061 } 1063 /*** Collection of IANA types related to routing ***/ 1064 /*** IANA address family Identities ***/ 1066 identity address-family { 1067 description 1068 "Base identity from which identities describing address 1069 families are derived."; 1070 } 1072 identity ipv4 { 1073 base address-family; 1074 description 1075 "IPv4 Address Family - IANA Registry Assigned Number: 1"; 1076 } 1078 identity ipv6 { 1079 base address-family; 1080 description 1081 "IPv6 Address Family - IANA Registry Assigned Number: 2"; 1082 } 1084 identity nsap { 1085 base address-family; 1086 description 1087 "OSI Network Service Access Point (NSAP) Address Family - 1088 IANA Registry Assigned Number: 3"; 1089 } 1091 identity hdlc { 1092 base address-family; 1093 description 1094 "High-Level Data Link Control (HDLC) Address Family - 1095 IANA Registry Assigned Number: 4"; 1096 } 1098 identity bbn1822 { 1099 base address-family; 1100 description 1101 "Bolt, Beranek, and Newman Report 1822 (BBN 1822) 1102 Address Family - IANA Registry Assigned Number: 5"; 1103 } 1105 identity ieee802 { 1106 base address-family; 1107 description 1108 "IEEE 802 Committee Address Family (aka, MAC address) - 1109 IANA Registry Assigned Number: 6"; 1110 } 1112 identity e163 { 1113 base address-family; 1114 description 1115 "ITU-T E.163 Address Family - 1116 IANA Registry Assigned Number: 7"; 1117 } 1119 identity e164 { 1120 base address-family; 1121 description 1122 "ITU-T E.164 (SMDS, Frame Relay, ATM) Address Family - 1123 IANA Registry Assigned Number: 8"; 1124 } 1126 identity f69 { 1127 base address-family; 1128 description 1129 "ITU-T F.69 (Telex) Address Family - 1130 IANA Registry Assigned Number: 9"; 1131 } 1133 identity x121 { 1134 base address-family; 1135 description 1136 "ITU-T X.121 (X.25, Frame Relay) Address Family - 1137 IANA Registry Assigned Number: 10"; 1138 } 1140 identity ipx { 1141 base address-family; 1142 description 1143 "Novell Internetwork Packet Exchange (IPX) 1144 Address Family - IANA Registry Assigned Number: 11"; 1145 } 1147 identity appletalk { 1148 base address-family; 1149 description 1150 "Apple AppleTalk Address Family - 1151 IANA Registry Assigned Number: 12"; 1152 } 1153 identity decnet-iv { 1154 base address-family; 1155 description 1156 "Digital Equipment DECnet Phase IV Address Family - 1157 IANA Registry Assigned Number: 13"; 1158 } 1160 identity vines { 1161 base address-family; 1162 description 1163 "Banyan Vines Address Family - 1164 IANA Registry Assigned Number: 14"; 1165 } 1167 identity e164-nsap { 1168 base address-family; 1169 description 1170 "ITU-T E.164 with NSAP sub-address Address Family - 1171 IANA Registry Assigned Number: 15"; 1172 } 1174 identity dns { 1175 base address-family; 1176 description 1177 "Domain Name System (DNS) Address Family - 1178 IANA Registry Assigned Number: 16"; 1179 } 1181 identity distinguished-name { 1182 base address-family; 1183 description 1184 "Distinguished Name Address Family - 1185 IANA Registry Assigned Number: 17"; 1186 } 1188 identity as-num { 1189 base address-family; 1190 description 1191 "AS Number Family - 1192 IANA Registry Assigned Number: 18"; 1193 } 1195 identity xtp-v4 { 1196 base address-family; 1197 description 1198 "Xpress Transport Protocol (XTP) over IPv4 1199 Address Family - IANA Registry Assigned Number: 19"; 1200 } 1201 identity xtp-v6 { 1202 base address-family; 1203 description 1204 "Xpress Transport Protocol (XTP) over IPv4 1205 Address Family - IANA Registry Assigned Number: 20"; 1206 } 1208 identity xtp-native { 1209 base address-family; 1210 description 1211 "Xpress Transport Protocol (XTP) native mode 1212 Address Family - IANA Registry Assigned Number: 21"; 1213 } 1215 identity fc-port { 1216 base address-family; 1217 description 1218 "Fibre Channel (FC) World-Wide Port Name 1219 Address Family - IANA Registry Assigned Number: 22"; 1220 } 1222 identity fc-node { 1223 base address-family; 1224 description 1225 "Fibre Channel (FC) World-Wide Node Name 1226 Address Family - IANA Registry Assigned Number: 23"; 1227 } 1229 identity gwid { 1230 base address-family; 1231 description 1232 "ATM Gateway Identifier (GWID) Number Family - 1233 IANA Registry Assigned Number: 24"; 1234 } 1236 identity l2vpn { 1237 base address-family; 1238 description 1239 "Layer-2 VPN (L2VPN) Address Family - 1240 IANA Registry Assigned Number: 25"; 1241 } 1243 identity mpls-tp-section-eid { 1244 base address-family; 1245 description 1246 "MPLS-TP Section Endpoint Identifier Address Family - 1247 IANA Registry Assigned Number: 26"; 1248 } 1249 identity mpls-tp-lsp-eid { 1250 base address-family; 1251 description 1252 "MPLS-TP LSP Endpoint Identifier Address Family - 1253 IANA Registry Assigned Number: 27"; 1254 } 1256 identity mpls-tp-pwe-eid { 1257 base address-family; 1258 description 1259 "MPLS-TP Pseudowire Endpoint Identifier 1260 Address Family - IANA Registry Assigned Number: 28"; 1261 } 1263 identity mt-v4 { 1264 base address-family; 1265 description 1266 "Multi-Topology IPv4 Address Family - 1267 Address Family - IANA Registry Assigned Number: 29"; 1268 } 1270 identity mt-v6 { 1271 base address-family; 1272 description 1273 "Multi-Topology IPv6 Address Family - 1274 Address Family - IANA Registry Assigned Number: 30"; 1275 } 1277 identity eigrp-common-sf { 1278 base address-family; 1279 description 1280 "Enhanced Interior Gateway Routing Protocol (EIGRP) 1281 Common Service Family Address Family - 1282 IANA Registry Assigned Number: 16384"; 1283 } 1285 identity eigrp-v4-sf { 1286 base address-family; 1287 description 1288 "Enhanced Interior Gateway Routing Protocol (EIGRP) 1289 IPv4 Service Family Address Family - 1290 IANA Registry Assigned Number: 16385"; 1291 } 1293 identity eigrp-v6-sf { 1294 base address-family; 1295 description 1296 "Enhanced Interior Gateway Routing Protocol (EIGRP) 1297 IPv6 Service Family Address Family - 1298 IANA Registry Assigned Number: 16386"; 1299 } 1301 identity lcaf { 1302 base address-family; 1303 description 1304 "LISP Canonical Address Format (LCAF) 1305 Address Family - IANA Registry Assigned Number: 16387"; 1306 } 1308 identity bgp-ls { 1309 base address-family; 1310 description 1311 "Border Gatway Protocol - Link State (BGP-LS) 1312 Address Family - IANA Registry Assigned Number: 16388"; 1313 } 1315 identity mac-48 { 1316 base address-family; 1317 description 1318 "IEEE 48-bit Media Access Control (MAC) 1319 Address Family - IANA Registry Assigned Number: 16389"; 1320 } 1322 identity mac-64 { 1323 base address-family; 1324 description 1325 "IEEE 64-bit Media Access Control (MAC) 1326 Address Family - IANA Registry Assigned Number: 16390"; 1327 } 1329 identity trill-oui { 1330 base address-family; 1331 description 1332 "TRILL IEEE Organizationally Unique Identifier (OUI) - 1333 Address Family - IANA Registry Assigned Number: 16391"; 1334 } 1336 identity trill-mac-24 { 1337 base address-family; 1338 description 1339 "TRILL Final 3 octets of 48-bit MAC address 1340 Address Family - IANA Registry Assigned Number: 16392"; 1341 } 1343 identity trill-mac-48 { 1344 base address-family; 1345 description 1346 "TRILL Final 5 octets of 64-bit MAC address 1347 Address Family - IANA Registry Assigned Number: 16393"; 1348 } 1350 identity trill-rbridge-port-id { 1351 base address-family; 1352 description 1353 "TRILL Remote Bridge (RBridge) Port ID 1354 Address Family - IANA Registry Assigned Number: 16394"; 1355 } 1357 identity trill-nickname { 1358 base address-family; 1359 description 1360 "TRILL Nickname 1361 Address Family - IANA Registry Assigned Number: 16395"; 1362 } 1364 /*** SAFIs for Multi-Protocol BGP Identities ***/ 1366 identity bgp-safi { 1367 description 1368 "Base identity from which identities describing BGP 1369 Subsequent Address Family Identifier (SAFI) - RFC 4760."; 1370 } 1372 identity unicast-safi { 1373 base bgp-safi; 1374 description 1375 "Unicast SAFI - 1376 IANA Registry Assigned Number: 1"; 1377 } 1379 identity multicast-safi { 1380 base bgp-safi; 1381 description 1382 "Multicast SAFI - 1383 IANA Registry Assigned Number: 2"; 1384 } 1386 identity labeled-unicast-safi { 1387 base bgp-safi; 1388 description 1389 "Labeled Unicast SAFI - 1390 IANA Registry Assigned Number: 4"; 1391 } 1392 identity multicast-vpn-safi { 1393 base bgp-safi; 1394 description 1395 "Multicast VPN SAFI - 1396 IANA Registry Assigned Number: 5"; 1397 } 1399 identity pseudowire-safi { 1400 base bgp-safi; 1401 description 1402 "Multi-segment Pseudowire VPN SAFI - 1403 IANA Registry Assigned Number: 6"; 1404 } 1406 identity tunnel-enap-safi { 1407 base bgp-safi; 1408 description 1409 "Tunnel Encap SAFI - 1410 IANA Registry Assigned Number: 7"; 1411 } 1413 identity mcast-vpls-safi { 1414 base bgp-safi; 1415 description 1416 "Multicast Virtual Private LAN Service (VPLS) SAFI - 1417 IANA Registry Assigned Number: 8"; 1418 } 1420 identity tunnel-safi { 1421 base bgp-safi; 1422 description 1423 "Tunnel SAFI - 1424 IANA Registry Assigned Number: 64"; 1425 } 1427 identity vpls-safi { 1428 base bgp-safi; 1429 description 1430 "Virtual Private LAN Service (VPLS) SAFI - 1431 IANA Registry Assigned Number: 65"; 1432 } 1434 identity mdt-safi { 1435 base bgp-safi; 1436 description 1437 "Multicast Distribution Tree (MDT) SAFI - 1438 IANA Registry Assigned Number: 66"; 1439 } 1440 identity v4-over-v6-safi { 1441 base bgp-safi; 1442 description 1443 "IPv4 over IPv6 SAFI - 1444 IANA Registry Assigned Number: 67"; 1445 } 1447 identity v6-over-v4-safi { 1448 base bgp-safi; 1449 description 1450 "IPv6 over IPv4 SAFI - 1451 IANA Registry Assigned Number: 68"; 1452 } 1454 identity l1-vpn-auto-discovery-safi { 1455 base bgp-safi; 1456 description 1457 "Layer-1 VPN Auto Discovery SAFI - 1458 IANA Registry Assigned Number: 69"; 1459 } 1461 identity evpn-safi { 1462 base bgp-safi; 1463 description 1464 "Ethernet VPN (EVPN) SAFI - 1465 IANA Registry Assigned Number: 70"; 1466 } 1468 identity bgp-ls-safi { 1469 base bgp-safi; 1470 description 1471 "BGP Link-State (BGP-LS) SAFI - 1472 IANA Registry Assigned Number: 71"; 1473 } 1475 identity bgp-ls-vpn-safi { 1476 base bgp-safi; 1477 description 1478 "BGP Link-State (BGP-LS) VPN SAFI - 1479 IANA Registry Assigned Number: 72"; 1480 } 1482 identity sr-te-safi { 1483 base bgp-safi; 1484 description 1485 "Segment Routing - Traffic Engineering (SR-TE) SAFI - 1486 IANA Registry Assigned Number: 73"; 1487 } 1488 identity labeled-vpn-safi { 1489 base bgp-safi; 1490 description 1491 "MPLS Labeled VPN SAFI - 1492 IANA Registry Assigned Number: 128"; 1493 } 1495 identity multicast-mpls-vpn-safi { 1496 base bgp-safi; 1497 description 1498 "Multicast for BGP/MPLS IP VPN SAFI - 1499 IANA Registry Assigned Number: 129"; 1500 } 1502 identity route-target-safi { 1503 base bgp-safi; 1504 description 1505 "Route Target SAFI - 1506 IANA Registry Assigned Number: 132"; 1507 } 1509 identity ipv4-flow-spec-safi { 1510 base bgp-safi; 1511 description 1512 "IPv4 Flow Specification SAFI - 1513 IANA Registry Assigned Number: 133"; 1514 } 1516 identity vpnv4-flow-spec-safi { 1517 base bgp-safi; 1518 description 1519 "IPv4 VPN Flow Specification SAFI - 1520 IANA Registry Assigned Number: 134"; 1521 } 1522 } 1524 1526 5. IANA Considerations 1528 RFC Ed.: In this section, replace all occurrences of 'XXXX' with the 1529 actual RFC number (and remove this note). 1531 This document registers the following namespace URIs in the IETF XML 1532 registry [RFC3688]: 1534 -------------------------------------------------------------------- 1535 URI: urn:ietf:params:xml:ns:yang:ietf-routing-types 1536 Registrant Contact: The IESG. 1537 XML: N/A, the requested URI is an XML namespace. 1538 -------------------------------------------------------------------- 1540 -------------------------------------------------------------------- 1541 URI: urn:ietf:params:xml:ns:yang:iana-routing-types 1542 Registrant Contact: IANA 1543 XML: N/A, the requested URI is an XML namespace. 1544 -------------------------------------------------------------------- 1546 This document registers the following YANG modules in the YANG Module 1547 Names registry [RFC6020]: 1549 -------------------------------------------------------------------- 1550 name: ietf-routing-types 1551 namespace: urn:ietf:params:xml:ns:yang:ietf-routing-types 1552 prefix: rt-types 1553 reference: RFC XXXX 1554 -------------------------------------------------------------------- 1556 -------------------------------------------------------------------- 1557 name: iana-routing-types 1558 namespace: urn:ietf:params:xml:ns:yang:iana-routing-types 1559 prefix: iana-rt-types 1560 reference: RFC XXXX 1561 -------------------------------------------------------------------- 1563 5.1. IANA-Maintained iana-routing-types Module 1565 This document defines the initial version of the IANA-maintained 1566 iana-routing-types YANG module. 1568 The iana-routing-types YANG module is intended to reflect the 1569 "Address Family Numbers" registry [IANA-ADDRESS-FAMILY-REGISTRY] and 1570 "Subsequent Address Family Identifiers (SAFI) Parameters" registry 1571 [IANA-SAFI-REGISTRY]. 1573 IANA has added this notes to the "iana-routing-types YANG Module" 1574 registry: 1576 Address Families and Subsequent Address Families must not be 1577 directly added to the iana-routing-types YANG module. They must 1578 instead be respectively added to the "Address Family Numbers" 1579 and "Subsequent Address Family Identifiers (SAFI) Parameters" 1580 registries. 1582 When an Address Family or Subsequent Address Family is respectively 1583 added to the "Address Family Numbers" registry or the "Subsequent 1584 Address Family Identifiers (SAFI) Parameters" registry, a new 1585 "identity" statement must be added to the iana-routing-types YANG 1586 module. The name of the "identity" is the same as the corresponding 1587 address family or SAFI only it willl be a valid YANG identifier in 1588 all lowercase and with hyphens separating individual words in 1589 compound identifiers. The following substatements to the "identity" 1590 statement should be defined: 1592 "base": Contains the value "address-family" for address families 1593 or "bgp-safi" for subsequent address families. 1595 "status": Include only if a registration has been deprecated (use 1596 the value "deprecated") or obsoleted (use the value 1597 "obsolete"). 1599 "description": Replicate the description from the registry, 1600 if any. Insert line breaks as needed so that the 1601 line does not exceed 72 characters. 1603 "reference": Replicate the reference from the registry, if any, 1604 and add the title of the document. 1606 Unassigned or reserved values are not present in these modules. 1608 When the iana-routing-types YANG module is updated, a new "revision" 1609 statement must be added in front of the existing revision statements. 1611 IANA has added this new note to the the "Address Family Numbers" and 1612 "Subsequent Address Family Identifiers (SAFI) Parameters" registries: 1614 When this registry is modified, the YANG module 1615 iana-routing-types must be updated as defined in RFC XXXX. 1617 6. Security Considerations 1619 This document defines common data types using the YANG data modeling 1620 language. The definitions themselves have no security impact on the 1621 Internet, but the usage of these definitions in concrete YANG modules 1622 might have. The security considerations spelled out in the YANG 1623 specification [RFC7950] apply for this document as well. 1625 7. Acknowledgements 1627 The Routing Area Yang Architecture design team members included Acee 1628 Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Ebben Aries, 1629 Lou Berger, Qin Wu, Rob Shakir, Xufeng Liu, and Yingzhen Qu. 1631 Thanks to Martin Bjorkland, Tom Petch, Stewart Bryant, and Radek 1632 Krejci for comments on the model and document text. Thanks to Jeff 1633 Haas and Robert Raszuk for suggestions for additional common routing 1634 types. 1636 8. References 1638 8.1. Normative References 1640 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1641 DOI 10.17487/RFC3688, January 2004, 1642 . 1644 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1645 the Network Configuration Protocol (NETCONF)", RFC 6020, 1646 DOI 10.17487/RFC6020, October 2010, 1647 . 1649 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 1650 RFC 6991, DOI 10.17487/RFC6991, July 2013, 1651 . 1653 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1654 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1655 . 1657 [IANA-ADDRESS-FAMILY-REGISTRY] 1658 "IANA Address Family Registry", 1659 . 1662 [IANA-SAFI-REGISTRY] 1663 "IANA Subsequent Address Family Identities (SAFI) 1664 Parameters Registry", . 1667 8.2. Informative References 1669 [IEEE754] IEEE, "IEEE Standard for Floating-Point Arithmetic", IEEE 1670 Std 754-2008, August 2008. 1672 [I-D.ietf-bfd-yang] 1673 Rahman, R., Zheng, L., Networks, J., Jethanandani, M., and 1674 G. Mirsky, "Yang Data Model for Bidirectional Forwarding 1675 Detection (BFD)", draft-ietf-bfd-yang-05 (work in 1676 progress), March 2017. 1678 [I-D.ietf-idr-bgp-model] 1679 Shaikh, A., Shakir, R., Patel, K., Hares, S., D'Souza, K., 1680 Bansal, D., Clemm, A., Zhdankin, A., Jethanandani, M., and 1681 X. Liu, "BGP Model for Service Provider Networks", draft- 1682 ietf-idr-bgp-model-02 (work in progress), July 2016. 1684 [I-D.ietf-ospf-yang] 1685 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 1686 "Yang Data Model for OSPF Protocol", draft-ietf-ospf- 1687 yang-07 (work in progress), March 2017. 1689 [I-D.ietf-pim-yang] 1690 Liu, X., McAllister, P., Peter, A., Sivakumar, M., Liu, 1691 Y., and f. hu, "A YANG data model for Protocol-Independent 1692 Multicast (PIM)", draft-ietf-pim-yang-08 (work in 1693 progress), April 2017. 1695 [I-D.ietf-teas-yang-rsvp] 1696 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 1697 and H. Shah, "A YANG Data Model for Resource Reservation 1698 Protocol (RSVP)", draft-ietf-teas-yang-rsvp-07 (work in 1699 progress), March 2017. 1701 [I-D.ietf-teas-yang-te] 1702 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 1703 I. Bryskin, "A YANG Data Model for Traffic Engineering 1704 Tunnels and Interfaces", draft-ietf-teas-yang-te-06 (work 1705 in progress), March 2017. 1707 [I-D.ietf-bess-l2vpn-yang] 1708 Shah, H., Brissette, P., Chen, I., Hussain, I., Wen, B., 1709 and K. Tiruveedhula, "YANG Data Model for MPLS-based 1710 L2VPN", draft-ietf-bess-l2vpn-yang-05 (work in progress), 1711 March 2017. 1713 [I-D.ietf-bess-l3vpn-yang] 1714 Jain, D., Patel, K., Brissette, P., Li, Z., Zhuang, S., 1715 Liu, X., Haas, J., Esale, S., and B. Wen, "Yang Data Model 1716 for BGP/MPLS L3 VPNs", draft-ietf-bess-l3vpn-yang-01 (work 1717 in progress), April 2017. 1719 [I-D.ietf-mpls-base-yang] 1720 Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., 1721 Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data 1722 Model for MPLS Base", draft-ietf-mpls-base-yang-04 (work 1723 in progress), March 2017. 1725 [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., 1726 Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack 1727 Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, 1728 . 1730 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 1731 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 1732 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 1733 . 1735 [RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label 1736 Switching (GMPLS) Signaling Functional Description", 1737 RFC 3471, DOI 10.17487/RFC3471, January 2003, 1738 . 1740 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private 1741 Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 1742 2006, . 1744 [RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer 1745 2 Virtual Private Networks (L2VPNs)", RFC 4664, 1746 DOI 10.17487/RFC4664, September 2006, 1747 . 1749 [RFC5701] Rekhter, Y., "IPv6 Address Specific BGP Extended Community 1750 Attribute", RFC 5701, DOI 10.17487/RFC5701, November 2009, 1751 . 1753 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 1754 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 1755 . 1757 [RFC7274] Kompella, K., Andersson, L., and A. Farrel, "Allocating 1758 and Retiring Special-Purpose MPLS Labels", RFC 7274, 1759 DOI 10.17487/RFC7274, June 2014, 1760 . 1762 [WGS84] National Imagery and Mapping Agency, "Department of 1763 Defense World Geodetic System 1984, Third Edition", 1764 NIMA TR83500.2, January 2000. 1766 Authors' Addresses 1767 Xufeng Liu 1768 Jabil 1769 8281 Greensboro Drive, Suite 200 1770 McLean VA 22102 1771 USA 1773 EMail: Xufeng_Liu@jabil.com 1775 Yingzhen Qu 1776 Futurewei Technologies, Inc. 1777 2330 Central Expressway 1778 Santa Clara CA 95050 1779 USA 1781 EMail: yingzhen.qu@huawei.com 1783 Acee Lindem 1784 Cisco Systems 1785 301 Midenhall Way 1786 Cary, NC 27513 1787 USA 1789 EMail: acee@cisco.com 1791 Christian Hopps 1792 Deutsche Telekom 1794 EMail: chopps@chopps.org 1796 Lou Berger 1797 LabN Consulting, L.L.C. 1799 EMail: lberger@labn.net