Sean Condon | fae8e66 | 2016-12-15 10:25:13 +0000 | [diff] [blame] | 1 | module msea-uni-evc-interface { |
| 2 | |
| 3 | namespace "http://www.microsemi.com/microsemi-edge-assure/msea-uni-evc-interface"; |
| 4 | prefix "msea-if"; //MicroSemi EdgeAssure (msea) |
| 5 | |
| 6 | import ietf-yang-types { |
| 7 | prefix yang; |
| 8 | revision-date 2013-07-15; |
| 9 | } |
| 10 | |
| 11 | import msea-types { |
| 12 | prefix msea; |
| 13 | revision-date 2016-02-29; |
| 14 | } |
| 15 | |
| 16 | import ietf-interfaces { |
| 17 | prefix "if"; |
| 18 | } |
| 19 | |
| 20 | import ietf-inet-types { |
| 21 | prefix inet; |
| 22 | } |
| 23 | |
| 24 | import iana-if-type { |
| 25 | prefix "ianaift"; |
| 26 | } |
| 27 | |
| 28 | import ietf-netconf-acm { |
| 29 | prefix nacm; |
| 30 | } |
| 31 | |
| 32 | organization |
| 33 | "Microsemi Inc., FTD Division"; |
| 34 | |
| 35 | contact |
| 36 | "Web URL: http://www.microsemi.com/ |
| 37 | E-mail: info@microsemi.com |
| 38 | Postal: Microsemi Corporation Corporate Headquarters |
| 39 | One Enterprise Aliso Viejo, |
| 40 | CA 92656 |
| 41 | U.S.A. |
| 42 | Phone: +1 949 380 6100 |
| 43 | Fax: +1 949 215-4996"; |
| 44 | |
| 45 | description |
| 46 | "This YANG module is based on the MEF 40 SNMP model, for the management |
| 47 | objects for the management of User Network Interfaces (UNIs). |
| 48 | It has been converted to YANG and modified slightly to suit the |
| 49 | EdgeAssure SFP which has some extra constraints that are not handled by |
| 50 | the original model |
| 51 | |
| 52 | Copyright 2016 Microsemi Inc. |
| 53 | All rights reserved."; |
| 54 | |
| 55 | reference |
| 56 | "*************************************************************************** |
| 57 | Reference Overview |
| 58 | |
| 59 | A number of base documents have been used to create this MIB. The following |
| 60 | are the abbreviations for the baseline documents: |
| 61 | [MEF 40] refers to SNMP MIB |
| 62 | [MEF6.1] refers to MEF 6.1 'Ethernet Services Definitions - Phase 2', |
| 63 | April 2008 |
| 64 | [MEF 6.1.1] refers to MEF 6.1.1 'Layer 2 Control Protocol Handling Amendment |
| 65 | to MEF 6.1', January 2012 |
| 66 | [MEF 7.2] refers to MEF 7.2 'Carrier Ethernet Management Information Model', |
| 67 | January 2013 |
| 68 | [MEF 10.2] refers to MEF 10.2 'Ethernet Services Attributes Phase 2', |
| 69 | October 2009 |
| 70 | [MEF 26.1] refers to MEF 26.1 'External Network Network Interface (ENNI) - |
| 71 | Phase 2', January 2012 |
| 72 | [Q.840.1] refers to 'ITU-T Requirements and analysis for NMS-EMS |
| 73 | management interface of Ethernet over Transport and Metro Ethernet |
| 74 | Network (EoT/MEN)', March 2007 |
| 75 | ****************************************************************************"; |
| 76 | |
| 77 | revision "2016-03-17" { |
| 78 | description |
| 79 | "Initial Version. Sean Condon - Microsemi"; |
| 80 | reference "MEF 6.2"; |
| 81 | } |
| 82 | |
| 83 | typedef MefServiceInterfaceType { |
| 84 | type bits { |
| 85 | // bit bUni1d1; |
| 86 | // bit bUni1d2; |
| 87 | bit bUni2d1 {description "Only bUni2d1 is supported by EdgeAssure 1000";} |
| 88 | // bit bUni2d2; |
| 89 | // bit bEnni; |
| 90 | // bit bEnniVuni; |
| 91 | } |
| 92 | |
| 93 | default "bUni2d1"; |
| 94 | description |
| 95 | "A MEF Interface can be one of several types: |
| 96 | |
| 97 | bUni1d1 UNI Type 1.1 See MEF 13. Non-multiplexed UNI for services such as EPL, |
| 98 | bUni1d2 UNI Type 1.2 See MEF 13. Multiplexed UNI for services such as EVPL, |
| 99 | bUni2d1 UNI Type 2.1 See MEF 20 section 7 |
| 100 | bUni2d2 UNI Type 2.2 See MEF 20 section 7 |
| 101 | bEnni ENNI |
| 102 | bEnniVuni VUNI on an ENNI"; |
| 103 | reference |
| 104 | "[MEF 6.1] 6.0"; |
| 105 | } |
| 106 | |
| 107 | typedef l2cp-dest-mac-address { |
| 108 | type string { |
| 109 | pattern '01-80-[cC]2-(00-){2}[02][0-9a-fA-F]|01:80:[cC]2:(00:){2}[02][0-9a-fA-F]'; |
| 110 | } |
| 111 | description |
| 112 | "The L2CP Destination MAC address for CoS |
| 113 | Identifier type of 'l2cp' and is ignored for other types. |
| 114 | |
| 115 | Valid values are 01-80-C2-00-00-00 through 01-80-C2-00-00-0F and |
| 116 | 01-80-C2-00-00-20 through 01-80-C2-00-00-2F |
| 117 | |
| 118 | Values can be upper or lower case and can be separated by hyphen or colon (but not both)"; |
| 119 | } |
| 120 | |
| 121 | typedef l2cp-destination-address { |
| 122 | type enumeration { |
| 123 | enum destinationAddressOnly { |
| 124 | description "L2CP selection is determined by |
| 125 | MAC Destination Address only"; |
| 126 | } |
| 127 | |
| 128 | // enum daPlusProtocol { |
| 129 | // description "L2CP selection is determined by |
| 130 | // MAC Destination Address plus |
| 131 | // Ethernet protocol"; |
| 132 | // } |
| 133 | // |
| 134 | // enum daPlusProtocolPlusSubtype { |
| 135 | // description "L2CP selection is determined by |
| 136 | // MAC Destination Address plus |
| 137 | // Ethernet protocol plus subtype"; |
| 138 | // } |
| 139 | } |
| 140 | } |
| 141 | |
| 142 | typedef ip-address-origin { |
| 143 | type enumeration { |
| 144 | enum "other" { |
| 145 | value 0; |
| 146 | description |
| 147 | "None of the following."; |
| 148 | } |
| 149 | enum "static" { |
| 150 | value 1; |
| 151 | description |
| 152 | "Indicates that the address has been statically |
| 153 | configured - for example, using NETCONF or a Command Line |
| 154 | Interface."; |
| 155 | } |
| 156 | enum "dhcp" { |
| 157 | value 2; |
| 158 | description |
| 159 | "Indicates an address that has been assigned to this |
| 160 | system by a DHCP server."; |
| 161 | } |
| 162 | enum "link-layer" { |
| 163 | value 3; |
| 164 | description |
| 165 | "Indicates an address created by IPv6 stateless |
| 166 | autoconfiguration that embeds a link-layer address in its |
| 167 | interface identifier."; |
| 168 | } |
| 169 | enum "random" { |
| 170 | value 4; |
| 171 | description |
| 172 | "Indicates an address chosen by the system at |
| 173 | |
| 174 | random, e.g., an IPv4 address within 169.254/16, an |
| 175 | RFC 4941 temporary address, or an RFC 7217 semantically |
| 176 | opaque address."; |
| 177 | reference |
| 178 | "RFC 4941: Privacy Extensions for Stateless Address |
| 179 | Autoconfiguration in IPv6 |
| 180 | RFC 7217: A Method for Generating Semantically Opaque |
| 181 | Interface Identifiers with IPv6 Stateless |
| 182 | Address Autoconfiguration (SLAAC)"; |
| 183 | |
| 184 | } |
| 185 | } |
| 186 | description |
| 187 | "The origin of an address."; |
| 188 | } |
| 189 | |
| 190 | typedef neighbor-origin { |
| 191 | type enumeration { |
| 192 | enum "other" { |
| 193 | value 0; |
| 194 | description |
| 195 | "None of the following."; |
| 196 | } |
| 197 | enum "static" { |
| 198 | value 1; |
| 199 | description |
| 200 | "Indicates that the mapping has been statically |
| 201 | configured - for example, using NETCONF or a Command Line |
| 202 | Interface."; |
| 203 | } |
| 204 | enum "dynamic" { |
| 205 | value 2; |
| 206 | description |
| 207 | "Indicates that the mapping has been dynamically resolved |
| 208 | using, e.g., IPv4 ARP or the IPv6 Neighbor Discovery |
| 209 | protocol."; |
| 210 | } |
| 211 | } |
| 212 | description |
| 213 | "The origin of a neighbor entry."; |
| 214 | } |
| 215 | |
| 216 | feature ipv4-non-contiguous-netmasks { |
| 217 | description |
| 218 | "Indicates support for configuring non-contiguous |
| 219 | subnet masks."; |
| 220 | } |
| 221 | |
| 222 | /*** OBJECT DEFINITIONS ***/ |
| 223 | augment "/if:interfaces" { |
| 224 | leaf l2cp-group-index { //aka mefServiceInterfaceCfgL2cpGrpIndex |
| 225 | type leafref { |
| 226 | path "/if:interfaces/msea-if:interface-profiles/msea-if:l2cp-group/msea-if:group-index"; |
| 227 | } |
| 228 | description |
| 229 | "This object is the index of the L2CP profile group |
| 230 | (mefServiceL2cpGrpCfgIndex) associated with the current interface. A |
| 231 | value of 0 indicates that no interface L2CP profile group is associated |
| 232 | with the interface. The L2CP group must be the same for both interfaces"; |
| 233 | reference |
| 234 | "[MEF 6.1] 6.0; [MEF 6.1.1] 8.0; [MEF 7.2] 6.2.1.2"; |
| 235 | |
| 236 | // must "count(//if:interfaces/if:interface[msea-if:l2cp-group-index = current()]) = 2" { |
| 237 | // error-app-tag "msea-if-must-01"; |
| 238 | // error-message "The same L2CP Group must be used on both interfaces of this device"; |
| 239 | // } |
| 240 | } |
| 241 | |
| 242 | leaf mef-service-type { //aka mefServiceInterfaceCfgType |
| 243 | type MefServiceInterfaceType; |
| 244 | description |
| 245 | "This object indicates the configured interface type. One |
| 246 | bit in the vector can be set at one time based upon the |
| 247 | possible values indicated by mefServiceInterfaceStatusType."; |
| 248 | //default bUni1d1; --These defaults break the validation - not using them in Eagle |
| 249 | reference |
| 250 | "[MEF 6.1] 6.0; [MEF 7.2] 6.2.1.1, 6.2.1.2, 6.2.1.3"; |
| 251 | } |
| 252 | |
| 253 | leaf dhcp-timeout { |
| 254 | type uint16 {range 0..max;} |
| 255 | units seconds; |
| 256 | default 0; |
| 257 | description "The DHCP timeout in seconds, after which it will use fixed IP addreses |
| 258 | A zero value specifies it should never timeout"; |
| 259 | } |
| 260 | |
| 261 | container zero-touch-provisioning { |
| 262 | presence "When present sets this device to be configured through Zero Touch Provisioning"; |
| 263 | |
| 264 | description "Setting Zero Touch Provisioning (ZTP) configures the setting up |
| 265 | of the management interface through an LLDP server |
| 266 | When ZTP is active any DHCP or fixed IP address settings must not be specified. |
| 267 | |
| 268 | If this attribute is set during a NETCONF session it will have no effect until the |
| 269 | next time the device is rebooted."; |
| 270 | |
| 271 | must "count(/if:interfaces/if:interface/msea-if:ipv4/msea-if:address) = 0" { |
| 272 | error-app-tag "msea-if-must-01"; |
| 273 | error-message "When ZTP is specified there must not be a manually specified IP address for either interface"; |
| 274 | } |
| 275 | |
| 276 | must "not(/if:interfaces/if:interface[msea-if:dhcp-addressing = 'true']) " { |
| 277 | error-app-tag "msea-if-must-02"; |
| 278 | error-message "When ZTP is specified there must not be a DHCP Specification for either interface"; |
| 279 | } |
| 280 | |
| 281 | } |
| 282 | |
| 283 | container interface-profiles { |
| 284 | |
| 285 | list interface-bwp-group { //aka mefServiceBwpGrpCfgEntry |
| 286 | |
| 287 | key "group-index"; |
| 288 | max-elements 64; |
| 289 | description |
| 290 | "Bandwidth profile group settings table entry."; |
| 291 | |
| 292 | leaf group-index { //aka mefServiceBwpGrpCfgIndex |
| 293 | type uint8; |
| 294 | description |
| 295 | "Bandwidth profile group index number"; |
| 296 | } |
| 297 | |
| 298 | list interface-bwp { //aka mefServiceBwpCfgEntry |
| 299 | key "cos-index";//Changed to cos-index (from bwp-index) based on MEP 40 6.4.2 |
| 300 | unique name; |
| 301 | max-elements 64; |
| 302 | |
| 303 | description |
| 304 | "Bandwidth profile. This maps 1:1 with a COS instance. This object is |
| 305 | maintained here to keep the traditional layout of BWPGroup-BWP-COS, but does |
| 306 | not have any other purpose in the current implementation"; |
| 307 | |
| 308 | leaf cos-index { //aka mefServiceBwpCfgCosIndex |
| 309 | type leafref { |
| 310 | path "/if:interfaces/msea-if:interface-profiles/msea-if:interface-cos/msea-if:cos-index"; |
| 311 | } |
| 312 | description |
| 313 | "This object is the index number of the CoS ID profile |
| 314 | associated with the current bandwidth profile. A value of 0 indicates |
| 315 | that no CoS ID profile is associated with the bandwidth profile and the |
| 316 | bandwidth profile applies to all CoS IDs. |
| 317 | |
| 318 | This index indicates a specific CoS ID profile previously configured via |
| 319 | mefServiceCosCfgTable as indicated by the mefServiceCosCfgIndex object."; |
| 320 | reference |
| 321 | "[MEF 6.1] 6.1; [MEF 7.2] 6.2.1.3"; |
| 322 | |
| 323 | must "current()/../../msea-if:group-index > 0" { |
| 324 | error-app-tag "msea-if-must-10"; |
| 325 | error-message "No BWP's can be added to the Bandwidth Profile Group 0, as this index represents a special case"; |
| 326 | } |
| 327 | } |
| 328 | |
| 329 | leaf name { //mefServiceBwpCfgIdentifier |
| 330 | type string { |
| 331 | length "1..45"; |
| 332 | } |
| 333 | mandatory true; |
| 334 | description |
| 335 | "This object indicates the bandwidth profile identifier for the |
| 336 | associated bandwidth profile index and is an arbitrary |
| 337 | text string that is used to identify a bandwidth profile. Unique |
| 338 | string values are chosen to uniquely identify the bandwidth |
| 339 | profile. |
| 340 | |
| 341 | Octet values of 0x00 through 0x1f are illegal. |
| 342 | |
| 343 | MEF 26.1 restricts the maximum size identifiers to 45 octets."; |
| 344 | reference |
| 345 | "[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3"; |
| 346 | } |
| 347 | |
| 348 | |
| 349 | } //End bwp |
| 350 | |
| 351 | } //End bwp-group |
| 352 | |
| 353 | list interface-cos { //aka mefServiceCosCfgEntry |
| 354 | key "cos-index"; |
| 355 | unique name; |
| 356 | max-elements 64; |
| 357 | description |
| 358 | "Class of Service Identifier settings table entry."; |
| 359 | |
| 360 | leaf cos-index { //aka mefServiceCosCfgIndex |
| 361 | type uint32 { |
| 362 | range 1..max; |
| 363 | } |
| 364 | description |
| 365 | "Class of Service Identifier profile index number."; |
| 366 | } |
| 367 | |
| 368 | leaf name { //aka mefServiceCosCfgIdentifier |
| 369 | type string { |
| 370 | length 1..45; |
| 371 | } |
| 372 | |
| 373 | description |
| 374 | "This object indicates the Class of Service Name for the |
| 375 | associated CoS profile index and is an arbitrary text string that is |
| 376 | used to identify a CoS ID profile. Unique string values are chosen to |
| 377 | uniquely identify the profile. |
| 378 | |
| 379 | Octet values of 0x00 through 0x1f are illegal. |
| 380 | |
| 381 | MEF 26.1 restricts the maximum size identifiers to 45 octets."; |
| 382 | reference |
| 383 | "[MEF 6.1] 6.0, 6.1, 6.2, 6.3; [MEF 7.2] 6.2.1.2, 6.2.1.3"; |
| 384 | } |
| 385 | |
| 386 | container dscp-cos-type { |
| 387 | description "Indicates that the CoS profile is associated |
| 388 | with the incoming frame's DSCP field if it is an IP frame. |
| 389 | If it is not an IP frame no action is taken on it"; |
| 390 | |
| 391 | choice dscp-id-choice { |
| 392 | case dscp-bits-list { |
| 393 | leaf dscp-group-bit-list { |
| 394 | type bits { |
| 395 | bit dscp-0-7 { |
| 396 | description "The set of DSCP identifiers from 0-7"; |
| 397 | } |
| 398 | bit dscp-8-15 { |
| 399 | description "The set of DSCP identifiers from 8-15"; |
| 400 | } |
| 401 | bit dscp-16-23 { |
| 402 | description "The set of DSCP identifiers from 16-23"; |
| 403 | } |
| 404 | bit dscp-24-31 { |
| 405 | description "The set of DSCP identifiers from 24-31"; |
| 406 | } |
| 407 | bit dscp-32-39 { |
| 408 | description "The set of DSCP identifiers from 32-39"; |
| 409 | } |
| 410 | bit dscp-40-47 { |
| 411 | description "The set of DSCP identifiers from 40-47"; |
| 412 | } |
| 413 | bit dscp-48-55 { |
| 414 | description "The set of DSCP identifiers from 48-55"; |
| 415 | } |
| 416 | bit dscp-56-63 { |
| 417 | description "The set of DSCP identifiers from 56-63"; |
| 418 | } |
| 419 | } |
| 420 | } |
| 421 | } |
| 422 | |
| 423 | case dscp-0-63 { |
| 424 | container dscp-0-63 { |
| 425 | presence "The full set of DSCP identifiers from 0-63"; |
| 426 | } |
| 427 | } |
| 428 | |
| 429 | case specific-values { |
| 430 | leaf-list dscp-id { |
| 431 | type uint16 { |
| 432 | range 0..64; |
| 433 | } |
| 434 | ordered-by system; |
| 435 | description "The set of DSCP identifiers handled by this COS"; |
| 436 | } |
| 437 | } |
| 438 | mandatory true; |
| 439 | // msea:not-changeable; |
| 440 | } |
| 441 | |
| 442 | choice color-specification { |
| 443 | case all-green { |
| 444 | container color-all-green { |
| 445 | presence "Color for all specified DSCPs mapped to green"; |
| 446 | } |
| 447 | } |
| 448 | case all-yellow { |
| 449 | container color-all-yellow { |
| 450 | presence "Color for all specified DSCPs mapped to yellow"; |
| 451 | } |
| 452 | } |
| 453 | case all-dropped { |
| 454 | container color-all-dropped { |
| 455 | presence "Color for all specified DSCPs mapped to dropped"; |
| 456 | } |
| 457 | } |
| 458 | |
| 459 | case dscp-to-color-map { |
| 460 | list dscp-color { |
| 461 | key dscp-id; |
| 462 | ordered-by system; |
| 463 | description "A list of DSCP values that apply to this COS. |
| 464 | When the COS type is DSCP a subset of the values can |
| 465 | be specified. Other DSCP values can be specified in |
| 466 | additional COS profiles. In total the same priority |
| 467 | cannot be repeated in a BWP Group"; |
| 468 | |
| 469 | leaf dscp-id { |
| 470 | type uint16 { |
| 471 | range 0..64; |
| 472 | } |
| 473 | } |
| 474 | |
| 475 | leaf color { |
| 476 | description "Color to apply to incoming IP frames |
| 477 | with this DSCP id"; |
| 478 | |
| 479 | type msea:cos-color-type; |
| 480 | } |
| 481 | } |
| 482 | } |
| 483 | default all-green; |
| 484 | // msea:not-changeable; |
| 485 | } |
| 486 | } |
| 487 | |
| 488 | leaf outgoing-cos-value { |
| 489 | type msea:priority-type; |
| 490 | mandatory true; |
| 491 | // msea:not-changeable; |
| 492 | |
| 493 | description |
| 494 | "Used to set the egress COS to use for all ingress COS explicitly listed"; |
| 495 | reference |
| 496 | "Edge Assure internal API"; |
| 497 | } |
| 498 | } |
| 499 | |
| 500 | list l2cp-group { //aka mefServiceL2cpGrpCfgEntry |
| 501 | key "group-index"; |
| 502 | max-elements 64; |
| 503 | description |
| 504 | "L2CP profile group settings table entry on an interface."; |
| 505 | |
| 506 | leaf group-index { //aka mefServiceL2cpGrpCfgIndex |
| 507 | type uint32; |
| 508 | description |
| 509 | "L2CP profile group index number, indicating the specific L2CP profile |
| 510 | group"; |
| 511 | } |
| 512 | |
| 513 | list l2cp { //aka mefServiceL2cpCfgEntry |
| 514 | key "index"; |
| 515 | max-elements 64; |
| 516 | description |
| 517 | "L2CP settings table entry on an interface or a service."; |
| 518 | |
| 519 | leaf index { //aka mefServiceL2cpCfgIndex |
| 520 | type uint32; |
| 521 | description |
| 522 | "This object configures the L2CP index number on an interface or a |
| 523 | Service and is used to create/access a L2CP profile within a L2CP |
| 524 | group."; |
| 525 | |
| 526 | must "current()/../../msea-if:group-index > 0" { |
| 527 | error-app-tag "msea-if-must-11"; |
| 528 | error-message "No L2CP's can be added to the L2CP Group 0, as this index represents a special case"; |
| 529 | } |
| 530 | } |
| 531 | |
| 532 | leaf handling { //aka mefServiceL2cpCfgType |
| 533 | type enumeration { |
| 534 | enum discard {description "The indicated L2CP is discarded";} |
| 535 | |
| 536 | enum tunnel {description "The indicated L2CP is tunneled (passed)";} |
| 537 | |
| 538 | enum peer {description "The indicated L2CP is peered with the NE";} |
| 539 | |
| 540 | // enum passToEvc {description "the indicated L2CP is passed to the EVC for |
| 541 | // EVC processing of the L2CP. Final L2CP |
| 542 | // disposition is based the L2CP profile for |
| 543 | // the EVC to be tunneled, discarded, or peered. |
| 544 | // This value is not valid for EVC based L2CP"; |
| 545 | // } |
| 546 | } |
| 547 | default tunnel; |
| 548 | // msea:not-changeable; |
| 549 | |
| 550 | description |
| 551 | "This object configures the handling of matching L2CP frames."; |
| 552 | reference |
| 553 | "[MEF 6.1] 6.0, 8.0; [MEF 6.1.1] 8.0; [MEF 7.2] 6.2.1.2"; |
| 554 | } |
| 555 | |
| 556 | leaf match-scope { //aka mefServiceL2cpCfgMatchScope |
| 557 | type l2cp-destination-address; |
| 558 | default destinationAddressOnly; |
| 559 | // msea:not-changeable; |
| 560 | |
| 561 | description |
| 562 | "This object configures the L2CP selection matching scope."; |
| 563 | reference |
| 564 | "[MEF 6.1] 6.0, 8.0; [MEF 6.1.1] 8.0; [MEF 7.2] 6.2.1.2"; |
| 565 | |
| 566 | } |
| 567 | |
| 568 | leaf mac-address { //aka mefServiceL2cpCfgMacAddress |
| 569 | type l2cp-dest-mac-address; |
| 570 | mandatory true; |
| 571 | // msea:not-changeable; |
| 572 | |
| 573 | description |
| 574 | "This object configures the L2CP Destination MAC address. |
| 575 | |
| 576 | Valid values are 01-80-C2-00-00-00 through 01-80-C2-00-00-0F and |
| 577 | 01-80-C2-00-00-20 through 01-80-C2-00-00-2F"; |
| 578 | |
| 579 | must "count(current()/../../msea-if:l2cp[msea-if:mac-address = current()]) <= 1" { |
| 580 | error-app-tag "msea-if-must-12"; |
| 581 | error-message "A destination address can only appear once in an L2CP Group"; |
| 582 | } |
| 583 | } |
| 584 | } //End l2cp |
| 585 | |
| 586 | } //End l2cp-group |
| 587 | |
| 588 | } //End profiles |
| 589 | } //end augment interfaces |
| 590 | |
| 591 | // |
| 592 | // Augments ietf-interfaces (only of type ethernetCsmacd) with MEF Services |
| 593 | // |
| 594 | augment "/if:interfaces/if:interface" { |
| 595 | |
| 596 | //Copied IPV4 over from ietf-ip because |
| 597 | // i) We do not want to have to include IPv6 |
| 598 | // ii) libnetconf only supports augmenting any container |
| 599 | // from one file (i.e. cannot augment interface here and |
| 600 | // also in ietf-ip.yang |
| 601 | |
| 602 | |
| 603 | container ipv4 { |
| 604 | presence |
| 605 | "Enables IPv4 unless the 'enabled' leaf |
| 606 | (which defaults to 'true') is set to 'false'"; |
| 607 | description |
| 608 | "Parameters for the IPv4 address family."; |
| 609 | |
| 610 | leaf enabled { |
| 611 | type boolean; |
| 612 | default true; |
| 613 | |
| 614 | description |
| 615 | "Controls whether IPv4 is enabled or disabled on this |
| 616 | interface. When IPv4 is enabled, this interface is |
| 617 | connected to an IPv4 stack, and the interface can send |
| 618 | and receive IPv4 packets. When ZTP is configured it |
| 619 | will treat both interfaces as enabled and will ignore |
| 620 | what this value is set to"; |
| 621 | |
| 622 | must "count(/if:interfaces/if:interface[if:name='eth0' or if:name='eth1']/msea-if:ipv4[msea-if:enabled = 'true']) >= 1" { |
| 623 | error-app-tag "msea-if-must-20"; |
| 624 | error-message "At least one of the interfaces eth0 and eth1 must be enabled"; |
| 625 | } |
| 626 | } |
| 627 | |
| 628 | leaf forwarding { |
| 629 | type boolean; |
| 630 | default false; |
| 631 | description |
| 632 | "Controls IPv4 packet forwarding of datagrams received by, |
| 633 | but not addressed to, this interface. IPv4 routers |
| 634 | forward datagrams. IPv4 hosts do not (except those |
| 635 | source-routed via the host)."; |
| 636 | } |
| 637 | |
| 638 | leaf mtu { |
| 639 | type uint16 { |
| 640 | range "68..max"; |
| 641 | } |
| 642 | units "octets"; |
| 643 | description |
| 644 | "The size, in octets, of the largest IPv4 packet that the |
| 645 | interface will send and receive. |
| 646 | |
| 647 | The server may restrict the allowed values for this leaf, |
| 648 | depending on the interface's type. |
| 649 | |
| 650 | If this leaf is not configured, the operationally used MTU |
| 651 | depends on the interface's type."; |
| 652 | reference |
| 653 | "RFC 791: Internet Protocol"; |
| 654 | |
| 655 | } |
| 656 | |
| 657 | container address { |
| 658 | when "not (../../msea-if:dhcp-addressing = 'true')"; |
| 659 | presence "This address being present indicates the interface has been configured"; |
| 660 | |
| 661 | description |
| 662 | "The configured IPv4 addresses on the interface."; |
| 663 | leaf ip { |
| 664 | type inet:ipv4-address-no-zone; |
| 665 | description |
| 666 | "The IPv4 address on the interface."; |
| 667 | } |
| 668 | |
| 669 | choice subnet { |
| 670 | mandatory true; |
| 671 | description |
| 672 | "The subnet can be specified as a prefix-length, or, |
| 673 | if the server supports non-contiguous netmasks, as |
| 674 | a netmask."; |
| 675 | leaf prefix-length { |
| 676 | type uint8 { |
| 677 | range "0..32"; |
| 678 | } |
| 679 | description |
| 680 | "The length of the subnet prefix."; |
| 681 | } |
| 682 | leaf netmask { |
| 683 | if-feature ipv4-non-contiguous-netmasks; |
| 684 | type yang:dotted-quad; |
| 685 | description |
| 686 | "The subnet specified as a netmask."; |
| 687 | } |
| 688 | } // choice subnet |
| 689 | |
| 690 | leaf gateway { |
| 691 | type inet:ipv4-address-no-zone; |
| 692 | |
| 693 | description "This will be ignored if ZTP or DHCP are configured |
| 694 | for management addressing. If unspecified then 0.0.0.0 will be used."; |
| 695 | |
| 696 | } |
| 697 | } // container address |
| 698 | } // container ipv4 |
| 699 | |
| 700 | |
| 701 | |
| 702 | leaf frame-format { //aka mefServiceInterfaceCfgFrameFormat |
| 703 | when "../if:type='ianaift:ethernetCsmacd' and (../if:name='eth0' or ../if:name='eth1')"; |
| 704 | type enumeration { |
| 705 | enum noTag { |
| 706 | description "Indicates that all data on the interface |
| 707 | is regarded as untagged, regardless of it ingress type"; |
| 708 | } |
| 709 | enum ctag { |
| 710 | description "Ingress frames with CTAG(vlan>0) will be |
| 711 | regared as 'VLAN tagged'; with CTAG(vlan=0) as Priority; otherwise untagged"; |
| 712 | } |
| 713 | enum stag { |
| 714 | description "Ingress frames with STAG(vlan>0) will be |
| 715 | regared as 'VLAN tagged'; with STAG(vlan=0) as Priority; otherwise untagged"; |
| 716 | } |
| 717 | // enum stagCtag { description "Indicates that service traffic identified |
| 718 | // with both an S-TAG (outer tag) and a C-TAG |
| 719 | // (inner tag)"; } |
| 720 | //default noTag; --These defaults break the validation - not using them in Eagle |
| 721 | } |
| 722 | description |
| 723 | "This object indicates the interface frame format type that the |
| 724 | interface can recognize. Default is noTag"; |
| 725 | reference |
| 726 | "[MEF 6.1] 6.0"; |
| 727 | } //end frame-format |
| 728 | |
| 729 | leaf interface-ingress-bwp-group-index { //aka mefServiceInterfaceCfgIngressBwpGrpIndex |
| 730 | when "../if:type='ianaift:ethernetCsmacd' and (../if:name='eth0' or ../if:name='eth1')"; |
| 731 | type leafref { |
| 732 | path "/if:interfaces/msea-if:interface-profiles/msea-if:interface-bwp-group/msea-if:group-index"; |
| 733 | } |
| 734 | description |
| 735 | "This object is the index number of the ingress bandwidth profile group |
| 736 | associated with the current interface. A value of 0 indicates that no |
| 737 | interface ingress bandwidth profile group is associated with the |
| 738 | interface. |
| 739 | |
| 740 | This index indicates the specific bandwidth profile group previously |
| 741 | configured via mefServiceBwpGrpCfgTable and mefServiceBwpCfgTable |
| 742 | using this value for mefServiceBwpGrpCfgIndex. There may be multiple |
| 743 | entries in mefServiceBwpCfgTable using this index, each containing |
| 744 | bandwidth parameters for a different Class of Service Identifier."; |
| 745 | reference |
| 746 | "[MEF 6.1] 6.0; [MEF 7.2] 6.2.1.2"; |
| 747 | } |
| 748 | |
| 749 | leaf ce-vid-untagged { //aka mefServiceUniCfgCeVidUntagged |
| 750 | when "../if:type='ianaift:ethernetCsmacd' and (../if:name='eth0' or ../if:name='eth1')"; |
| 751 | type msea:vlan-id-type; |
| 752 | |
| 753 | // mandatory true; |
| 754 | description |
| 755 | "Configures the CE VLAN ID associated with untagged and priority |
| 756 | Service Frames. It allows the identification of untagged and |
| 757 | priority tagged traffic with a specific CE-VLAN ID. This object |
| 758 | is ignored for all to one bundling at the UNI. |
| 759 | This attribute has been placed on the interface (rather than the UNI) |
| 760 | as it can be defined regardless of whether a UNI exists or not"; |
| 761 | reference |
| 762 | "[MEF 6.1] 6.0, [MEF 7.2] 6.2.1.2"; |
| 763 | } |
| 764 | |
| 765 | leaf ce-priority-untagged { //aka mefServiceUniCfgCePriorityUntagged |
| 766 | when "../if:type='ianaift:ethernetCsmacd' and (../if:name='eth0' or ../if:name='eth1')"; |
| 767 | type msea:priority-type; |
| 768 | // mandatory true; |
| 769 | |
| 770 | description |
| 771 | "Configures the CE VLAN Priority associated with untagged Service |
| 772 | Frames. It allows the assignment of a specific VLAN priority to |
| 773 | untagged traffic. This object is ignored for all to one bundling |
| 774 | at the UNI. |
| 775 | This attribute has been placed on the interface (rather than the UNI) |
| 776 | as it can be defined regardless of whether a UNI exists or not"; |
| 777 | reference |
| 778 | "[MEF 7.2] 6.2.1.2"; |
| 779 | } |
| 780 | |
| 781 | leaf admittance-criteria { |
| 782 | when "../if:type='ianaift:ethernetCsmacd' and (../if:name='eth0' or ../if:name='eth1')"; |
| 783 | type enumeration { |
| 784 | enum admitAll { |
| 785 | description "Admit all frames"; |
| 786 | } |
| 787 | // enum admitPrioUntaggedOnly {description "Admit only frames that are not Priority tagged";} |
| 788 | // enum admitVlanOnly {description "Admit only frames that are VLAN tagged";} |
| 789 | } |
| 790 | |
| 791 | // default admitAll; |
| 792 | |
| 793 | description "Criteria for admitting packets to this interface. |
| 794 | The Frame Format attribute to determintes how frames are tagged"; |
| 795 | } |
| 796 | |
| 797 | leaf color-aware { |
| 798 | type boolean; |
| 799 | default true; |
| 800 | |
| 801 | description |
| 802 | "Defines whether the interface should handle color mappings. |
| 803 | If true the color is extracted from the packet tag (DEI bit) |
| 804 | or for IPv4 packets, the DSCP field. |
| 805 | If false the packet is always assumed to be green."; |
| 806 | reference |
| 807 | "Edge Assure internal API"; |
| 808 | } |
| 809 | |
| 810 | leaf color-forward { |
| 811 | type boolean; |
| 812 | default true; |
| 813 | |
| 814 | description |
| 815 | "Defines whether the interface should handle color mappings. |
| 816 | If true color mappings defined in the interface-cos |
| 817 | associated with the active interface-ingress-bwp-group will be applied"; |
| 818 | reference |
| 819 | "Edge Assure internal API"; |
| 820 | } |
| 821 | |
| 822 | leaf dhcp-addressing { |
| 823 | when "../if:type='ianaift:ethernetCsmacd' and (../if:name='eth0' or ../if:name='eth1')"; |
| 824 | type boolean; |
| 825 | |
| 826 | description "This element can only be specified when ZTP |
| 827 | is not specified. |
| 828 | |
| 829 | If this element is not present and ZTP is not |
| 830 | present then the fixed IP addresses specified at |
| 831 | /if:interfaces/if:interface/msea-if:ipv4 |
| 832 | will be used |
| 833 | |
| 834 | This element is specified per interface"; |
| 835 | |
| 836 | must "(not(/if:interfaces/if:interface[if:name = current()/../if:name]/msea-if:ipv4/msea-if:address) and not(/if:interfaces/msea-if:zero-touch-provisioning) and current() = 'true') or ((boolean(/if:interfaces/if:interface[if:name = current()/../if:name]/msea-if:ipv4/msea-if:address) or boolean(/if:interfaces/if:interface[if:name = current()/../if:name]/msea-if:ipv4[msea-if:enabled='false']) or (/if:interfaces/msea-if:zero-touch-provisioning)) and current() = 'false')" { |
| 837 | error-app-tag "msea-if-must-21"; |
| 838 | error-message "When DHCP is 'true' there must be neither a fixed IP address for that interface NOR a ZTP node. When DHCP is 'false' there must be either a fixed IP address for that interface, a disabled interface OR a ZTP node"; |
| 839 | } |
| 840 | |
| 841 | } |
| 842 | } //End augment "/if:interfaces/if:interface |
| 843 | |
| 844 | augment "/if:interfaces-state" { |
| 845 | leaf mef-service-type-options { //aka mefServiceInterfaceStatusType |
| 846 | type MefServiceInterfaceType; |
| 847 | description |
| 848 | "This object is a vector of bits that indicates the possible |
| 849 | interface types that an interface can be configured to. An interface, |
| 850 | for instance, can be configured to be a UNI type 1 or 2, or an ENNI. |
| 851 | |
| 852 | All the possible capabilities of an interface are indicated, one bit |
| 853 | per possible type. At least one bit must be set for MEF compliant NEs."; |
| 854 | reference |
| 855 | "[MEF 6.1] 6.0"; |
| 856 | } |
| 857 | |
| 858 | leaf zero-touch-provisioning-state { |
| 859 | type enumeration { |
| 860 | enum complete { |
| 861 | description "The device was configured through ZTP at last reboot"; |
| 862 | } |
| 863 | enum incomplete { |
| 864 | description "The device was configured through ZTP at last reboot but is not yet complete"; |
| 865 | } |
| 866 | enum dhcp-failed { |
| 867 | description "Communication with DHCP server found through ZTP failed |
| 868 | and default values were used instead."; |
| 869 | } |
| 870 | enum needs-reboot { |
| 871 | description "ZTP was added to the configuration since last reboot"; |
| 872 | } |
| 873 | } |
| 874 | description "A read only set of attributes indicating the status of |
| 875 | Zero Touch Provisioning. This only appears when ZTP is configured"; |
| 876 | } |
| 877 | } //End augment "/if:interfaces-state |
| 878 | |
| 879 | |
| 880 | augment "/if:interfaces-state/if:interface" { |
| 881 | |
| 882 | container ipv4 { |
| 883 | presence |
| 884 | "Present if IPv4 is enabled on this interface"; |
| 885 | config false; |
| 886 | description |
| 887 | "Interface-specific parameters for the IPv4 address family."; |
| 888 | leaf forwarding { |
| 889 | type boolean; |
| 890 | description |
| 891 | "Indicates whether IPv4 packet forwarding is enabled or |
| 892 | disabled on this interface."; |
| 893 | } |
| 894 | |
| 895 | leaf mtu { |
| 896 | type uint16 { |
| 897 | range "68..max"; |
| 898 | } |
| 899 | units "octets"; |
| 900 | description |
| 901 | "The size, in octets, of the largest IPv4 packet that the |
| 902 | interface will send and receive."; |
| 903 | reference |
| 904 | "RFC 791: Internet Protocol"; |
| 905 | |
| 906 | } |
| 907 | |
| 908 | container address { |
| 909 | description |
| 910 | "The list of IPv4 addresses on the interface."; |
| 911 | leaf ip { |
| 912 | type inet:ipv4-address-no-zone; |
| 913 | description |
| 914 | "The IPv4 address on the interface."; |
| 915 | } |
| 916 | |
| 917 | choice subnet { |
| 918 | description |
| 919 | "The subnet can be specified as a prefix-length, or, |
| 920 | if the server supports non-contiguous netmasks, as |
| 921 | a netmask."; |
| 922 | leaf prefix-length { |
| 923 | type uint8 { |
| 924 | range "0..32"; |
| 925 | } |
| 926 | description |
| 927 | "The length of the subnet prefix."; |
| 928 | } |
| 929 | leaf netmask { |
| 930 | if-feature ipv4-non-contiguous-netmasks; |
| 931 | type yang:dotted-quad; |
| 932 | description |
| 933 | "The subnet specified as a netmask."; |
| 934 | } |
| 935 | } // choice subnet |
| 936 | |
| 937 | leaf origin { |
| 938 | type ip-address-origin; |
| 939 | description |
| 940 | "The origin of this address."; |
| 941 | } |
| 942 | } // list address |
| 943 | |
| 944 | leaf gateway { |
| 945 | type inet:ipv4-address; |
| 946 | description "The gateway IP address assigned through ZTP"; |
| 947 | } |
| 948 | |
| 949 | list neighbor { |
| 950 | key "ip"; |
| 951 | description |
| 952 | "A list of mappings from IPv4 addresses to |
| 953 | link-layer addresses. |
| 954 | |
| 955 | This list represents the ARP Cache."; |
| 956 | reference |
| 957 | "RFC 826: An Ethernet Address Resolution Protocol"; |
| 958 | |
| 959 | leaf ip { |
| 960 | type inet:ipv4-address-no-zone; |
| 961 | description |
| 962 | "The IPv4 address of the neighbor node."; |
| 963 | } |
| 964 | |
| 965 | leaf link-layer-address { |
| 966 | type yang:phys-address; |
| 967 | description |
| 968 | "The link-layer address of the neighbor node."; |
| 969 | } |
| 970 | |
| 971 | leaf origin { |
| 972 | type neighbor-origin; |
| 973 | description |
| 974 | "The origin of this neighbor entry."; |
| 975 | } |
| 976 | } // list neighbor |
| 977 | } // container ipv4 |
| 978 | |
| 979 | leaf max-vc { //aka mefServiceInterfaceStatusMaxVc |
| 980 | type uint32 { |
| 981 | range "1..4095"; |
| 982 | } |
| 983 | description |
| 984 | "This object indicates the maximum number of EVCs that the |
| 985 | interface can support."; |
| 986 | reference |
| 987 | "[MEF 6.1] 6.0; [MEF 7.2] 6.2.1.2"; |
| 988 | } |
| 989 | |
| 990 | leaf configured-by { |
| 991 | type enumeration { |
| 992 | enum zero-touch-provisioning { |
| 993 | description "ZTP is active and has configured this interface"; |
| 994 | } |
| 995 | enum dhcp { |
| 996 | description "Interface has been configured by a DHCP server without ZTP"; |
| 997 | } |
| 998 | enum fixed-ipv4 { |
| 999 | description "Interface has been configured manually"; |
| 1000 | } |
| 1001 | } |
| 1002 | } |
| 1003 | } //End augment "/if:interfaces-state/if:interface" |
| 1004 | |
| 1005 | |
| 1006 | augment "/if:interfaces-state/if:interface/if:statistics" { |
| 1007 | |
| 1008 | leaf ingress-undersized { //aka mefServiceInterfaceStatisticsIngressUndersized |
| 1009 | type yang:counter32; |
| 1010 | units "Ethernet frames"; |
| 1011 | description |
| 1012 | "This object is incremented for each frame received |
| 1013 | on a NE interface that was smaller than 64 octets. |
| 1014 | |
| 1015 | This object defaults to '0'. "; |
| 1016 | reference |
| 1017 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1018 | } |
| 1019 | |
| 1020 | leaf ingress-oversized { //aka mefServiceInterfaceStatisticsIngressOversized |
| 1021 | type yang:counter32; |
| 1022 | units "Ethernet frames"; |
| 1023 | description |
| 1024 | "This object is incremented for each frame received |
| 1025 | on a NE interface that was larger than the maximum MTU size. |
| 1026 | |
| 1027 | This object defaults to '0'."; |
| 1028 | reference |
| 1029 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1030 | } |
| 1031 | |
| 1032 | leaf ingress-fragments { //aka mefServiceInterfaceStatisticsIngressFragments |
| 1033 | type yang:counter32; |
| 1034 | units "Ethernet frames"; |
| 1035 | description |
| 1036 | "This object is incremented for each frame received |
| 1037 | on a NE interface that was less than 64 octets in length |
| 1038 | (excluding framing bits but including FCS octets) and had |
| 1039 | either a bad Frame Check Sequence (FCS) with an integral |
| 1040 | number of octets (FCS Error) or a bad FCS with a non-integral |
| 1041 | number of octets (Alignment Error). |
| 1042 | |
| 1043 | Note that it is entirely normal for this counter to |
| 1044 | increment. This is because it counts both runts (which are |
| 1045 | normal occurrences due to collisions) and noise hits. |
| 1046 | |
| 1047 | This object defaults to '0'."; |
| 1048 | reference |
| 1049 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1050 | } |
| 1051 | |
| 1052 | leaf ingress-crc-alignment { //aka mefServiceInterfaceStatisticsIngressCrcAlignment |
| 1053 | type yang:counter32; |
| 1054 | units "Ethernet frames"; |
| 1055 | description |
| 1056 | "This object is incremented for each frame received |
| 1057 | on a NE interface that was from 64 octets to the maximum MTU |
| 1058 | size in length, but had either a bad Frame Check Sequence (FCS) |
| 1059 | with an integral number of octets (FCS Error) or a bad FCS with |
| 1060 | a non-integral number of octets (Alignment Error). |
| 1061 | |
| 1062 | This object defaults to '0'."; |
| 1063 | reference |
| 1064 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1065 | } |
| 1066 | |
| 1067 | leaf ingress-invalid-vid { //aka mefServiceInterfaceStatisticsIngressInvalidVid |
| 1068 | type yang:counter32; |
| 1069 | units "Ethernet frames"; |
| 1070 | description |
| 1071 | "This object is incremented for each frame received |
| 1072 | on a NE interface with an invalid VLAN ID. |
| 1073 | |
| 1074 | This object defaults to '0'."; |
| 1075 | reference |
| 1076 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1077 | } |
| 1078 | |
| 1079 | leaf ingress-octets { //aka mefServiceInterfaceStatisticsIngressOctets |
| 1080 | type yang:counter64; |
| 1081 | units "octets"; |
| 1082 | description |
| 1083 | "This object is incremented by the number of octets in a |
| 1084 | valid frame received on a NE interface. |
| 1085 | |
| 1086 | This object defaults to '0'."; |
| 1087 | reference |
| 1088 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1089 | } |
| 1090 | |
| 1091 | leaf ingress-unicast { //aka mefServiceInterfaceStatisticsIngressUnicast |
| 1092 | type yang:counter64; |
| 1093 | units "Ethernet frames"; |
| 1094 | description |
| 1095 | "This object is incremented for each valid unicast frame received |
| 1096 | on a NE interface. |
| 1097 | |
| 1098 | NEs that do not support 64 bit counters can return the |
| 1099 | upper half of the counter as all zeros. |
| 1100 | |
| 1101 | This object defaults to '0'."; |
| 1102 | reference |
| 1103 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1104 | } |
| 1105 | |
| 1106 | leaf ingress-multicast { //aka mefServiceInterfaceStatisticsIngressMulticast |
| 1107 | type yang:counter64; |
| 1108 | units "Ethernet frames"; |
| 1109 | description |
| 1110 | "This object is incremented for each valid multicast frame received |
| 1111 | on a NE interface. |
| 1112 | |
| 1113 | ME-NEs that do not support 64 bit counters can return the |
| 1114 | upper half of the counter as all zeros. |
| 1115 | |
| 1116 | This object defaults to '0'."; |
| 1117 | reference |
| 1118 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1119 | } |
| 1120 | |
| 1121 | leaf ingress-broadcast { //aka mefServiceInterfaceStatisticsIngressBroadcast |
| 1122 | type yang:counter64; |
| 1123 | units "Ethernet frames"; |
| 1124 | description |
| 1125 | "This object is incremented for each valid broadcast frame received |
| 1126 | on a NE interface. |
| 1127 | |
| 1128 | ME-NEs that do not support 64 bit counters can return the |
| 1129 | upper half of the counter as all zeros. |
| 1130 | |
| 1131 | This object defaults to '0'."; |
| 1132 | reference |
| 1133 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1134 | } |
| 1135 | |
| 1136 | leaf egress-octets { //aka mefServiceInterfaceStatisticsEgressOctets |
| 1137 | type yang:counter64; |
| 1138 | units "octets"; |
| 1139 | description |
| 1140 | "This object is incremented by the number of octets in a frame |
| 1141 | transmitted on a NE interface. |
| 1142 | |
| 1143 | This object defaults to '0'."; |
| 1144 | reference |
| 1145 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1146 | } |
| 1147 | |
| 1148 | leaf egress-unicast { //aka mefServiceInterfaceStatisticsEgressUnicast |
| 1149 | type yang:counter64; |
| 1150 | units "Ethernet frames"; |
| 1151 | description |
| 1152 | "This object is incremented for each unicast frame transmitted on a |
| 1153 | NE interface. |
| 1154 | |
| 1155 | ME-NEs that do not support 64 bit counters can return the |
| 1156 | upper half of the counter as all zeros. |
| 1157 | |
| 1158 | This object defaults to '0'."; |
| 1159 | reference |
| 1160 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1161 | } |
| 1162 | |
| 1163 | leaf egress-multicast { //aka mefServiceInterfaceStatisticsEgressMulticast |
| 1164 | type yang:counter64; |
| 1165 | units "Ethernet frames"; |
| 1166 | description |
| 1167 | "This object is incremented for each multicast frame transmitted on a |
| 1168 | NE interface. |
| 1169 | |
| 1170 | ME-NEs that do not support 64 bit counters can return the |
| 1171 | upper half of the counter as all zeros. |
| 1172 | |
| 1173 | This object defaults to '0'."; |
| 1174 | reference |
| 1175 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1176 | } |
| 1177 | |
| 1178 | leaf egress-broadcast { //aka mefServiceInterfaceStatisticsEgressBroadcast |
| 1179 | type yang:counter64; |
| 1180 | units "Ethernet frames"; |
| 1181 | description |
| 1182 | "This object is incremented for each broadcast frame transmitted on a |
| 1183 | NE interface. |
| 1184 | |
| 1185 | ME-NEs that do not support 64 bit counters can return the |
| 1186 | upper half of the counter as all zeros. |
| 1187 | |
| 1188 | This object defaults to '0'."; |
| 1189 | reference |
| 1190 | "[MEF 15] 8.2; [Q.840.1] 6.2.4"; |
| 1191 | } |
| 1192 | } //End augment "/if:interfaces-state/if:interface/if:statistics |
| 1193 | |
| 1194 | |
| 1195 | |
| 1196 | rpc ztp-reset-and-reboot { |
| 1197 | // nacm:default-deny-all; |
| 1198 | description |
| 1199 | "Request that the ZTP system should be reset and the system rebooted. |
| 1200 | This can only be run when the zero-touch-provisioning element |
| 1201 | already exists on the interfaces element |
| 1202 | |
| 1203 | If the zero-touch-provisioning element has been added since the last |
| 1204 | reboot then the reset will be pending already and will be brought |
| 1205 | in to effect by this reboot."; |
| 1206 | } |
| 1207 | |
| 1208 | } /* end of module msea-uni-evc-interface */ |