idnits 2.17.00 (12 Aug 2021) /tmp/idnits20310/draft-ietf-lime-yang-connectionless-oam-methods-11.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 24, 2017) is 1669 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: draft-ietf-lime-yang-connectionless-oam has been published as RFC 8532 ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) == Outdated reference: draft-ietf-netconf-yang-push has been published as RFC 8641 -- 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 27, 2018 Q. Wu 6 Huawei 7 R. Rahman 8 S. Raghavan 9 Cisco 10 October 24, 2017 12 Retrieval Methods YANG Data Model for Connectionless Operations, 13 Administration, and Maintenance(OAM) protocols 14 draft-ietf-lime-yang-connectionless-oam-methods-11 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 27, 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-proprietary { 737 base protocol-id; 738 description 739 "Proprietary 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 These operations are used to retrieve the data from the device that 1016 need to execute the OAM command. Unauthorized source access to some 1017 sensitive information in the above data may lead to Denial-of-Service 1018 attack on both the local device and the network. 1020 6. IANA Considerations 1022 This document registers a URI in the IETF XML registry [RFC3688]. 1023 Following the format in [RFC3688], the following registration is 1024 requested to be made: 1026 URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods 1028 Registrant Contact: The IESG. 1030 XML: N/A, the requested URI is an XML namespace. 1032 This document registers a YANG module in the YANG Module Names 1033 registry [RFC6020]. 1035 name: ietf-connectionless-oam-methods 1037 namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam- 1038 methods 1040 prefix: cloam-methods 1042 reference: RFC XXXX 1044 7. References 1046 7.1. Normative References 1048 [I-D.ietf-lime-yang-connectionless-oam] 1049 Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, 1050 "Generic YANG Data Model for Operations, Administration, 1051 and Maintenance(OAM) protocols for Connectionless 1052 networks", draft-ietf-lime-yang-connectionless-oam-13 1053 (work in progress), October 2017. 1055 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1056 DOI 10.17487/RFC3688, January 2004, 1057 . 1059 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 1060 (TLS) Protocol Version 1.2", RFC 5246, 1061 DOI 10.17487/RFC5246, August 2008, 1062 . 1064 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1065 the Network Configuration Protocol (NETCONF)", RFC 6020, 1066 DOI 10.17487/RFC6020, October 2010, 1067 . 1069 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1070 and A. Bierman, Ed., "Network Configuration Protocol 1071 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1072 . 1074 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1075 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1076 . 1078 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1079 Protocol (NETCONF) Access Control Model", RFC 6536, 1080 DOI 10.17487/RFC6536, March 2012, 1081 . 1083 [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, 1084 "Specification of the IP Flow Information Export (IPFIX) 1085 Protocol for the Exchange of Flow Information", STD 77, 1086 RFC 7011, DOI 10.17487/RFC7011, September 2013, 1087 . 1089 [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, 1090 September 1981. 1092 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 1093 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 1094 . 1096 7.2. Informative References 1098 [I-D.ietf-netconf-yang-push] 1099 Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- 1100 Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to 1101 YANG datastore push updates", draft-ietf-netconf-yang- 1102 push-10 (work in progress), October 2017. 1104 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 1105 Control Message Protocol (ICMPv6) for the Internet 1106 Protocol Version 6 (IPv6) Specification", STD 89, 1107 RFC 4443, DOI 10.17487/RFC4443, March 2006, 1108 . 1110 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 1111 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 1112 . 1114 [RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG 1115 Data Model Documents", RFC 6087, DOI 10.17487/RFC6087, 1116 January 2011, . 1118 [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. 1119 Weingarten, "An Overview of Operations, Administration, 1120 and Maintenance (OAM) Tools", RFC 7276, 1121 DOI 10.17487/RFC7276, June 2014, 1122 . 1124 [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., 1125 Aldrin, S., and M. Chen, "Detecting Multiprotocol Label 1126 Switched (MPLS) Data-Plane Failures", RFC 8029, 1127 DOI 10.17487/RFC8029, March 2017, 1128 . 1130 Appendix A. Appdendix A.1 Extending Connectionless OAM Method Module 1131 Example 1133 The following is an example of extensions possible to "ietf- 1134 connectionless-oam-methods" YANG model defined in this document. 1136 The snippet below depicts an example of augmenting the "ietf- 1137 connectionless-oam-methods" YANG model with ICMP ping attributes: 1139 augment "/cloam-methods:continutiy-check" 1140 +"/cloam-methods:output"{ 1141 container session-rtt-statistics{ 1142 leaf min-rtt{ 1143 type uint32; 1144 description 1145 "This minimum ping round-trip-time(RTT) received."; 1146 } 1147 leaf max-rtt{ 1148 type uint32; 1149 description 1150 "This maximum ping round-trip-time(RTT) received."; 1151 } 1152 leaf avg-rtt{ 1153 type uint32; 1154 description 1155 "The current average ping round-trip-time(RTT)"; 1156 } 1157 description 1158 "This container presents the ping round-trip-time statistics."; 1159 } 1160 } 1162 Appendix B. Appendix A.2 Example of new retrieval procedures Model 1164 As discussed in introduction section of this document, the new 1165 retrieval procedures can be defined for retrieval of the same data 1166 defined by base YANG Data model for connectionless OAM protocols. 1167 This appendix demonstrates how the base connectionless OAM data model 1168 can be extended to support persistent data retrieval besides on 1169 demand retrieval procedures defined in section 3,i.e.,first retrieve 1170 persistent-id based on destination test point location information 1171 and then retrieve export details based on persistent-id. Internet 1172 Protocol Flow Information Export (IPFIX) [RFC7011] or YANG-push 1173 [I-D.ietf-netconf-yang-push]. are currently outlined here as data 1174 export options and more can be added in future. 1176 The YANG module "example-cl-oam-persistent-methods" shown below is 1177 intended as an illustration rather than a real definition of a RPC 1178 operation model for persistent data retrieval. For the sake of 1179 brevity, this module does not obey all the guidelines specified in 1180 [RFC6087]. 1182 module example-cl-oam-persistent-methods { 1183 namespace "http://example.com/cl-oam-persistent-methods"; 1184 prefix pcloam-methods; 1185 import ietf-interfaces { 1186 prefix if; 1188 } 1189 import ietf-connectionless-oam { 1190 prefix cl-oam; 1191 } 1192 import ietf-yang-types { 1193 prefix yang; 1194 } 1195 identity export-method { 1196 description 1197 "Base identity to represent a conceptual export-method."; 1198 } 1199 identity ipfix-export { 1200 base export-method; 1201 description 1202 "IPFIX based export. Configuration provided separately."; 1203 } 1204 identity yang-push-export { 1205 base export-method; 1206 description 1207 "Yang-push from draft-ietf-netconf-yang-push"; 1208 } 1209 identity protocol-id { 1210 description 1211 "A generic protocol identifier."; 1212 } 1213 identity status-code { 1214 description 1215 "Base status code"; 1216 } 1218 identity invalid-cc { 1219 base status-code; 1220 description 1221 "Indicates that the Continuity check message is invalid"; 1222 } 1224 identity invalid-pd { 1225 base status-code; 1226 description 1227 "Indicates that the path discovery message is invalid"; 1228 } 1230 identity status-sub-code { 1231 description 1232 "Base status sub code"; 1233 } 1234 typedef export-method { 1235 type identityref { 1236 base export-method; 1237 } 1238 description 1239 "Export method type."; 1240 } 1241 typedef change-type { 1242 type enumeration { 1243 enum "create" { 1244 description 1245 "Change due to a create."; 1246 } 1247 enum "delete" { 1248 description 1249 "Change due to a delete."; 1250 } 1251 enum "modify" { 1252 description 1253 "Change due to an update."; 1254 } 1255 } 1256 description 1257 "Different types of changes that may occur."; 1258 } 1260 rpc cc-get-persistent-id { 1261 if-feature "cl-oam:continuity-check"; 1262 description 1263 "Obtains continuity-check persistent identification given mapping 1264 parameters as input."; 1265 input { 1266 container destination-tp { 1267 uses cl-oam:tp-address; 1268 description 1269 "Destination test point."; 1270 } 1271 uses cl-oam:session-type; 1272 leaf source-interface { 1273 type if:interface-ref; 1274 description 1275 "Source interface."; 1276 } 1277 leaf outbound-interface { 1278 type if:interface-ref; 1279 description 1280 "Outbound interface."; 1281 } 1282 leaf vrf { 1283 type cl-oam:routing-instance-ref; 1284 description 1285 "VRF instance."; 1286 } 1287 } 1288 output { 1289 container error-code { 1290 leaf protocol-id { 1291 type identityref { 1292 base protocol-id; 1293 } 1294 mandatory true; 1295 description 1296 "Protocol used. This could be a standard 1297 protocol (e.g., TCP/IP protocols, MPLS etc.,) 1298 or a proprietary protocol as identified by 1299 this field."; 1300 } 1301 leaf protocol-id-meta-data { 1302 type uint64; 1303 description 1304 "An optional meta-data related to the protocol ID. 1305 For e.g., this could be the Internet Protocol number 1306 for standard Internet Protocols for help in protocol 1307 processing."; 1308 } 1309 leaf status-code { 1310 type identityref{ 1311 base status-code; 1312 } 1313 mandatory true; 1314 description 1315 "Error code."; 1316 } 1317 leaf status-sub-code { 1318 type identityref{ 1319 base status-sub-code; 1320 } 1321 mandatory true; 1322 description 1323 "Sub code for CC."; 1324 } 1325 description 1326 "Error code and Sub Code."; 1327 } 1329 leaf cc-persistent-id { 1330 type string; 1331 description 1332 "Id to act as a cookie."; 1333 } 1334 } 1335 } 1337 rpc cc-persistent-get-export-details { 1338 if-feature "cl-oam:continuity-check"; 1339 description 1340 "Given the persistent id, gets the configuration 1341 options, details related to the configured data 1342 export."; 1343 input { 1344 leaf cc-persistent-id { 1345 type string; 1346 description 1347 "Persistent Id for use as a key in search."; 1348 } 1349 } 1350 output { 1351 container error-code { 1352 leaf protocol-id { 1353 type identityref { 1354 base protocol-id; 1355 } 1356 mandatory true; 1357 description 1358 "Protocol used. This could be a standard 1359 protocol (e.g., TCP/IP protocols, MPLS etc.,) 1360 or a proprietary protocol as identified by 1361 this field."; 1362 } 1363 leaf protocol-id-meta-data { 1364 type uint64; 1365 description 1366 "An optional meta-data related to the protocol ID. 1367 For e.g., this could be the Internet Protocol number 1368 for standard Internet Protocols for help in protocol 1369 processing."; 1370 } 1371 leaf status-code { 1372 type identityref{ 1373 base status-code; 1374 } 1375 mandatory true; 1376 description 1377 "Error code."; 1378 } 1379 leaf status-sub-code { 1380 type identityref{ 1381 base status-sub-code; 1382 } 1383 mandatory true; 1384 description 1385 "Sub code for CC."; 1386 } 1387 description 1388 "Error code and Sub Code."; 1389 } 1391 leaf data-export-method { 1392 type export-method; 1393 description 1394 "Type of export in use."; 1395 } 1397 choice cc-trigger { 1398 description 1399 "Necessary conditions for 1400 periodic or on-change trigger."; 1401 case periodic { 1402 description 1403 "Periodic reports."; 1404 leaf period { 1405 type yang:timeticks; 1406 description 1407 "Time interval between reports."; 1408 } 1409 leaf start-time { 1410 type yang:date-and-time; 1411 description 1412 "Timestamp from which reports were started."; 1413 } 1414 } 1415 case on-change { 1416 description 1417 "On-change trigger and not periodic."; 1418 leaf all-data-on-start { 1419 type boolean; 1420 description 1421 "Full update done on start or not."; 1422 } 1423 leaf-list excluded-change { 1424 type change-type; 1425 description 1426 "Changes that will not trigger an update."; 1427 } 1429 } 1430 } 1431 } 1432 } 1434 rpc pd-get-persistent-id { 1435 if-feature "cl-oam:path-discovery"; 1436 description 1437 "Obtains persistent path discovery identification."; 1439 input { 1440 container destination-tp { 1441 uses cl-oam:tp-address; 1442 description 1443 "Destination test point."; 1444 } 1445 uses cl-oam:session-type; 1446 leaf source-interface { 1447 type if:interface-ref; 1448 description 1449 "Source interface."; 1450 } 1451 leaf outbound-interface { 1452 type if:interface-ref; 1453 description 1454 "Outbound interface."; 1455 } 1456 leaf vrf { 1457 type cl-oam:routing-instance-ref; 1458 description 1459 "VRF"; 1460 } 1461 } 1462 output { 1463 list response-list { 1464 key "response-index"; 1465 description 1466 "Path discovery response list."; 1467 leaf response-index { 1468 type uint32; 1469 mandatory true; 1470 description 1471 "Response index."; 1472 } 1473 leaf protocol-id { 1474 type identityref { 1475 base protocol-id; 1476 } 1477 mandatory true; 1478 description 1479 "Protocol used. This could be a standard 1480 protocol (e.g., TCP/IP protocols, MPLS etc.,) 1481 or a proprietary protocol as identified by 1482 this field."; 1483 } 1484 leaf protocol-id-meta-data { 1485 type uint64; 1486 description 1487 "An optional meta-data related to the protocol ID. 1488 For e.g., this could be the Internet Protocol number 1489 for standard Internet Protocols for help in protocol 1490 processing."; 1491 } 1492 leaf status-code { 1493 type identityref { 1494 base status-code; 1495 } 1496 mandatory true; 1497 description 1498 "Error code for Persistent Path Discovery Information. "; 1499 } 1500 leaf status-sub-code { 1501 type identityref{ 1502 base status-sub-code; 1503 } 1504 mandatory true; 1505 description 1506 "Sub code for Persistent Path Discovery Information. "; 1507 } 1508 leaf pd-persistent-id { 1509 type string; 1510 description 1511 "Id to act as a cookie."; 1512 } 1513 } 1514 } 1515 } 1517 rpc pd-persistent-get-export-details { 1518 if-feature "cl-oam:path-discovery"; 1519 description 1520 "Given the persistent id, gets the configuration 1521 options, details related to the configured data 1522 export."; 1523 input { 1524 leaf cc-persistent-id { 1525 type string; 1526 description 1527 "Persistent Id for use as a key in search."; 1528 } 1529 } 1531 output { 1532 list response-list { 1533 key "response-index"; 1534 description 1535 "Path discovery response list."; 1536 leaf response-index { 1537 type uint32; 1538 mandatory true; 1539 description 1540 "Response index."; 1541 } 1542 leaf protocol-id { 1543 type identityref { 1544 base protocol-id; 1545 } 1546 mandatory true; 1547 description 1548 "Protocol used. This could be a standard 1549 protocol (e.g., TCP/IP protocols, MPLS etc.,) 1550 or a proprietary protocol as identified by 1551 this field."; 1552 } 1553 leaf protocol-id-meta-data { 1554 type uint64; 1555 description 1556 "An optional meta-data related to the protocol ID. 1557 For e.g., this could be the Internet Protocol number 1558 for standard Internet Protocols for help in protocol 1559 processing."; 1560 } 1561 leaf status-code { 1562 type identityref{ 1563 base status-code; 1564 } 1565 mandatory true; 1566 description 1567 "Error code for Persistent Path Discovery Creation. "; 1568 } 1569 leaf status-sub-code { 1570 type identityref{ 1571 base status-sub-code; 1572 } 1573 mandatory true; 1574 description 1575 "Sub code for Persistent Path Discovery Creation. "; 1576 } 1577 leaf data-export-method { 1578 type export-method; 1579 description 1580 "Type of export."; 1581 } 1582 choice pd-trigger { 1583 description 1584 "Necessary conditions 1585 for periodic or on-change 1586 trigger."; 1587 case periodic { 1588 description 1589 "Periodic reports."; 1590 leaf period { 1591 type yang:timeticks; 1592 description 1593 "Time interval between reports."; 1594 } 1595 leaf start-time { 1596 type yang:date-and-time; 1597 description 1598 "Timestamp from which reports are started."; 1599 } 1600 } 1601 case on-change { 1602 description 1603 "On-change trigger and not periodic."; 1604 leaf all-data-on-start { 1605 type boolean; 1606 description 1607 "Full update done on start or not."; 1608 } 1609 leaf-list excluded-change { 1610 type change-type; 1611 description 1612 "Changes that will not trigger an update."; 1613 } 1614 } 1615 } 1616 } 1617 } 1618 } 1619 } 1621 Authors' Addresses 1623 Deepak Kumar 1624 CISCO Systems 1625 510 McCarthy Blvd 1626 Milpitas, CA 95035 1627 USA 1629 Email: dekumar@cisco.com 1631 Michael Wang 1632 Huawei Technologies,Co.,Ltd 1633 101 Software Avenue, Yuhua District 1634 Nanjing 210012 1635 China 1637 Email: wangzitao@huawei.com 1639 Qin Wu 1640 Huawei 1641 101 Software Avenue, Yuhua District 1642 Nanjing, Jiangsu 210012 1643 China 1645 Email: bill.wu@huawei.com 1647 Reshad Rahman 1648 CISCO Systems 1649 2000 Innovation Drive 1650 Kanata, Ontario K2K 3E8 1651 Canada 1653 Email: rrahman@cisco.com 1655 Srihari Raghavan 1656 CISCO Systems 1657 Tril Infopark Sez, Ramanujan IT City 1658 Neville Block, 2nd floor, Old Mahabalipuram Road 1659 Chennai, Tamil Nadu 600113 1660 India 1662 Email: srihari@cisco.com