idnits 2.17.00 (12 Aug 2021) /tmp/idnits13597/draft-ietf-rtgwg-routing-types-05.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 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 doesn't use any RFC 2119 keywords, yet has text resembling RFC 2119 boilerplate text. -- The document date (May 24, 2017) is 1822 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) == Missing Reference: 'RFC3688' is mentioned on line 1310, but not defined -- 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: draft-ietf-mpls-base-yang has been published as RFC 8960 Summary: 0 errors (**), 0 flaws (~~), 12 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: November 25, 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 May 24, 2017 14 Routing Area Common YANG Data Types 15 draft-ietf-rtgwg-routing-types-05 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 November 25, 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. Requirements Language . . . . . . . . . . . . . . . . . . 2 59 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 60 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 3. IETF Routing Types YANG Module . . . . . . . . . . . . . . . 6 62 4. IANA Routing Types YANG Module . . . . . . . . . . . . . . . 18 63 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 64 5.1. IANA-Maintained iana-routing-types Module . . . . . . . . 29 65 6. Security Considerations . . . . . . . . . . . . . . . . . . . 30 66 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 30 67 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 68 8.1. Normative References . . . . . . . . . . . . . . . . . . 30 69 8.2. Informative References . . . . . . . . . . . . . . . . . 31 70 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 72 1. Introduction 74 The YANG [RFC6020] [RFC7950] is a data modeling language used to 75 model configuration data, state data, Remote Procedure Calls, and 76 notifications for network management protocols. The YANG language 77 supports a small set of built-in data types and provides mechanisms 78 to derive other types from the built-in types. 80 This document introduces a collection of common data types derived 81 from the built-in YANG data types. The derived types are designed to 82 be the common types applicable for modeling in the routing area. 84 1.1. Requirements Language 86 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 87 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this 88 document are to be interpreted as described in BCP 14, RFC 2119 89 [RFC2119]. 91 1.2. Terminology 93 The terminology for describing YANG data models is found in 94 [RFC7950]. 96 2. Overview 98 This document defines the two models for common routing types, ietf- 99 routing-types and iana-routing-types. The only module imports are 100 from [RFC6991]. The ietf-routing-types model contains common routing 101 types other than those corresponding directly to IANA mappings. 102 These include: 104 router-id 105 Router Identifiers are commonly used to identify a nodes in 106 routing and other control plane protocols. An example usage of 107 router-id can be found in [I-D.ietf-ospf-yang]. 109 route-target 110 Route Targets (RTs) are commonly used to control the distribution 111 of virtual routing and forwarding (VRF) information, see 112 [RFC4364], in support of virtual private networks (VPNs). An 113 example usage can be found in [I-D.ietf-bess-l2vpn-yang]. 115 route-target-type 116 This type defines the import and export rules of Route Targets, as 117 descibed in Section 4.3.1 of [RFC4364]. An example usage can be 118 found in [I-D.ietf-idr-bgp-model]. 120 route-distinguisher 121 Route Distinguishers (RDs) are commonly used to identify separate 122 routes in support of virtual private networks (VPNs). For 123 example, in [RFC4364], RDs are commonly used to identify 124 independent VPNs and VRFs, and more generally, to identify 125 multiple routes to the same prefix. An example usage can be found 126 in [I-D.ietf-idr-bgp-model]. 128 ipv4-multicast-group-address 129 This type defines the representation of an IPv4 multicast group 130 address, which is in the range from 224.0.0.0 to 239.255.255.255. 131 An example usage can be found in [I-D.ietf-pim-yang]. 133 ipv6-multicast-group-address 134 This type defines the representation of an IPv6 multicast group 135 address, which is in the range of FF00::/8. An example usage can 136 be found in [I-D.ietf-pim-yang]. 138 ip-multicast-group-address 139 This type represents an IP multicast group address and is IP 140 version neutral. The format of the textual representation implies 141 the IP version. An example usage can be found in 142 [I-D.ietf-pim-yang]. 144 ipv4-multicast-source-address 145 IPv4 source address type for use in multicast control protocols. 146 This type also allows the indication of wildcard sources, i.e., 147 "*". An example of where this type may/will be used is 148 [I-D.ietf-pim-yang]. 150 ipv6-multicast-source-address 151 IPv6 source address type for use in multicast control protocols. 152 This type also allows the indication of wildcard sources, i.e., 153 "*". An example of where this type may/will be used is 154 [I-D.ietf-pim-yang]. 156 bandwidth-ieee-float32 157 Bandwidth in IEEE 754 floating point 32-bit binary format 158 [IEEE754]. Commonly used in Traffic Engineering control plane 159 protocols. An example of where this type may/will be used is 160 [I-D.ietf-ospf-yang]. 162 link-access-type 163 This type identifies the IGP link type. An example of where this 164 type may/will be used is [I-D.ietf-ospf-yang]. 166 timer-multiplier 167 This type is used in conjunction with a timer-value type. It is 168 generally used to indicate define the number of timer-value 169 intervals that may expire before a specific event must occur. 170 Examples of this include the arrival of any BFD packets, see 171 [RFC5880] Section 6.8.4, or hello_interval in [RFC3209]. Example 172 of where this type may/will be used is [I-D.ietf-idr-bgp-model] 173 and [I-D.ietf-teas-yang-rsvp]. 175 timer-value-seconds16 176 This type covers timers which can be set in seconds, not set, or 177 set to infinity. This type supports a range of values that can be 178 represented in a uint16 (2 octets). An example of where this type 179 may/will be used is [I-D.ietf-ospf-yang]. 181 timer-value-seconds32 182 This type covers timers which can be set in seconds, not set, or 183 set to infinity. This type supports a range of values that can be 184 represented in a uint32 (4 octets). An example of where this type 185 may/will be used is [I-D.ietf-teas-yang-rsvp]. 187 timer-value-milliseconds 188 This type covers timers which can be set in milliseconds, not set, 189 or set to infinity. This type supports a range of values that can 190 be represented in a uint32 (4 octets). Examples of where this 191 type may/will be used include [I-D.ietf-teas-yang-rsvp] and 192 [I-D.ietf-bfd-yang]. 194 percentage 195 This type defines a percentage with a range of 0-100%. An example 196 usage can be found in [I-D.ietf-idr-bgp-model]. 198 timeticks64 199 This type is based on the timeticks type defined in [RFC6991] but 200 with 64-bit precision. It represents the time in hundredths of a 201 second between two epochs. An example usage can be found in 202 [I-D.ietf-idr-bgp-model]. 204 generalized-label 205 This type represents a generalized label for Generalized Multi- 206 Protocol Label Switching (GMPLS) [RFC3471]. The Generalized Label 207 does not identify its type, which is known from the context. An 208 example usage can be found in [I-D.ietf-teas-yang-te]. 210 mpls-label-special-purpose 211 This type represents the special-purpose Multiprotocol Label 212 Switching (MPLS) label values [RFC7274]. An example usage can be 213 found in [I-D.ietf-mpls-base-yang]. 215 mpls-label-general-use 216 The 20 bits label values in an MPLS label stack entry, specified 217 in [RFC3032]. This label value does not include the encodings of 218 Traffic Class and TTL (time to live). The label range specified 219 by this type is for general use, with special-purpose MPLS label 220 values excluded. An example usage can be found in 221 [I-D.ietf-mpls-base-yang]. 223 mpls-label 224 The 20 bits label values in an MPLS label stack entry, specified 225 in [RFC3032]. This label value does not include the encodings of 226 Traffic Class and TTL (time to live). The label range specified 227 by this type covers the general use values and the special-purpose 228 label values. An example usage can be found in 229 [I-D.ietf-mpls-base-yang]. 231 This document defines the following YANG groupings: 233 mpls-label-stack 234 This grouping defines a reusable collection of schema nodes 235 representing an MPLS label stack [RFC3032]. An example usage can 236 be found in [I-D.ietf-mpls-base-yang]. 238 vpn-route-targets 239 This grouping defines a reusable collection of schema nodes 240 representing Route Target import-export rules used in the BGP 241 enabled Virtual Private Networks (VPNs). [RFC4364][RFC4664]. An 242 example usage can be found in [I-D.ietf-bess-l2vpn-yang]. 244 The iana-routing-types model contains common routing types 245 corresponding directly to IANA mappings. These include: 247 address-family 248 This type defines values for use in address family identifiers. 249 The values are based on the IANA Address Family Numbers Registry 250 [IANA-ADDRESS-FAMILY-REGISTRY]. An example usage can be found in 251 [I-D.ietf-idr-bgp-model]. 253 subsequent-address-family 254 This type defines values for use in subsequent address family 255 (SAFI) identifiers. The values are based on the IANA Subsequent 256 Address Family Identifiers (SAFI) Parameters Registry 257 [IANA-SAFI-REGISTRY]. 259 3. IETF Routing Types YANG Module 261 file "ietf-routing-types@2017-05-24.yang" 262 module ietf-routing-types { 264 namespace "urn:ietf:params:xml:ns:yang:ietf-routing-types"; 265 prefix "rt-types"; 267 import ietf-yang-types { 268 prefix "yang"; 269 } 271 import ietf-inet-types { 272 prefix "inet"; 273 } 275 organization 276 "IETF RTGWG - Routing Area Working Group"; 278 contact 279 "WG Web: 280 WG List: 282 Editor: Xufeng Lui 283 284 Yingzhen Qu 285 286 Acee Lindem 287 288 Christian Hopps 289 290 Lou Berger 291 "; 293 description 294 "This module contains a collection of YANG data types 295 considered generally useful for routing protocols. 297 Copyright (c) 2017 IETF Trust and the persons 298 identified as authors of the code. All rights reserved. 300 Redistribution and use in source and binary forms, with or 301 without modification, is permitted pursuant to, and subject 302 to the license terms contained in, the Simplified BSD License 303 set forth in Section 4.c of the IETF Trust's Legal Provisions 304 Relating to IETF Documents 305 (http://trustee.ietf.org/license-info). 307 This version of this YANG module is part of RFC XXXX; see 308 the RFC itself for full legal notices."; 310 reference "RFC XXXX"; 312 revision 2017-05-24 { 313 description 314 "Initial revision."; 315 reference 316 "RFC TBD: Routing YANG Data Types"; 317 } 319 /*** Identities related to MPLS/GMPLS ***/ 320 identity mpls-label-special-purpose-value { 321 description 322 "Base identity for deriving identities describing 323 special-purpose Multiprotocol Label Switching (MPLS) label 324 values."; 325 reference 326 "RFC7274: Allocating and Retiring Special-Purpose MPLS 327 Labels."; 328 } 330 identity ipv4-explicit-null-label { 331 base mpls-label-special-purpose-value; 332 description 333 "This identity represents the IPv4 Explicit NULL Label."; 334 reference 335 "RFC3032: MPLS Label Stack Encoding. Section 2.1."; 336 } 338 identity router-alert-label { 339 base mpls-label-special-purpose-value; 340 description 341 "This identity represents the Router Alert Label."; 342 reference 343 "RFC3032: MPLS Label Stack Encoding. Section 2.1."; 344 } 346 identity ipv6-explicit-null-label { 347 base mpls-label-special-purpose-value; 348 description 349 "This identity represents the IPv6 Explicit NULL Label."; 350 reference 351 "RFC3032: MPLS Label Stack Encoding. Section 2.1."; 352 } 354 identity implicit-null-label { 355 base mpls-label-special-purpose-value; 356 description 357 "This identity represents the Implicit NULL Label."; 358 reference 359 "RFC3032: MPLS Label Stack Encoding. Section 2.1."; 360 } 362 identity entropy-label-indicator { 363 base mpls-label-special-purpose-value; 364 description 365 "This identity represents the Entropy Label Indicator."; 366 reference 367 "RFC6790: The Use of Entropy Labels in MPLS Forwarding. 368 Sections 3 and 10.1."; 369 } 371 identity gal-label { 372 base mpls-label-special-purpose-value; 373 description 374 "This identity represents the Generic Associated Channel Label 375 (GAL)."; 376 reference 377 "RFC5586: MPLS Generic Associated Channel. 378 Sections 4 and 10."; 379 } 381 identity oam-alert-label { 382 base mpls-label-special-purpose-value; 383 description 384 "This identity represents the OAM Alert Label."; 385 reference 386 "RFC3429: Assignment of the 'OAM Alert Label' for Multiprotocol 387 Label Switching Architecture (MPLS) Operation and Maintenance 388 (OAM) Functions. 389 Sections 3 and 6."; 390 } 392 identity extension-label { 393 base mpls-label-special-purpose-value; 394 description 395 "This identity represents the Extension Label."; 396 reference 397 "RFC7274: Allocating and Retiring Special-Purpose MPLS Labels. 398 Sections 3.1 and 5."; 399 } 401 /*** Collection of types related to routing ***/ 402 typedef router-id { 403 type yang:dotted-quad; 404 description 405 "A 32-bit number in the dotted quad format assigned to each 406 router. This number uniquely identifies the router within an 407 Autonomous System."; 408 } 410 /*** Collection of types related to VPN ***/ 411 typedef route-target { 412 type string { 413 pattern 414 '(0:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' 415 + '[0-5]?\d{0,3}\d):(429496729[0-5]|42949672[0-8]\d|' 416 + '4294967[01]\d{2}|429496[0-6]\d{3}|42949[0-5]\d{4}|' 417 + '4294[0-8]\d{5}|429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|' 418 + '[0-3]?\d{0,8}\d))|' 419 + '(1:(((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|' 420 + '1\d{2}|2[0-4]\d|25[0-5])):(6553[0-5]|655[0-2]\d|' 421 + '65[0-4]\d{2}|6[0-4]\d{3}|[0-5]?\d{0,3}\d))|' 422 + '(2:(429496729[0-5]|42949672[0-8]\d|4294967[01]\d{2}|' 423 + '429496[0-6]\d{3}|42949[0-5]\d{4}|4294[0-8]\d{5}|' 424 + '429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|[0-3]?\d{0,8}\d):' 425 + '(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' 426 + '[0-5]?\d{0,3}\d))'; 427 } 428 description 429 "A route target is an 8-octet BGP extended community 430 initially identifying a set of sites in a BGP 431 VPN (RFC 4364). However, it has since taken on a more 432 general role in BGP route filtering. 433 A route target consists of three fields: 434 a 2-octet type field, an administrator field, 435 and an assigned number field. 436 According to the data formats for type 0, 1, and 2 defined in 437 RFC4360 and RFC5668, the encoding pattern is defined as: 439 0:2-octet-asn:4-octet-number 440 1:4-octet-ipv4addr:2-octet-number 441 2:4-octet-asn:2-octet-number. 443 Some valid examples are: 0:100:100, 1:1.1.1.1:100, and 444 2:1234567890:203."; 445 reference 446 "RFC4360: BGP Extended Communities Attribute. 447 RFC5668: 4-Octet AS Specific BGP Extended Community."; 448 } 450 typedef route-target-type { 451 type enumeration { 452 enum "import" { 453 value "0"; 454 description 455 "The route target applies to route import."; 456 } 457 enum "export" { 458 value "1"; 459 description 460 "The route target applies to route export."; 461 } 462 enum "both" { 463 value "2"; 464 description 465 "The route target applies to both route import and 466 route export."; 467 } 468 } 469 description 470 "Indicates the role a route target takes 471 in route filtering."; 472 reference 473 "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; 474 } 476 typedef route-distinguisher { 477 type string { 478 pattern 479 '(0:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' 480 + '[0-5]?\d{0,3}\d):(429496729[0-5]|42949672[0-8]\d|' 481 + '4294967[01]\d{2}|429496[0-6]\d{3}|42949[0-5]\d{4}|' 482 + '4294[0-8]\d{5}|429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|' 483 + '[0-3]?\d{0,8}\d))|' 484 + '(1:(((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|' 485 + '1\d{2}|2[0-4]\d|25[0-5])):(6553[0-5]|655[0-2]\d|' 486 + '65[0-4]\d{2}|6[0-4]\d{3}|[0-5]?\d{0,3}\d))|' 487 + '(2:(429496729[0-5]|42949672[0-8]\d|4294967[01]\d{2}|' 488 + '429496[0-6]\d{3}|42949[0-5]\d{4}|4294[0-8]\d{5}|' 489 + '429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|[0-3]?\d{0,8}\d):' 490 + '(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|' 491 + '[0-5]?\d{0,3}\d))|' 492 + '(([3-9a-fA-F]|[1-9a-fA-F][\da-fA-F]{1,3}):' 493 + '[\da-fA-F]{1,12})'; 494 } 495 description 496 "A route distinguisher is an 8-octet value used to distinguish 497 routes from different BGP VPNs (RFC 4364). A route 498 distinguisher consists of three fields: A 2-octet type field, 499 an administrator field, and an assigned number field. 500 According to the data formats for type 0, 1, and 2 defined in 501 RFC4364, the encoding pattern is defined as: 503 0:2-octet-asn:4-octet-number 504 1:4-octet-ipv4addr:2-octet-number 505 2:4-octet-asn:2-octet-number. 506 2-octet-other-hex-number:6-octet-hex-number 508 Some valid examples are: 0:100:100, 1:1.1.1.1:100, and 509 2:1234567890:203."; 510 reference 511 "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)."; 512 } 514 /*** Collection of types common to multicast ***/ 515 typedef ipv4-multicast-group-address { 516 type inet:ipv4-address { 517 pattern '(2((2[4-9])|(3[0-9]))\.).*'; 518 } 519 description 520 "This type represents an IPv4 multicast group address, 521 which is in the range from 224.0.0.0 to 239.255.255.255."; 522 reference 523 "RFC1112: Host Extensions for IP Multicasting."; 524 } 526 typedef ipv6-multicast-group-address { 527 type inet:ipv6-address { 528 pattern 529 '(([fF]{2}[0-9a-fA-F]{2}):).*'; 530 } 531 description 532 "This type represents an IPv6 multicast group address, 533 which is in the range of FF00::/8."; 534 reference 535 "RFC4291: IP Version 6 Addressing Architecture. Sec 2.7. 536 RFC7346: IPv6 Multicast Address Scopes."; 537 } 539 typedef ip-multicast-group-address { 540 type union { 541 type ipv4-multicast-group-address; 542 type ipv6-multicast-group-address; 543 } 544 description 545 "This type represents a version-neutral IP multicast group 546 address. The format of the textual representation implies 547 the IP version."; 548 } 550 typedef ipv4-multicast-source-address { 551 type union { 552 type enumeration { 553 enum '*' { 554 description 555 "Any source address."; 556 } 557 } 558 type inet:ipv4-address; 559 } 560 description 561 "Multicast source IPv4 address type."; 562 } 564 typedef ipv6-multicast-source-address { 565 type union { 566 type enumeration { 567 enum '*' { 568 description 569 "Any source address."; 570 } 571 } 572 type inet:ipv6-address; 573 } 574 description 575 "Multicast source IPv6 address type."; 576 } 578 /*** Collection of types common to protocols ***/ 579 typedef bandwidth-ieee-float32 { 580 type string { 581 pattern 582 '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' 583 + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' 584 + '1[01]\d|0?\d?\d)?)'; 585 } 586 description 587 "Bandwidth in IEEE 754 floating point 32-bit binary format: 588 (-1)**(S) * 2**(Exponent-127) * (1 + Fraction), 589 where Exponent uses 8 bits, and Fraction uses 23 bits. 590 The units are octets per second. 591 The encoding format is the external hexadecimal-significant 592 character sequences specified in IEEE 754 and C99. The 593 format is restricted to be normalized, non-negative, and 594 non-fraction: 0x1.hhhhhhp{+}d or 0X1.HHHHHHP{+}D 595 where 'h' and 'H' are hexadecimal digits, 'd' and 'D' are 596 integers in the range of [0..127]. 597 When six hexadecimal digits are used for 'hhhhhh' or 'HHHHHH', 598 the least significant digit must be an even number. 599 'x' and 'X' indicate hexadecimal; 'p' and 'P' indicate power 600 of two. Some examples are: 0x0p0, 0x1p10, and 601 0x1.abcde2p+20"; 602 reference 603 "IEEE Std 754-2008: IEEE Standard for Floating-Point 604 Arithmetic."; 605 } 607 typedef link-access-type { 608 type enumeration { 609 enum "broadcast" { 610 description 611 "Specify broadcast multi-access network."; 612 } 613 enum "non-broadcast-multiaccess" { 614 description 615 "Specify Non-Broadcast Multi-Access (NBMA) network."; 616 } 617 enum "point-to-multipoint" { 618 description 619 "Specify point-to-multipoint network."; 620 } 621 enum "point-to-point" { 622 description 623 "Specify point-to-point network."; 624 } 625 } 626 description 627 "Link access type."; 628 } 630 typedef timer-multiplier { 631 type uint8; 632 description 633 "The number of timer value intervals that should be 634 interpreted as a failure."; 635 } 637 typedef timer-value-seconds16 { 638 type union { 639 type uint16 { 640 range "1..65535"; 641 } 642 type enumeration { 643 enum "infinity" { 644 description "The timer is set to infinity."; 645 } 646 enum "not-set" { 647 description "The timer is not set."; 648 } 649 } 650 } 651 units seconds; 652 description "Timer value type, in seconds (16-bit range)."; 653 } 655 typedef timer-value-seconds32 { 656 type union { 657 type uint32 { 658 range "1..4294967295"; 659 } 660 type enumeration { 661 enum "infinity" { 662 description "The timer is set to infinity."; 663 } 664 enum "not-set" { 665 description "The timer is not set."; 666 } 667 } 668 } 669 units seconds; 670 description "Timer value type, in seconds (32-bit range)."; 672 } 674 typedef timer-value-milliseconds { 675 type union { 676 type uint32{ 677 range "1..4294967295"; 678 } 679 type enumeration { 680 enum "infinity" { 681 description "The timer is set to infinity."; 682 } 683 enum "not-set" { 684 description "The timer is not set."; 685 } 686 } 687 } 688 units milliseconds; 689 description "Timer value type, in milliseconds."; 690 } 692 typedef percentage { 693 type uint8 { 694 range "0..100"; 695 } 696 description 697 "Integer indicating a percentage value"; 698 } 700 typedef timeticks64 { 701 type uint64; 702 description 703 "This type is based on the timeticks type defined in 704 RFC 6991, but with 64-bit width. It represents the time, 705 modulo 2^64, in hundredths of a second between two epochs."; 706 reference 707 "RFC 6991 - Common YANG Data Types"; 708 } 710 /*** Collection of types related to MPLS/GMPLS ***/ 711 typedef generalized-label { 712 type binary; 713 description 714 "Generalized label. Nodes sending and receiving the 715 Generalized Label are aware of the link-specific 716 label context and type."; 717 reference "RFC3471: Section 3.2"; 718 } 719 typedef mpls-label-special-purpose { 720 type identityref { 721 base mpls-label-special-purpose-value; 722 } 723 description 724 "This type represents the special-purpose Multiprotocol Label 725 Switching (MPLS) label values."; 726 reference 727 "RFC3032: MPLS Label Stack Encoding. 728 RFC7274: Allocating and Retiring Special-Purpose MPLS 729 Labels."; 730 } 732 typedef mpls-label-general-use { 733 type uint32 { 734 range "16..1048575"; 735 } 736 description 737 "The 20-bit label values in an MPLS label stack entry, 738 specified in RFC3032. This label value does not include 739 the encodings of Traffic Class and TTL (time to live). 740 The label range specified by this type is for general use, 741 with special-purpose MPLS label values excluded."; 742 reference 743 "RFC3032: MPLS Label Stack Encoding."; 744 } 746 typedef mpls-label { 747 type union { 748 type mpls-label-special-purpose; 749 type mpls-label-general-use; 750 } 751 description 752 "The 20-bit label values in an MPLS label stack entry, 753 specified in RFC3032. This label value does not include 754 the encodings of Traffic Class and TTL (time to live)."; 755 reference 756 "RFC3032: MPLS Label Stack Encoding."; 757 } 759 /*** Groupings **/ 760 grouping mpls-label-stack { 761 description 762 "A grouping that specifies an MPLS label stack."; 763 container mpls-label-stack { 764 description 765 "Container for a list of MPLS label stack entries."; 766 list entry { 767 key "id"; 768 description 769 "List of MPLS label stack entries."; 770 leaf id { 771 type uint8; 772 description 773 "Identifies the sequence of an MPLS label stack entries. 774 An entry with smaller ID value is precedes an entry in 775 the label stack with a smaller ID."; 776 } 777 leaf label { 778 type rt-types:mpls-label; 779 description 780 "Label value."; 781 } 782 leaf ttl { 783 type uint8; 784 description 785 "Time to Live (TTL)."; 786 reference 787 "RFC3032: MPLS Label Stack Encoding."; 788 } 789 leaf traffic-class { 790 type uint8 { 791 range "0..7"; 792 } 793 description 794 "Traffic Class (TC)."; 795 reference 796 "RFC5462: Multiprotocol Label Switching (MPLS) Label 797 Stack Entry: 'EXP' Field Renamed to 'Traffic Class' 798 Field."; 799 } 800 } 801 } 802 } 804 grouping vpn-route-targets { 805 description 806 "A grouping that specifies Route Target import-export rules 807 used in the BGP enabled Virtual Private Networks (VPNs)."; 808 reference 809 "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs). 810 RFC4664: Framework for Layer 2 Virtual Private Networks 811 (L2VPNs)"; 812 list vpn-target { 813 key route-target; 814 description 815 "List of Route Targets."; 816 leaf route-target { 817 type rt-types:route-target; 818 description 819 "Route Target value"; 820 } 821 leaf route-target-type { 822 type rt-types:route-target-type; 823 mandatory true; 824 description 825 "Import/export type of the Route Target."; 826 } 827 } 828 } 829 } 830 832 4. IANA Routing Types YANG Module 834 file "iana-routing-types@2017-05-24.yang" 835 module iana-routing-types { 837 namespace "urn:ietf:params:xml:ns:yang:iana-routing-types"; 838 prefix "iana-rt-types"; 840 organization "IANA"; 842 contact 843 " Internet Assigned Numbers Authority 845 Postal: ICANN 846 4676 Admiralty Way, Suite 330 847 Marina del Rey, CA 90292 849 Tel: +1 310 823 9358 850 "; 852 description 853 "This module contains a collection of YANG data types 854 considered defined by IANA and used for routing 855 protocols. 857 Copyright (c) 2017 IETF Trust and the persons 858 identified as authors of the code. All rights reserved. 860 Redistribution and use in source and binary forms, with or 861 without modification, is permitted pursuant to, and subject 862 to the license terms contained in, the Simplified BSD License 863 set forth in Section 4.c of the IETF Trust's Legal Provisions 864 Relating to IETF Documents 865 (http://trustee.ietf.org/license-info). 867 This version of this YANG module is part of RFC XXXX; see 868 the RFC itself for full legal notices."; 870 reference "RFC XXXX"; 872 revision 2017-05-24 { 873 description 874 "Initial revision."; 875 reference 876 "RFC TBD: IANA Routing YANG Data Types"; 877 } 879 /*** Collection of IANA types related to routing ***/ 881 /*** IANA address family Identities ***/ 882 identity address-family { 883 description 884 "Base identity from which identities describing address 885 families are derived."; 886 } 887 identity ipv4 { 888 base address-family; 889 description 890 "IPv4 Address Family - IANA Registry Assigned Number: 1"; 891 } 892 identity ipv6 { 893 base address-family; 894 description 895 "IPv6 Address Family - IANA Registry Assigned Number: 2"; 896 } 897 identity nsap { 898 base address-family; 899 description 900 "OSI Network Service Access Point (NSAP) Address Family - 901 IANA Registry Assigned Number: 3"; 902 } 903 identity hdlc { 904 base address-family; 905 description 906 "High-Level Data Link Control (HDLC) Address Family - 907 IANA Registry Assigned Number: 4"; 908 } 909 identity bbn1822 { 910 base address-family; 911 description 912 "Bolt, Beranek, and Newman Report 1822 (BBN 1822) 913 Address Family - IANA Registry Assigned Number: 5"; 914 } 915 identity ieee802 { 916 base address-family; 917 description 918 "IEEE 802 Committee Address Family (aka, MAC address) - 919 IANA Registry Assigned Number: 6"; 920 } 921 identity e163 { 922 base address-family; 923 description 924 "ITU-T E.163 Address Family - 925 IANA Registry Assigned Number: 7"; 926 } 927 identity e164 { 928 base address-family; 929 description 930 "ITU-T E.164 (SMDS, Frame Relay, ATM) Address Family - 931 IANA Registry Assigned Number: 8"; 932 } 933 identity f69 { 934 base address-family; 935 description 936 "ITU-T F.69 (Telex) Address Family - 937 IANA Registry Assigned Number: 9"; 938 } 939 identity x121 { 940 base address-family; 941 description 942 "ITU-T X.121 (X.25, Frame Relay) Address Family - 943 IANA Registry Assigned Number: 10"; 944 } 945 identity ipx { 946 base address-family; 947 description 948 "Novell Internetwork Packet Exchange (IPX) 949 Address Family - IANA Registry Assigned Number: 11"; 950 } 951 identity appletalk { 952 base address-family; 953 description 954 "Apple AppleTalk Address Family - 955 IANA Registry Assigned Number: 12"; 956 } 957 identity decnet-iv { 958 base address-family; 959 description 960 "Digital Equipment DECnet Phase IV Address Family - 961 IANA Registry Assigned Number: 13"; 962 } 963 identity vines { 964 base address-family; 965 description 966 "Banyan Vines Address Family - 967 IANA Registry Assigned Number: 14"; 968 } 969 identity e164-nsap { 970 base address-family; 971 description 972 "ITU-T E.164 with NSAP sub-address Address Family - 973 IANA Registry Assigned Number: 15"; 974 } 975 identity dns { 976 base address-family; 977 description 978 "Domain Name System (DNS) Address Family - 979 IANA Registry Assigned Number: 16"; 980 } 981 identity distinguished-name { 982 base address-family; 983 description 984 "Distinguished Name Address Family - 985 IANA Registry Assigned Number: 17"; 986 } 987 identity as-num { 988 base address-family; 989 description 990 "AS Number Family - 991 IANA Registry Assigned Number: 18"; 992 } 993 identity xtp-v4 { 994 base address-family; 995 description 996 "Xpress Transport Protocol (XTP) over IPv4 997 Address Family - IANA Registry Assigned Number: 19"; 998 } 999 identity xtp-v6 { 1000 base address-family; 1001 description 1002 "Xpress Transport Protocol (XTP) over IPv4 1003 Address Family - IANA Registry Assigned Number: 20"; 1004 } 1005 identity xtp-native { 1006 base address-family; 1007 description 1008 "Xpress Transport Protocol (XTP) native mode 1009 Address Family - IANA Registry Assigned Number: 21"; 1010 } 1011 identity fc-port { 1012 base address-family; 1013 description 1014 "Fibre Channel (FC) World-Wide Port Name 1015 Address Family - IANA Registry Assigned Number: 22"; 1016 } 1017 identity fc-node { 1018 base address-family; 1019 description 1020 "Fibre Channel (FC) World-Wide Node Name 1021 Address Family - IANA Registry Assigned Number: 23"; 1022 } 1023 identity gwid { 1024 base address-family; 1025 description 1026 "ATM Gateway Identifier (GWID) Number Family - 1027 IANA Registry Assigned Number: 24"; 1028 } 1029 identity l2vpn { 1030 base address-family; 1031 description 1032 "Layer-2 VPN (L2VPN) Address Family - 1033 IANA Registry Assigned Number: 25"; 1034 } 1035 identity mpls-tp-section-eid { 1036 base address-family; 1037 description 1038 "MPLS-TP Section Endpoint Identifier Address Family - 1039 IANA Registry Assigned Number: 26"; 1040 } 1041 identity mpls-tp-lsp-eid { 1042 base address-family; 1043 description 1044 "MPLS-TP LSP Endpoint Identifier Address Family - 1045 IANA Registry Assigned Number: 27"; 1046 } 1047 identity mpls-tp-pwe-eid { 1048 base address-family; 1049 description 1050 "MPLS-TP Pseudowire Endpoint Identifier 1051 Address Family - IANA Registry Assigned Number: 28"; 1052 } 1053 identity mt-v4 { 1054 base address-family; 1055 description 1056 "Multi-Topology IPv4 Address Family - 1057 Address Family - IANA Registry Assigned Number: 29"; 1058 } 1059 identity mt-v6 { 1060 base address-family; 1061 description 1062 "Multi-Topology IPv6 Address Family - 1063 Address Family - IANA Registry Assigned Number: 30"; 1064 } 1065 identity eigrp-common-sf { 1066 base address-family; 1067 description 1068 "Enhanced Interior Gateway Routing Protocol (EIGRP) 1069 Common Service Family Address Family - 1070 IANA Registry Assigned Number: 16384"; 1071 } 1072 identity eigrp-v4-sf { 1073 base address-family; 1074 description 1075 "Enhanced Interior Gateway Routing Protocol (EIGRP) 1076 IPv4 Service Family Address Family - 1077 IANA Registry Assigned Number: 16385"; 1078 } 1079 identity eigrp-v6-sf { 1080 base address-family; 1081 description 1082 "Enhanced Interior Gateway Routing Protocol (EIGRP) 1083 IPv6 Service Family Address Family - 1084 IANA Registry Assigned Number: 16386"; 1085 } 1086 identity lcaf { 1087 base address-family; 1088 description 1089 "LISP Canonical Address Format (LCAF) 1090 Address Family - IANA Registry Assigned Number: 16387"; 1091 } 1092 identity bgp-ls { 1093 base address-family; 1094 description 1095 "Border Gatway Protocol - Link State (BGP-LS) 1096 Address Family - IANA Registry Assigned Number: 16388"; 1097 } 1098 identity mac-48 { 1099 base address-family; 1100 description 1101 "IEEE 48-bit Media Access Control (MAC) 1102 Address Family - IANA Registry Assigned Number: 16389"; 1104 } 1105 identity mac-64 { 1106 base address-family; 1107 description 1108 "IEEE 64-bit Media Access Control (MAC) 1109 Address Family - IANA Registry Assigned Number: 16390"; 1110 } 1111 identity trill-oui { 1112 base address-family; 1113 description 1114 "TRILL IEEE Organizationally Unique Identifier (OUI) - 1115 Address Family - IANA Registry Assigned Number: 16391"; 1116 } 1117 identity trill-mac-24 { 1118 base address-family; 1119 description 1120 "TRILL Final 3 octets of 48-bit MAC address 1121 Address Family - IANA Registry Assigned Number: 16392"; 1122 } 1123 identity trill-mac-48 { 1124 base address-family; 1125 description 1126 "TRILL Final 5 octets of 64-bit MAC address 1127 Address Family - IANA Registry Assigned Number: 16393"; 1128 } 1129 identity trill-rbridge-port-id { 1130 base address-family; 1131 description 1132 "TRILL Remote Bridge (RBridge) Port ID 1133 Address Family - IANA Registry Assigned Number: 16394"; 1134 } 1135 identity trill-nickname { 1136 base address-family; 1137 description 1138 "TRILL Nickname 1139 Address Family - IANA Registry Assigned Number: 16395"; 1140 } 1142 /*** SAFIs for Multi-Protocol BGP Identities ***/ 1143 identity bgp-safi { 1144 description 1145 "Base identity from which identities describing BGP 1146 Subsequent Address Family Identifier (SAFI) - RFC 4760."; 1147 } 1149 identity unicast-safi { 1150 base bgp-safi; 1151 description 1152 "Unicast SAFI - 1153 IANA Registry Assigned Number: 1"; 1154 } 1156 identity multicast-safi { 1157 base bgp-safi; 1158 description 1159 "Multicast SAFI - 1160 IANA Registry Assigned Number: 2"; 1161 } 1163 identity labeled-unicast-safi { 1164 base bgp-safi; 1165 description 1166 "Labeled Unicast SAFI - 1167 IANA Registry Assigned Number: 4"; 1168 } 1170 identity multicast-vpn-safi { 1171 base bgp-safi; 1172 description 1173 "Multicast VPN SAFI - 1174 IANA Registry Assigned Number: 5"; 1175 } 1177 identity pseudowire-safi { 1178 base bgp-safi; 1179 description 1180 "Multi-segment Pseudowire VPN SAFI - 1181 IANA Registry Assigned Number: 6"; 1182 } 1184 identity tunnel-enap-safi { 1185 base bgp-safi; 1186 description 1187 "Tunnel Encap SAFI - 1188 IANA Registry Assigned Number: 7"; 1189 } 1191 identity mcast-vpls-safi { 1192 base bgp-safi; 1193 description 1194 "Multicast Virtual Private LAN Service (VPLS) SAFI - 1195 IANA Registry Assigned Number: 8"; 1196 } 1198 identity tunnel-safi { 1199 base bgp-safi; 1200 description 1201 "Tunnel SAFI - 1202 IANA Registry Assigned Number: 64"; 1203 } 1205 identity vpls-safi { 1206 base bgp-safi; 1207 description 1208 "Virtual Private LAN Service (VPLS) SAFI - 1209 IANA Registry Assigned Number: 65"; 1210 } 1212 identity mdt-safi { 1213 base bgp-safi; 1214 description 1215 "Multicast Distribution Tree (MDT) SAFI - 1216 IANA Registry Assigned Number: 66"; 1217 } 1219 identity v4-over-v6-safi { 1220 base bgp-safi; 1221 description 1222 "IPv4 over IPv6 SAFI - 1223 IANA Registry Assigned Number: 67"; 1224 } 1226 identity v6-over-v4-safi { 1227 base bgp-safi; 1228 description 1229 "IPv6 over IPv4 SAFI - 1230 IANA Registry Assigned Number: 68"; 1231 } 1233 identity l1-vpn-auto-discovery-safi { 1234 base bgp-safi; 1235 description 1236 "Layer-1 VPN Auto Discovery SAFI - 1237 IANA Registry Assigned Number: 69"; 1238 } 1240 identity evpn-safi { 1241 base bgp-safi; 1242 description 1243 "Ethernet VPN (EVPN) SAFI - 1244 IANA Registry Assigned Number: 70"; 1245 } 1247 identity bgp-ls-safi { 1248 base bgp-safi; 1249 description 1250 "BGP Link-State (BGP-LS) SAFI - 1251 IANA Registry Assigned Number: 71"; 1252 } 1254 identity bgp-ls-vpn-safi { 1255 base bgp-safi; 1256 description 1257 "BGP Link-State (BGP-LS) VPN SAFI - 1258 IANA Registry Assigned Number: 72"; 1259 } 1261 identity sr-te-safi { 1262 base bgp-safi; 1263 description 1264 "Segment Routing - Traffic Engineering (SR-TE) SAFI - 1265 IANA Registry Assigned Number: 73"; 1266 } 1268 identity labeled-vpn-safi { 1269 base bgp-safi; 1270 description 1271 "MPLS Labeled VPN SAFI - 1272 IANA Registry Assigned Number: 128"; 1273 } 1275 identity multicast-mpls-vpn-safi { 1276 base bgp-safi; 1277 description 1278 "Multicast for BGP/MPLS IP VPN SAFI - 1279 IANA Registry Assigned Number: 129"; 1280 } 1282 identity route-target-safi { 1283 base bgp-safi; 1284 description 1285 "Route Target SAFI - 1286 IANA Registry Assigned Number: 132"; 1287 } 1289 identity ipv4-flow-spec-safi { 1290 base bgp-safi; 1291 description 1292 "IPv4 Flow Specification SAFI - 1293 IANA Registry Assigned Number: 133"; 1294 } 1295 identity vpnv4-flow-spec-safi { 1296 base bgp-safi; 1297 description 1298 "IPv4 VPN Flow Specification SAFI - 1299 IANA Registry Assigned Number: 134"; 1300 } 1301 } 1302 1304 5. IANA Considerations 1306 RFC Ed.: In this section, replace all occurrences of 'XXXX' with the 1307 actual RFC number (and remove this note). 1309 This document registers the following namespace URIs in the IETF XML 1310 registry [RFC3688]: 1312 -------------------------------------------------------------------- 1313 URI: urn:ietf:params:xml:ns:yang:ietf-routing-types 1314 Registrant Contact: The IESG. 1315 XML: N/A, the requested URI is an XML namespace. 1316 -------------------------------------------------------------------- 1318 -------------------------------------------------------------------- 1319 URI: urn:ietf:params:xml:ns:yang:iana-routing-types 1320 Registrant Contact: IANA 1321 XML: N/A, the requested URI is an XML namespace. 1322 -------------------------------------------------------------------- 1324 This document registers the following YANG modules in the YANG Module 1325 Names registry [RFC6020]: 1327 -------------------------------------------------------------------- 1328 name: ietf-routing-types 1329 namespace: urn:ietf:params:xml:ns:yang:ietf-routing-types 1330 prefix: rt-types 1331 reference: RFC XXXX 1332 -------------------------------------------------------------------- 1334 -------------------------------------------------------------------- 1335 name: iana-routing-types 1336 namespace: urn:ietf:params:xml:ns:yang:iana-routing-types 1337 prefix: iana-rt-types 1338 reference: RFC XXXX 1339 -------------------------------------------------------------------- 1341 5.1. IANA-Maintained iana-routing-types Module 1343 This document defines the initial version of the IANA-maintained 1344 iana-routing-types YANG module. 1346 The iana-routing-types YANG module is intended to reflect the 1347 "Address Family Numbers" registry [IANA-ADDRESS-FAMILY-REGISTRY] and 1348 "Subsequent Address Family Identifiers (SAFI) Parameters" registry 1349 [IANA-SAFI-REGISTRY]. 1351 IANA has added this notes to the "iana-routing-types YANG Module" 1352 registry: 1354 Address Families and Subsequent Address Families must not be 1355 directly added to the iana-routing-types YANG module. They must 1356 instead be respectively added to the "Address Family Numbers" 1357 and "Subsequent Address Family Identifiers (SAFI) Parameters" 1358 registries. 1360 When an Address Family or Subsequent Address Family is respectively 1361 added to the "Address Family Numbers" registry or the "Subsequent 1362 Address Family Identifiers (SAFI) Parameters" registry, a new 1363 "identity" statement must be added to the iana-routing-types YANG 1364 module. The name of the "identity" is the same as the corresponding 1365 address family or SAFI only it willl be a valid YANG identifier in 1366 all lowercase and with hyphens separating individual words in 1367 compound identifiers. The following substatements to the "identity" 1368 statement should be defined: 1370 "base": Contains the value "address-family" for address families 1371 or "bgp-safi" for subsequent address families. 1373 "status": Include only if a registration has been deprecated (use 1374 the value "deprecated") or obsoleted (use the value 1375 "obsolete"). 1377 "description": Replicate the description from the registry, 1378 if any. Insert line breaks as needed so that the 1379 line does not exceed 72 characters. 1381 "reference": Replicate the reference from the registry, if any, 1382 and add the title of the document. 1384 Unassigned or reserved values are not present in these modules. 1386 When the iana-routing-types YANG module is updated, a new "revision" 1387 statement must be added in front of the existing revision statements. 1389 IANA has added this new note to the the "Address Family Numbers" and 1390 "Subsequent Address Family Identifiers (SAFI) Parameters" registries: 1392 When this registry is modified, the YANG module 1393 iana-routing-types must be updated as defined in RFC XXXX. 1395 6. Security Considerations 1397 This document defines common data types using the YANG data modeling 1398 language. The definitions themselves have no security impact on the 1399 Internet, but the usage of these definitions in concrete YANG modules 1400 might have. The security considerations spelled out in the YANG 1401 specification [RFC7950] apply for this document as well. 1403 7. Acknowledgements 1405 The Routing Area Yang Architecture design team members included Acee 1406 Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Ebben Aries, 1407 Lou Berger, Qin Wu, Rob Shakir, Xufeng Liu, and Yingzhen Qu. 1409 Thanks to Martin Bjorkland, Tom Petch, Stewart Bryant, and Radek 1410 Krejci for comments on the model and document text. 1412 8. References 1414 8.1. Normative References 1416 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1417 Requirement Levels", BCP 14, RFC 2119, 1418 DOI 10.17487/RFC2119, March 1997, 1419 . 1421 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1422 the Network Configuration Protocol (NETCONF)", RFC 6020, 1423 DOI 10.17487/RFC6020, October 2010, 1424 . 1426 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 1427 RFC 6991, DOI 10.17487/RFC6991, July 2013, 1428 . 1430 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 1431 RFC 7950, DOI 10.17487/RFC7950, August 2016, 1432 . 1434 [IANA-ADDRESS-FAMILY-REGISTRY] 1435 "IANA Address Family Registry", 1436 . 1439 [IANA-SAFI-REGISTRY] 1440 "IANA Subsequent Address Family Identities (SAFI) 1441 Parameters Registry", . 1444 8.2. Informative References 1446 [IEEE754] IEEE, "IEEE Standard for Floating-Point Arithmetic", IEEE 1447 Std 754-2008, August 2008. 1449 [I-D.ietf-bfd-yang] 1450 Rahman, R., Zheng, L., Networks, J., Jethanandani, M., and 1451 G. Mirsky, "Yang Data Model for Bidirectional Forwarding 1452 Detection (BFD)", draft-ietf-bfd-yang-05 (work in 1453 progress), March 2017. 1455 [I-D.ietf-idr-bgp-model] 1456 Shaikh, A., Shakir, R., Patel, K., Hares, S., D'Souza, K., 1457 Bansal, D., Clemm, A., Zhdankin, A., Jethanandani, M., and 1458 X. Liu, "BGP Model for Service Provider Networks", draft- 1459 ietf-idr-bgp-model-02 (work in progress), July 2016. 1461 [I-D.ietf-ospf-yang] 1462 Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, 1463 "Yang Data Model for OSPF Protocol", draft-ietf-ospf- 1464 yang-07 (work in progress), March 2017. 1466 [I-D.ietf-pim-yang] 1467 Liu, X., McAllister, P., Peter, A., Sivakumar, M., Liu, 1468 Y., and f. hu, "A YANG data model for Protocol-Independent 1469 Multicast (PIM)", draft-ietf-pim-yang-08 (work in 1470 progress), April 2017. 1472 [I-D.ietf-teas-yang-rsvp] 1473 Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., 1474 and H. Shah, "A YANG Data Model for Resource Reservation 1475 Protocol (RSVP)", draft-ietf-teas-yang-rsvp-07 (work in 1476 progress), March 2017. 1478 [I-D.ietf-teas-yang-te] 1479 Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and 1480 I. Bryskin, "A YANG Data Model for Traffic Engineering 1481 Tunnels and Interfaces", draft-ietf-teas-yang-te-06 (work 1482 in progress), March 2017. 1484 [I-D.ietf-bess-l2vpn-yang] 1485 Shah, H., Brissette, P., Chen, I., Hussain, I., Wen, B., 1486 and K. Tiruveedhula, "YANG Data Model for MPLS-based 1487 L2VPN", draft-ietf-bess-l2vpn-yang-05 (work in progress), 1488 March 2017. 1490 [I-D.ietf-mpls-base-yang] 1491 Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., 1492 Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data 1493 Model for MPLS Base", draft-ietf-mpls-base-yang-04 (work 1494 in progress), March 2017. 1496 [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., 1497 Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack 1498 Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, 1499 . 1501 [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., 1502 and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP 1503 Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, 1504 . 1506 [RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label 1507 Switching (GMPLS) Signaling Functional Description", 1508 RFC 3471, DOI 10.17487/RFC3471, January 2003, 1509 . 1511 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private 1512 Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February 1513 2006, . 1515 [RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer 1516 2 Virtual Private Networks (L2VPNs)", RFC 4664, 1517 DOI 10.17487/RFC4664, September 2006, 1518 . 1520 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 1521 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 1522 . 1524 [RFC7274] Kompella, K., Andersson, L., and A. Farrel, "Allocating 1525 and Retiring Special-Purpose MPLS Labels", RFC 7274, 1526 DOI 10.17487/RFC7274, June 2014, 1527 . 1529 Authors' Addresses 1531 Xufeng Liu 1532 Jabil 1533 8281 Greensboro Drive, Suite 200 1534 McLean VA 22102 1535 USA 1537 EMail: Xufeng_Liu@jabil.com 1539 Yingzhen Qu 1540 Futurewei Technologies, Inc. 1541 2330 Central Expressway 1542 Santa Clara CA 95050 1543 USA 1545 EMail: yingzhen.qu@huawei.com 1547 Acee Lindem 1548 Cisco Systems 1549 301 Midenhall Way 1550 Cary, NC 27513 1551 USA 1553 EMail: acee@cisco.com 1555 Christian Hopps 1556 Deutsche Telekom 1558 EMail: chopps@chopps.org 1560 Lou Berger 1561 LabN Consulting, L.L.C. 1563 EMail: lberger@labn.net