idnits 2.17.1 draft-ietf-lime-yang-connectionless-oam-methods-10.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:...' == (23 more instances...) -- The document date (October 23, 2017) is 2348 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 26, 2018 Q. Wu 6 Huawei 7 R. Rahman 8 S. Raghavan 9 Cisco 10 October 23, 2017 12 Retrieval Methods YANG Data Model for Connectionless Operations, 13 Administration, and Maintenance(OAM) protocols 14 draft-ietf-lime-yang-connectionless-oam-methods-10 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 26, 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 . . . . . . . . . . . . . . . . . . . . . . . . . 23 73 7.1. Normative References . . . . . . . . . . . . . . . . . . 23 74 7.2. Informative References . . . . . . . . . . . . . . . . . 24 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 cl-oam: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 (e.g., 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 e.g., 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 cl-oam: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 (e.g., 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 e.g., 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 cl-oam: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 {cl-oam: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? cl-oam: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-loss-count? uint32 468 | | +--ro loss-ratio? uint8 469 | | +--ro packet-reorder-count? uint32 470 | | +--ro packets-out-of-seq-count? uint32 471 | | +--ro packets-dup-count? uint32 472 | +--ro session-delay-statistics 473 | | +--ro time-interval-value? identityref 474 | | +--ro min-delay-value? uint32 475 | | +--ro max-delay-value? uint32 476 | | +--ro average-delay-value? uint32 477 | +--ro session-jitter-statistics 478 | +--ro interval-value? identityref 479 | +--ro min-jitter-value? uint32 480 | +--ro max-jitter-value? uint32 481 | +--ro average-jitter-value? uint32 482 +---x path-discovery {cl-oam:path-discovery}? 483 +---w input 484 | +---w destination-tp 485 | | +---w tp-location-type identityref 486 | | +---w mac-address 487 | | | +---w mac-address yang:mac-address 488 | | +---w ipv4-address 489 | | | +---w ipv4-address inet:ipv4-address 490 | | +---w ipv6-address 491 | | | +---w ipv6-address inet:ipv6-address 492 | | +---w tp-attribute 493 | | | +---w tp-attribute-type? address-attribute-type 494 | | | +---w (tp-attribute-value)? 495 | | | +--:(ip-prefix) 496 | | | | +---w ip-prefix? inet:ip-prefix 497 | | | +--:(bgp) 498 | | | | +---w bgp? inet:ip-prefix 499 | | | +--:(tunnel) 500 | | | | +---w tunnel-interface? uint32 501 | | | +--:(pw) 502 | | | | +---w remote-pe-address? inet:ip-address 503 | | | | +---w pw-id? uint32 504 | | | +--:(vpls) 505 | | | | +---w route-distinguisher? rt:route-distinguisher 506 | | | | +---w sender-ve-id? uint16 507 | | | | +---w receiver-ve-id? uint16 508 | | | +--:(mpls-mldp) 509 | | | +---w (root-address)? 510 | | | +--:(ip-address) 511 | | | | +---w source-address? inet:ip-address 512 | | | | +---w group-ip-address? inet:ip-address 513 | | | +--:(vpn) 514 | | | | +---w as-number? inet:as-number 515 | | | +--:(global-id) 516 | | | +---w lsp-id? string 517 | | +---w system-info 518 | | +---w system-id? rt:router-id 519 | +---w source-interface if:interface-ref 520 | +---w outbound-interface if:interface-ref 521 | +---w vrf? cl-oam:routing-instance-ref 522 | +---w session-type? enumeration 523 | +---w max-ttl? uint8 524 +--ro output 525 +--ro response-list* [response-index] 526 | +--ro response-index uint32 527 | +--ro protocol-id identityref 528 | +--ro protocol-id-meta-data? uint64 529 | +--ro status-code identityref 530 | +--ro status-sub-code identityref 531 +--ro src-test-point 532 | +--ro ni? routing-instance-ref 533 | +--ro tp-location-type identityref 534 | +--ro mac-address 535 | | +--ro mac-address yang:mac-address 536 | +--ro ipv4-address 537 | | +--ro ipv4-address inet:ipv4-address 538 | +--ro ipv6-address 539 | | +--ro ipv6-address inet:ipv6-address 540 | +--ro tp-attribute 541 | | +--ro tp-attribute-type? address-attribute-type 542 | | +--ro (tp-attribute-value)? 543 | | +--:(ip-prefix) 544 | | | +--ro ip-prefix? inet:ip-prefix 545 | | +--:(bgp) 546 | | | +--ro bgp? inet:ip-prefix 547 | | +--:(tunnel) 548 | | | +--ro tunnel-interface? uint32 549 | | +--:(pw) 550 | | | +--ro remote-pe-address? inet:ip-address 551 | | | +--ro pw-id? uint32 552 | | +--:(vpls) 553 | | | +--ro route-distinguisher? rt:route-distinguisher 554 | | | +--ro sender-ve-id? uint16 555 | | | +--ro receiver-ve-id? uint16 556 | | +--:(mpls-mldp) 557 | | +--ro (root-address)? 558 | | +--:(ip-address) 559 | | | +--ro source-address? inet:ip-address 560 | | | +--ro group-ip-address? inet:ip-address 561 | | +--:(vpn) 562 | | | +--ro as-number? inet:as-number 563 | | +--:(global-id) 564 | | +--ro lsp-id? string 565 | +--ro system-info 566 | +--ro system-id? rt:router-id 567 +--ro dest-test-point 568 | +--ro ni? routing-instance-ref 569 | +--ro tp-location-type identityref 570 | +--ro mac-address 571 | | +--ro mac-address yang:mac-address 572 | +--ro ipv4-address 573 | | +--ro ipv4-address inet:ipv4-address 574 | +--ro ipv6-address 575 | | +--ro ipv6-address inet:ipv6-address 576 | +--ro tp-attribute 577 | | +--ro tp-attribute-type? address-attribute-type 578 | | +--ro (tp-attribute-value)? 579 | | +--:(ip-prefix) 580 | | | +--ro ip-prefix? inet:ip-prefix 581 | | +--:(bgp) 582 | | | +--ro bgp? inet:ip-prefix 583 | | +--:(tunnel) 584 | | | +--ro tunnel-interface? uint32 585 | | +--:(pw) 586 | | | +--ro remote-pe-address? inet:ip-address 587 | | | +--ro pw-id? uint32 588 | | +--:(vpls) 589 | | | +--ro route-distinguisher? rt:route-distinguisher 590 | | | +--ro sender-ve-id? uint16 591 | | | +--ro receiver-ve-id? uint16 592 | | +--:(mpls-mldp) 593 | | +--ro (root-address)? 594 | | +--:(ip-address) 595 | | | +--ro source-address? inet:ip-address 596 | | | +--ro group-ip-address? inet:ip-address 597 | | +--:(vpn) 598 | | | +--ro as-number? inet:as-number 599 | | +--:(global-id) 600 | | +--ro lsp-id? string 601 | +--ro system-info 602 | +--ro system-id? rt:router-id 603 +--ro sequence-number? uint64 604 +--ro hop-cnt? uint8 605 +--ro session-packet-statistics 606 | +--ro rx-packet-count? uint32 607 | +--ro tx-packet-count? uint32 608 | +--ro rx-bad-packet? uint32 609 | +--ro tx-packet-failed? uint32 610 +--ro session-error-statistics 611 | +--ro packet-loss-count? uint32 612 | +--ro loss-ratio? uint8 613 | +--ro packet-reorder-count? uint32 614 | +--ro packets-out-of-seq-count? uint32 615 | +--ro packets-dup-count? uint32 616 +--ro session-delay-statistics 617 | +--ro time-interval-value? identityref 618 | +--ro min-delay-value? uint32 619 | +--ro max-delay-value? uint32 620 | +--ro average-delay-value? uint32 621 +--ro session-jitter-statistics 622 | +--ro interval-value? identityref 623 | +--ro min-jitter-value? uint32 624 | +--ro max-jitter-value? uint32 625 | +--ro average-jitter-value? uint32 626 +--ro path-verification 627 | +--ro flow-info? string 628 | +--ro session-path-verification-statistics 629 | +--ro verified-count? uint32 630 | +--ro failed-count? uint32 631 +--ro path-trace-info 632 +--ro path-trace-info-list* [index] 633 +--ro index uint32 634 +--ro ni? routing-instance-ref 635 +--ro tp-location-type identityref 636 +--ro mac-address 637 | +--ro mac-address yang:mac-address 638 +--ro ipv4-address 639 | +--ro ipv4-address inet:ipv4-address 640 +--ro ipv6-address 641 | +--ro ipv6-address inet:ipv6-address 642 +--ro tp-attribute 643 | +--ro tp-attribute-type? address-attribute-type 644 | +--ro (tp-attribute-value)? 645 | +--:(ip-prefix) 646 | | +--ro ip-prefix? inet:ip-prefix 647 | +--:(bgp) 648 | | +--ro bgp? inet:ip-prefix 649 | +--:(tunnel) 650 | | +--ro tunnel-interface? uint32 651 | +--:(pw) 652 | | +--ro remote-pe-address? inet:ip-address 653 | | +--ro pw-id? uint32 654 | +--:(vpls) 655 | | +--ro route-distinguisher? rt:route-distinguisher 656 | | +--ro sender-ve-id? uint16 657 | | +--ro receiver-ve-id? uint16 658 | +--:(mpls-mldp) 659 | +--ro (root-address)? 660 | +--:(ip-address) 661 | | +--ro source-address? inet:ip-address 662 | | +--ro group-ip-address? inet:ip-address 663 | +--:(vpn) 664 | | +--ro as-number? inet:as-number 665 | +--:(global-id) 666 | +--ro lsp-id? string 667 +--ro system-info 668 | +--ro system-id? rt:router-id 669 +--ro timestamp-type? identityref 670 +--ro timestamp-64bit 671 | +--ro timestamp-sec? uint32 672 | +--ro timestamp-nanosec? uint32 673 +--ro timestamp-80bit {ptp-long-format}? 674 | +--ro timestamp-sec? uint64 675 | +--ro timestamp-nanosec? uint32 676 +--ro ntp-timestamp-32bit {ntp-short-format}? 677 | +--ro timestamp-sec? uint16 678 | +--ro timestamp-nanosec? uint16 679 +--ro icmp-timestamp-32bit {icmp-timestamp}? 680 | +--ro timestamp-millisec? uint32 681 +--ro ingress-intf-name? if:interface-ref 682 +--ro egress-intf-name? if:interface-ref 683 +--ro queue-depth? uint32 684 +--ro transit-delay? uint32 685 +--ro app-meta-data? uint64 687 data hierarchy of OAM Retrieval Methods 689 4. OAM Retrieval Methods YANG Module 691 file "ietf-connectionless-oam-methods@2017-09-06.yang" 693 module ietf-connectionless-oam-methods { 694 namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods"; 695 prefix cloam-methods; 696 import ietf-interfaces { 697 prefix if; 698 } 699 import ietf-connectionless-oam { 700 prefix cl-oam; 701 } 702 organization 703 "IETF LIME Working Group"; 704 contact 705 "Deepak Kumar dekumar@cisco.com 706 Qin Wu bill.wu@huawei.com 707 S Raghavan srihari@cisco.com 708 Zitao Wang wangzitao@huawei.com 709 R Rahman rrahman@cisco.com"; 710 description 711 "This YANG module defines the RPC operations for 712 connectionless OAM to be used within IETF 713 in a protocol Independent manner. 714 It is assumed that each protocol maps 715 corresponding abstracts to its native format. 716 Each protocol may extend the YANG model defined 717 here to include protocol specific extensions"; 719 revision 2017-09-06{ 720 description 721 "08 version"; 722 reference "draft-ietf-lime-yang-connectionless-oam-methods"; 723 } 725 identity protocol-id { 726 description 727 "A generic protocol identifier."; 728 } 730 identity protocol-id-internet { 731 base protocol-id; 732 description 733 "Internet Protocols."; 734 } 736 identity protocol-id-propreitary { 737 base protocol-id; 738 description 739 "Propreitary protocol (e.g.,IP SLA)."; 740 } 742 identity protocol-id-sfc { 743 base protocol-id; 744 description 745 "Service Function Chaining."; 746 } 748 identity protocol-id-mpls { 749 base protocol-id; 750 description 751 "MPLS protocol."; 752 } 754 identity protocol-id-mpls-tp { 755 base protocol-id; 756 description 757 "MPLS-TP protocol."; 758 } 759 identity protocol-id-twamp { 760 base protocol-id; 761 description 762 "TWAMP protocol."; 763 } 765 identity protocol-id-bier { 766 base protocol-id; 767 description 768 "BIER protocol."; 769 } 771 identity status-code{ 772 description 773 "Base status code"; 774 } 776 identity invalid-cc{ 777 base status-code; 778 description 779 "Indicates that the Continuity check message is invalid"; 780 } 782 identity invalid-pd { 783 base status-code; 784 description 785 "Indicates that the path discovery message is invalid"; 786 } 788 identity status-sub-code { 789 description 790 "Base status sub code"; 791 } 793 grouping rpc-input-parameters { 794 container destination-tp { 795 uses cl-oam:tp-address; 796 description 797 "Destination test point."; 798 } 799 leaf source-interface { 800 type if:interface-ref; 801 mandatory true; 802 description 803 "Source interface."; 804 } 805 leaf outbound-interface { 806 type if:interface-ref; 807 mandatory true; 808 description 809 "Outbound interface."; 810 } 811 leaf vrf { 812 type cl-oam:routing-instance-ref; 813 description 814 "VRF instance."; 815 } 816 description 817 "Grouping for RPC input parameters"; 818 } 819 rpc continuity-check { 820 if-feature "cl-oam:continuity-check"; 821 description 822 "Continuity-check RPC operation as per RFC7276."; 823 input { 824 uses rpc-input-parameters; 825 uses cl-oam:session-type { 826 description "If session-type is specified, then session-type 827 must be set to on-demand"; 828 } 829 leaf count { 830 type uint32 { 831 range 0..4294967295 { 832 description 833 "The overall number of packet to be transmitted 834 by the sender. If the count is set to 4294967295, 835 it indicates that the session will be run forever"; 836 } 837 } 838 default "5"; 839 description 840 "Specifies the number of 841 packets that will be sent. By 842 default, the packet number is 843 set to 5."; 844 } 845 leaf ttl { 846 type uint8; 847 default "255"; 848 description 849 "Time to live (TTL) used to limit lifetime 850 of data packet transmitted in the network 851 and prevent looping. The TTL value is decremented 852 for every hop which the packet traverses. If the 853 TTL is zero, the data packet will be discarded."; 854 } 855 leaf packet-size { 856 type uint32 { 857 range "64..10000"; 858 } 859 default "64"; 860 description 861 "Packet size of continuity-check message, in octets. 862 By default, the packet size is set to 64 octets."; 863 } 864 } 865 output { 866 container error-code { 867 leaf protocol-id { 868 type identityref { 869 base protocol-id; 870 } 871 mandatory true; 872 description 873 "Protocol used in CC. This could be a standard 874 protocol (e.g., TCP/IP protocols, MPLS etc.,) 875 or a proprietary protocol as identified by 876 this field."; 877 } 878 leaf protocol-id-meta-data { 879 type uint64; 880 description 881 "An optional meta-data related to the protocol ID. 882 For e.g., this could be the Internet Protocol number 883 for standard Internet Protocols for help in protocol 884 processing."; 885 } 886 leaf status-code { 887 type identityref{ 888 base status-code; 889 } 890 mandatory true; 891 description 892 "Error code for continuity-check message, that is 893 relevant to the protocol under use for CC. 894 For example if ICMP is the protocol under use, the 895 error codes are as defined in [RFC4443]."; 896 } 897 leaf status-sub-code { 898 type identityref{ 899 base status-sub-code; 900 } 901 mandatory true; 902 description 903 "Error sub code for continuity-check message, that is 904 relevant to the error-code reported of the protocol 905 that is used for CC."; 906 } 907 description 908 "Error code and Sub Code for continuity-check message."; 909 } 910 uses cl-oam:continuity-check-data; 911 } 912 } 914 rpc path-discovery { 915 if-feature "cl-oam:path-discovery"; 916 description 917 "Path discovery RPC operation as per RFC7276."; 918 input { 919 uses rpc-input-parameters; 920 uses cl-oam:session-type { 921 description "If session-type is specified, then session-type 922 must be set to on-demand"; 923 } 924 leaf max-ttl { 925 type uint8; 926 default "255"; 927 description 928 "Maximum TTL indicates the maixmum number of hops that 929 a packet is permitted to travel before being discarded 930 by a router. By default, the maximimum TTL is set to 255."; 931 } 932 } 933 output { 934 list response-list { 935 key "response-index"; 936 description 937 "Path discovery response list."; 938 leaf response-index { 939 type uint32; 940 mandatory true; 941 description 942 "Response index."; 943 } 944 leaf protocol-id { 945 type identityref { 946 base protocol-id; 947 } 948 mandatory true; 949 description 950 "Protocol used in PD. This could be a standard 951 protocol (e.g., TCP/IP protocols, MPLS etc.,) 952 or a proprietary protocol as identified by 953 this field."; 954 } 955 leaf protocol-id-meta-data { 956 type uint64; 957 description 958 "An optional meta-data related to the protocol ID. 959 For e.g., this could be the Internet Protocol number 960 for standard Internet Protocols for help in protocol 961 processing."; 962 } 963 leaf status-code { 964 type identityref{ 965 base status-code; 966 } 967 mandatory true; 968 description 969 "Error code for path-discovery response message, that is 970 relevant to the protocol under use for PD. 971 For example if ICMP is the protocol under use, the 972 error codes are as defined in [RFC4443]."; 973 } 974 leaf status-sub-code { 975 type identityref{ 976 base status-sub-code; 977 } 978 mandatory true; 979 description 980 "Error sub code for path-discovery message, that is 981 relevant to the error-code reported of the protocol 982 that is used for PD."; 983 } 984 } 985 uses cl-oam:path-discovery-data; 986 } 987 } 988 } 990 992 5. Security Considerations 994 The YANG module defined in this document is designed to be accessed 995 via network management protocols such as NETCONF [RFC6241] or 996 RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport 997 layer, and the mandatory-to-implement secure transport is Secure 998 Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the 999 mandatory-to-implement secure transport is TLS [RFC5246]. 1001 The NETCONF access control model [RFC6536] provides the means to 1002 restrict access for particular NETCONF or RESTCONF users to a 1003 preconfigured subset of all available NETCONF or RESTCONF protocol 1004 operations and content. 1006 Some of the RPC operations in this YANG module may be considered 1007 sensitive or vulnerable in some network environments. It is thus 1008 important to control access to these operations. These are the 1009 operations and their sensitivity/vulnerability: 1011 o continuity-check: Generates continuity check. 1013 o path-discovery: Generates path discovery. 1015 which may lead to Denial-of-Service attack on both the local device 1016 and the network or unauthorized source access to some sensitive 1017 information. 1019 6. IANA Considerations 1021 This document registers a URI in the IETF XML registry [RFC3688]. 1022 Following the format in [RFC3688], the following registration is 1023 requested to be made: 1025 URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods 1027 Registrant Contact: The IESG. 1029 XML: N/A, the requested URI is an XML namespace. 1031 This document registers a YANG module in the YANG Module Names 1032 registry [RFC6020]. 1034 name: ietf-connectionless-oam-methods 1036 namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam- 1037 methods 1039 prefix: cloam-methods 1041 reference: RFC XXXX 1043 7. References 1045 7.1. Normative References 1047 [I-D.ietf-lime-yang-connectionless-oam] 1048 Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, 1049 "Generic YANG Data Model for Connectionless Operations, 1050 Administration, and Maintenance(OAM) protocols", draft- 1051 ietf-lime-yang-connectionless-oam-11 (work in progress), 1052 September 2017. 1054 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1055 DOI 10.17487/RFC3688, January 2004, 1056 . 1058 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1059 (TLS) Protocol Version 1.2", RFC 5246, 1060 DOI 10.17487/RFC5246, August 2008, 1061 . 1063 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1064 the Network Configuration Protocol (NETCONF)", RFC 6020, 1065 DOI 10.17487/RFC6020, October 2010, 1066 . 1068 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1069 and A. Bierman, Ed., "Network Configuration Protocol 1070 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1071 . 1073 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1074 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1075 . 1077 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1078 Protocol (NETCONF) Access Control Model", RFC 6536, 1079 DOI 10.17487/RFC6536, March 2012, 1080 . 1082 [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, 1083 "Specification of the IP Flow Information Export (IPFIX) 1084 Protocol for the Exchange of Flow Information", STD 77, 1085 RFC 7011, DOI 10.17487/RFC7011, September 2013, 1086 . 1088 [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, 1089 September 1981. 1091 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1092 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1093 . 1095 7.2. Informative References 1097 [I-D.ietf-netconf-yang-push] 1098 Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- 1099 Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to 1100 YANG datastore push updates", draft-ietf-netconf-yang- 1101 push-10 (work in progress), October 2017. 1103 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 1104 Control Message Protocol (ICMPv6) for the Internet 1105 Protocol Version 6 (IPv6) Specification", STD 89, 1106 RFC 4443, DOI 10.17487/RFC4443, March 2006, 1107 . 1109 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 1110 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 1111 . 1113 [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG 1114 Data Model Documents", RFC 6087, DOI 10.17487/RFC6087, 1115 January 2011, . 1117 [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. 1118 Weingarten, "An Overview of Operations, Administration, 1119 and Maintenance (OAM) Tools", RFC 7276, 1120 DOI 10.17487/RFC7276, June 2014, 1121 . 1123 [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., 1124 Aldrin, S., and M. Chen, "Detecting Multiprotocol Label 1125 Switched (MPLS) Data-Plane Failures", RFC 8029, 1126 DOI 10.17487/RFC8029, March 2017, 1127 . 1129 Appendix A. Appdendix A.1 Extending Connectionless OAM Method Module 1130 Example 1132 The following is an example of extensions possible to "ietf- 1133 connectionless-oam-methods" YANG model defined in this document. 1135 The snippet below depicts an example of augmenting the "ietf- 1136 connectionless-oam-methods" YANG model with ICMP ping attributes: 1138 augment "/cloam-methods:continutiy-check" 1139 +"/cloam-methods:output"{ 1140 container session-rtt-statistics{ 1141 leaf min-rtt{ 1142 type uint32; 1143 description 1144 "This minimum ping round-trip-time(RTT) received."; 1145 } 1146 leaf max-rtt{ 1147 type uint32; 1148 description 1149 "This maximum ping round-trip-time(RTT) received."; 1150 } 1151 leaf avg-rtt{ 1152 type uint32; 1153 description 1154 "The current average ping round-trip-time(RTT)"; 1155 } 1156 description 1157 "This container presents the ping round-trip-time statistics."; 1158 } 1159 } 1161 Appendix B. Appendix A.2 Example of new retrieval procedures Model 1163 As discussed in introduction section of this document, the new 1164 retrieval procedures can be defined for retrieval of the same data 1165 defined by base YANG Data model for connectionless OAM protocols. 1166 This appendix demonstrates how the base connectionless OAM data model 1167 can be extended to support persistent data retrieval besides on 1168 demand retrieval procedures defined in section 3,i.e.,first retrieve 1169 persistent-id based on destination test point location information 1170 and then retrieve export details based on persistent-id. Internet 1171 Protocol Flow Information Export (IPFIX) [RFC7011] or YANG-push 1172 [I-D.ietf-netconf-yang-push]. are currently outlined here as data 1173 export options and more can be added in future. 1175 The YANG module "example-cl-oam-persistent-methods" shown below is 1176 intended as an illustration rather than a real definition of a RPC 1177 operation model for persistent data retrieval. For the sake of 1178 brevity, this module does not obey all the guidelines specified in 1179 [RFC6087]. 1181 module example-cl-oam-persistent-methods { 1182 namespace "http://example.com/cl-oam-persistent-methods"; 1183 prefix pcloam-methods; 1184 import ietf-interfaces { 1185 prefix if; 1187 } 1188 import ietf-connectionless-oam { 1189 prefix cl-oam; 1190 } 1191 import ietf-yang-types { 1192 prefix yang; 1193 } 1194 identity export-method { 1195 description 1196 "Base identity to represent a conceptual export-method."; 1197 } 1198 identity ipfix-export { 1199 base export-method; 1200 description 1201 "IPFIX based export. Configuration provided separately."; 1202 } 1203 identity yang-push-export { 1204 base export-method; 1205 description 1206 "Yang-push from draft-ietf-netconf-yang-push"; 1207 } 1208 identity protocol-id { 1209 description 1210 "A generic protocol identifier."; 1211 } 1212 identity status-code{ 1213 description 1214 "Base status code"; 1215 } 1217 identity invalid-cc{ 1218 base status-code; 1219 description 1220 "Indicates that the Continuity check message is invalid"; 1221 } 1223 identity invalid-pd { 1224 base status-code; 1225 description 1226 "Indicates that the path discovery message is invalid"; 1227 } 1229 identity status-sub-code { 1230 description 1231 "Base status sub code"; 1232 } 1233 typedef export-method { 1234 type identityref { 1235 base export-method; 1236 } 1237 description 1238 "Export method type."; 1239 } 1240 typedef change-type { 1241 type enumeration { 1242 enum "create" { 1243 description 1244 "Change due to a create."; 1245 } 1246 enum "delete" { 1247 description 1248 "Change due to a delete."; 1249 } 1250 enum "modify" { 1251 description 1252 "Change due to an update."; 1253 } 1254 } 1255 description 1256 "Different types of changes that may occur."; 1257 } 1259 rpc cc-get-persistent-id { 1260 if-feature "cl-oam:continuity-check"; 1261 description 1262 "Obtains continuity-check persistent identification given mapping 1263 parameters as input."; 1264 input { 1265 container destination-tp { 1266 uses cl-oam:tp-address; 1267 description 1268 "Destination test point."; 1269 } 1270 uses cl-oam:session-type; 1271 leaf source-interface { 1272 type if:interface-ref; 1273 description 1274 "Source interface."; 1275 } 1276 leaf outbound-interface { 1277 type if:interface-ref; 1278 description 1279 "Outbound interface."; 1280 } 1281 leaf vrf { 1282 type cl-oam:routing-instance-ref; 1283 description 1284 "VRF instance."; 1285 } 1286 } 1287 output { 1288 container error-code { 1289 leaf protocol-id { 1290 type identityref { 1291 base protocol-id; 1292 } 1293 mandatory true; 1294 description 1295 "Protocol used. This could be a standard 1296 protocol (e.g., TCP/IP protocols, MPLS etc.,) 1297 or a proprietary protocol as identified by 1298 this field."; 1299 } 1300 leaf protocol-id-meta-data { 1301 type uint64; 1302 description 1303 "An optional meta-data related to the protocol ID. 1304 For e.g., this could be the Internet Protocol number 1305 for standard Internet Protocols for help in protocol 1306 processing."; 1307 } 1308 leaf status-code { 1309 type identityref{ 1310 base status-code; 1311 } 1312 mandatory true; 1313 description 1314 "Error code."; 1315 } 1316 leaf status-sub-code { 1317 type identityref{ 1318 base status-sub-code; 1319 } 1320 mandatory true; 1321 description 1322 "Sub code for CC."; 1323 } 1324 description 1325 "Error code and Sub Code."; 1326 } 1328 leaf cc-persistent-id { 1329 type string; 1330 description 1331 "Id to act as a cookie."; 1332 } 1333 } 1334 } 1336 rpc cc-persistent-get-export-details { 1337 if-feature "cl-oam:continuity-check"; 1338 description 1339 "Given the persistent id, gets the configuration 1340 options, details related to the configured data 1341 export."; 1342 input { 1343 leaf cc-persistent-id { 1344 type string; 1345 description 1346 "Persistent Id for use as a key in search."; 1347 } 1348 } 1349 output { 1350 container error-code { 1351 leaf protocol-id { 1352 type identityref { 1353 base protocol-id; 1354 } 1355 mandatory true; 1356 description 1357 "Protocol used. This could be a standard 1358 protocol (e.g., TCP/IP protocols, MPLS etc.,) 1359 or a proprietary protocol as identified by 1360 this field."; 1361 } 1362 leaf protocol-id-meta-data { 1363 type uint64; 1364 description 1365 "An optional meta-data related to the protocol ID. 1366 For e.g., this could be the Internet Protocol number 1367 for standard Internet Protocols for help in protocol 1368 processing."; 1369 } 1370 leaf status-code { 1371 type identityref{ 1372 base status-code; 1373 } 1374 mandatory true; 1375 description 1376 "Error code."; 1377 } 1378 leaf status-sub-code { 1379 type identityref{ 1380 base status-sub-code; 1381 } 1382 mandatory true; 1383 description 1384 "Sub code for CC."; 1385 } 1386 description 1387 "Error code and Sub Code."; 1388 } 1390 leaf data-export-method { 1391 type export-method; 1392 description 1393 "Type of export in use."; 1394 } 1396 choice cc-trigger { 1397 description 1398 "Necessary conditions for 1399 periodic or on-change trigger."; 1400 case periodic { 1401 description 1402 "Periodic reports."; 1403 leaf period { 1404 type yang:timeticks; 1405 description 1406 "Time interval between reports."; 1407 } 1408 leaf start-time { 1409 type yang:date-and-time; 1410 description 1411 "Timestamp from which reports were started."; 1412 } 1413 } 1414 case on-change { 1415 description 1416 "On-change trigger and not periodic."; 1417 leaf all-data-on-start { 1418 type boolean; 1419 description 1420 "Full update done on start or not."; 1421 } 1422 leaf-list excluded-change { 1423 type change-type; 1424 description 1425 "Changes that will not trigger an update."; 1426 } 1428 } 1429 } 1430 } 1431 } 1433 rpc pd-get-persistent-id { 1434 if-feature "cl-oam:path-discovery"; 1435 description 1436 "Obtains persistent path discovery identification."; 1438 input { 1439 container destination-tp { 1440 uses cl-oam:tp-address; 1441 description 1442 "Destination test point."; 1443 } 1444 uses cl-oam:session-type; 1445 leaf source-interface { 1446 type if:interface-ref; 1447 description 1448 "Source interface."; 1449 } 1450 leaf outbound-interface { 1451 type if:interface-ref; 1452 description 1453 "Outbound interface."; 1454 } 1455 leaf vrf { 1456 type cl-oam:routing-instance-ref; 1457 description 1458 "VRF"; 1459 } 1460 } 1461 output { 1462 list response-list { 1463 key "response-index"; 1464 description 1465 "Path discovery response list."; 1466 leaf response-index { 1467 type uint32; 1468 mandatory true; 1469 description 1470 "Response index."; 1471 } 1472 leaf protocol-id { 1473 type identityref { 1474 base protocol-id; 1475 } 1476 mandatory true; 1477 description 1478 "Protocol used. This could be a standard 1479 protocol (e.g., TCP/IP protocols, MPLS etc.,) 1480 or a proprietary protocol as identified by 1481 this field."; 1482 } 1483 leaf protocol-id-meta-data { 1484 type uint64; 1485 description 1486 "An optional meta-data related to the protocol ID. 1487 For e.g., this could be the Internet Protocol number 1488 for standard Internet Protocols for help in protocol 1489 processing."; 1490 } 1491 leaf status-code { 1492 type identityref { 1493 base status-code; 1494 } 1495 mandatory true; 1496 description 1497 "Error code for Persistent Path Discovery Information. "; 1498 } 1499 leaf status-sub-code { 1500 type identityref{ 1501 base status-sub-code; 1502 } 1503 mandatory true; 1504 description 1505 "Sub code for Persistent Path Discovery Information. "; 1506 } 1507 leaf pd-persistent-id { 1508 type string; 1509 description 1510 "Id to act as a cookie."; 1511 } 1512 } 1513 } 1514 } 1516 rpc pd-persistent-get-export-details { 1517 if-feature "cl-oam:path-discovery"; 1518 description 1519 "Given the persistent id, gets the configuration 1520 options, details related to the configured data 1521 export."; 1522 input { 1523 leaf cc-persistent-id { 1524 type string; 1525 description 1526 "Persistent Id for use as a key in search."; 1527 } 1528 } 1530 output { 1531 list response-list { 1532 key "response-index"; 1533 description 1534 "Path discovery response list."; 1535 leaf response-index { 1536 type uint32; 1537 mandatory true; 1538 description 1539 "Response index."; 1540 } 1541 leaf protocol-id { 1542 type identityref { 1543 base protocol-id; 1544 } 1545 mandatory true; 1546 description 1547 "Protocol used. This could be a standard 1548 protocol (e.g., TCP/IP protocols, MPLS etc.,) 1549 or a proprietary protocol as identified by 1550 this field."; 1551 } 1552 leaf protocol-id-meta-data { 1553 type uint64; 1554 description 1555 "An optional meta-data related to the protocol ID. 1556 For e.g., this could be the Internet Protocol number 1557 for standard Internet Protocols for help in protocol 1558 processing."; 1559 } 1560 leaf status-code { 1561 type identityref{ 1562 base status-code; 1563 } 1564 mandatory true; 1565 description 1566 "Error code for Persistent Path Discovery Creation. "; 1567 } 1568 leaf status-sub-code { 1569 type identityref{ 1570 base status-sub-code; 1571 } 1572 mandatory true; 1573 description 1574 "Sub code for Persistent Path Discovery Creation. "; 1575 } 1576 leaf data-export-method { 1577 type export-method; 1578 description 1579 "Type of export."; 1580 } 1581 choice pd-trigger { 1582 description 1583 "Necessary conditions 1584 for periodic or on-change 1585 trigger."; 1586 case periodic { 1587 description 1588 "Periodic reports."; 1589 leaf period { 1590 type yang:timeticks; 1591 description 1592 "Time interval between reports."; 1593 } 1594 leaf start-time { 1595 type yang:date-and-time; 1596 description 1597 "Timestamp from which reports are started."; 1598 } 1599 } 1600 case on-change { 1601 description 1602 "On-change trigger and not periodic."; 1603 leaf all-data-on-start { 1604 type boolean; 1605 description 1606 "Full update done on start or not."; 1607 } 1608 leaf-list excluded-change { 1609 type change-type; 1610 description 1611 "Changes that will not trigger an update."; 1612 } 1613 } 1614 } 1615 } 1616 } 1617 } 1618 } 1620 Authors' Addresses 1622 Deepak Kumar 1623 CISCO Systems 1624 510 McCarthy Blvd 1625 Milpitas, CA 95035 1626 USA 1628 Email: dekumar@cisco.com 1630 Michael Wang 1631 Huawei Technologies,Co.,Ltd 1632 101 Software Avenue, Yuhua District 1633 Nanjing 210012 1634 China 1636 Email: wangzitao@huawei.com 1638 Qin Wu 1639 Huawei 1640 101 Software Avenue, Yuhua District 1641 Nanjing, Jiangsu 210012 1642 China 1644 Email: bill.wu@huawei.com 1646 Reshad Rahman 1647 CISCO Systems 1648 2000 Innovation Drive 1649 Kanata, Ontario K2K 3E8 1650 Canada 1652 Email: rrahman@cisco.com 1654 Srihari Raghavan 1655 CISCO Systems 1656 Tril Infopark Sez, Ramanujan IT City 1657 Neville Block, 2nd floor, Old Mahabalipuram Road 1658 Chennai, Tamil Nadu 600113 1659 India 1661 Email: srihari@cisco.com