idnits 2.17.1 draft-ietf-lime-yang-connectionless-oam-methods-09.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 5 instances of too long lines in the document, the longest one being 3 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 338 has weird spacing: '...on-type ide...' == Line 340 has weird spacing: '...address yan...' == Line 342 has weird spacing: '...address ine...' == Line 344 has weird spacing: '...address ine...' == Line 373 has weird spacing: '...terface if:...' == (25 more instances...) -- The document date (October 11, 2017) is 2388 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: A later version (-18) exists of draft-ietf-lime-yang-connectionless-oam-11 ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) == Outdated reference: A later version (-25) exists of draft-ietf-netconf-yang-push-10 -- Obsolete informational reference (is this intentional?): RFC 6087 (Obsoleted by RFC 8407) Summary: 3 errors (**), 0 flaws (~~), 9 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: April 14, 2018 Q. Wu 6 Huawei 7 R. Rahman 8 S. Raghavan 9 Cisco 10 October 11, 2017 12 Retrieval Methods YANG Data Model for Connectionless Operations, 13 Administration, and Maintenance(OAM) protocols 14 draft-ietf-lime-yang-connectionless-oam-methods-09 16 Abstract 18 This document presents a retrieval method YANG Data model for 19 connectionless OAM protocols. It provides technology-independent RPC 20 operations 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 interacting 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 https://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 April 14, 2018. 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 (https://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 . . . . . . . . . . . . . . . . . . . . . . . 3 65 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 66 3. Overview of the Connectionless OAM retrieval methods Model . 4 67 3.1. RPC operation definitions . . . . . . . . . . . . . . . . 5 68 3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8 69 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 15 70 5. Security Considerations . . . . . . . . . . . . . . . . . . . 21 71 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 72 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 73 7.1. Normative References . . . . . . . . . . . . . . . . . . 22 74 7.2. Informative References . . . . . . . . . . . . . . . . . 23 75 Appendix A. Appdendix A.1 Extending Connectionless OAM Method 76 Module Example . . . . . . . . . . . . . . . . . . . 24 77 Appendix B. Appendix A.2 Example of new retrieval procedures 78 Model . . . . . . . . . . . . . . . . . . . . . . . 25 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35 81 1. Introduction 83 Operations, Administration, and Maintenance (OAM) are important 84 networking functions that allow operators to: 86 1. Monitor reachability of destinations (Reachability Verification, 87 Continuity Check). 89 2. Troubleshoot failures (Fault verification and localization). 91 3. Monitor Performance 92 An overview of OAM tools is presented at [RFC7276]. 94 Ping and Traceroute [RFC792], [RFC4443] and BFD [RFC5880] are well- 95 known fault verification and isolation tools, respectively, for IP 96 networks. Over the years, different technologies have developed 97 similar tools for similar purposes. 99 In this document, we present an on-demand retrieval method YANG Data 100 model for connectionless OAM protocols. This model provides 101 technology-independent RPC operations for connectionless OAM 102 protocols. It is separated from the generic YANG model for 103 connectionless OAM [I-D.ietf-lime-yang-connectionless-oam] and can 104 avoid mixing the models for the retrieved-data from the retrieval 105 procedures. It is expected that retrieval procedures would evolve 106 faster than the data model [I-D.ietf-lime-yang-connectionless-oam] 107 and will allow new procedures to be defined for retrieval of the same 108 data defined by the base data model. 110 2. Conventions used in this document 112 The following terms are defined in [RFC6241] and are not redefined 113 here: 115 o client 117 o configuration data 119 o server 121 o state data 123 The following terms are defined in [RFC6020] and are not redefined 124 here: 126 o augment 128 o data model 130 o data node 132 The terminology for describing YANG data models is found in 133 [RFC6020]. 135 2.1. Terminology 137 TP - Test Point 139 MAC - Media Access Control 140 RPC - A Remote Procedure Call 142 RPC operation - A specific Remote Procedure Call 144 2.2. Tree Diagrams 146 A simplified graphical representation of the data model is used in 147 this document. The meaning of the symbols in these diagrams is as 148 follows: 150 Each node is printed as: 152 154 is one of: 155 + for current 157 is one of: 159 rw for configuration data 160 ro for non-configuration data 161 -x for rpcs 162 -n for notifications 164 is the name of the node 166 If the node is augmented into the tree from another module, its name 167 is printed as :. 169 is one of: 171 ? for an optional leaf or choice 172 ! for a presence container 173 * for a leaf-list or list 174 [] for a list's keys 176 is the name of the type for leafs and leaf-lists 178 3. Overview of the Connectionless OAM retrieval methods Model 180 In this document, we present an on-demand retrieval method YANG Data 181 model for connectionless OAM protocols. This model provides 182 technology-independent retrieval procedures (RPC operations) for 183 connectionless OAM protocols. It provides a flexible way to retrieve 184 the data which defined by the "ietf-connectionless-oam.yang" 185 [I-D.ietf-lime-yang-connectionless-oam]. 187 3.1. RPC operation definitions 189 The RPC model facilitates issuing commands to a NETCONF server (in 190 this case to the device that need to execute the OAM command) and 191 obtaining a response. 193 Under 'connectionless-oam-methods' module, we summarize common OAM 194 functions and define two generic RPC operations: 'continuity-check' 195 and 'path-discovery'. In practice, these RPC operations are 196 activated on-demand and supported by corresponding technology- 197 specific OAM tools [RFC7276]. For example, for the IP OAM model, the 198 continuity-check RPC corresponds to the IP Ping [RFC792] [RFC4443], 199 while the path-discovery RPC operation corresponds to IP Traceroute 200 [RFC792] [RFC4443]. 202 Note that the RPC operation presented in this document is the base 203 building block, which is used to derive a model for a technology- 204 specific OAM (i.e., ICMP ping [RFC792] [RFC4443], LSP ping 205 [RFC8029]), the base building block should be extended with 206 corresponding technology specific parameters. To facilitate this for 207 future enhancements to data retrieval methods, the RPCs are captured 208 under a separate module. 210 The generic 'path-discovery-data' and 'continuity-check-data' 211 groupings are used as data outputs from different RPCs described in 212 this document. Similar methods including other RPCs can retrieve the 213 data using the same data model. 215 rpc continuity-check { 216 if-feature coam:continuity-check; 217 description 218 "Continuity-check RPC operation as per RFC7276."; 219 input { 220 uses rpc-input-parameters; 221 .... 222 } 223 output { 224 container error-code { 225 leaf protocol-id { 226 type identityref { 227 base protocol-id; 228 } 229 mandatory true; 230 description 231 "Protocol used in CC. This could be a standard 232 protocol (eg., TCP/IP protocols, MPLS etc.,) 233 or a proprietary protocol as identified by 234 this field."; 236 } 237 leaf protocol-id-meta-data { 238 type uint64; 239 description 240 "An optional meta-data related to the protocol ID. 241 For eg., this could be the Internet Protocol number 242 for standard Internet Protocols for help in protocol 243 processing."; 244 } 245 leaf status-code { 246 type identityref{ 247 base status-code; 248 } 249 mandatory true; 250 description 251 "Error code for CC."; 252 } 253 leaf status-sub-code { 254 type identityref{ 255 base status-sub-code; 256 } 257 mandatory true; 258 description 259 "Sub code for CC."; 260 } 261 description 262 "Error code and Sub Code for CC."; 263 } 264 uses coam:continuity-check-data; 265 } 266 } 268 rpc path-discovery { 269 description 270 "path discovery RPC operation as per RFC7276."; 271 input { 272 uses rpc-input-parameters; 273 ..... 274 } 275 output { 276 list response-list { 277 key "response-index"; 278 description 279 "Path discovery response list."; 280 leaf response-index { 281 type uint32; 282 mandatory true; 283 description 284 "Response index."; 285 } 286 leaf protocol-id { 287 type identityref { 288 base protocol-id; 289 } 290 mandatory true; 291 description 292 "Protocol used in PD. This could be a standard 293 protocol (eg., TCP/IP protocols, MPLS etc.,) 294 or a proprietary protocol as identified by 295 this field."; 296 } 297 leaf protocol-id-meta-data { 298 type uint64; 299 description 300 "An optional meta-data related to the protocol ID. 301 For eg., this could be the Internet Protocol number 302 for standard Internet Protocols for help in protocol 303 processing."; 304 } 305 leaf status-code { 306 type identityref{ 307 base status-code; 308 } 309 mandatory true; 310 description 311 "Error code for Path Discovery. "; 312 } 313 leaf status-sub-code { 314 type identityref{ 315 base status-sub-code; 316 } 317 mandatory true; 318 description 319 "Sub code for Path Discovery. "; 320 } 321 } 322 uses coam:path-discovery-data; 323 } 324 } 326 Snippet of data hierarchy related to RPC operations 328 3.2. OAM Retrieval Methods Hierarchy 330 The complete data hierarchy related to the Connectionless OAM 331 Retrieval Methods YANG model is presented below. 333 module: ietf-connectionless-oam-methods 334 rpcs: 335 +---x continuity-check {coam:continuity-check}? 336 | +---w input 337 | | +---w destination-tp 338 | | | +---w tp-location-type identityref 339 | | | +---w mac-address 340 | | | | +---w mac-address yang:mac-address 341 | | | +---w ipv4-address 342 | | | | +---w ipv4-address inet:ipv4-address 343 | | | +---w ipv6-address 344 | | | | +---w ipv6-address inet:ipv6-address 345 | | | +---w tp-attribute 346 | | | | +---w tp-attribute-type? address-attribute-type 347 | | | | +---w (tp-attribute-value)? 348 | | | | +--:(ip-prefix) 349 | | | | | +---w ip-prefix? inet:ip-prefix 350 | | | | +--:(bgp) 351 | | | | | +---w bgp? inet:ip-prefix 352 | | | | +--:(tunnel) 353 | | | | | +---w tunnel-interface? uint32 354 | | | | +--:(pw) 355 | | | | | +---w remote-pe-address? inet:ip-address 356 | | | | | +---w pw-id? uint32 357 | | | | +--:(vpls) 358 | | | | | +---w route-distinguisher? rt:route-distinguisher 359 | | | | | +---w sender-ve-id? uint16 360 | | | | | +---w receiver-ve-id? uint16 361 | | | | +--:(mpls-mldp) 362 | | | | +---w (root-address)? 363 | | | | +--:(ip-address) 364 | | | | | +---w source-address? inet:ip-address 365 | | | | | +---w group-ip-address? inet:ip-address 366 | | | | +--:(vpn) 367 | | | | | +---w as-number? inet:as-number 368 | | | | +--:(global-id) 369 | | | | +---w lsp-id? string 370 | | | +---w system-info 371 | | | +---w system-id? rt:router-id 372 | | +---w source-interface if:interface-ref 373 | | +---w outbound-interface if:interface-ref 374 | | +---w vrf? coam:routing-instance-ref 375 | | +---w session-type? enumeration 376 | | +---w count? uint32 377 | | +---w ttl? uint8 378 | | +---w packet-size? uint32 379 | +--ro output 380 | +--ro error-code 381 | | +--ro protocol-id identityref 382 | | +--ro protocol-id-meta-data uint64 383 | | +--ro status-code identityref 384 | | +--ro status-sub-code identityref 385 | +--ro src-test-point 386 | | +--ro ni? routing-instance-ref 387 | | +--ro tp-location-type identityref 388 | | +--ro mac-address 389 | | | +--ro mac-address yang:mac-address 390 | | +--ro ipv4-address 391 | | | +--ro ipv4-address inet:ipv4-address 392 | | +--ro ipv6-address 393 | | | +--ro ipv6-address inet:ipv6-address 394 | | +--ro tp-attribute 395 | | | +--ro tp-attribute-type? address-attribute-type 396 | | | +--ro (tp-attribute-value)? 397 | | | +--:(ip-prefix) 398 | | | | +--ro ip-prefix? inet:ip-prefix 399 | | | +--:(bgp) 400 | | | | +--ro bgp? inet:ip-prefix 401 | | | +--:(tunnel) 402 | | | | +--ro tunnel-interface? uint32 403 | | | +--:(pw) 404 | | | | +--ro remote-pe-address? inet:ip-address 405 | | | | +--ro pw-id? uint32 406 | | | +--:(vpls) 407 | | | | +--ro route-distinguisher? rt:route-distinguisher 408 | | | | +--ro sender-ve-id? uint16 409 | | | | +--ro receiver-ve-id? uint16 410 | | | +--:(mpls-mldp) 411 | | | +--ro (root-address)? 412 | | | +--:(ip-address) 413 | | | | +--ro source-address? inet:ip-address 414 | | | | +--ro group-ip-address? inet:ip-address 415 | | | +--:(vpn) 416 | | | | +--ro as-number? inet:as-number 417 | | | +--:(global-id) 418 | | | +--ro lsp-id? string 419 | | +--ro system-info 420 | | | +--ro system-id? rt:router-id 421 | | +--ro egress-intf-name? if:interface-ref 422 | +--ro dest-test-point 423 | | +--ro ni? routing-instance-ref 424 | | +--ro tp-location-type identityref 425 | | +--ro mac-address 426 | | | +--ro mac-address yang:mac-address 427 | | +--ro ipv4-address 428 | | | +--ro ipv4-address inet:ipv4-address 429 | | +--ro ipv6-address 430 | | | +--ro ipv6-address inet:ipv6-address 431 | | +--ro tp-attribute 432 | | | +--ro tp-attribute-type? address-attribute-type 433 | | | +--ro (tp-attribute-value)? 434 | | | +--:(ip-prefix) 435 | | | | +--ro ip-prefix? inet:ip-prefix 436 | | | +--:(bgp) 437 | | | | +--ro bgp? inet:ip-prefix 438 | | | +--:(tunnel) 439 | | | | +--ro tunnel-interface? uint32 440 | | | +--:(pw) 441 | | | | +--ro remote-pe-address? inet:ip-address 442 | | | | +--ro pw-id? uint32 443 | | | +--:(vpls) 444 | | | | +--ro route-distinguisher? rt:route-distinguisher 445 | | | | +--ro sender-ve-id? uint16 446 | | | | +--ro receiver-ve-id? uint16 447 | | | +--:(mpls-mldp) 448 | | | +--ro (root-address)? 449 | | | +--:(ip-address) 450 | | | | +--ro source-address? inet:ip-address 451 | | | | +--ro group-ip-address? inet:ip-address 452 | | | +--:(vpn) 453 | | | | +--ro as-number? inet:as-number 454 | | | +--:(global-id) 455 | | | +--ro lsp-id? string 456 | | +--ro system-info 457 | | | +--ro system-id? rt:router-id 458 | | +--ro ingress-intf-name? if:interface-ref 459 | +--ro sequence-number? uint64 460 | +--ro hop-cnt? uint8 461 | +--ro session-packet-statistics 462 | | +--ro rx-packet-count? uint32 463 | | +--ro tx-packet-count? uint32 464 | | +--ro rx-bad-packet? uint32 465 | | +--ro tx-packet-failed? uint32 466 | +--ro session-error-statistics 467 | | +--ro packet-drops-count? uint32 468 | | +--ro packet-reorder-count? uint32 469 | | +--ro packets-out-of-seq-count? uint32 470 | | +--ro packets-dup-count? uint32 471 | +--ro session-delay-statistics 472 | | +--ro time-resolution-value? identityref 473 | | +--ro min-delay-value? uint32 474 | | +--ro max-delay-value? uint32 475 | | +--ro average-delay-value? uint32 476 | +--ro session-jitter-statistics 477 | +--ro time-resolution-value? identityref 478 | +--ro min-jitter-value? uint32 479 | +--ro max-jitter-value? uint32 480 | +--ro average-jitter-value? uint32 481 +---x path-discovery {coam:path-discovery}? 482 +---w input 483 | +---w destination-tp 484 | | +---w tp-location-type identityref 485 | | +---w mac-address 486 | | | +---w mac-address yang:mac-address 487 | | +---w ipv4-address 488 | | | +---w ipv4-address inet:ipv4-address 489 | | +---w ipv6-address 490 | | | +---w ipv6-address inet:ipv6-address 491 | | +---w tp-attribute 492 | | | +---w tp-attribute-type? address-attribute-type 493 | | | +---w (tp-attribute-value)? 494 | | | +--:(ip-prefix) 495 | | | | +---w ip-prefix? inet:ip-prefix 496 | | | +--:(bgp) 497 | | | | +---w bgp? inet:ip-prefix 498 | | | +--:(tunnel) 499 | | | | +---w tunnel-interface? uint32 500 | | | +--:(pw) 501 | | | | +---w remote-pe-address? inet:ip-address 502 | | | | +---w pw-id? uint32 503 | | | +--:(vpls) 504 | | | | +---w route-distinguisher? rt:route-distinguisher 505 | | | | +---w sender-ve-id? uint16 506 | | | | +---w receiver-ve-id? uint16 507 | | | +--:(mpls-mldp) 508 | | | +---w (root-address)? 509 | | | +--:(ip-address) 510 | | | | +---w source-address? inet:ip-address 511 | | | | +---w group-ip-address? inet:ip-address 512 | | | +--:(vpn) 513 | | | | +---w as-number? inet:as-number 514 | | | +--:(global-id) 515 | | | +---w lsp-id? string 516 | | +---w system-info 517 | | +---w system-id? rt:router-id 518 | +---w source-interface if:interface-ref 519 | +---w outbound-interface if:interface-ref 520 | +---w vrf? coam:routing-instance-ref 521 | +---w session-type? enumeration 522 | +---w max-ttl? uint8 523 +--ro output 524 +--ro response-list* [response-index] 525 | +--ro response-index uint32 526 | +--ro protocol-id identityref 527 | +--ro protocol-id-meta-data uint64 528 | +--ro status-code identityref 529 | +--ro status-sub-code identityref 530 +--ro src-test-point 531 | +--ro ni? routing-instance-ref 532 | +--ro tp-location-type identityref 533 | +--ro mac-address 534 | | +--ro mac-address yang:mac-address 535 | +--ro ipv4-address 536 | | +--ro ipv4-address inet:ipv4-address 537 | +--ro ipv6-address 538 | | +--ro ipv6-address inet:ipv6-address 539 | +--ro tp-attribute 540 | | +--ro tp-attribute-type? address-attribute-type 541 | | +--ro (tp-attribute-value)? 542 | | +--:(ip-prefix) 543 | | | +--ro ip-prefix? inet:ip-prefix 544 | | +--:(bgp) 545 | | | +--ro bgp? inet:ip-prefix 546 | | +--:(tunnel) 547 | | | +--ro tunnel-interface? uint32 548 | | +--:(pw) 549 | | | +--ro remote-pe-address? inet:ip-address 550 | | | +--ro pw-id? uint32 551 | | +--:(vpls) 552 | | | +--ro route-distinguisher? rt:route-distinguisher 553 | | | +--ro sender-ve-id? uint16 554 | | | +--ro receiver-ve-id? uint16 555 | | +--:(mpls-mldp) 556 | | +--ro (root-address)? 557 | | +--:(ip-address) 558 | | | +--ro source-address? inet:ip-address 559 | | | +--ro group-ip-address? inet:ip-address 560 | | +--:(vpn) 561 | | | +--ro as-number? inet:as-number 562 | | +--:(global-id) 563 | | +--ro lsp-id? string 564 | +--ro system-info 565 | +--ro system-id? rt:router-id 566 +--ro dest-test-point 567 | +--ro ni? routing-instance-ref 568 | +--ro tp-location-type identityref 569 | +--ro mac-address 570 | | +--ro mac-address yang:mac-address 571 | +--ro ipv4-address 572 | | +--ro ipv4-address inet:ipv4-address 573 | +--ro ipv6-address 574 | | +--ro ipv6-address inet:ipv6-address 575 | +--ro tp-attribute 576 | | +--ro tp-attribute-type? address-attribute-type 577 | | +--ro (tp-attribute-value)? 578 | | +--:(ip-prefix) 579 | | | +--ro ip-prefix? inet:ip-prefix 580 | | +--:(bgp) 581 | | | +--ro bgp? inet:ip-prefix 582 | | +--:(tunnel) 583 | | | +--ro tunnel-interface? uint32 584 | | +--:(pw) 585 | | | +--ro remote-pe-address? inet:ip-address 586 | | | +--ro pw-id? uint32 587 | | +--:(vpls) 588 | | | +--ro route-distinguisher? rt:route-distinguisher 589 | | | +--ro sender-ve-id? uint16 590 | | | +--ro receiver-ve-id? uint16 591 | | +--:(mpls-mldp) 592 | | +--ro (root-address)? 593 | | +--:(ip-address) 594 | | | +--ro source-address? inet:ip-address 595 | | | +--ro group-ip-address? inet:ip-address 596 | | +--:(vpn) 597 | | | +--ro as-number? inet:as-number 598 | | +--:(global-id) 599 | | +--ro lsp-id? string 600 | +--ro system-info 601 | +--ro system-id? rt:router-id 602 +--ro sequence-number? uint64 603 +--ro hop-cnt? uint8 604 +--ro session-packet-statistics 605 | +--ro rx-packet-count? uint32 606 | +--ro tx-packet-count? uint32 607 | +--ro rx-bad-packet? uint32 608 | +--ro tx-packet-failed? uint32 609 +--ro session-error-statistics 610 | +--ro packet-drops-count? uint32 611 | +--ro packet-reorder-count? uint32 612 | +--ro packets-out-of-seq-count? uint32 613 | +--ro packets-dup-count? uint32 614 +--ro session-delay-statistics 615 | +--ro time-resolution-value? identityref 616 | +--ro min-delay-value? uint32 617 | +--ro max-delay-value? uint32 618 | +--ro average-delay-value? uint32 619 +--ro session-jitter-statistics 620 | +--ro time-resolution-value? identityref 621 | +--ro min-jitter-value? uint32 622 | +--ro max-jitter-value? uint32 623 | +--ro average-jitter-value? uint32 624 +--ro path-verification 625 | +--ro flow-info? string 626 | +--ro session-path-verification-statistics 627 | +--ro verified-count? uint32 628 | +--ro failed-count? uint32 629 +--ro path-trace-info 630 +--ro path-trace-info-list* [index] 631 +--ro index uint32 632 +--ro ni? routing-instance-ref 633 +--ro tp-location-type identityref 634 +--ro mac-address 635 | +--ro mac-address yang:mac-address 636 +--ro ipv4-address 637 | +--ro ipv4-address inet:ipv4-address 638 +--ro ipv6-address 639 | +--ro ipv6-address inet:ipv6-address 640 +--ro tp-attribute 641 | +--ro tp-attribute-type? address-attribute-type 642 | +--ro (tp-attribute-value)? 643 | +--:(ip-prefix) 644 | | +--ro ip-prefix? inet:ip-prefix 645 | +--:(bgp) 646 | | +--ro bgp? inet:ip-prefix 647 | +--:(tunnel) 648 | | +--ro tunnel-interface? uint32 649 | +--:(pw) 650 | | +--ro remote-pe-address? inet:ip-address 651 | | +--ro pw-id? uint32 652 | +--:(vpls) 653 | | +--ro route-distinguisher? rt:route-distinguisher 654 | | +--ro sender-ve-id? uint16 655 | | +--ro receiver-ve-id? uint16 656 | +--:(mpls-mldp) 657 | +--ro (root-address)? 658 | +--:(ip-address) 659 | | +--ro source-address? inet:ip-address 660 | | +--ro group-ip-address? inet:ip-address 661 | +--:(vpn) 662 | | +--ro as-number? inet:as-number 663 | +--:(global-id) 664 | +--ro lsp-id? string 665 +--ro system-info 666 | +--ro system-id? rt:router-id 667 +--ro timestamp-type? uint32 668 +--ro timestamp-sec? uint32 669 +--ro timestamp-nanosec? uint32 670 +--ro ingress-intf-name? if:interface-ref 671 +--ro egress-intf-name? if:interface-ref 672 +--ro queue-depth? uint32 673 +--ro transit-delay? uint32 674 +--ro app-meta-data? uint64 676 data hierarchy of OAM Retrieval Methods 678 4. OAM Retrieval Methods YANG Module 680 file "ietf-connectionless-oam-methods@2017-09-06.yang" 682 module ietf-connectionless-oam-methods { 683 namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods"; 684 prefix coam-methods; 685 import ietf-interfaces { 686 prefix if; 687 } 688 import ietf-connectionless-oam { 689 prefix coam; 690 } 691 organization 692 "IETF LIME Working Group"; 693 contact 694 "Deepak Kumar dekumar@cisco.com 695 Qin Wu bill.wu@huawei.com 696 S Raghavan srihari@cisco.com 697 Zitao Wang wangzitao@huawei.com 698 R Rahman rrahman@cisco.com"; 699 description 700 "This YANG module defines the RPC operations for 701 connectionless OAM to be used within IETF 702 in a protocol Independent manner. 703 It is assumed that each protocol maps 704 corresponding abstracts to its native format. 705 Each protocol may extend the YANG model defined 706 here to include protocol specific extensions"; 708 revision 2017-09-06{ 709 description 710 "08 version"; 711 reference "draft-ietf-lime-yang-connectionless-oam-methods"; 713 } 715 identity protocol-id { 716 description 717 "A generic protocol identifier."; 718 } 720 identity protocol-id-internet { 721 base protocol-id; 722 description 723 "Internet Protocols."; 724 } 726 identity protocol-id-propreitary { 727 base protocol-id; 728 description 729 "Propreitary protocol (eg.,IP SLA)."; 730 } 732 identity protocol-id-sfc { 733 base protocol-id; 734 description 735 "Service Function Chaining."; 736 } 738 identity protocol-id-mpls { 739 base protocol-id; 740 description 741 "MPLS protocol."; 742 } 744 identity protocol-id-mpls-tp { 745 base protocol-id; 746 description 747 "MPLS-TP protocol."; 748 } 750 identity protocol-id-twamp { 751 base protocol-id; 752 description 753 "TWAMP protocol."; 754 } 756 identity protocol-id-bier { 757 base protocol-id; 758 description 759 "BIER protocol."; 760 } 761 identity status-code{ 762 description 763 "Base status code"; 764 } 766 identity invalid-cc{ 767 base status-code; 768 description 769 "Indicates that the Continuity check message is invalid"; 770 } 772 identity invalid-pd { 773 base status-code; 774 description 775 "Indicates that the path discovery message is invalid"; 776 } 778 identity status-sub-code { 779 description 780 "Base status sub code"; 781 } 783 grouping rpc-input-parameters { 784 container destination-tp { 785 uses coam:tp-address; 786 description 787 "Destination test point."; 788 } 789 leaf source-interface { 790 type if:interface-ref; 791 mandatory true; 792 description 793 "Source interface."; 794 } 795 leaf outbound-interface { 796 type if:interface-ref; 797 mandatory true; 798 description 799 "Outbound interface."; 800 } 801 leaf vrf { 802 type coam:routing-instance-ref; 803 description 804 "VRF instance."; 805 } 806 description 807 "Grouping for RPC input parameters"; 808 } 809 rpc continuity-check { 810 if-feature "coam:continuity-check"; 811 description 812 "Continuity-check RPC operation as per RFC7276."; 813 input { 814 uses rpc-input-parameters; 815 uses coam:session-type { 816 description "If session-type is specified, then session-type 817 must be set to on-demand"; 818 } 819 leaf count { 820 type uint32 { 821 range 1..4294967295 { 822 description 823 "The overall number of packet to be transmitted 824 by the sender. If the count is set to 4294967295, 825 it indicates that the session will be run forever"; 826 } 827 } 828 default "5"; 829 description 830 "Specifies the number of 831 packets that will be sent. By 832 default, the packet number is 833 set to 5."; 834 } 835 leaf ttl { 836 type uint8; 837 default "255"; 838 description 839 "Time to live (TTL) used to limit lifetime 840 of data packet transmitted in the network 841 and prevent looping. The TTL value is decremented 842 for every hop which the packet traverses. If the 843 TTL is zero, the data packet will be discarded."; 844 } 845 leaf packet-size { 846 type uint32 { 847 range "64..10000"; 848 } 849 default "64"; 850 description 851 "Packet size of continuity-check message, in octets. 852 By default, the packet size is set to 64 octets."; 853 } 854 } 855 output { 856 container error-code { 857 leaf protocol-id { 858 type identityref { 859 base protocol-id; 860 } 861 mandatory true; 862 description 863 "Protocol used in CC. This could be a standard 864 protocol (eg., TCP/IP protocols, MPLS etc.,) 865 or a proprietary protocol as identified by 866 this field."; 867 } 868 leaf protocol-id-meta-data { 869 type uint64; 870 description 871 "An optional meta-data related to the protocol ID. 872 For eg., this could be the Internet Protocol number 873 for standard Internet Protocols for help in protocol 874 processing."; 875 } 876 leaf status-code { 877 type identityref{ 878 base status-code; 879 } 880 mandatory true; 881 description 882 "Error code for continuity-check message, that is 883 relevant to the protocol under use for CC. 884 For example if ICMP is the protocol under use, the 885 error codes are as defined in [RFC4443]."; 886 } 887 leaf status-sub-code { 888 type identityref{ 889 base status-sub-code; 890 } 891 mandatory true; 892 description 893 "Error sub code for continuity-check message, that is 894 relevant to the error-code reported of the protocol 895 that is used for CC."; 896 } 897 description 898 "Error code and Sub Code for continuity-check message."; 899 } 900 uses coam:continuity-check-data; 901 } 902 } 904 rpc path-discovery { 905 if-feature "coam:path-discovery"; 906 description 907 "Path discovery RPC operation as per RFC7276."; 908 input { 909 uses rpc-input-parameters; 910 uses coam:session-type { 911 description "If session-type is specified, then session-type 912 must be set to on-demand"; 913 } 914 leaf max-ttl { 915 type uint8; 916 default "255"; 917 description 918 "Maximum TTL indicates the maixmum number of hops that 919 a packet is permitted to travel before being discarded 920 by a router. By default, the maximimum TTL is set to 255."; 921 } 922 } 923 output { 924 list response-list { 925 key "response-index"; 926 description 927 "Path discovery response list."; 928 leaf response-index { 929 type uint32; 930 mandatory true; 931 description 932 "Response index."; 933 } 934 leaf protocol-id { 935 type identityref { 936 base protocol-id; 937 } 938 mandatory true; 939 description 940 "Protocol used in PD. This could be a standard 941 protocol (eg., TCP/IP protocols, MPLS etc.,) 942 or a proprietary protocol as identified by 943 this field."; 944 } 945 leaf protocol-id-meta-data { 946 type uint64; 947 description 948 "An optional meta-data related to the protocol ID. 949 For eg., this could be the Internet Protocol number 950 for standard Internet Protocols for help in protocol 951 processing."; 952 } 953 leaf status-code { 954 type identityref{ 955 base status-code; 956 } 957 mandatory true; 958 description 959 "Error code for path-discovery response message, that is 960 relevant to the protocol under use for PD. 961 For example if ICMP is the protocol under use, the 962 error codes are as defined in [RFC4443]."; 963 } 964 leaf status-sub-code { 965 type identityref{ 966 base status-sub-code; 967 } 968 mandatory true; 969 description 970 "Error sub code for path-discovery message, that is 971 relevant to the error-code reported of the protocol 972 that is used for PD."; 973 } 974 } 975 uses coam:path-discovery-data; 976 } 977 } 978 } 980 982 5. Security Considerations 984 The YANG module defined in this document is designed to be accessed 985 via network management protocols such as NETCONF [RFC6241] or 986 RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport 987 layer, and the mandatory-to-implement secure transport is Secure 988 Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the 989 mandatory-to-implement secure transport is TLS [RFC5246]. 991 The NETCONF access control model [RFC6536] provides the means to 992 restrict access for particular NETCONF or RESTCONF users to a 993 preconfigured subset of all available NETCONF or RESTCONF protocol 994 operations and content. 996 Some of the RPC operations in this YANG module may be considered 997 sensitive or vulnerable in some network environments. It is thus 998 important to control access to these operations. These are the 999 operations and their sensitivity/vulnerability: 1001 o continuity-check: Generates continuity check. 1003 o path-discovery: Generates path discovery. 1005 which may lead to Denial-of-Service attack on both the local device 1006 and the network or unauthorized source access to some sensitive 1007 information. 1009 6. IANA Considerations 1011 This document registers a URI in the IETF XML registry [RFC3688]. 1012 Following the format in [RFC3688], the following registration is 1013 requested to be made: 1015 URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods 1017 Registrant Contact: The IESG. 1019 XML: N/A, the requested URI is an XML namespace. 1021 This document registers a YANG module in the YANG Module Names 1022 registry [RFC6020]. 1024 name: ietf-connectionless-oam-methods 1026 namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam- 1027 methods 1029 prefix: coam-methods 1031 reference: RFC XXXX 1033 7. References 1035 7.1. Normative References 1037 [I-D.ietf-lime-yang-connectionless-oam] 1038 Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, 1039 "Generic YANG Data Model for Connectionless Operations, 1040 Administration, and Maintenance(OAM) protocols", draft- 1041 ietf-lime-yang-connectionless-oam-11 (work in progress), 1042 September 2017. 1044 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1045 DOI 10.17487/RFC3688, January 2004, 1046 . 1048 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1049 (TLS) Protocol Version 1.2", RFC 5246, 1050 DOI 10.17487/RFC5246, August 2008, 1051 . 1053 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1054 the Network Configuration Protocol (NETCONF)", RFC 6020, 1055 DOI 10.17487/RFC6020, October 2010, 1056 . 1058 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1059 and A. Bierman, Ed., "Network Configuration Protocol 1060 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1061 . 1063 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1064 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1065 . 1067 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1068 Protocol (NETCONF) Access Control Model", RFC 6536, 1069 DOI 10.17487/RFC6536, March 2012, 1070 . 1072 [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, 1073 "Specification of the IP Flow Information Export (IPFIX) 1074 Protocol for the Exchange of Flow Information", STD 77, 1075 RFC 7011, DOI 10.17487/RFC7011, September 2013, 1076 . 1078 [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, 1079 September 1981. 1081 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1082 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1083 . 1085 7.2. Informative References 1087 [I-D.ietf-netconf-yang-push] 1088 Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- 1089 Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to 1090 YANG datastore push updates", draft-ietf-netconf-yang- 1091 push-10 (work in progress), October 2017. 1093 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 1094 Control Message Protocol (ICMPv6) for the Internet 1095 Protocol Version 6 (IPv6) Specification", STD 89, 1096 RFC 4443, DOI 10.17487/RFC4443, March 2006, 1097 . 1099 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 1100 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 1101 . 1103 [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG 1104 Data Model Documents", RFC 6087, DOI 10.17487/RFC6087, 1105 January 2011, . 1107 [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. 1108 Weingarten, "An Overview of Operations, Administration, 1109 and Maintenance (OAM) Tools", RFC 7276, 1110 DOI 10.17487/RFC7276, June 2014, 1111 . 1113 [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., 1114 Aldrin, S., and M. Chen, "Detecting Multiprotocol Label 1115 Switched (MPLS) Data-Plane Failures", RFC 8029, 1116 DOI 10.17487/RFC8029, March 2017, 1117 . 1119 Appendix A. Appdendix A.1 Extending Connectionless OAM Method Module 1120 Example 1122 The following is an example of extensions possible to "ietf- 1123 connectionless-oam-methods" YANG model defined in this document. 1125 The snippet below depicts an example of augmenting the "ietf- 1126 connectionless-oam-methods" YANG model with ICMP ping attributes: 1128 augment "/coam-methods:continutiy-check" 1129 +"/coam-methods:output"{ 1130 container session-rtt-statistics{ 1131 leaf min-rtt{ 1132 type uint32; 1133 description 1134 "This minimum ping round-trip-time(RTT) received."; 1135 } 1136 leaf max-rtt{ 1137 type uint32; 1138 description 1139 "This maximum ping round-trip-time(RTT) received."; 1140 } 1141 leaf avg-rtt{ 1142 type uint32; 1143 description 1144 "The current average ping round-trip-time(RTT)"; 1145 } 1146 description 1147 "This container presents the ping round-trip-time statistics."; 1148 } 1149 } 1151 Appendix B. Appendix A.2 Example of new retrieval procedures Model 1153 As discussed in introduction section of this document, the new 1154 retrieval procedures can be defined for retrieval of the same data 1155 defined by base YANG Data model for connectionless OAM protocols. 1156 This appendix demonstrates how the base connectionless OAM data model 1157 can be extended to support persistent data retrieval besides on 1158 demand retrieval procedures defined in section 3,i.e.,first retrieve 1159 persistent-id based on destination test point location information 1160 and then retrieve export details based on persistent-id. Internet 1161 Protocol Flow Information Export (IPFIX) [RFC7011] or YANG-push 1162 [I-D.ietf-netconf-yang-push]. are currently outlined here as data 1163 export options and more can be added in future. 1165 The YANG module "example-cl-oam-persistent-methods" shown below is 1166 intended as an illustration rather than a real definition of a RPC 1167 operation model for persistent data retrieval. For the sake of 1168 brevity, this module does not obey all the guidelines specified in 1169 [RFC6087]. 1171 module example-cl-oam-persistent-methods { 1172 namespace "http://example.com/cl-oam-persistent-methods"; 1173 prefix pcoam-methods; 1174 import ietf-interfaces { 1175 prefix if; 1177 } 1178 import ietf-connectionless-oam { 1179 prefix coam; 1180 } 1181 import ietf-yang-types { 1182 prefix yang; 1183 } 1184 identity export-method { 1185 description 1186 "Base identity to represent a conceptual export-method."; 1187 } 1188 identity ipfix-export { 1189 base export-method; 1190 description 1191 "IPFIX based export. Configuration provided separately."; 1192 } 1193 identity yang-push-export { 1194 base export-method; 1195 description 1196 "Yang-push from draft-ietf-netconf-yang-push"; 1197 } 1198 identity protocol-id { 1199 description 1200 "A generic protocol identifier."; 1201 } 1202 identity status-code{ 1203 description 1204 "Base status code"; 1205 } 1207 identity invalid-cc{ 1208 base status-code; 1209 description 1210 "Indicates that the Continuity check message is invalid"; 1211 } 1213 identity invalid-pd { 1214 base status-code; 1215 description 1216 "Indicates that the path discovery message is invalid"; 1217 } 1219 identity status-sub-code { 1220 description 1221 "Base status sub code"; 1222 } 1223 typedef export-method { 1224 type identityref { 1225 base export-method; 1226 } 1227 description 1228 "Export method type."; 1229 } 1230 typedef change-type { 1231 type enumeration { 1232 enum "create" { 1233 description 1234 "Change due to a create."; 1235 } 1236 enum "delete" { 1237 description 1238 "Change due to a delete."; 1239 } 1240 enum "modify" { 1241 description 1242 "Change due to an update."; 1243 } 1244 } 1245 description 1246 "Different types of changes that may occur."; 1247 } 1249 rpc cc-get-persistent-id { 1250 if-feature "coam:continuity-check"; 1251 description 1252 "Obtains continuity-check persistent identification given mapping 1253 parameters as input."; 1254 input { 1255 container destination-tp { 1256 uses coam:tp-address; 1257 description 1258 "Destination test point."; 1259 } 1260 uses coam:session-type; 1261 leaf source-interface { 1262 type if:interface-ref; 1263 description 1264 "Source interface."; 1265 } 1266 leaf outbound-interface { 1267 type if:interface-ref; 1268 description 1269 "Outbound interface."; 1270 } 1271 leaf vrf { 1272 type coam:routing-instance-ref; 1273 description 1274 "VRF instance."; 1275 } 1276 } 1277 output { 1278 container error-code { 1279 leaf protocol-id { 1280 type identityref { 1281 base protocol-id; 1282 } 1283 mandatory true; 1284 description 1285 "Protocol used. This could be a standard 1286 protocol (eg., TCP/IP protocols, MPLS etc.,) 1287 or a proprietary protocol as identified by 1288 this field."; 1289 } 1290 leaf protocol-id-meta-data { 1291 type uint64; 1292 description 1293 "An optional meta-data related to the protocol ID. 1294 For eg., this could be the Internet Protocol number 1295 for standard Internet Protocols for help in protocol 1296 processing."; 1297 } 1298 leaf status-code { 1299 type identityref{ 1300 base status-code; 1301 } 1302 mandatory true; 1303 description 1304 "Error code."; 1305 } 1306 leaf status-sub-code { 1307 type identityref{ 1308 base status-sub-code; 1309 } 1310 mandatory true; 1311 description 1312 "Sub code for CC."; 1313 } 1314 description 1315 "Error code and Sub Code."; 1316 } 1318 leaf cc-persistent-id { 1319 type string; 1320 description 1321 "Id to act as a cookie."; 1322 } 1323 } 1324 } 1326 rpc cc-persistent-get-export-details { 1327 if-feature "coam:continuity-check"; 1328 description 1329 "Given the persistent id, gets the configuration 1330 options, details related to the configured data 1331 export."; 1332 input { 1333 leaf cc-persistent-id { 1334 type string; 1335 description 1336 "Persistent Id for use as a key in search."; 1337 } 1338 } 1339 output { 1340 container error-code { 1341 leaf protocol-id { 1342 type identityref { 1343 base protocol-id; 1344 } 1345 mandatory true; 1346 description 1347 "Protocol used. This could be a standard 1348 protocol (eg., TCP/IP protocols, MPLS etc.,) 1349 or a proprietary protocol as identified by 1350 this field."; 1351 } 1352 leaf protocol-id-meta-data { 1353 type uint64; 1354 description 1355 "An optional meta-data related to the protocol ID. 1356 For eg., this could be the Internet Protocol number 1357 for standard Internet Protocols for help in protocol 1358 processing."; 1359 } 1360 leaf status-code { 1361 type identityref{ 1362 base status-code; 1363 } 1364 mandatory true; 1365 description 1366 "Error code."; 1367 } 1368 leaf status-sub-code { 1369 type identityref{ 1370 base status-sub-code; 1371 } 1372 mandatory true; 1373 description 1374 "Sub code for CC."; 1375 } 1376 description 1377 "Error code and Sub Code."; 1378 } 1380 leaf data-export-method { 1381 type export-method; 1382 description 1383 "Type of export in use."; 1384 } 1386 choice cc-trigger { 1387 description 1388 "Necessary conditions for 1389 periodic or on-change trigger."; 1390 case periodic { 1391 description 1392 "Periodic reports."; 1393 leaf period { 1394 type yang:timeticks; 1395 description 1396 "Time interval between reports."; 1397 } 1398 leaf start-time { 1399 type yang:date-and-time; 1400 description 1401 "Timestamp from which reports were started."; 1402 } 1403 } 1404 case on-change { 1405 description 1406 "On-change trigger and not periodic."; 1407 leaf all-data-on-start { 1408 type boolean; 1409 description 1410 "Full update done on start or not."; 1411 } 1412 leaf-list excluded-change { 1413 type change-type; 1414 description 1415 "Changes that will not trigger an update."; 1416 } 1418 } 1419 } 1420 } 1421 } 1423 rpc pd-get-persistent-id { 1424 if-feature "coam:path-discovery"; 1425 description 1426 "Obtains persistent path discovery identification."; 1428 input { 1429 container destination-tp { 1430 uses coam:tp-address; 1431 description 1432 "Destination test point."; 1433 } 1434 uses coam:session-type; 1435 leaf source-interface { 1436 type if:interface-ref; 1437 description 1438 "Source interface."; 1439 } 1440 leaf outbound-interface { 1441 type if:interface-ref; 1442 description 1443 "Outbound interface."; 1444 } 1445 leaf vrf { 1446 type coam:routing-instance-ref; 1447 description 1448 "VRF"; 1449 } 1450 } 1451 output { 1452 list response-list { 1453 key "response-index"; 1454 description 1455 "Path discovery response list."; 1456 leaf response-index { 1457 type uint32; 1458 mandatory true; 1459 description 1460 "Response index."; 1461 } 1462 leaf protocol-id { 1463 type identityref { 1464 base protocol-id; 1465 } 1466 mandatory true; 1467 description 1468 "Protocol used. This could be a standard 1469 protocol (eg., TCP/IP protocols, MPLS etc.,) 1470 or a proprietary protocol as identified by 1471 this field."; 1472 } 1473 leaf protocol-id-meta-data { 1474 type uint64; 1475 description 1476 "An optional meta-data related to the protocol ID. 1477 For eg., this could be the Internet Protocol number 1478 for standard Internet Protocols for help in protocol 1479 processing."; 1480 } 1481 leaf status-code { 1482 type identityref { 1483 base status-code; 1484 } 1485 mandatory true; 1486 description 1487 "Error code for Persistent Path Discovery Information. "; 1488 } 1489 leaf status-sub-code { 1490 type identityref{ 1491 base status-sub-code; 1492 } 1493 mandatory true; 1494 description 1495 "Sub code for Persistent Path Discovery Information. "; 1496 } 1497 leaf pd-persistent-id { 1498 type string; 1499 description 1500 "Id to act as a cookie."; 1501 } 1502 } 1503 } 1504 } 1506 rpc pd-persistent-get-export-details { 1507 if-feature "coam:path-discovery"; 1508 description 1509 "Given the persistent id, gets the configuration 1510 options, details related to the configured data 1511 export."; 1512 input { 1513 leaf cc-persistent-id { 1514 type string; 1515 description 1516 "Persistent Id for use as a key in search."; 1517 } 1518 } 1520 output { 1521 list response-list { 1522 key "response-index"; 1523 description 1524 "Path discovery response list."; 1525 leaf response-index { 1526 type uint32; 1527 mandatory true; 1528 description 1529 "Response index."; 1530 } 1531 leaf protocol-id { 1532 type identityref { 1533 base protocol-id; 1534 } 1535 mandatory true; 1536 description 1537 "Protocol used. This could be a standard 1538 protocol (eg., TCP/IP protocols, MPLS etc.,) 1539 or a proprietary protocol as identified by 1540 this field."; 1541 } 1542 leaf protocol-id-meta-data { 1543 type uint64; 1544 description 1545 "An optional meta-data related to the protocol ID. 1546 For eg., this could be the Internet Protocol number 1547 for standard Internet Protocols for help in protocol 1548 processing."; 1549 } 1550 leaf status-code { 1551 type identityref{ 1552 base status-code; 1553 } 1554 mandatory true; 1555 description 1556 "Error code for Persistent Path Discovery Creation. "; 1557 } 1558 leaf status-sub-code { 1559 type identityref{ 1560 base status-sub-code; 1561 } 1562 mandatory true; 1563 description 1564 "Sub code for Persistent Path Discovery Creation. "; 1565 } 1566 leaf data-export-method { 1567 type export-method; 1568 description 1569 "Type of export."; 1570 } 1571 choice pd-trigger { 1572 description 1573 "Necessary conditions 1574 for periodic or on-change 1575 trigger."; 1576 case periodic { 1577 description 1578 "Periodic reports."; 1579 leaf period { 1580 type yang:timeticks; 1581 description 1582 "Time interval between reports."; 1583 } 1584 leaf start-time { 1585 type yang:date-and-time; 1586 description 1587 "Timestamp from which reports are started."; 1588 } 1589 } 1590 case on-change { 1591 description 1592 "On-change trigger and not periodic."; 1593 leaf all-data-on-start { 1594 type boolean; 1595 description 1596 "Full update done on start or not."; 1597 } 1598 leaf-list excluded-change { 1599 type change-type; 1600 description 1601 "Changes that will not trigger an update."; 1602 } 1603 } 1604 } 1605 } 1606 } 1607 } 1608 } 1610 Authors' Addresses 1612 Deepak Kumar 1613 CISCO Systems 1614 510 McCarthy Blvd 1615 Milpitas, CA 95035 1616 USA 1618 Email: dekumar@cisco.com 1620 Michael Wang 1621 Huawei Technologies,Co.,Ltd 1622 101 Software Avenue, Yuhua District 1623 Nanjing 210012 1624 China 1626 Email: wangzitao@huawei.com 1628 Qin Wu 1629 Huawei 1630 101 Software Avenue, Yuhua District 1631 Nanjing, Jiangsu 210012 1632 China 1634 Email: bill.wu@huawei.com 1636 Reshad Rahman 1637 CISCO Systems 1638 2000 Innovation Drive 1639 Kanata, Ontario K2K 3E8 1640 Canada 1642 Email: rrahman@cisco.com 1644 Srihari Raghavan 1645 CISCO Systems 1646 Tril Infopark Sez, Ramanujan IT City 1647 Neville Block, 2nd floor, Old Mahabalipuram Road 1648 Chennai, Tamil Nadu 600113 1649 India 1651 Email: srihari@cisco.com