idnits 2.17.1 draft-chen-pals-pw-yang-03.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 (December 11, 2017) is 2328 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 682, but no explicit reference was found in the text == Unused Reference: 'RFC7267' is defined on line 698, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-bess-l2vpn-yang' is defined on line 705, 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-07 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: June 14, 2018 December 11, 2017 7 YANG Data Model for PW Protocol 8 draft-chen-pals-pw-yang-03.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 https://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 June 14, 2018. 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 (https://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"; 181 revision "2017-04-28" { 182 description "02 revision."; 183 reference "draft-chen-pals-pw-yang-02.txt"; 184 } 185 revision "2016-10-05" { 186 description "01 revision."; 187 reference "draft-chen-pals-pw-yang-01.txt"; 188 } 189 revision "2016-03-30" { 190 description "Initial revision of pw model."; 191 reference "draft-chen-pals-pw-yang-00.txt"; 192 } 193 /* typedefs */ 195 typedef cw-capable-type { 196 type enumeration { 197 enum "non-preferred" { 198 description "No preference for control-word"; 199 } 200 enum "preferred" { 201 description "Prefer to have control-word negotiation"; 202 } 203 } 204 description "control-word capable preference type"; 205 } 207 typedef cc-type { 208 type enumeration { 209 enum pw-ach { 210 description "PWE3 Control Word with 0001b as first nibble (PW-ACH, see [RFC4385])"; 211 } 212 enum alert-label { 213 description "MPLS Router Alert Label"; 214 } 215 enum ttl { 216 description "MPLS PW Label with TTL == 1"; 217 } 218 } 219 description "The defined values for CC(Control Channel) Types for MPLS PWs."; 220 } 222 typedef cv-type { 223 type enumeration { 224 enum ICMP-ping { 225 description "ICMP-ping."; 226 } 227 enum LSP-ping { 228 description "LSP-ping"; 229 } 230 enum BFD-basic-ip { 231 description "BFD basic ip"; 232 } 233 enum BFD-basic-raw { 234 description "BFD basic raw "; 235 } 236 enum BFD-signalling-ip { 237 description "BFD signalling ip"; 238 } 239 enum BFD-signalling-raw { 240 description "BFD signalling raw"; 242 } 243 } 244 description "The defined values for CV(Connectivity Verification) Types for MPLS PWs"; 245 } 247 typedef pw-type { 248 type enumeration { 249 enum unknown { 250 value 0 ; 251 description "The PW type is unknown"; 252 } 253 enum dlciOld { 254 value 1 ; 255 description "The PW type is dlciOld"; 256 } 257 enum atmSdu { 258 value 2 ; 259 description "The PW type is atmSdu"; 260 } 261 enum atmCell { 262 value 3 ; 263 description "The PW type is atmCell"; 264 } 265 enum vlan { 266 value 4 ; 267 description "The PW type is vlan"; 268 } 269 enum ethernet { 270 value 5 ; 271 description "The PW type is ethernet"; 272 } 273 enum hdlc { 274 value 6 ; 275 description "The PW type is hdlc"; 276 } 277 enum ppp { 278 value 7 ; 279 description "The PW type is ppp"; 280 } 281 enum sdhCESoM { 282 value 8 ; 283 description "The PW type is sdhCESoM"; 284 } 285 enum atmVCCn { 286 value 9 ; 287 description "The PW type is atmVCCn"; 288 } 289 enum atmVPCn { 291 value 10 ; 292 description "The PW type is atmVPCn"; 293 } 294 enum ipL2 { 295 value 11 ; 296 description "The PW type is ipL2"; 297 } 298 enum atmVCC1 { 299 value 12 ; 300 description "The PW type is atmVCC1"; 301 } 302 enum atmVPC1 { 303 value 13 ; 304 description "The PW type is atmVPC1"; 305 } 306 enum atmPDU { 307 value 14 ; 308 description "The PW type is atmPDU"; 309 } 310 enum frPort { 311 value 15 ; 312 description "The PW type is frPort"; 313 } 314 enum sdhCEoP { 315 value 16 ; 316 description "The PW type is sdhCEoP"; 317 } 318 enum saTopE1 { 319 value 17 ; 320 description "The PW type is saTopE1"; 321 } 322 enum saTopT1 { 323 value 18 ; 324 description "The PW type is saTopT1"; 325 } 326 enum saTopE3 { 327 value 19 ; 328 description "The PW type is saTopE3"; 329 } 330 enum saTopT3 { 331 value 20 ; 332 description "The PW type is saTopT3"; 333 } 334 enum ceSoPSNB { 335 value 21 ; 336 description "The PW type is ceSoPSNB"; 337 } 338 enum tdmAAL1 { 339 value 22 ; 340 description "The PW type is tdmAAL1"; 341 } 342 enum ceSoPSNC { 343 value 23 ; 344 description "The PW type is ceSoPSNC"; 345 } 346 enum tdmAAL2 { 347 value 24 ; 348 description "The PW type is tdmAAL2"; 349 } 350 enum dlciNew { 351 value 25 ; 352 description "The PW type is dlciNew"; 353 } 354 } 355 description "The PW type of the PW."; 356 } 358 typedef pw-rtp-flag { 359 type enumeration { 360 enum UNUSE { 361 value 0 ; 362 description 'Not use the rtp header.' ; 363 } 364 enum USE { 365 value 1 ; 366 description 'Use the rtp header.' ; 367 } 368 enum UNKNOWN { 369 value 3 ; 370 description 'The usage of the rtp header is unknown.' ; 371 } 372 } 373 description 'The use flag of rtp header.' ; 374 } 376 typedef pw-timestamp-mode { 377 type enumeration { 378 enum Absolute { 379 value 0 ; 380 description 'The timestamp mode is absolute.' ; 381 } 382 enum Differential { 383 value 1 ; 384 description 'The timestamp mode is differential .' ; 385 } 386 enum UNKNOWN { 387 value 3 ; 388 description 'The timestamp mode is unknown.' ; 389 } 390 } 391 description 'The timestamp mode of TDM service.' ; 392 } 394 container pwe3 { 395 description "configure pw"; 396 container ss-pw { 397 description "configure ss-pw"; 398 list ss-pw { 400 key "name"; 401 leaf name { 402 type string; 403 description "ss-pseudowire name"; 404 } 405 leaf peer-ip { 406 type inet:ip-address; 407 description "peer IP address"; 408 } 409 leaf cw-capable { 410 type cw-capable-type; 411 default "preferred"; 412 description "control-word negotiation preference"; 413 } 414 leaf type { 415 type pw-type; 416 description "pseudo-wire type"; 417 } 419 list tunnel { 420 key "tunnel-id"; 421 leaf tunnel-id { 422 type string; 423 description "tunnel identifier"; 424 } 425 description "tunnel list"; 426 } 428 leaf leaf-type { 429 type pw-type; 430 description "pseudo-wire type"; 431 } 432 leaf autodiscovery-enable{ 433 type boolean; 434 description "enable the auto-discovery"; 435 } 437 container interfaces { 438 description "Interfaces"; 439 list interface{ 440 key "name"; 441 leaf name { 442 type if:interface-ref; 443 description "Interfaces used for pw"; 444 } 445 leaf mtu { 446 type uint32; 447 description "pseudowire mtu"; 448 } 449 leaf fcs-retention-indicator { 450 type uint16; 451 description "The negotiated fcs retention indicator of the PW"; 452 } 453 container vccv-parameter { 454 description "vccv-parameter"; 455 leaf cc { 456 type cc-type; 457 description "Control Channel Types"; 458 } 459 leaf cv { 460 type cv-type; 461 description "Connectivity Verification Types"; 462 } 463 } 465 leaf requested-vlan-id { 466 type uint32; 467 description "The local requested VLAN ID of the PW"; 468 } 470 leaf frag-indicator { 471 type uint32; 472 description "The local fragmentation indicator of the PW"; 473 } 474 leaf interface-description { 475 type string { 476 length 0..81; 477 } 478 description "The local interface description of the PW"; 479 } 481 choice pw-emu-type { 482 description "The emulation type of the PW. It could be tdm, fr and atm. There are different interface parameters for different emulation types"; 484 case tdm { 485 leaf bit-rate { 486 type uint32; 487 description "The local bit rate of the PW"; 488 } 490 leaf payload-bytes { 491 type uint16; 492 description "The local payload bytes of the PW"; 493 } 495 leaf cells-per-packet { 496 type uint16; 497 description "The local TDMoIP AAL1 cells per packet of the PW"; 498 } 500 container tdm-options { 501 description "The TDM Options parameter of the PW"; 502 leaf rtp { 503 type pw-rtp-flag; 504 description "The local rtp header usage"; 505 } 506 leaf timestamp-mode { 507 type pw-timestamp-mode; 508 description "The local timestamp mode"; 509 } 510 leaf frequency { 511 type uint16; 512 description "The local frequency of timestamping clock"; 513 } 514 leaf ssrc { 515 type uint32; 516 description "The local value of the Synchronization source ID"; 517 } 518 leaf payload-type { 519 type uint8; 520 description "The local payload type in the RTP header expected by the PW endpoint distributing this FEC"; 521 } 522 leaf cas { 523 type uint8 ; 524 description "The local cas of the PW"; 525 } 526 leaf sp { 527 type uint8 ; 528 description "The local sp of the PW"; 529 } 530 } 532 container cep-option { 533 description "The CEP Options parameter of the PW"; 534 leaf ais { 535 type uint8; 536 description "The local ais of CEP Options parameter of the PW"; 537 } 538 leaf une { 539 type uint8; 540 description "The local une of CEP Options parameter of the PW"; 541 } 542 leaf rtp { 543 type uint8; 544 description "The local rtp of CEP Options parameter of the PW"; 545 } 546 leaf ebm { 547 type uint8; 548 description "The local ebm of CEP Options parameter of the PW"; 549 } 550 leaf async-t3 { 551 type uint8; 552 description "The local async-t3 of CEP Options parameter of the PW"; 553 } 554 leaf async-e3 { 555 type uint8; 556 description "The local async-e3 of CEP Options parameter of the PW"; 557 } 558 leaf cep-type { 559 type uint16; 560 description "The local cep type of CEP Options parameter of the PW"; 561 } 562 } 563 } 564 case fr { 565 description "The emulation type of the PW is fr"; 566 leaf fr-dlci-len { 567 type uint16; 568 description "The local fr dlci length of the PW"; 569 } 571 } 573 case atm { 574 description "The emulation type of the PW is atm"; 575 leaf max-atm-cells { 576 type uint16; 577 description "The local max atm cells of the PW"; 578 } 579 } 580 } 581 description "interface list"; 582 } 583 } 585 choice pw-type { 586 description "A choice of pseudowire type"; 587 case ldp-pw { 588 choice fec-type{ 589 description "fec type"; 590 case generalized-pwid-fec-type { 591 leaf agi { 592 type string; 593 description "Attachment Group Identifier"; 594 } 595 leaf source-AII { 596 type string; 597 description "Source Attachment individual identifier"; 598 } 599 leaf target-AII { 600 type string; 601 description "Target Attachment individual identifier"; 602 } 603 } 604 case pwid-fec{ 605 leaf pw-id { 606 type uint32; 607 description "pseudowire id"; 608 } 609 } 610 } 611 } 612 case static-pw { 613 leaf static-pw-id { 614 type uint32; 615 description "pseudowire id"; 616 } 617 leaf transmit-label { 618 type uint32; 619 description "transmit lable"; 620 } 621 leaf receive-label { 622 type uint32; 623 description "receive label"; 624 } 625 } 627 } 629 description "ss-pw list"; 630 } 631 } 633 container ms-pw { 634 description "configure ms-pw"; 635 list ms-pw { 636 key "name"; 637 leaf name { 638 type string; 639 description "ms-pseudowire name"; 640 } 641 list pw-segment-a{ 642 key "name"; 643 leaf name { 644 type string; 645 description "pseudowire segment a name"; 646 } 647 description "pw segment-a list"; 648 } 649 list pw-segment-z{ 650 key "name"; 651 leaf name { 652 type string; 653 description "pseudowire segment z name"; 654 } 655 description "pw segment-z list"; 656 } 657 description "ms-pw list"; 658 } 659 } 660 } 661 } 663 665 6. Security Considerations 667 TBD. 669 7. Acknowledgements 671 TBD. 673 8. IANA Considerations 675 This document requires no IANA Actions. Please remove this section 676 before RFC publication. 678 9. References 680 9.1. Normative references 682 [RFC4447] Martini, L., Ed., Rosen, E., El-Aawar, N., Smith, T., and 683 G. Heron, "Pseudowire Setup and Maintenance Using the 684 Label Distribution Protocol (LDP)", RFC 4447, 685 DOI 10.17487/RFC4447, April 2006, 686 . 688 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 689 the Network Configuration Protocol (NETCONF)", RFC 6020, 690 DOI 10.17487/RFC6020, October 2010, 691 . 693 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 694 and A. Bierman, Ed., "Network Configuration Protocol 695 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 696 . 698 [RFC7267] Martini, L., Ed., Bocci, M., Ed., and F. Balus, Ed., 699 "Dynamic Placement of Multi-Segment Pseudowires", 700 RFC 7267, DOI 10.17487/RFC7267, June 2014, 701 . 703 9.2. Informative references 705 [I-D.ietf-bess-l2vpn-yang] 706 Shah, H., Brissette, P., Chen, I., Hussain, I., Wen, B., 707 and K. Tiruveedhula, "YANG Data Model for MPLS-based 708 L2VPN", draft-ietf-bess-l2vpn-yang-07 (work in progress), 709 October 2017. 711 Authors' Addresses 713 Ran Chen 714 ZTE Corporation 715 No.50 Software Avenue,Yuhuatai District 716 Nanjing, Jiangsu Province 210012 717 China 719 Phone: +86 025 88014636 720 Email: chen.ran@zte.com.cn 722 Fangwei Hu 723 ZTE Corporation 724 No.889 Bibo Rd 725 Shanghai 201203 726 China 728 Phone: +86 21 68896273 729 Email: hu.fangwei@zte.com.cn