idnits 2.17.00 (12 Aug 2021) /tmp/idnits38883/draft-ietf-lime-yang-connectionless-oam-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 : ---------------------------------------------------------------------------- ** There are 39 instances of too long lines in the document, the longest one being 20 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 529 has weird spacing: '...ocation ine...' == Line 561 has weird spacing: '...w index uin...' == Line 566 has weird spacing: '...ocation ine...' == Line 598 has weird spacing: '...w index uin...' == Line 603 has weird spacing: '...ocation yan...' == (18 more instances...) == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (October 20, 2016) is 2038 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) == Missing Reference: 'RFC7276' is mentioned on line 338, but not defined == Missing Reference: 'RFC4443' is mentioned on line 102, but not defined == Missing Reference: 'RFC3688' is mentioned on line 3004, but not defined == Unused Reference: 'RFC6242' is defined on line 3053, but no explicit reference was found in the text == Outdated reference: draft-ietf-i2rs-yang-network-topo has been published as RFC 8345 == Outdated reference: A later version (-10) exists of draft-zheng-mpls-lsp-ping-yang-cfg-03 == Outdated reference: draft-ietf-bfd-yang has been published as RFC 9127 Summary: 1 error (**), 0 flaws (~~), 15 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group D. Kumar 3 Internet-Draft Cisco 4 Intended status: Standards Track M. Wang 5 Expires: April 23, 2017 Q. Wu 6 Huawei 7 R. Rahman 8 S. Raghavan 9 Cisco 10 October 20, 2016 12 Generic YANG Data Model for Connection Less Operations, Administration, 13 and Maintenance(OAM) protocols 14 draft-ietf-lime-yang-connectionless-oam-01 16 Abstract 18 This document presents a base YANG Data model for connectionless OAM 19 protocols. It provides a technology-independent abstraction of key 20 OAM constructs for connectionless protocols. The Based model 21 presented here can be extended to include technology specific 22 details. This is leading to uniformity between OAM protocols and 23 support nested OAM workflows (i.e., performing OAM functions at 24 different or same levels through a unified interface). 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at http://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on April 23, 2017. 43 Copyright Notice 45 Copyright (c) 2016 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2. Conventions used in this document . . . . . . . . . . . . . . 3 62 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 63 2.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 4 64 3. Overview of the Connectionless OAM Model . . . . . . . . . . 5 65 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 5 66 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 67 3.3. OAM-layers . . . . . . . . . . . . . . . . . . . . . . . 6 68 3.4. Test Point Locations Information . . . . . . . . . . . . 7 69 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 7 70 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 7 71 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 8 72 3.8. RPC definitions . . . . . . . . . . . . . . . . . . . . . 8 73 3.9. Relation with other OAM YANG Model . . . . . . . . . . . 11 74 3.10. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 11 75 4. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 28 76 5. CL model applicability . . . . . . . . . . . . . . . . . . . 59 77 5.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 59 78 5.1.1. technology type extension . . . . . . . . . . . . . . 59 79 5.1.2. test point attributes extension . . . . . . . . . . . 60 80 5.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 62 81 5.2.1. technology type extension . . . . . . . . . . . . . . 62 82 5.2.2. test point attributes extension . . . . . . . . . . . 63 83 6. Security Considerations . . . . . . . . . . . . . . . . . . . 64 84 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 64 85 8. Normative References . . . . . . . . . . . . . . . . . . . . 64 86 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 65 88 1. Introduction 90 Operations, Administration, and Maintenance (OAM) are important 91 networking functions that allow operators to: 93 1. Monitor networks connections (Reachability Verification, 94 Continuity Check). 96 2. Troubleshoot failures (Fault verification and localization). 98 3. Monitor Performance 100 An overview of OAM tools is presented at [RFC7276]. 102 Ping and Traceroute [RFC792], [RFC4443] are well-known fault 103 verification and isolation tools, respectively, for IP networks. 104 Over the years, different technologies have developed similar tools 105 for similar purposes. 107 In this document, we present two modules, one to represent the base 108 independent and stand-alone YANG data model for connectionless OAM 109 protocols and the other one focuses on data retrival procedures like 110 RPCs. The split module approach avoids mixing the models for the 111 retrieved-data from the retrieval procedures. It is expected that 112 retrieval procedures would evolve faster than the data model and will 113 allow new procedures to be defined for retrieval of the same data 114 defined by the base data model. This also allows the data model to 115 change at its own pace. 117 2. Conventions used in this document 119 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 120 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 121 document are to be interpreted as described in [RFC2119]. 123 The following terms are defined in [RFC6241] and are not redefined 124 here: 126 o client 128 o configuration data 130 o server 132 o state data 134 The following terms are defined in [RFC6020] and are not redefined 135 here: 137 o augment 139 o data model 141 o data node 142 The terminology for describing YANG data models is found in 143 [RFC6020]. 145 2.1. Terminology 147 TP - Test Point 149 MAC - Media Access Control 151 BFD - Bidirectional Forwarding Detection 153 TLV - Type Length Value 155 RPC - A Remote Procedure Call, as used within the NETCONF protocol 157 2.2. Tree Diagrams 159 A simplified graphical representation of the data model is used in 160 this document. The meaning of the symbols in these diagrams is as 161 follows: 163 Each node is printed as: 165 167 is one of: 168 + for current 169 x for deprecated 170 o for obsolete 172 is one of: 174 rw for configuration data 175 ro for non-configuration data 176 -x for rpcs 177 -n for notifications 179 is the name of the node 181 If the node is augmented into the tree from another module, its name 182 is printed as :. 184 is one of: 186 ? for an optional leaf or choice 187 ! for a presence container 188 * for a leaf-list or list 189 [] for a list's keys 191 is the name of the type for leafs and leaf-lists 193 3. Overview of the Connectionless OAM Model 195 At the top of the Model, there is an oper container for session 196 statistics. Grouping is also defined for common session statistics 197 and these are applicable for proactive OAM sessions. Multiple test- 198 point-locations keyed using technology specific keys (eg., IPv4 199 address for IPv4 locations) are possible by augmented network nodes 200 which are defined in [I-D.draft-ietf-i2rs-yang-network-topo] to 201 describe the network hierarchies and the inventory of nodes contained 202 in a network. Each test-point-location is chosen based on location- 203 type which when chosen, leads to a container that includes a list of 204 test-point-locations keyed by technology specific keys. Each test 205 point location includes a test-point-location-info. The test-point- 206 location-info includes tp-technology, tp-tools, and connectionless- 207 oam-layers. The groupings of tp-address and tp-address-vrf are kept 208 out of test-point-location-info to make it addressing agnostic and 209 allow varied composition. Depending upon the choice of the location- 210 type (determined by the tp-address-vrf), the containers differ in its 211 composition of test-point-locations while the test-point-location- 212 info, is a common aspect of every test-point-location. The vrf is 213 used to describe the corresponding network instance. The tp- 214 technology indicate oam technology details. The tp-tools describe 215 the oam tools supported. The connectionless-oam- layers is used to 216 describe the relationship of one test point with other test points. 217 The level in oam-layers indicate whether related oam test point is 218 client layer, server layer or same or stiched layer. The Model is 219 augmented to /nd:networks/nd:network/nd:node using Test Point 220 Locations defined below. 222 3.1. TP Address 224 In connectionless OAM, the tp address is defined with the following 225 type: 227 o MAC address 229 o IPv4 or IPv6 address 230 o a pair of source, destination addresses, and interface (Useful for 231 BFD) 233 o FEC 235 o System-id to represent the device or node. 237 3.2. Tools 239 In connectionless OAM, the tools attribute is used to describe a 240 toolset for fault detection and isolation, and for performance 241 measurement. And it can serve as a constraint condition when the 242 base model be extended to specific OAM technology. For example, to 243 fulfill the icmp ping configuration, the "../coam:tools-ip/ 244 coam:rfc792" should be set to "true", and then the lime base model 245 should be augmented with icmp ping specific details. 247 3.3. OAM-layers 249 As typical networks have a multi-layer architecture, the set of OAM 250 protocols similarly take a multi-layer structure; each layer has its 251 own OAM protocols [RFC7276] and is corresponding to specific network 252 portion or pathand has associated test points. OAM-layers is 253 referred to a list of upper layer, lower layer that are related to 254 current test point. This allow users to easily navigate up and down 255 to efficiently troubleshoot a connectivity issue at different layer. 256 In this model, we have kept level default as 0, when all test points 257 are located at the same layer. Level is provided for scenarios where 258 it might be possible to define layering relationship as it can be 259 used to stitching fault at related oam layers. For example, there is 260 a network in which data traffic between two customer edges is 261 transported over three consecutive network portions, the current test 262 point is located in the second network portion. If there is a defect 263 in the first network portion is located at the upstream of the second 264 network portion, the level of the first network portion is set to 265 "-1". If the third network portion is located at the downstream of 266 the second network portion and the level is set to "1". In another 267 case, if the first network portion and the third network portion is 268 in the same level of thesecond network portion, the level is set to 269 "0". The snippet below depicts an example of OAM layers. 271 list oam-layers { 272 key "index"; 273 leaf index { 274 type uint16 { 275 range "0..65535"; 276 } 277 } 278 leaf level { 279 type int32 { 280 range "-1..1"; 281 } 282 description 283 "Level"; 284 } 285 ordered-by user; 286 description 287 "list of related oam layers."; 288 } 290 3.4. Test Point Locations Information 292 This is a generic grouping for Test Point Locations Information. It 293 Provide details of Test Point Location using Tools, OAM-Layers 294 grouping defined above. 296 3.5. Test Point Locations 298 This is a generic grouping for Test Point Locations. Choice 299 statement is used to define locations types, for example ipv4- 300 location-type, ipv6-location-type, etc. Container is defined under 301 each location type containing list keyed to test point address, Test 302 Point Location Information defined in section above, and routing 303 instance vrf name if required. 305 3.6. Path Discovery Data 307 This is a generic grouping for path discovery data model that can be 308 retrieved by any data retrieval methods including RPCs. Path 309 discovery data output from methods, includes src-test-point, dst- 310 test-point, sequence-number, hop-cnt, session statistics of various 311 kinds,path verification and path trace related information. Path 312 discovery includes data to be retrieved on a per-hop basis via a list 313 of path-trace-info-list which includes information like timestamps, 314 ingress-interface, egress-interface and app-meta-data. The path 315 discovery data model is made generic enough to allow active, passive 316 and hybrid OAMs to do the retrieval. None of the fields are made 317 mandatory for that reason. 319 3.7. Continuity Check Data 321 This is a generic grouping for continuity check data model that can 322 be retrieved by any data retrieval methods including RPCs. 323 Continuity check data output from methods, includes src-test-point, 324 dst-test-point, sequence-number, hop-cnt and session statistics of 325 various kinds. The continuity check data model is made generic 326 enough to allow active, passive and hybrid OAMs to do the retrieval. 327 None of the fields are made mandatory for that reason. 329 3.8. RPC definitions 331 The rpc model facilitates issuing commands to a NETCONF server (in 332 this case to the device that need to execute the OAM command) and 333 obtaining a response. 335 Under connectionless-oam-methods module, we summarize the common OAM 336 functions and define the generic rpc commands: continuity-check and 337 path-discovery. In practice, these commands are supported by 338 corresponding technology-specific OAM tools [RFC7276]. For example, 339 for the IP OAM model, the continuity-check rpc corresponds to the IP 340 Ping, while the path-discovery rpc command corresponds to IP 341 Traceroute. 343 Note that the rpc command presented in this document is the base 344 building block, which is used to derive a model for a technology- 345 specific OAM(i.e., icmp ping, lsp ping), the base building block 346 should be extended with corresponding technology specific parameters. 347 To facilitate this and for future enhancements to data retrieval 348 methods, the RPCs are captured under a separate module. 350 The generic path-discovery-data and continuity-check-data are used as 351 data outputs from the different RPCs described in the document. 352 Similar methods including other RPCs can retrieve the data using the 353 same data model. 355 rpc continuity-check { 356 if-feature coam:continuity-check; 357 description 358 "Generates continuity-check as per RFC7276."; 359 input { 360 container destination-tp { 361 uses coam:tp-address; 362 description 363 "destination test point."; 364 } 365 uses coam:session-type; 366 leaf source-interface { 367 type if:interface-ref; 368 description 369 "source interface."; 370 } 371 leaf outbound-interface { 372 type if:interface-ref; 374 description 375 "outbound interface."; 376 } 377 leaf count { 378 type uint32; 379 default "5"; 380 description 381 "Specifies the number of packets that will be sent."; 382 } 383 leaf vrf { 384 type coam:routing-instance-ref; 385 description 386 "vrf instance."; 387 } 388 leaf ttl { 389 type uint8; 390 default "255"; 391 description 392 "Time to live (TTL)."; 393 } 394 leaf packet-size { 395 type uint32 { 396 range "64..10000"; 397 } 398 default "64"; 399 description 400 "Size of ping echo request packets, in octets"; 401 } 402 } 403 output { 404 list error-code-list { 405 key "response-index"; 406 leaf response-index { 407 type uint32; 408 description 409 "response index."; 410 } 411 leaf status-code { 412 type int32; 413 description 414 "error code is "; 416 } 417 leaf status-sub-code { 418 type uint8; 419 description 420 "sub code."; 421 } 422 description 423 "error code list."; 424 } 426 uses coam:continuity-check-data; 427 } 428 } 430 rpc path-discovery { 431 description 432 "Generates path discovery as per RFC7276."; 433 input { 434 container destination-tp { 435 uses coam:tp-address; 436 description 437 "destination test point."; 438 } 439 uses coam:session-type; 440 leaf source-interface { 441 type if:interface-ref; 442 description 443 "source interface."; 444 } 445 leaf outbound-interface { 446 type if:interface-ref; 447 description 448 "outbound interface."; 449 } 450 leaf vrf { 451 type coam:routing-instance-ref; 452 description 453 "vrf"; 454 } 455 leaf max-ttl { 456 type uint8; 457 default "255"; 458 description 459 "max ttl."; 460 } 461 } 462 output { 463 list response-list { 464 key "response-index"; 465 description 466 "path discovery response list."; 467 leaf response-index { 468 type uint32; 469 description 470 "response index."; 471 } 472 leaf status-code { 473 type int32; 474 description 475 "error code is "; 476 } 477 leaf status-sub-code { 478 type uint8; 480 description 481 "sub code is "; 482 } 483 } 485 uses coam:path-discovery-data; 486 } 487 } 489 Snippet of data hierarchy related to rpc calls 491 3.9. Relation with other OAM YANG Model 493 In this document we define a generic YANG data model for 494 connectionless OAM protocols. The other model defined adds generic 495 data-retrieval methods. The YANG data model defined here is generic 496 such that other technologies can extend it for technology specific 497 needs. The Generic YANG model acts as the root for other OAM YANG 498 models. This allows users to traverse between different OAM 499 protocols at ease through a uniform API set. The Generic YANG model 500 for OAM provides a framework where technology- specific YANG models 501 can choose to inherit constructs from the base YANG models without 502 needing to redefine them within the sub-technology. 504 3.10. OAM data hierarchy 506 The complete data hierarchy related to the OAM YANG model is 507 presented below. 509 module: ietf-connectionless-oam 510 +--ro oper {continuity-check}? 511 +--ro cc-ipv4-sessions-statistics 512 | +--ro cc-session-statistics 513 | +--ro session-count? uint32 514 | +--ro session-up-count? uint32 515 | +--ro session-down-count? uint32 516 | +--ro session-admin-down-count? uint32 517 +--ro cc-ipv6-sessions-statistics 518 +--ro cc-session-statistics 519 +--ro session-count? uint32 520 +--ro session-up-count? uint32 521 +--ro session-down-count? uint32 522 +--ro session-admin-down-count? uint32 523 augment /nd:networks/nd:network/nd:node: 524 +--rw tp-address-type-value? identityref 525 +--rw (location-type)? 526 +--:(ipv4-location-type) 527 | +--rw test-point-ipv4-location-list 528 | +--rw test-point-locations* [ipv4-location] 529 | +--rw ipv4-location inet:ipv4-address 530 | +--rw vrf? routing-instance-ref 531 | +--rw (technology)? 532 | | +--:(technology-null) 533 | | | +--rw tech-null? empty 534 | | +--:(technology-string) 535 | | +--rw ipv4-icmp? string 536 | +--ro (tools)? 537 | | +--:(tools-empty) 538 | | | +--ro tools-null? empty 539 | | +--:(tools-ip) 540 | | | +--ro rfc792? boolean 541 | | | +--ro rfc4443? boolean 542 | | | +--ro rfc4884? boolean 543 | | | +--ro rfc5837? boolean 544 | | +--:(tools-bfd) 545 | | | +--ro rfc5881? boolean 546 | | | +--ro rfc5883? boolean 547 | | | +--ro rfc5884? boolean 548 | | | +--ro rfc5885? boolean 549 | | +--:(tools-mpls) 550 | | | +--ro rfc4379? boolean 551 | | | +--ro rfc4687? boolean 552 | | | +--ro rfc4950? boolean 553 | | | +--ro mpls-rfc5884? boolean 554 | | +--:(tools-pw) 555 | | +--ro rfc5085? boolean 556 | | +--ro pw_rfc5885? boolean 557 | | +--ro rfc6423? boolean 558 | | +--ro rfc6310? boolean 559 | | +--ro rfc7023? boolean 560 | +--rw oam-layers* [index] 561 | +--rw index uint16 562 | +--rw level? int32 563 +--:(ipv6-location-type) 564 | +--rw test-point-ipv6-location-list 565 | +--rw test-point-locations* [ipv6-location] 566 | +--rw ipv6-location inet:ipv6-address 567 | +--rw vrf? routing-instance-ref 568 | +--rw (technology)? 569 | | +--:(technology-null) 570 | | | +--rw tech-null? empty 571 | | +--:(technology-string) 572 | | +--rw ipv4-icmp? string 573 | +--ro (tools)? 574 | | +--:(tools-empty) 575 | | | +--ro tools-null? empty 576 | | +--:(tools-ip) 577 | | | +--ro rfc792? boolean 578 | | | +--ro rfc4443? boolean 579 | | | +--ro rfc4884? boolean 580 | | | +--ro rfc5837? boolean 581 | | +--:(tools-bfd) 582 | | | +--ro rfc5881? boolean 583 | | | +--ro rfc5883? boolean 584 | | | +--ro rfc5884? boolean 585 | | | +--ro rfc5885? boolean 586 | | +--:(tools-mpls) 587 | | | +--ro rfc4379? boolean 588 | | | +--ro rfc4687? boolean 589 | | | +--ro rfc4950? boolean 590 | | | +--ro mpls-rfc5884? boolean 591 | | +--:(tools-pw) 592 | | +--ro rfc5085? boolean 593 | | +--ro pw_rfc5885? boolean 594 | | +--ro rfc6423? boolean 595 | | +--ro rfc6310? boolean 596 | | +--ro rfc7023? boolean 597 | +--rw oam-layers* [index] 598 | +--rw index uint16 599 | +--rw level? int32 600 +--:(mac-location-type) 601 | +--rw test-point-mac-address-location-list 602 | +--rw test-point-locations* [mac-address-location] 603 | +--rw mac-address-location yang:mac-address 604 | +--rw (technology)? 605 | | +--:(technology-null) 606 | | | +--rw tech-null? empty 607 | | +--:(technology-string) 608 | | +--rw ipv4-icmp? string 609 | +--ro (tools)? 610 | | +--:(tools-empty) 611 | | | +--ro tools-null? empty 612 | | +--:(tools-ip) 613 | | | +--ro rfc792? boolean 614 | | | +--ro rfc4443? boolean 615 | | | +--ro rfc4884? boolean 616 | | | +--ro rfc5837? boolean 617 | | +--:(tools-bfd) 618 | | | +--ro rfc5881? boolean 619 | | | +--ro rfc5883? boolean 620 | | | +--ro rfc5884? boolean 621 | | | +--ro rfc5885? boolean 622 | | +--:(tools-mpls) 623 | | | +--ro rfc4379? boolean 624 | | | +--ro rfc4687? boolean 625 | | | +--ro rfc4950? boolean 626 | | | +--ro mpls-rfc5884? boolean 627 | | +--:(tools-pw) 628 | | +--ro rfc5085? boolean 629 | | +--ro pw_rfc5885? boolean 630 | | +--ro rfc6423? boolean 631 | | +--ro rfc6310? boolean 632 | | +--ro rfc7023? boolean 633 | +--rw oam-layers* [index] 634 | +--rw index uint16 635 | +--rw level? int32 636 +--:(tunnel-location-type) 637 | +--rw test-point-tunnel-address-location-list 638 | +--rw test-point-locations* [tunnel-location] 639 | +--rw tunnel-location uint32 640 | +--rw vrf? routing-instance-ref 641 | +--rw (technology)? 642 | | +--:(technology-null) 643 | | | +--rw tech-null? empty 644 | | +--:(technology-string) 645 | | +--rw ipv4-icmp? string 646 | +--ro (tools)? 647 | | +--:(tools-empty) 648 | | | +--ro tools-null? empty 649 | | +--:(tools-ip) 650 | | | +--ro rfc792? boolean 651 | | | +--ro rfc4443? boolean 652 | | | +--ro rfc4884? boolean 653 | | | +--ro rfc5837? boolean 654 | | +--:(tools-bfd) 655 | | | +--ro rfc5881? boolean 656 | | | +--ro rfc5883? boolean 657 | | | +--ro rfc5884? boolean 658 | | | +--ro rfc5885? boolean 659 | | +--:(tools-mpls) 660 | | | +--ro rfc4379? boolean 661 | | | +--ro rfc4687? boolean 662 | | | +--ro rfc4950? boolean 663 | | | +--ro mpls-rfc5884? boolean 664 | | +--:(tools-pw) 665 | | +--ro rfc5085? boolean 666 | | +--ro pw_rfc5885? boolean 667 | | +--ro rfc6423? boolean 668 | | +--ro rfc6310? boolean 669 | | +--ro rfc7023? boolean 670 | +--rw oam-layers* [index] 671 | +--rw index uint16 672 | +--rw level? int32 673 +--:(ip-prefix-location-type) 674 | +--rw test-point-ip-prefix-location-list 675 | +--rw test-point-locations* [ip-prefix-location] 676 | +--rw ip-prefix-location inet:ip-prefix 677 | +--rw vrf? routing-instance-ref 678 | +--rw (technology)? 679 | | +--:(technology-null) 680 | | | +--rw tech-null? empty 681 | | +--:(technology-string) 682 | | +--rw ipv4-icmp? string 683 | +--ro (tools)? 684 | | +--:(tools-empty) 685 | | | +--ro tools-null? empty 686 | | +--:(tools-ip) 687 | | | +--ro rfc792? boolean 688 | | | +--ro rfc4443? boolean 689 | | | +--ro rfc4884? boolean 690 | | | +--ro rfc5837? boolean 691 | | +--:(tools-bfd) 692 | | | +--ro rfc5881? boolean 693 | | | +--ro rfc5883? boolean 694 | | | +--ro rfc5884? boolean 695 | | | +--ro rfc5885? boolean 696 | | +--:(tools-mpls) 697 | | | +--ro rfc4379? boolean 698 | | | +--ro rfc4687? boolean 699 | | | +--ro rfc4950? boolean 700 | | | +--ro mpls-rfc5884? boolean 701 | | +--:(tools-pw) 702 | | +--ro rfc5085? boolean 703 | | +--ro pw_rfc5885? boolean 704 | | +--ro rfc6423? boolean 705 | | +--ro rfc6310? boolean 706 | | +--ro rfc7023? boolean 707 | +--rw oam-layers* [index] 708 | +--rw index uint16 709 | +--rw level? int32 710 +--:(route-distinguisher-location-type) 711 | +--rw test-point-route-dist-location-list 712 | +--rw test-point-locations* [route-dist-location] 713 | +--rw route-dist-location uint32 714 | +--rw vrf? routing-instance-ref 715 | +--rw (technology)? 716 | | +--:(technology-null) 717 | | | +--rw tech-null? empty 718 | | +--:(technology-string) 719 | | +--rw ipv4-icmp? string 720 | +--ro (tools)? 721 | | +--:(tools-empty) 722 | | | +--ro tools-null? empty 723 | | +--:(tools-ip) 724 | | | +--ro rfc792? boolean 725 | | | +--ro rfc4443? boolean 726 | | | +--ro rfc4884? boolean 727 | | | +--ro rfc5837? boolean 728 | | +--:(tools-bfd) 729 | | | +--ro rfc5881? boolean 730 | | | +--ro rfc5883? boolean 731 | | | +--ro rfc5884? boolean 732 | | | +--ro rfc5885? boolean 733 | | +--:(tools-mpls) 734 | | | +--ro rfc4379? boolean 735 | | | +--ro rfc4687? boolean 736 | | | +--ro rfc4950? boolean 737 | | | +--ro mpls-rfc5884? boolean 738 | | +--:(tools-pw) 739 | | +--ro rfc5085? boolean 740 | | +--ro pw_rfc5885? boolean 741 | | +--ro rfc6423? boolean 742 | | +--ro rfc6310? boolean 743 | | +--ro rfc7023? boolean 744 | +--rw oam-layers* [index] 745 | +--rw index uint16 746 | +--rw level? int32 747 +--:(group-ip-address-location-type) 748 | +--rw test-point-group-ip-address-location-list 749 | +--rw test-point-locations* [group-ip-address-location] 750 | +--rw group-ip-address-location IP-Multicast-Group-Address 751 | +--rw vrf? routing-instance-ref 752 | +--rw (technology)? 753 | | +--:(technology-null) 754 | | | +--rw tech-null? empty 755 | | +--:(technology-string) 756 | | +--rw ipv4-icmp? string 757 | +--ro (tools)? 758 | | +--:(tools-empty) 759 | | | +--ro tools-null? empty 760 | | +--:(tools-ip) 761 | | | +--ro rfc792? boolean 762 | | | +--ro rfc4443? boolean 763 | | | +--ro rfc4884? boolean 764 | | | +--ro rfc5837? boolean 765 | | +--:(tools-bfd) 766 | | | +--ro rfc5881? boolean 767 | | | +--ro rfc5883? boolean 768 | | | +--ro rfc5884? boolean 769 | | | +--ro rfc5885? boolean 770 | | +--:(tools-mpls) 771 | | | +--ro rfc4379? boolean 772 | | | +--ro rfc4687? boolean 773 | | | +--ro rfc4950? boolean 774 | | | +--ro mpls-rfc5884? boolean 775 | | +--:(tools-pw) 776 | | +--ro rfc5085? boolean 777 | | +--ro pw_rfc5885? boolean 778 | | +--ro rfc6423? boolean 779 | | +--ro rfc6310? boolean 780 | | +--ro rfc7023? boolean 781 | +--rw oam-layers* [index] 782 | +--rw index uint16 783 | +--rw level? int32 784 +--:(group-as-number-location-type) 785 | +--rw test-point-as-number-location-list 786 | +--rw test-point-locations* [as-number-location] 787 | +--rw as-number-location inet:as-number 788 | +--rw vrf? routing-instance-ref 789 | +--rw (technology)? 790 | | +--:(technology-null) 791 | | | +--rw tech-null? empty 792 | | +--:(technology-string) 793 | | +--rw ipv4-icmp? string 794 | +--ro (tools)? 795 | | +--:(tools-empty) 796 | | | +--ro tools-null? empty 797 | | +--:(tools-ip) 798 | | | +--ro rfc792? boolean 799 | | | +--ro rfc4443? boolean 800 | | | +--ro rfc4884? boolean 801 | | | +--ro rfc5837? boolean 802 | | +--:(tools-bfd) 803 | | | +--ro rfc5881? boolean 804 | | | +--ro rfc5883? boolean 805 | | | +--ro rfc5884? boolean 806 | | | +--ro rfc5885? boolean 807 | | +--:(tools-mpls) 808 | | | +--ro rfc4379? boolean 809 | | | +--ro rfc4687? boolean 810 | | | +--ro rfc4950? boolean 811 | | | +--ro mpls-rfc5884? boolean 812 | | +--:(tools-pw) 813 | | +--ro rfc5085? boolean 814 | | +--ro pw_rfc5885? boolean 815 | | +--ro rfc6423? boolean 816 | | +--ro rfc6310? boolean 817 | | +--ro rfc7023? boolean 818 | +--rw oam-layers* [index] 819 | +--rw index uint16 820 | +--rw level? int32 821 +--:(group-lsp-id-location-type) 822 | +--rw test-point-lsp-id-location-list 823 | +--rw test-point-locations* [lsp-id-location] 824 | +--rw lsp-id-location string 825 | +--rw vrf? routing-instance-ref 826 | +--rw (technology)? 827 | | +--:(technology-null) 828 | | | +--rw tech-null? empty 829 | | +--:(technology-string) 830 | | +--rw ipv4-icmp? string 831 | +--ro (tools)? 832 | | +--:(tools-empty) 833 | | | +--ro tools-null? empty 834 | | +--:(tools-ip) 835 | | | +--ro rfc792? boolean 836 | | | +--ro rfc4443? boolean 837 | | | +--ro rfc4884? boolean 838 | | | +--ro rfc5837? boolean 839 | | +--:(tools-bfd) 840 | | | +--ro rfc5881? boolean 841 | | | +--ro rfc5883? boolean 842 | | | +--ro rfc5884? boolean 843 | | | +--ro rfc5885? boolean 844 | | +--:(tools-mpls) 845 | | | +--ro rfc4379? boolean 846 | | | +--ro rfc4687? boolean 847 | | | +--ro rfc4950? boolean 848 | | | +--ro mpls-rfc5884? boolean 849 | | +--:(tools-pw) 850 | | +--ro rfc5085? boolean 851 | | +--ro pw_rfc5885? boolean 852 | | +--ro rfc6423? boolean 853 | | +--ro rfc6310? boolean 854 | | +--ro rfc7023? boolean 855 | +--rw oam-layers* [index] 856 | +--rw index uint16 857 | +--rw level? int32 858 +--:(group-system-id-location-type) 859 +--rw test-point-system-info-location-list 860 +--rw test-point-locations* [system-id-location] 861 +--rw system-id-location inet:uri 862 +--rw vrf? routing-instance-ref 863 +--rw (technology)? 864 | +--:(technology-null) 865 | | +--rw tech-null? empty 866 | +--:(technology-string) 867 | +--rw ipv4-icmp? string 868 +--ro (tools)? 869 | +--:(tools-empty) 870 | | +--ro tools-null? empty 871 | +--:(tools-ip) 872 | | +--ro rfc792? boolean 873 | | +--ro rfc4443? boolean 874 | | +--ro rfc4884? boolean 875 | | +--ro rfc5837? boolean 876 | +--:(tools-bfd) 877 | | +--ro rfc5881? boolean 878 | | +--ro rfc5883? boolean 879 | | +--ro rfc5884? boolean 880 | | +--ro rfc5885? boolean 881 | +--:(tools-mpls) 882 | | +--ro rfc4379? boolean 883 | | +--ro rfc4687? boolean 884 | | +--ro rfc4950? boolean 885 | | +--ro mpls-rfc5884? boolean 886 | +--:(tools-pw) 887 | +--ro rfc5085? boolean 888 | +--ro pw_rfc5885? boolean 889 | +--ro rfc6423? boolean 890 | +--ro rfc6310? boolean 891 | +--ro rfc7023? boolean 892 +--rw oam-layers* [index] 893 +--rw index uint16 894 +--rw level? int32 896 module: ietf-connectionless-oam-methods 897 rpcs: 898 +---x continuity-check {coam:continuity-check}? 899 | +---w input 900 | | +---w destination-tp 901 | | | +---w tp-address-type-value? identityref 902 | | | +---w (tp-address)? 903 | | | +--:(mac-address) 904 | | | | +---w mac-address? yang:mac-address 905 | | | +--:(ipv4-address) 906 | | | | +---w ipv4-address? inet:ipv4-address 907 | | | +--:(ipv6-address) 908 | | | | +---w ipv6-address? inet:ipv6-address 909 | | | +--:(src-dst-address) 910 | | | | +---w src-ip-address? inet:ip-address 911 | | | | +---w dst-ip-address? inet:ip-address 912 | | | | +---w Interface? if:interface-ref 913 | | | +--:(fec) 914 | | | | +---w fec-type? fec-type 915 | | | | +---w (fec-value)? 916 | | | | +--:(ip-prefix) 917 | | | | | +---w ip-prefix? inet:ip-prefix 918 | | | | +--:(bgp) 919 | | | | | +---w bgp? inet:ip-prefix 920 | | | | +--:(tunnel) 921 | | | | | +---w tunnel-interface? uint32 922 | | | | +--:(pw) 923 | | | | | +---w remote-pe-address? inet:ip-address 924 | | | | | +---w pw-id? uint32 925 | | | | +--:(vpls) 926 | | | | | +---w route-distinguisher? uint32 927 | | | | | +---w sender-ve-id? uint32 928 | | | | | +---w receiver-ve-id? uint32 929 | | | | +--:(mpls-mldp) 930 | | | | +---w (root-address)? 931 | | | | +--:(ip-address) 932 | | | | | +---w source-address? inet:ip-address 933 | | | | | +---w group-ip-address? IP-Multicast-Group-Address 934 | | | | +--:(vpn) 935 | | | | | +---w as-number? inet:as-number 936 | | | | +--:(global-id) 937 | | | | +---w lsp-id? string 938 | | | +--:(tlv-address) 939 | | | | +---w tlv-type? int16 940 | | | | +---w tlv-len? int16 941 | | | | +---w tlv-value? binary 942 | | | +--:(system-info) 943 | | | +---w system-id? inet:uri 944 | | +---w session-type-enum? enumeration 945 | | +---w source-interface? if:interface-ref 946 | | +---w outbound-interface? if:interface-ref 947 | | +---w count? uint32 948 | | +---w vrf? coam:routing-instance-ref 949 | | +---w ttl? uint8 950 | | +---w packet-size? uint32 951 | +--ro output 952 | +--ro error-code-list* [response-index] 953 | | +--ro response-index uint32 954 | | +--ro status-code? int32 955 | | +--ro status-sub-code? uint8 956 | +--ro src-test-point 957 | | +--ro vrf? routing-instance-ref 958 | | +--ro tp-address-type-value? identityref 959 | | +--ro (tp-address)? 960 | | | +--:(mac-address) 961 | | | | +--ro mac-address? yang:mac-address 962 | | | +--:(ipv4-address) 963 | | | | +--ro ipv4-address? inet:ipv4-address 964 | | | +--:(ipv6-address) 965 | | | | +--ro ipv6-address? inet:ipv6-address 966 | | | +--:(src-dst-address) 967 | | | | +--ro src-ip-address? inet:ip-address 968 | | | | +--ro dst-ip-address? inet:ip-address 969 | | | | +--ro Interface? if:interface-ref 970 | | | +--:(fec) 971 | | | | +--ro fec-type? fec-type 972 | | | | +--ro (fec-value)? 973 | | | | +--:(ip-prefix) 974 | | | | | +--ro ip-prefix? inet:ip-prefix 975 | | | | +--:(bgp) 976 | | | | | +--ro bgp? inet:ip-prefix 977 | | | | +--:(tunnel) 978 | | | | | +--ro tunnel-interface? uint32 979 | | | | +--:(pw) 980 | | | | | +--ro remote-pe-address? inet:ip-address 981 | | | | | +--ro pw-id? uint32 982 | | | | +--:(vpls) 983 | | | | | +--ro route-distinguisher? uint32 984 | | | | | +--ro sender-ve-id? uint32 985 | | | | | +--ro receiver-ve-id? uint32 986 | | | | +--:(mpls-mldp) 987 | | | | +--ro (root-address)? 988 | | | | +--:(ip-address) 989 | | | | | +--ro source-address? inet:ip-address 990 | | | | | +--ro group-ip-address? IP-Multicast-Group-Address 991 | | | | +--:(vpn) 992 | | | | | +--ro as-number? inet:as-number 993 | | | | +--:(global-id) 994 | | | | +--ro lsp-id? string 995 | | | +--:(tlv-address) 996 | | | | +--ro tlv-type? int16 997 | | | | +--ro tlv-len? int16 998 | | | | +--ro tlv-value? binary 999 | | | +--:(system-info) 1000 | | | +--ro system-id? inet:uri 1001 | | +--ro egress-intf-name? if:interface-ref 1002 | +--ro dest-test-point 1003 | | +--ro vrf? routing-instance-ref 1004 | | +--ro tp-address-type-value? identityref 1005 | | +--ro (tp-address)? 1006 | | | +--:(mac-address) 1007 | | | | +--ro mac-address? yang:mac-address 1008 | | | +--:(ipv4-address) 1009 | | | | +--ro ipv4-address? inet:ipv4-address 1010 | | | +--:(ipv6-address) 1011 | | | | +--ro ipv6-address? inet:ipv6-address 1012 | | | +--:(src-dst-address) 1013 | | | | +--ro src-ip-address? inet:ip-address 1014 | | | | +--ro dst-ip-address? inet:ip-address 1015 | | | | +--ro Interface? if:interface-ref 1016 | | | +--:(fec) 1017 | | | | +--ro fec-type? fec-type 1018 | | | | +--ro (fec-value)? 1019 | | | | +--:(ip-prefix) 1020 | | | | | +--ro ip-prefix? inet:ip-prefix 1021 | | | | +--:(bgp) 1022 | | | | | +--ro bgp? inet:ip-prefix 1023 | | | | +--:(tunnel) 1024 | | | | | +--ro tunnel-interface? uint32 1025 | | | | +--:(pw) 1026 | | | | | +--ro remote-pe-address? inet:ip-address 1027 | | | | | +--ro pw-id? uint32 1028 | | | | +--:(vpls) 1029 | | | | | +--ro route-distinguisher? uint32 1030 | | | | | +--ro sender-ve-id? uint32 1031 | | | | | +--ro receiver-ve-id? uint32 1032 | | | | +--:(mpls-mldp) 1033 | | | | +--ro (root-address)? 1034 | | | | +--:(ip-address) 1035 | | | | | +--ro source-address? inet:ip-address 1036 | | | | | +--ro group-ip-address? IP-Multicast-Group-Address 1037 | | | | +--:(vpn) 1038 | | | | | +--ro as-number? inet:as-number 1039 | | | | +--:(global-id) 1040 | | | | +--ro lsp-id? string 1041 | | | +--:(tlv-address) 1042 | | | | +--ro tlv-type? int16 1043 | | | | +--ro tlv-len? int16 1044 | | | | +--ro tlv-value? binary 1045 | | | +--:(system-info) 1046 | | | +--ro system-id? inet:uri 1047 | | +--ro ingress-intf-name? if:interface-ref 1048 | +--ro sequence-number? uint64 1049 | +--ro hop-cnt? uint8 1050 | +--ro session-packet-statistics 1051 | | +--ro rx-packet-count? uint32 1052 | | +--ro tx-packet-count? uint32 1053 | | +--ro rx-bad-packet? uint32 1054 | | +--ro tx-packet-failed? uint32 1055 | +--ro session-error-statistics 1056 | | +--ro packet-drops-count? uint32 1057 | | +--ro packet-reorder-count? uint32 1058 | | +--ro packets-out-of-seq-count? uint32 1059 | | +--ro packets-dup-count? uint32 1060 | +--ro session-delay-statistics 1061 | | +--ro time-resolution-value? identityref 1062 | | +--ro min-delay-value? uint32 1063 | | +--ro max-delay-value? uint32 1064 | | +--ro average-delay-value? uint32 1065 | +--ro session-jitter-statistics 1066 | +--ro time-resolution-value? identityref 1067 | +--ro min-jitter-value? uint32 1068 | +--ro max-jitter-value? uint32 1069 | +--ro average-jitter-value? uint32 1070 +---x path-discovery 1071 +---w input 1072 | +---w destination-tp 1073 | | +---w tp-address-type-value? identityref 1074 | | +---w (tp-address)? 1075 | | +--:(mac-address) 1076 | | | +---w mac-address? yang:mac-address 1077 | | +--:(ipv4-address) 1078 | | | +---w ipv4-address? inet:ipv4-address 1079 | | +--:(ipv6-address) 1080 | | | +---w ipv6-address? inet:ipv6-address 1081 | | +--:(src-dst-address) 1082 | | | +---w src-ip-address? inet:ip-address 1083 | | | +---w dst-ip-address? inet:ip-address 1084 | | | +---w Interface? if:interface-ref 1085 | | +--:(fec) 1086 | | | +---w fec-type? fec-type 1087 | | | +---w (fec-value)? 1088 | | | +--:(ip-prefix) 1089 | | | | +---w ip-prefix? inet:ip-prefix 1090 | | | +--:(bgp) 1091 | | | | +---w bgp? inet:ip-prefix 1092 | | | +--:(tunnel) 1093 | | | | +---w tunnel-interface? uint32 1094 | | | +--:(pw) 1095 | | | | +---w remote-pe-address? inet:ip-address 1096 | | | | +---w pw-id? uint32 1097 | | | +--:(vpls) 1098 | | | | +---w route-distinguisher? uint32 1099 | | | | +---w sender-ve-id? uint32 1100 | | | | +---w receiver-ve-id? uint32 1101 | | | +--:(mpls-mldp) 1102 | | | +---w (root-address)? 1103 | | | +--:(ip-address) 1104 | | | | +---w source-address? inet:ip-address 1105 | | | | +---w group-ip-address? IP-Multicast-Group-Address 1106 | | | +--:(vpn) 1107 | | | | +---w as-number? inet:as-number 1108 | | | +--:(global-id) 1109 | | | +---w lsp-id? string 1110 | | +--:(tlv-address) 1111 | | | +---w tlv-type? int16 1112 | | | +---w tlv-len? int16 1113 | | | +---w tlv-value? binary 1114 | | +--:(system-info) 1115 | | +---w system-id? inet:uri 1116 | +---w session-type-enum? enumeration 1117 | +---w source-interface? if:interface-ref 1118 | +---w outbound-interface? if:interface-ref 1119 | +---w vrf? coam:routing-instance-ref 1120 | +---w max-ttl? uint8 1121 +--ro output 1122 +--ro response-list* [response-index] 1123 | +--ro response-index uint32 1124 | +--ro status-code? int32 1125 | +--ro status-sub-code? uint8 1126 +--ro src-test-point 1127 | +--ro vrf? routing-instance-ref 1128 | +--ro tp-address-type-value? identityref 1129 | +--ro (tp-address)? 1130 | +--:(mac-address) 1131 | | +--ro mac-address? yang:mac-address 1132 | +--:(ipv4-address) 1133 | | +--ro ipv4-address? inet:ipv4-address 1134 | +--:(ipv6-address) 1135 | | +--ro ipv6-address? inet:ipv6-address 1136 | +--:(src-dst-address) 1137 | | +--ro src-ip-address? inet:ip-address 1138 | | +--ro dst-ip-address? inet:ip-address 1139 | | +--ro Interface? if:interface-ref 1140 | +--:(fec) 1141 | | +--ro fec-type? fec-type 1142 | | +--ro (fec-value)? 1143 | | +--:(ip-prefix) 1144 | | | +--ro ip-prefix? inet:ip-prefix 1145 | | +--:(bgp) 1146 | | | +--ro bgp? inet:ip-prefix 1147 | | +--:(tunnel) 1148 | | | +--ro tunnel-interface? uint32 1149 | | +--:(pw) 1150 | | | +--ro remote-pe-address? inet:ip-address 1151 | | | +--ro pw-id? uint32 1152 | | +--:(vpls) 1153 | | | +--ro route-distinguisher? uint32 1154 | | | +--ro sender-ve-id? uint32 1155 | | | +--ro receiver-ve-id? uint32 1156 | | +--:(mpls-mldp) 1157 | | +--ro (root-address)? 1158 | | +--:(ip-address) 1159 | | | +--ro source-address? inet:ip-address 1160 | | | +--ro group-ip-address? IP-Multicast-Group-Address 1161 | | +--:(vpn) 1162 | | | +--ro as-number? inet:as-number 1163 | | +--:(global-id) 1164 | | +--ro lsp-id? string 1165 | +--:(tlv-address) 1166 | | +--ro tlv-type? int16 1167 | | +--ro tlv-len? int16 1168 | | +--ro tlv-value? binary 1169 | +--:(system-info) 1170 | +--ro system-id? inet:uri 1171 +--ro dest-test-point 1172 | +--ro vrf? routing-instance-ref 1173 | +--ro tp-address-type-value? identityref 1174 | +--ro (tp-address)? 1175 | +--:(mac-address) 1176 | | +--ro mac-address? yang:mac-address 1177 | +--:(ipv4-address) 1178 | | +--ro ipv4-address? inet:ipv4-address 1179 | +--:(ipv6-address) 1180 | | +--ro ipv6-address? inet:ipv6-address 1181 | +--:(src-dst-address) 1182 | | +--ro src-ip-address? inet:ip-address 1183 | | +--ro dst-ip-address? inet:ip-address 1184 | | +--ro Interface? if:interface-ref 1185 | +--:(fec) 1186 | | +--ro fec-type? fec-type 1187 | | +--ro (fec-value)? 1188 | | +--:(ip-prefix) 1189 | | | +--ro ip-prefix? inet:ip-prefix 1190 | | +--:(bgp) 1191 | | | +--ro bgp? inet:ip-prefix 1192 | | +--:(tunnel) 1193 | | | +--ro tunnel-interface? uint32 1194 | | +--:(pw) 1195 | | | +--ro remote-pe-address? inet:ip-address 1196 | | | +--ro pw-id? uint32 1197 | | +--:(vpls) 1198 | | | +--ro route-distinguisher? uint32 1199 | | | +--ro sender-ve-id? uint32 1200 | | | +--ro receiver-ve-id? uint32 1201 | | +--:(mpls-mldp) 1202 | | +--ro (root-address)? 1203 | | +--:(ip-address) 1204 | | | +--ro source-address? inet:ip-address 1205 | | | +--ro group-ip-address? IP-Multicast-Group-Address 1206 | | +--:(vpn) 1207 | | | +--ro as-number? inet:as-number 1208 | | +--:(global-id) 1209 | | +--ro lsp-id? string 1210 | +--:(tlv-address) 1211 | | +--ro tlv-type? int16 1212 | | +--ro tlv-len? int16 1213 | | +--ro tlv-value? binary 1214 | +--:(system-info) 1215 | +--ro system-id? inet:uri 1216 +--ro sequence-number? uint64 1217 +--ro hop-cnt? uint8 1218 +--ro session-packet-statistics 1219 | +--ro rx-packet-count? uint32 1220 | +--ro tx-packet-count? uint32 1221 | +--ro rx-bad-packet? uint32 1222 | +--ro tx-packet-failed? uint32 1223 +--ro session-error-statistics 1224 | +--ro packet-drops-count? uint32 1225 | +--ro packet-reorder-count? uint32 1226 | +--ro packets-out-of-seq-count? uint32 1227 | +--ro packets-dup-count? uint32 1228 +--ro session-delay-statistics 1229 | +--ro time-resolution-value? identityref 1230 | +--ro min-delay-value? uint32 1231 | +--ro max-delay-value? uint32 1232 | +--ro average-delay-value? uint32 1233 +--ro session-jitter-statistics 1234 | +--ro time-resolution-value? identityref 1235 | +--ro min-jitter-value? uint32 1236 | +--ro max-jitter-value? uint32 1237 | +--ro average-jitter-value? uint32 1238 +--ro path-verification 1239 | +--ro flow-info? string 1240 | +--ro session-path-verification-statistics 1241 | +--ro verified-count? uint32 1242 | +--ro failed-count? uint32 1243 +--ro path-trace-info 1244 +--ro path-trace-info-list* [index] 1245 +--ro index uint32 1246 +--ro vrf? routing-instance-ref 1247 +--ro tp-address-type-value? identityref 1248 +--ro (tp-address)? 1249 | +--:(mac-address) 1250 | | +--ro mac-address? yang:mac-address 1251 | +--:(ipv4-address) 1252 | | +--ro ipv4-address? inet:ipv4-address 1253 | +--:(ipv6-address) 1254 | | +--ro ipv6-address? inet:ipv6-address 1255 | +--:(src-dst-address) 1256 | | +--ro src-ip-address? inet:ip-address 1257 | | +--ro dst-ip-address? inet:ip-address 1258 | | +--ro Interface? if:interface-ref 1259 | +--:(fec) 1260 | | +--ro fec-type? fec-type 1261 | | +--ro (fec-value)? 1262 | | +--:(ip-prefix) 1263 | | | +--ro ip-prefix? inet:ip-prefix 1264 | | +--:(bgp) 1265 | | | +--ro bgp? inet:ip-prefix 1266 | | +--:(tunnel) 1267 | | | +--ro tunnel-interface? uint32 1268 | | +--:(pw) 1269 | | | +--ro remote-pe-address? inet:ip-address 1270 | | | +--ro pw-id? uint32 1271 | | +--:(vpls) 1272 | | | +--ro route-distinguisher? uint32 1273 | | | +--ro sender-ve-id? uint32 1274 | | | +--ro receiver-ve-id? uint32 1275 | | +--:(mpls-mldp) 1276 | | +--ro (root-address)? 1277 | | +--:(ip-address) 1278 | | | +--ro source-address? inet:ip-address 1279 | | | +--ro group-ip-address? IP-Multicast-Group-Address 1280 | | +--:(vpn) 1281 | | | +--ro as-number? inet:as-number 1282 | | +--:(global-id) 1283 | | +--ro lsp-id? string 1284 | +--:(tlv-address) 1285 | | +--ro tlv-type? int16 1286 | | +--ro tlv-len? int16 1287 | | +--ro tlv-value? binary 1288 | +--:(system-info) 1289 | +--ro system-id? inet:uri 1290 +--ro timestamp-val? yang:date-and-time 1291 +--ro ingress-intf-name? if:interface-ref 1292 +--ro egress-intf-name? if:interface-ref 1293 +--ro app-meta-data? uint32 1295 data hierarchy of OAM 1297 4. OAM YANG Module 1299 file "ietf-connectionless-oam.yang" 1301 module ietf-connectionless-oam { 1302 namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; 1303 prefix coam; 1305 import ietf-network{ 1306 prefix nd; 1307 } 1308 import ietf-yang-types { 1309 prefix yang; 1310 } 1311 import ietf-interfaces { 1312 prefix if; 1313 } 1314 import ietf-inet-types { 1315 prefix inet; 1316 } 1317 import ietf-network-instance { 1318 prefix "ni"; 1319 } 1321 organization "IETF LIME Working Group"; 1322 contact 1323 "Deepak Kumar dekumar@cisco.com 1324 Qin Wu bill.wu@huawei.com 1325 S Raghavan srihari@cisco.com 1326 Zitao Wang wangzitao@huawei.com 1327 R Rahman rrahman@cisco.com"; 1329 description 1331 "This YANG module defines the generic configuration, 1332 data model, statistics for connectionless OAM to be 1333 used within IETF in a protocol indpendent manner. 1334 Functional level abstraction is indendent with 1335 YANG modeling. It is assumed that each protocol maps 1336 corresponding abstracts to its native format. 1337 Each protocol may extend the YANG model defined 1338 here to include protocol specific extensions"; 1339 revision 2016-06-23 { 1340 description 1341 "Initial revision. - 06 version"; 1342 reference ""; 1343 } 1344 /* features */ 1345 feature connection-less { 1346 description 1347 "this feature indicates that OAM solution is connection less."; 1348 } 1349 feature continuity-check { 1350 description 1351 "This feature indicates that the server supports 1352 executing continuity check OAM command and 1353 returning a response. Servers that do not advertise 1354 this feature will not support executing 1355 continuity check command or rpc model for 1356 continuity check command."; 1357 } 1358 feature path-discovery { 1359 description 1360 "This feature indicates that the server supports 1361 executing path discovery OAM command and 1362 returning a response. Servers that do not advertise 1363 this feature will not support executing 1364 path discovery command or rpc model for 1365 path discovery command."; 1366 } 1368 /* Identities */ 1369 /* typedefs */ 1370 typedef routing-instance-ref { 1371 type leafref { 1372 path "/ni:network-instances/ni:network-instance/ni:name"; 1373 } 1374 description 1375 "This type is used for leafs that reference a routing instance 1376 configuration."; 1378 } 1380 typedef IPv4-Multicast-Group-Address { 1381 type string { 1382 pattern '(2((2[4-9])|(3[0-9]))\.)' 1383 +'(([0-9]|[1-9][0-9]|1[0-9][0-9]|' 1384 +'2[0-4][0-9]|25[0-5])\.){2}' 1385 +'([0-9]|[1-9][0-9]|1[0-9][0-9]' 1386 +'|2[0-4][0-9]|25[0-5])'; 1387 } 1388 description 1389 "The IPv4-Multicast-Group-Address type 1390 represents an IPv4 multicast address 1391 in dotted-quad notation."; 1392 reference "RFC4607"; 1393 } // typedef IPv4-Multicast-Group-Address 1394 typedef IPv6-Multicast-Group-Address { 1395 type string { 1396 pattern 1397 '(((FF|ff)[0-9a-fA-F]{2}):)([0-9a-fA-F]' 1398 +'{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?' 1399 +'(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4]' 1400 +'[0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|' 1401 +'2[0-4][0-9]|[01]?[0-9]?[0-9])))'; 1402 pattern 1403 '(([^:]+:){6}(([^:]+:[^:]+)|' 1404 +'(.*\..*)))|((([^:]+:)*[^:]+)' 1405 +'?::(([^:]+:)*[^:]+)?)'; 1406 } 1407 description 1408 "The IPv6-Multicast-Group-Address 1409 type represents an IPv6 address in full, 1410 mixed, shortened, and shortened-mixed 1411 notation."; 1412 reference "RFC4291 2.7. 1413 ietf-inet-types:ipv6-address"; 1414 } 1415 typedef IP-Multicast-Group-Address { 1416 type union { 1417 type IPv4-Multicast-Group-Address; 1418 type IPv6-Multicast-Group-Address; 1419 } 1420 description 1421 "The IP-Multicast-Group-Address type 1422 represents an IP multicast address and 1423 is IP version neutral. The format of the 1424 textual representations implies the IP version."; 1425 } // typedef IP-Multicast-Group-Address 1427 identity fec-types { 1429 description 1430 "This is base identity of fec types which are ip-prefix, 1431 bgp, tunnel, pwe3, vpls, etc."; 1432 } 1434 typedef fec-type { 1435 type identityref { 1436 base fec-types; 1437 } 1438 description "Target FEC type."; 1439 } 1441 typedef oam-counter32 { 1442 type yang:zero-based-counter32; 1443 description 1444 "defines 32 bit counter for OAM"; 1445 } 1447 identity time-resolution{ 1448 description 1449 "Time interval resolution"; 1450 } //base identity 1452 identity hours { 1453 base time-resolution; 1454 description 1455 "Hours"; 1456 } 1458 identity minutes { 1459 base time-resolution; 1460 description 1461 "Minutes"; 1462 } 1464 identity seconds { 1465 base time-resolution; 1466 description 1467 "Seconds"; 1468 } 1470 identity milliseconds { 1471 base time-resolution; 1472 description 1473 "Milliseconds"; 1474 } 1475 identity microseconds { 1477 base time-resolution; 1478 description 1479 "Microseconds"; 1480 } 1482 identity nanoseconds { 1483 base time-resolution; 1484 description 1485 "Nanoseconds"; 1486 } 1488 /* groupings */ 1489 grouping cc-session-statsitics { 1490 description "Grouping for session statistics."; 1491 container cc-session-statistics { 1492 description "cc session counters"; 1493 leaf session-count { 1494 type uint32; 1495 description "Number of cc sessions."; 1496 } 1497 leaf session-up-count { 1498 type uint32; 1499 description "Number of sessions which are up."; 1500 } 1501 leaf session-down-count { 1502 type uint32; 1503 description "Number of sessions which are down."; 1504 } 1505 leaf session-admin-down-count { 1506 type uint32; 1507 description "Number of sessions which are admin-down."; 1508 } 1509 } 1510 } 1512 grouping session-packet-statistics { 1513 description "Grouping for per session packet statistics"; 1514 container session-packet-statistics { 1515 description "Per session packet statistics."; 1516 leaf rx-packet-count { 1517 type uint32; 1518 description "Total received packet count."; 1519 } 1520 leaf tx-packet-count { 1521 type uint32; 1522 description "Total transmitted packet count."; 1524 } 1525 leaf rx-bad-packet { 1527 type uint32; 1528 description "Total received bad packet."; 1529 } 1530 leaf tx-packet-failed { 1531 type uint32; 1532 description "Total send packet failed."; 1533 } 1534 } 1535 } 1537 grouping cc-per-session-statistics { 1538 description "Grouping for per session statistics"; 1539 container cc-per-session-statistics { 1540 description "per session statistics."; 1541 leaf create-time { 1542 type yang:date-and-time; 1543 description "Time and date when session is created."; 1544 } 1545 leaf last-down-time { 1546 type yang:date-and-time; 1547 description "Time and date last time session is down."; 1548 } 1549 leaf last-up-time { 1550 type yang:date-and-time; 1551 description "Time and date last time session is up."; 1552 } 1553 leaf down-count { 1554 type uint32; 1555 description "Total down count."; 1556 } 1557 leaf admin-down-count { 1558 type uint32; 1559 description "Total down count."; 1560 } 1562 uses session-packet-statistics; 1563 } 1564 } 1566 grouping session-error-statistics { 1567 description "Grouping for per session error statistics"; 1568 container session-error-statistics { 1569 description "Per session error statistics."; 1570 leaf packet-drops-count { 1571 type uint32; 1572 description "Total received packet drops count."; 1573 } 1574 leaf packet-reorder-count { 1576 type uint32; 1577 description "Total received packet reordered count."; 1578 } 1579 leaf packets-out-of-seq-count { 1580 type uint32; 1581 description "Total received out of sequence count."; 1582 } 1583 leaf packets-dup-count { 1584 type uint32; 1585 description "Total received packet duplicates count."; 1586 } 1587 } 1588 } 1590 grouping session-delay-statistics { 1591 description "Grouping for per session delay statistics"; 1592 container session-delay-statistics { 1593 description "Session delay summarised information."; 1594 leaf time-resolution-value { 1595 type identityref { 1596 base time-resolution; 1597 } 1598 description "Time units among choice of s,ms,ns etc."; 1599 } 1600 leaf min-delay-value { 1601 type uint32; 1602 description "Minimum delay value observed."; 1603 } 1604 leaf max-delay-value { 1605 type uint32; 1606 description "Maximum delay value observed."; 1607 } 1608 leaf average-delay-value { 1609 type uint32; 1610 description "Average delay value observed."; 1611 } 1612 } 1613 } 1615 grouping session-jitter-statistics { 1616 description "Grouping for per session jitter statistics"; 1617 container session-jitter-statistics { 1618 description "Session jitter summarised information."; 1619 leaf time-resolution-value { 1620 type identityref { 1621 base time-resolution; 1622 } 1623 description "Time units among choice of s,ms,ns etc."; 1625 } 1626 leaf min-jitter-value { 1627 type uint32; 1628 description "Minimum jitter value observed."; 1629 } 1630 leaf max-jitter-value { 1631 type uint32; 1632 description "Maximum jitter value observed."; 1633 } 1634 leaf average-jitter-value { 1635 type uint32; 1636 description "Average jitter value observed."; 1637 } 1638 } 1639 } 1641 grouping session-path-verification-statistics { 1642 description "Grouping for per session path verification statistics"; 1643 container session-path-verification-statistics{ 1644 description "OAM per session path verification statistics."; 1645 leaf verified-count { 1646 type uint32; 1647 description "Total number of packets that went through a path as intended."; 1648 } 1649 leaf failed-count { 1650 type uint32; 1651 description "Total number of packets that went through an unintended path."; 1652 } 1653 } 1654 } 1656 grouping session-type { 1657 description 1658 "This object indicates the current session 1659 definition."; 1660 leaf session-type-enum { 1661 type enumeration { 1662 enum proactive { 1663 description 1664 "The current session is proactive"; 1665 } 1666 enum on-demand { 1667 description 1668 "The current session is on-demand."; 1669 } 1670 } 1671 default "on-demand"; 1672 description 1674 "session type enum"; 1675 } 1676 } 1678 identity tp-address-type { 1679 description 1680 "Test point address type"; 1681 } //base identity 1683 identity mac-address-type { 1684 base tp-address-type; 1685 description 1686 "MAC address type"; 1687 } 1689 identity ipv4-address-type { 1690 base tp-address-type; 1691 description 1692 "IPv4 address type"; 1693 } 1695 identity ipv6-address-type { 1696 base tp-address-type; 1697 description 1698 "IPv6 address type"; 1699 } 1701 identity src-dst-address-type { 1702 base tp-address-type; 1703 description 1704 "Source/Dest address type"; 1705 } 1707 identity fec-address-type { 1708 base tp-address-type; 1709 description 1710 "FEC address type"; 1711 } 1713 identity tlv-address-type { 1714 base tp-address-type; 1715 description 1716 "TLV address type"; 1717 } 1719 identity system-id-address-type { 1720 base tp-address-type; 1721 description 1723 "System id address type"; 1724 } 1726 identity lsp-id-address-type { 1727 base tp-address-type; 1728 description 1729 "LSP ID address type"; 1730 } 1732 identity as-number-address-type { 1733 base tp-address-type; 1734 description 1735 "AS number address type"; 1736 } 1738 identity group-ip-address-type { 1739 base tp-address-type; 1740 description 1741 "Group IP address type"; 1742 } 1744 identity route-distinguisher-address-type { 1745 base tp-address-type; 1746 description 1747 "Route Distinguisher address type"; 1748 } 1750 identity ip-prefix-address-type { 1751 base tp-address-type; 1752 description 1753 "IP prefix address type"; 1754 } 1756 identity tunnel-address-type { 1757 base tp-address-type; 1758 description 1759 "Tunnel address type"; 1760 } 1762 grouping tp-address { 1763 leaf tp-address-type-value { 1764 type identityref { 1765 base tp-address-type; 1766 } 1767 description "Test point address type."; 1768 } 1770 choice tp-address { 1772 case mac-address { 1773 when "tp-address-type-value = mac-address-type" { 1774 description "MAC address type"; 1775 } 1776 leaf mac-address { 1777 type yang:mac-address; 1778 description 1779 "MAC Address"; 1780 } 1781 description 1782 "MAC Address based MP Addressing."; 1783 } 1784 case ipv4-address { 1785 when "tp-address-type-value = ipv4-address-type" { 1786 description "IPv4 address type"; 1787 } 1788 leaf ipv4-address { 1789 type inet:ipv4-address; 1790 description 1791 "Ipv4 Address"; 1792 } 1793 description 1794 "Ip Address based MP Addressing."; 1795 } 1796 case ipv6-address { 1797 when "tp-address-type-value = ipv6-address-type" { 1798 description "IPv6 address type"; 1799 } 1800 leaf ipv6-address { 1801 type inet:ipv6-address; 1802 description 1803 "Ipv6 Address"; 1804 } 1805 description 1806 "ipv6 Address based MP Addressing."; 1807 } 1808 case src-dst-address { 1809 when "tp-address-type-value = src-dst-address-type" { 1810 description "Src dest address type for BFD"; 1811 } 1812 leaf src-ip-address { 1813 type inet:ip-address; 1814 description 1815 "source ip address."; 1816 } 1817 leaf dst-ip-address { 1818 type inet:ip-address; 1819 description 1821 "destination ip address."; 1822 } 1823 leaf Interface { 1824 type if:interface-ref; 1825 description 1826 "interface."; 1827 } 1828 } 1829 case fec { 1830 when "tp-address-type-value = fec-address-type" { 1831 description "FEC address type"; 1832 } 1833 leaf fec-type { 1834 type fec-type; 1835 description 1836 "fec type."; 1837 } 1838 choice fec-value { 1839 description 1840 "fec value."; 1841 case ip-prefix { 1842 leaf ip-prefix { 1843 type inet:ip-prefix; 1844 description 1845 "ip prefix."; 1846 } 1847 } 1848 case bgp { 1849 leaf bgp { 1850 type inet:ip-prefix; 1851 description 1852 "BGP Labeled Prefix "; 1853 } 1854 } 1855 case tunnel { 1856 leaf tunnel-interface { 1857 type uint32; 1858 description 1859 "VPN Prefix "; 1861 } 1862 } 1864 case pw { 1865 leaf remote-pe-address{ 1866 type inet:ip-address; 1867 description 1868 "remote pe address."; 1869 } 1870 leaf pw-id { 1871 type uint32; 1872 description 1873 "Pseudowire id."; 1874 } 1875 } 1876 case vpls { 1877 leaf route-distinguisher { 1878 type uint32; 1879 description 1880 "Route Distinguisher(8 octets)."; 1881 } 1882 leaf sender-ve-id{ 1883 type uint32; 1884 description 1885 "Sender's VE ID."; 1886 } 1887 leaf receiver-ve-id{ 1888 type uint32; 1889 description 1890 "Receiver's VE ID."; 1891 } 1892 } 1893 case mpls-mldp{ 1894 choice root-address{ 1895 description 1896 "root address choice."; 1897 case ip-address{ 1898 leaf source-address{ 1899 type inet:ip-address; 1900 description 1901 "ip address."; 1902 } 1903 leaf group-ip-address{ 1904 type IP-Multicast-Group-Address; 1905 description 1906 "group ip address."; 1907 } 1908 } 1909 case vpn{ 1910 leaf as-number{ 1911 type inet:as-number; 1913 description 1914 "AS number."; 1915 } 1916 } 1917 case global-id{ 1918 leaf lsp-id{ 1919 type string; 1920 description 1921 "lsp id."; 1922 } 1923 } 1924 } 1925 } 1926 } 1927 } 1928 case tlv-address { 1929 when "tp-address-type-value = tlv-address-type" { 1930 description "TLV address type"; 1931 } 1932 leaf tlv-type { 1933 type int16; 1934 description 1935 "Type of MEP-ID"; 1936 } 1937 leaf tlv-len { 1938 type int16; 1939 description 1940 "Length of MEP-ID value"; 1941 } 1942 leaf tlv-value { 1943 type binary { 1944 length "12..255"; 1945 } 1946 description 1947 "Value please refer RFC6428 (Figure 4,5,6)."; 1948 } 1949 description 1950 "MEP-ID"; 1951 } 1952 case system-info { 1953 when "tp-address-type-value = system-id-address-type" { 1954 description "System id address type"; 1955 } 1956 leaf system-id { 1957 type inet:uri; 1958 description 1959 "System ID assigned to this node."; 1960 } 1962 } 1963 description 1964 "TP Addressing."; 1965 } 1966 description 1967 "TP Address"; 1968 } 1970 grouping tp-address-vrf { 1971 description 1972 "Test point address with VRF."; 1973 leaf vrf { 1974 type routing-instance-ref; 1975 description 1976 "The vrf is used to describe the 1977 corresponding network instance"; 1978 } 1980 uses tp-address; 1981 } 1983 grouping connectionless-oam-layers { 1984 list oam-layers { 1985 key "index"; 1986 leaf index { 1987 type uint16 { 1988 range "0..65535"; 1989 } 1990 description 1991 "Index"; 1992 } 1993 leaf level { 1994 type int32 { 1995 range "-1..1"; 1996 } 1997 default 0; 1998 description 1999 "Level 0 indicates default level, -1 means server 2000 and +1 means client layer. 2001 In relationship 0 means same layer."; 2002 } 2003 ordered-by user; 2004 description 2005 "list of related oam layers. 2006 0 means they are in same level, especially 2007 interworking scenarios of stiching multiple 2008 technology at same layer. 2009 -1 means server layer, for eg:- in case of 2011 Overlay and Underlay, Underlay is server layer for 2012 Overlay Test Point. 2013 +1 means client layer, for eg:- in case of 2014 Service OAM and Transport OAM, Service OAM is client 2015 layer to Transport OAM."; 2016 } 2017 description 2018 "connectionless related OAM layer"; 2019 } 2021 grouping tp-technology { 2022 choice technology { 2023 default technology-null; 2024 case technology-null { 2025 description 2026 "this is a placeholder when no technology is needed."; 2027 leaf tech-null { 2028 type empty; 2029 description 2030 "there is no technology define"; 2031 } 2032 } 2033 description 2034 "technology choice null"; 2035 case technology-string { 2036 description 2037 "oam technology string"; 2038 leaf ipv4-icmp { 2039 type string; 2040 description 2041 "name to identify oam technology"; 2042 } 2043 } 2044 } 2045 description 2046 "OAM Technology"; 2047 } 2049 grouping tp-tools { 2050 description 2051 "Test Point OAM Toolset."; 2052 choice tools { 2053 default tools-empty; 2054 config false; 2055 description 2056 "choice of test point tools. 2057 Empty tools means based on Test Point it's implicit 2058 all OAM tools are present and no further configuration 2059 is supported."; 2061 case tools-empty { 2062 description 2063 "this is a placeholder when oam toolset is not needed."; 2064 leaf tools-null { 2065 type empty; 2066 description 2067 "there is no oam toolset defined."; 2068 } 2069 } 2070 case tools-ip{ 2071 description 2072 "Oam Toolset for Ip"; 2073 leaf rfc792 { 2074 type boolean; 2075 description 2076 "rfc792 (icmpv4) supported."; 2077 } 2078 leaf rfc4443 { 2079 type boolean; 2080 description 2081 "rfc4443 supported."; 2082 } 2083 leaf rfc4884 { 2084 type boolean; 2085 description 2086 "rfc4884 supported."; 2087 } 2088 leaf rfc5837 { 2089 type boolean; 2090 description 2091 "rfc5837 supported."; 2092 } 2093 } 2094 case tools-bfd { 2095 leaf rfc5881 { 2096 type boolean; 2097 description 2098 "rfc5881 supported."; 2099 } 2100 leaf rfc5883 { 2101 type boolean; 2102 description 2103 "rfc5883 supported."; 2104 } 2105 leaf rfc5884 { 2106 type boolean; 2107 description 2109 "rfc5884 supported."; 2110 } 2111 leaf rfc5885 { 2112 type boolean; 2113 description 2114 "rfc5885 supported."; 2115 } 2116 } 2117 case tools-mpls { 2118 description 2119 "Oam Toolset for mpls"; 2120 leaf rfc4379 { 2121 type boolean; 2122 description 2123 "rfc4379 supported."; 2124 } 2125 leaf rfc4687 { 2126 type boolean; 2127 description 2128 "rfc4687 supported."; 2129 } 2130 leaf rfc4950 { 2131 type boolean; 2132 description 2133 "rfc4950 supported."; 2134 } 2135 leaf mpls-rfc5884 { 2136 type boolean; 2137 description 2138 "rfc5884 supported."; 2139 } 2140 } 2142 case tools-pw { 2143 description 2144 "Oam Toolset for pw oam."; 2145 leaf rfc5085 { 2146 type boolean; 2147 description 2148 "rfc5085 supported."; 2150 } 2151 leaf pw_rfc5885 { 2152 type boolean; 2153 description 2154 "rfc5885 supported."; 2155 } 2156 leaf rfc6423 { 2157 type boolean; 2158 description 2159 "rfc6423 supported."; 2160 } 2161 leaf rfc6310 { 2162 type boolean; 2163 description 2164 "rfc6310 supported."; 2165 } 2166 leaf rfc7023 { 2167 type boolean; 2168 description 2169 "rfc7023 supported."; 2170 } 2171 } 2172 } 2173 } 2175 grouping test-point-location-info { 2176 uses tp-technology; 2177 uses tp-tools; 2178 uses connectionless-oam-layers; 2179 description 2180 "Test point Location"; 2181 } 2183 grouping test-point-locations { 2184 description "Group of test point locations."; 2185 leaf tp-address-type-value { 2187 type identityref { 2188 base tp-address-type; 2189 } 2190 description "Test point address type."; 2191 } 2192 choice location-type { 2193 case ipv4-location-type { 2194 when "tp-address-type-value = ipv4-address-type" { 2195 description 2196 "when test point address is equal to ipv4 address."; 2197 } 2198 container test-point-ipv4-location-list { 2199 list test-point-locations { 2200 key "ipv4-location"; 2201 leaf ipv4-location { 2202 type inet:ipv4-address; 2203 description 2204 "Ipv4 Address."; 2205 } 2206 leaf vrf { 2207 type routing-instance-ref; 2208 description 2209 "The vrf is used to describe the 2210 corresponding network instance"; 2211 } 2212 uses test-point-location-info; 2213 ordered-by user; 2214 description 2215 "list of test point locations."; 2216 } 2217 description 2218 "Serves as top-level container for test point location list."; 2219 } 2220 } 2221 case ipv6-location-type { 2222 when "tp-address-type-value = ipv6-address-type" { 2223 description 2224 "when test point address is equal to ipv6 address"; 2225 } 2226 container test-point-ipv6-location-list { 2227 list test-point-locations { 2228 key "ipv6-location"; 2229 leaf ipv6-location { 2230 type inet:ipv6-address; 2231 description 2232 "Ipv6 Address."; 2233 } 2234 leaf vrf { 2236 type routing-instance-ref; 2237 description 2238 "The vrf is used to describe the 2239 corresponding network instance"; 2240 } 2241 uses test-point-location-info; 2242 ordered-by user; 2243 description 2244 "list of test point locations."; 2245 } 2246 description 2247 "Serves as top-level container for test point location list."; 2248 } 2249 } 2250 case mac-location-type { 2251 when "tp-address-type-value = mac-address-type" { 2252 description 2253 "when test point address is equal to mac address."; 2254 } 2255 container test-point-mac-address-location-list { 2256 list test-point-locations { 2257 key "mac-address-location"; 2258 leaf mac-address-location { 2259 type yang:mac-address; 2260 description 2261 "MAC Address"; 2262 } 2263 uses test-point-location-info; 2264 ordered-by user; 2265 description 2266 "list of test point locations."; 2267 } 2268 description 2269 "Serves as top-level container for test point location list."; 2270 } 2271 } 2272 case tunnel-location-type { 2273 when "tp-address-type-value = tunnel-address-type" { 2274 description 2275 "when test point address is equal to tunnel type."; 2276 } 2277 container test-point-tunnel-address-location-list { 2278 list test-point-locations { 2279 key "tunnel-location"; 2280 leaf tunnel-location { 2281 type uint32; 2282 description 2283 "VPN Prefix"; 2285 } 2286 leaf vrf { 2287 type routing-instance-ref; 2288 description 2289 "The vrf is used to describe the 2290 corresponding network instance"; 2291 } 2292 uses test-point-location-info; 2293 ordered-by user; 2294 description 2295 "list of test point locations."; 2296 } 2297 description 2298 "Serves as top-level container for test point location list."; 2299 } 2300 } 2301 case ip-prefix-location-type { 2302 when "tp-address-type-value = ip-prefix-address-type" { 2303 description 2304 "when test point address is equal to ip prefix."; 2305 } 2306 container test-point-ip-prefix-location-list { 2307 list test-point-locations { 2308 key "ip-prefix-location"; 2309 leaf ip-prefix-location { 2310 type inet:ip-prefix; 2311 description 2312 "IP Prefix"; 2313 } 2314 leaf vrf { 2315 type routing-instance-ref; 2316 description 2317 "The vrf is used to describe the 2318 corresponding network instance"; 2319 } 2320 uses test-point-location-info; 2321 ordered-by user; 2322 description 2323 "list of test point locations."; 2324 } 2325 description 2326 "Serves as top-level container for test point location list."; 2327 } 2328 } 2329 case route-distinguisher-location-type { 2330 when "tp-address-type-value = route-distinguisher-address-type" { 2331 description "when test point address is equal to 2332 route distinguiher."; 2334 } 2335 container test-point-route-dist-location-list { 2336 list test-point-locations { 2337 key "route-dist-location"; 2338 leaf route-dist-location { 2339 type uint32; 2340 description 2341 "Route Distinguisher(8 octets)."; 2343 } 2344 leaf vrf { 2345 type routing-instance-ref; 2346 description 2347 "The vrf is used to describe the 2348 corresponding network instance"; 2349 } 2350 uses test-point-location-info; 2351 ordered-by user; 2352 description 2353 "list of test point locations."; 2354 } 2355 description 2356 "Serves as top-level container for test point location list."; 2357 } 2358 } 2359 case group-ip-address-location-type { 2360 when "tp-address-type-value = group-ip-address-type" { 2361 description "when test point address is equal to 2362 group ip address."; 2363 } 2364 container test-point-group-ip-address-location-list { 2365 list test-point-locations { 2366 key "group-ip-address-location"; 2367 leaf group-ip-address-location { 2368 type IP-Multicast-Group-Address; 2369 description 2370 "Group IP address."; 2371 } 2372 leaf vrf { 2373 type routing-instance-ref; 2374 description 2375 "The vrf is used to describe the 2376 corresponding network instance"; 2377 } 2378 uses test-point-location-info; 2379 ordered-by user; 2380 description 2381 "list of test point locations."; 2382 } 2384 description 2385 "Serves as top-level container for test point location list."; 2386 } 2387 } 2388 case group-as-number-location-type { 2389 when "tp-address-type-value = as-number-address-type" { 2390 description "when test point address is equal to 2391 as-number."; 2392 } 2393 container test-point-as-number-location-list { 2394 list test-point-locations { 2395 key "as-number-location"; 2396 leaf as-number-location { 2397 type inet:as-number; 2398 description 2399 "AS number."; 2400 } 2401 leaf vrf { 2402 type routing-instance-ref; 2403 description 2404 "The vrf is used to describe the 2405 corresponding network instance"; 2406 } 2407 uses test-point-location-info; 2408 ordered-by user; 2409 description 2410 "list of test point locations."; 2411 } 2412 description 2413 "Serves as top-level container for test point location list."; 2414 } 2415 } 2416 case group-lsp-id-location-type { 2417 when "tp-address-type-value = lsp-id-address-type" { 2418 description "when test point address is equal to lspid."; 2419 } 2420 container test-point-lsp-id-location-list { 2421 list test-point-locations { 2422 key "lsp-id-location"; 2423 leaf lsp-id-location { 2424 type string; 2425 description 2426 "LSP Id."; 2427 } 2428 leaf vrf { 2429 type routing-instance-ref; 2430 description 2431 "The vrf is used to describe the 2433 corresponding network instance"; 2434 } 2435 uses test-point-location-info; 2436 ordered-by user; 2437 description 2438 "list of test point locations."; 2440 } 2441 description 2442 "Serves as top-level container for test point location list."; 2443 } 2444 } 2445 case group-system-id-location-type { 2446 when "tp-address-type-value = system-id-address-type" { 2447 description "when test point address is equal to 2448 system info."; 2449 } 2450 container test-point-system-info-location-list { 2451 list test-point-locations { 2452 key "system-id-location"; 2453 leaf system-id-location { 2454 type inet:uri; 2455 description 2456 "System Id."; 2457 } 2458 leaf vrf { 2459 type routing-instance-ref; 2460 description 2461 "The vrf is used to describe the 2462 corresponding network instance"; 2463 } 2464 uses test-point-location-info; 2465 ordered-by user; 2466 description 2467 "list of test point locations."; 2468 } 2469 description 2470 "Serves as top-level container for test point location list."; 2471 } 2472 } 2473 description 2474 "Choice of address types."; 2475 } 2476 } 2478 augment "/nd:networks/nd:network/nd:node"{ 2479 description 2480 "Augment test points of connectionless oam."; 2481 uses test-point-locations; 2483 } 2485 grouping path-discovery-data { 2486 description "Path discovery related data output from nodes."; 2487 container src-test-point { 2488 description "Source test point."; 2489 uses tp-address-vrf; 2490 } 2491 container dest-test-point { 2492 description "Destination test point."; 2493 uses tp-address-vrf; 2494 } 2495 leaf sequence-number { 2496 type uint64; 2497 description "Sequence number in data packets."; 2498 } 2499 leaf hop-cnt { 2500 type uint8; 2501 description "hop count."; 2502 } 2504 uses session-packet-statistics; 2505 uses session-error-statistics; 2506 uses session-delay-statistics; 2507 uses session-jitter-statistics; 2509 container path-verification { 2510 description "Optional path verification related information."; 2511 leaf flow-info { 2512 type string; 2513 description 2514 "ACL name that refers to the flow, if any."; 2515 } 2516 uses session-path-verification-statistics; 2517 } 2519 container path-trace-info { 2520 description "Optional path trace per-hop test point information. 2521 The list has typically a single element for per-hop 2522 cases like path-discovery RPC but allows a list of 2523 hop related information for other types of 2524 data retrieval methods."; 2525 list path-trace-info-list { 2526 key "index"; 2527 description 2528 "Path trace information list."; 2529 leaf index { 2530 type uint32; 2532 description "Trace information index."; 2533 } 2535 uses tp-address-vrf; 2536 leaf timestamp-val { 2537 type yang:date-and-time; 2538 description "Timestamp value"; 2539 } 2540 leaf ingress-intf-name { 2541 type if:interface-ref; 2542 description 2543 "Ingress interface name"; 2544 } 2545 leaf egress-intf-name { 2546 type if:interface-ref; 2547 description 2548 "Egress interface name"; 2549 } 2550 leaf app-meta-data { 2551 type uint32; 2552 description 2553 "Application specific data added by node."; 2554 } 2555 } 2556 } 2557 } 2559 grouping continuity-check-data { 2560 description "Continuity check data output from nodes."; 2561 container src-test-point { 2562 description "Source test point."; 2563 uses tp-address-vrf; 2565 leaf egress-intf-name { 2566 type if:interface-ref; 2567 description 2568 "Egress interface name"; 2569 } 2570 } 2571 container dest-test-point { 2572 description "Destination test point."; 2573 uses tp-address-vrf; 2575 leaf ingress-intf-name { 2576 type if:interface-ref; 2577 description 2578 "Ingress interface name"; 2580 } 2581 } 2582 leaf sequence-number { 2583 type uint64; 2584 description "Sequence number."; 2585 } 2586 leaf hop-cnt { 2587 type uint8; 2588 description "hop count."; 2589 } 2591 uses session-packet-statistics; 2592 uses session-error-statistics; 2593 uses session-delay-statistics; 2594 uses session-jitter-statistics; 2595 } 2597 container oper { 2598 if-feature continuity-check; 2599 config "false"; 2600 description "cc operational information."; 2601 container cc-ipv4-sessions-statistics { 2602 description "cc ipv4 sessions"; 2603 uses cc-session-statsitics; 2604 } 2605 container cc-ipv6-sessions-statistics { 2606 description "cc ipv6 sessions"; 2607 uses cc-session-statsitics; 2608 } 2609 } 2610 } 2612 module ietf-connectionless-oam-methods { 2613 namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam-methods"; 2614 prefix coam-methods; 2616 import ietf-interfaces { 2617 prefix if; 2618 } 2619 import ietf-connectionless-oam { 2620 prefix coam; 2621 } 2623 organization "IETF LIME Working Group"; 2624 contact 2625 "Deepak Kumar dekumar@cisco.com 2626 Qin Wu bill.wu@huawei.com 2627 S Raghavan srihari@cisco.com 2628 Zitao Wang wangzitao@huawei.com 2629 R Rahman rrahman@cisco.com"; 2631 description 2632 "This YANG module defines the RPCs for , 2633 connectionless OAM to be used within IETF 2634 in a protocol Independent manner. 2635 Functional level abstraction is indendent with 2636 YANG modeling. It is assumed that each protocol maps 2637 corresponding abstracts to its native format. 2638 Each protocol may extend the YANG model defined 2639 here to include protocol specific extensions"; 2640 revision 2016-06-23 { 2641 description 2642 "06 version"; 2643 reference ""; 2644 } 2646 rpc continuity-check { 2647 if-feature coam:continuity-check; 2648 description 2649 "Generates continuity-check as per RFC7276."; 2650 input { 2651 container destination-tp { 2652 uses coam:tp-address; 2653 description 2654 "destination test point."; 2655 } 2656 uses coam:session-type; 2657 leaf source-interface { 2658 type if:interface-ref; 2659 description 2660 "source interface."; 2661 } 2662 leaf outbound-interface { 2663 type if:interface-ref; 2665 description 2666 "outbound interface."; 2667 } 2668 leaf count { 2669 type uint32; 2670 default "5"; 2671 description 2672 "Specifies the number of packets that will be sent."; 2673 } 2674 leaf vrf { 2675 type coam:routing-instance-ref; 2676 description 2677 "vrf instance."; 2678 } 2679 leaf ttl { 2680 type uint8; 2681 default "255"; 2682 description 2683 "Time to live (TTL)."; 2684 } 2685 leaf packet-size { 2686 type uint32 { 2687 range "64..10000"; 2688 } 2689 default "64"; 2690 description 2691 "Size of ping echo request packets, in octets"; 2692 } 2693 } 2694 output { 2695 list error-code-list { 2696 key "response-index"; 2697 leaf response-index { 2698 type uint32; 2699 description 2700 "response index."; 2701 } 2702 leaf status-code { 2703 type int32; 2704 description 2705 "error code is "; 2706 } 2707 leaf status-sub-code { 2708 type uint8; 2709 description 2710 "sub code."; 2711 } 2712 description 2713 "error code list."; 2714 } 2716 uses coam:continuity-check-data; 2717 } 2718 } 2719 rpc path-discovery { 2720 description 2721 "Generates path discovery as per RFC7276."; 2722 input { 2723 container destination-tp { 2724 uses coam:tp-address; 2725 description 2726 "destination test point."; 2728 } 2729 uses coam:session-type; 2730 leaf source-interface { 2731 type if:interface-ref; 2732 description 2733 "source interface."; 2734 } 2735 leaf outbound-interface { 2736 type if:interface-ref; 2737 description 2738 "outbound interface."; 2739 } 2740 leaf vrf { 2741 type coam:routing-instance-ref; 2742 description 2743 "vrf"; 2744 } 2745 leaf max-ttl { 2746 type uint8; 2747 default "255"; 2748 description 2749 "max ttl."; 2750 } 2751 } 2752 output { 2753 list response-list { 2754 key "response-index"; 2755 description 2756 "path discovery response list."; 2757 leaf response-index { 2758 type uint32; 2759 description 2760 "response index."; 2761 } 2762 leaf status-code { 2763 type int32; 2764 description 2765 "error code is "; 2766 } 2767 leaf status-sub-code { 2768 type uint8; 2770 description 2771 "sub code is "; 2772 } 2773 } 2775 uses coam:path-discovery-data; 2777 } 2778 } 2779 } 2781 YANG module of OAM 2783 2785 5. CL model applicability 2787 ietf-connectionless-oam model defined in this document provides 2788 technology-independent abstraction of key OAM constructs for 2789 connectionless protocols. This model can be further extended to 2790 include technology specific details, e.g., adding new data nodes with 2791 technology specific functions and parameters into proper anchor 2792 points of the base model, so as to develop a technology-specific 2793 connectionless OAM model. 2795 This section demonstrates the usability of the connectionless YANG 2796 OAM data model to various connectionless OAM technologies, e.g., BFD, 2797 LSP ping. Note that, in this section, we only present several 2798 snippets of technology-specific model extensions for illustrative 2799 purposes. The complete model extensions should be worked on in 2800 respective protocol working groups. 2802 5.1. BFD Extension 2804 The following sections shows how the "ietf-connectionless-oam" model 2805 can be extended to cover BFD technology. For this purpose, a set of 2806 extension are introduced such as technology-type extension and test- 2807 point attributes extension. 2809 Note that in BFD WG, there is a BFD yang data model 2810 [I-D.ietf-bfd-yang] to be produced. Users can choose to use both BFD 2811 model and "ietf-connectioless-oam" as basis and augment the "ietf- 2812 connectionless-oam" model with bfd specific details. The bfd 2813 specific details can be the grouping defined in the BFD model. 2815 5.1.1. technology type extension 2817 No BFD technology type has been defined in the "ietf-connectionless- 2818 oam" model. Therefore a technology type extension is required in the 2819 LIME BFD model. 2821 The snippet below depicts an example of augmenting "bfd" type into 2822 the ietf-connectionless-oam": 2824 augment "/nd:networks/nd:network/nd:node/" 2825 +"coam:location-type/coam:ipv4-location-type" 2826 +"/coam:test-point-ipv4-location-list/" 2827 +"coam:test-point-locations/coam:technology" 2828 +"/coam:technology-string" 2829 { 2830 leaf bfd{ 2831 type string; 2832 } 2833 } 2835 5.1.2. test point attributes extension 2837 To derive a model for bfd technology, the "ietf-connectionless-oam" 2838 model can be extended. Some data nodes for bfd specific parameters 2839 can be defined and inserted into the proper "test-point-location" 2840 list. Or some new "location-type" cases can be added to support the 2841 some bfd technologies such as "bfd over MPLS-TE", etc. 2843 5.1.2.1. Define and insert new nodes into corresponding test-point- 2844 location 2846 In the "ietf-connectionless-oam" model, multiple "test-point- 2847 location" lists are defined under the "location-type" choice node. 2848 Therefore, to derive model for some bfd technologies( such as ip 2849 single-hop, ip multi-hops, etc), data nodes for bfd specific details 2850 can be defined and inserted into corresponding "test-point-locations" 2851 list. In this section, we reuse some groupings which are defined in 2852 [I-D.ietf-bfd-yang] to derive following example. 2854 The snippet below shows how the "ietf-connectionless-oam" model can 2855 be extended to "BFD IP single-hop": 2857 augment "/nd:networks/nd:network/nd:node/" 2858 +"coam:location-type/coam:ipv4-location-type" 2859 +"/coam:test-point-ipv4-location-list/" 2860 +"coam:test-point-locations" 2861 { 2862 container session-cfg { 2863 description "BFD IP single-hop session configuration"; 2864 list sessions { 2865 key "interface dest-addr"; 2866 description "List of IP single-hop sessions"; 2867 leaf interface { 2868 type if:interface-ref; 2869 description 2870 "Interface on which the BFD session is running."; 2871 } 2872 leaf dest-addr { 2873 type inet:ip-address; 2874 description "IP address of the peer"; 2875 } 2877 uses bfd:bfd-grouping-common-cfg-parms; 2878 uses bfd:bfd-grouping-echo-cfg-parms; 2879 } 2880 } 2881 } 2883 Edit note: To prevent new attribute to be defined in the CL extension 2884 model,[I-D.ietf-bfd-yang] should define the attributes that are used 2885 by CL model as grouping, then CL extension model can reuse these 2886 grouping. We will make accordingly change when these grouping are 2887 available in the BFD model. 2889 Similar augmentations can be defined to support other BFD 2890 technologies such as BFD IP multi-hop, BFD over MPLS, etc. 2892 5.1.2.2. Add new location-type cases 2894 In the "ietf-connectionless-oam" model, If no a proper "test-point- 2895 locations" can be extended, new "location-type" cases can be defined 2896 and inserted into the "location-type" choice node. 2898 Therefore, the model user can flexible add "location-type" to support 2899 other kinds of test point which are not defined in the "ietf- 2900 connectionless-oam" model. In this section, we add a new "location- 2901 type" case and reuse some groupings which are defined in 2902 [I-D.ietf-bfd-yang] to derive the following example. 2904 The snippet below shows how the "ietf-connectionless-oam" model can 2905 be extended to "BFD over MPLS-TE": 2907 augment "/nd:networks/nd:network/nd:node/coam:location-type"{ 2908 case te-location{ 2909 list test-point-location-list{ 2910 key "tunnel-name"; 2911 leaf tunnel-name{ 2912 type leafref{ 2913 path "/te:te/te:tunnels/te:tunnel/te:name"; 2914 } 2915 description 2916 "point to a te instance."; 2917 } 2918 uses bfd:bfd-grouping-common-cfg-parms; 2919 uses bfd-mpls:bfd-encap-cfg; 2920 } 2921 } 2922 } 2924 Similar augmentations can be defined to support other BFD 2925 technologies such as BFD over LAG, etc. 2927 5.2. LSP ping extension 2929 The following sections shows how the "ietf-connectionless-oam" model 2930 can be extended to cover LSP ping technology. For this purpose, a 2931 set of extension are introduced such as technology-type extension and 2932 test-point attributes extension. 2934 Note that in MPLS WG, there is a LSP Ping yang data model 2935 [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] to be produced. Users can 2936 choose to use both LSP Ping model and "ietf-connectioless-oam" as 2937 basis and augment the "ietf-connectionless-oam" model with LSP Ping 2938 specific details. The LSP Ping specific details can be the grouping 2939 defined in the LSP ping model. 2941 5.2.1. technology type extension 2943 No lsp-ping technology type has been defined in the "ietf- 2944 connectionless-oam" model. Therefore a technology type extension is 2945 required in the LIME LSP ping model. 2947 The snippet below depicts an example of augmenting "lsp-ping" type 2948 into the "ietf-connectionless-oam": 2950 augment "/nd:networks/nd:network/nd:node/" 2951 +"coam:location-type/coam:ipv4-location-type" 2952 +"/coam:test-point-ipv4-location-list/" 2953 +"coam:test-point-locations/coam:technology" 2954 +"/coam:technology-string" 2955 { 2956 leaf lsp-ping{ 2957 type string; 2958 } 2959 } 2961 5.2.2. test point attributes extension 2963 In order to derive a model for lsp-ping, the "ietf-connectionless- 2964 oam" model can be extended. Some data nodes for lsp-ping specific 2965 parameters can be defined and inserted into the proper "test-point- 2966 location" list. 2968 User can reuse the attributes or groupings which are defined in 2969 [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] to derive the "lime lsp 2970 ping" model. 2972 The snippet below depicts an example of augmenting lsp ping 2973 attributes into the "test-point-locations" list: 2975 augment "/nd:networks/nd:network/nd:node/" 2976 +"coam:location-type/coam:ipv4-location-type" 2977 +"/coam:test-point-ipv4-location-list/" 2978 +"coam:test-point-locations" 2979 { 2980 list lsp-ping { 2981 key "lsp-ping-name"; 2982 leaf lsp-ping-name { 2983 type string { 2984 length "1..31"; 2985 } 2986 mandatory "true"; 2987 description "LSP Ping test name."; 2988 ...... 2989 } 2991 Edit note: To prevent new attribute to be defined in the CL extension 2992 model,[I-D.draft-zheng-mpls-lsp-ping-yang-cfg] should define the 2993 attributes that are used by CL model as grouping, then CL extension 2994 model can reuse these grouping. We will make accordingly change when 2995 these grouping are available in the LSP ping model. 2997 6. Security Considerations 2999 TBD. 3001 7. IANA Considerations 3003 This document registers a URI in the IETF XML registry [RFC3688] 3004 [RFC3688]. Following the format in RFC 3688, the following 3005 registration is requested to be made: 3007 URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam 3009 Registrant Contact: The IESG. 3011 XML: N/A, the requested URI is an XML namespace. 3013 This document registers a YANG module in the YANG Module Names 3014 registry [RFC6020]. 3016 name: ietf-connectionless-oam namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam 3017 prefix: goam reference: RFC XXXX 3019 8. Normative References 3021 [I-D.draft-ietf-i2rs-yang-network-topo] 3022 Clemm, A., Medved, J., Tkacik, T., Varga, R., Bahadur, N., 3023 Ananthakrishnan, H., and X. Liu, "A YANG Data Model for 3024 Network Topologies", I-D draft-ietf-i2rs-yang-network- 3025 topo-05, July 2016. 3027 [I-D.draft-zheng-mpls-lsp-ping-yang-cfg] 3028 Zheng, L., Aldrin, S., Zheng, G., Mirsky, G., and R. 3029 Rahman, "Yang Data Model for LSP-PING", I-D draft-zheng- 3030 mpls-lsp-ping-yang-cfg-03, March 2016. 3032 [I-D.ietf-bfd-yang] 3033 Zheng, L., Rahman, R., Networks, J., Jethanandani, M., and 3034 G. Mirsky, "Yang Data Model for Bidirectional Forwarding 3035 Detection (BFD)", draft-ietf-bfd-yang-03 (work in 3036 progress), July 2016. 3038 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3039 Requirement Levels", BCP 14, RFC 2119, 3040 DOI 10.17487/RFC2119, March 1997, 3041 . 3043 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 3044 the Network Configuration Protocol (NETCONF)", RFC 6020, 3045 DOI 10.17487/RFC6020, October 2010, 3046 . 3048 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 3049 and A. Bierman, Ed., "Network Configuration Protocol 3050 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 3051 . 3053 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 3054 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 3055 . 3057 [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, 3058 September 1981. 3060 Authors' Addresses 3062 Deepak Kumar 3063 CISCO Systems 3064 510 McCarthy Blvd 3065 Milpitas, CA 95035 3066 USA 3068 Email: dekumar@cisco.com 3070 Michael Wang 3071 Huawei Technologies,Co.,Ltd 3072 101 Software Avenue, Yuhua District 3073 Nanjing 210012 3074 China 3076 Email: wangzitao@huawei.com 3078 Qin Wu 3079 Huawei 3080 101 Software Avenue, Yuhua District 3081 Nanjing, Jiangsu 210012 3082 China 3084 Email: bill.wu@huawei.com 3085 Reshad Rahman 3086 CISCO Systems 3087 2000 Innovation Drive 3088 KANATA, ONTARIO K2K 3E8 3089 CANADA 3091 Email: rrahman@cisco.com 3093 Srihari Raghavan 3094 CISCO Systems 3095 TRIL INFOPARK SEZ, Ramanujan IT City 3096 NEVILLE BLOCK, 2nd floor, Old Mahabalipuram Road 3097 CHENNAI, TAMIL NADU 600113 3098 INDIA 3100 Email: srihari@cisco.com