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