idnits 2.17.1 draft-ietf-lime-yang-connectionless-oam-methods-01.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 912 has weird spacing: '...aghavan srih...' == Line 913 has weird spacing: '...ao Wang wang...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (February 23, 2017) is 2612 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-18) exists of draft-ietf-lime-yang-connectionless-oam-03 == Outdated reference: A later version (-25) exists of draft-ietf-netconf-yang-push-04 ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) -- Obsolete informational reference (is this intentional?): RFC 4379 (Obsoleted by RFC 8029) Summary: 1 error (**), 0 flaws (~~), 6 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group D. Kumar 3 Internet-Draft Cisco 4 Intended status: Standards Track M. Wang 5 Expires: August 27, 2017 Q. Wu 6 Huawei 7 R. Rahman 8 S. Raghavan 9 Cisco 10 February 23, 2017 12 Retrieval Methods YANG Data Model for Connectionless Operations, 13 Administration, and Maintenance(OAM) protocols 14 draft-ietf-lime-yang-connectionless-oam-methods-01 16 Abstract 18 This document presents a retrieval method YANG Data model for 19 connectionless OAM protocols. It provides a technology-independent 20 RPC commands for connectionless OAM protocols. The retrieval methods 21 model presented here can be extended to include technology specific 22 details. This is leading to uniformity between OAM protocols and 23 support both nested OAM workflows (i.e., performing OAM functions at 24 different levels through a unified interface) and interactive OAM 25 workflows ( i.e., performing OAM functions at same levels through a 26 unified interface). 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at http://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on August 27, 2017. 45 Copyright Notice 47 Copyright (c) 2017 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 63 2. Conventions used in this document . . . . . . . . . . . . . . 3 64 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 65 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 66 3. Overview of the Connectionless OAM retrieval methods Model . 4 67 3.1. RPC definitions . . . . . . . . . . . . . . . . . . . . . 5 68 3.2. OAM Retrieval Methods Hierarchy . . . . . . . . . . . . . 8 69 4. OAM Retrieval Methods YANG Module . . . . . . . . . . . . . . 19 70 5. Security Considerations . . . . . . . . . . . . . . . . . . . 34 71 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 72 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 73 7.1. Normative References . . . . . . . . . . . . . . . . . . 35 74 7.2. Informative References . . . . . . . . . . . . . . . . . 36 75 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 77 1. Introduction 79 Operations, Administration, and Maintenance (OAM) are important 80 networking functions that allow operators to: 82 1. Monitor reachability of destinations (Reachability Verification, 83 Continuity Check). 85 2. Troubleshoot failures (Fault verification and localization). 87 3. Monitor Performance 89 An overview of OAM tools is presented at [RFC7276]. 91 Ping and Traceroute [RFC792], [RFC4443] and BFD [RFC5880] are well- 92 known fault verification and isolation tools, respectively, for IP 93 networks. Over the years, different technologies have developed 94 similar tools for similar purposes. 96 In this document, we present a retrieval method YANG Data model for 97 connectionless OAM protocols. This module provides technology- 98 independent RPC commands for connectionless OAM protocols. It is 99 separated from the generic YANG model for connectionless OAM 100 [I-D.ietf-lime-yang-connectionless-oam] and can avoid mixing the 101 models for the retrieved-data from the retrieval procedures. It is 102 expected that retrieval procedures would evolve faster than the data 103 model [I-D.ietf-lime-yang-connectionless-oam] and will allow new 104 procedures to be defined for retrieval of the same data defined by 105 the base data model. 107 2. Conventions used in this document 109 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 110 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 111 document are to be interpreted as described in [RFC2119]. 113 The following terms are defined in [RFC6241] and are not redefined 114 here: 116 o client 118 o configuration data 120 o server 122 o state data 124 The following terms are defined in [RFC6020] and are not redefined 125 here: 127 o augment 129 o data model 131 o data node 133 The terminology for describing YANG data models is found in 134 [RFC6020]. 136 2.1. Terminology 138 TP - Test Point 140 MAC - Media Access Control 141 RPC - A Remote Procedure Call, as used within the NETCONF protocol 143 2.2. Tree Diagrams 145 A simplified graphical representation of the data model is used in 146 this document. The meaning of the symbols in these diagrams is as 147 follows: 149 Each node is printed as: 151 153 is one of: 154 + for current 156 is one of: 158 rw for configuration data 159 ro for non-configuration data 160 -x for rpcs 161 -n for notifications 163 is the name of the node 165 If the node is augmented into the tree from another module, its name 166 is printed as :. 168 is one of: 170 ? for an optional leaf or choice 171 ! for a presence container 172 * for a leaf-list or list 173 [] for a list's keys 175 is the name of the type for leafs and leaf-lists 177 3. Overview of the Connectionless OAM retrieval methods Model 179 In this document, we present a retrieval method YANG Data model for 180 connectionless OAM protocols. This module provides technology- 181 independent retrieval procedures (RPC commands) for connectionless 182 OAM protocols. It provides a flexible way to retrieve the retrieved- 183 data which defined by the "ietf-connectionless-oam.yang" 184 [I-D.ietf-lime-yang-connectionless-oam]. 186 3.1. RPC definitions 188 The RPC model facilitates issuing commands to a NETCONF server (in 189 this case to the device that need to execute the OAM command) and 190 obtaining a response. 192 Under 'connectionless-oam-methods' module, we summarize the common 193 OAM functions and define the generic RPC commands: 'continuity-check' 194 and 'path-discovery'. In practice, these commands are supported by 195 corresponding technology-specific OAM tools [RFC7276]. For example, 196 for the IP OAM model, the continuity-check RPC corresponds to the IP 197 Ping [RFC792] [RFC4443], while the path-discovery RPC command 198 corresponds to IP Traceroute [RFC792] [RFC4443]. 200 Note that the RPC command presented in this document is the base 201 building block, which is used to derive a model for a technology- 202 specific OAM (i.e., ICMP ping [RFC792] [RFC4443], LSP ping 203 [RFC4379]), the base building block should be extended with 204 corresponding technology specific parameters. To facilitate this and 205 for future enhancements to data retrieval methods, the RPCs are 206 captured under a separate module. 208 The generic 'path-discovery-data' and 'continuity-check-data' are 209 used as data outputs from the different RPCs described in the 210 document. Similar methods including other RPCs can retrieve the data 211 using the same data model. 213 The persistent method RPCs are commands to trigger persistent 214 continuity check or path discovery OAM while specifying the options 215 for data-export from the device. Internet Protocol Flow Information 216 Export (IPFIX) [RFC7011] or yang-push [I-D.ietf-netconf-yang-push]. 217 are currently outlined here as data export options and more can be 218 added in future. It should be noted that the persistent methods are 219 used to trigger create, modify and delete the persistent state 220 associated with the data export options. The data export specific 221 configurations are beyond the scope of this document. 223 rpc continuity-check { 224 if-feature coam:continuity-check; 225 description 226 "Generates continuity-check as per RFC7276."; 227 input { 228 container destination-tp { 229 uses coam:tp-address; 230 description 231 "destination test point."; 232 } 233 uses coam:session-type; 234 leaf source-interface { 235 type if:interface-ref; 236 description 237 "source interface."; 238 } 239 leaf outbound-interface { 240 type if:interface-ref; 242 description 243 "outbound interface."; 244 } 245 leaf count { 246 type uint32; 247 default "5"; 248 description 249 "Specifies the number of packets that will be sent."; 250 } 251 leaf vrf { 252 type coam:routing-instance-ref; 253 description 254 "vrf instance."; 255 } 256 leaf ttl { 257 type uint8; 258 default "255"; 259 description 260 "Time to live (TTL)."; 261 } 262 leaf packet-size { 263 type uint32 { 264 range "64..10000"; 265 } 266 default "64"; 267 description 268 "Size of ping echo request packets, in octets"; 269 } 270 } 271 output { 272 list error-code-list { 273 key "response-index"; 274 leaf response-index { 275 type uint32; 276 description 277 "response index."; 278 } 279 leaf status-code { 280 type int32; 281 description 282 "error code is "; 283 } 284 leaf status-sub-code { 285 type uint8; 286 description 287 "sub code."; 288 } 289 description 290 "error code list."; 291 } 293 uses coam:continuity-check-data; 294 } 295 } 297 rpc path-discovery { 298 description 299 "Generates path discovery as per RFC7276."; 300 input { 301 container destination-tp { 302 uses coam:tp-address; 303 description 304 "destination test point."; 305 } 306 uses coam:session-type; 307 leaf source-interface { 308 type if:interface-ref; 309 description 310 "source interface."; 311 } 312 leaf outbound-interface { 313 type if:interface-ref; 314 description 315 "outbound interface."; 316 } 317 leaf vrf { 318 type coam:routing-instance-ref; 319 description 320 "vrf"; 321 } 322 leaf max-ttl { 323 type uint8; 324 default "255"; 325 description 326 "max ttl."; 327 } 328 } 329 output { 330 list response-list { 331 key "response-index"; 332 description 333 "path discovery response list."; 334 leaf response-index { 335 type uint32; 336 description 337 "response index."; 338 } 339 leaf status-code { 340 type int32; 341 description 342 "error code is "; 343 } 344 leaf status-sub-code { 345 type uint8; 347 description 348 "sub code is "; 349 } 350 } 352 uses coam:path-discovery-data; 353 } 354 } 356 Snippet of data hierarchy related to RPC calls 358 3.2. OAM Retrieval Methods Hierarchy 360 The complete data hierarchy related to the Connectionless OAM 361 Retrieval Methods YANG model is presented below. 363 module: ietf-connectionless-oam-methods 365 rpcs: 366 +---x continuity-check {coam:continuity-check}? 367 | +---w input 368 | | +---w destination-tp 369 | | | +---w tp-location-type-value? identityref 370 | | | +---w (tp-address)? 371 | | | +--:(mac-address) 372 | | | | +---w mac-address? yang:mac-address 373 | | | +--:(ipv4-address) 374 | | | | +---w ipv4-address? inet:ipv4-address 375 | | | +--:(ipv6-address) 376 | | | | +---w ipv6-address? inet:ipv6-address 377 | | | +--:(tp-attribute) 378 | | | | +---w tp-attribute-type? fec-type 379 | | | | +---w (tp-attribute-value)? 380 | | | | +--:(ip-prefix) 381 | | | | | +---w ip-prefix? inet:ip-prefix 382 | | | | +--:(bgp) 383 | | | | | +---w bgp inet:ip-prefix 384 | | | | +--:(tunnel) 385 | | | | | +---w tunnel-interface? uint32 386 | | | | +--:(pw) 387 | | | | | +---w remote-pe-address? inet:ip-address 388 | | | | | +---w pw-id? uint32 389 | | | | +--:(vpls) 390 | | | | | +---w route-distinguisher? uint32 391 | | | | | +---w sender-ve-id? uint32 392 | | | | | +---w receiver-ve-id? uint32 393 | | | | +--:(mpls-mldp) 394 | | | | +---w (root-address)? 395 | | | | +--:(ip-address) 396 | | | | | +---w source-address? inet:ip-address 397 | | | | | +---w group-ip-address? IP-Multicast 398 -Group-Address 399 | | | | +--:(vpn) 400 | | | | | +---w as-number inet:as-number 401 | | | | +--:(global-id) 402 | | | | +---w lsp-id? string 403 | | | +--:(system-info) 404 | | | +---w system-id? router-id 405 | | +---w session-type-enum? enumeration 406 | | +---w source-interface? if:interface-ref 407 | | +---w outbound-interface? if:interface-ref 408 | | +---w count? uint32 409 | | +---w vrf? coam:routing-instance-ref 410 | | +---w ttl? uint8 411 | | +---w packet-size? uint32 412 | +--ro output 413 | +--ro error-code-list* [response-index] 414 | | +--ro response-index uint32 415 | | +--ro status-code? int32 416 | | +--ro status-sub-code? uint8 417 | +--ro src-test-point 418 | | +--ro vrf? routing-instance-ref 419 | | +--ro tp-location-type-value? identityref 420 | | +--ro (tp-address)? 421 | | | +--:(mac-address) 422 | | | | +--ro mac-address? yang:mac-address 423 | | | +--:(ipv4-address) 424 | | | | +--ro ipv4-address? inet:ipv4-address 425 | | | +--:(ipv6-address) 426 | | | | +--ro ipv6-address? inet:ipv6-address 427 | | | +--:(tp-attribute) 428 | | | | +--ro tp-attribute-type? fec-type 429 | | | | +--ro (tp-attribute-value)? 430 | | | | +--:(ip-prefix) 431 | | | | | +--ro ip-prefix? inet:ip-prefix 432 | | | | +--:(bgp) 433 | | | | | +--ro bgp? inet:ip-prefix 434 | | | | +--:(tunnel) 435 | | | | | +--ro tunnel-interface? uint32 436 | | | | +--:(pw) 437 | | | | | +--ro remote-pe-address? inet:ip-address 438 | | | | | +--ro pw-id? uint32 439 | | | | +--:(vpls) 440 | | | | | +--ro route-distinguisher? uint32 441 | | | | | +--ro sender-ve-id? uint32 442 | | | | | +--ro receiver-ve-id? uint32 443 | | | | +--:(mpls-mldp) 444 | | | | +--ro (root-address)? 445 | | | | +--:(ip-address) 446 | | | | | +--ro source-address? inet:ip-address 447 | | | | | +--ro group-ip-address? IP-Multicast 448 -Group-Address 449 | | | | +--:(vpn) 450 | | | | | +--ro as-number? inet:as-number 451 | | | | +--:(global-id) 452 | | | | +--ro lsp-id? string 453 | | | +--:(system-info) 454 | | | +--ro system-id? router-id 455 | | +--ro egress-intf-name? if:interface-ref 456 | +--ro dest-test-point 457 | | +--ro vrf? routing-instance-ref 458 | | +--ro tp-location-type-value? identityref 459 | | +--ro (tp-address)? 460 | | | +--:(mac-address) 461 | | | | +--ro mac-address? yang:mac-address 462 | | | +--:(ipv4-address) 463 | | | | +--ro ipv4-address? inet:ipv4-address 464 | | | +--:(ipv6-address) 465 | | | | +--ro ipv6-address? inet:ipv6-address 466 | | | +--:(tp-attribute) 467 | | | | +--ro tp-attribute-type? fec-type 468 | | | | +--ro (tp-attribute-value)? 469 | | | | +--:(ip-prefix) 470 | | | | | +--ro ip-prefix inet:ip-prefix 471 | | | | +--:(bgp) 472 | | | | | +--ro bgp? inet:ip-prefix 473 | | | | +--:(tunnel) 474 | | | | | +--ro tunnel-interface? uint32 475 | | | | +--:(pw) 476 | | | | | +--ro remote-pe-address? inet:ip-address 477 | | | | | +--ro pw-id? uint32 478 | | | | +--:(vpls) 479 | | | | | +--ro route-distinguisher? uint32 480 | | | | | +--ro sender-ve-id? uint32 481 | | | | | +--ro receiver-ve-id? uint32 482 | | | | +--:(mpls-mldp) 483 | | | | +--ro (root-address)? 484 | | | | +--:(ip-address) 485 | | | | | +--ro source-address? inet:ip-address 486 | | | | | +--ro group-ip-address? IP-Multicast- 487 Group-Address 488 | | | | +--:(vpn) 489 | | | | | +--ro as-number? inet:as-number 490 | | | | +--:(global-id) 491 | | | | +--ro lsp-id? string 492 | | | +--:(system-info) 493 | | | +--ro system-id? router-id 494 | | +--ro ingress-intf-name? if:interface-ref 495 | +--ro sequence-number? uint64 496 | +--ro hop-cnt? uint8 497 | +--ro session-packet-statistics 498 | | +--ro rx-packet-count? uint32 499 | | +--ro tx-packet-count? uint32 500 | | +--ro rx-bad-packet? uint32 501 | | +--ro tx-packet-failed? uint32 502 | +--ro session-error-statistics 503 | | +--ro packet-drops-count? uint32 504 | | +--ro packet-reorder-count? uint32 505 | | +--ro packets-out-of-seq-count? uint32 506 | | +--ro packets-dup-count? uint32 507 | +--ro session-delay-statistics 508 | | +--ro time-resolution-value? identityref 509 | | +--ro min-delay-value? uint32 510 | | +--ro max-delay-value? uint32 511 | | +--ro average-delay-value? uint32 512 | +--ro session-jitter-statistics 513 | +--ro time-resolution-value? identityref 514 | +--ro min-jitter-value? uint32 515 | +--ro max-jitter-value? uint32 516 | +--ro average-jitter-value? uint32 517 +---x cc-persistent-create {coam:continuity-check}? 518 | +---w input 519 | | +---w destination-tp 520 | | | +---w tp-location-type-value? identityref 521 | | | +---w (tp-address)? 522 | | | +--:(mac-address) 523 | | | | +---w mac-address? yang:mac-address 524 | | | +--:(ipv4-address) 525 | | | | +---w ipv4-address? inet:ipv4-address 526 | | | +--:(ipv6-address) 527 | | | | +---w ipv6-address? inet:ipv6-address 528 | | | +--:(tp-attribute) 529 | | | | +---w tp-attribute-type? fec-type 530 | | | | +---w (tp-attribute-value)? 531 | | | | +--:(ip-prefix) 532 | | | | | +---w ip-prefix? inet:ip-prefix 533 | | | | +--:(bgp) 534 | | | | | +---w bgp? inet:ip-prefix 535 | | | | +--:(tunnel) 536 | | | | | +---w tunnel-interface? uint32 537 | | | | +--:(pw) 538 | | | | | +---w remote-pe-address? inet:ip-address 539 | | | | | +---w pw-id? uint32 540 | | | | +--:(vpls) 541 | | | | | +---w route-distinguisher? uint32 542 | | | | | +---w sender-ve-id? uint32 543 | | | | | +---w receiver-ve-id? uint32 544 | | | | +--:(mpls-mldp) 545 | | | | +---w (root-address)? 546 | | | | +--:(ip-address) 547 | | | | | +---w source-address? inet:ip-address 548 | | | | | +---w group-ip-address? IP-Multicast- 549 Group-Address 550 | | | | +--:(vpn) 551 | | | | | +---w as-number? inet:as-number 552 | | | | +--:(global-id) 553 | | | | +---w lsp-id? string 554 | | | +--:(system-info) 555 | | | +---w system-id? router-id 556 | | +---w session-type-enum? enumeration 557 | | +---w source-interface? if:interface-ref 558 | | +---w outbound-interface? if:interface-ref 559 | | +---w vrf? coam:routing-instance-ref 560 | | +---w ttl? uint8 561 | | +---w data-export-method? export-method 562 | | +---w (cc-trigger)? 563 | | +--:(periodic) 564 | | | +---w period? yang:timeticks 565 | | | +---w start-time? yang:date-and-time 566 | | +--:(on-change) 567 | | +---w all-data-on-start? boolean 568 | | +---w excluded-change* change-type 569 | +--ro output 570 | +--ro error-code-list* [response-index] 571 | | +--ro response-index uint32 572 | | +--ro status-code? int32 573 | | +--ro status-sub-code? uint8 574 | +--ro cc-persistent-id? string 575 +---x cc-persistent-modify {coam:continuity-check}? 576 | +---w input 577 | | +---w cc-persistent-id? string 578 | | +---w data-export-method? export-method 579 | | +---w (cc-trigger)? 580 | | +--:(periodic) 581 | | | +---w period? yang:timeticks 582 | | | +---w start-time? yang:date-and-time 583 | | +--:(on-change) 584 | | +---w all-data-on-start? boolean 585 | | +---w excluded-change* change-type 586 | +--ro output 587 | +--ro error-code-list* [response-index] 588 | | +--ro response-index uint32 589 | | +--ro status-code? int32 590 | | +--ro status-sub-code? uint8 591 | +--ro cc-persistent-id? string 592 +---x cc-persistent-delete {coam:continuity-check}? 593 | +---w input 594 | | +---w cc-persistent-id? string 595 | +--ro output 596 | +--ro error-code-list* [response-index] 597 | +--ro response-index uint32 598 | +--ro status-code? int32 599 | +--ro status-sub-code? uint8 600 +---x path-discovery 601 | +---w input 602 | | +---w destination-tp 603 | | | +---w tp-location-type-value? identityref 604 | | | +---w (tp-address)? 605 | | | +--:(mac-address) 606 | | | | +---w mac-address? yang:mac-address 607 | | | +--:(ipv4-address) 608 | | | | +---w ipv4-address? inet:ipv4-address 609 | | | +--:(ipv6-address) 610 | | | | +---w ipv6-address? inet:ipv6-address 611 | | | +--:(tp-attribute) 612 | | | | +---w tp-attribute-type? fec-type 613 | | | | +---w (tp-attribute-value)? 614 | | | | +--:(ip-prefix) 615 | | | | | +---w ip-prefix? inet:ip-prefix 616 | | | | +--:(bgp) 617 | | | | | +---w bgp inet:ip-prefix 618 | | | | +--:(tunnel) 619 | | | | | +---w tunnel-interface? uint32 620 | | | | +--:(pw) 621 | | | | | +---w remote-pe-address? inet:ip-address 622 | | | | | +---w pw-id? uint32 623 | | | | +--:(vpls) 624 | | | | | +---w route-distinguisher? uint32 625 | | | | | +---w sender-ve-id? uint32 626 | | | | | +---w receiver-ve-id? uint32 627 | | | | +--:(mpls-mldp) 628 | | | | +---w (root-address)? 629 | | | | +--:(ip-address) 630 | | | | | +---w source-address? inet:ip-address 631 | | | | | +---w group-ip-address? IP-Multicast 632 -Group-Address 633 | | | | +--:(vpn) 634 | | | | | +---w as-number? inet:as-number 635 | | | | +--:(global-id) 636 | | | | +---w lsp-id? string 637 | | | +--:(system-info) 638 | | | +---w system-id? router-id 639 | | +---w session-type-enum? enumeration 640 | | +---w source-interface? if:interface-ref 641 | | +---w outbound-interface? if:interface-ref 642 | | +---w vrf? coam:routing-instance-ref 643 | | +---w max-ttl? uint8 644 | +--ro output 645 | +--ro response-list* [response-index] 646 | | +--ro response-index uint32 647 | | +--ro status-code? int32 648 | | +--ro status-sub-code? uint8 649 | +--ro src-test-point 650 | | +--ro vrf? routing-instance-ref 651 | | +--ro tp-location-type-value? identityref 652 | | +--ro (tp-address)? 653 | | +--:(mac-address) 654 | | | +--ro mac-address? yang:mac-address 655 | | +--:(ipv4-address) 656 | | | +--ro ipv4-address? inet:ipv4-address 657 | | +--:(ipv6-address) 658 | | | +--ro ipv6-address? inet:ipv6-address 659 | | +--:(tp-attribute) 660 | | | +--ro tp-attribute-type? fec-type 661 | | | +--ro (tp-attribute-value)? 662 | | | +--:(ip-prefix) 663 | | | | +--ro ip-prefix? inet:ip-prefix 664 | | | +--:(bgp) 665 | | | | +--ro bgp? inet:ip-prefix 666 | | | +--:(tunnel) 667 | | | | +--ro tunnel-interface? uint32 668 | | | +--:(pw) 669 | | | | +--ro remote-pe-address? inet:ip-address 670 | | | | +--ro pw-id? uint32 671 | | | +--:(vpls) 672 | | | | +--ro route-distinguisher? uint32 673 | | | | +--ro sender-ve-id? uint32 674 | | | | +--ro receiver-ve-id? uint32 675 | | | +--:(mpls-mldp) 676 | | | +--ro (root-address)? 677 | | | +--:(ip-address) 678 | | | | +--ro source-address? inet:ip-address 679 | | | | +--ro group-ip-address? IP-Multicast 680 -Group-Address 681 | | | +--:(vpn) 682 | | | | +--ro as-number? inet:as-number 683 | | | +--:(global-id) 684 | | | +--ro lsp-id? string 685 | | +--:(system-info) 686 | | +--ro system-id? router-id 687 | +--ro dest-test-point 688 | | +--ro vrf? routing-instance-ref 689 | | +--ro tp-location-type-value? identityref 690 | | +--ro (tp-address)? 691 | | +--:(mac-address) 692 | | | +--ro mac-address? yang:mac-address 693 | | +--:(ipv4-address) 694 | | | +--ro ipv4-address? inet:ipv4-address 695 | | +--:(ipv6-address) 696 | | | +--ro ipv6-address? inet:ipv6-address 697 | | +--:(tp-attribute) 698 | | | +--ro tp-attribute-type? fec-type 699 | | | +--ro (tp-attribute-value)? 700 | | | +--:(ip-prefix) 701 | | | | +--ro ip-prefix inet:ip-prefix 702 | | | +--:(bgp) 703 | | | | +--ro bgp? inet:ip-prefix 704 | | | +--:(tunnel) 705 | | | | +--ro tunnel-interface? uint32 706 | | | +--:(pw) 707 | | | | +--ro remote-pe-address? inet:ip-address 708 | | | | +--ro pw-id? uint32 709 | | | +--:(vpls) 710 | | | | +--ro route-distinguisher? uint32 711 | | | | +--ro sender-ve-id? uint32 712 | | | | +--ro receiver-ve-id? uint32 713 | | | +--:(mpls-mldp) 714 | | | +--ro (root-address)? 715 | | | +--:(ip-address) 716 | | | | +--ro source-address? inet:ip-address 717 | | | | +--ro group-ip-address? IP-Multicast 718 -Group-Address 719 | | | +--:(vpn) 720 | | | | +--ro as-number? inet:as-number 721 | | | +--:(global-id) 722 | | | +--ro lsp-id? string 723 | | +--:(system-info) 724 | | +--ro system-id? router-id 725 | +--ro sequence-number? uint64 726 | +--ro hop-cnt? uint8 727 | +--ro session-packet-statistics 728 | | +--ro rx-packet-count? uint32 729 | | +--ro tx-packet-count? uint32 730 | | +--ro rx-bad-packet? uint32 731 | | +--ro tx-packet-failed? uint32 732 | +--ro session-error-statistics 733 | | +--ro packet-drops-count? uint32 734 | | +--ro packet-reorder-count? uint32 735 | | +--ro packets-out-of-seq-count? uint32 736 | | +--ro packets-dup-count? uint32 737 | +--ro session-delay-statistics 738 | | +--ro time-resolution-value? identityref 739 | | +--ro min-delay-value? uint32 740 | | +--ro max-delay-value? uint32 741 | | +--ro average-delay-value? uint32 742 | +--ro session-jitter-statistics 743 | | +--ro time-resolution-value? identityref 744 | | +--ro min-jitter-value? uint32 745 | | +--ro max-jitter-value? uint32 746 | | +--ro average-jitter-value? uint32 747 | +--ro path-verification 748 | | +--ro flow-info? string 749 | | +--ro session-path-verification-statistics 750 | | +--ro verified-count? uint32 751 | | +--ro failed-count? uint32 752 | +--ro path-trace-info 753 | +--ro path-trace-info-list* [index] 754 | +--ro index uint32 755 | +--ro vrf? routing-instance-ref 756 | +--ro tp-location-type-value? identityref 757 | +--ro (tp-address)? 758 | | +--:(mac-address) 759 | | | +--ro mac-address? yang:mac-address 760 | | +--:(ipv4-address) 761 | | | +--ro ipv4-address? inet:ipv4-address 762 | | +--:(ipv6-address) 763 | | | +--ro ipv6-address? inet:ipv6-address 764 | | +--:(tp-attribute) 765 | | | +--ro tp-attribute-type? fec-type 766 | | | +--ro (tp-attribute-value)? 767 | | | +--:(ip-prefix) 768 | | | | +--ro ip-prefix? inet:ip-prefix 769 | | | +--:(bgp) 770 | | | | +--ro bgp? inet:ip-prefix 771 | | | +--:(tunnel) 772 | | | | +--ro tunnel-interface? uint32 773 | | | +--:(pw) 774 | | | | +--ro remote-pe-address? inet:ip-address 775 | | | | +--ro pw-id? uint32 776 | | | +--:(vpls) 777 | | | | +--ro route-distinguisher? uint32 778 | | | | +--ro sender-ve-id? uint32 779 | | | | +--ro receiver-ve-id? uint32 780 | | | +--:(mpls-mldp) 781 | | | +--ro (root-address)? 782 | | | +--:(ip-address) 783 | | | | +--ro source-address? inet:ip-address 784 | | | | +--ro group-ip-address? IP-Multicast 785 -Group-Address 786 | | | +--:(vpn) 787 | | | | +--ro as-number? inet:as-number 788 | | | +--:(global-id) 789 | | | +--ro lsp-id? string 790 | | +--:(system-info) 791 | | +--ro system-id? router-id 792 | +--ro timestamp-sec? yang:timestamp 793 | +--ro timestamp-nanosec? yang:timestamp 794 | +--ro ingress-intf-name? if:interface-ref 795 | +--ro egress-intf-name? if:interface-ref 796 | +--ro queue-depth? uint32 797 | +--ro transit-delay? uint32 798 | +--ro app-meta-data? uint64 799 | +--ro opaque-tlvs 800 | +--ro opaque-tlvs-list* 801 | +--ro type? opaque-tlv-type 802 | +--ro length? uint16 803 | +--ro value? yang:hex-string 804 +---x pd-persistent-create 805 | +---w input 806 | | +---w destination-tp 807 | | | +---w tp-location-type-value? identityref 808 | | | +---w (tp-address)? 809 | | | +--:(mac-address) 810 | | | | +---w mac-address? yang:mac-address 811 | | | +--:(ipv4-address) 812 | | | | +---w ipv4-address? inet:ipv4-address 813 | | | +--:(ipv6-address) 814 | | | | +---w ipv6-address? inet:ipv6-address 815 | | | +--:(tp-attribute) 816 | | | | +---w tp-attribute-type? fec-type 817 | | | | +---w (tp-attribute-value)? 818 | | | | +--:(ip-prefix) 819 | | | | | +---w ip-prefix? inet:ip-prefix 820 | | | | +--:(bgp) 821 | | | | | +---w bgp? inet:ip-prefix 822 | | | | +--:(tunnel) 823 | | | | | +---w tunnel-interface? uint32 824 | | | | +--:(pw) 825 | | | | | +---w remote-pe-address? inet:ip-address 826 | | | | | +---w pw-id? uint32 827 | | | | +--:(vpls) 828 | | | | | +---w route-distinguisher? uint32 829 | | | | | +---w sender-ve-id? uint32 830 | | | | | +---w receiver-ve-id? uint32 831 | | | | +--:(mpls-mldp) 832 | | | | +---w (root-address)? 833 | | | | +--:(ip-address) 834 | | | | | +---w source-address inet:ip-address 835 | | | | | +---w group-ip-address? IP-Multicast 836 -Group-Address 837 | | | | +--:(vpn) 838 | | | | | +---w as-number? inet:as-number 839 | | | | +--:(global-id) 840 | | | | +---w lsp-id? string 841 | | | +--:(system-info) 842 | | | +---w system-id? router-id 843 | | +---w session-type-enum? enumeration 844 | | +---w source-interface? if:interface-ref 845 | | +---w outbound-interface? if:interface-ref 846 | | +---w vrf? coam:routing-instance-ref 847 | | +---w max-ttl? uint8 848 | | +---w data-export-method? export-method 849 | | +---w (pd-trigger)? 850 | | +--:(periodic) 851 | | | +---w period? yang:timeticks 852 | | | +---w start-time? yang:date-and-time 853 | | +--:(on-change) 854 | | +---w all-data-on-start? boolean 855 | | +---w excluded-change* change-type 856 | +--ro output 857 | +--ro response-list* [response-index] 858 | +--ro response-index uint32 859 | +--ro status-code? int32 860 | +--ro status-sub-code? uint8 861 | +--ro pd-persistent-id? string 862 +---x pd-persistent-modify 863 | +---w input 864 | | +---w pd-persistent-id? string 865 | | +---w data-export-method? export-method 866 | | +---w (pd-trigger)? 867 | | +--:(periodic) 868 | | | +---w period? yang:timeticks 869 | | | +---w start-time? yang:date-and-time 870 | | +--:(on-change) 871 | | +---w all-data-on-start? boolean 872 | | +---w excluded-change* change-type 873 | +--ro output 874 | +--ro response-list* [response-index] 875 | +--ro response-index uint32 876 | +--ro status-code? int32 877 | +--ro status-sub-code? uint8 878 | +--ro pd-persistent-id? string 879 +---x pd-persistent-delete 880 +---w input 881 | +---w pd-persistent-id? string 882 +--ro output 883 +--ro response-list* [response-index] 884 +--ro response-index uint32 885 +--ro status-code? int32 886 +--ro status-sub-code? uint8 888 data hierarchy of OAM Retrieval Methods 890 4. OAM Retrieval Methods YANG Module 892 file "ietf-connectionless-oam-methods.yang" 894 module ietf-connectionless-oam-methods { 895 namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods"; 896 prefix coam-methods; 898 import ietf-interfaces { 899 prefix if; 900 } 901 import ietf-connectionless-oam { 902 prefix coam; 903 } 904 import ietf-yang-types { 905 prefix yang; 906 } 908 organization "IETF LIME Working Group"; 909 contact 910 "Deepak Kumar dekumar@cisco.com 911 Qin Wu bill.wu@huawei.com 912 S Raghavan srihari@cisco.com 913 Zitao Wang wangzitao@huawei.com 914 R Rahman rrahman@cisco.com"; 916 description 917 "This YANG module defines the RPCs for , 918 connectionless OAM to be used within IETF 919 in a protocol Independent manner. 920 Functional level abstraction is indendent with 921 YANG modeling. It is assumed that each protocol maps 922 corresponding abstracts to its native format. 923 Each protocol may extend the YANG model defined 924 here to include protocol specific extensions"; 925 revision 2017-02-15 { 926 description 927 "02 version"; 928 reference 929 "draft-ietf-lime-yang-connectionless-oam-methods"; 930 } 932 rpc continuity-check { 933 if-feature coam:continuity-check; 934 description 935 "Generates continuity-check as per RFC7276."; 936 input { 937 container destination-tp { 938 uses coam:tp-address; 939 description 940 "Destination test point."; 941 } 942 uses coam:session-type; 943 leaf source-interface { 944 type if:interface-ref; 945 description 946 "Source interface."; 947 } 948 leaf outbound-interface { 949 type if:interface-ref; 951 description 952 "Outbound interface."; 954 } 955 leaf count { 956 type uint32; 957 default "5"; 958 description 959 "Specifies the number of 960 packets that will be sent."; 961 } 962 leaf vrf { 963 type coam:routing-instance-ref; 964 description 965 "VRF instance."; 966 } 968 leaf ttl { 969 type uint8; 970 default "255"; 971 description 972 "Time to live (TTL)."; 973 } 974 leaf packet-size { 975 type uint32 { 976 range "64..10000"; 977 } 978 default "64"; 979 description 980 "Size of ping echo request 981 packets, in octets"; 982 } 983 } 984 output { 985 list error-code-list { 986 key "response-index"; 987 leaf response-index { 988 type uint32; 989 description 990 "Response index."; 991 } 992 leaf status-code { 993 type int32; 994 description 995 "Error code is "; 996 } 997 leaf status-sub-code { 998 type uint8; 999 description 1000 "Sub code."; 1001 } 1002 description 1003 "Error code list."; 1004 } 1006 uses coam:continuity-check-data; 1007 } 1008 } 1010 identity export-method { 1011 description 1012 "Base identity to represent a conceptual export-method."; 1013 } 1015 identity ipfix-export { 1016 base export-method; 1017 description 1018 "IPFIX based export. Configuration provided separately."; 1019 } 1021 identity yang-push-export { 1022 base export-method; 1023 description 1024 "Yang-push from draft-ietf-netconf-yang-push"; 1025 } 1027 typedef export-method { 1028 type identityref { 1029 base export-method; 1030 } 1031 description 1032 "Export method type."; 1033 } 1035 typedef change-type { 1036 type enumeration { 1037 enum "create" { 1038 description 1039 "Change due to a create."; 1040 } 1041 enum "delete" { 1042 description 1043 "Change due to a delete."; 1044 } 1045 enum "modify" { 1046 description 1047 "Change due to an update."; 1048 } 1049 } 1050 description 1051 "Different types of changes that may occur."; 1052 } 1054 rpc cc-persistent-create { 1055 if-feature coam:continuity-check; 1056 description 1057 "Generates persistent continuity-check."; 1058 input { 1059 container destination-tp { 1060 uses coam:tp-address; 1061 description 1062 "Destination test point."; 1063 } 1065 uses coam:session-type; 1067 leaf source-interface { 1068 type if:interface-ref; 1069 description 1070 "Source interface."; 1071 } 1073 leaf outbound-interface { 1074 type if:interface-ref; 1075 description 1076 "Outbound interface."; 1077 } 1079 leaf vrf { 1080 type coam:routing-instance-ref; 1081 description 1082 "VRF instance."; 1083 } 1085 leaf ttl { 1086 type uint8; 1087 default "255"; 1088 description 1089 "Time to live (TTL)."; 1090 } 1092 leaf data-export-method { 1093 type export-method; 1094 description 1095 "Type of export."; 1096 } 1097 choice cc-trigger { 1098 description 1099 "Defines necessary conditions for 1100 periodic or on-change trigger."; 1101 case periodic { 1102 description "Periodic reports."; 1103 leaf period { 1104 type yang:timeticks; 1105 description "Time interval between reports."; 1106 } 1107 leaf start-time { 1108 type yang:date-and-time; 1109 description 1110 "Timestamp from which reports are started."; 1111 } 1112 } 1113 case on-change { 1114 description 1115 "On-change trigger and not periodic."; 1116 leaf all-data-on-start { 1117 type boolean; 1118 description 1119 "Full update needed on start or not."; 1120 } 1121 leaf-list excluded-change { 1122 type change-type; 1123 description 1124 "Restrict which changes trigger an update."; 1125 } 1126 } 1127 } 1128 } 1129 output { 1130 list error-code-list { 1131 key "response-index"; 1132 leaf response-index { 1133 type uint32; 1134 description 1135 "Response index."; 1136 } 1138 leaf status-code { 1139 type int32; 1140 description 1141 "Error code."; 1142 } 1144 leaf status-sub-code { 1145 type uint8; 1146 description 1147 "Sub code."; 1148 } 1150 description 1151 "Error code list."; 1152 } 1153 leaf cc-persistent-id { 1154 type string; 1155 description 1156 "Id to act as a cookie."; 1157 } 1158 } 1159 } 1161 rpc cc-persistent-modify { 1162 if-feature coam:continuity-check; 1163 description 1164 "Modifies persistent continuity-check 1165 as per RFC7276."; 1166 input { 1167 leaf cc-persistent-id { 1168 type string; 1169 description 1170 "Cookie Id to be used for modifications."; 1171 } 1173 leaf data-export-method { 1174 type export-method; 1175 description 1176 "Type of export to use."; 1177 } 1179 choice cc-trigger { 1180 description 1181 "Defines necessary conditions for 1182 periodic or on-change trigger."; 1183 case periodic { 1184 description "Periodic reports."; 1185 leaf period { 1186 type yang:timeticks; 1187 description 1188 "Time interval between reports."; 1189 } 1190 leaf start-time { 1191 type yang:date-and-time; 1192 description 1193 "Timestamp from which reports are started."; 1194 } 1195 } 1196 case on-change { 1197 description 1198 "On-change trigger and not periodic."; 1199 leaf all-data-on-start { 1200 type boolean; 1201 description 1202 "Full update needed on start or not."; 1203 } 1204 leaf-list excluded-change { 1205 type change-type; 1206 description 1207 "Restrict which changes trigger an update."; 1208 } 1209 } 1210 } 1211 } 1212 output { 1213 list error-code-list { 1214 key "response-index"; 1215 leaf response-index { 1216 type uint32; 1217 description 1218 "Response index."; 1219 } 1221 leaf status-code { 1222 type int32; 1223 description 1224 "Error code"; 1225 } 1227 leaf status-sub-code { 1228 type uint8; 1229 description 1230 "Sub code."; 1231 } 1233 description 1234 "Error code list."; 1235 } 1237 leaf cc-persistent-id { 1238 type string; 1239 description 1240 "Id to represent a cookie."; 1242 } 1243 } 1244 } 1246 rpc cc-persistent-delete { 1247 if-feature coam:continuity-check; 1248 description 1249 "Deletes persistent continuity-check as per RFC7276."; 1250 input { 1251 leaf cc-persistent-id { 1252 type string; 1253 description 1254 "Cookie Id to be used in deletion."; 1255 } 1256 } 1257 output { 1258 list error-code-list { 1259 key "response-index"; 1260 leaf response-index { 1261 type uint32; 1262 description 1263 "Response index."; 1264 } 1266 leaf status-code { 1267 type int32; 1268 description 1269 "Error code."; 1270 } 1272 leaf status-sub-code { 1273 type uint8; 1274 description 1275 "Sub code."; 1276 } 1278 description 1279 "Error code list."; 1280 } 1281 } 1282 } 1284 rpc path-discovery { 1285 description 1286 "Generates path discovery as per RFC7276."; 1287 input { 1288 container destination-tp { 1289 uses coam:tp-address; 1290 description 1291 "Destination test point."; 1293 } 1294 uses coam:session-type; 1295 leaf source-interface { 1296 type if:interface-ref; 1297 description 1298 "Source interface."; 1299 } 1301 leaf outbound-interface { 1302 type if:interface-ref; 1303 description 1304 "Outbound interface."; 1305 } 1307 leaf vrf { 1308 type coam:routing-instance-ref; 1309 description 1310 "VRF"; 1311 } 1313 leaf max-ttl { 1314 type uint8; 1315 default "255"; 1316 description 1317 "Max ttl."; 1318 } 1319 } 1320 output { 1321 list response-list { 1322 key "response-index"; 1323 description 1324 "Path discovery response list."; 1325 leaf response-index { 1326 type uint32; 1327 description 1328 "Response index."; 1329 } 1331 leaf status-code { 1332 type int32; 1333 description 1334 "Error code is "; 1335 } 1337 leaf status-sub-code { 1338 type uint8; 1339 description 1340 "Sub code is "; 1341 } 1342 } 1344 uses coam:path-discovery-data; 1346 } 1347 } 1349 rpc pd-persistent-create { 1350 description 1351 "Generates persistent path discovery."; 1352 input { 1353 container destination-tp { 1354 uses coam:tp-address; 1355 description 1356 "Destination test point."; 1358 } 1360 uses coam:session-type; 1362 leaf source-interface { 1363 type if:interface-ref; 1364 description 1365 "Source interface."; 1366 } 1368 leaf outbound-interface { 1369 type if:interface-ref; 1370 description 1371 "Outbound interface."; 1372 } 1374 leaf vrf { 1375 type coam:routing-instance-ref; 1376 description 1377 "VRF"; 1378 } 1380 leaf max-ttl { 1381 type uint8; 1382 default "255"; 1383 description 1384 "Max ttl."; 1385 } 1386 leaf data-export-method { 1387 type export-method; 1388 description 1389 "Type of export."; 1390 } 1392 choice pd-trigger { 1393 description 1394 "Defines necessary conditions 1395 for periodic or on-change 1396 trigger."; 1397 case periodic { 1398 description 1399 "Periodic reports."; 1400 leaf period { 1401 type yang:timeticks; 1402 description 1403 "Time interval between reports."; 1404 } 1405 leaf start-time { 1406 type yang:date-and-time; 1407 description 1408 "Timestamp from which reports are started."; 1409 } 1410 } 1411 case on-change { 1412 description 1413 "On-change trigger and not periodic."; 1414 leaf all-data-on-start { 1415 type boolean; 1416 description 1417 "Full update needed on start or not."; 1418 } 1419 leaf-list excluded-change { 1420 type change-type; 1421 description 1422 "Restrict which changes trigger an update."; 1423 } 1424 } 1425 } 1426 } 1427 output { 1428 list response-list { 1429 key "response-index"; 1430 description 1431 "Path discovery response list."; 1432 leaf response-index { 1433 type uint32; 1434 description 1435 "Response index."; 1436 } 1438 leaf status-code { 1439 type int32; 1440 description 1441 "Error code is "; 1442 } 1444 leaf status-sub-code { 1445 type uint8; 1446 description 1447 "Sub code is "; 1448 } 1450 leaf pd-persistent-id { 1451 type string; 1452 description 1453 "Id to act as a cookie."; 1454 } 1455 } 1456 } 1457 } 1459 rpc pd-persistent-modify { 1460 description 1461 "Modifies persistent path discovery."; 1462 input { 1463 leaf pd-persistent-id { 1464 type string; 1465 description "Cookie Id to be used for modifications."; 1466 } 1468 leaf data-export-method { 1469 type export-method; 1470 description "Type of export."; 1471 } 1473 choice pd-trigger { 1474 description 1475 "Defines necessary conditions for periodic or on-change 1476 trigger."; 1477 case periodic { 1478 description "Periodic reports."; 1479 leaf period { 1480 type yang:timeticks; 1481 description 1482 "Time interval between reports."; 1483 } 1484 leaf start-time { 1485 type yang:date-and-time; 1486 description 1487 "Timestamp from which reports are started."; 1488 } 1489 } 1490 case on-change { 1491 description 1492 "On-change trigger and not periodic."; 1493 leaf all-data-on-start { 1494 type boolean; 1495 description 1496 "Full update needed on start or not."; 1497 } 1498 leaf-list excluded-change { 1499 type change-type; 1500 description 1501 "Restrict which changes trigger an update."; 1502 } 1503 } 1504 } 1505 } 1506 output { 1507 list response-list { 1508 key "response-index"; 1509 description 1510 "path discovery response list."; 1511 leaf response-index { 1512 type uint32; 1513 description 1514 "response index."; 1515 } 1517 leaf status-code { 1518 type int32; 1519 description 1520 "error code is "; 1521 } 1523 leaf status-sub-code { 1524 type uint8; 1525 description 1526 "sub code is "; 1527 } 1529 leaf pd-persistent-id { 1530 type string; 1531 description "Id to act as a cookie."; 1532 } 1533 } 1534 } 1535 } 1537 rpc pd-persistent-delete { 1538 description 1539 "Deletes persistent path discovery."; 1540 input { 1541 leaf pd-persistent-id { 1542 type string; 1543 description "Cookie Id to be used in deletion."; 1544 } 1545 } 1547 output { 1548 list response-list { 1549 key "response-index"; 1550 description 1551 "path discovery response list."; 1552 leaf response-index { 1553 type uint32; 1554 description 1555 "response index."; 1556 } 1558 leaf status-code { 1559 type int32; 1560 description 1561 "error code is "; 1562 } 1564 leaf status-sub-code { 1565 type uint8; 1566 description 1567 "sub code is "; 1568 } 1569 } 1570 } 1571 } 1572 } 1574 1576 5. Security Considerations 1578 The YANG modules defined in this memo are designed to be accessed via 1579 the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the 1580 secure transport layer and the mandatory to implement secure 1581 transport is SSH [RFC6242]. The NETCONF access control model 1582 [RFC6536] provides the means to restrict access for particular 1583 NETCONF users to a pre-configured subset of all available NETCONF 1584 protocol operations and content. Some of the RPC operations in the 1585 "ietf-connectionless-oam-methods" YANG module may be considered 1586 sensitive or vulnerable in some network environments. It is thus 1587 important to control access to these operations. 1589 These are the operations and their sensitivity/vulnerability: 1591 o continuity-check: Generates continuity check. 1593 o path-discovery: Generates path discovery. 1595 6. IANA Considerations 1597 This document registers a URI in the IETF XML registry [RFC3688]. 1598 Following the format in [RFC3688], the following registration is 1599 requested to be made: 1601 URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods 1603 Registrant Contact: The IESG. 1605 XML: N/A, the requested URI is an XML namespace. 1607 This document registers a YANG module in the YANG Module Names 1608 registry [RFC6020]. 1610 name: ietf-connectionless-oam-methods 1612 namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam- 1613 methods 1615 prefix: coam-methods 1617 reference: RFC XXXX 1619 7. References 1620 7.1. Normative References 1622 [I-D.ietf-lime-yang-connectionless-oam] 1623 Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, 1624 "Generic YANG Data Model for Connectionless Operations, 1625 Administration, and Maintenance(OAM) protocols", draft- 1626 ietf-lime-yang-connectionless-oam-03 (work in progress), 1627 December 2016. 1629 [I-D.ietf-netconf-yang-push] 1630 Clemm, A., Voit, E., Prieto, A., Tripathy, A., Nilsen- 1631 Nygaard, E., Bierman, A., and B. Lengyel, "Subscribing to 1632 YANG datastore push updates", draft-ietf-netconf-yang- 1633 push-04 (work in progress), October 2016. 1635 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1636 Requirement Levels", BCP 14, RFC 2119, 1637 DOI 10.17487/RFC2119, March 1997, 1638 . 1640 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 1641 DOI 10.17487/RFC3688, January 2004, 1642 . 1644 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 1645 the Network Configuration Protocol (NETCONF)", RFC 6020, 1646 DOI 10.17487/RFC6020, October 2010, 1647 . 1649 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 1650 and A. Bierman, Ed., "Network Configuration Protocol 1651 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 1652 . 1654 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 1655 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 1656 . 1658 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 1659 Protocol (NETCONF) Access Control Model", RFC 6536, 1660 DOI 10.17487/RFC6536, March 2012, 1661 . 1663 [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, 1664 "Specification of the IP Flow Information Export (IPFIX) 1665 Protocol for the Exchange of Flow Information", STD 77, 1666 RFC 7011, DOI 10.17487/RFC7011, September 2013, 1667 . 1669 [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, 1670 September 1981. 1672 7.2. Informative References 1674 [RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol 1675 Label Switched (MPLS) Data Plane Failures", RFC 4379, 1676 DOI 10.17487/RFC4379, February 2006, 1677 . 1679 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 1680 Control Message Protocol (ICMPv6) for the Internet 1681 Protocol Version 6 (IPv6) Specification", RFC 4443, 1682 DOI 10.17487/RFC4443, March 2006, 1683 . 1685 [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection 1686 (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, 1687 . 1689 [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. 1690 Weingarten, "An Overview of Operations, Administration, 1691 and Maintenance (OAM) Tools", RFC 7276, 1692 DOI 10.17487/RFC7276, June 2014, 1693 . 1695 Authors' Addresses 1697 Deepak Kumar 1698 CISCO Systems 1699 510 McCarthy Blvd 1700 Milpitas, CA 95035 1701 USA 1703 Email: dekumar@cisco.com 1705 Michael Wang 1706 Huawei Technologies,Co.,Ltd 1707 101 Software Avenue, Yuhua District 1708 Nanjing 210012 1709 China 1711 Email: wangzitao@huawei.com 1712 Qin Wu 1713 Huawei 1714 101 Software Avenue, Yuhua District 1715 Nanjing, Jiangsu 210012 1716 China 1718 Email: bill.wu@huawei.com 1720 Reshad Rahman 1721 CISCO Systems 1722 2000 Innovation Drive 1723 KANATA, ONTARIO K2K 3E8 1724 CANADA 1726 Email: rrahman@cisco.com 1728 Srihari Raghavan 1729 CISCO Systems 1730 TRIL INFOPARK SEZ, Ramanujan IT City 1731 NEVILLE BLOCK, 2nd floor, Old Mahabalipuram Road 1732 CHENNAI, TAMIL NADU 600113 1733 INDIA 1735 Email: srihari@cisco.com