idnits 2.17.1 draft-chen-pals-pw-yang-02.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 18 instances of too long lines in the document, the longest one being 86 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 103 has weird spacing: '...nnel-id str...' == Line 159 has weird spacing: '...rw name str...' == Line 161 has weird spacing: '...rw name str...' -- The document date (May 9, 2017) is 2541 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) == Unused Reference: 'RFC4447' is defined on line 683, but no explicit reference was found in the text == Unused Reference: 'RFC7267' is defined on line 699, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-bess-l2vpn-yang' is defined on line 706, but no explicit reference was found in the text ** Obsolete normative reference: RFC 4447 (Obsoleted by RFC 8077) == Outdated reference: A later version (-10) exists of draft-ietf-bess-l2vpn-yang-05 Summary: 2 errors (**), 0 flaws (~~), 8 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PALS WG Ran. Chen 3 Internet-Draft Fangwei. Hu 4 Intended status: Standards Track ZTE Corporation 5 Expires: November 10, 2017 May 9, 2017 7 YANG Data Model for PW Protocol 8 draft-chen-pals-pw-yang-02.txt 10 Abstract 12 This document defines a YANG data model for PW configuration and 13 operation. 15 Status of This Memo 17 This Internet-Draft is submitted in full conformance with the 18 provisions of BCP 78 and BCP 79. 20 Internet-Drafts are working documents of the Internet Engineering 21 Task Force (IETF). Note that other groups may also distribute 22 working documents as Internet-Drafts. The list of current Internet- 23 Drafts is at http://datatracker.ietf.org/drafts/current/. 25 Internet-Drafts are draft documents valid for a maximum of six months 26 and may be updated, replaced, or obsoleted by other documents at any 27 time. It is inappropriate to use Internet-Drafts as reference 28 material or to cite them other than as "work in progress." 30 This Internet-Draft will expire on November 10, 2017. 32 Copyright Notice 34 Copyright (c) 2017 IETF Trust and the persons identified as the 35 document authors. All rights reserved. 37 This document is subject to BCP 78 and the IETF Trust's Legal 38 Provisions Relating to IETF Documents 39 (http://trustee.ietf.org/license-info) in effect on the date of 40 publication of this document. Please review these documents 41 carefully, as they describe your rights and restrictions with respect 42 to this document. Code Components extracted from this document must 43 include Simplified BSD License text as described in Section 4.e of 44 the Trust Legal Provisions and are provided without warranty as 45 described in the Simplified BSD License. 47 Table of Contents 49 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 50 2. SS-PW . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 51 3. MS-PW . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 52 4. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 53 5. PW YANG Data Model . . . . . . . . . . . . . . . . . . . . . 4 54 6. Security Considerations . . . . . . . . . . . . . . . . . . . 15 55 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 56 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 57 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 58 9.1. Normative references . . . . . . . . . . . . . . . . . . 15 59 9.2. Informative references . . . . . . . . . . . . . . . . . 15 60 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 62 1. Introduction 64 YANG[RFC6020]is a data definition language that was introduced to 65 define the contents of a conceptual data store that allows networked 66 devices to be managed using NETCONF ([RFC6241]) YANG ([RFC6020])is a 67 modular language that represents data structures in an XML or JSON 68 tree format, and is used as a data modeling language for the NETCONF. 70 This document defines a YANG data model for PW configuration and 71 operation. It includes point-to-point SS-PWs and MS-PWs that are 72 signaled via LDP, and also for static provisioned (MPLS-TP) SS-PWs 73 and MS-PWs. 75 2. SS-PW 77 This container defines all the configuration parameters related to 78 ss-pw. 80 It includes pw name, peer ip, tunnel parameters, pw-type, parameters 81 associated with interface, parameters associated with LDP pw and 82 parameters associated with static pw. 84 3. MS-PW 86 This container defines all the configuration parameters related to 87 ms-pw. 89 It includes ms-pw name, list of pw-segment-a and list of pw-segment- 90 z. 92 4. Design of the Data Model 94 module: ietf-pw 95 +--rw pwe3 96 +--rw ss-pw 97 | +--rw ss-pw* [name] 98 | +--rw name string 99 | +--rw peer-ip? inet:ip-address 100 | +--rw cw-capable? cw-capable-type 101 | +--rw type? pw-type 102 | +--rw tunnel* [tunnel-id] 103 | | +--rw tunnel-id string 104 | +--rw leaf-type? pw-type 105 | +--rw autodiscovery-enable? boolean 106 | +--rw interfaces 107 | | +--rw interface* [name] 108 | | +--rw name if:interface-ref 109 | | +--rw mtu? uint32 110 | | +--rw fcs-retention-indicator? uint16 111 | | +--rw vccv-parameter 112 | | | +--rw cc? cc-type 113 | | | +--rw cv? cv-type 114 | | +--rw requested-vlan-id? uint32 115 | | +--rw frag-indicator? uint32 116 | | +--rw interface-description? string 117 | | +--rw (pw-emu-type)? 118 | | +--:(tdm) 119 | | | +--rw bit-rate? uint32 120 | | | +--rw payload-bytes? uint16 121 | | | +--rw cells-per-packet? uint16 122 | | | +--rw tdm-options 123 | | | | +--rw rtp? pw-rtp-flag 124 | | | | +--rw timestamp-mode? pw-timestamp-mode 125 | | | | +--rw frequency? uint16 126 | | | | +--rw ssrc? uint32 127 | | | | +--rw payload-type? uint8 128 | | | | +--rw cas? uint8 129 | | | | +--rw sp? uint8 130 | | | +--rw cep-option 131 | | | +--rw ais? uint8 132 | | | +--rw une? uint8 133 | | | +--rw rtp? uint8 134 | | | +--rw ebm? uint8 135 | | | +--rw async-t3? uint8 136 | | | +--rw async-e3? uint8 137 | | | +--rw cep-type? uint16 138 | | +--:(fr) 139 | | | +--rw fr-dlci-len? uint16 140 | | +--:(atm) 141 | | +--rw max-atm-cells? uint16 142 | +--rw (pw-type)? 143 | +--:(ldp-pw) 144 | | +--rw (fec-type)? 145 | | +--:(generalized-pwid-fec-type) 146 | | | +--rw agi? string 147 | | | +--rw source-AII? string 148 | | | +--rw target-AII? string 149 | | +--:(pwid-fec) 150 | | +--rw pw-id? uint32 151 | +--:(static-pw) 152 | +--rw static-pw-id? uint32 153 | +--rw transmit-label? uint32 154 | +--rw receive-label? uint32 155 +--rw ms-pw 156 +--rw ms-pw* [name] 157 +--rw name string 158 +--rw pw-segment-a* [name] 159 | +--rw name string 160 +--rw pw-segment-z* [name] 161 +--rw name string 163 5. PW YANG Data Model 165 file "ietf-pw.yang" 166 module ietf-pw { 167 namespace "urn:ietf:params:xml:ns:yang:ietf-pw"; 168 prefix "pw"; 170 import ietf-inet-types { 171 prefix "inet"; 172 } 174 import ietf-interfaces { 175 prefix "if"; 176 } 178 organization "ietf"; 179 contact "ietf"; 180 description "pw"; 182 revision "2017-05-05" { 183 description "02 revision."; 184 reference "draft-chen-pals-pw-yang-02.txt"; 185 } 186 revision "2016-10-05" { 187 description "01 revision."; 188 reference "draft-chen-pals-pw-yang-01.txt"; 189 } 190 revision "2016-03-30" { 191 description "Initial revision of pw model."; 192 reference "draft-chen-pals-pw-yang-00.txt"; 193 } 194 /* typedefs */ 196 typedef cw-capable-type { 197 type enumeration { 198 enum "non-preferred" { 199 description "No preference for control-word"; 200 } 201 enum "preferred" { 202 description "Prefer to have control-word negotiation"; 203 } 204 } 205 description "control-word capable preference type"; 206 } 208 typedef cc-type { 209 type enumeration { 210 enum pw-ach { 211 description "PWE3 Control Word with 0001b as first nibble (PW-ACH, see [RFC4385])"; 212 } 213 enum alert-label { 214 description "MPLS Router Alert Label"; 215 } 216 enum ttl { 217 description "MPLS PW Label with TTL == 1"; 218 } 219 } 220 description "The defined values for CC(Control Channel) Types for MPLS PWs."; 221 } 223 typedef cv-type { 224 type enumeration { 225 enum ICMP-ping { 226 description "ICMP-ping."; 227 } 228 enum LSP-ping { 229 description "LSP-ping"; 230 } 231 enum BFD-basic-ip { 232 description "BFD basic ip"; 233 } 234 enum BFD-basic-raw { 235 description "BFD basic raw "; 236 } 237 enum BFD-signalling-ip { 238 description "BFD signalling ip"; 239 } 240 enum BFD-signalling-raw { 241 description "BFD signalling raw"; 243 } 244 } 245 description "The defined values for CV(Connectivity Verification) Types for MPLS PWs"; 246 } 248 typedef pw-type { 249 type enumeration { 250 enum unknown { 251 value 0 ; 252 description "The PW type is unknown"; 253 } 254 enum dlciOld { 255 value 1 ; 256 description "The PW type is dlciOld"; 257 } 258 enum atmSdu { 259 value 2 ; 260 description "The PW type is atmSdu"; 261 } 262 enum atmCell { 263 value 3 ; 264 description "The PW type is atmCell"; 265 } 266 enum vlan { 267 value 4 ; 268 description "The PW type is vlan"; 269 } 270 enum ethernet { 271 value 5 ; 272 description "The PW type is ethernet"; 273 } 274 enum hdlc { 275 value 6 ; 276 description "The PW type is hdlc"; 277 } 278 enum ppp { 279 value 7 ; 280 description "The PW type is ppp"; 281 } 282 enum sdhCESoM { 283 value 8 ; 284 description "The PW type is sdhCESoM"; 285 } 286 enum atmVCCn { 287 value 9 ; 288 description "The PW type is atmVCCn"; 289 } 290 enum atmVPCn { 292 value 10 ; 293 description "The PW type is atmVPCn"; 294 } 295 enum ipL2 { 296 value 11 ; 297 description "The PW type is ipL2"; 298 } 299 enum atmVCC1 { 300 value 12 ; 301 description "The PW type is atmVCC1"; 302 } 303 enum atmVPC1 { 304 value 13 ; 305 description "The PW type is atmVPC1"; 306 } 307 enum atmPDU { 308 value 14 ; 309 description "The PW type is atmPDU"; 310 } 311 enum frPort { 312 value 15 ; 313 description "The PW type is frPort"; 314 } 315 enum sdhCEoP { 316 value 16 ; 317 description "The PW type is sdhCEoP"; 318 } 319 enum saTopE1 { 320 value 17 ; 321 description "The PW type is saTopE1"; 322 } 323 enum saTopT1 { 324 value 18 ; 325 description "The PW type is saTopT1"; 326 } 327 enum saTopE3 { 328 value 19 ; 329 description "The PW type is saTopE3"; 330 } 331 enum saTopT3 { 332 value 20 ; 333 description "The PW type is saTopT3"; 334 } 335 enum ceSoPSNB { 336 value 21 ; 337 description "The PW type is ceSoPSNB"; 338 } 339 enum tdmAAL1 { 340 value 22 ; 341 description "The PW type is tdmAAL1"; 342 } 343 enum ceSoPSNC { 344 value 23 ; 345 description "The PW type is ceSoPSNC"; 346 } 347 enum tdmAAL2 { 348 value 24 ; 349 description "The PW type is tdmAAL2"; 350 } 351 enum dlciNew { 352 value 25 ; 353 description "The PW type is dlciNew"; 354 } 355 } 356 description "The PW type of the PW."; 357 } 359 typedef pw-rtp-flag { 360 type enumeration { 361 enum UNUSE { 362 value 0 ; 363 description 'Not use the rtp header.' ; 364 } 365 enum USE { 366 value 1 ; 367 description 'Use the rtp header.' ; 368 } 369 enum UNKNOWN { 370 value 3 ; 371 description 'The usage of the rtp header is unknown.' ; 372 } 373 } 374 description 'The use flag of rtp header.' ; 375 } 377 typedef pw-timestamp-mode { 378 type enumeration { 379 enum Absolute { 380 value 0 ; 381 description 'The timestamp mode is absolute.' ; 382 } 383 enum Differential { 384 value 1 ; 385 description 'The timestamp mode is differential .' ; 386 } 387 enum UNKNOWN { 388 value 3 ; 389 description 'The timestamp mode is unknown.' ; 390 } 391 } 392 description 'The timestamp mode of TDM service.' ; 393 } 395 container pwe3 { 396 description "configure pw"; 397 container ss-pw { 398 description "configure ss-pw"; 399 list ss-pw { 401 key "name"; 402 leaf name { 403 type string; 404 description "ss-pseudowire name"; 405 } 406 leaf peer-ip { 407 type inet:ip-address; 408 description "peer IP address"; 409 } 410 leaf cw-capable { 411 type cw-capable-type; 412 default "preferred"; 413 description "control-word negotiation preference"; 414 } 415 leaf type { 416 type pw-type; 417 description "pseudo-wire type"; 418 } 420 list tunnel { 421 key "tunnel-id"; 422 leaf tunnel-id { 423 type string; 424 description "tunnel identifier"; 425 } 426 description "tunnel list"; 427 } 429 leaf leaf-type { 430 type pw-type; 431 description "pseudo-wire type"; 432 } 433 leaf autodiscovery-enable{ 434 type boolean; 435 description "enable the auto-discovery"; 436 } 438 container interfaces { 439 description "Interfaces"; 440 list interface{ 441 key "name"; 442 leaf name { 443 type if:interface-ref; 444 description "Interfaces used for pw"; 445 } 446 leaf mtu { 447 type uint32; 448 description "pseudowire mtu"; 449 } 450 leaf fcs-retention-indicator { 451 type uint16; 452 description "The negotiated fcs retention indicator of the PW"; 453 } 454 container vccv-parameter { 455 description "vccv-parameter"; 456 leaf cc { 457 type cc-type; 458 description "Control Channel Types"; 459 } 460 leaf cv { 461 type cv-type; 462 description "Connectivity Verification Types"; 463 } 464 } 466 leaf requested-vlan-id { 467 type uint32; 468 description "The local requested VLAN ID of the PW"; 469 } 471 leaf frag-indicator { 472 type uint32; 473 description "The local fragmentation indicator of the PW"; 474 } 475 leaf interface-description { 476 type string { 477 length 0..81; 478 } 479 description "The local interface description of the PW"; 480 } 482 choice pw-emu-type { 483 description "The emulation type of the PW. It could be tdm, fr and atm. There are different interface parameters for different emulation types"; 485 case tdm { 486 leaf bit-rate { 487 type uint32; 488 description "The local bit rate of the PW"; 489 } 491 leaf payload-bytes { 492 type uint16; 493 description "The local payload bytes of the PW"; 494 } 496 leaf cells-per-packet { 497 type uint16; 498 description "The local TDMoIP AAL1 cells per packet of the PW"; 499 } 501 container tdm-options { 502 description "The TDM Options parameter of the PW"; 503 leaf rtp { 504 type pw-rtp-flag; 505 description "The local rtp header usage"; 506 } 507 leaf timestamp-mode { 508 type pw-timestamp-mode; 509 description "The local timestamp mode"; 510 } 511 leaf frequency { 512 type uint16; 513 description "The local frequency of timestamping clock"; 514 } 515 leaf ssrc { 516 type uint32; 517 description "The local value of the Synchronization source ID"; 518 } 519 leaf payload-type { 520 type uint8; 521 description "The local payload type in the RTP header expected by the PW endpoint distributing this FEC"; 522 } 523 leaf cas { 524 type uint8 ; 525 description "The local cas of the PW"; 526 } 527 leaf sp { 528 type uint8 ; 529 description "The local sp of the PW"; 530 } 531 } 533 container cep-option { 534 description "The CEP Options parameter of the PW"; 535 leaf ais { 536 type uint8; 537 description "The local ais of CEP Options parameter of the PW"; 538 } 539 leaf une { 540 type uint8; 541 description "The local une of CEP Options parameter of the PW"; 542 } 543 leaf rtp { 544 type uint8; 545 description "The local rtp of CEP Options parameter of the PW"; 546 } 547 leaf ebm { 548 type uint8; 549 description "The local ebm of CEP Options parameter of the PW"; 550 } 551 leaf async-t3 { 552 type uint8; 553 description "The local async-t3 of CEP Options parameter of the PW"; 554 } 555 leaf async-e3 { 556 type uint8; 557 description "The local async-e3 of CEP Options parameter of the PW"; 558 } 559 leaf cep-type { 560 type uint16; 561 description "The local cep type of CEP Options parameter of the PW"; 562 } 563 } 564 } 565 case fr { 566 description "The emulation type of the PW is fr"; 567 leaf fr-dlci-len { 568 type uint16; 569 description "The local fr dlci length of the PW"; 570 } 572 } 574 case atm { 575 description "The emulation type of the PW is atm"; 576 leaf max-atm-cells { 577 type uint16; 578 description "The local max atm cells of the PW"; 579 } 580 } 581 } 582 description "interface list"; 583 } 584 } 586 choice pw-type { 587 description "A choice of pseudowire type"; 588 case ldp-pw { 589 choice fec-type{ 590 description "fec type"; 591 case generalized-pwid-fec-type { 592 leaf agi { 593 type string; 594 description "Attachment Group Identifier"; 595 } 596 leaf source-AII { 597 type string; 598 description "Source Attachment individual identifier"; 599 } 600 leaf target-AII { 601 type string; 602 description "Target Attachment individual identifier"; 603 } 604 } 605 case pwid-fec{ 606 leaf pw-id { 607 type uint32; 608 description "pseudowire id"; 609 } 610 } 611 } 612 } 613 case static-pw { 614 leaf static-pw-id { 615 type uint32; 616 description "pseudowire id"; 617 } 618 leaf transmit-label { 619 type uint32; 620 description "transmit lable"; 621 } 622 leaf receive-label { 623 type uint32; 624 description "receive label"; 625 } 626 } 628 } 630 description "ss-pw list"; 631 } 632 } 634 container ms-pw { 635 description "configure ms-pw"; 636 list ms-pw { 637 key "name"; 638 leaf name { 639 type string; 640 description "ms-pseudowire name"; 641 } 642 list pw-segment-a{ 643 key "name"; 644 leaf name { 645 type string; 646 description "pseudowire segment a name"; 647 } 648 description "pw segment-a list"; 649 } 650 list pw-segment-z{ 651 key "name"; 652 leaf name { 653 type string; 654 description "pseudowire segment z name"; 655 } 656 description "pw segment-z list"; 657 } 658 description "ms-pw list"; 659 } 660 } 661 } 662 } 664 666 6. Security Considerations 668 TBD. 670 7. Acknowledgements 672 TBD. 674 8. IANA Considerations 676 This document requires no IANA Actions. Please remove this section 677 before RFC publication. 679 9. References 681 9.1. Normative references 683 [RFC4447] Martini, L., Ed., Rosen, E., El-Aawar, N., Smith, T., and 684 G. Heron, "Pseudowire Setup and Maintenance Using the 685 Label Distribution Protocol (LDP)", RFC 4447, 686 DOI 10.17487/RFC4447, April 2006, 687 . 689 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 690 the Network Configuration Protocol (NETCONF)", RFC 6020, 691 DOI 10.17487/RFC6020, October 2010, 692 . 694 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 695 and A. Bierman, Ed., "Network Configuration Protocol 696 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 697 . 699 [RFC7267] Martini, L., Ed., Bocci, M., Ed., and F. Balus, Ed., 700 "Dynamic Placement of Multi-Segment Pseudowires", 701 RFC 7267, DOI 10.17487/RFC7267, June 2014, 702 . 704 9.2. Informative references 706 [I-D.ietf-bess-l2vpn-yang] 707 Shah, H., Brissette, P., Chen, I., Hussain, I., Wen, B., 708 and K. Tiruveedhula, "YANG Data Model for MPLS-based 709 L2VPN", draft-ietf-bess-l2vpn-yang-05 (work in progress), 710 March 2017. 712 Authors' Addresses 714 Ran Chen 715 ZTE Corporation 716 No.50 Software Avenue,Yuhuatai District 717 Nanjing, Jiangsu Province 210012 718 China 720 Phone: +86 025 88014636 721 Email: chen.ran@zte.com.cn 723 Fangwei Hu 724 ZTE Corporation 725 No.889 Bibo Rd 726 Shanghai 201203 727 China 729 Phone: +86 21 68896273 730 Email: hu.fangwei@zte.com.cn