idnits 2.17.00 (12 Aug 2021) /tmp/idnits23298/draft-ietf-lime-yang-connectionless-oam-methods-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 is 1 instance of too long lines in the document, the longest one being 2 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 410 has weird spacing: '...aghavan srih...' == Line 411 has weird spacing: '...ao Wang wang...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (May 15, 2017) is 1831 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) == Outdated reference: draft-ietf-lime-yang-connectionless-oam has been published as RFC 8532 == Outdated reference: draft-ietf-netconf-yang-push has been published as RFC 8641 ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) -- Obsolete informational reference (is this intentional?): RFC 4379 (Obsoleted by RFC 8029) Summary: 2 errors (**), 0 flaws (~~), 6 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group D. Kumar 3 Internet-Draft Cisco 4 Intended status: Standards Track M. Wang 5 Expires: November 16, 2017 Q. Wu 6 Huawei 7 R. Rahman 8 S. Raghavan 9 Cisco 10 May 15, 2017 12 Retrieval Methods YANG Data Model for Connectionless Operations, 13 Administration, and Maintenance(OAM) protocols 14 draft-ietf-lime-yang-connectionless-oam-methods-02 16 Abstract 18 This document presents a retrieval method YANG Data model for 19 connectionless OAM protocols. It provides a technology-independent 20 RPC commands for connectionless OAM protocols. The retrieval methods 21 model presented here can be extended to include technology specific 22 details. This is leading to uniformity between OAM protocols and 23 support both nested OAM workflows (i.e., performing OAM functions at 24 different levels through a unified interface) and interactive OAM 25 workflows ( i.e., performing OAM functions at same levels through a 26 unified interface). 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at http://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on November 16, 2017. 45 Copyright Notice 47 Copyright (c) 2017 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 63 2. Conventions used in this document . . . . . . . . . . . . . . 3 64 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 65 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 66 3. Overview of the Connectionless OAM retrieval methods Model . 5 67 3.1. RPC definitions . . . . . . . . . . . . . . . . . . . . . 5 68 3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8 69 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 9 70 5. Security Considerations . . . . . . . . . . . . . . . . . . . 13 71 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 72 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 73 7.1. Normative References . . . . . . . . . . . . . . . . . . 14 74 7.2. Informative References . . . . . . . . . . . . . . . . . 15 75 Appendix A. Appendix . . . . . . . . . . . . . . . . . . . . . . 15 76 A.1. OAM Retrieval Persistent Methods YANG Module . . . . . . 16 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 79 1. Introduction 81 Operations, Administration, and Maintenance (OAM) are important 82 networking functions that allow operators to: 84 1. Monitor reachability of destinations (Reachability Verification, 85 Continuity Check). 87 2. Troubleshoot failures (Fault verification and localization). 89 3. Monitor Performance 91 An overview of OAM tools is presented at [RFC7276]. 93 Ping and Traceroute [RFC792], [RFC4443] and BFD [RFC5880] are well- 94 known fault verification and isolation tools, respectively, for IP 95 networks. Over the years, different technologies have developed 96 similar tools for similar purposes. 98 In this document, we present a retrieval method YANG Data model for 99 connectionless OAM protocols. This module provides technology- 100 independent RPC commands for connectionless OAM protocols. It is 101 separated from the generic YANG model for connectionless OAM 102 [I-D.ietf-lime-yang-connectionless-oam] and can avoid mixing the 103 models for the retrieved-data from the retrieval procedures. It is 104 expected that retrieval procedures would evolve faster than the data 105 model [I-D.ietf-lime-yang-connectionless-oam] and will allow new 106 procedures to be defined for retrieval of the same data defined by 107 the base data model. 109 2. Conventions used in this document 111 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 112 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 113 document are to be interpreted as described in [RFC2119]. 115 The following terms are defined in [RFC6241] and are not redefined 116 here: 118 o client 120 o configuration data 122 o server 124 o state data 126 The following terms are defined in [RFC6020] and are not redefined 127 here: 129 o augment 131 o data model 133 o data node 135 The terminology for describing YANG data models is found in 136 [RFC6020]. 138 2.1. Terminology 140 TP - Test Point 142 MAC - Media Access Control 144 RPC - A Remote Procedure Call, as used within the NETCONF protocol 146 2.2. Tree Diagrams 148 A simplified graphical representation of the data model is used in 149 this document. The meaning of the symbols in these diagrams is as 150 follows: 152 Each node is printed as: 154 156 is one of: 157 + for current 159 is one of: 161 rw for configuration data 162 ro for non-configuration data 163 -x for rpcs 164 -n for notifications 166 is the name of the node 168 If the node is augmented into the tree from another module, its name 169 is printed as :. 171 is one of: 173 ? for an optional leaf or choice 174 ! for a presence container 175 * for a leaf-list or list 176 [] for a list's keys 178 is the name of the type for leafs and leaf-lists 180 3. Overview of the Connectionless OAM retrieval methods Model 182 In this document, we present a retrieval method YANG Data model for 183 connectionless OAM protocols. This module provides technology- 184 independent retrieval procedures (RPC commands) for connectionless 185 OAM protocols. It provides a flexible way to retrieve the retrieved- 186 data which defined by the "ietf-connectionless-oam.yang" 187 [I-D.ietf-lime-yang-connectionless-oam]. 189 3.1. RPC definitions 191 The RPC model facilitates issuing commands to a NETCONF server (in 192 this case to the device that need to execute the OAM command) and 193 obtaining a response. 195 Under 'connectionless-oam-methods' module, we summarize the common 196 OAM functions and define the generic RPC commands: 'continuity-check' 197 and 'path-discovery'. In practice, these commands are supported by 198 corresponding technology-specific OAM tools [RFC7276]. For example, 199 for the IP OAM model, the continuity-check RPC corresponds to the IP 200 Ping [RFC792] [RFC4443], while the path-discovery RPC command 201 corresponds to IP Traceroute [RFC792] [RFC4443]. 203 Note that the RPC command presented in this document is the base 204 building block, which is used to derive a model for a technology- 205 specific OAM (i.e., ICMP ping [RFC792] [RFC4443], LSP ping 206 [RFC4379]), the base building block should be extended with 207 corresponding technology specific parameters. To facilitate this and 208 for future enhancements to data retrieval methods, the RPCs are 209 captured under a separate module. 211 The generic 'path-discovery-data' and 'continuity-check-data' are 212 used as data outputs from the different RPCs described in the 213 document. Similar methods including other RPCs can retrieve the data 214 using the same data model. 216 rpc continuity-check { 217 if-feature coam:continuity-check; 218 description 219 "Generates continuity-check as per RFC7276."; 220 input { 221 container destination-tp { 222 uses coam:tp-address; 223 description 224 "destination test point."; 225 } 226 uses coam:session-type; 227 leaf source-interface { 228 type if:interface-ref; 229 description 230 "source interface."; 231 } 232 leaf outbound-interface { 233 type if:interface-ref; 235 description 236 "outbound interface."; 237 } 238 leaf count { 239 type uint32; 240 default "5"; 241 description 242 "Specifies the number of packets that will be sent."; 243 } 244 leaf vrf { 245 type coam:routing-instance-ref; 246 description 247 "vrf instance."; 248 } 249 leaf ttl { 250 type uint8; 251 default "255"; 252 description 253 "Time to live (TTL)."; 254 } 255 leaf packet-size { 256 type uint32 { 257 range "64..10000"; 258 } 259 default "64"; 260 description 261 "Size of ping echo request packets, in octets"; 262 } 263 } 264 output { 265 list error-code-list { 266 key "response-index"; 267 leaf response-index { 268 type uint32; 269 description 270 "response index."; 271 } 272 leaf status-code { 273 type int32; 274 description 275 "error code is "; 277 } 278 leaf status-sub-code { 279 type uint8; 280 description 281 "sub code."; 282 } 283 description 284 "error code list."; 285 } 287 uses coam:continuity-check-data; 288 } 289 } 291 rpc path-discovery { 292 description 293 "Generates path discovery as per RFC7276."; 294 input { 295 container destination-tp { 296 uses coam:tp-address; 297 description 298 "destination test point."; 299 } 300 uses coam:session-type; 301 leaf source-interface { 302 type if:interface-ref; 303 description 304 "source interface."; 305 } 306 leaf outbound-interface { 307 type if:interface-ref; 308 description 309 "outbound interface."; 310 } 311 leaf vrf { 312 type coam:routing-instance-ref; 313 description 314 "vrf"; 315 } 316 leaf max-ttl { 317 type uint8; 318 default "255"; 319 description 320 "max ttl."; 321 } 322 } 323 output { 324 list response-list { 325 key "response-index"; 326 description 327 "path discovery response list."; 328 leaf response-index { 329 type uint32; 330 description 331 "response index."; 332 } 333 leaf status-code { 334 type int32; 335 description 336 "error code is "; 337 } 338 leaf status-sub-code { 339 type uint8; 341 description 342 "sub code is "; 343 } 344 } 346 uses coam:path-discovery-data; 347 } 348 } 350 Snippet of data hierarchy related to RPC calls 352 3.2. OAM Retrieval Methods Hierarchy 354 The complete data hierarchy related to the Connectionless OAM 355 Retrieval Methods YANG model is presented below. 357 module: ietf-connectionless-oam-methods 358 rpcs: 359 +---x continuity-check {coam:continuity-check}? 360 | +---w input 361 | | +---w destination-tp 362 | | +---w source-interface? if:interface-ref 363 | | +---w outbound-interface? if:interface-ref 364 | | +---w count? uint32 365 | | +---w vrf? coam:routing-instance-ref 366 | | +---w ttl? uint8 367 | | +---w packet-size? uint32 368 | +--ro output 369 | +--ro error-code-list* [response-index] 370 | +--ro response-index uint32 371 | +--ro status-code? int32 372 | +--ro status-sub-code? uint8 373 +---x path-discovery {coam:path-discovery}? 374 +---w input 375 | +---w destination-tp 376 | +---w source-interface? if:interface-ref 377 | +---w outbound-interface? if:interface-ref 378 | +---w vrf? coam:routing-instance-ref 379 | +---w max-ttl? uint8 380 +--ro output 381 +--ro response-list* [response-index] 382 +--ro response-index uint32 383 +--ro status-code? int32 384 +--ro status-sub-code? uint8 386 data hierarchy of OAM Retrieval Methods 388 4. OAM Retrieval Methods YANG Module 390 file "ietf-connectionless-oam-methods.yang" 392 module ietf-connectionless-oam-methods { 393 namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods"; 394 prefix coam-methods; 396 import ietf-interfaces { 397 prefix if; 398 } 399 import ietf-connectionless-oam { 400 prefix coam; 401 } 402 import ietf-yang-types { 403 prefix yang; 404 } 405 organization 406 "IETF LIME Working Group"; 407 contact 408 "Deepak Kumar dekumar@cisco.com 409 Qin Wu bill.wu@huawei.com 410 S Raghavan srihari@cisco.com 411 Zitao Wang wangzitao@huawei.com 412 R Rahman rrahman@cisco.com"; 413 description 414 "This YANG module defines the RPCs for , 415 connectionless OAM to be used within IETF 416 in a protocol Independent manner. 417 Functional level abstraction is indendent with 418 YANG modeling. It is assumed that each protocol maps 419 corresponding abstracts to its native format. 420 Each protocol may extend the YANG model defined 421 here to include protocol specific extensions"; 423 revision 2017-02-15 { 424 description 425 "02 version"; 426 reference "draft-ietf-lime-yang-connectionless-oam-methods"; 427 } 429 rpc continuity-check { 430 if-feature "coam:continuity-check"; 431 description 432 "Generates continuity-check as per RFC7276."; 433 input { 434 container destination-tp { 435 uses coam:tp-address; 436 description 437 "Destination test point."; 438 } 439 uses coam:session-type; 440 leaf source-interface { 441 type if:interface-ref; 442 description 443 "Source interface."; 444 } 445 leaf outbound-interface { 446 type if:interface-ref; 447 description 448 "Outbound interface."; 449 } 450 leaf count { 451 type uint32; 452 default "5"; 453 description 454 "Specifies the number of 455 packets that will be sent."; 456 } 457 leaf vrf { 458 type coam:routing-instance-ref; 459 description 460 "VRF instance."; 461 } 462 leaf ttl { 463 type uint8; 464 default "255"; 465 description 466 "Time to live (TTL)."; 467 } 468 leaf packet-size { 469 type uint32 { 470 range "64..10000"; 471 } 472 default "64"; 473 description 474 "Size of ping echo request 475 packets, in octets"; 476 } 477 } 478 output { 479 list error-code-list { 480 key "response-index"; 481 leaf response-index { 482 type uint32; 483 description 484 "Response index."; 485 } 486 leaf status-code { 487 type int32; 488 description 489 "Error code is "; 490 } 491 leaf status-sub-code { 492 type uint8; 493 description 494 "Sub code."; 495 } 496 description 497 "Error code list."; 498 } 499 uses coam:continuity-check-data; 500 } 502 } 504 rpc path-discovery { 505 if-feature "coam:path-discovery"; 506 description 507 "Generates path discovery as per RFC7276."; 508 input { 509 container destination-tp { 510 uses coam:tp-address; 511 description 512 "Destination test point."; 513 } 514 uses coam:session-type; 515 leaf source-interface { 516 type if:interface-ref; 517 description 518 "Source interface."; 519 } 520 leaf outbound-interface { 521 type if:interface-ref; 522 description 523 "Outbound interface."; 524 } 525 leaf vrf { 526 type coam:routing-instance-ref; 527 description 528 "VRF"; 529 } 530 leaf max-ttl { 531 type uint8; 532 default "255"; 533 description 534 "Max ttl."; 535 } 536 } 537 output { 538 list response-list { 539 key "response-index"; 540 description 541 "Path discovery response list."; 542 leaf response-index { 543 type uint32; 544 description 545 "Response index."; 546 } 547 leaf status-code { 548 type int32; 549 description 550 "Error code is "; 551 } 552 leaf status-sub-code { 553 type uint8; 554 description 555 "Sub code is "; 556 } 557 } 558 uses coam:path-discovery-data; 559 } 560 } 561 } 563 565 5. Security Considerations 567 The YANG modules defined in this memo are designed to be accessed via 568 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 569 secure transport layer and the mandatory to implement secure 570 transport is SSH [RFC6242]. The NETCONF access control model 571 [RFC6536] provides the means to restrict access for particular 572 NETCONF users to a pre-configured subset of all available NETCONF 573 protocol operations and content. Some of the RPC operations in the 574 "ietf-connectionless-oam-methods" YANG module may be considered 575 sensitive or vulnerable in some network environments. It is thus 576 important to control access to these operations. 578 These are the operations and their sensitivity/vulnerability: 580 o continuity-check: Generates continuity check. 582 o path-discovery: Generates path discovery. 584 6. IANA Considerations 586 This document registers a URI in the IETF XML registry [RFC3688]. 587 Following the format in [RFC3688], the following registration is 588 requested to be made: 590 URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods 592 Registrant Contact: The IESG. 594 XML: N/A, the requested URI is an XML namespace. 596 This document registers a YANG module in the YANG Module Names 597 registry [RFC6020]. 599 name: ietf-connectionless-oam-methods 601 namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam- 602 methods 604 prefix: coam-methods 606 reference: RFC XXXX 608 7. References 610 7.1. Normative References 612 [I-D.ietf-lime-yang-connectionless-oam] 613 Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, 614 "Generic YANG Data Model for Connectionless Operations, 615 Administration, and Maintenance(OAM) protocols", draft- 616 ietf-lime-yang-connectionless-oam-04 (work in progress), 617 February 2017. 619 [I-D.ietf-netconf-yang-push] 620 Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- 621 Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to 622 YANG datastore push updates", draft-ietf-netconf-yang- 623 push-06 (work in progress), April 2017. 625 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 626 Requirement Levels", BCP 14, RFC 2119, 627 DOI 10.17487/RFC2119, March 1997, 628 . 630 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 631 DOI 10.17487/RFC3688, January 2004, 632 . 634 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 635 the Network Configuration Protocol (NETCONF)", RFC 6020, 636 DOI 10.17487/RFC6020, October 2010, 637 . 639 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 640 and A. Bierman, Ed., "Network Configuration Protocol 641 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 642 . 644 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 645 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 646 . 648 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 649 Protocol (NETCONF) Access Control Model", RFC 6536, 650 DOI 10.17487/RFC6536, March 2012, 651 . 653 [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, 654 "Specification of the IP Flow Information Export (IPFIX) 655 Protocol for the Exchange of Flow Information", STD 77, 656 RFC 7011, DOI 10.17487/RFC7011, September 2013, 657 . 659 [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, 660 September 1981. 662 7.2. Informative References 664 [RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol 665 Label Switched (MPLS) Data Plane Failures", RFC 4379, 666 DOI 10.17487/RFC4379, February 2006, 667 . 669 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 670 Control Message Protocol (ICMPv6) for the Internet 671 Protocol Version 6 (IPv6) Specification", RFC 4443, 672 DOI 10.17487/RFC4443, March 2006, 673 . 675 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 676 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 677 . 679 [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. 680 Weingarten, "An Overview of Operations, Administration, 681 and Maintenance (OAM) Tools", RFC 7276, 682 DOI 10.17487/RFC7276, June 2014, 683 . 685 Appendix A. Appendix 687 The following are some examples of extensions possible to the yang 688 model. The example discusses persistent methods. 690 The persistent method RPCs are commands to trigger persistent 691 continuity check or path discovery OAM while specifying the options 692 for data-export from the device. Internet Protocol Flow Information 693 Export (IPFIX) [RFC7011] or yang-push [I-D.ietf-netconf-yang-push]. 694 are currently outlined here as data export options and more can be 695 added in future. It should be noted that the persistent methods are 696 used to trigger create, modify and delete the persistent state 697 associated with the data export options. The data export specific 698 configurations are beyond the scope of this document. 700 A.1. OAM Retrieval Persistent Methods YANG Module 702 file "ietf-connectionless-oam-persistent-methods.yang" 704 identity export-method { 705 description 706 "Base identity to represent a conceptual export-method."; 707 } 709 identity ipfix-export { 710 base export-method; 711 description 712 "IPFIX based export. Configuration provided separately."; 713 } 715 identity yang-push-export { 716 base export-method; 717 description 718 "Yang-push from draft-ietf-netconf-yang-push"; 719 } 721 typedef export-method { 722 type identityref { 723 base export-method; 724 } 725 description 726 "Export method type."; 727 } 729 typedef change-type { 730 type enumeration { 731 enum "create" { 732 description 733 "Change due to a create."; 734 } 735 enum "delete" { 736 description 737 "Change due to a delete."; 738 } 739 enum "modify" { 740 description 741 "Change due to an update."; 742 } 743 } 744 description 745 "Different types of changes that may occur."; 746 } 748 rpc cc-persistent-create { 749 if-feature "coam:continuity-check"; 750 description 751 "Generates persistent continuity-check."; 752 input { 753 container destination-tp { 754 uses coam:tp-address; 755 description 756 "Destination test point."; 757 } 758 uses coam:session-type; 759 leaf source-interface { 760 type if:interface-ref; 761 description 762 "Source interface."; 763 } 764 leaf outbound-interface { 765 type if:interface-ref; 766 description 767 "Outbound interface."; 768 } 769 leaf vrf { 770 type coam:routing-instance-ref; 771 description 772 "VRF instance."; 773 } 774 leaf ttl { 775 type uint8; 776 default "255"; 777 description 778 "Time to live (TTL)."; 779 } 780 leaf data-export-method { 781 type export-method; 782 description 783 "Type of export."; 784 } 785 choice cc-trigger { 786 description 787 "Defines necessary conditions for 788 periodic or on-change trigger."; 789 case periodic { 790 description 791 "Periodic reports."; 793 leaf period { 794 type yang:timeticks; 795 description 796 "Time interval between reports."; 797 } 798 leaf start-time { 799 type yang:date-and-time; 800 description 801 "Timestamp from which reports are started."; 802 } 803 } 804 case on-change { 805 description 806 "On-change trigger and not periodic."; 807 leaf all-data-on-start { 808 type boolean; 809 description 810 "Full update needed on start or not."; 811 } 812 leaf-list excluded-change { 813 type change-type; 814 description 815 "Restrict which changes trigger an update."; 816 } 817 } 818 } 819 } 820 output { 821 list error-code-list { 822 key "response-index"; 823 leaf response-index { 824 type uint32; 825 description 826 "Response index."; 827 } 828 leaf status-code { 829 type int32; 830 description 831 "Error code."; 832 } 833 leaf status-sub-code { 834 type uint8; 835 description 836 "Sub code."; 837 } 838 description 839 "Error code list."; 840 } 841 leaf cc-persistent-id { 842 type string; 843 description 844 "Id to act as a cookie."; 845 } 846 } 847 } 848 rpc cc-persistent-modify { 849 if-feature "coam:continuity-check"; 850 description 851 "Modifies persistent continuity-check 852 as per RFC7276."; 853 input { 854 leaf cc-persistent-id { 855 type string; 856 description 857 "Cookie Id to be used for modifications."; 858 } 859 leaf data-export-method { 860 type export-method; 861 description 862 "Type of export to use."; 863 } 864 choice cc-trigger { 865 description 866 "Defines necessary conditions for 867 periodic or on-change trigger."; 868 case periodic { 869 description 870 "Periodic reports."; 871 leaf period { 872 type yang:timeticks; 873 description 874 "Time interval between reports."; 875 } 876 leaf start-time { 877 type yang:date-and-time; 878 description 879 "Timestamp from which reports are started."; 880 } 881 } 882 case on-change { 883 description 884 "On-change trigger and not periodic."; 885 leaf all-data-on-start { 886 type boolean; 887 description 888 "Full update needed on start or not."; 890 } 891 leaf-list excluded-change { 892 type change-type; 893 description 894 "Restrict which changes trigger an update."; 895 } 896 } 897 } 898 } 899 output { 900 list error-code-list { 901 key "response-index"; 902 leaf response-index { 903 type uint32; 904 description 905 "Response index."; 906 } 907 leaf status-code { 908 type int32; 909 description 910 "Error code"; 911 } 912 leaf status-sub-code { 913 type uint8; 914 description 915 "Sub code."; 916 } 917 description 918 "Error code list."; 919 } 920 leaf cc-persistent-id { 921 type string; 922 description 923 "Id to represent a cookie."; 924 } 925 } 926 } 927 rpc cc-persistent-delete { 928 if-feature "coam:continuity-check"; 929 description 930 "Deletes persistent continuity-check as per RFC7276."; 931 input { 932 leaf cc-persistent-id { 933 type string; 934 description 935 "Cookie Id to be used in deletion."; 936 } 937 } 938 output { 939 list error-code-list { 940 key "response-index"; 941 leaf response-index { 942 type uint32; 943 description 944 "Response index."; 945 } 946 leaf status-code { 947 type int32; 948 description 949 "Error code."; 950 } 951 leaf status-sub-code { 952 type uint8; 953 description 954 "Sub code."; 955 } 956 description 957 "Error code list."; 958 } 959 } 960 } 962 rpc pd-persistent-create { 963 description 964 "Generates persistent path discovery."; 965 input { 966 container destination-tp { 967 uses coam:tp-address; 968 description 969 "Destination test point."; 970 } 971 uses coam:session-type; 972 leaf source-interface { 973 type if:interface-ref; 974 description 975 "Source interface."; 976 } 977 leaf outbound-interface { 978 type if:interface-ref; 979 description 980 "Outbound interface."; 981 } 982 leaf vrf { 983 type coam:routing-instance-ref; 984 description 985 "VRF"; 987 } 988 leaf max-ttl { 989 type uint8; 990 default "255"; 991 description 992 "Max ttl."; 993 } 994 leaf data-export-method { 995 type export-method; 996 description 997 "Type of export."; 998 } 999 choice pd-trigger { 1000 description 1001 "Defines necessary conditions 1002 for periodic or on-change 1003 trigger."; 1004 case periodic { 1005 description 1006 "Periodic reports."; 1007 leaf period { 1008 type yang:timeticks; 1009 description 1010 "Time interval between reports."; 1011 } 1012 leaf start-time { 1013 type yang:date-and-time; 1014 description 1015 "Timestamp from which reports are started."; 1016 } 1017 } 1018 case on-change { 1019 description 1020 "On-change trigger and not periodic."; 1021 leaf all-data-on-start { 1022 type boolean; 1023 description 1024 "Full update needed on start or not."; 1025 } 1026 leaf-list excluded-change { 1027 type change-type; 1028 description 1029 "Restrict which changes trigger an update."; 1030 } 1031 } 1032 } 1033 } 1034 output { 1035 list response-list { 1036 key "response-index"; 1037 description 1038 "Path discovery response list."; 1039 leaf response-index { 1040 type uint32; 1041 description 1042 "Response index."; 1043 } 1044 leaf status-code { 1045 type int32; 1046 description 1047 "Error code is "; 1048 } 1049 leaf status-sub-code { 1050 type uint8; 1051 description 1052 "Sub code is "; 1053 } 1054 leaf pd-persistent-id { 1055 type string; 1056 description 1057 "Id to act as a cookie."; 1058 } 1059 } 1060 } 1061 } 1062 rpc pd-persistent-modify { 1063 description 1064 "Modifies persistent path discovery."; 1065 input { 1066 leaf pd-persistent-id { 1067 type string; 1068 description 1069 "Cookie Id to be used for modifications."; 1070 } 1071 leaf data-export-method { 1072 type export-method; 1073 description 1074 "Type of export."; 1075 } 1076 choice pd-trigger { 1077 description 1078 "Defines necessary conditions for periodic or on-change 1079 trigger."; 1080 case periodic { 1081 description 1082 "Periodic reports."; 1084 leaf period { 1085 type yang:timeticks; 1086 description 1087 "Time interval between reports."; 1088 } 1089 leaf start-time { 1090 type yang:date-and-time; 1091 description 1092 "Timestamp from which reports are started."; 1093 } 1094 } 1095 case on-change { 1096 description 1097 "On-change trigger and not periodic."; 1098 leaf all-data-on-start { 1099 type boolean; 1100 description 1101 "Full update needed on start or not."; 1102 } 1103 leaf-list excluded-change { 1104 type change-type; 1105 description 1106 "Restrict which changes trigger an update."; 1107 } 1108 } 1109 } 1110 } 1111 output { 1112 list response-list { 1113 key "response-index"; 1114 description 1115 "path discovery response list."; 1116 leaf response-index { 1117 type uint32; 1118 description 1119 "response index."; 1120 } 1121 leaf status-code { 1122 type int32; 1123 description 1124 "error code is "; 1125 } 1126 leaf status-sub-code { 1127 type uint8; 1128 description 1129 "sub code is "; 1130 } 1131 leaf pd-persistent-id { 1132 type string; 1133 description 1134 "Id to act as a cookie."; 1135 } 1136 } 1137 } 1138 } 1139 rpc pd-persistent-delete { 1140 description 1141 "Deletes persistent path discovery."; 1142 input { 1143 leaf pd-persistent-id { 1144 type string; 1145 description 1146 "Cookie Id to be used in deletion."; 1147 } 1148 } 1149 output { 1150 list response-list { 1151 key "response-index"; 1152 description 1153 "path discovery response list."; 1154 leaf response-index { 1155 type uint32; 1156 description 1157 "response index."; 1158 } 1159 leaf status-code { 1160 type int32; 1161 description 1162 "error code is "; 1163 } 1164 leaf status-sub-code { 1165 type uint8; 1166 description 1167 "sub code is "; 1168 } 1169 } 1170 } 1171 } 1173 1175 Authors' Addresses 1176 Deepak Kumar 1177 CISCO Systems 1178 510 McCarthy Blvd 1179 Milpitas, CA 95035 1180 USA 1182 Email: dekumar@cisco.com 1184 Michael Wang 1185 Huawei Technologies,Co.,Ltd 1186 101 Software Avenue, Yuhua District 1187 Nanjing 210012 1188 China 1190 Email: wangzitao@huawei.com 1192 Qin Wu 1193 Huawei 1194 101 Software Avenue, Yuhua District 1195 Nanjing, Jiangsu 210012 1196 China 1198 Email: bill.wu@huawei.com 1200 Reshad Rahman 1201 CISCO Systems 1202 2000 Innovation Drive 1203 KANATA, ONTARIO K2K 3E8 1204 CANADA 1206 Email: rrahman@cisco.com 1208 Srihari Raghavan 1209 CISCO Systems 1210 TRIL INFOPARK SEZ, Ramanujan IT City 1211 NEVILLE BLOCK, 2nd floor, Old Mahabalipuram Road 1212 CHENNAI, TAMIL NADU 600113 1213 INDIA 1215 Email: srihari@cisco.com