idnits 2.17.1 draft-ietf-trill-yang-oam-05.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 9 instances of too long lines in the document, the longest one being 16 characters in excess of 72. ** There is 1 instance of lines with control characters in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 98 has weird spacing: '...etation only...' == Line 99 has weird spacing: '...t to be int...' == Line 216 has weird spacing: '...current x ...' == Line 219 has weird spacing: '...: rw for c...' == Line 327 has weird spacing: '...terface if:...' -- The document date (March 31, 2017) is 2582 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: 'TRILLOAMFM' is mentioned on line 91, but not defined == Missing Reference: 'RFC6371' is mentioned on line 109, but not defined == Unused Reference: 'RFC2234' is defined on line 867, but no explicit reference was found in the text == Unused Reference: 'Y1731' is defined on line 885, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2234 (Obsoleted by RFC 4234) -- Possible downref: Non-RFC (?) normative reference: ref. '8021Q' ** Downref: Normative reference to an Informational RFC: RFC 7174 Summary: 4 errors (**), 0 flaws (~~), 10 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Draft Deepak Kumar 3 T. Senevirathne 4 Norman Finn 5 Samer Salam 6 CISCO 7 Liang Xia 8 Weiguo Hao 9 Huawei 10 Category: Standard Track 11 Expires October 2017 March 31, 2017 13 YANG Data Model for TRILL Operations, Administration, 14 and Maintenance (OAM) 16 draft-ietf-trill-yang-oam-05.txt 18 Status of this Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF), its areas, and its working groups. Note that 25 other groups may also distribute working documents as Internet- 26 Drafts. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 The list of current Internet-Drafts can be accessed at 34 http://www.ietf.org/ietf/1id-abstracts.txt. 36 The list of Internet-Draft Shadow Directories can be accessed at 37 http://www.ietf.org/shadow.html. 39 This Internet-Draft will expire on May 04, 2016. 41 Copyright Notice 43 Copyright (c) 2017 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (http://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the Simplified BSD License. 56 Abstract 58 This document presents YANG Data model for TRILL OAM. It extends the 59 Generic YANG model for OAM defined in with TRILL technology 60 specifics. Table of Contents. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 65 2. Conventions used in this document . . . . . . . . . . . . . . . 3 66 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 67 3. Architecture of OAM YANG Model and Relationship to TRILL OAM . 4 68 4. TRILL extensions to Generic YANG Model . . . . . . . . . . . . 4 69 4.1 MEP Address . . . . . . . . . . . . . . . . . . . . . . . . 5 70 4.2 Flow Entropy . . . . . . . . . . . . . . . . . . . . . . . . 5 71 4.3 Context-id . . . . . . . . . . . . . . . . . . . . . . . . . 5 72 4.5 RPC definition . . . . . . . . . . . . . . . . . . . . . . . 5 73 5. OAM data hierarchy . . . . . . . . . . . . . . . . . . . . . . 6 74 6. OAM YANG module . . . . . . . . . . . . . . . . . . . . . . . . 9 75 7. Base Mode for TRILL OAM . . . . . . . . . . . . . . . . . . . . 19 76 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19 77 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 78 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 79 10.1. Normative References . . . . . . . . . . . . . . . . . . 20 80 10.2. Informative References . . . . . . . . . . . . . . . . . 20 81 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 82 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 84 1. Introduction 86 Fault Management for TRILL is defined in [TRILLOAMFM]. TRILL Fault 87 Management utilizes the [8021Q] CFM model and extends CFM with 88 technology specific details. Those technology specific extensions are 89 flow-entropy for multipath support, MEP addressing on TRILL 90 identifiers, and so on. The extensions are explained in detail in 91 [TRILLOAMFM]. In this document, we extend the YANG model defined in 92 [GENYANGOAM] with TRILL OAM specifics. 94 2. Conventions used in this document The key words "MUST", "MUST NOT", 95 "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 96 "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be 97 interpreted as described in RFC-2119 [RFC2119]. In this document, 98 these words will appear with that interpretation only when in ALL 99 CAPS. Lower case uses of these words are not to be interpreted as 100 carrying RFC-2119 significance. 102 2.1. Terminology 104 CCM - Continuity Check Message [8021Q] 105 ECMP - Equal Cost Multipath 106 LBM - Loopback Message [8021Q] 107 MP - Maintenance Point [8021Q] 108 MEP - Maintenance End Point [RFC7174] [8021Q] [RFC6371] 109 MIP - Maintenance Intermediate Point [RFC7174] [8021Q] [RFC6371] 110 MA - Maintenance Association [8021Q] [RFC7174] 111 MD - Maintenance Domain [8021Q] 112 MTV - Multi-destination Tree Verification Message 113 OAM - Operations, Administration, and Maintenance [RFC6291] 114 TRILL - Transparent Interconnection of Lots of Links [RFC6325] 116 3. Architecture of OAM YANG Model and Relationship to TRILL OAM 118 +-+-+-+-+-+ 119 | CO | 120 |OAM YANG | 121 +-+-+-+-+-+ 122 | 123 O 124 | 125 +--------------------------------------------------+ 126 | | | | 127 +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ 128 | TRILL | | NVO3 | | MPLS-TP | . . .| foo | 129 |OAM YANG | |OAM YANG | |OAM YANG | |OAM YANG | 130 +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ 131 | | | | 132 +----------------------------------------------------+ 133 | Uniform API | 134 +----------------------------------------------------+ 136 Figure 1 Relationship of TRILL OAM YANG model to 137 Generic Connection Oriented OAM YANG model 139 4. TRILL extensions to Generic YANG Model 141 The Technology parameter is defined in the [GENYANGOAM] as an 142 identity. This allows easy extension of the YANG model by other 143 technologies. Technology-specific extensions are applied only when 144 the Technology parameter is set to the specific type. "trill" is 145 defined as an identity that augments the base "technology-types". 147 identity trill { base goam:technology-types; description 148 "trill type"; } 150 Figure 2 Trill identity type. 152 4.1 MEP Address 154 In TRILL, the MEP address is the 2 octet RBridge Nickname. In 155 [GENYANGOAM] MEP address is defined as a combination choice and case 156 statement. We augment this to include TRILL RBridge nickname. augment 157 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mep- 158 address" { case mep-address-trill { leaf mep-address-trill { 159 when "/goam:domains/goam:domain/goam:technology='trill'"; 160 type tril-rb-nickname; } } } 162 Figure 3 Augment MEP address 164 4.2 Flow Entropy 166 In TRILL, flow-entropy is defined as a 96 octet field. [GENYANGOAM] 167 defines a placeholder for flow-entropy. This allows other 168 technologies to easily augment that to include technology-specific 169 augmentations. Below figure depicts an example of augmenting flow- 170 entropy to include TRILL flow-entropy. augment 171 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:flow-entropy" { 172 case flow-entropy-trill { leaf flow-entropy-trill { type 173 flow-entropy-trill; } } } 175 Figure 4 TRILL flow-entropy 177 4.3 Context-id 179 In TRILL, context-id is either 12 bit VLAN identifier or 24 bit fine- 180 grained label. [GENYANGOAM] defines a placeholder for context-id. 181 This allows other technologies to easily augment that to include 182 technology specific extensions. The snippet below depicts an example 183 of augmenting context-id to include the TRILL context-id. 185 augment 186 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:context-id" 187 { case context-id-vlan { leaf context-id-vlan { type 188 vlan; } } case context-id-fgl { leaf context-id-fgl { 189 type fgl; } } } 191 Figure 5 TRILL context-id 193 4.5 RPC definition 195 The rpc model facilitates issuing commands to a NETCONF server (in 196 this case to the device that needs to execute the OAM command) and 197 obtaining a response. Grouping statement command-ext-trill defines 198 the input extensions for TRILL. 200 Continuity-check (CCM)[RFC7455]], continuity-verification 201 (LBM/LBR)[RFC7455], and traceroute (PTM/PTR)[RFC7455] are defined in 202 Generic Lime Model[GENYANGOAM]. 204 Multicast Tree Verification (MTV) [RFC7455] rpc command, defined in 205 TRILL YANG model, is TRILL specific and allows to verify connectivity 206 as well as data-plane and control-plane integrity of TRILL multicast 207 forwarding. 209 5. OAM data hierarchy 211 The complete data hierarchy related to the OAM YANG model is 212 presented below. The following notations are used within the data 213 tree and carry the meaning as noted below. Each node is printed as: 214 216 is one of: + for current x for deprecated o 217 for obsolete 219 is one of: rw for configuration data ro for non- 220 configuration data -x for rpcs -n for notifications 222 is the name of the node 224 If the node is augmented into the tree from another module, its 225 name is printed as :. 227 is one of: ? for an optional leaf or choice ! for a 228 presence container * for a leaf-list or list [] for a 229 list's keys 231 is the name of the type for leafs and leaf-lists 233 module: ietf-trill-oam 234 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mep-address: 235 +--:(mep-address-trill) 236 +--rw mep-address-trill? tril-rb-nickname 237 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:connectivity-context: 238 +--:(connectivity-context-vlan) 239 | +--rw connectivity-context-vlan? vlan 240 +--:(connectivity-context-fgl) 241 +--rw connectivity-context-fgl? fgl 242 augment /goam:domains/goam:domain/goam:MAs/goam:MA: 243 +--rw flow-entropy-trill? flow-entropy-trill 244 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 245 +--rw flow-entropy-trill? flow-entropy-trill 246 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session: 248 +--rw flow-entropy-trill? flow-entropy-trill 249 augment /goam:continuity-check/goam:input: 250 +---- (out-of-band)? 251 | +--:(ipv4-address) 252 | | +---- ipv4-address? inet:ipv4-address 253 | +--:(ipv6-address) 254 | | +---- ipv6-address? inet:ipv6-address 255 | +--:(trill-nickname) 256 | +---- trill-nickname? tril-rb-nickname 257 +---- diagnostic-vlan? boolean 258 augment /goam:continuity-check/goam:input: 259 +---- flow-entropy-trill? flow-entropy-trill 260 augment /goam:continuity-check/goam:output: 261 +---- upstream-rbridge? tril-rb-nickname 262 +---- next-hop-rbridge* tril-rb-nickname 263 augment /goam:continuity-verification/goam:input: 264 +---- (out-of-band)? 265 | +--:(ipv4-address) 266 | | +---- ipv4-address? inet:ipv4-address 267 | +--:(ipv6-address) 268 | | +---- ipv6-address? inet:ipv6-address 269 | +--:(trill-nickname) 270 | +---- trill-nickname? tril-rb-nickname 271 +---- diagnostic-vlan? boolean 272 augment /goam:continuity-verification/goam:input: 273 +---- flow-entropy-trill? flow-entropy-trill 274 augment /goam:continuity-verification/goam:output: 275 +--:(monitor-stats-resp) 276 | +---- tx-packt-count? oam-counter32 277 | +---- rx-packet-count? oam-counter32 278 | +---- min-delay? oam-counter32 279 | +---- average-delay? oam-counter32 280 | +---- max-delay? oam-counter32 281 +---- upstream-rbridge? tril-rb-nickname 282 +---- next-hop-rbridge* tril-rb-nickname 283 augment /goam:traceroute/goam:input: 284 +---- (out-of-band)? 285 | +--:(ipv4-address) 286 | | +---- ipv4-address? inet:ipv4-address 287 | +--:(ipv6-address) 288 | | +---- ipv6-address? inet:ipv6-address 289 | +--:(trill-nickname) 290 | +---- trill-nickname? tril-rb-nickname 291 +---- diagnostic-vlan? boolean 292 augment /goam:traceroute/goam:input: 293 +---- flow-entropy-trill? flow-entropy-trill 294 augment /goam:traceroute/goam:output/goam:response: 295 +--:(monitor-stats-ext) 296 | +---- tx-packt-count? oam-counter32 297 | +---- rx-packet-count? oam-counter32 298 | +---- min-delay? oam-counter32 299 | +---- average-delay? oam-counter32 300 | +---- max-delay? oam-counter32 301 +---- upstream-rbridge? tril-rb-nickname 302 +---- next-hop-rbridge* tril-rb-nickname 303 rpcs: 304 +---x mtv 305 +---w input 306 | +---w technology identityref 307 | +---w MD-name-string MD-name-string 308 | +---w MA-name-string? MA-name-string 309 | +---w (out-of-band)? 310 | | +--:(ipv4-address) 311 | | | +---w ipv4-address? inet:ipv4-address 312 | | +--:(ipv6-address) 313 | | | +---w ipv6-address? inet:ipv6-address 314 | | +--:(trill-nickname) 315 | | +---w trill-nickname? tril-rb-nickname 316 | +---w diagnostic-vlan? boolean 317 | +---w (flow-entropy)? 318 | | +--:(flow-entropy-null) 319 | | | +---w flow-entropy-null? empty 320 | | +--:(flow-entropy-trill) 321 | | +---w flow-entropy-trill? flow-entropy-trill 322 | +---w max-hop-count? uint8 323 | +---w type? identityref 324 | +---w scope* tril-rb-nickname 325 | +---w ecmp-choice? enumeration 326 | +---w outgoing-interfaces* [interface] 327 | | +---w interface if:interface-ref 328 | +---w source-mep 329 | | +---w (mep-address)? 330 | | | +--:(mac-address) 331 | | | | +---w mac-address? yang:mac-address 332 | | | +--:(ipv4-address) 333 | | | | +---w ipv4-address? inet:ipv4-address 334 | | | +--:(ipv6-address) 335 | | | +---w ipv6-address? inet:ipv6-address 336 | | +---w mep-id? tril-rb-nickname 337 | +---w destination-mep 338 | +---w (mep-address)? 339 | | +--:(mac-address) 340 | | | +---w mac-address? yang:mac-address 341 | | +--:(ipv4-address) 342 | | | +---w ipv4-address? inet:ipv4-address 343 | | +--:(ipv6-address) 344 | | +---w ipv6-address? inet:ipv6-address 345 | +---w mep-id? tril-rb-nickname 346 +--ro output 347 +--ro response* [mep-address mep-id] 348 +--ro hop-count? uint8 349 +--ro mep-id tril-rb-nickname 350 +--ro mep-address tril-rb-nickname 351 +--ro next-hop-rbridge* tril-rb-nickname 352 +--ro upstream-rbridge? tril-rb-nickname 353 +--ro multicast-receiver-count? uint32 354 +--ro tx-packt-count? oam-counter32 355 +--ro rx-packet-count? oam-counter32 356 +--ro min-delay? oam-counter32 357 +--ro average-delay? oam-counter32 358 +--ro max-delay? oam-counter32 360 6. OAM YANG module 362 file "ietf-trill-oam.yang" 363 module ietf-trill-oam { 364 namespace "urn:ietf:params:xml:ns:yang:ietf-trill-oam"; 365 prefix trilloam; 367 import ietf-conn-oam { 368 prefix goam; 369 } 370 import ietf-inet-types { 371 prefix inet; 372 } 373 import ietf-interfaces { 374 prefix if; 375 } 376 import ietf-yang-types { 377 prefix yang; 378 } 379 organization "IETF TRILL Working Group"; 380 contact 381 " 382 WG List: mailto:trill@ietf.org 383 Editor: Deepak Kumar dekumar@cisco.com"; 384 description 385 "This YANG module defines the configuration for TRILL, 386 OAM Fault Management statistics and rpc"; 388 revision 2016-07-17 { 389 description 390 "Initial revision."; 391 reference "draft-ietf-trill-yang-oam"; 392 } 394 identity trill { 395 base goam:technology-types; 396 description 397 "trill type"; 398 } 400 typedef oam-counter32 { 401 type yang:zero-based-counter32; 402 description 403 "defines 32 bit counter for OAM"; 404 } 406 typedef tril-rb-nickname { 407 type uint16; 408 description 409 "Trill Rbridge Nickname"; 410 } 412 typedef flow-entropy-trill { 413 type binary { 414 length "1..96"; 415 } 416 description 417 "Flow entropy as defined in RFC7455"; 418 } 420 typedef vlan { 421 type uint16 { 422 range "0..4095"; 423 } 424 description 425 "Vlan Identifier."; 426 } 428 typedef fgl { 429 type uint32; 430 description 431 "Fine Grain Label"; 432 } 434 identity trill-mtv { 435 base goam:command-sub-type; 436 description 437 "identfies this command as multicast tree verification comand"; 438 } 440 identity trill-ping { 441 base goam:command-sub-type; 442 description 443 "identifies the command as TRILL Loopback Request"; 444 } 446 identity trill-trace-route { 447 base goam:command-sub-type; 448 description 449 "identifies the command as TRILL Pathtrace Request."; 450 } 452 grouping command-ext-trill { 453 description 454 "group the rpc command extensions for trill"; 455 choice out-of-band { 456 case ipv4-address { 457 leaf ipv4-address { 458 type inet:ipv4-address; 459 description 460 "ip version 4 address of the device where out of 461 band reply should be sent."; 462 } 463 } 464 case ipv6-address { 465 leaf ipv6-address { 466 type inet:ipv6-address; 467 description 468 "ip version 6 address of the device where out of 469 band reply should be sent."; 470 } 471 } 472 case trill-nickname { 473 leaf trill-nickname { 474 type tril-rb-nickname; 475 description 476 "TRILL Rbridge Nickname of the device where out of 477 band reply should be sent."; 478 } 479 } 480 description 481 "presence of this node indicate out of band request needed"; 482 } 483 leaf diagnostic-vlan { 484 type boolean; 485 description 486 "indicates whether to include diagnostic VLAN/fgl TLV or not 487 in the request. actual value is the VLAN/FGL specified 488 in the command"; 489 } 490 } 491 grouping monitor-stats-trill { 492 leaf tx-packt-count { 493 type oam-counter32; 494 description 495 "Transmitted Packet count"; 496 } 497 leaf rx-packet-count { 498 type oam-counter32; 499 description 500 "Received packet count, zero for one way message (CCM)."; 501 } 502 leaf min-delay { 503 type oam-counter32; 504 units milliseconds; 505 description 506 "Delay is specified in milliseconds, zero for one 507 way message (CCM)."; 508 } 509 leaf average-delay { 510 type oam-counter32; 511 units millisecond; 512 description 513 "average delay in milliseconds, zero for one way 514 message (CCM)."; 515 } 517 leaf max-delay { 518 type oam-counter32; 519 units millisecond; 520 description 521 "Maximum delay in milliseconds, zero for one way 522 message (CCM)."; 523 } 524 description 525 "Monitor Statistics"; 526 } 528 augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mep-address" { 529 case mep-address-trill { 530 leaf mep-address-trill { 531 when "/goam:domains/goam:domain/goam:technology='trill'" { 532 description 533 "Technology TRILL"; 534 } 535 type tril-rb-nickname; 536 description 537 "MEP Address TRILL Rbridge Nickname."; 538 } 539 } 540 description 541 "Extend Generic OAM Maintenance Point Address."; 542 } 544 augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:connectivity-context" { 545 case connectivity-context-vlan { 546 leaf connectivity-context-vlan { 547 type vlan; 548 description 549 "Connectivity context Vlan Identifier."; 550 } 551 } 552 case connectivity-context-fgl { 553 leaf connectivity-context-fgl { 554 type fgl; 555 description 556 "connectivity context Fine Grain Label."; 557 } 558 } 559 description 560 "Extends connectivity context."; 561 } 563 augment "/goam:domains/goam:domain/goam:MAs/goam:MA" { 564 leaf flow-entropy-trill { 565 type flow-entropy-trill; 566 description 567 "connectivity context flow entropy."; 568 } 569 description 570 "Extends Flow Entropy."; 571 } 573 augment 574 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP" { 575 leaf flow-entropy-trill { 576 type flow-entropy-trill; 577 description 578 "Flow Entropy TRILL"; 579 } 580 description 581 "Extends Flow Entropy defined under Generic OAM MEP."; 582 } 584 augment 585 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session" { 586 leaf flow-entropy-trill { 587 type flow-entropy-trill; 588 description 589 "Flow Entropy TRILL"; 590 } 591 description 592 "Extends Flow Entropy defined under Generic OAM Session."; 593 } 594 augment "/goam:continuity-check/goam:input" { 595 uses command-ext-trill; 596 description 597 "Extends continuity check input."; 598 } 599 augment "/goam:continuity-check/goam:input" { 600 leaf flow-entropy-trill { 601 type flow-entropy-trill; 602 description 603 "Flow Entropy TRILL"; 604 } 605 description 606 "Extends continuity check input Flow entropy."; 607 } 608 augment "/goam:continuity-check/goam:output" { 609 description 610 "adds trill specific items on the response"; 611 leaf upstream-rbridge { 612 type tril-rb-nickname; 613 description 614 "Trill Rbridge nickname."; 615 } 616 leaf-list next-hop-rbridge { 617 type tril-rb-nickname; 618 description 619 "nickname of the next hop RBRdige"; 620 } 621 } 622 augment "/goam:continuity-verification/goam:input" { 623 uses command-ext-trill; 624 description 625 "Extends continuity check input."; 626 } 628 augment "/goam:continuity-verification/goam:input" { 629 leaf flow-entropy-trill { 630 type flow-entropy-trill; 631 description 632 "Flow Entropy TRILL"; 633 } 634 description 635 "Extends continuity check input Flow entropy."; 636 } 638 augment "/goam:continuity-verification/goam:output" { 639 description 640 "adds trill specific items on the response"; 641 case monitor-stats-resp { 642 uses monitor-stats-trill; 643 } 644 leaf upstream-rbridge { 645 type tril-rb-nickname; 646 description 647 "Trill Rbridge nickname."; 648 } 649 leaf-list next-hop-rbridge { 650 type tril-rb-nickname; 651 description 652 "nickname of the next hop RBRdige"; 653 } 654 } 655 augment "/goam:traceroute/goam:input" { 656 uses command-ext-trill; 657 description 658 "Extends path disovery Input."; 659 } 661 augment "/goam:traceroute/goam:input" { 662 leaf flow-entropy-trill { 663 type flow-entropy-trill; 664 description 665 "Flow entropy TRILL."; 666 } 667 description 668 "Extends path discovery input flow entropy."; 669 } 671 augment "/goam:traceroute/goam:output/goam:response" { 672 description 673 "adds trill specific items on the response"; 674 case monitor-stats-ext { 675 uses monitor-stats-trill; 676 } 677 leaf upstream-rbridge { 678 type tril-rb-nickname; 679 description 680 "Upstream Rbridge nickname."; 681 } 682 leaf-list next-hop-rbridge { 683 type tril-rb-nickname; 684 description 685 "nickname of the next hop RBRdige"; 686 } 687 } 689 rpc mtv { 690 description 691 "Generates Trace-route and return response. Starts with TTL 692 of one and increment by one at each hop. Untill destination 693 reached or TTL reach max valune"; 694 input { 695 uses goam:maintenance-domain-id { 696 description 697 "Specifies the MA-domain"; 698 } 699 uses goam:ma-identifier { 700 description 701 "identfies the Maintenance association"; 702 } 703 uses command-ext-trill { 704 description 705 "defines extensions needed for trill. 706 We are using this structure so mtv command is in line 707 with ping and trace-route"; 708 } 710 choice flow-entropy { 711 case flow-entropy-null { 712 leaf flow-entropy-null { 713 type empty; 714 description 715 "Empty flow entropy"; 716 } 717 } 718 case flow-entropy-trill { 719 leaf flow-entropy-trill { 720 type flow-entropy-trill; 721 description 722 "Flow Entroy TRILL"; 723 } 724 } 725 description 726 "Flow Entropy choices."; 727 } 729 leaf max-hop-count { 730 type uint8; 731 default "255"; 732 description 733 "Defines maximum value of hop count"; 734 } 736 leaf type { 737 type identityref { 738 base goam:command-sub-type; 739 } 740 description 741 "defines different command types"; 742 } 744 leaf-list scope { 745 type tril-rb-nickname; 746 description 747 "This list contain rbridges that needed to respond 748 Empty list indicate all Rbridges needed to respond"; 749 reference "RFC7455"; 750 } 752 leaf ecmp-choice { 753 type enumeration { 754 enum "ecmp-use-platform-hash" { 755 value 0; 756 description 757 "Use Platform hashing to send packet on 758 specified interface."; 759 } 760 enum "ecmp-use-round-robin" { 761 value 1; 762 description 763 "Use round robin hashing."; 764 } 765 } 766 description 767 "Ecmp Choice enumeration."; 768 } 770 list outgoing-interfaces { 771 key "interface"; 772 leaf interface { 773 type if:interface-ref; 774 description 775 "Interface"; 776 } 777 description 778 "List of Outgoing Interface."; 779 } 780 container source-mep { 781 uses goam:mep-address; 782 description 783 "Source MEP Container."; 784 leaf mep-id { 785 type tril-rb-nickname; 786 description 787 "Trill Rbridge Nickname"; 788 } 789 } 790 container destination-mep { 791 uses goam:mep-address; 792 leaf mep-id { 793 type tril-rb-nickname; 794 description 795 "MEP Identifier."; 796 } 797 description 798 "Destination MEP Identifier."; 799 } 800 } 801 output { 802 list response { 803 key "mep-address mep-id"; 804 leaf hop-count { 805 type uint8; 806 description 807 "unsigned integer 1-255"; 808 } 809 leaf mep-id { 810 type tril-rb-nickname; 811 description 812 "Maintenance Endpoint Identifier."; 813 } 814 leaf mep-address { 815 type tril-rb-nickname; 816 description 817 "Maintenance Endpoint Address."; 818 } 819 leaf-list next-hop-rbridge { 820 type tril-rb-nickname; 821 description 822 "list of downstream rbridges. There is no perticular 823 order"; 824 } 825 leaf upstream-rbridge { 826 type tril-rb-nickname; 827 description 828 "Upstream Rbridge Nickname."; 829 } 830 leaf multicast-receiver-count { 831 type uint32; 832 description 833 "number of ports that are interested in this multicast 834 stream"; 835 } 836 uses monitor-stats-trill; 837 description 838 "Output list."; 839 } 840 } 841 } 842 } 844 846 7. Base Mode for TRILL OAM The Base Mode defines default configuration 847 that MUST be present in the devices that comply with this document. 848 Base Mode allows users to have a zero-touch experience. Details of 849 TRILL Base Mode for OAM are defined in RFC7455 Appendix B. 851 8. Security Considerations 853 There are no security considerations relevant to this document. 855 9. IANA Considerations 857 This document registers the following namespace URI in the IETF XML 858 registry. URI:urn:ietf:params:xml:ns:yang:ietf-trill-oam 860 10. References 862 10.1. Normative References 864 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 865 Requirement Levels", BCP 14, RFC 2119, March 1997. 867 [RFC2234] Crocker, D. and Overell, P.(Editors), "Augmented BNF for 868 Syntax Specifications: ABNF", RFC 2234, Internet Mail 869 Consortium and Demon Internet Ltd., November 1997. 871 [8021Q] IEEE, "Media Access Control (MAC) Bridges and Virtual 872 Bridged Local Area Networks", IEEE Std 802.1Q-2011, 873 August, 2011. 875 [RFC7174] Salam, S., et.al., "Transparent Interconnect of Lots of 876 Links (TRILL) OAM Framework", May, 2014. 878 [RFC7455] Senevirathne, T., et.al, "Transparent Interconnect of Lots 879 of Links(TRILL): Fault Management", March, 2015 881 10.2. Informative References 883 [RFC7174] TRILL OAM Framework 885 [Y1731] ITU, "OAM functions and mechanisms for Ethernet based 886 networks", ITU-T G.8013/Y.1731, July, 2011. 888 [RFC6291] Andersson, L., et.al., "Guidelines for the use of the "OAM" 889 Acronym in the IETF" RFC 6291, June 2011. 891 [RFC6325] Perlman, R., et.al., "Routing Bridges (RBridges): Base 892 Protocol Specification", RFC 6325, July 2011. 894 [GENYANGOAM] Senevirathne, T., et.al., "YANG Data Model for 895 Operations, Administration and Maintenance (OAM)", Work in 896 Progress, March, 2014. 898 11. Acknowledgments 900 Giles Heron came up with the idea of developing a YANG 901 model as a way of creating a unified OAM API set 902 (interface), work in this document is largely an 903 inspiration of that. Alexander Clemm provided many 904 valuable tips, comments and remarks that helped to refine 905 the YANG model presented in this document. 907 Authors' Addresses 909 Authors' Addresses 910 Tissa Senevirathne 911 CISCO Systems 912 375 East Tasman Drive. 913 San Jose, CA 95134 914 USA. 916 Phone: 408-853-2291 917 Email: tsenevir@cisco.com 919 Norman Finn 920 CISCO Systems 921 510 McCarthy Blvd 922 Milpitas, CA 95035. 924 Email: nfinn@cisco.com 926 Deepak Kumar 927 CISCO Systems 928 510 McCarthy Blvd 929 Milpitas, CA 95035. 931 Email: dekumar@cisco.com 933 Samer Salam 934 CISCO Systems 935 595 Burrard St. Suite 2123 936 Vancouver, BC V7X 1J1, Canada 938 Email: ssalam@cisco.com 940 Liang Xia 941 Huawei technologies 943 Email: frank.xialiang@huawei.com 945 Weiguo Hao 946 Huawei Technologies 947 101 Software Avenue 948 Nanjing 210012, China 950 Email: haoweiguo@huawei.com