idnits 2.17.00 (12 Aug 2021) /tmp/idnits33459/draft-ietf-lime-yang-connectionless-oam-13.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 18 instances of too long lines in the document, the longest one being 19 characters in excess of 72. -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 369 has weird spacing: '...y-check boo...' == Line 395 has weird spacing: '...y-check boo...' == Line 415 has weird spacing: '...ocation yan...' == Line 420 has weird spacing: '...y-check boo...' == Line 446 has weird spacing: '...y-check boo...' == (1 more instance...) -- The document date (October 23, 2017) is 1670 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) == Unused Reference: 'RFC6991' is defined on line 2318, but no explicit reference was found in the text == Unused Reference: 'RFC7223' is defined on line 2322, but no explicit reference was found in the text == Unused Reference: 'RFC5462' is defined on line 2382, but no explicit reference was found in the text ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) ** Obsolete normative reference: RFC 6536 (Obsoleted by RFC 8341) ** Obsolete normative reference: RFC 7223 (Obsoleted by RFC 8343) == Outdated reference: draft-ietf-bfd-yang has been published as RFC 9127 == Outdated reference: draft-ietf-i2rs-yang-network-topo has been published as RFC 8345 == Outdated reference: draft-ietf-lime-yang-connection-oriented-oam-model has been published as RFC 8531 == Outdated reference: draft-ietf-lime-yang-connectionless-oam-methods has been published as RFC 8533 == Outdated reference: draft-ietf-netmod-schema-mount has been published as RFC 8528 == Outdated reference: draft-ietf-spring-sr-yang has been published as RFC 9020 == Outdated reference: A later version (-10) exists of draft-zheng-mpls-lsp-ping-yang-cfg-05 Summary: 4 errors (**), 0 flaws (~~), 17 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group D. Kumar 3 Internet-Draft Cisco 4 Intended status: Standards Track M. Wang 5 Expires: April 26, 2018 Q. Wu 6 Huawei 7 R. Rahman 8 S. Raghavan 9 Cisco 10 October 23, 2017 12 Generic YANG Data Model for Operations, Administration, and 13 Maintenance(OAM) protocols for Connectionless networks 14 draft-ietf-lime-yang-connectionless-oam-13 16 Abstract 18 This document presents a base YANG Data model for connectionless 19 Operations Administration, and Maintenance(OAM) protocols. It 20 provides a technology-independent abstraction of key OAM constructs 21 for connectionless protocols. The base model presented here can be 22 extended to include technology specific details. This is leading to 23 uniformity between OAM protocols and support both nested OAM 24 workflows (i.e., performing OAM functions at different or same levels 25 through a unified interface) and interacting OAM workflows ( i.e., 26 performing OAM functions at same levels through a unified interface). 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at https://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on April 26, 2018. 45 Copyright Notice 47 Copyright (c) 2017 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (https://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 63 2. Conventions used in this document . . . . . . . . . . . . . . 3 64 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 65 3. Overview of the Connectionless OAM Model . . . . . . . . . . 4 66 3.1. TP Address . . . . . . . . . . . . . . . . . . . . . . . 5 67 3.2. Tools . . . . . . . . . . . . . . . . . . . . . . . . . . 6 68 3.3. OAM neighboring test points . . . . . . . . . . . . . . . 6 69 3.4. Test Point Locations Information . . . . . . . . . . . . 7 70 3.5. Test Point Locations . . . . . . . . . . . . . . . . . . 7 71 3.6. Path Discovery Data . . . . . . . . . . . . . . . . . . . 7 72 3.7. Continuity Check Data . . . . . . . . . . . . . . . . . . 8 73 3.8. OAM data hierarchy . . . . . . . . . . . . . . . . . . . 8 74 4. OAM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 11 75 5. Connectionless model applicability . . . . . . . . . . . . . 39 76 5.1. BFD Extension . . . . . . . . . . . . . . . . . . . . . . 39 77 5.1.1. Augment Method . . . . . . . . . . . . . . . . . . . 39 78 5.1.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 42 79 5.2. LSP ping extension . . . . . . . . . . . . . . . . . . . 44 80 5.2.1. Augment Method . . . . . . . . . . . . . . . . . . . 44 81 5.2.2. Schema Mount . . . . . . . . . . . . . . . . . . . . 45 82 6. Security Considerations . . . . . . . . . . . . . . . . . . . 47 83 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 49 84 8. Acknowlegements . . . . . . . . . . . . . . . . . . . . . . . 49 85 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 49 86 9.1. Normative References . . . . . . . . . . . . . . . . . . 49 87 9.2. Informative References . . . . . . . . . . . . . . . . . 50 88 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 52 90 1. Introduction 92 Operations, Administration, and Maintenance (OAM) are important 93 networking functions that allow operators to: 95 1. Monitor networks connections (Reachability Verification, 96 Continuity Check). 98 2. Troubleshoot failures (Fault verification and localization). 100 3. Monitor Performance 102 An overview of OAM tools is presented at [RFC7276]. 104 Ping and Traceroute [RFC792], [RFC4443] are well-known fault 105 verification and isolation tools, respectively, for IP networks. 106 Over the years, different technologies have developed similar tools 107 for similar purposes. 109 The different OAM tools may support connection-oriented technologies 110 or connectionless technologies. In connection-oriented technologies, 111 a connection is established prior to the transmission of data. After 112 connection is established, no additional control information such as 113 signaling or operations and maintenance information is required to 114 transmit the data. In connectionless technologies, data is typically 115 sent between end points without prior arrangement, but control 116 information is required to identify destination.[G.800][RFC7276]. 117 Note that the Connection-Oriented OAM YANG DATA model is defined in 118 [I-D.ietf-lime-yang-connection-oriented-oam-model]. 120 In this document, we presents a base YANG Data model for 121 connectionless OAM protocols. The generic YANG model for 122 connectionless OAM only includes configuration data and state data. 123 It can be used in conjunction with data retrieval method model 124 [I-D.ietf-lime-yang-connectionless-oam-methods], which focuses on 125 data retrieval procedures like RPC. However it also can be used 126 independently of data retrieval method model. 128 2. Conventions used in this document 130 The following terms are defined in [RFC6241] and are not redefined 131 here: 133 o client 135 o configuration data 137 o server 138 o state data 140 The following terms are defined in [RFC6020] and are not redefined 141 here: 143 o augment 145 o data model 147 o data node 149 The terminology for describing YANG data models is found in 150 [RFC6020]. 152 2.1. Terminology 154 TP - Test Point 156 MAC - Media Access Control 158 BFD - Bidirectional Forwarding Detection 160 RPC - A Remote Procedure Call 162 RPC operation - A specific Remote Procedure Call. 164 CC - Continuity Check [RFC7276] , Continuity Checks are used to 165 verify that a destination is reachable and therefore also referred to 166 as reachability verification 168 3. Overview of the Connectionless OAM Model 170 The model is augmented to "/nd:networks/nd:network/nd:node" 171 [I-D.ietf-i2rs-yang-network-topo] using 'test-point-locations' 172 defined in Section 3.5. The tool attribute 'tp-tools' grouping 173 defined in this model is corresponding to technology-independent 174 retrieval procedures (RPC operations) defined in 175 [I-D.ietf-lime-yang-connectionless-oam-methods] and supports one of 176 two basic types of activation: proactive and on-demand (determined by 177 'session-type' grouping defined in this model, see section 3.2). 179 At the top of the model, there is an 'cc-oper-data' container for 180 session statistics. Grouping is also defined for common session 181 statistics and these are only applicable for proactive OAM sessions. 183 Multiple 'test-point-locations' keyed using technology specific keys 184 (eg., IPv4 address for IPv4 locations) are augmented into network 185 nodes which are defined in [I-D.ietf-i2rs-yang-network-topo] to 186 describe the network hierarchies and the inventory of nodes contained 187 in a network. Each test point location under 'test-point-locations 188 'grouping is chosen based on 'tp-location-type' leaf which when 189 chosen, leads to a container that includes a list of 'test-point- 190 locations' keyed by technology specific keys (e.g., 'ipv4-location' 191 leaf ). Each test point location under 'test-point-locations 192 'grouping includes a 'test-point-location-info' grouping. The 'test- 193 point-location-info' grouping includes 'tp-technology' grouping, 'tp- 194 tools' grouping, and 'connectionless-oam-tps' grouping. The 195 groupings of 'tp-address' and 'tp-address-ni' are kept out of 'test- 196 point-location-info' grouping to make it addressing agnostic and 197 allow varied composition. Depending upon the choice of the 'tp- 198 location-type' (determined by the 'tp-address-ni'), the containers 199 differ in its composition of 'test- point-locations' while the 'test- 200 point-location-info', is a common aspect of every 'test-point- 201 locations'. The 'tp-address-ni' grouping is used to describe the 202 corresponding network instance. The 'tp-technology'grouping indicate 203 OAM technology details. The 'tp-tools' grouping describe the OAM 204 tools supported. The 'connectionless-oam-tps' grouping is used to 205 describe the relationship of one test point with other test points. 206 The 'position' in 'oam-neighboring-tps' indicate relative position of 207 neighboring test point corresponding to the current test point. 209 3.1. TP Address 211 In connectionless OAM, the TP address is defined with the following 212 type: 214 o MAC address [RFC6136] 216 o IPv4 or IPv6 address 218 o TP-attribute 220 o System-id to represent the device or 221 node.[I-D.ietf-spring-sr-yang] 223 To define a forwarding treatment of a test packet, the 'tp- 224 address'grouping needs to be associated with additional parameters, 225 e.g. DSCP for IP or EXP (renamed to Traffic Classic in RFC5462) for 226 MPLS. In generic connectionless OAM YANG model, these parameters are 227 not explicit configured. The model user can add corresponding 228 parameters according to their requirements. 230 3.2. Tools 232 The different OAM tools may be used in one of two basic types of 233 activation: proactive and on-demand. The proactive OAM refers to OAM 234 actions which are carried out continuously to permit proactive 235 reporting of fault. The proactive OAM method requires persistent 236 configuration. The on-demand OAM refers to OAM actions which are 237 initiated via manual intervention for a limited time to carry out 238 diagnostics. The on-demand OAM method requires only transient 239 configuration.[RFC7276] [G.8013]. In connectionless OAM, 'session- 240 type' grouping is defined to indicate which kind of activation will 241 be used by the current session. 243 In connectionless OAM, the tools attribute is used to describe a 244 toolset for fault detection and isolation. And it can serve as a 245 constraint condition when the base model be extended to specific OAM 246 technology. For example, to fulfill the ICMP PING configuration, the 247 "../coam:continuity-check" leaf should be set to "true", and then the 248 lime base model should be augmented with ICMP PING specific details. 250 3.3. OAM neighboring test points 252 As typical networks have a multi-layer architecture, the set of OAM 253 protocols similarly take a multi-layer structure; each layer may have 254 its own OAM protocol [RFC7276] corresponding to a specific 255 administrative domain and has associated test points. OAM 256 neighboring test points are referred to a list of neighboring test 257 points in the same layer that are related to the current test point. 258 This allows users to easily navigate between related neighboring 259 layers to efficiently troubleshoot a defect. In this model, the 260 'position' leaf defines the relative position of the neighboring test 261 point corresponding to the current test point in the same layer, and 262 is provided to allow correlation of faults at different locations. 263 If there is one neighboring test point placed before the current test 264 point, the 'position' leaf is set to -1. If there is one neighboring 265 test point placed after the current test point, the 'position' leaf 266 is set to 1. If there is no neighboring test point placed before or 267 after the current test point, the 'position' leaf is set to 0. 269 list oam-neighboring-tps { 270 key "index"; 271 leaf index { 272 type uint16 { 273 range "0..65536"; 274 } 275 description 276 "Index of a list of neighboring test points 277 in the same layer "; 278 } 279 leaf position { 280 type int8 { 281 range "-1..1"; 282 } 283 description 284 "The relative position 285 of neighboring test point 286 corresponding to the current 287 test point"; 288 } 290 description 291 "List of related neighboring test points in the same layer."; 293 } 295 3.4. Test Point Locations Information 297 This is a generic grouping for Test Point Locations Information 298 (i.e., test-point-location-info grouping). It Provide details of 299 Test Point Location using 'tp-technology','tp-tools' grouping, 'oam- 300 neighboring-tps' grouping defined above. 302 3.5. Test Point Locations 304 This is a generic grouping for Test Point Locations. 'tp-location- 305 type 'leaf is used to define locations types, for example 'ipv4- 306 location-type', 'ipv6-location-type', etc. Container is defined 307 under each location type containing list keyed to test point address, 308 Test Point Location Information defined in section above, and network 309 instance name(e.g.,VRF instance name) if required. 311 3.6. Path Discovery Data 313 This is a generic grouping for path discovery data model that can be 314 retrieved by any data retrieval methods including RPC operations. 315 Path discovery data output from methods, includes 'src-test-point' 316 container, 'dst-test-point' container, 'sequence-number'leaf, 'hop- 317 cnt'leaf, session statistics of various kinds, path verification and 318 path trace related information. Path discovery includes data to be 319 retrieved on a 'per- hop' basis via a list of 'path-trace-info- 320 list'list which includes information like 'timestamp'grouping, ' 321 ingress-intf-name ', ' egress-intf-name ' and 'app-meta-data'. The 322 path discovery data model is made generic enough to allow different 323 methods of data retrieval. None of the fields are made mandatory for 324 that reason. Noted that the retrieval methods are defined in 325 [I-D.ietf-lime-yang-connectionless-oam-methods]. 327 3.7. Continuity Check Data 329 This is a generic grouping for continuity check data model that can 330 be retrieved by any data retrieval methods including RPC operations. 331 Continuity check data output from methods, includes 'src-test- 332 point'container, 'dst-test-point'container, 'sequence-number' leaf, 333 'hop-cnt'leaf and session statistics of various kinds. The 334 continuity check data model is made generic enough to allow different 335 methods of data retrieval. None of the fields are made mandatory for 336 that reason. Noted that the retrieval methods are defined in 337 [I-D.ietf-lime-yang-connectionless-oam-methods]. 339 3.8. OAM data hierarchy 341 The complete data hierarchy related to the OAM YANG model is 342 presented below. 344 module: ietf-connectionless-oam 345 +--ro cc-session-statistics-data {continuity-check}? 346 +--ro cc-ipv4-sessions-statistics 347 | +--ro cc-session-statistics 348 | +--ro session-count? uint32 349 | +--ro session-up-count? uint32 350 | +--ro session-down-count? uint32 351 | +--ro session-admin-down-count? uint32 352 +--ro cc-ipv6-sessions-statistics 353 +--ro cc-session-statistics 354 +--ro session-count? uint32 355 +--ro session-up-count? uint32 356 +--ro session-down-count? uint32 357 +--ro session-admin-down-count? uint32 358 augment /nd:networks/nd:network/nd:node: 359 +--rw tp-location-type? identityref 360 +--rw ipv4-location-type 361 | +--rw test-point-ipv4-location-list 362 | +--rw test-point-locations* [ipv4-location ni] 363 | +--rw ipv4-location inet:ipv4-address 364 | +--rw ni routing-instance-ref 365 | +--rw (technology)? 366 | | +--:(technology-null) 367 | | +--rw tech-null? empty 368 | +--rw tp-tools 369 | | +--rw continuity-check boolean 370 | | +--rw path-discovery boolean 371 | +--rw root? 372 | +--rw oam-neighboring-tps* [index] 373 | +--rw index uint16 374 | +--rw position? int8 375 | +--rw (tp-location)? 376 | +--:(mac-address) 377 | | +--rw mac-address-location? yang:mac-address 378 | +--:(ipv4-address) 379 | | +--rw ipv4-address-location? inet:ipv4-address 380 | +--:(ipv6-address) 381 | | +--rw ipv6-address-location? inet:ipv6-address 382 | +--:(as-number) 383 | | +--rw as-number-location? inet:as-number 384 | +--:(system-id) 385 | +--rw system-id-location? router-id 386 +--rw ipv6-location-type 387 | +--rw test-point-ipv6-location-list 388 | +--rw test-point-locations* [ipv6-location ni] 389 | +--rw ipv6-location inet:ipv6-address 390 | +--rw ni routing-instance-ref 391 | +--rw (technology)? 392 | | +--:(technology-null) 393 | | +--rw tech-null? empty 394 | +--rw tp-tools 395 | | +--rw continuity-check boolean 396 | | +--rw path-discovery boolean 397 | +--rw root? 398 | +--rw oam-neighboring-tps* [index] 399 | +--rw index uint16 400 | +--rw position? int8 401 | +--rw (tp-location)? 402 | +--:(mac-address) 403 | | +--rw mac-address-location? yang:mac-address 404 | +--:(ipv4-address) 405 | | +--rw ipv4-address-location? inet:ipv4-address 406 | +--:(ipv6-address) 407 | | +--rw ipv6-address-location? inet:ipv6-address 408 | +--:(as-number) 409 | | +--rw as-number-location? inet:as-number 410 | +--:(system-id) 411 | +--rw system-id-location? router-id 412 +--rw mac-location-type 413 | +--rw test-point-mac-address-location-list 414 | +--rw test-point-locations* [mac-address-location] 415 | +--rw mac-address-location yang:mac-address 416 | +--rw (technology)? 417 | | +--:(technology-null) 418 | | +--rw tech-null? empty 419 | +--rw tp-tools 420 | | +--rw continuity-check boolean 421 | | +--rw path-discovery boolean 422 | +--rw root? 423 | +--rw oam-neighboring-tps* [index] 424 | +--rw index uint16 425 | +--rw position? int8 426 | +--rw (tp-location)? 427 | +--:(mac-address) 428 | | +--rw mac-address-location? yang:mac-address 429 | +--:(ipv4-address) 430 | | +--rw ipv4-address-location? inet:ipv4-address 431 | +--:(ipv6-address) 432 | | +--rw ipv6-address-location? inet:ipv6-address 433 | +--:(as-number) 434 | | +--rw as-number-location? inet:as-number 435 | +--:(system-id) 436 | +--rw system-id-location? router-id 437 +--rw group-as-number-location-type 438 | +--rw test-point-as-number-location-list 439 | +--rw test-point-locations* [as-number-location] 440 | +--rw as-number-location inet:as-number 441 | +--rw ni? routing-instance-ref 442 | +--rw (technology)? 443 | | +--:(technology-null) 444 | | +--rw tech-null? empty 445 | +--rw tp-tools 446 | | +--rw continuity-check boolean 447 | | +--rw path-discovery boolean 448 | +--rw root? 449 | +--rw oam-neighboring-tps* [index] 450 | +--rw index uint16 451 | +--rw position? int8 452 | +--rw (tp-location)? 453 | +--:(mac-address) 454 | | +--rw mac-address-location? yang:mac-address 455 | +--:(ipv4-address) 456 | | +--rw ipv4-address-location? inet:ipv4-address 457 | +--:(ipv6-address) 458 | | +--rw ipv6-address-location? inet:ipv6-address 459 | +--:(as-number) 460 | | +--rw as-number-location? inet:as-number 461 | +--:(system-id) 462 | +--rw system-id-location? router-id 463 +--rw group-system-id-location-type 464 +--rw test-point-system-info-location-list 465 +--rw test-point-locations* [system-id-location] 466 +--rw system-id-location inet:uri 467 +--rw ni? routing-instance-ref 468 +--rw (technology)? 469 | +--:(technology-null) 470 | +--rw tech-null? empty 471 +--rw tp-tools 472 | +--rw continuity-check boolean 473 | +--rw path-discovery boolean 474 +--rw root? 475 +--rw oam-neighboring-tps* [index] 476 +--rw index uint16 477 +--rw position? int8 478 +--rw (tp-location)? 479 +--:(mac-address) 480 | +--rw mac-address-location? yang:mac-address 481 +--:(ipv4-address) 482 | +--rw ipv4-address-location? inet:ipv4-address 483 +--:(ipv6-address) 484 | +--rw ipv6-address-location? inet:ipv6-address 485 +--:(as-number) 486 | +--rw as-number-location? inet:as-number 487 +--:(system-id) 488 +--rw system-id-location? router-id 490 4. OAM YANG Module 492 file "ietf-connectionless-oam@2017-09-06.yang" 494 module ietf-connectionless-oam { 495 yang-version 1.1; 496 namespace "urn:ietf:params:xml:ns:yang:ietf-connectionless-oam"; 497 prefix cl-oam; 498 import ietf-yang-schema-mount { 499 prefix yangmnt; 500 } 501 import ietf-network { 502 prefix nd; 503 } 504 import ietf-yang-types { 505 prefix yang; 506 } 507 import ietf-interfaces { 508 prefix if; 509 } 510 import ietf-inet-types { 511 prefix inet; 512 } 513 import ietf-network-instance { 514 prefix ni; 515 } 516 import ietf-routing-types { 517 prefix rt; 518 } 519 organization 520 "IETF LIME Working Group"; 521 contact 522 "Deepak Kumar dekumar@cisco.com 523 Qin Wu bill.wu@huawei.com 524 S Raghavan srihari@cisco.com 525 Zitao Wang wangzitao@huawei.com 526 R Rahman rrahman@cisco.com"; 527 description 528 "This YANG module defines the generic configuration, 529 data model, statistics for connectionless OAM to be 530 used within IETF in a protocol independent manner. 531 It is assumed that each protocol maps corresponding 532 abstracts to its native format. Each protocol may 533 extend the YANG model defined here to include protocol 534 specific extensions"; 535 revision 2017-09-06 { 536 description 537 " Base model for Connectionless 538 Operations, Administration, 539 and Maintenance(OAM) "; 540 reference 541 " RFC XXXX: Connectionless 542 Operations, Administration, and 543 Maintenance(OAM)YANG Data Model"; 544 } 545 feature connection-less { 546 description 547 "This feature indicates that OAM solution is connection less."; 548 } 549 feature continuity-check { 550 description 551 "This feature indicates that the server supports 552 executing continuity check OAM command and 553 returning a response. Servers that do not advertise 554 this feature will not support executing 555 continuity check command or rpc operation model for 556 continuity check command."; 557 } 558 feature path-discovery { 559 description 560 "This feature indicates that the server supports 561 executing path discovery OAM command and 562 returning a response. Servers that do not advertise 563 this feature will not support executing 564 path discovery command or rpc operation model for 565 path discovery command."; 566 } 567 feature ptp-long-format { 568 description 569 "This feature indicates that timestamp is ptp long format."; 570 } 571 feature ntp-short-format { 572 description 573 "This feature indicates that timestamp is ntp short format."; 574 } 575 feature icmp-timestamp { 576 description 577 "This feature indicates that timestamp is icmp timestamp."; 578 } 579 typedef router-id { 580 type yang:dotted-quad; 581 description 582 "A 32-bit number in the dotted quad format assigned to each 583 router. This number uniquely identifies the router within an 584 Autonomous System."; 585 } 586 typedef routing-instance-ref { 587 type leafref { 588 path "/ni:network-instances/ni:network-instance/ni:name"; 589 } 590 description 591 "This type is used for leafs that reference a routing instance 592 configuration."; 593 } 594 identity address-attribute-types { 595 description 596 "This is base identity of address 597 attribute types which are ip-prefix, 598 bgp, tunnel, pwe3, vpls, etc."; 599 } 600 typedef address-attribute-type { 601 type identityref { 602 base address-attribute-types; 603 } 604 description 605 "Target address attribute type."; 606 } 607 identity time-interval-type { 608 description 609 "Time interval type"; 610 } 611 identity hours { 612 base time-interval-type; 613 description 614 "Time unit in Hours"; 615 } 617 identity minutes { 618 base time-interval-type; 619 description 620 "Time unit in Minutes"; 621 } 622 identity seconds { 623 base time-interval-type; 624 description 625 "Time unit in Seconds"; 626 } 627 identity milliseconds { 628 base time-interval-type; 629 description 630 "Time unit in Milliseconds"; 631 } 632 identity microseconds { 633 base time-interval-type; 634 description 635 "Time unit in Microseconds"; 636 } 637 identity nanoseconds { 638 base time-interval-type; 639 description 640 "Time unit in Nanoseconds"; 641 } 643 identity timestamp-type { 644 description 645 "Base identity for Timestamp Type."; 646 } 647 identity truncated-ptp { 648 base timestamp-type; 649 description 650 "Identity for 64bit short format PTP timestamp."; 651 } 652 identity truncated-ntp { 653 base timestamp-type; 654 description 655 "Identity for 32bit short format NTP timestamp."; 656 } 657 identity ntp64 { 658 base timestamp-type; 659 description 660 "Identity for 64bit NTP timestamp."; 661 } 662 identity icmp { 663 base timestamp-type; 664 description 666 "Identity for 32bit ICMP timestamp."; 667 } 668 grouping cc-session-statistics { 669 description 670 "Grouping for session statistics."; 671 container cc-session-statistics { 672 description 673 "cc session counters"; 674 leaf session-count { 675 type uint32; 676 default "0"; 677 description 678 "Number of Continuity Check sessions. 679 A value of zero indicates that no session 680 count is sent."; 681 } 682 leaf session-up-count { 683 type uint32; 684 default "0"; 685 description 686 "Number of sessions which are up. 687 A value of zero indicates that no up 688 session count is sent."; 689 } 690 leaf session-down-count { 691 type uint32; 692 default "0"; 693 description 694 "Number of sessions which are down. 695 A value of zero indicates that no down 696 session count is sent."; 697 } 698 leaf session-admin-down-count { 699 type uint32; 701 default "0"; 702 description 703 "Number of sessions which are admin-down. 704 A value of zero indicates that no admin 705 down session count is sent."; 706 } 707 } 708 } 709 grouping session-packet-statistics { 710 description 711 "Grouping for per session packet statistics"; 712 container session-packet-statistics { 713 description 714 "Per session packet statistics."; 716 leaf rx-packet-count { 717 type uint32{ 718 range "0..4294967295"; 719 } 720 default "0"; 721 description 722 "Total number of received OAM packet count. 723 If the value is 4294967295, 724 it indicates the packet count is overrun."; 725 } 726 leaf tx-packet-count { 727 type uint32{ 728 range "0..4294967295"; 729 } 730 default "0"; 731 description 732 "Total number of transmitted OAM packet count. 733 If the value is 4294967295, 734 it indicates the packet count is overrun."; 735 } 736 leaf rx-bad-packet { 737 type uint32 { 738 range "0..4294967295"; 739 } 740 default "0"; 741 description 742 "Total number of received bad OAM packet. 743 If the value is 4294967295, 744 it indicates the bad packet count is overrun."; 745 } 746 leaf tx-packet-failed { 747 type uint32 { 748 range "0..4294967295"; 749 } 750 default "0"; 751 description 752 "Total number of failed sending OAM packet. 753 If the value is 4294967295, it indicates 754 failed packet count is overrun."; 755 } 756 } 757 } 758 grouping cc-per-session-statistics { 759 description 760 "Grouping for per session statistics"; 761 container cc-per-session-statistics { 762 description 763 "per session statistics."; 765 leaf create-time { 766 type yang:date-and-time; 767 description 768 "Time and date when session is created."; 769 } 770 leaf last-down-time { 771 type yang:date-and-time; 772 description 773 "Time and date last time session is down."; 774 } 775 leaf last-up-time { 776 type yang:date-and-time; 777 description 778 "Time and date last time session is up."; 779 } 780 leaf down-count { 781 type uint32 { 782 range "0..4294967295"; 783 } 784 default "0"; 785 description 786 "Total Continuity Check sessions down count. 787 If the value is 4294967295, it indicates down 788 count is overrun."; 789 } 790 leaf admin-down-count { 791 type uint32 { 792 range "0..4294967295"; 793 } 794 default "0"; 795 description 796 "Total Continuity Check sessions admin down count. 798 If the value is 4294967295, it indicates admin 799 down count is overrun."; 800 } 801 uses session-packet-statistics; 802 } 803 } 804 grouping session-error-statistics { 805 description 806 "Grouping for per session error statistics"; 807 container session-error-statistics { 808 description 809 "Per session error statistics."; 810 leaf packet-loss-count { 811 type uint32 { 812 range "0..4294967295"; 813 } 814 default "0"; 815 description 816 "Total received packet drops count. 817 If the value is 4294967295, it indicates 818 packet drops count is overrun."; 819 } 821 leaf loss-ratio{ 822 type uint8{ 823 range 0..100; 824 } 825 description 826 "Loss ratio of the packets. Express as percentage 827 of packets lost with respect to packets sent."; 828 } 829 leaf packet-reorder-count { 830 type uint32 { 831 range "0..4294967295"; 832 } 833 default "0"; 834 description 835 "Total received packet reordered count. 836 If the value is 4294967295, it indicates 837 packet reorder count is overrun."; 838 } 839 leaf packets-out-of-seq-count { 840 type uint32 { 841 range "0..4294967295"; 842 } 843 description 844 "Total received out of sequence count. 845 If the value is 4294967295, it indicates 847 out of sequence count is overrun."; 848 } 849 leaf packets-dup-count { 850 type uint32 { 851 range "0..4294967295"; 852 } 853 description 854 "Total received packet duplicates count. 855 If the value is 4294967295, it indicates 856 packet duplicates count is overrun."; 857 } 858 } 859 } 860 grouping session-delay-statistics { 861 description 862 "Grouping for per session delay statistics"; 863 container session-delay-statistics { 864 description 866 "Session delay summarised information.By default, 867 one way measurement protocol (e.g., OWAMP)is used 868 to measure delay. When two way measurement protocol 869 (e.g., TWAMP) is used instead, it can be indicated 870 using and protocol-id defined in RPC operation of 871 draft-ietf-lime-yang-connectionless-oam-methods,i.e., 872 set protocol-id as OWAMP. Note that only one measurement 873 protocol for delay is specified for interoperability reason."; 874 leaf time-interval-value { 875 type identityref { 876 base time-interval-type; 877 } 878 default "milliseconds"; 879 description 880 "Time units among choice of s,ms,ns etc."; 881 } 882 leaf min-delay-value { 883 type uint32; 884 description 885 "Minimum delay value observed."; 886 } 887 leaf max-delay-value { 888 type uint32; 889 description 890 "Maximum delay value observed."; 891 } 892 leaf average-delay-value { 893 type uint32; 894 description 895 "Average delay value observed."; 896 } 897 } 898 } 899 grouping session-jitter-statistics { 900 description 901 "Grouping for per session jitter statistics"; 902 container session-jitter-statistics { 903 description 904 "Session jitter summarised information. By default, 905 jitter is measured using IP Packet Delay Variation 906 (IPDV) as defined in RFC3393. When the other measurement 907 method is used instead(e.g.,Packet Delay Variation used in 908 Y.1540, it can be indicated using protocol-id-meta-data 909 defined in RPC operation of 910 draft-ietf-lime-yang-connectionless-oam-methods. Note that 911 only one measurement method for jitter is specified 912 for interoperability reason."; 913 leaf interval-value { 915 type identityref { 916 base time-interval-type; 917 } 918 default "milliseconds"; 919 description 920 "Time units among choice of s,ms,ns etc."; 921 } 922 leaf min-jitter-value { 923 type uint32; 924 description 925 "Minimum jitter value observed."; 926 } 927 leaf max-jitter-value { 928 type uint32; 929 description 930 "Maximum jitter value observed."; 931 } 932 leaf average-jitter-value { 933 type uint32; 934 description 935 "Average jitter value observed."; 936 } 937 } 938 } 939 grouping session-path-verification-statistics { 940 description 941 "Grouping for per session path verification statistics"; 942 container session-path-verification-statistics { 943 description 944 "OAM per session path verification statistics."; 945 leaf verified-count { 946 type uint32 { 947 range "0..4294967295"; 948 } 949 description 950 "Total number of OAM packets that 951 went through a path as intended. 952 A value of 4294967295 indicates that 953 verified count is overrun."; 954 } 955 leaf failed-count { 956 type uint32 { 957 range "0..4294967295"; 958 } 959 description 960 "Total number of OAM packets that 961 went through an unintended path. 962 A value of 4294967295 indicates that 964 failed count is overrun."; 965 } 966 } 967 } 968 grouping session-type { 969 description 970 "This object indicates which kind 971 of activation will be used by the current 972 session."; 973 leaf session-type { 974 type enumeration { 975 enum "proactive" { 976 description 977 "The current session is proactive session."; 978 } 979 enum "on-demand" { 980 description 981 "The current session is on-demand session."; 982 } 983 } 984 default "on-demand"; 985 description 986 "Indicate which kind of activation will be used 987 by the current session"; 988 } 989 } 990 identity tp-address-technology-type { 991 description 992 "Test point address type"; 993 } 994 identity mac-address-type { 995 base tp-address-technology-type; 996 description 997 "MAC address type"; 998 } 999 identity ipv4-address-type { 1000 base tp-address-technology-type; 1001 description 1002 "IPv4 address type"; 1003 } 1004 identity ipv6-address-type { 1005 base tp-address-technology-type; 1006 description 1007 "IPv6 address type"; 1008 } 1009 identity tp-attribute-type { 1010 base tp-address-technology-type; 1011 description 1013 "Test point attribute type"; 1014 } 1015 identity system-id-address-type { 1016 base tp-address-technology-type; 1017 description 1018 "System id address type"; 1019 } 1020 identity as-number-address-type { 1021 base tp-address-technology-type; 1022 description 1023 "AS number address type"; 1024 } 1025 identity route-distinguisher-address-type { 1026 base tp-address-technology-type; 1027 description 1028 "Route Distinguisher address type"; 1029 } 1030 grouping tp-address { 1031 leaf tp-location-type { 1032 type identityref { 1033 base tp-address-technology-type; 1034 } 1035 mandatory true; 1036 description 1037 "Test point address type."; 1038 } 1039 container mac-address { 1040 when "derived-from-or-self(../tp-location-type, 'cl-oam:mac-address-type')" { 1041 description 1042 "MAC address type"; 1043 } 1044 leaf mac-address { 1045 type yang:mac-address; 1046 mandatory true; 1047 description 1048 "MAC Address"; 1049 } 1050 description 1051 "MAC Address based MP Addressing."; 1052 } 1053 container ipv4-address { 1054 when "derived-from-or-self(../tp-location-type, 'cl-oam:ipv4-address-type')" { 1055 description 1056 "IPv4 address type"; 1057 } 1058 leaf ipv4-address { 1059 type inet:ipv4-address; 1060 mandatory true; 1062 description 1063 "IPv4 Address"; 1064 } 1065 description 1066 "IP Address based MP Addressing."; 1067 } 1068 container ipv6-address { 1069 when "derived-from-or-self(../tp-location-type, 'cl-oam:ipv6-address-type')" { 1070 description 1071 "IPv6 address type"; 1072 } 1073 leaf ipv6-address { 1074 type inet:ipv6-address; 1075 mandatory true; 1076 description 1077 "IPv6 Address"; 1078 } 1079 description 1080 "ipv6 Address based MP Addressing."; 1081 } 1082 container tp-attribute { 1083 when "derived-from-or-self(../tp-location-type, 'cl-oam:tp-attribute-type')" { 1084 description 1085 "Test point attribute type"; 1086 } 1087 leaf tp-attribute-type { 1088 type address-attribute-type; 1089 description 1090 "Test point type."; 1091 } 1092 choice tp-attribute-value { 1093 description 1094 "Test point value."; 1095 case ip-prefix { 1096 leaf ip-prefix { 1097 type inet:ip-prefix; 1098 description 1099 "IP prefix."; 1100 } 1101 } 1102 case bgp { 1103 leaf bgp { 1104 type inet:ip-prefix; 1105 description 1106 "BGP Labeled Prefix "; 1107 } 1108 } 1109 case tunnel { 1111 leaf tunnel-interface { 1112 type uint32; 1113 description 1114 "VPN Prefix "; 1115 } 1116 } 1117 case pw { 1118 leaf remote-pe-address { 1119 type inet:ip-address; 1120 description 1121 "Remote pe address."; 1122 } 1123 leaf pw-id { 1124 type uint32; 1125 description 1126 "Pseudowire ID is a non-zero 32-bit ID."; 1127 reference 1128 "RFC 4379 :Detecting Multi-Protocol Label 1129 Switched (MPLS) Data Plane Failures"; 1130 } 1131 } 1132 case vpls { 1133 leaf route-distinguisher { 1134 type rt:route-distinguisher; 1135 description 1136 "Route Distinguisher is an 8 octets identifier 1137 used to distinguish information about various 1138 L2VPN advertised by a node."; 1139 reference 1140 "RFC 4379 :Detecting Multi-Protocol Label 1141 Switched (MPLS) Data Plane Failures"; 1142 } 1143 leaf sender-ve-id { 1144 type uint16; 1145 description 1146 "Sender's VE ID. The VE ID (VPLS Edge Identifier) 1147 is a 2-octet identifier."; 1148 reference 1149 "RFC 4379 :Detecting Multi-Protocol Label 1150 Switched (MPLS) Data Plane Failures"; 1151 } 1152 leaf receiver-ve-id { 1153 type uint16; 1154 description 1155 "Receiver's VE ID.The VE ID (VPLS Edge Identifier) 1156 is a 2-octet identifier."; 1157 reference 1158 "RFC 4379 :Detecting Multi-Protocol Label 1160 Switched (MPLS) Data Plane Failures"; 1161 } 1162 } 1163 case mpls-mldp { 1164 choice root-address { 1165 description 1166 "Root address choice."; 1167 case ip-address { 1168 leaf source-address { 1169 type inet:ip-address; 1170 description 1171 "IP address."; 1172 } 1173 leaf group-ip-address { 1174 type inet:ip-address; 1175 description 1176 "Group ip address."; 1177 } 1178 } 1179 case vpn { 1180 leaf as-number { 1181 type inet:as-number; 1182 description 1183 "The AS number represents autonomous system 1184 numbers which identify an Autonomous System."; 1185 } 1186 } 1187 case global-id { 1188 leaf lsp-id { 1189 type string; 1190 description 1191 "LSP ID is an identifier of a LSP 1192 within a MPLS network."; 1193 reference 1194 "RFC 4379 :Detecting Multi-Protocol Label 1195 Switched (MPLS) Data Plane Failures"; 1196 } 1197 } 1198 } 1199 } 1200 } 1201 description 1202 "Test Point Attribute Container"; 1203 } 1204 container system-info { 1205 when "derived-from-or-self(../tp-location-type, 'cl-oam:system-id-address-type')" { 1206 description 1207 "System id address type"; 1209 } 1210 leaf system-id { 1211 type rt:router-id; 1212 description 1213 "System ID assigned to this node."; 1214 } 1215 description 1216 "system ID container."; 1217 } 1218 description 1219 "TP Address"; 1220 } 1221 grouping tp-address-ni { 1222 description 1223 "Test point address with VRF."; 1224 leaf ni { 1225 type routing-instance-ref; 1226 description 1227 "The ni is used to describe virtual resource partitioning 1228 that may be present on a network device.Example of common 1229 industry terms for virtual resource partitioning is VRF 1230 instance."; 1232 } 1233 uses tp-address; 1234 } 1235 grouping connectionless-oam-tps { 1236 list oam-neighboring-tps { 1237 key "index"; 1238 leaf index { 1239 type uint16{ 1240 range "0..65535"; 1241 } 1242 description 1243 "Index of a list of neighboring test points 1244 in the same layer"; 1245 } 1246 leaf position { 1247 type int8 { 1248 range "-1..1"; 1249 } 1250 default "0"; 1251 description 1252 "The relative position 1253 of neighboring test point 1254 corresponding to the current 1255 test point.Level 0 indicates no neighboring 1256 test points placed before or after the current 1257 test point in the same layer.-1 means there is 1259 a neighboring test point placed before the current 1260 test point in the same layer and +1 means there is 1261 a neighboring test point placed after the current 1262 test point in same layer."; 1263 } 1264 choice tp-location { 1265 case mac-address { 1266 leaf mac-address-location { 1267 type yang:mac-address; 1268 description 1269 "MAC Address"; 1270 } 1271 description 1272 "MAC Address based MP Addressing."; 1273 } 1274 case ipv4-address { 1275 leaf ipv4-address-location { 1276 type inet:ipv4-address; 1277 description 1278 "Ipv4 Address"; 1279 } 1280 description 1281 "IP Address based MP Addressing."; 1282 } 1283 case ipv6-address { 1284 leaf ipv6-address-location { 1285 type inet:ipv6-address; 1286 description 1287 "IPv6 Address"; 1288 } 1289 description 1290 "IPv6 Address based MP Addressing."; 1291 } 1292 case as-number { 1293 leaf as-number-location { 1294 type inet:as-number; 1295 description 1296 "AS number location"; 1297 } 1298 description 1299 "AS number for point to multipoint OAM"; 1300 } 1301 case system-id { 1302 leaf system-id-location { 1303 type router-id; 1304 description 1305 "System id location"; 1306 } 1308 description 1309 "System ID"; 1310 } 1311 description 1312 "TP location."; 1313 } 1314 description 1315 "List of neighboring test points in the same layer that are related to current test 1316 point. If the neighboring test-point is placed after the current test point, the 1317 position is specified as +1. If neighboring test-point 1318 is placed before the current test point, the position is specified 1319 as -1, if no neighboring test points placed before or after the current 1320 test point in the same layer, the position is specified as 0."; 1321 } 1322 description 1323 "Connectionless OAM related neighboring test points list."; 1324 } 1325 grouping tp-technology { 1326 choice technology { 1327 default "technology-null"; 1328 case technology-null { 1329 description 1330 "This is a placeholder when no technology is needed."; 1331 leaf tech-null { 1332 type empty; 1333 description 1334 "There is no technology to be defined."; 1335 } 1336 } 1337 description 1338 "Technology choice."; 1339 } 1340 description 1341 "OAM Technology"; 1342 } 1343 grouping tp-tools { 1344 description 1345 "Test Point OAM Toolset."; 1346 container tp-tools { 1347 leaf continuity-check { 1348 type boolean; 1349 mandatory true; 1350 description 1351 "A flag indicating whether or not the 1352 continuity check function is supported."; 1353 reference 1355 "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. 1356 RFC 4443: Internet Control Message Protocol (ICMPv6) 1357 for the Internet Protocol Version 6 (IPv6) Specification. 1358 RFC 5880: Bidirectional Forwarding Detection. 1359 RFC 5881: BFD for IPv4 and IPv6. 1360 RFC 5883: BFD for Multihop Paths. 1361 RFC 5884: BFD for MPLS Label Switched Paths. 1362 RFC 5885: BFD for PW VCCV. 1363 RFC 6450: Multicast Ping Protocol. 1364 RFC 8029: Detecting Multiprotocol Label Switched 1365 (MPLS) Data-Plane Failures."; 1366 } 1367 leaf path-discovery { 1368 type boolean; 1369 mandatory true; 1370 description 1371 "A flag indicating whether or not the 1372 path discovery function is supported."; 1373 reference 1374 "RFC 792: INTERNET CONTROL MESSAGE PROTOCOL. 1375 RFC 4443: Internet Control Message Protocol (ICMPv6) 1376 for the Internet Protocol Version 6 (IPv6) Specification. 1377 RFC 4884: Extended ICMP to Support Multi-part Message. 1378 RFC 5837:Extending ICMP for Interface. 1379 and Next-Hop Identification. 1380 RFC 8029: Detecting Multiprotocol Label Switched (MPLS) 1381 Data-Plane Failures."; 1382 } 1383 description 1384 "Container for test point OAM tools set."; 1385 } 1386 } 1387 grouping test-point-location-info { 1388 uses tp-technology; 1389 uses tp-tools; 1390 anydata root { 1391 yangmnt:mount-point "root"; 1392 description 1393 "Root for models supported per 1394 test point"; 1395 } 1396 uses connectionless-oam-tps; 1397 description 1398 "Test point Location"; 1399 } 1400 grouping test-point-locations { 1401 description 1402 "Group of test point locations."; 1404 leaf tp-location-type { 1405 type identityref { 1406 base tp-address-technology-type; 1407 } 1408 description 1409 "Test point location type."; 1410 } 1411 container ipv4-location-type { 1412 when "derived-from-or-self(../tp-location-type, 'cl-oam:ipv4-address-type')" { 1413 description 1414 "When test point location type is equal to ipv4 address."; 1415 } 1416 container test-point-ipv4-location-list { 1417 list test-point-locations { 1418 key "ipv4-location ni"; 1419 leaf ipv4-location { 1420 type inet:ipv4-address; 1421 description 1422 "IPv4 Address."; 1423 } 1424 leaf ni { 1425 type routing-instance-ref; 1426 description 1427 "The ni is used to describe the 1428 corresponding network instance"; 1429 } 1430 uses test-point-location-info; 1431 description 1432 "List of test point locations."; 1433 } 1434 description 1435 "Serves as top-level container 1436 for test point location list."; 1437 } 1438 description 1439 "ipv4 location type container."; 1440 } 1441 container ipv6-location-type { 1442 when "derived-from-or-self(../tp-location-type, 'cl-oam:ipv6-address-type')" { 1443 description 1444 "when test point location is equal to ipv6 address"; 1445 } 1446 container test-point-ipv6-location-list { 1447 list test-point-locations { 1448 key "ipv6-location ni"; 1449 leaf ipv6-location { 1450 type inet:ipv6-address; 1451 description 1453 "IPv6 Address."; 1454 } 1455 leaf ni { 1456 type routing-instance-ref; 1457 description 1458 "The ni is used to describe the 1459 corresponding network instance"; 1460 } 1461 uses test-point-location-info; 1462 description 1463 "List of test point locations."; 1464 } 1465 description 1466 "Serves as top-level container 1467 for test point location list."; 1468 } 1469 description 1470 "ipv6 location type container."; 1471 } 1472 container mac-location-type { 1473 when "derived-from-or-self(../tp-location-type, 'cl-oam:mac-address-type')" { 1474 description 1475 "when test point location type is equal to mac address."; 1476 } 1477 container test-point-mac-address-location-list { 1478 list test-point-locations { 1479 key "mac-address-location"; 1480 leaf mac-address-location { 1481 type yang:mac-address; 1482 description 1483 "MAC Address"; 1484 } 1485 uses test-point-location-info; 1486 description 1487 "List of test point locations."; 1488 } 1489 description 1490 "Serves as top-level container 1491 for test point location list."; 1492 } 1493 description 1494 "mac address location type container."; 1495 } 1496 container group-as-number-location-type { 1497 when "derived-from-or-self(../tp-location-type, 'cl-oam:as-number-address-type')" { 1498 description 1499 "when test point location type is equal to as-number."; 1500 } 1502 container test-point-as-number-location-list { 1503 list test-point-locations { 1504 key "as-number-location"; 1505 leaf as-number-location { 1506 type inet:as-number; 1507 description 1508 "AS number for point to multi point OAM."; 1509 } 1510 leaf ni { 1511 type routing-instance-ref; 1512 description 1513 "The ni is used to describe the 1514 corresponding network instance"; 1515 } 1516 uses test-point-location-info; 1517 description 1518 "List of test point locations."; 1519 } 1520 description 1521 "Serves as top-level container 1522 for test point location list."; 1523 } 1524 description 1525 "as number location type container."; 1526 } 1527 container group-system-id-location-type { 1528 when "derived-from-or-self(../tp-location-type, 'cl-oam:system-id-address-type')" { 1529 description 1530 "when test point location type is equal to system-info."; 1531 } 1532 container test-point-system-info-location-list { 1533 list test-point-locations { 1534 key "system-id-location"; 1535 leaf system-id-location { 1536 type inet:uri; 1537 description 1538 "System Id."; 1539 } 1540 leaf ni { 1541 type routing-instance-ref; 1542 description 1543 "The ni is used to describe the 1544 corresponding network instance"; 1545 } 1546 uses test-point-location-info; 1547 description 1548 "List of test point locations."; 1549 } 1551 description 1552 "Serves as top-level container for 1553 test point location list."; 1554 } 1555 description 1556 "system ID location type container."; 1557 } 1558 } 1559 augment "/nd:networks/nd:network/nd:node" { 1560 description 1561 "Augment test points of connectionless oam."; 1562 uses test-point-locations; 1563 } 1564 grouping timestamp { 1565 description 1566 "Grouping for timestamp."; 1567 leaf timestamp-type { 1568 type identityref { 1569 base timestamp-type; 1570 } 1571 description 1572 "Type of Timestamp, such as Truncated PTP, NTP."; 1573 } 1574 container timestamp-64bit { 1575 when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ptp')"+ 1576 "or derived-from-or-self(../timestamp-type,'cl-oam:ntp64')" { 1577 description 1578 "Only applies when Truncated NTP or 64bit NTP Timestamp."; 1579 } 1580 leaf timestamp-sec { 1581 type uint32; 1582 description 1583 "Absolute timestamp in seconds as per IEEE1588v2 1584 or seconds part in 64-bit NTP timestamp."; 1585 } 1586 leaf timestamp-nanosec { 1587 type uint32; 1588 description 1589 "Fractional part in nanoseconds as per IEEE1588v2 1590 or Fractional part in 64-bit NTP timestamp."; 1591 } 1592 description 1593 "Container for 64bit timestamp."; 1594 } 1595 container timestamp-80bit { 1596 when "derived-from-or-self(../timestamp-type, 'cl-oam:ptp80')"{ 1597 description 1598 "Only applies when 80bit PTP Timestamp."; 1600 } 1601 if-feature ptp-long-format; 1602 leaf timestamp-sec { 1603 type uint64 { 1604 range "0..281474976710656"; 1605 } 1606 description 1607 "48bit Timestamp in seconds as per IEEE1588v2."; 1608 } 1609 leaf timestamp-nanosec { 1610 type uint32; 1611 description 1612 "Fractional part in nanoseconds as per IEEE1588v2 1613 or Fractional part in 64-bit NTP timestamp."; 1614 } 1615 description 1616 "Container for 64bit timestamp."; 1617 } 1618 container ntp-timestamp-32bit { 1619 when "derived-from-or-self(../timestamp-type, 'cl-oam:truncated-ntp')"{ 1620 description 1621 "Only applies when 32 bit NTP Short format Timestamp."; 1622 } 1623 if-feature ntp-short-format; 1624 leaf timestamp-sec { 1625 type uint16; 1626 description 1627 "Timestamp in seconds as per short format NTP."; 1628 } 1629 leaf timestamp-nanosec { 1630 type uint16; 1631 description 1632 "Truncated Fractional part in 16-bit NTP timestamp."; 1633 } 1634 description 1635 "Container for 64bit timestamp."; 1636 } 1637 container icmp-timestamp-32bit { 1638 when "derived-from-or-self(../timestamp-type, 'cl-oam:icmp-ntp')"{ 1639 description 1640 "Only applies when Truncated NTP or 64bit NTP Timestamp."; 1641 } 1642 if-feature icmp-timestamp; 1643 leaf timestamp-millisec { 1644 type uint32; 1645 description 1646 "timestamp in milliseconds for ICMP timestamp."; 1647 } 1648 description 1649 "Container for 32bit timestamp."; 1650 } 1652 } 1653 grouping path-discovery-data { 1654 description 1655 "Path discovery related data output from nodes."; 1656 container src-test-point { 1657 description 1658 "Source test point."; 1659 uses tp-address-ni; 1660 } 1661 container dest-test-point { 1662 description 1663 "Destination test point."; 1665 uses tp-address-ni; 1666 } 1667 leaf sequence-number { 1668 type uint64; 1669 default "0"; 1670 description 1671 "Sequence number in data packets.A value of 1672 zero indicates that no sequence number is sent."; 1673 } 1674 leaf hop-cnt { 1675 type uint8; 1676 default "0"; 1677 description 1678 "Hop count.A value of zero indicates 1679 that no hop count is sent"; 1680 } 1681 uses session-packet-statistics; 1682 uses session-error-statistics; 1683 uses session-delay-statistics; 1684 uses session-jitter-statistics; 1685 container path-verification { 1686 description 1687 "Optional path verification related information."; 1688 leaf flow-info { 1689 type string; 1690 description 1691 "Informations that refers to the flow."; 1692 } 1693 uses session-path-verification-statistics; 1694 } 1695 container path-trace-info { 1696 description 1697 "Optional path trace per-hop test point information. 1698 The path trace information list has typically a single 1699 element for per-hop cases like path-discovery RPC operation 1700 but allows a list of hop related information for other types of 1702 data retrieval methods."; 1703 list path-trace-info-list { 1704 key "index"; 1705 description 1706 "Path trace information list."; 1707 leaf index { 1708 type uint32; 1709 description 1710 "Trace information index."; 1711 } 1712 uses tp-address-ni; 1713 uses timestamp; 1714 leaf ingress-intf-name { 1715 type if:interface-ref; 1716 description 1717 "Ingress interface name"; 1718 } 1719 leaf egress-intf-name { 1720 type if:interface-ref; 1721 description 1722 "Egress interface name"; 1723 } 1724 leaf queue-depth { 1725 type uint32; 1726 description 1727 "Length of the queue of the interface from where 1728 the packet is forwarded out. The queue depth could 1729 be the current number of memory buffers used by the 1730 queue and a packet can consume one or more memory buffers 1731 thus constituting device-level information."; 1732 } 1733 leaf transit-delay { 1734 type uint32; 1735 description 1736 "Time in nano seconds 1737 packet spent transiting a node."; 1738 } 1739 leaf app-meta-data { 1740 type uint64; 1741 description 1742 "Application specific 1743 data added by node."; 1744 } 1745 } 1746 } 1747 } 1748 grouping continuity-check-data { 1749 description 1751 "Continuity check data output from nodes."; 1752 container src-test-point { 1753 description 1754 "Source test point."; 1755 uses tp-address-ni; 1756 leaf egress-intf-name { 1757 type if:interface-ref; 1758 description 1759 "Egress interface name."; 1760 } 1762 } 1763 container dest-test-point { 1764 description 1765 "Destination test point."; 1766 uses tp-address-ni; 1767 leaf ingress-intf-name { 1768 type if:interface-ref; 1769 description 1770 "Ingress interface name."; 1771 } 1772 } 1773 leaf sequence-number { 1774 type uint64; 1775 default "0"; 1776 description 1777 "Sequence number in data packets.A value of 1778 zero indicates that no sequence number is sent."; 1779 } 1780 leaf hop-cnt { 1781 type uint8; 1782 default "0"; 1783 description 1784 "Hop count.A value of zero indicates 1785 that no hop count is sent"; 1786 } 1787 uses session-packet-statistics; 1788 uses session-error-statistics; 1789 uses session-delay-statistics; 1790 uses session-jitter-statistics; 1791 } 1792 container cc-session-statistics-data { 1793 if-feature "continuity-check"; 1794 config false; 1795 description 1796 "CC operational information."; 1797 container cc-ipv4-sessions-statistics { 1798 description 1799 "CC ipv4 sessions"; 1801 uses cc-session-statistics; 1802 } 1803 container cc-ipv6-sessions-statistics { 1804 description 1805 "CC ipv6 sessions"; 1806 uses cc-session-statistics; 1807 } 1808 } 1809 } 1810 1812 5. Connectionless model applicability 1814 "ietf-connectionless-oam" model defined in this document provides 1815 technology-independent abstraction of key OAM constructs for 1816 connectionless protocols. This model can be further extended to 1817 include technology specific details, e.g., adding new data nodes with 1818 technology specific functions and parameters into proper anchor 1819 points of the base model, so as to develop a technology-specific 1820 connectionless OAM model. 1822 This section demonstrates the usability of the connectionless YANG 1823 OAM data model to various connectionless OAM technologies, e.g., BFD, 1824 LSP ping. Note that, in this section, we only present several 1825 snippets of technology-specific model extensions for illustrative 1826 purposes. The complete model extensions should be worked on in 1827 respective protocol working groups. 1829 5.1. BFD Extension 1831 5.1.1. Augment Method 1833 The following sections shows how the "ietf-connectionless-oam" model 1834 can be extended to cover BFD technology. For this purpose, a set of 1835 extension are introduced such as technology-type extension and test- 1836 point attributes extension. 1838 Note that in BFD WG, there is a BFD YANG data model 1839 [I-D.ietf-bfd-yang] to be produced. Users can choose to use "ietf- 1840 connectioless-oam" as basis and augment the "ietf-connectionless-oam" 1841 model with bfd specific details. The bfd specific details can be the 1842 grouping defined in the BFD model. 1844 5.1.1.1. Technology type extension 1846 No BFD technology type has been defined in the "ietf-connectionless- 1847 oam" model. Therefore a technology type extension is required in the 1848 model Extension. 1850 The snippet below depicts an example of augmenting "bfd" type into 1851 the ietf-connectionless-oam": 1853 augment "/nd:networks/nd:network/nd:node/" 1854 +"coam:location-type/coam:ipv4-location-type" 1855 +"/coam:test-point-ipv4-location-list/" 1856 +"coam:test-point-locations/coam:technology" 1857 { 1858 leaf bfd{ 1859 type string; 1860 } 1861 } 1863 5.1.1.2. Test point attributes extension 1865 To support bfd technology, the "ietf-connectionless-oam" model can be 1866 extended and add bfd specific parameters under "test-point-locations" 1867 list and/or add new location type such as "bfd over MPLS-TE" under 1868 "location-type". 1870 5.1.1.2.1. Define and insert new nodes into corresponding test-point- 1871 location 1873 In the "ietf-connectionless-oam" model, multiple "test-point- 1874 location" lists are defined under the "location-type" choice node. 1875 Therefore, to derive a model for some bfd technologies ( such as ip 1876 single-hop, ip multi-hops, etc), data nodes for bfd specific details 1877 need to be added into corresponding "test-point-locations" list. In 1878 this section, we reuse some groupings which are defined in 1879 [I-D.ietf-bfd-yang] as following: 1881 The snippet below shows how the "ietf-connectionless-oam" model can 1882 be extended to support "BFD IP single-hop": 1884 augment "/nd:networks/nd:network/nd:node/" 1885 +"coam:location-type/coam:ipv4-location-type" 1886 +"/coam:test-point-ipv4-location-list/" 1887 +"coam:test-point-locations" 1888 { 1889 container session-cfg { 1890 description "BFD IP single-hop session configuration"; 1891 list sessions { 1892 key "interface dest-addr"; 1893 description "List of IP single-hop sessions"; 1894 leaf interface { 1895 type if:interface-ref; 1896 description 1897 "Interface on which the BFD session is running."; 1898 } 1899 leaf dest-addr { 1900 type inet:ip-address; 1901 description "IP address of the peer"; 1902 } 1903 uses bfd:bfd-grouping-common-cfg-parms; 1904 uses bfd:bfd-grouping-echo-cfg-parms; 1905 } 1906 } 1907 } 1909 Similar augmentations can be defined to support other BFD 1910 technologies such as BFD IP multi-hop, BFD over MPLS, etc. 1912 5.1.1.2.2. Add new location-type cases 1914 In the "ietf-connectionless-oam" model, If there is no appropriate 1915 "location type" case that can be extended, a new "location-type" case 1916 can be defined and inserted into the "location-type" choice node. 1918 Therefore, the model user can flexibly add "location-type" to support 1919 other type of test point which are not defined in the "ietf- 1920 connectionless-oam" model. In this section, we add a new "location- 1921 type" case and reuse some groupings which are defined in 1922 [I-D.ietf-bfd-yang] as follows: 1924 The snippet below shows how the "ietf-connectionless-oam" model can 1925 be extended to support "BFD over MPLS-TE": 1927 augment "/nd:networks/nd:network/nd:node/coam:location-type"{ 1928 case te-location{ 1929 list test-point-location-list{ 1930 key "tunnel-name"; 1931 leaf tunnel-name{ 1932 type leafref{ 1933 path "/te:te/te:tunnels/te:tunnel/te:name"; 1934 } 1935 description 1936 "point to a te instance."; 1937 } 1938 uses bfd:bfd-grouping-common-cfg-parms; 1939 uses bfd-mpls:bfd-encap-cfg; 1940 } 1941 } 1942 } 1944 Similar augmentations can be defined to support other BFD 1945 technologies such as BFD over LAG, etc. 1947 5.1.2. Schema Mount 1949 And another alternative method is using schema mount mechanism 1950 [I-D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam". 1951 Within the "test-point-locations" list, a "root" attribute is defined 1952 to provide a mounted point for models mounted per "test-point- 1953 locations". Therefore, the "ietf-connectionless-oam" model can 1954 provide a place in the node hierarchy where other OAM YANG data 1955 models can be attached, without any special extension in the "ietf- 1956 connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. 1957 Note that the limitation of the Schema Mount method is it is not 1958 allowed to specify certain modules that are required to be mounted 1959 under a mount point. 1961 The snippet below depicts the definition of "root" attribute. 1963 anydata root { 1964 yangmnt:mount-point root; 1965 description 1966 "Root for models supported per 1967 test point"; 1968 } 1970 The following section shows how the "ietf-connectionless-oam" model 1971 can use schema mount to support BFD technology. 1973 5.1.2.1. BFD Modules be populated in schema-mount 1975 To support BFD technology, "ietf-bfd-ip-sh" and "ietf-bfd-ip-mh" YANG 1976 modules might be populated in the "schema-mounts" container: 1978 1980 1981 ietf-connectionless-oam 1982 root 1983 1984 root 1985 1986 1987 1988 root 1989 1990 ietf-bfd-ip-sh 1991 2016-07-04 1992 1993 urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh 1994 1995 implement 1996 1997 1998 ietf-bfd-ip-mh 1999 2016-07-04 2000 2001 urn:ietf:params:xml:ns:yang:ietf-bfd-ip-mh 2002 2003 implement 2004 2005 2006 2008 and the " ietf-connectionless-oam " module might have: 2010 2012 ...... 2013 2014 192.0.2.1 2015 ...... 2016 2017 2018 2019 foo 2020 ...... 2021 2022 2023 2024 2025 foo 2026 ...... 2027 2028 2029 2030 2031 2033 5.2. LSP ping extension 2035 5.2.1. Augment Method 2037 The following sections shows how the "ietf-connectionless-oam" model 2038 can be extended to support LSP ping technology. For this purpose, a 2039 set of extension are introduced such as technology-type extension and 2040 test-point attributes extension. 2042 Note that in MPLS WG, there is a LSP Ping YANG data model 2043 [I-D.zheng-mpls-lsp-ping-yang-cfg] to be produced. Users can choose 2044 to use "ietf-connectioless-oam" as basis and augment the "ietf- 2045 connectionless-oam" model with LSP Ping specific details in the model 2046 extension. The LSP Ping specific details can be the grouping defined 2047 in the LSP ping model. 2049 5.2.1.1. Technology type extension 2051 No lsp-ping technology type has been defined in the "ietf- 2052 connectionless-oam" model. Therefore a technology type extension is 2053 required in the model extension. 2055 The snippet below depicts an example of augmenting the "ietf- 2056 connectionless-oam" with "lsp-ping" type: 2058 augment "/nd:networks/nd:network/nd:node/" 2059 +"coam:location-type/coam:ipv4-location-type" 2060 +"/coam:test-point-ipv4-location-list/" 2061 +"coam:test-point-locations/coam:technology" 2062 { 2063 leaf lsp-ping{ 2064 type string; 2065 } 2066 } 2068 5.2.1.2. Test point attributes extension 2070 To support lsp-ping, the "ietf-connectionless-oam" model can be 2071 extended and add lsp-ping specific parameters can be defined and 2072 under "test-point-locations" list. 2074 User can reuse the attributes or groupings which are defined in 2075 [I-D.zheng-mpls-lsp-ping-yang-cfg] as follows: 2077 The snippet below depicts an example of augmenting the "test-point- 2078 locations" list with lsp ping attributes: 2080 augment "/nd:networks/nd:network/nd:node/" 2081 +"coam:location-type/coam:ipv4-location-type" 2082 +"/coam:test-point-ipv4-location-list/" 2083 +"coam:test-point-locations" 2084 { 2085 list lsp-ping { 2086 key "lsp-ping-name"; 2087 leaf lsp-ping-name { 2088 type string { 2089 length "1..31"; 2090 } 2091 mandatory "true"; 2092 description "LSP Ping test name."; 2093 ...... 2094 } 2096 5.2.2. Schema Mount 2098 And another alternative method is using schema mount mechanism 2099 [I-D.ietf-netmod-schema-mount] in the "ietf-connectionless-oam". 2100 Within the "test-point-locations" list, a "root" attribute is defined 2101 to provide a mounted point for models mounted per "test-point- 2102 locations". Therefore, the "ietf-connectionless-oam" model can 2103 provide a place in the node hierarchy where other OAM YANG data 2104 models can be attached, without any special extension in the "ietf- 2105 connectionless-oam" YANG data models [I-D.ietf-netmod-schema-mount]. 2107 Note that the limitation of the Schema Mount method is it is not 2108 allowed to specify certain modules that are required to be mounted 2109 under a mount point. 2111 The snippet below depicts the definition of "root" attribute. 2113 anydata root { 2114 yangmnt:mount-point root; 2115 description 2116 "Root for models supported per 2117 test point"; 2118 } 2120 The following section shows how the "ietf-connectionless-oam" model 2121 can use schema mount to support LSP-PING technology. 2123 5.2.2.1. LSP-PING Modules be populated in schema-mount 2125 To support LSP-PING technology, "ietf-lspping" YANG module 2126 [I-D.zheng-mpls-lsp-ping-yang-cfg] might be populated in the "schema- 2127 mounts" container: 2129 2131 2132 ietf-connectionless-oam 2133 root 2134 2135 root 2136 2137 2138 2139 root 2140 2141 ietf-lspping 2142 2016-03-18 2143 2144 urn:ietf:params:xml:ns:yang: ietf-lspping 2145 2146 implement 2147 2148 2149 2151 and the " ietf-connectionless-oam " module might have: 2153 2155 ...... 2156 2157 192.0.2.1 2158 ...... 2159 2160 2161 2162 foo 2163 ...... 2164 2165 2166 2167 2168 2170 6. Security Considerations 2172 The YANG module defined in this document is designed to be accessed 2173 via network management protocols such as NETCONF [RFC6241] or 2174 RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport 2175 layer, and the mandatory-to-implement secure transport is Secure 2176 Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the 2177 mandatory-to-implement secure transport is TLS [RFC5246]. 2179 The NETCONF access control model [RFC6536] provides the means to 2180 restrict access for particular NETCONF or RESTCONF users to a 2181 preconfigured subset of all available NETCONF or RESTCONF protocol 2182 operations and content. 2184 There are a number of data nodes defined in this YANG module that are 2185 writable/creatable/deletable (i.e., config true, which is the 2186 default). These data nodes may be considered sensitive or vulnerable 2187 in some network environments. Write operations (e.g., edit-config) 2188 to these data nodes without proper protection can have a negative 2189 effect on network operations. 2191 The vulnerable "config true" subtrees and data nodes are the 2192 following: 2194 /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:ipv4- 2195 location-type/cl-oam:test-point-ipv4-location-list/cl-oam:test- 2196 point-locations/ 2198 /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:ipv6- 2199 location-type/cl-oam:test-point-ipv6-location-list/cl-oam:test- 2200 point-locations/ 2201 /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:mac- 2202 location-type/cl-oam:test-point-mac-address-location-list/cl- 2203 oam:test-point-locations/ 2205 /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:group- 2206 as-number-location-type/cl-oam:test-point-as-number-location-list/ 2207 cl-oam:test-point-locations/ 2209 /nd:networks/nd:network/nd:node/cl-oam:location-type/cl-oam:group- 2210 system-id-location-type/cl-oam:test-point-system-info-location- 2211 list/cl-oam:test-point-locations/ 2213 Unauthorized access to any of these lists can adversely affect OAM 2214 management system handling of end-to-end OAM and coordination of OAM 2215 within underlying network layers. This may lead to inconsistent 2216 configuration, reporting, and presentation for the OAM mechanisms 2217 used to manage the network. 2219 Some of the readable data nodes in this YANG module may be considered 2220 sensitive or vulnerable in some network environments. It is thus 2221 important to control read access (e.g., via get, get-config, or 2222 notification) to these data nodes. These are the subtrees and data 2223 nodes and their sensitivity/vulnerability: 2225 /coam:cc-session-statistics-data/cl-oam:cc-ipv4-sessions- 2226 statistics/cl-oam:cc-session-statistics/cl-oam:session-count/ 2228 /coam:cc-session-statistics-data/cl-oam:cc-ipv4-sessions- 2229 statistics/cl-oam:cc-session-statistics/cl-oam:session-up-count/ 2231 /coam:cc-session-statistics-data/cl-oam:cc-ipv4-sessions- 2232 statistics/cl-oam:cc-session-statistics/cl-oam: session-down- 2233 count/ 2235 /coam:cc-session-statistics-data/cl-oam:cc-ipv4-sessions- 2236 statistics/cl-oam:cc-session-statistics/cl-oam:session-admin-down- 2237 count/ 2239 /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- 2240 statistics/cl-oam:cc-session-statistics/cl-oam:session-count/ 2242 /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- 2243 statistics/cl-oam:cc-session-statistics/cl-oam:session-up-count// 2245 /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- 2246 statistics/cl-oam:cc-session-statistics/cl-oam:session-down-count/ 2247 /coam:cc-session-statistics-data/cl-oam:cc-ipv6-sessions- 2248 statistics/cl-oam:cc-session-statistics/cl-oam:session-admin-down- 2249 count/ 2251 7. IANA Considerations 2253 This document registers a URI in the IETF XML registry [RFC3688]. 2254 Following the format in [RFC3688] the following registration is 2255 requested to be made: 2257 URI: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam 2259 Registrant Contact: The IESG. 2261 XML: N/A, the requested URI is an XML namespace. 2263 This document registers a YANG module in the YANG Module Names 2264 registry [RFC6020]. 2266 name: ietf-connectionless-oam 2268 namespace: urn:ietf:params:xml:ns:yang:ietf-connectionless-oam 2270 prefix: cl-oam 2272 reference: RFC XXXX 2274 8. Acknowlegements 2276 The authors of this document would like to thank Greg Mirsky and 2277 others for their sustainable review and comments, proposals to 2278 improve and stabilize document. 2280 9. References 2282 9.1. Normative References 2284 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 2285 DOI 10.17487/RFC3688, January 2004, 2286 . 2288 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 2289 Control Message Protocol (ICMPv6) for the Internet 2290 Protocol Version 6 (IPv6) Specification", STD 89, 2291 RFC 4443, DOI 10.17487/RFC4443, March 2006, 2292 . 2294 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 2295 (TLS) Protocol Version 1.2", RFC 5246, 2296 DOI 10.17487/RFC5246, August 2008, 2297 . 2299 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for 2300 the Network Configuration Protocol (NETCONF)", RFC 6020, 2301 DOI 10.17487/RFC6020, October 2010, 2302 . 2304 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 2305 and A. Bierman, Ed., "Network Configuration Protocol 2306 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 2307 . 2309 [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure 2310 Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, 2311 . 2313 [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration 2314 Protocol (NETCONF) Access Control Model", RFC 6536, 2315 DOI 10.17487/RFC6536, March 2012, 2316 . 2318 [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", 2319 RFC 6991, DOI 10.17487/RFC6991, July 2013, 2320 . 2322 [RFC7223] Bjorklund, M., "A YANG Data Model for Interface 2323 Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, 2324 . 2326 [RFC792] Postel, J., "Internet Control Message Protocol", RFC 792, 2327 September 1981. 2329 [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF 2330 Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, 2331 . 2333 9.2. Informative References 2335 [G.800] "Unified functional architecture of transport networks", 2336 ITU-T Recommendation G.800, 2016. 2338 [G.8013] "OAM functions and mechanisms for Ethernet based 2339 networks", ITU-T Recommendation G.8013/Y.1731, 2013. 2341 [I-D.ietf-bfd-yang] 2342 Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and 2343 G. Mirsky, "YANG Data Model for Bidirectional Forwarding 2344 Detection (BFD)", draft-ietf-bfd-yang-06 (work in 2345 progress), June 2017. 2347 [I-D.ietf-i2rs-yang-network-topo] 2348 Clemm, A., Medved, J., Varga, R., Bahadur, N., 2349 Ananthakrishnan, H., and X. Liu, "A Data Model for Network 2350 Topologies", draft-ietf-i2rs-yang-network-topo-17 (work in 2351 progress), October 2017. 2353 [I-D.ietf-lime-yang-connection-oriented-oam-model] 2354 Kumar, D., Wu, Q., and Z. Wang, "Generic YANG Data Model 2355 for Connection Oriented Operations, Administration, and 2356 Maintenance(OAM) protocols", draft-ietf-lime-yang- 2357 connection-oriented-oam-model-00 (work in progress), June 2358 2017. 2360 [I-D.ietf-lime-yang-connectionless-oam-methods] 2361 Kumar, D., Wang, Z., Wu, Q., Rahman, R., and S. Raghavan, 2362 "Retrieval Methods YANG Data Model for Connectionless 2363 Operations, Administration, and Maintenance(OAM) 2364 protocols", draft-ietf-lime-yang-connectionless-oam- 2365 methods-09 (work in progress), October 2017. 2367 [I-D.ietf-netmod-schema-mount] 2368 Bjorklund, M. and L. Lhotka, "YANG Schema Mount", draft- 2369 ietf-netmod-schema-mount-08 (work in progress), October 2370 2017. 2372 [I-D.ietf-spring-sr-yang] 2373 Litkowski, S., Qu, Y., Sarkar, P., and J. Tantsura, "YANG 2374 Data Model for Segment Routing", draft-ietf-spring-sr- 2375 yang-07 (work in progress), July 2017. 2377 [I-D.zheng-mpls-lsp-ping-yang-cfg] 2378 Zheng, L., Aldrin, S., Zheng, G., Mirsky, G., and R. 2379 Rahman, "Yang Data Model for LSP-PING", draft-zheng-mpls- 2380 lsp-ping-yang-cfg-05 (work in progress), June 2017. 2382 [RFC5462] Andersson, L. and R. Asati, "Multiprotocol Label Switching 2383 (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic 2384 Class" Field", RFC 5462, DOI 10.17487/RFC5462, February 2385 2009, . 2387 [RFC6136] Sajassi, A., Ed. and D. Mohan, Ed., "Layer 2 Virtual 2388 Private Network (L2VPN) Operations, Administration, and 2389 Maintenance (OAM) Requirements and Framework", RFC 6136, 2390 DOI 10.17487/RFC6136, March 2011, 2391 . 2393 [RFC7276] Mizrahi, T., Sprecher, N., Bellagamba, E., and Y. 2394 Weingarten, "An Overview of Operations, Administration, 2395 and Maintenance (OAM) Tools", RFC 7276, 2396 DOI 10.17487/RFC7276, June 2014, 2397 . 2399 Authors' Addresses 2401 Deepak Kumar 2402 CISCO Systems 2403 510 McCarthy Blvd 2404 Milpitas, CA 95035 2405 USA 2407 Email: dekumar@cisco.com 2409 Michael Wang 2410 Huawei Technologies,Co.,Ltd 2411 101 Software Avenue, Yuhua District 2412 Nanjing 210012 2413 China 2415 Email: wangzitao@huawei.com 2417 Qin Wu 2418 Huawei 2419 101 Software Avenue, Yuhua District 2420 Nanjing, Jiangsu 210012 2421 China 2423 Email: bill.wu@huawei.com 2425 Reshad Rahman 2426 Cisco Systems 2427 2000 Innovation Drive 2428 Kanata, Ontario K2K 3E8 2429 Canada 2431 Email: rrahman@cisco.com 2432 Srihari Raghavan 2433 Cisco Systems 2434 Tril Infopark Sez, Ramanujan IT City 2435 Neville Block, 2nd floor, Old Mahabalipuram Road 2436 Chennai, Tamil Nadu 600113 2437 India 2439 Email: srihari@cisco.com