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