idnits 2.17.1 draft-ietf-trill-yang-oam-04.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 99 has weird spacing: '...etation only...' == Line 100 has weird spacing: '...t to be int...' == Line 217 has weird spacing: '...current x ...' == Line 220 has weird spacing: '...: rw for c...' == Line 328 has weird spacing: '...terface if:...' -- The document date (July 17, 2016) is 2832 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 92, but not defined == Missing Reference: 'RFC6371' is mentioned on line 110, but not defined == Unused Reference: 'RFC2234' is defined on line 868, but no explicit reference was found in the text == Unused Reference: 'Y1731' is defined on line 886, 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 Jan 2017 July 17, 2016 13 YANG Data Model for TRILL Operations, Administration, 14 and Maintenance (OAM) 16 draft-ietf-trill-yang-oam-04.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) 2016 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 68 PM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 69 4. TRILL extensions to Generic YANG Model . . . . . . . . . . . . 4 70 4.1 MEP Address . . . . . . . . . . . . . . . . . . . . . . . . 5 71 4.2 Flow Entropy . . . . . . . . . . . . . . . . . . . . . . . . 5 72 4.3 Context-id . . . . . . . . . . . . . . . . . . . . . . . . . 5 73 4.5 RPC definition . . . . . . . . . . . . . . . . . . . . . . . 5 74 5. OAM data hierarchy . . . . . . . . . . . . . . . . . . . . . . 6 75 6. OAM YANG module . . . . . . . . . . . . . . . . . . . . . . . . 9 76 7. Base Mode for TRILL OAM . . . . . . . . . . . . . . . . . . . . 19 77 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19 78 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 79 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 80 10.1. Normative References . . . . . . . . . . . . . . . . . . 20 81 10.2. Informative References . . . . . . . . . . . . . . . . . 20 82 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 83 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 85 1. Introduction 87 Fault Management for TRILL is defined in [TRILLOAMFM]. TRILL Fault 88 Management utilizes the [8021Q] CFM model and extends CFM with 89 technology specific details. Those technology specific extensions are 90 flow-entropy for multipath support, MEP addressing on TRILL 91 identifiers, and so on. The extensions are explained in detail in 92 [TRILLOAMFM]. In this document, we extend the YANG model defined in 93 [GENYANGOAM] with TRILL OAM specifics. 95 2. Conventions used in this document The key words "MUST", "MUST NOT", 96 "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 97 "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be 98 interpreted as described in RFC-2119 [RFC2119]. In this document, 99 these words will appear with that interpretation only when in ALL 100 CAPS. Lower case uses of these words are not to be interpreted as 101 carrying RFC-2119 significance. 103 2.1. Terminology 105 CCM - Continuity Check Message [8021Q] 106 ECMP - Equal Cost Multipath 107 LBM - Loopback Message [8021Q] 108 MP - Maintenance Point [8021Q] 109 MEP - Maintenance End Point [RFC7174] [8021Q] [RFC6371] 110 MIP - Maintenance Intermediate Point [RFC7174] [8021Q] [RFC6371] 111 MA - Maintenance Association [8021Q] [RFC7174] 112 MD - Maintenance Domain [8021Q] 113 MTV - Multi-destination Tree Verification Message 114 OAM - Operations, Administration, and Maintenance [RFC6291] 115 TRILL - Transparent Interconnection of Lots of Links [RFC6325] 117 3. Architecture of OAM YANG Model and Relationship to TRILL OAM PM 119 +-+-+-+-+-+ 120 | CO | 121 |OAM YANG | 122 +-+-+-+-+-+ 123 | 124 O 125 | 126 +--------------------------------------------------+ 127 | | | | 128 +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ 129 | TRILL | | NVO3 | | MPLS-TP | . . .| foo | 130 |OAM YANG | |OAM YANG | |OAM YANG | |OAM YANG | 131 +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ 132 | | | | 133 +----------------------------------------------------+ 134 | Uniform API | 135 +----------------------------------------------------+ 137 Figure 1 Relationship of TRILL OAM YANG model to 138 Generic Connection Oriented OAM YANG model 140 4. TRILL extensions to Generic YANG Model 142 The Technology parameter is defined in the [GENYANGOAM] as an 143 identity. This allows easy extension of the YANG model by other 144 technologies. Technology-specific extensions are applied only when 145 the Technology parameter is set to the specific type. "trill" is 146 defined as an identity that augments the base "technology-types". 148 identity trill { base goam:technology-types; description 149 "trill type"; } 151 Figure 2 Trill identity type. 153 4.1 MEP Address 155 In TRILL, the MEP address is the 2 octet RBridge Nickname. In 156 [GENYANGOAM] MEP address is defined as a combination choice and case 157 statement. We augment this to include TRILL RBridge nickname. augment 158 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mep- 159 address" { case mep-address-trill { leaf mep-address-trill { 160 when "/goam:domains/goam:domain/goam:technology='trill'"; 161 type tril-rb-nickname; } } } 163 Figure 3 Augment MEP address 165 4.2 Flow Entropy 167 In TRILL, flow-entropy is defined as a 96 octet field. [GENYANGOAM] 168 defines a placeholder for flow-entropy. This allows other 169 technologies to easily augment that to include technology-specific 170 augmentations. Below figure depicts an example of augmenting flow- 171 entropy to include TRILL flow-entropy. augment 172 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:flow-entropy" { 173 case flow-entropy-trill { leaf flow-entropy-trill { type 174 flow-entropy-trill; } } } 176 Figure 4 TRILL flow-entropy 178 4.3 Context-id 180 In TRILL, context-id is either 12 bit VLAN identifier or 24 bit fine- 181 grained label. [GENYANGOAM] defines a placeholder for context-id. 182 This allows other technologies to easily augment that to include 183 technology specific extensions. The snippet below depicts an example 184 of augmenting context-id to include the TRILL context-id. 186 augment 187 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:context-id" 188 { case context-id-vlan { leaf context-id-vlan { type 189 vlan; } } case context-id-fgl { leaf context-id-fgl { 190 type fgl; } } } 192 Figure 5 TRILL context-id 194 4.5 RPC definition 196 The rpc model facilitates issuing commands to a NETCONF server (in 197 this case to the device that needs to execute the OAM command) and 198 obtaining a response. Grouping statement command-ext-trill defines 199 the input extensions for TRILL. 201 Continuity-check (CCM)[RFC7455]], continuity-verification 202 (LBM/LBR)[RFC7455], and traceroute (PTM/PTR)[RFC7455] are defined in 203 Generic Lime Model[GENYANGOAM]. 205 Multicast Tree Verification (MTV) [RFC7455] rpc command, defined in 206 TRILL YANG model, is TRILL specific and allows to verify connectivity 207 as well as data-plane and control-plane integrity of TRILL multicast 208 forwarding. 210 5. OAM data hierarchy 212 The complete data hierarchy related to the OAM YANG model is 213 presented below. The following notations are used within the data 214 tree and carry the meaning as noted below. Each node is printed as: 215 217 is one of: + for current x for deprecated o 218 for obsolete 220 is one of: rw for configuration data ro for non- 221 configuration data -x for rpcs -n for notifications 223 is the name of the node 225 If the node is augmented into the tree from another module, its 226 name is printed as :. 228 is one of: ? for an optional leaf or choice ! for a 229 presence container * for a leaf-list or list [] for a 230 list's keys 232 is the name of the type for leafs and leaf-lists 234 module: ietf-trill-oam 235 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mep-address: 236 +--:(mep-address-trill) 237 +--rw mep-address-trill? tril-rb-nickname 238 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:connectivity-context: 239 +--:(connectivity-context-vlan) 240 | +--rw connectivity-context-vlan? vlan 241 +--:(connectivity-context-fgl) 242 +--rw connectivity-context-fgl? fgl 243 augment /goam:domains/goam:domain/goam:MAs/goam:MA: 244 +--rw flow-entropy-trill? flow-entropy-trill 245 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 246 +--rw flow-entropy-trill? flow-entropy-trill 247 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session: 249 +--rw flow-entropy-trill? flow-entropy-trill 250 augment /goam:continuity-check/goam:input: 251 +---- (out-of-band)? 252 | +--:(ipv4-address) 253 | | +---- ipv4-address? inet:ipv4-address 254 | +--:(ipv6-address) 255 | | +---- ipv6-address? inet:ipv6-address 256 | +--:(trill-nickname) 257 | +---- trill-nickname? tril-rb-nickname 258 +---- diagnostic-vlan? boolean 259 augment /goam:continuity-check/goam:input: 260 +---- flow-entropy-trill? flow-entropy-trill 261 augment /goam:continuity-check/goam:output: 262 +---- upstream-rbridge? tril-rb-nickname 263 +---- next-hop-rbridge* tril-rb-nickname 264 augment /goam:continuity-verification/goam:input: 265 +---- (out-of-band)? 266 | +--:(ipv4-address) 267 | | +---- ipv4-address? inet:ipv4-address 268 | +--:(ipv6-address) 269 | | +---- ipv6-address? inet:ipv6-address 270 | +--:(trill-nickname) 271 | +---- trill-nickname? tril-rb-nickname 272 +---- diagnostic-vlan? boolean 273 augment /goam:continuity-verification/goam:input: 274 +---- flow-entropy-trill? flow-entropy-trill 275 augment /goam:continuity-verification/goam:output: 276 +--:(monitor-stats-resp) 277 | +---- tx-packt-count? oam-counter32 278 | +---- rx-packet-count? oam-counter32 279 | +---- min-delay? oam-counter32 280 | +---- average-delay? oam-counter32 281 | +---- max-delay? oam-counter32 282 +---- upstream-rbridge? tril-rb-nickname 283 +---- next-hop-rbridge* tril-rb-nickname 284 augment /goam:traceroute/goam:input: 285 +---- (out-of-band)? 286 | +--:(ipv4-address) 287 | | +---- ipv4-address? inet:ipv4-address 288 | +--:(ipv6-address) 289 | | +---- ipv6-address? inet:ipv6-address 290 | +--:(trill-nickname) 291 | +---- trill-nickname? tril-rb-nickname 292 +---- diagnostic-vlan? boolean 293 augment /goam:traceroute/goam:input: 294 +---- flow-entropy-trill? flow-entropy-trill 295 augment /goam:traceroute/goam:output/goam:response: 296 +--:(monitor-stats-ext) 297 | +---- tx-packt-count? oam-counter32 298 | +---- rx-packet-count? oam-counter32 299 | +---- min-delay? oam-counter32 300 | +---- average-delay? oam-counter32 301 | +---- max-delay? oam-counter32 302 +---- upstream-rbridge? tril-rb-nickname 303 +---- next-hop-rbridge* tril-rb-nickname 304 rpcs: 305 +---x mtv 306 +---w input 307 | +---w technology identityref 308 | +---w MD-name-string MD-name-string 309 | +---w MA-name-string? MA-name-string 310 | +---w (out-of-band)? 311 | | +--:(ipv4-address) 312 | | | +---w ipv4-address? inet:ipv4-address 313 | | +--:(ipv6-address) 314 | | | +---w ipv6-address? inet:ipv6-address 315 | | +--:(trill-nickname) 316 | | +---w trill-nickname? tril-rb-nickname 317 | +---w diagnostic-vlan? boolean 318 | +---w (flow-entropy)? 319 | | +--:(flow-entropy-null) 320 | | | +---w flow-entropy-null? empty 321 | | +--:(flow-entropy-trill) 322 | | +---w flow-entropy-trill? flow-entropy-trill 323 | +---w max-hop-count? uint8 324 | +---w type? identityref 325 | +---w scope* tril-rb-nickname 326 | +---w ecmp-choice? enumeration 327 | +---w outgoing-interfaces* [interface] 328 | | +---w interface if:interface-ref 329 | +---w source-mep 330 | | +---w (mep-address)? 331 | | | +--:(mac-address) 332 | | | | +---w mac-address? yang:mac-address 333 | | | +--:(ipv4-address) 334 | | | | +---w ipv4-address? inet:ipv4-address 335 | | | +--:(ipv6-address) 336 | | | +---w ipv6-address? inet:ipv6-address 337 | | +---w mep-id? tril-rb-nickname 338 | +---w destination-mep 339 | +---w (mep-address)? 340 | | +--:(mac-address) 341 | | | +---w mac-address? yang:mac-address 342 | | +--:(ipv4-address) 343 | | | +---w ipv4-address? inet:ipv4-address 344 | | +--:(ipv6-address) 345 | | +---w ipv6-address? inet:ipv6-address 346 | +---w mep-id? tril-rb-nickname 347 +--ro output 348 +--ro response* [mep-address mep-id] 349 +--ro hop-count? uint8 350 +--ro mep-id tril-rb-nickname 351 +--ro mep-address tril-rb-nickname 352 +--ro next-hop-rbridge* tril-rb-nickname 353 +--ro upstream-rbridge? tril-rb-nickname 354 +--ro multicast-receiver-count? uint32 355 +--ro tx-packt-count? oam-counter32 356 +--ro rx-packet-count? oam-counter32 357 +--ro min-delay? oam-counter32 358 +--ro average-delay? oam-counter32 359 +--ro max-delay? oam-counter32 361 6. OAM YANG module 363 file "ietf-trill-oam.yang" 364 module ietf-trill-oam { 365 namespace "urn:ietf:params:xml:ns:yang:ietf-trill-oam"; 366 prefix trilloam; 368 import ietf-conn-oam { 369 prefix goam; 370 } 371 import ietf-inet-types { 372 prefix inet; 373 } 374 import ietf-interfaces { 375 prefix if; 376 } 377 import ietf-yang-types { 378 prefix yang; 379 } 380 organization "IETF TRILL Working Group"; 381 contact 382 " 383 WG List: mailto:trill@ietf.org 384 Editor: Deepak Kumar dekumar@cisco.com"; 385 description 386 "This YANG module defines the configuration for TRILL, 387 OAM Fault Management statistics and rpc"; 389 revision 2016-07-17 { 390 description 391 "Initial revision."; 392 reference "draft-ietf-trill-yang-oam"; 393 } 395 identity trill { 396 base goam:technology-types; 397 description 398 "trill type"; 399 } 401 typedef oam-counter32 { 402 type yang:zero-based-counter32; 403 description 404 "defines 32 bit counter for OAM"; 405 } 407 typedef tril-rb-nickname { 408 type uint16; 409 description 410 "Trill Rbridge Nickname"; 411 } 413 typedef flow-entropy-trill { 414 type binary { 415 length "1..96"; 416 } 417 description 418 "Flow entropy as defined in RFC7455"; 419 } 421 typedef vlan { 422 type uint16 { 423 range "0..4095"; 424 } 425 description 426 "Vlan Identifier."; 427 } 429 typedef fgl { 430 type uint32; 431 description 432 "Fine Grain Label"; 433 } 435 identity trill-mtv { 436 base goam:command-sub-type; 437 description 438 "identfies this command as multicast tree verification comand"; 439 } 441 identity trill-ping { 442 base goam:command-sub-type; 443 description 444 "identifies the command as TRILL Loopback Request"; 445 } 447 identity trill-trace-route { 448 base goam:command-sub-type; 449 description 450 "identifies the command as TRILL Pathtrace Request."; 451 } 453 grouping command-ext-trill { 454 description 455 "group the rpc command extensions for trill"; 456 choice out-of-band { 457 case ipv4-address { 458 leaf ipv4-address { 459 type inet:ipv4-address; 460 description 461 "ip version 4 address of the device where out of 462 band reply should be sent."; 463 } 464 } 465 case ipv6-address { 466 leaf ipv6-address { 467 type inet:ipv6-address; 468 description 469 "ip version 6 address of the device where out of 470 band reply should be sent."; 471 } 472 } 473 case trill-nickname { 474 leaf trill-nickname { 475 type tril-rb-nickname; 476 description 477 "TRILL Rbridge Nickname of the device where out of 478 band reply should be sent."; 479 } 480 } 481 description 482 "presence of this node indicate out of band request needed"; 483 } 484 leaf diagnostic-vlan { 485 type boolean; 486 description 487 "indicates whether to include diagnostic VLAN/fgl TLV or not 488 in the request. actual value is the VLAN/FGL specified 489 in the command"; 490 } 491 } 492 grouping monitor-stats-trill { 493 leaf tx-packt-count { 494 type oam-counter32; 495 description 496 "Transmitted Packet count"; 497 } 498 leaf rx-packet-count { 499 type oam-counter32; 500 description 501 "Received packet count, zero for one way message (CCM)."; 502 } 503 leaf min-delay { 504 type oam-counter32; 505 units milliseconds; 506 description 507 "Delay is specified in milliseconds, zero for one 508 way message (CCM)."; 509 } 510 leaf average-delay { 511 type oam-counter32; 512 units millisecond; 513 description 514 "average delay in milliseconds, zero for one way 515 message (CCM)."; 516 } 518 leaf max-delay { 519 type oam-counter32; 520 units millisecond; 521 description 522 "Maximum delay in milliseconds, zero for one way 523 message (CCM)."; 524 } 525 description 526 "Monitor Statistics"; 527 } 529 augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mep-address" { 530 case mep-address-trill { 531 leaf mep-address-trill { 532 when "/goam:domains/goam:domain/goam:technology='trill'" { 533 description 534 "Technology TRILL"; 535 } 536 type tril-rb-nickname; 537 description 538 "MEP Address TRILL Rbridge Nickname."; 539 } 540 } 541 description 542 "Extend Generic OAM Maintenance Point Address."; 543 } 545 augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:connectivity-context" { 546 case connectivity-context-vlan { 547 leaf connectivity-context-vlan { 548 type vlan; 549 description 550 "Connectivity context Vlan Identifier."; 551 } 552 } 553 case connectivity-context-fgl { 554 leaf connectivity-context-fgl { 555 type fgl; 556 description 557 "connectivity context Fine Grain Label."; 558 } 559 } 560 description 561 "Extends connectivity context."; 562 } 564 augment "/goam:domains/goam:domain/goam:MAs/goam:MA" { 565 leaf flow-entropy-trill { 566 type flow-entropy-trill; 567 description 568 "connectivity context flow entropy."; 569 } 570 description 571 "Extends Flow Entropy."; 572 } 574 augment 575 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP" { 576 leaf flow-entropy-trill { 577 type flow-entropy-trill; 578 description 579 "Flow Entropy TRILL"; 580 } 581 description 582 "Extends Flow Entropy defined under Generic OAM MEP."; 583 } 585 augment 586 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session" { 587 leaf flow-entropy-trill { 588 type flow-entropy-trill; 589 description 590 "Flow Entropy TRILL"; 591 } 592 description 593 "Extends Flow Entropy defined under Generic OAM Session."; 594 } 595 augment "/goam:continuity-check/goam:input" { 596 uses command-ext-trill; 597 description 598 "Extends continuity check input."; 599 } 600 augment "/goam:continuity-check/goam:input" { 601 leaf flow-entropy-trill { 602 type flow-entropy-trill; 603 description 604 "Flow Entropy TRILL"; 605 } 606 description 607 "Extends continuity check input Flow entropy."; 608 } 609 augment "/goam:continuity-check/goam:output" { 610 description 611 "adds trill specific items on the response"; 612 leaf upstream-rbridge { 613 type tril-rb-nickname; 614 description 615 "Trill Rbridge nickname."; 616 } 617 leaf-list next-hop-rbridge { 618 type tril-rb-nickname; 619 description 620 "nickname of the next hop RBRdige"; 621 } 622 } 623 augment "/goam:continuity-verification/goam:input" { 624 uses command-ext-trill; 625 description 626 "Extends continuity check input."; 627 } 629 augment "/goam:continuity-verification/goam:input" { 630 leaf flow-entropy-trill { 631 type flow-entropy-trill; 632 description 633 "Flow Entropy TRILL"; 634 } 635 description 636 "Extends continuity check input Flow entropy."; 637 } 639 augment "/goam:continuity-verification/goam:output" { 640 description 641 "adds trill specific items on the response"; 642 case monitor-stats-resp { 643 uses monitor-stats-trill; 644 } 645 leaf upstream-rbridge { 646 type tril-rb-nickname; 647 description 648 "Trill Rbridge nickname."; 649 } 650 leaf-list next-hop-rbridge { 651 type tril-rb-nickname; 652 description 653 "nickname of the next hop RBRdige"; 654 } 655 } 656 augment "/goam:traceroute/goam:input" { 657 uses command-ext-trill; 658 description 659 "Extends path disovery Input."; 660 } 662 augment "/goam:traceroute/goam:input" { 663 leaf flow-entropy-trill { 664 type flow-entropy-trill; 665 description 666 "Flow entropy TRILL."; 667 } 668 description 669 "Extends path discovery input flow entropy."; 670 } 672 augment "/goam:traceroute/goam:output/goam:response" { 673 description 674 "adds trill specific items on the response"; 675 case monitor-stats-ext { 676 uses monitor-stats-trill; 677 } 678 leaf upstream-rbridge { 679 type tril-rb-nickname; 680 description 681 "Upstream Rbridge nickname."; 682 } 683 leaf-list next-hop-rbridge { 684 type tril-rb-nickname; 685 description 686 "nickname of the next hop RBRdige"; 687 } 688 } 690 rpc mtv { 691 description 692 "Generates Trace-route and return response. Starts with TTL 693 of one and increment by one at each hop. Untill destination 694 reached or TTL reach max valune"; 695 input { 696 uses goam:maintenance-domain-id { 697 description 698 "Specifies the MA-domain"; 699 } 700 uses goam:ma-identifier { 701 description 702 "identfies the Maintenance association"; 703 } 704 uses command-ext-trill { 705 description 706 "defines extensions needed for trill. 707 We are using this structure so mtv command is in line 708 with ping and trace-route"; 709 } 711 choice flow-entropy { 712 case flow-entropy-null { 713 leaf flow-entropy-null { 714 type empty; 715 description 716 "Empty flow entropy"; 717 } 718 } 719 case flow-entropy-trill { 720 leaf flow-entropy-trill { 721 type flow-entropy-trill; 722 description 723 "Flow Entroy TRILL"; 724 } 725 } 726 description 727 "Flow Entropy choices."; 728 } 730 leaf max-hop-count { 731 type uint8; 732 default "255"; 733 description 734 "Defines maximum value of hop count"; 735 } 737 leaf type { 738 type identityref { 739 base goam:command-sub-type; 740 } 741 description 742 "defines different command types"; 743 } 745 leaf-list scope { 746 type tril-rb-nickname; 747 description 748 "This list contain rbridges that needed to respond 749 Empty list indicate all Rbridges needed to respond"; 750 reference "RFC7455"; 751 } 753 leaf ecmp-choice { 754 type enumeration { 755 enum "ecmp-use-platform-hash" { 756 value 0; 757 description 758 "Use Platform hashing to send packet on 759 specified interface."; 760 } 761 enum "ecmp-use-round-robin" { 762 value 1; 763 description 764 "Use round robin hashing."; 765 } 766 } 767 description 768 "Ecmp Choice enumeration."; 769 } 771 list outgoing-interfaces { 772 key "interface"; 773 leaf interface { 774 type if:interface-ref; 775 description 776 "Interface"; 777 } 778 description 779 "List of Outgoing Interface."; 780 } 781 container source-mep { 782 uses goam:mep-address; 783 description 784 "Source MEP Container."; 785 leaf mep-id { 786 type tril-rb-nickname; 787 description 788 "Trill Rbridge Nickname"; 789 } 790 } 791 container destination-mep { 792 uses goam:mep-address; 793 leaf mep-id { 794 type tril-rb-nickname; 795 description 796 "MEP Identifier."; 797 } 798 description 799 "Destination MEP Identifier."; 800 } 801 } 802 output { 803 list response { 804 key "mep-address mep-id"; 805 leaf hop-count { 806 type uint8; 807 description 808 "unsigned integer 1-255"; 809 } 810 leaf mep-id { 811 type tril-rb-nickname; 812 description 813 "Maintenance Endpoint Identifier."; 814 } 815 leaf mep-address { 816 type tril-rb-nickname; 817 description 818 "Maintenance Endpoint Address."; 819 } 820 leaf-list next-hop-rbridge { 821 type tril-rb-nickname; 822 description 823 "list of downstream rbridges. There is no perticular 824 order"; 825 } 826 leaf upstream-rbridge { 827 type tril-rb-nickname; 828 description 829 "Upstream Rbridge Nickname."; 830 } 831 leaf multicast-receiver-count { 832 type uint32; 833 description 834 "number of ports that are interested in this multicast 835 stream"; 836 } 837 uses monitor-stats-trill; 838 description 839 "Output list."; 840 } 841 } 842 } 843 } 845 847 7. Base Mode for TRILL OAM The Base Mode defines default configuration 848 that MUST be present in the devices that comply with this document. 849 Base Mode allows users to have a zero-touch experience. Details of 850 TRILL Base Mode for OAM are defined in RFC7455 Appendix B. 852 8. Security Considerations 854 There are no security considerations relevant to this document. 856 9. IANA Considerations 858 This document registers the following namespace URI in the IETF XML 859 registry. URI:urn:ietf:params:xml:ns:yang:ietf-trill-oam 861 10. References 863 10.1. Normative References 865 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 866 Requirement Levels", BCP 14, RFC 2119, March 1997. 868 [RFC2234] Crocker, D. and Overell, P.(Editors), "Augmented BNF for 869 Syntax Specifications: ABNF", RFC 2234, Internet Mail 870 Consortium and Demon Internet Ltd., November 1997. 872 [8021Q] IEEE, "Media Access Control (MAC) Bridges and Virtual 873 Bridged Local Area Networks", IEEE Std 802.1Q-2011, 874 August, 2011. 876 [RFC7174] Salam, S., et.al., "Transparent Interconnect of Lots of 877 Links (TRILL) OAM Framework", May, 2014. 879 [RFC7455] Senevirathne, T., et.al, "Transparent Interconnect of Lots 880 of Links(TRILL): Fault Management", March, 2015 882 10.2. Informative References 884 [RFC7174] TRILL OAM Framework 886 [Y1731] ITU, "OAM functions and mechanisms for Ethernet based 887 networks", ITU-T G.8013/Y.1731, July, 2011. 889 [RFC6291] Andersson, L., et.al., "Guidelines for the use of the "OAM" 890 Acronym in the IETF" RFC 6291, June 2011. 892 [RFC6325] Perlman, R., et.al., "Routing Bridges (RBridges): Base 893 Protocol Specification", RFC 6325, July 2011. 895 [GENYANGOAM] Senevirathne, T., et.al., "YANG Data Model for 896 Operations, Administration and Maintenance (OAM)", Work in 897 Progress, March, 2014. 899 11. Acknowledgments 901 Giles Heron came up with the idea of developing a YANG 902 model as a way of creating a unified OAM API set 903 (interface), work in this document is largely an 904 inspiration of that. Alexander Clemm provided many 905 valuable tips, comments and remarks that helped to refine 906 the YANG model presented in this document. 908 Authors' Addresses 910 Authors' Addresses 911 Tissa Senevirathne 912 CISCO Systems 913 375 East Tasman Drive. 914 San Jose, CA 95134 915 USA. 917 Phone: 408-853-2291 918 Email: tsenevir@cisco.com 920 Norman Finn 921 CISCO Systems 922 510 McCarthy Blvd 923 Milpitas, CA 95035. 925 Email: nfinn@cisco.com 927 Deepak Kumar 928 CISCO Systems 929 510 McCarthy Blvd 930 Milpitas, CA 95035. 932 Email: dekumar@cisco.com 934 Samer Salam 935 CISCO Systems 936 595 Burrard St. Suite 2123 937 Vancouver, BC V7X 1J1, Canada 939 Email: ssalam@cisco.com 941 Liang Xia 942 Huawei technologies 944 Email: frank.xialiang@huawei.com 946 Weiguo Hao 947 Huawei Technologies 948 101 Software Avenue 949 Nanjing 210012, China 951 Email: haoweiguo@huawei.com