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