idnits 2.17.1 draft-wang-lime-yang-pm-01.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 is 1 instance of too long lines in the document, the longest one being 1 character in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 169 has weird spacing: '...-cookie uin...' == Line 251 has weird spacing: '...-cookie uin...' == Line 362 has weird spacing: '...-cookie uin...' == Line 400 has weird spacing: '...-cookie uin...' == Line 505 has weird spacing: '...sion-id uin...' == (2 more instances...) -- The document date (November 28, 2015) is 3065 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. 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: 'RFC6241' is mentioned on line 92, but not defined == Missing Reference: 'RFC6020' is mentioned on line 112, but not defined == Missing Reference: 'RFC7174' is mentioned on line 122, but not defined == Missing Reference: '8021Q' is mentioned on line 118, but not defined == Missing Reference: 'RFC6371' is mentioned on line 120, but not defined == Missing Reference: 'RFC6291' is mentioned on line 126, but not defined == Unused Reference: 'IEEE802.1Q' is defined on line 1617, but no explicit reference was found in the text -- No information found for draft-tissa-lime-yang-oam-management - is the name correct? -- Possible downref: Normative reference to a draft: ref. 'GENYANGGOAM' Summary: 1 error (**), 0 flaws (~~), 14 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Z. Wang 3 Internet-Draft Q. Wu 4 Intended status: Standards Track Huawei 5 Expires: May 31, 2016 D. Kumar 6 Cisco 7 T. Taylor 8 PT Taylor Consulting 9 November 28, 2015 11 Generic YANG Data Model for Operations, Administration, and Maintenance 12 (OAM) Performance Management 13 draft-wang-lime-yang-pm-01 15 Abstract 17 This document presents a YANG Data model for OAM Performance 18 management support. The YANG Model presented in this document 19 extends the Generic YANG Data Model for OAM with Loss Measurement and 20 Delay measurement to support OAM Performance management. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at http://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on May 31, 2016. 39 Copyright Notice 41 Copyright (c) 2015 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (http://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 57 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 2 58 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 59 3. YANG Extension . . . . . . . . . . . . . . . . . . . . . . . 4 60 3.1. MEP Configuration Extension . . . . . . . . . . . . . . . 4 61 3.1.1. Loss Measurement Configuration . . . . . . . . . . . 4 62 3.2. Delay Measurement Configuration . . . . . . . . . . . . . 5 63 3.3. rpc definitions . . . . . . . . . . . . . . . . . . . . . 8 64 3.3.1. create-loss-measurement . . . . . . . . . . . . . . . 8 65 3.3.2. abort-loss-measurement . . . . . . . . . . . . . . . 8 66 3.3.3. create-delay-measurement . . . . . . . . . . . . . . 8 67 3.3.4. abort-delay-measurement . . . . . . . . . . . . . . . 8 68 4. PM data hierarchy . . . . . . . . . . . . . . . . . . . . . . 8 69 5. PM YANG Module . . . . . . . . . . . . . . . . . . . . . . . 14 70 6. Security Considerations . . . . . . . . . . . . . . . . . . . 35 71 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 72 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 73 8.1. Normative References . . . . . . . . . . . . . . . . . . 35 74 8.2. Informative References . . . . . . . . . . . . . . . . . 35 75 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 77 1. Introduction 79 Generic OAM Yang model [GENYANGGOAM] presents Generic Yang data model 80 for all OAM technologies. 82 In this document we extend the YANG model defined in [GENYANGGOAM] 83 with Loss Measurement and Delay measurement to support OAM 84 Performance management. Details are provided in section 4 below. 86 2. Conventions and Terminology 88 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 89 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 90 document are to be interpreted as described in [RFC2119]. 92 The following terms are defined in [RFC6241] and are not redefined 93 here: 95 o client 96 o configuration data 98 o server 100 o state data 102 The following terms are defined in [RFC6020] and are not redefined 103 here: 105 o augment 107 o data model 109 o data node 111 The terminology for describing YANG data models is found in 112 [RFC6020]. 114 2.1. Terminology 116 MP - Maintenance Point [8021.Q] 118 MEP - Maintenance End Point [RFC7174] [8021Q] [RFC6371] 120 MIP - Maintenance Intermediate Point [RFC7174] [8021.Q] [RFC6371] 122 MA - Maintenance Association [8021.Q] [RFC7174] 124 MD - Maintenance Domain [8021.Q] 126 OAM - Operations, Administration, and Maintenance [RFC6291] 128 DMM - Delay Measurement Message 130 1SL - One-way Synthetic Loss Measurement message 132 1DM - One-way Delay Measurement message 134 DMR - Delay Measurement Reply 136 PM - Performance Monitoring 138 SLM - Synthetic Loss Measurement Message 140 SLR - Synthetic Loss Measurement Reply 142 3. YANG Extension 144 MEP Addressing is defined in Generic YANG OAM model[GENYANGGOAM]. In 145 this draft we augment MEP Configuration with Performance Management 146 configuration and statistics for Delay Measurement and Performance 147 Measurement. In addtion, we define new rpcs for performance 148 measurement. 150 3.1. MEP Configuration Extension 152 3.1.1. Loss Measurement Configuration 154 This section describes a set of data definitions for Loss Measurement 155 configuration. This set of data defintions augment the MEP 156 configuration defined in the Generic YANG OAM model with parameters 157 related to Loss Measurement and define the role of MEP and 158 measurement method of the loss measurement. 160 module: ietf-gen-oam-pm 162 /*This set of data definitions defines the role of MEP.*/ 163 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 164 +--rw loss-responder? Boolean 165 /*This set of data definitions defines loss measurement configuration*/ 166 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 167 +--rw loss-measurements? 168 +--ro loss-measurements* [session-cookie] 169 | +--ro session-cookie uint32 170 | +--ro id? string 171 | +--ro status? Boolean 172 +--rw measurement-type 173 | +--rw slm? boolean 174 | +--rw pm_1sl? boolean 175 +--rw enabled-counters 176 | +--rw availability-forward-high-loss? boolean 177 | +--rw availability-forward-availables? boolean 178 | +--rw availability-forward-unavailable? boolean 179 | +--rw availability-backward-high-loss? boolean 180 | +--rw availability-backward-consecutive-high-loss? boolean 181 | +--rw availability-backward-available? boolean 182 | +--rw available-backward-unavailable? boolean 183 +--rw message-period? uint32 184 +--rw data-pattern? enumeration 185 +--rw measurement-interval? uint32 186 +--rw number-intervals-stored? uint32 187 +--rw availability-measurement-interval? uint32 188 +--rw availability-consecutive-intervals-number? unit32 189 +--rw session-type? enumeration 190 +--rw thresholds* [id] 191 | +--rw id uint32 192 | +--rw enabled-threshold 193 | | +--rw forward-unavailable-count? boolean 194 | | +--rw backward-unavailable-count? boolean 195 | | +--rw forward-available-ratio? boolean 196 | | +--rw forward-available-ratio? boolean 197 | +--rw forward-unavailable-count uint32 198 | +--rw backward-unavailable-count uint32 199 | +--rw forward-available-ratio? uint32 200 | +--rw backward-available-ratio? uint32 201 +--rw start-time 202 | +--rw (start-time)? 203 | +--:(immediate) 204 | | +--rw immediate! 205 | +--:(absolute) 206 | +--rw absolute? yang:date-and-time 207 +--rw stop-time 208 | +--rw (stop-time)? 209 | +--:(none) 210 | | +--rw none! 211 | +--:(absolute) 212 | +--rw absolute? yang:date-and-time 213 +--rw availability-forward-status enumeration 214 +--rw availability-backward-status enumeration 215 +--rw current-stats 216 | +--rw start-time? yang:date-and-time 217 | +--rw elapsed-time? uint32 218 | +--rw suspect-status? boolean 219 | +--rw forward-available? yang:gauge32 220 | +--rw backward-available? yang:gauge32 221 | +--rw forward-unavailable? yang:gauge32 222 | +--rw backward-unavailable? yang:gauge32 223 +--rw history-stats* [id] 224 +--rw id uint32 225 +--rw start-time? yang:date-and-time 226 +--rw elapsed-time? uint32 227 +--rw suspect-status? Boolean 228 +--rw forward-available? yang:gauge32 229 +--rw backward-available? yang:gauge32 230 +--rw forward-unavailable? yang:gauge32 231 +--rw backward-unavailable? yang:gauge32 233 3.2. Delay Measurement Configuration 235 This section describes data definition for Delay Measurement 236 configuration. This data defintion augments the MEP configuration 237 defined in the Generic YANG OAM model with parameters related to 238 Delay Measurement and defines the role of MEP and measurement method 239 of the delay measurement. 241 module: ietf-gen-oam-pm 243 /*This set of data definitions defines the role of MEP.*/ 244 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 245 +--rw delay-responder? Boolean 247 /*This set of data definitions defines delay measurement configuration*/ 248 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 249 +--rw delay-measurements? 250 +--ro delay-measurements* [session-cookie] 251 | +--ro session-cookie uint32 252 | +--ro id? string 253 | +--ro status? boolean 254 +--rw measurement-type 255 | +--rw dmm? boolean 256 | +--rw dm1-transmitted? boolean 257 | +--rw dm1-received? boolean 258 +--rw measurement-enable 259 +--rw message-period? uint32 260 +--rw data-pattern? enumeration 261 +--rw measurement-interval? uint32 262 +--rw number-intervals-stored? uint32 263 +--rw session-type? Enumeration 264 +--rw thresholds* [id] 265 | +--rw id uint32 266 | +--rw enabled-thresholds? bits 267 +--rw start-time 268 | +--rw (start-time)? 269 | +--:(immediate) 270 | | +--rw immediate! 271 | +--:(absolute) 272 | +--rw absolute? yang:date-and-time 273 +--rw stop-time 274 | +--rw (stop-time)? 275 | +--:(none) 276 | | +--rw none! 277 | +--:(absolute) 278 | +--rw absolute? yang:date-and-time 279 +--rw current-stats 280 | +--rw start-time? yang:date-and-time 281 | +--rw elapsed-time? uint32 282 | +--rw suspect-status? boolean 283 +--rw history-stats* [id] 284 +--rw id uint32 285 +--rw start-time? yang:date-and-time 286 +--rw elapsed-time? uint32 287 +--rw suspect-status? boolean 289 3.3. rpc definitions 291 The rpc model facilitates issuing commands to a NETCONF server (in 292 this case to the device that needs to execute the OAM command) and 293 obtaining a response. 295 Configuration data in the Section 3.2 and Section 3.1.1 provides 296 input extension for Delay and Loss measurement RPCs. 298 3.3.1. create-loss-measurement 300 RPC allows scheduling of one-way or two-way on-demand or proactive 301 performance monitoring loss measurement session. 303 3.3.2. abort-loss-measurement 305 RPC allow aborting of currently running or scheduled loss measurement 306 session. 308 3.3.3. create-delay-measurement 310 RPC allow scheduling of one-way or two-way on-demand or proactive 311 performance monitoring delay measurement session. 313 3.3.4. abort-delay-measurement 315 RPC allow aborting of currently running or scheduled delay 316 measurement session. 318 4. PM data hierarchy 320 The complete data hierarchy related to the OAM PM YANG is presented 321 below. The following notations are used within the tree and carry 322 the meaning as noted below. 324 Each node is printed as: 326 328 is one of: 329 + for current 330 x for deprecated 331 o for obsolete 333 is one of: 335 rw for configuration data 336 ro for non-configuration data 337 -x for rpcs 338 -n for notifications 340 is the name of the node 342 If the node is augmented into the tree from another module, its name 343 is printed as :. 345 is one of: 347 ? for an optional leaf or choice 348 ! for a presence container 349 * for a leaf-list or list 350 [] for a list's keys 352 is the name of the type for leafs and leaf-lists 354 module: ietf-gen-oam-pm 355 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 356 +--rw delay-responder? Boolean 357 +--rw loss-responder? Boolean 359 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 360 +--rw delay-measurements? 361 +--ro delay-measurements* [session-cookie] 362 | +--ro session-cookie uint32 363 | +--ro id? string 364 | +--ro status? boolean 365 +--rw measurement-type 366 | +--rw dmm? boolean 367 | +--rw dm1-transmitted? boolean 368 | +--rw dm1-received? boolean 369 +--rw measurement-enable 370 +--rw message-period? uint32 371 +--rw data-pattern? enumeration 372 +--rw measurement-interval? uint32 373 +--rw number-intervals-stored? uint32 374 +--rw session-type? enumeration 375 +--rw start-time 376 | +--rw (start-time)? 377 | +--:(immediate) 378 | | +--rw immediate! 379 | +--:(absolute) 380 | +--rw absolute? yang:date-and-time 381 +--rw stop-time 382 | +--rw (stop-time)? 383 | +--:(none) 384 | | +--rw none! 385 | +--:(absolute) 386 | +--rw absolute? yang:date-and-time 387 +--rw current-stats 388 | +--rw start-time? yang:date-and-time 389 | +--rw elapsed-time? uint32 390 | +--rw suspect-status? Boolean 391 +--rw history-stats* [id] 392 +--rw id uint32 393 +--rw start-time? yang:date-and-time 394 +--rw elapsed-time? uint32 395 +--rw suspect-status? boolean 397 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP: 398 +--rw loss-measurements? 399 +--ro loss-measurements* [session-cookie] 400 | +--ro session-cookie uint32 401 | +--ro id? string 402 | +--ro status? boolean 403 +--rw measurement-type 404 | +--rw slm? boolean 405 | +--rw pm_1sl? boolean 406 +--rw enabled-counters 407 | +--rw availability-forward-high-loss? boolean 408 | +--rw availability-forward-availables? boolean 409 | +--rw availability-forward-unavailable? boolean 410 | +--rw availability-backward-high-loss? Boolean 411 | +--rw availability-backward-consecutive-high-loss? boolean 412 | +--rw availability-backward-available? boolean 413 | +--rw available-backward-unavailable? boolean 414 +--rw message-period? uint32 415 +--rw data-pattern? enumeration 416 +--rw measurement-interval? uint32 417 +--rw number-intervals-stored? uint32 418 +--rw availability-measurement-interval? uint32 419 +--rw availability-consecutive-intervals-number? unit32 420 +--rw session-type? enumeration 421 +--rw thresholds* [id] 422 | +--rw id uint32 423 | +--rw enabled-threshold 424 | | +--rw forward-unavailable-count? boolean 425 | | +--rw backward-unavailable-count? boolean 426 | | +--rw forward-available-ratio? boolean 427 | | +--rw forward-available-ratio? boolean 428 | +--rw forward-unavailable-count uint32 429 | +--rw backward-unavailable-count uint32 430 | +--rw forward-available-ratio? uint32 431 | +--rw backward-available-ratio? uint32 432 +--rw start-time 433 | +--rw (start-time)? 434 | +--:(immediate) 435 | | +--rw immediate! 436 | +--:(absolute) 437 | +--rw absolute? yang:date-and-time 438 +--rw stop-time 439 | +--rw (stop-time)? 440 | +--:(none) 441 | | +--rw none! 442 | +--:(absolute) 443 | +--rw absolute? yang:date-and-time 444 +--rw current-stats 445 | +--rw start-time? yang:date-and-time 446 | +--rw elapsed-time? uint32 447 | +--rw suspect-status? Boolean 448 | +--rw forward-available? yang:gauge32 449 | +--rw backward-available? yang:gauge32 450 | +--rw forward-unavailable? yang:gauge32 451 | +--rw backward-unavailable? yang:gauge32 452 +--rw history-stats* [id] 453 +--rw id uint32 454 +--rw start-time? yang:date-and-time 455 +--rw elapsed-time? uint32 456 +--rw suspect-status? boolean 457 +--rw forward-available? yang:gauge32 458 +--rw backward-available? yang:gauge32 459 +--rw forward-unavailable? yang:gauge32 460 +--rw backward-unavailable? yang:gauge32 461 rpcs: 462 +---x create-loss-measurement 463 | +--ro input 464 | | +--rw measurement-type 465 | | | +--rw slm? boolean 466 | | | +--rw pm_1sl? boolean 467 | | +--rw enabled-counters 468 | | | +--rw availability-forward-high-loss? boolean 469 | | | +--rw availability-forward-availables? boolean 470 | | | +--rw availability-forward-unavailable? boolean 471 | | | +--rw availability-backward-high-loss? boolean 472 | | | +--rw availability-backward-consecutive-high-loss? boolean 473 | | | +--rw availability-backward-available? boolean 474 | | | +--rw available-backward-unavailable? boolean 475 | | +--ro message-period? uint32 476 | | +--ro data-pattern? enumeration 477 | | +--ro measurement-interval? uint32 478 | | +--ro number-intervals-stored? uint32 479 | | +--ro session-type? enumeration 480 | | +--ro start-time 481 | | | +--ro (start-time)? 482 | | | +--:(immediate) 483 | | | | +--ro immediate! 484 | | | +--:(absolute) 485 | | | +--ro absolute? yang:date-and-time 486 | | +--ro stop-time 487 | | | +--ro (stop-time)? 488 | | | +--:(none) 489 | | | | +--ro none! 490 | | | +--:(absolute) 491 | | | +--ro absolute? yang:date-and-time 492 | | +--ro destination-mep 493 | | +--ro (mp-address)? 494 | | | +--:(mac-address) 495 | | | | +--ro mac-address? yang:mac-address 496 | | | +--:(ipv4-address) 497 | | | | +--ro ipv4-address? inet:ipv4-address 498 | | | +--:(ipv6-address) 499 | | | +--ro ipv6-address? inet:ipv6-address 500 | | +--ro (MEP-ID)? 501 | | | +--:(MEP-ID-int) 502 | | | +--ro MEP-ID-int? int32 503 | | +--ro MEP-ID-format? identityref 504 | +--ro output 505 | +--ro session-id uint32 506 +---x abort-loss-measurement 507 | +--ro input 508 | +--ro technology identityref 509 | +--ro MD-name-string MD-name-string 510 | +--ro MA-name-string? MA-name-string 511 | +--ro destination-mep 512 | | +--ro (mp-address)? 513 | | | +--:(mac-address) 514 | | | | +--ro mac-address? yang:mac-address 515 | | | +--:(ipv4-address) 516 | | | | +--ro ipv4-address? inet:ipv4-address 517 | | | +--:(ipv6-address) 518 | | | +--ro ipv6-address? inet:ipv6-address 519 | | +--ro (MEP-ID)? 520 | | | +--:(MEP-ID-int) 521 | | | +--ro MEP-ID-int? int32 522 | | +--ro MEP-ID-format? identityref 523 | +--ro session-id uint32 524 +---x create-delay-measurement 525 | +--ro input 526 | | +--ro measurement-type 527 | | | +--ro dmm? boolean 528 | | | +--ro dm1-transmitted? boolean 529 | | | +--ro dm1-received? boolean 530 | | +--ro measurement-enable 531 | | +--ro message-period? uint32 532 | | +--ro data-pattern? enumeration 533 | | +--ro measurement-interval? uint32 534 | | +--ro number-intervals-stored? uint32 535 | | +--ro session-type? enumeration 536 | | +--ro start-time 537 | | | +--ro (start-time)? 538 | | | +--:(immediate) 539 | | | | +--ro immediate! 540 | | | +--:(absolute) 541 | | | +--ro absolute? yang:date-and-time 542 | | +--ro stop-time 543 | | | +--ro (stop-time)? 544 | | | +--:(none) 545 | | | | +--ro none! 546 | | | +--:(absolute) 547 | | | +--ro absolute? yang:date-and-time 548 | | +--ro destination-mep 549 | | | +--ro (mp-address)? 550 | | | | +--:(mac-address) 551 | | | | | +--ro mac-address? yang:mac-address 552 | | | | +--:(ipv4-address) 553 | | | | | +--ro ipv4-address? inet:ipv4-address 554 | | | | +--:(ipv6-address) 555 | | | | +--ro ipv6-address? inet:ipv6-address 556 | | | +--ro (MEP-ID)? 557 | | | | +--:(MEP-ID-int) 558 | | | | +--ro MEP-ID-int? int32 559 | | | +--ro MEP-ID-format? identityref 560 | | +--ro (flow-entropy)? 561 | | +--:(flow-entropy-null) 562 | | +--ro flow-entropy-null empty 563 | +--ro output 564 | +--ro session-id uint32 565 +---x abort-delay-measurement 566 +--ro input 567 +--ro technology identityref 568 +--ro MD-name-string MD-name-string 569 +--ro MA-name-string? MA-name-string 570 +--ro destination-mep 571 | +--ro (mp-address)? 572 | | +--:(mac-address) 573 | | | +--ro mac-address? yang:mac-address 574 | | +--:(ipv4-address) 575 | | | +--ro ipv4-address? inet:ipv4-address 576 | | +--:(ipv6-address) 577 | | +--ro ipv6-address? inet:ipv6-address 578 | +--ro (MEP-ID)? 579 | | +--:(MEP-ID-int) 580 | | +--ro MEP-ID-int? int32 581 | +--ro MEP-ID-format? identityref 582 +--ro session-id uint32 584 data hierarchy of PM 586 5. PM YANG Module 588 file "ietf-gen-oam-pm.yang" 590 module ietf-gen-oam-pm { 591 namespace "urn:ietf:params:xml:ns:yang:ietf-gen-oam-pm"; 592 prefix goampm; 594 import ietf-gen-oam { 595 prefix goam; 596 } 597 import ietf-yang-types { 598 prefix yang; 599 } 601 organization 602 "IETF LIME (Layer Independent OAM Management in Multi-Layer 603 Environment) Working Group"; 605 contact 606 "zitao wang: wangzitao@huawei.com"; 608 description 610 "This YANG module defines generic loss measurement and 611 delay measurement configuration for multi-layer OAM 612 management to be used within IETF in a protocol independent 613 manner."; 615 revision 2015-01-07 { 616 description 617 "Initial revision."; 618 reference "draft-wang-lime-yang-pm"; 619 } 621 /* features */ 622 feature loss-measurements { 623 description 624 "This feature indicates that the server supports 625 configuration of loss measurement that is used by some OAM 626 protocols. 628 Servers that do not advertise this feature will not 629 configure loss measurement"; 630 } 632 feature delay-measurements { 633 description 634 "This feature indicates that the server supports 635 configuration of delay measurement that is used by some OAM 636 protocols. 638 Servers that do not advertise this feature will not 639 configure delay measurement"; 640 } 642 feature create-loss-measurement{ 643 description 644 "This feature indicates that the server supports executing 645 the create-loss-measurement OAM command and returning a 646 response. Servers that do not advertise this feature will 647 not support execution of the create-loss-measurement command 648 or the RPC model for the create-loss-measurement command."; 649 } 651 feature abort-loss-measurement{ 652 description 653 "This feature indicates that the server supports executing 654 the abort-loss-measurement OAM command and returning a 655 response. Servers that do not advertise this feature will 656 not support execution of the abort-loss-measurement command 657 or the RPC model for the abort-loss-measurement command."; 659 } 660 feature create-delay-measurement{ 661 description 662 "This feature indicates that the server supports executing 663 the create-delay-measurement OAM command and returning a 664 response. Servers that do not advertise this feature will 665 not support execution of the create-delay-measurement 666 command or the RPC model for the create-delay-measurement 667 command."; 668 } 670 feature abort-delay-measurement{ 671 description 672 "This feature indicates that the server supports executing 673 the abort-delay-measurement OAM command and returning a 674 response. Servers that do not advertise this feature will 675 not support execution of the abort-delay-measurement 676 command or the RPC model for the abort-delay-measurement 677 command."; 678 } 680 grouping loss-measurement-configuration-group { 681 description 682 "This grouping includes configuration objects for the loss 683 measurement function defined in GEN-PM."; 684 reference 685 "draft-wang-lime-yang-pm"; 687 container measurement-type { 688 leaf slm { 689 type boolean; 690 description 691 "If true, generate PM SLM Messages and correlate with 692 received SLR responses."; 693 } 694 leaf pm_1sl{ 695 type boolean; 696 description 697 "If true, generate PM 1SL Messages."; 698 } 699 description 700 "This object specifies what type of loss measurement 701 will be performed."; 702 } 704 container enabled-counters { 705 leaf availability-forward-high-loss { 707 type boolean; 708 default "false"; 709 description 710 "Enable (true) or disable availability-forward-high-loss 711 counters found in the current-stats and history-stats."; 712 } 713 leaf availability-forward-available { 714 type boolean; 715 default "false"; 716 description 717 "Enable (true) or disable availability-forward-available 718 counters found in the current-stats and history-stats "; 719 } 720 leaf availability-forward-unavailable { 721 type boolean; 722 default "false"; 723 description 724 "Enable (true) or disable 725 availability-forward-unavailable counters found in the 726 current-stats and history-stats "; 727 } 728 leaf availability-backward-high-loss { 729 type boolean; 730 default "false"; 731 description 732 "Enable (true) or disable availability-backward-high-loss 733 counters found in the current-stats and history-stats "; 734 } 735 leaf availability-backward-consecutive-high-loss { 736 type boolean; 737 default "false"; 738 description 739 "Enable (true) or disable 740 availability-backward-consecutive-high-loss counters 741 found in the current-stats and history-stats "; 742 } 743 leaf availability-backward-available { 744 type boolean; 745 default "false"; 746 description 747 "Enable (true) or disable availability-backward-available 748 counters found in the current-stats and history-stats "; 749 } 750 leaf availability-backward-unavailable { 751 type boolean; 752 default "false"; 753 description 754 "Enable (true) or disable available-backward-unavailable 755 counters found in the current-stats and history-stats "; 756 } 757 description 758 "Indicates the types of PM loss measurement counters found 759 in the current-stats and history-stats that are enabled. 761 Not all counters are supported for all PM Loss Measurement 762 types."; 763 } 764 /* This terminates the enabled-counters clause */ 766 leaf message-period { 767 type uint32; 768 units "ms"; 769 default 1000; 770 description 771 "This object specifies the interval between loss 772 measurement OAM message transmissions."; 773 } 775 leaf data-pattern { 776 type enumeration { 777 enum zeroes { 778 description "Indicates the Data TLV contains all 0s."; 779 } 780 enum ones { 781 description "Indicates the Data TLV contains all 1s."; 782 } 783 } 784 default zeroes; 785 description 786 "This object specifies the loss measurement data pattern 787 included in the OAM Message."; 788 } 790 leaf measurement-interval { 791 type uint32; 792 units "minutes"; 793 default 15; 795 description 796 "This object specifies a measurement interval in 797 minutes. Measurements are accumulated in the current-stats 798 counters for the duration of this interval, and then 799 transferred to the history-stats counters."; 800 } 802 leaf number-intervals-stored { 803 type uint32 { 804 range "2..10"; 805 } 806 default 10; 807 description 808 "This object specifies the number of completed 809 measurement intervals to store in the history statistics 810 table."; 811 } 813 leaf availability-measurement-interval { 814 type uint32 { 815 range "1..525600"; 816 } 817 units minutes; 818 default 15; 819 description 820 "This object specifies the availability measurement 821 interval in minutes. Measurement interval of 15 minutes 822 MUST be supported, other intervals can be supported."; 823 } 825 leaf availability-consecutive-intervals-number { 826 type uint32 { 827 range "1..1000"; 828 } 829 default 10; 830 description 831 "This object specifies a configurable number of 832 consecutive availability indicators to be used to 833 determine a change in the availability status as 834 indicated by MEF 10.2.1. 836 This parameter is equivalent to the Availability 837 parameter 'n' as specified by MEF 10.2.1. The number 838 range of 1 through 10 MUST be supported. The number 839 range of 1 through 1000 may be supported, but is not 840 mandatory."; 841 } 843 leaf session-type { 844 type enumeration { 845 enum proactive { 846 description 847 "The current session is 'proactive'."; 848 } 849 enum on-demand { 850 description 851 "The current session is on-demand."; 852 } 853 } 854 description 855 "This object indicates whether the current session is 856 defined to be proactive or on-demand."; 857 } 859 list thresholds { 860 key "id"; 861 description 862 "This list contains the list of Loss Measurement 863 configuration threshold values for LM Performance 864 Monitoring. The main purpose of the threshold 865 configuration list is to configure threshold alarm 866 notifications indicating that a specific performance 867 metric is not being met."; 869 leaf id { 870 type uint32; 871 description 872 "The index of the threshold number for the specific LM 873 threshold entry. An index value of '1' MUST be 874 supported. Other index values can also be supported."; 875 } 877 container enabled-thresholds { 878 leaf forward-unavailable-count { 879 type boolean; 880 description 881 "If true, indicates that the forward-unavailable-count 882 is available."; 883 } 884 leaf forward-available-ratio { 885 type boolean; 886 description 887 "If true, indicates that the forward-available-ratio 888 is available."; 889 } 890 leaf backward-unavailable-count { 891 type boolean; 892 description 893 "If true, indicates that the backward-unavailable-count 894 is available."; 895 } 896 leaf backward-available-ratio { 897 type boolean; 898 description 899 "If true, indicates that the backward-available-ratio 900 is available."; 901 } 902 description 903 "A container that indicates the type of OAM loss 904 measurement threshold notifications that are enabled."; 905 } 906 /* Terminates container enabled-thresholds */ 908 leaf forward-unavailable-count { 909 type uint32; 910 description 911 "This object is used to set the forward unavailability 912 threshold value that will be used to determine if a 913 threshold notification is generated."; 914 } 915 leaf backward-unavailable-count { 916 type uint32; 917 description 918 "This object is used to set the backward unavailability 919 threshold value that will be used to determine if a 920 threshold notification is generated."; 921 } 922 leaf forward-available-ratio { 923 type uint32 { 924 range "0..100000"; 925 } 926 units milli-percent; 927 default 0; 929 description 930 "This object is used to set the forward 931 availability/total time ratio threshold value that will 932 be used to determine if a threshold notification is 933 generated if the ratio drops below the configured value. 934 The ratio value is expressed as a percent with a value 935 of 0 (ratio 0.00) through 100000 (ratio 1.00) Units are 936 in milli-percent, where 1 indicates 0.001 percent."; 937 } 938 leaf backward-available-ratio { 939 type uint32 { 940 range "0..100000"; 941 } 942 units milli-percent; 943 default 0; 944 description 945 "This object is used to set the backward 946 availability/total time ratio threshold value that will 947 be used to determine if a thresh-old notification is 948 generated if the ratio drops below the configured value. 949 The ratio value is expressed as a percent with a value 950 of 0 (ratio 0.00) through 100000 (ratio 1.00) Units are 951 in milli-percent, where 1 indicates 0.001 percent."; 952 } 953 } 954 /* This terminates list thresholds */ 955 } 956 /* This terminates loss-measurement-configuration-group */ 958 grouping loss-stats-group { 959 description 960 "This grouping includes statistics objects for a loss 961 measurement session."; 962 leaf suspect-status { 963 type boolean; 964 description 965 "true means statistics for this measurement interval are 966 not valid."; 967 } 968 } 970 grouping measurement-timing-group { 971 description 972 "This grouping includes objects used for proactive and 973 on-demand scheduling of PM measurement sessions."; 975 container start-time { 976 description 977 "This container defines the session start time."; 979 choice start-time { 980 description 981 "Measurement session start time can be immediate, 982 relative, or absolute."; 984 container immediate { 985 description 986 "Start the measurement session immediately."; 987 } 989 leaf relative { 990 type yang:timeticks; 991 description 992 "This object specifies the relative start time."; 993 } 994 leaf absolute { 995 type yang:date-and-time; 996 description 997 "This object specifies the scheduled start time to 998 perform the on-demand monitoring operations."; 999 } 1000 } 1001 } 1003 container stop-time { 1004 description 1005 "This container defines the session stop time."; 1007 choice stop-time { 1008 description 1009 "Measurement session stop time can be none, or 1010 absolute."; 1012 container none { 1013 description 1014 "Never end the measurement session."; 1015 } 1017 leaf absolute { 1018 type yang:date-and-time; 1019 description 1020 "This object specifies the scheduled stop time 1021 to perform the on-demand monitoring operations."; 1022 } 1023 } 1024 } 1025 } 1026 /* End of measurement-timing-group */ 1028 grouping delay-measurement-configuration-group { 1029 description 1030 "This grouping includes configuration objects for Delay 1031 Measurement function defined in PM."; 1032 reference 1033 "draft-wang-lime-yang-pm"; 1035 container measurement-type { 1036 description 1037 "This container defines the measurement type."; 1039 leaf dmm { 1040 type boolean; 1041 description 1042 "If true, generate DMM Message, correlate with DMR 1043 responses."; 1044 } 1045 leaf dm1-transmitted { 1046 type boolean; 1047 description 1048 "If true, generate 1DM Message."; 1049 } 1050 leaf dm1-received { 1051 type boolean; 1052 description 1053 "Receive 1DM PDU and generate measurement."; 1054 } 1055 } 1057 container measurement-enable { 1058 description 1059 "Indicates the types of DM counters that are enabled. Not 1060 all DM counters are supported for all DM types."; 1061 } 1063 leaf message-period { 1064 type uint32; 1065 default 100; 1066 description 1067 "This object specifies the interval between delay 1068 measurement OAM message transmissions."; 1069 } 1071 leaf data-pattern { 1072 type enumeration { 1073 enum zeroes { 1074 description "Indicates the Data TLV contains all 0s."; 1075 } 1076 enum ones { 1077 description "Indicates the Data TLV contains all 1s."; 1078 } 1079 } 1080 default zeroes; 1081 description 1082 "This object specifies the delay measurement data pattern 1083 included in the OAM packet."; 1084 } 1086 leaf measurement-interval { 1087 type uint32; 1088 units minutes; 1089 default 15; 1090 description 1091 "This object specifies a Measurement Interval in minutes."; 1092 } 1094 leaf number-intervals-stored { 1095 type uint32 { 1096 range "2..10"; 1097 } 1098 default 10; 1099 description 1100 "This object specifies the number of completed measurement 1101 intervals to store in the history statistics table."; 1102 } 1104 leaf session-type { 1105 type enumeration { 1106 enum proactive { 1107 description 1108 "The current session is 'proactive'."; 1109 } 1110 enum on-demand { 1111 description 1112 "The current session is on-demand."; 1113 } 1114 } 1115 description 1116 "This object indicates whether the current session is 1117 defined to be proactive or on-demand."; 1118 } 1119 } 1120 /* End of delay-measurement-configuration-group */ 1122 grouping delay-measurement-stats-group { 1123 description 1124 "This grouping includes statistics objects for a delay 1125 measurement session."; 1127 leaf suspect-status { 1128 type boolean; 1129 description 1130 "true means statistics for this measurement interval are 1131 not valid."; 1132 } 1133 } 1134 /* End of delay-measurement-stats-group */ 1136 /*This set of data definitions defines the role of MEP.*/ 1137 augment "/goam:domains/goam:domain" 1138 +"/goam:MAs/goam:MA/goam:MEP" { 1139 description 1140 "This set of data definitions extends the MEP as described 1141 in goam"; 1143 leaf delay-responder { 1144 type boolean; 1145 default true; 1146 description 1147 "This object specifies whether Delay Measurement (DMM) 1148 single ended Responder is enabled. The value 'false' 1149 indicates the Delay measurement responder is disabled 1150 and received DMM will be discarded."; 1151 } 1152 leaf loss-responder { 1153 type boolean; 1154 default true; 1155 description 1156 "This object specifies whether Loss Measurement (LMM) 1157 single ended Responder is enabled. The value 'false' 1158 indicates the Loss measurement responder is disabled and 1159 received LMM will be discarded."; 1161 } 1162 } 1164 /*This set of data definitions defines performance measurement */ 1165 /*configuration.*/ 1166 augment "/goam:domains/goam:domain" 1167 +"/goam:MAs/goam:MA/goam:MEP" { 1168 description 1169 "This set of data definitions extends the MEP as described 1170 in goam, specially with regard to delay measurements."; 1172 container delay-measurements { 1173 if-feature delay-measurements; 1174 description 1175 "This container contains a collection of data 1176 definitions related to Delay Measurements as defined 1177 in PM."; 1179 list delay-measurements { 1180 key "session-cookie"; 1181 config false; 1182 description 1183 "List of Delay Measurement PM Sessions where each 1184 instance is uniquely identified by an session-cookie 1185 attribute."; 1187 leaf session-cookie { 1188 type uint32; 1189 config false; 1190 description 1191 "cookie to identify delay measurement session."; 1192 } 1194 leaf id { 1195 type string; 1196 description 1197 "This object uniquely identifies a scheduled 1198 measurement time."; 1199 } 1201 leaf status { 1202 type boolean; 1203 config false; 1204 description 1205 "This object indicates DM session status, true means 1206 active, false means not active."; 1207 } 1208 } 1209 /* End of list delay-measurements */ 1211 uses delay-measurement-configuration-group; 1212 uses measurement-timing-group; 1214 container current-stats { 1215 description 1216 "This container contains result of the current 1217 Measurement Interval in a delay measurement 1218 session gathered during the interval indicated by 1219 measurement-interval."; 1221 leaf start-time { 1222 type yang:date-and-time; 1223 description 1224 "Start time for current measurement interval."; 1225 } 1227 leaf elapsed-time { 1228 type uint32; 1229 units "tens of ms"; 1230 description 1231 "Elapsed time for current measurement interval in 1232 0.01 seconds."; 1234 } 1236 uses delay-measurement-stats-group; 1237 } 1238 /* End of current-stats */ 1240 list history-stats { 1241 key id; 1242 description 1243 "This list contains the result for historic measurement 1244 intervals for performance measurement session."; 1246 leaf id { 1247 type uint32; 1248 description 1249 "This id can be used to identify different history 1250 stats."; 1251 } 1253 leaf start-time { 1254 type yang:date-and-time; 1255 description 1256 "Start time for measurement interval."; 1257 } 1259 leaf elapsed-time { 1260 type uint32; 1261 units "tens of ms"; 1262 description 1263 "Elapsed time for measurement interval in 0.01 1264 seconds."; 1265 } 1267 uses delay-measurement-stats-group; 1268 } 1269 /* End of history-stats */ 1270 } 1271 /* End of container delay-measurements */ 1272 } 1273 /* End of augment clause */ 1275 augment "/goam:domains/goam:domain" 1276 +"/goam:MAs/goam:MA/goam:MEP" { 1277 description 1278 "This set of data definitions extends the MEP as described 1279 in goam, specially with regards to loss measurements."; 1281 container loss-measurements { 1282 if-feature loss-measurements; 1283 description 1284 "This container contains a collection of data definitions 1285 related to loss measurements as defined in this document."; 1287 list loss-measurements { 1288 key "session-cookie"; 1289 config false; 1290 description 1291 "List of Loss Measurement PM Sessions where each 1292 instance is uniquely identified by an session-cookie 1293 attribute."; 1295 leaf session-cookie { 1296 type uint32; 1297 config false; 1298 description 1299 "Cookie to identify loss measurement session."; 1300 } 1302 leaf id { 1303 type string; 1304 description 1305 "This object uniquely identifies a scheduled measurement 1306 time."; 1307 } 1309 leaf status { 1310 type boolean; 1311 config false; 1312 description 1313 "This object indicates loss measurement session status, 1314 true means active, false means not active."; 1315 } 1316 } 1317 /* End of list loss-measurements */ 1319 uses loss-measurement-configuration-group; 1320 uses measurement-timing-group; 1322 leaf availability-forward-status { 1323 type enumeration { 1324 enum available { 1325 description 1326 "Indicates the MEP is available."; 1327 } 1328 enum unavailable { 1329 description 1330 "Indicates the MEP is unavailable."; 1331 } 1332 enum unknown { 1333 description 1334 "Indicates the availability is not known."; 1335 } 1336 } 1337 description 1338 "This object indicates the availability status in the 1339 forward direction."; 1340 } 1341 leaf availability-backward-status { 1342 type enumeration { 1343 enum available { 1344 description 1345 "Indicates the MEP is available."; 1346 } 1347 enum unavailable { 1348 description 1349 "Indicates the MEP is unavailable."; 1350 } 1351 enum unknown { 1352 description 1353 "Indicates the availability is not known."; 1354 } 1355 } 1356 description 1357 "This object indicates the availability status 1358 in the backward direction."; 1359 } 1361 container current-stats { 1362 description 1363 "This container contains result of the current 1364 measurement interval in a PM loss measurement session 1365 gathered during the interval indicated by 1366 measurement-interval."; 1368 leaf start-time { 1369 type yang:date-and-time; 1370 description 1371 "Start time for current measurement interval."; 1372 } 1374 leaf elapsed-time { 1375 type uint32; 1376 units "tens of ms"; 1377 description 1378 "Elapsed time for current measurement 1379 interval in 0.01 seconds."; 1380 } 1381 leaf forward-available { 1382 type yang:gauge32; 1383 description 1384 "The current value of forward-available for the 1385 referenced loss measurement session."; 1386 } 1387 leaf backward-available { 1388 type yang:gauge32; 1389 description 1390 "The current value of backward-available for the 1391 referenced loss measurement session."; 1392 } 1393 leaf forward-unavailable { 1394 type yang:gauge32; 1395 description 1396 "The current value of forward-unavailable for the 1397 referenced loss measurement session."; 1398 } 1399 leaf backward-unavailable { 1400 type yang:gauge32; 1401 description 1402 "The current value of backward-unavailable for the 1403 referenced loss measurement session."; 1404 } 1405 uses loss-stats-group; 1406 } 1407 /* End of container current-stats */ 1409 list history-stats { 1410 key id; 1411 description 1412 "This list contains the result for historic measurement 1413 intervals for PM loss measurement session."; 1415 leaf id { 1416 type uint32; 1417 description 1418 "This leaf can be used to select different 1419 history-stats intervals."; 1420 } 1422 leaf start-time { 1423 type yang:date-and-time; 1424 description 1425 "Start time for measurement interval."; 1427 } 1429 leaf elapsed-time { 1430 type uint32; 1431 units "tens of ms"; 1432 description 1433 "Elapsed time for measurement interval in 0.01 1434 seconds."; 1435 } 1436 leaf forward-available { 1437 type yang:gauge32; 1438 description 1439 "The value of forward-available for the 1440 referenced loss measurement session and interval."; 1441 } 1442 leaf backward-available { 1443 type yang:gauge32; 1444 description 1445 "The value of backward-available for the 1446 referenced loss measurement session and interval."; 1447 } 1448 leaf forward-unavailable { 1449 type yang:gauge32; 1450 description 1451 "The value of forward-unavailable for the 1452 referenced loss measurement session and interval."; 1453 } 1454 leaf backward-unavailable { 1455 type yang:gauge32; 1456 description 1457 "The value of backward-unavailable for the 1458 referenced loss measurement session and interval."; 1459 } 1460 uses loss-stats-group; 1461 } 1462 /* End of list history-stats */ 1463 } 1464 /* End of container loss-measurements */ 1465 } 1466 /* End of augments clause */ 1468 //RPCs related to Generic PM 1469 rpc create-loss-measurement { 1470 if-feature create-loss-measurement; 1471 description 1472 "Schedule a one-way or two-way on-demand or proactive 1473 performance monitoring loss measurement session on a specific 1474 MEP and flow. 1476 A list entry associated with the newly created session will be 1477 created in the loss-measurements container and the assigned 1478 session identifier will be returned in the output parameter."; 1480 input { 1481 uses loss-measurement-configuration-group; 1482 uses measurement-timing-group; 1484 container destination-mep { 1485 uses goam:mp-address; 1486 uses goam:MEP-ID; 1487 description 1488 "destination mep"; 1489 } 1490 } 1491 output { 1492 leaf session-id { 1493 type uint32; 1494 mandatory true; 1495 description 1496 "The session identifier of the newly created loss 1497 measurement session."; 1498 } 1499 } 1500 } //end of rpc 1502 rpc abort-loss-measurement { 1503 if-feature abort-delay-measurement; 1504 description 1505 "Abort a currently running or scheduled single-ended 1506 on-demand PM loss measurement function."; 1508 input { 1509 uses goam:maintenance-domain-id; 1510 uses goam:ma-identifier; 1512 container destination-mep { 1513 uses goam:mp-address; 1514 uses goam:MEP-ID; 1515 description 1516 "destination mep"; 1517 } 1518 leaf session-id { 1519 type uint32; 1520 mandatory true; 1521 description 1522 "The session Id of the measurement session to 1523 be aborted."; 1525 } 1526 } 1527 } //end of RPC 1529 rpc create-delay-measurement { 1530 if-feature create-delay-measurement; 1531 description 1532 "Schedule a one-way or two-way on-demand or proactive 1533 performance monitoring delay measurement session on a 1534 specific MEP and flow. A list entry associated with the 1535 newly created session will be created in the 1536 delay-measurements container and the assigned session 1537 identifier will be returned in the output parameter."; 1539 input { 1540 uses delay-measurement-configuration-group; 1541 uses measurement-timing-group; 1543 container destination-mep { 1544 uses goam:mp-address; 1545 uses goam:MEP-ID; 1546 description 1547 "description mep."; 1548 } 1549 uses goam:flow-entropy; 1550 } 1552 output { 1553 leaf session-id { 1554 type uint32; 1555 mandatory true; 1556 description 1557 "The session identifier of the newly created 1558 delay measurement session."; 1559 } 1560 } 1561 } //end of rpc 1563 rpc abort-delay-measurement { 1564 if-feature abort-delay-measurement; 1565 description 1566 "Abort a currently running or scheduled single-ended 1567 on-demand PM function."; 1569 input { 1570 uses goam:maintenance-domain-id; 1571 uses goam:ma-identifier; 1572 container destination-mep { 1573 uses goam:mp-address; 1574 uses goam:MEP-ID; 1575 description 1576 "destination mep"; 1577 } 1579 leaf session-id { 1581 type uint32; 1582 mandatory true; 1583 description 1584 "The session Id of the measurement session to 1585 be aborted."; 1586 } 1587 } 1588 } //end of RPC 1589 } 1590 1592 6. Security Considerations 1594 TBD. 1596 7. IANA Considerations 1598 TBD. 1600 8. References 1602 8.1. Normative References 1604 [GENYANGGOAM] 1605 Senevirathne , T. and Q. Wu, "Generic YANG Data Model for 1606 Operations, Administration, and Maintenance (OAM)", ID 1607 http://tools.ietf.org/html/ 1608 draft-tissa-lime-yang-oam-management-04, April 2015. 1610 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1611 Requirement Levels", BCP 14, RFC 2119, 1612 DOI 10.17487/RFC2119, March 1997, 1613 . 1615 8.2. Informative References 1617 [IEEE802.1Q] 1618 "Media Access Control (MAC) Bridges and Virtual Bridged 1619 Local Area Networks", IEEE Std 802.1Q-2011, August 2011. 1621 Authors' Addresses 1623 Zitao Wang 1624 Huawei Technologies,Co.,Ltd 1625 101 Software Avenue, Yuhua District 1626 Nanjing 210012 1627 China 1629 Email: wangzitao@huawei.com 1631 Qin Wu 1632 Huawei 1633 101 Software Avenue, Yuhua District 1634 Nanjing, Jiangsu 210012 1635 China 1637 Email: bill.wu@huawei.com 1639 Deepak Kumar 1640 CISCO Systems 1641 510 McCarthy Blvd 1642 Milpitas, CA 95035 1643 USA 1645 Email: dekumar@cisco.com 1647 Tom Taylor 1648 PT Taylor Consulting 1649 Ottawa 1650 Canada 1652 Email: tom.taylor.stds@gmail.com