idnits 2.17.1 draft-liu-yang-ted-00.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: ---------------------------------------------------------------------------- == The page length should not exceed 58 lines per page, but there was 16 longer pages, the longest (page 1) being 61 lines == It seems as if not all pages are separated by form feeds - found 0 form feeds but 17 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 140 has weird spacing: '...g-value uin...' == Line 167 has weird spacing: '...g-value uin...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (October 27, 2014) is 3470 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) ** Obsolete normative reference: RFC 6021 (Obsoleted by RFC 6991) Summary: 1 error (**), 0 flaws (~~), 6 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Xufeng Liu 3 Internet Draft Ericsson 4 Intended status: Standards Track Vishnu Pavan Beeram 5 Juniper Networks 6 Alexander Clemm 7 Cisco 8 Igor Bryskin 9 Aihua Guo 10 ADVA Optical Networking 11 Expires: April 27, 2015 October 27, 2014 13 A Yang module for Traffic Engineering Database (TED) 14 draft-liu-yang-ted-00 16 Status of this Memo 18 This Internet-Draft is submitted in full conformance with the 19 provisions of BCP 78 and BCP 79. 21 Internet-Drafts are working documents of the Internet Engineering 22 Task Force (IETF), its areas, and its working groups. Note that 23 other groups may also distribute working documents as Internet- 24 Drafts. 26 Internet-Drafts are draft documents valid for a maximum of six 27 months and may be updated, replaced, or obsoleted by other documents 28 at any time. It is inappropriate to use Internet-Drafts as 29 reference material or to cite them other than as "work in progress." 31 The list of current Internet-Drafts can be accessed at 32 http://www.ietf.org/ietf/1id-abstracts.txt 34 The list of Internet-Draft Shadow Directories can be accessed at 35 http://www.ietf.org/shadow.html 37 This Internet-Draft will expire on April 27, 2015. 39 Copyright Notice 41 Copyright (c) 2014 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (http://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with 49 respect to this document. Code Components extracted from this 50 document must include Simplified BSD License text as described in 51 Section 4.e of the Trust Legal Provisions and are provided without 52 warranty as described in the Simplified BSD License. 54 Abstract 56 This document defines a YANG module for Traffic Engineering 57 Database. 59 Conventions used in this document 61 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 62 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 63 document are to be interpreted as described in RFC-2119 [RFC2119]. 65 Table of Contents 67 1. Introduction...................................................2 68 2. Tree Structure.................................................3 69 3. TED Yang Module................................................4 70 4. Security Considerations.......................................16 71 5. IANA Considerations...........................................16 72 6. Normative References..........................................16 73 7. Acknowledgments...............................................17 75 1. Introduction 77 MPLS-TE and GMPLS based Traffic-Engineering (TE) systems provide 78 tools to establish paths through a network in a controlled manner. 79 TE paths are computed by examining the Traffic Engineering Database 80 (TED) and selecting a sequence of links and nodes that are capable 81 of catering to the requirements of the path to be established. The 82 TED contains all the relevant information that a Path computation 83 function needs and is typically constructed from information 84 distributed by link-state protocols like OSPF-TE, ISIS-TE and BGP- 85 LS. 87 This document defines a YANG [RFC6020] [RFC6021] module for Traffic 88 Engineering Database. This "TED" module contains a set of groupings 89 capturing data related to traffic engineering and can be used as a 90 helper-module for other YANG modules that define OSPF-Topology, ISIS 91 Topology or Abstract TE Topology. 93 2. Tree Structure 95 The structure of the groupings in this module are depicted below. 96 Brackets enclose list keys, "rw" means configuration data, "ro" 97 means operational state data, and "?" designates optional nodes. 99 module: ted 101 grouping ted-node-attributes 102 +--rw te-router-id-ipv4? inet:ipv4-address 103 +--rw te-router-id-ipv6? inet:ipv6-address 104 +--rw ipv4-local-address* [ipv4-prefix] 105 | +--rw ipv4-prefix inet:ipv4-prefix 106 +--rw ipv6-local-address* [ipv6-prefix] 107 | +--rw ipv6-prefix inet:ipv6-prefix 108 | +--rw prefix-option? uint8 109 +--rw pcc-capabilities? pcc-capabilities 111 grouping ted-link-attributes 112 +--rw link-index? uint64 113 +--rw information-source? enumeration 114 +--rw credibility-preference? uint16 115 +--rw admin-status? enumeration 116 +--rw oper-status? enumeration 117 +--rw area-id? binary 118 +--rw color? uint32 119 +--rw max-link-bandwidth? decimal64 120 +--rw max-resv-link-bandwidth? decimal64 121 +--rw unreserved-bandwidth* [priority] 122 | +--rw priority uint8 123 | +--rw bandwidth? decimal64 124 +--rw te-default-metric? uint32 125 +--rw link-protection-type? enumeration 126 +--rw interface-switching-capabilities* [switching-capability] 127 | +--rw switching-capability ted:switching-capabilities 128 | +--rw encoding? ted:encoding-type 129 | +--rw max-lsp-bandwidth* [priority] 130 | | +--rw priority uint8 131 | | +--rw bandwidth? decimal64 132 | +--rw packet-switch-capable 133 | | +--rw minimum-lsp-bandwidth? decimal64 134 | | +--rw interface-mtu? uint16 135 | +--rw time-division-multiplex-capable 136 | +--rw minimum-lsp-bandwidth? decimal64 137 | +--rw indication? enumeration 138 +--rw srlg 139 | +--rw srlg-values* [srlg-value] 140 | +--rw srlg-value uint32 141 +--rw alt-information-sources* [information-source] 142 +--rw information-source enumeration 143 +--rw credibility-preference? uint16 144 +--rw link-index? uint64 145 +--rw color? uint32 146 +--rw max-link-bandwidth? decimal64 147 +--rw max-resv-link-bandwidth? decimal64 148 +--rw unreserved-bandwidth* [priority] 149 | +--rw priority uint8 150 | +--rw bandwidth? decimal64 151 +--rw te-default-metric? uint32 152 +--rw link-protection-type? enumeration 153 +--rw interface-switching-capabilities* [switching-capability] 154 | +--rw switching-capability ted:switching-capabilities 155 | +--rw encoding? ted:encoding-type 156 | +--rw max-lsp-bandwidth* [priority] 157 | | +--rw priority uint8 158 | | +--rw bandwidth? decimal64 159 | +--rw packet-switch-capable 160 | | +--rw minimum-lsp-bandwidth? decimal64 161 | | +--rw interface-mtu? uint16 162 | +--rw time-division-multiplex-capable 163 | +--rw minimum-lsp-bandwidth? decimal64 164 | +--rw indication? enumeration 165 +--rw srlg 166 +--rw srlg-values* [srlg-value] 167 +--rw srlg-value uint32 169 3. TED Yang Module 171 module ted { 172 yang-version 1; 173 namespace "urn:TBD:params:xml:ns:yang:network:ted"; 174 // replace with IANA namespace when assigned 175 prefix ted; 177 import ietf-inet-types { 178 prefix "inet"; 179 } 181 organization "TBD"; 182 contact "TBD"; 183 description 184 "Helper module to hold trafic engineering attributes for 185 any topology on which trafic engineering is enabled."; 187 revision 2014-10-27 { 188 description 189 "Initial revision"; 190 reference 191 "RFC 4220: Traffic Engineering Link Management Information 192 Base. 193 RFC 6825: Traffic Engineering Database Management Information 194 Base in Support of MPLS-TE/GMPLS. 195 RFC 4802: Generalized Multiprotocol Label Switching (GMPLS) 196 Traffic Engineering Management Information Base"; 197 } 199 typedef switching-capabilities { 200 type enumeration { 201 enum "psc-1" { 202 value 1; 203 description 204 "Packet-Switch Capable-1 (PSC-1)"; 205 } 206 enum "evpl" { 207 value 30; 208 description 209 "Ethernet Virtual Private Line (EVPL)"; 210 } 211 enum "l2sc" { 212 value 51; 213 description 214 "Layer-2 Switch Capable (L2SC)"; 215 } 216 enum "tdm" { 217 value 100; 218 description 219 "Time-Division-Multiplex Capable (TDM)"; 220 } 221 enum "otn-tdm" { 222 value 110; 223 description 224 "OTN-TDM Capable"; 225 } 226 enum "lsc" { 227 value 150; 228 description 229 "Lambda-Switch Capable (LSC)"; 230 } 231 enum "fsc" { 232 value 200; 233 description 234 "Fiber-Switch Capable (FSC)"; 235 } 236 } 237 description 238 "Switching Capabilities of an interface."; 239 reference 240 "RFC 5307: IS-IS Extensions in Support of Generalized 241 Multi-Protocol Label Switching (GMPLS). 242 RFC 3812: Multiprotocol Label Switching (MPLS) Traffic 243 Engineering (TE) Management Information Base (MIB). 244 RFC 7074: Revised Definition of the GMPLS Switching 245 Capability and Type Fields. 246 RFC 7138: Traffic Engineering Extensions to OSPF 247 for GMPLS Control of Evolving G.709 Optical Transport 248 Networks. 249 RFC 7139: GMPLS Signaling Extensions for Control of Evolving 250 G.709 Optical Transport Networks."; 251 } 253 typedef encoding-type { 254 type enumeration { 255 enum "not-gmpls" { 256 value 0; 257 description 258 "GMPLS is not in use"; 259 } 260 enum "packet" { 261 value 1; 262 description 263 "Packet"; 264 } 265 enum "ethernet" { 266 value 2; 267 description 268 "Ethernet"; 269 } 270 enum "pdh" { 271 value 3; 272 description 273 "PDH"; 274 } 275 enum "sdh-sonet" { 276 value 5; 277 description 278 "SDH or SONET"; 279 } 280 enum "digital-wrapper" { 281 value 7; 282 description 283 "Digital Wrapper"; 284 } 285 enum "lambda" { 286 value 8; 287 description 288 "Lambda"; 289 } 290 enum "fiber" { 291 value 9; 292 description 293 "Fiber"; 294 } 295 enum "fiber-channel" { 296 value 11; 297 description 298 "Fiber Channel"; 299 } 300 enum "oduk" { 301 value 12; 302 description 303 "G.709 OKUk (Digital Path)"; 304 } 305 enum "optical-channel" { 306 value 13; 307 description 308 "G.709 Optical Channel"; 309 } 310 } 311 description 312 "Encoding type of an interface."; 313 reference 314 "RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS) 315 Signaling Functional Description. 316 RFC 4328: Generalized Multi-Protocol Label Switching (GMPLS) 317 Signaling Extensions for G.709 Optical Transport Networks 318 Control."; 320 } 322 typedef pcc-capabilities { 323 type bits { 324 bit path-computation-with-gmpls-link-constraints { 325 position 0; 326 description "Link constraints"; 327 } 328 bit bidirectional-path-computation { 329 position 1; 330 description "Bidirectional"; 331 } 332 bit diverse-path-computation { 333 position 2; 334 description "Diverse"; 335 } 336 bit load-balanced-path-computation { 337 position 3; 338 description "Load balanced"; 339 } 340 bit synchronized-path-computation { 341 position 4; 342 description "Synchronized"; 343 } 344 bit support-for-multiple-objective-functions { 345 position 5; 346 description "Multiple objective functions"; 347 } 348 bit support-for-additive-path-constraints { 349 position 6; 350 description "Additive path constraints"; 351 } 352 bit support-for-request-prioritization { 353 position 7; 354 description "Request prioritization"; 355 } 356 bit support-for-multiple-requests-per-message { 357 position 8; 358 description "Multiple requests per message"; 359 } 360 } 361 description 362 "Path Computation Capabilities."; 363 reference 364 "RFC 5088, draft-ietf-pce-disco-protoc-isis-07.txt 365 OSPF/ISIS Protocol Extensions for Path Computation Element 366 (PCE) Discovery."; 367 } 369 grouping ted-node-attributes { 370 description 371 "Identifier to uniquely identify a node in TED"; 372 reference 373 "RFC 5305, RFC 6119: IPv6 Traffic Engineering in IS-IS/OSPF"; 374 leaf te-router-id-ipv4 { 375 type inet:ipv4-address; 376 description 377 "Globally unique IPv4 Traffic Engineering Router ID."; 378 } 379 leaf te-router-id-ipv6 { 380 type inet:ipv6-address; 381 description 382 "Globally unique IPv6 Traffic Engineering Router ID"; 383 } 384 list ipv4-local-address { 385 key "ipv4-prefix"; 386 description 387 "List of IPv4 Local Address(OSPF). RFC 5786"; 389 leaf ipv4-prefix { 390 type inet:ipv4-prefix; 391 description 392 "Local IPv4 address for the node"; 393 } 394 } 395 list ipv6-local-address { 396 key "ipv6-prefix"; 397 description 398 "List of IPv6 Local Address."; 399 reference 400 "RFC 5786: Advertising a Router's Local Addresses 401 in OSPF Traffic Engineering (TE) Extensions"; 402 leaf ipv6-prefix { 403 type inet:ipv6-prefix; 404 description 405 "Local IPv6 address for the node"; 406 } 407 leaf prefix-option { 408 type uint8; 409 description 410 "IPv6 prefix option."; 411 } 413 } 414 leaf pcc-capabilities { 415 type pcc-capabilities; 416 description 417 "OSPF/ISIS PCC capabilities"; 418 } 419 } 421 grouping ted-link-info-attributes { 422 description 423 "Advertised TE informaton attributes."; 424 leaf information-source { 425 type enumeration { 426 enum "unknown" { 427 description "The source is unknown"; 428 } 429 enum "locally-configured" { 430 description "Configured TE link"; 431 } 432 enum "ospfv2" { 433 description "OSPFv2"; 434 } 435 enum "ospfv3" { 436 description "OSPFv3"; 437 } 438 enum "isis" { 439 description "ISIS"; 440 } 441 enum "other" { 442 description "Other source"; 443 } 444 } 445 description 446 "Indicates the source of the information about the link"; 447 } 448 leaf credibility-preference { 449 type uint16; 450 description 451 "The preference value to calculate the traffic engineering 452 database credibility value used for tie-break selection 453 between different information-source values. 454 Higher value is more preferable."; 455 } 456 leaf link-index { 457 type uint64; 458 description 459 "The link identifier. If OSPF is used, this represents an 460 ospfLsdbID. If IS-IS is used, this represents an isisLSPID. 461 If a locally configured link is used, this object represents 462 an unique value, which is locally defined in a router."; 463 } 464 leaf color { 465 type uint32; 466 description 467 "Administrative group or color of the link"; 468 } 469 leaf max-link-bandwidth { 470 type decimal64 { 471 fraction-digits 2; 472 } 473 description 474 "Maximum bandwidth that can be see on this link in this 475 direction. Units in bytes per second"; 476 } 478 leaf max-resv-link-bandwidth { 479 type decimal64 { 480 fraction-digits 2; 481 } 482 description 483 "Maximum amount of bandwidth that can be reserved in this 484 direction in this link. Units in bytes per second"; 485 } 486 list unreserved-bandwidth { 487 key "priority"; 488 max-elements "8"; 489 description 490 "Unreserved bandwidth for 0-7 priority levels. Units in 491 bytes per second"; 492 leaf priority { 493 type uint8 { 494 range "0..7"; 495 } 496 description "Priority"; 497 } 498 leaf bandwidth { 499 type decimal64 { 500 fraction-digits 2; 501 } 502 description 503 "Unreserved bandwidth for this level"; 504 } 506 } 507 leaf te-default-metric { 508 type uint32; 509 description 510 "Traffic Engineering Metric"; 511 } 512 leaf link-protection-type { 513 type enumeration { 514 enum "unprotected" { 515 description "unprotected"; 516 } 517 enum "extra-traffic" { 518 description "Extra traffic"; 519 } 520 enum "shared" { 521 description "Shared"; 522 } 523 enum "1-for-1" { 524 description "One for one protection"; 525 } 526 enum "1-plus-1" { 527 description "One plus one protection"; 528 } 529 enum "enhanced" { 530 description "Enhanced protection"; 531 } 532 } 533 description 534 "Link Protection Type desired for this link"; 535 } 536 list interface-switching-capabilities { 537 key "switching-capability"; 538 description 539 "List of interface capabilities for this interface"; 540 leaf switching-capability { 541 type ted:switching-capabilities; 542 description 543 "Switching Capability for this interface"; 544 } 545 leaf encoding { 546 type ted:encoding-type; 547 description 548 "Encoding supported by this interface"; 549 } 550 list max-lsp-bandwidth { 551 key "priority"; 552 max-elements "8"; 553 description 554 "Maximum LSP Bandwidth at priorities 0-7"; 555 leaf priority { 556 type uint8 { 557 range "0..7"; 558 } 559 description "Priority"; 560 } 561 leaf bandwidth { 562 type decimal64 { 563 fraction-digits 2; 564 } 565 description 566 "Max LSP Bandwidth for this level"; 567 } 568 } 569 container packet-switch-capable { 570 when "../switching-capability = PSC-1 or " 571 +"../switching-capability = PSC-2 or " 572 +"../switching-capability = PSC-3 or " 573 +"../switching-capability = PSC-4" { 574 description "Valid only for PSC"; 575 } 576 description 577 "Interface has packet-switching capabilities"; 578 leaf minimum-lsp-bandwidth { 579 type decimal64 { 580 fraction-digits 2; 581 } 582 description 583 "Minimum LSP Bandwidth. Units in bytes per second"; 584 } 585 leaf interface-mtu { 586 type uint16; 587 description 588 "Interface MTU"; 589 } 590 } 591 container time-division-multiplex-capable { 592 when "../switching-capability = TDM" { 593 description "Valid only for TDM"; 594 } 595 description 596 "Interface has time-division multiplex capabilities"; 598 leaf minimum-lsp-bandwidth { 599 type decimal64 { 600 fraction-digits 2; 601 } 602 description 603 "Minimum LSP Bandwidth. Units in bytes per second"; 604 } 605 leaf indication { 606 type enumeration { 607 enum "standard" { 608 description "Indicates support of standard SONET/SDH"; 609 } 610 enum "arbitrary" { 611 description "Indicates support of arbitrary 612 SONET/SDH"; 614 } 615 } 616 description 617 "Indication whether the interface supports Standard or 618 Arbitrary SONET/SDH"; 619 } 620 } 621 } 622 container srlg { 623 description 624 "Shared Risk Link Group Attributes"; 625 uses srlg-attributes; 626 } 627 } 629 grouping ted-link-attributes { 630 description 631 "TED Attributes associated with the link."; 632 reference 633 "RFC 3630, RFC 3784: IS-IS / OSPF Traffic Engineering (TE)"; 634 leaf admin-status { 635 type enumeration { 636 enum up { 637 value 1; 638 description 639 "Enabled."; 640 } 641 enum down { 642 value 2; 643 description 644 "Disabled."; 646 } 647 enum testing { 648 value 3; 649 description 650 "In some test mode."; 651 } 652 } 653 description 654 "The desired state of the link."; 655 } 656 leaf oper-status { 657 type enumeration { 658 enum up { 659 value 1; 660 description 661 "Operational up"; 662 } 663 enum down { 664 value 2; 665 description 666 "Operational down."; 667 } 668 enum testing { 669 value 3; 670 description 671 "In some test mode"; 672 } 673 enum unknown { 674 value 4; 675 description 676 "Status cannot be determined for some reason."; 677 } 678 } 679 description 680 "The current operational state of the link."; 681 } 682 leaf area-id { 683 type binary { 684 length 1..13; 685 } 686 description 687 "This object indicates the area identifier of the IGP. 688 If OSPF is used to advertise LSA, this represents an 689 ospfArea. If IS-IS is used, this represents an area address. 690 Otherwise, this is zero."; 691 } 692 uses ted-link-info-attributes; 693 list alt-information-sources { 694 key "information-source"; 695 description 696 "A list of information sources"; 697 uses ted-link-info-attributes; 698 } 699 } 701 grouping srlg-attributes { 702 description 703 "Shared Risk Link Group Attributes"; 704 reference 705 "RFC 5307, RFC 4203: ISIS / OSPF Extensions in Support of 706 Generalized Multi-Protocol Label Switching (GMPLS)"; 707 list srlg-values { 708 key "srlg-value"; 709 description 710 "List of Shared Risk Link Group this interface belongs to."; 711 leaf srlg-value { 712 type uint32; 713 description 714 "Shared Risk Link Group value"; 715 } 716 } 717 } 718 } 719 4. Security Considerations 721 The YANG module by itself does not create any security implications. 723 5. IANA Considerations 725 TBD 727 6. Normative References 729 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 730 Requirement Levels", BCP 14, RFC 2119, March 1997. 732 [RFC6020] Bjorklund, M., "YANG - A Data Modeling language for the 733 Network Configuration Protocol (NETCONF)", RFC 6020, 734 October 2010. 736 [RFC6021] Schoenwaelder, J., "Common YANG Data Types", RFC 6021, 737 October 2010. 739 7. Acknowledgments 741 The authors of this draft would like to thank the 742 authors/contributors of for 743 laying the foundation for Topology specific YANG modules. 745 Authors' Addresses 747 Xufeng Liu 748 Ericsson 749 Xufeng.liu@ericsson.com 751 Vishnu Pavan Beeram 752 Juniper Networks 753 Email: vbeeram@juniper.net 755 Alexander Clemm 756 Cisco 757 alex@cisco.com 759 Igor Bryskin 760 ADVA Optical Networking 761 Email: ibryskin@advaoptical.com 763 Aihua Guo 764 ADVA Optical Networking 765 Email: aguo@advaoptical.com