nokia-types-services

Common services data types used in the SR OS management system. Copyright 2016 Nokia. All rights reserved. Reproduction of this...

  • Version: 2022-08-29

    nokia-types-services@2022-08-29


    
      module nokia-types-services {
    
        yang-version 1.1;
    
        namespace
          "urn:nokia.com:sros:ns:yang:sr:types-services";
    
        prefix types-services;
    
        import nokia-sros-yang-extensions {
          prefix sros-ext;
        }
        import nokia-types-sros {
          prefix types-sros;
        }
    
        organization "Nokia";
    
        contact
          "Nokia SR OS Support
             Web: <http://www.nokia.com>";
    
        description
          "Common services data types used in the SR OS management system.
    
             Copyright 2016 Nokia. All rights reserved. Reproduction of this document
             is authorized on the condition that the foregoing copyright notice is included.
    
             This nokia-types-services YANG module embodies Nokia's proprietary
             intellectual property. Nokia retains all title and ownership in the
             specification, including any revisions.
    
             Nokia grants all interested parties a non-exclusive license to use
             and distribute an unmodified copy of this specification in connection with
             management of Nokia products, and without fee, provided this
             copyright notice and license appear on all copies.
    
             This specification is supplied `as is', and Nokia makes no warranty,
             either express or implied, as to the use, operation, condition, or performance
             of the specification.";
    
        revision "2022-08-29";
        sros-ext:sros-major-release "rel22";
    
        typedef sdp-id {
          type uint32 {
            range "1..32767";
          }
          description
            "A number used to identify a Service Distribution Point.
                 This ID must be unique only within the ESR where it is defined.";
        }
    
        typedef sdp-id-or-zero {
          type uint32 {
            range "0..32767";
          }
          description
            "A number used to identify a Service Distribution Point.";
        }
    
        typedef vrtr-mpls-lsp-id {
          type uint32 {
            range "0..65535";
          }
          description
            "A unique value, greater than zero, for each Label Switched Path in the managed system.";
        }
    
        typedef pw-port-sdp-bind-vc-type {
          type enumeration {
            enum "ether" {
              value 2;
            }
            enum "vlan" {
              value 4;
            }
          }
          description
            "Specifies the type of virtual circuit (VC) associated with the SDP binding.";
        }
    
        typedef sdp-bind-vc-type {
          type enumeration {
            enum "undef" {
              value 1;
            }
            enum "ether" {
              value 2;
            }
            enum "vlan" {
              value 4;
            }
            enum "mirror" {
              value 5;
            }
            enum "atm-sdu" {
              value 6;
            }
            enum "atm-cell" {
              value 7;
            }
            enum "atm-vcc" {
              value 8;
            }
            enum "atm-vpc" {
              value 9;
            }
            enum "fr-dlci" {
              value 10;
            }
            enum "ipipe" {
              value 11;
            }
            enum "satop-e1" {
              value 12;
            }
            enum "satop-t1" {
              value 13;
            }
            enum "satop-e3" {
              value 14;
            }
            enum "satop-t3" {
              value 15;
            }
            enum "cesopsn" {
              value 16;
            }
            enum "cesopsn-cas" {
              value 17;
            }
          }
          description
            "Specifies the type of virtual circuit (VC) associated with the SDP binding.
                 The value 'vpls' is no longer supported.";
        }
    
        typedef pw-template-sdp-bind-vc-type {
          type enumeration {
            enum "ether" {
              value 2;
            }
            enum "vlan" {
              value 4;
            }
          }
          description
            "Specifies the type of virtual circuit (VC) associated with the PW template.";
        }
    
        typedef epipe-sdp-bind-vc-type {
          type enumeration {
            enum "ether" {
              value 2;
            }
            enum "vlan" {
              value 4;
            }
          }
          description
            "Specifies the type of virtual circuit (VC) associated with the SDP binding.";
        }
    
        typedef vpls-sdp-bind-vc-type {
          type enumeration {
            enum "ether" {
              value 2;
            }
            enum "vlan" {
              value 4;
            }
          }
          description
            "Specifies the type of virtual circuit (VC) associated with the SDP binding.";
        }
    
        typedef svc-vc-type {
          type enumeration {
            enum "undef" {
              value 1;
            }
            enum "atm-sdu" {
              value 6;
            }
            enum "atm-cell" {
              value 7;
            }
            enum "atm-vcc" {
              value 8;
            }
            enum "atm-vpc" {
              value 9;
            }
            enum "fr-dlci" {
              value 10;
            }
            enum "satop-e1" {
              value 12;
            }
            enum "satop-t1" {
              value 13;
            }
            enum "satop-e3" {
              value 14;
            }
            enum "satop-t3" {
              value 15;
            }
            enum "cesopsn" {
              value 16;
            }
            enum "cesopsn-cas" {
              value 17;
            }
          }
          description
            "Specifies the type of virtual circuit (VC) associated with the service.";
        }
    
        typedef apipe-vc-type {
          type enumeration {
            enum "atm-sdu" {
              value 6;
            }
            enum "atm-cell" {
              value 7;
            }
            enum "atm-vcc" {
              value 8;
            }
            enum "atm-vpc" {
              value 9;
            }
          }
          description
            "Specifies the type of virtual circuit (VC) associated with the service.";
        }
    
        typedef cpipe-vc-type {
          type enumeration {
            enum "satop-e1" {
              value 12;
            }
            enum "satop-t1" {
              value 13;
            }
            enum "cesopsn" {
              value 16;
            }
            enum "cesopsn-cas" {
              value 17;
            }
          }
          description
            "Specifies the type of virtual circuit (VC) associated with the service.";
        }
    
        typedef fpipe-vc-type {
          type enumeration {
            enum "fr-dlci" {
              value 10;
            }
          }
          description
            "Specifies the type of virtual circuit (VC) associated with the service.";
        }
    
        typedef customer-id {
          type uint32 {
            range "1..2147483647";
          }
          description
            "A number used to identify a Customer or
                 Subscriber. This ID must be unique within
                 the Service Domain. The value 0 is used as
                 the null ID.";
        }
    
        typedef vpls-limit-mac-move {
          type enumeration {
            enum "blockable" {
              value 1;
            }
            enum "non-blockable" {
              value 2;
            }
          }
          description
            "This textual convention is used to specify the behavior
                 when the re-learn rate specified by svcTlsMacMoveMaxRate
                 is exceeded.
    
                 A value of 'blockable' specifies that the agent will
                 monitor the MAC relearn rate on a SAP or SDP Bind and
                 it will block it when the re-learn rate specified by
                 svcTlsMacMoveMaxRate is exceeded. A value of 'nonBlockable'
                 specifies that the  SAP or SDP Bind will not be blocked,
                 and another blockable SAP or SDP Bind will be blocked
                 instead.";
        }
    
        typedef mrp-policy-default-action {
          type enumeration {
            enum "block" {
              value 1;
            }
            enum "allow" {
              value 2;
            }
          }
          description
            "action to take on the traffic when no mrp-policy filter entry matches.
    
                 when set to block(1), no MMRP attributes will be advertised unless
                 there is a specific mrp-policy entry which causes them to be advertised
                 on this SAP/SDP.
    
                 when set to allow(2), all MMRP attributes will be advertised unless
                 there is a specific mrp-policy entry which causes them to be blocked
                 on this SAP/SDP.";
        }
    
        typedef mrp-policy-action {
          type enumeration {
            enum "block" {
              value 1;
            }
            enum "allow" {
              value 2;
            }
            enum "end-station" {
              value 3;
            }
          }
          description
            "action to take on the traffic when the mrp-policy filter entry matches.
    
                 when set to block(1) the matching MMRP attributes will not be
                 advertised on this SAP/SDP.
    
                 when set to allow(2) the matching MMRP attributes will be
                 advertised on this SAP/SDP.
    
                 when set to end-station(3) an end-station emulation is present on this
                 SAP/SDP for the MMRP attributes related with matching ISIDs.
    
                 When deleted the mrp-policy entry will be considered incomplete
                 and hence rendered inactive.";
        }
    
        typedef virt-scheduler-attribute {
          type bits {
            bit cir {
              position 0;
            }
            bit pir {
              position 1;
            }
            bit summed-cir {
              position 2;
            }
            bit weight {
              position 3;
            }
            bit cir-weight {
              position 4;
            }
          }
          description
            "Indicates attributes of a virtual scheduler";
        }
    
        typedef l2pt-protocols {
          type bits {
            bit stp {
              position 0;
            }
            bit cdp {
              position 1;
            }
            bit vtp {
              position 2;
            }
            bit dtp {
              position 3;
            }
            bit pagp {
              position 4;
            }
            bit udld {
              position 5;
            }
          }
          description
            "Indicates which L2 protocols should have their tunnels
                 terminated when 'L2ptTermination' is enabled.
                 stp           - spanning tree protocols stp/mstp/pvst/rstp
                 cdp           - cisco discovery protocol
                 vtp           - virtual trunk protocol
                 dtp           - dynamic trunking protocol
                 pagp          - port aggregation protocol
                 udld          - unidirectional link detection";
        }
    
        typedef service-type {
          type enumeration {
            enum "epipe" {
              value 1;
            }
            enum "vpls" {
              value 3;
            }
            enum "vprn" {
              value 4;
            }
            enum "ies" {
              value 5;
            }
            enum "mirror" {
              value 6;
            }
            enum "apipe" {
              value 7;
            }
            enum "fpipe" {
              value 8;
            }
            enum "ipipe" {
              value 9;
            }
            enum "cpipe" {
              value 10;
            }
            enum "int-tls" {
              value 11;
            }
            enum "vpls-evpn" {
              value 12;
            }
          }
          description
            "This textual convention is used to specify the
                 type of a given service.";
        }
    
        typedef oper-service-type {
          type enumeration {
            enum "unknown" {
              value 0;
            }
            enum "epipe" {
              value 1;
            }
            enum "vpls" {
              value 3;
            }
            enum "vprn" {
              value 4;
            }
            enum "ies" {
              value 5;
            }
            enum "mirror" {
              value 6;
            }
            enum "apipe" {
              value 7;
            }
            enum "fpipe" {
              value 8;
            }
            enum "ipipe" {
              value 9;
            }
            enum "cpipe" {
              value 10;
            }
            enum "int-tls" {
              value 11;
            }
            enum "vpls-evpn" {
              value 12;
            }
          }
          description
            "This value is an enumeration integer that indicates service
                 type with no default value.";
        }
    
        typedef vpn-id {
          type uint32 {
            range "1..2147483647";
          }
          description
            "A number used to identify a VPN. In general
                 each service corresponds to a single VPN, but
                 under some circumstances a VPN may be composed
                 of multiple services.";
        }
    
        typedef service-id {
          type uint32 {
            range "1..4294967295";
          }
          description
            "A number used to identify a service. This ID must be unique
                 within the Service Domain.
                 This type is typically used in state leafs.";
        }
    
        typedef service-id-or-zero {
          type uint32;
          description
            "A number used to identify a service. This ID must be unique
                 within the Service Domain.
                 This type is typically used in state leafs.";
        }
    
        typedef external-service-id {
          type uint32 {
            range "1..2147483647";
          }
          description
            "A number used to identify an external (i.e. user configurable)
                 service. This ID must be unique within the Service Domain.
                 Service-ids larger then 2147483647 are used to represent 
                 system created, hence internal, services (ref service-id-maf)";
        }
    
        typedef service-id-maf {
          type uint32 {
            range
              "1..2147483647|2147483648|2147483649|2147483650|2147483651..2147483690|2147483691..2148007980|2148007981..2148012076|2148012077..2148016172|2148016173..2148278316|2148278317|2148278318..2148278381|2148278382|2148278383..2148278386";
          }
          description
            "A number used to identify a  external or internal service. This ID
                 must be unique within the Service Domain.";
        }
    
        typedef pw-global-id {
          type uint32 {
            range "1..4294967295";
          }
          description
            "A number used to identify a global pseudo-wire routing identifier.";
        }
    
        typedef pw-global-id-or-zero {
          type uint32;
          description
            "A number used to identify a global pseudo-wire routing identifier or
                 zero.";
        }
    
        typedef pw-path-hop-id {
          type uint32 {
            range "1..16";
          }
          description
            "A number used to identify a specific hop associated with pseudo-wire
                 routing path.";
        }
    
        typedef qos-qgrp-instance-id {
          type uint32 {
            range "1..65535";
          }
          description
            "The identification number of a QoS queue group instance.";
        }
    
        typedef vrtr-id-or-zero {
          type int32 {
            range "0..10240";
          }
          description
            "A number used to identify a virtual router instance in the system.
                 The number 0 will have special significance in the context the TC
                 is used.";
        }
    
        typedef vprn-virtual-router-id {
          type int32 {
            range "2..10240";
          }
          description
            "A number used to identify a virtual router instance in the system.";
        }
    
        typedef encap-value {
          type uint32;
          description
            "The value of the label used to identify the entity using the
                 specified encapsulation value on a specific port.
    
                 The format of this object depends on the encapsulation type
                 defined on this port.
    
                 When the encapsulation is nullEncap the value of this object
                 must be zero.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |00000000 00000000 00000000 00000000|
                 +--------+--------+--------+--------+
    
                 When the encapsulation is dot1qEncap the value of this object
                 is equal to the 12-bit IEEE 802.1Q VLAN ID.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |00000000 00000000 0000XXXX XXXXXXXX|
                 +--------+--------+--------+--------+
    
                 When the encapsulation is mplsEncap the value of this object
                 is equal to the 20-bit LSP ID.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |00000000 0000XXXX XXXXXXXX XXXXXXXX|
                 +--------+--------+--------+--------+
    
                 When the encapsulation is frEncap, the value of this object is
                 equal to the 10-bit Frame Relay DLCI.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |00000000 00000000 000000XX XXXXXXXX|
                 +--------+--------+--------+--------+
    
                 When the encapsulation is qinqEncap, the value of the outer
                 802.1Q VLAN ID is encoded in the least significant 16 bits,
                 and the value of the inner VLAN ID is encoded in the most
                 significant 16 bits.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |0000YYYY YYYYYYYY 0000XXXX XXXXXXXX|
                 +--------+--------+--------+--------+
    
                 where:
                     - '*' is represented as 4095.
                     - '0' is represented as 0.
                     - any other value in between as a valid tag.
                     - '*.null' is represented in the following way:
    
                       31                                  0
                       +--------+--------+--------+--------+
                       |10000000 00000000 00001111 11111111|
                       +--------+--------+--------+--------+
    
                 When the encapsulation is atmEncap, the value
                 of the ATM VCI is encoded in the least significant
                 16 bits, and the value of the ATM VPI is encoded
                 in the next 12 bits.
    
                 For ATM VCs, the top 3 bits are 000.  The value of
                 the ATM VCI is encoded in the least significant 16
                 bits, and the value of the ATM VPI is encoded in the next
                 12 bits.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |0000YYYY YYYYYYYY XXXXXXXX XXXXXXXX|
                 +--------+--------+--------+--------+
    
                 For ATM capture VCs, bits 0 and 28 are 1.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |00010000 00000000 00000000 00000001|
                 +--------+--------+--------+--------+
    
                 For ATM VPs, the top 3 bits are 010.  The value of
                 the ATM VPI is encoded in the least significant 12 bits.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |01000000 00000000 0000XXXX XXXXXXXX|
                 +--------+--------+--------+--------+
    
                 For ATM VP ranges, the top 3 bits are 100.  The value of
                 the start of the ATM VPI range is encoded in the least significant
                 12 bits, and the value of the end of the ATM VP range is encoded
                 in the next 12 bits.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |10000000 YYYYYYYY YYYYXXXX XXXXXXXX|
                 +--------+--------+--------+--------+
    
                 For ATM ports, the top 3 bits are 110, and the rest of the bits
                 must be zero.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |11000000 00000000 00000000 00000000|
                 +--------+--------+--------+--------+
    
                 For ATM CPs, the top 3 bits are 001.  The value of
                 the ATM CP is encoded in the least significant 13 bits.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |00100000 00000000 000XXXXX XXXXXXXX|
                 +--------+--------+--------+--------+
    
                 When the encapsulation is wanMirrorEncap the value of this
                 object is equal to the 12-bit value.
    
                 31                                   0
                 +--------+--------+--------+--------+
                 |00000000 00000000 0000XXXX XXXXXXXX|
                 +--------+--------+--------+--------+
    
                 Some ports have a restrictions to the encapsulation types that
                 they can support and hence impose restrictions on the respective
                 formats defined above.";
        }
    
        typedef site-id {
          type int32 {
            range "1..65535";
          }
          description
            "A number used to identify a site. This ID must be unique within the
                 service-domain.";
        }
    
        typedef spoke-sdp-id {
          type uint32 {
            range "1..4294967295";
          }
          description
            "A number used to identify a multi-segment pseudo-wire provider-edge
                 identifier.";
        }
    
        typedef spoke-sdp-id-or-zero {
          type uint32;
          description
            "A number used to identify a multi-segment pseudo-wire provider-edge
                 identifier.";
        }
    
        typedef ms-pw-pe-signaling {
          type enumeration {
            enum "auto" {
              value 1;
            }
            enum "master" {
              value 2;
            }
          }
          description
            "A number used to identify a multi-segment pseudo-wire provider-edge
                 signaling type.";
        }
    
        typedef ldp-fec-type {
          type enumeration {
            enum "addr-wildcard" {
              value 1;
            }
            enum "addr-prefix" {
              value 2;
            }
            enum "addr-host" {
              value 3;
            }
            enum "vll" {
              value 128;
            }
            enum "vpws" {
              value 129;
            }
            enum "vpls" {
              value 130;
            }
          }
          description
            "Determines the kind of FEC that the label
                 mapping, withdraw, release and request messages are
                 referring to.";
        }
    
        typedef aii-type {
          type enumeration {
            enum "aii-type1" {
              value 1;
            }
            enum "aii-type2" {
              value 2;
            }
          }
          description
            "Indicates LDP FEC 129 Attachment Individual Identifier (AII) type.";
        }
    
        typedef pw-template-id {
          type uint32 {
            range "1..2147483647";
          }
          description
            "A number used to uniquely identify an pseudowire (PW)
                 template for the creation of a Service Destination
                 Point. The value 0 is used as the null ID.";
        }
    
        typedef isid {
          type int32 {
            range "0..16777215";
          }
          description
            "Specifies a 24 bit (0..16777215) service instance
                 identifier for the service. As part of the Provider Backbone Bridging
                 frames, it is used at the destination PE as a demultiplexor field.";
        }
    
        typedef isid-no-zero {
          type int32 {
            range "1..16777215";
          }
          description
            "Specifies a 24 bit (1..16777215) service instance
                 identifier for the service. As part of the Provider Backbone Bridging
                 frames, it is used at the destination PE as a demultiplexor field.";
        }
    
        typedef auth-password {
          type string {
            length "0..64";
          }
          description
            "Contains a password used for authentication of subscribers.";
        }
    
        typedef state-vpn-rd {
          type string {
            pattern
              "((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))|(([0-9]|[1-9]([0-9]{1,3})|[1-5]([0-9]{1,4})|6[0-4]([0-9]{1,3})|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))";
          }
          description
            "The VPRN route distinguisher is a 8-octet object as string.
    
                  <ip-addr:comm-val>|<2byte-asnumber:ext-comm-val>|
                  <4byte-asnumber:comm-val>
                  ip-addr        - a.b.c.d
                  comm-val       - [0..65535]
                  2byte-asnumber - [1..65535]
                  ext-comm-val   - [0..4294967295]
                  4byte-asnumber - [1..4294967295].";
        }
    
        typedef vpn-route-distinguisher {
          type string {
            pattern
              "((((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))|(([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))";
          }
          description
            "The VPRN route distinguisher is a 8-octet object as string.
    
                  <ip-addr:comm-val>|<2byte-asnumber:ext-comm-val>|
                  <4byte-asnumber:comm-val>
                  ip-addr        - a.b.c.d
                  comm-val       - [0..65535]
                  2byte-asnumber - [1..65535]
                  ext-comm-val   - [0..4294967295]
                  4byte-asnumber - [1..4294967295].";
        }
    
        typedef vpls-id {
          type string {
            pattern
              "((((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))|(([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))";
          }
          description
            "The vpls-id is a 8-octet object as string.
    
                  <ip-addr:comm-val>|<2byte-asnumber:ext-comm-val>|
                  <4byte-asnumber:comm-val>
                  ip-addr        - a.b.c.d
                  comm-val       - [0..65535]
                  2byte-asnumber - [1..65535]
                  ext-comm-val   - [0..4294967295]
                  4byte-asnumber - [1..4294967295].";
        }
    
        typedef route-target-32 {
          type string {
            length "10..32";
            pattern
              "target:(((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))|(([0-9]|[1-9]([0-9]{1,3})|[1-5]([0-9]{1,4})|6[0-4]([0-9]{1,3})|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5])))";
          }
          description
            "The route target is a 8-octet object as string.
    
                    <ext-community>      : target:{<ip-addr:comm-val>|
                    <2byte-asnumber:ext-comm-val>|
                    <4byte-asnumber:comm-val>}
                    ip-addr        - a.b.c.d
                    comm-val       - [0..65535]
                    2byte-asnumber - [0..65535]
                    ext-comm-val   - [0..4294967295]
                    4byte-asnumber - [0..4294967295].";
        }
    
        typedef route-target {
          type route-target-32 {
            length "10..28";
          }
          description
            "The route target is a 8-octet object as string.
    
                    <ext-community>      : target:{<ip-addr:comm-val>|
                    <2byte-asnumber:ext-comm-val>|
                    <4byte-asnumber:comm-val>}
                    ip-addr        - a.b.c.d
                    comm-val       - [0..65535]
                    2byte-asnumber - [0..65535]
                    ext-comm-val   - [0..4294967295]
                    4byte-asnumber - [0..4294967295].";
        }
    
        typedef bgp-community {
          type string {
            length "3..11";
            pattern
              "(([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))";
          }
          description
            "The bgp-community is a 4-octet object as string.
                  <bgp-community> : <as-number:comm-val>
                  asnumber - [1..65535]
                  comm-val - [0..65535].";
        }
    
        typedef egress-hsmda-queue-packet-byte-offset {
          type int32 {
            range "-64..31";
          }
          description
            "The value, in bytes, of the override of the adjustment to make
                 to the size of each outgoing packet for accounting.";
        }
    
        typedef bsx-aarp-id {
          type uint32 {
            range "1..65535";
          }
          description
            "Identifies an instance of the AA Redundancy
                 Protocol (AARP).
    
                 The value of '0' indicates an invalid AARP instance.";
        }
    
        typedef bsx-aarp-id-or-zero {
          type uint32 {
            range "0..65535";
          }
          description
            "Identifies an instance of the AA Redundancy
                 Protocol (AARP).
    
                 The value of '0' indicates an invalid AARP instance.";
        }
    
        typedef bsx-aarp-service-ref-type {
          type enumeration {
            enum "dual-homed" {
              value 1;
            }
            enum "subscriber-side-shunt" {
              value 2;
            }
            enum "network-side-shunt" {
              value 3;
            }
            enum "dual-homed-secondary" {
              value 4;
            }
          }
          description
            "Identifies the role of the SAP or
                 Spoke SDP service point being referenced by an AARP instance.
                 This reference is made in the context of a AARP instance identified
                 by bsx-aarp-id-or-zero.
    
                 The service reference types are:
    
                 dual-homed(1)           - the service reference point is a SAP or
                                         Spoke SDP connected into a dually homed
                                         network being protected by the AARP instance.
    
                 shunt-subscriber-side(2) - the service reference point is a Spoke SDP
                                         acting as a subscriber side shunt used by
                                         the AARP instance. A subscriber side shunt
                                         carries the local from/to subscriber
                                         traffic when AA is performed remotely.
    
                 shunt-network-side(3)    - the service reference point is a Spoke SDP
                                         acting as a network side shunt used by
                                         the AARP instance. A network side shunt
                                         carries the local from/to network
                                         traffic when AA is performed remotely.
    
                 dual-homed-secondary(4)  - the secondary service reference point is a
                                         SAP or Spoke SDP connected into a dually
                                         homed network being protected by the AARP
                                         instance. It functions as a backup to the
                                         'dualHomed(1)' primary reference point.";
        }
    
        typedef dual-homing-bsx-aarp-service-ref-type {
          type enumeration {
            enum "dual-homed" {
              value 1;
            }
            enum "dual-homed-secondary" {
              value 4;
            }
          }
          description
            "The dual-homing-bsx-aarp-serice-ref-type is a subset of bsx-aarp-service-ref-type applicable to dual-homing supported services.";
        }
    
        typedef l3-bsx-aarp-service-ref-type {
          type enumeration {
            enum "subscriber-side-shunt" {
              value 2;
            }
            enum "network-side-shunt" {
              value 3;
            }
          }
          description
            "The l3-bsx-aarp-serice-ref-type is a subset of bsx-aarp-service-ref-type applicable to network supported services.";
        }
    
        typedef cpm-prot-policy-id {
          type uint32 {
            range "1..255";
          }
          description
            "Represents the identification number of a CPM Protection policy.";
        }
    
        typedef bsx-transit-ip-policy-id {
          type uint32 {
            range "1..65535";
          }
          description
            "Identifies a transit ip policy.
    
                 The value '0' indicates an invalid transit IP policy.";
        }
    
        typedef bsx-transit-ip-policy-id-or-zero {
          type uint32 {
            range "0..65535";
          }
          description
            "Identifies a transit ip policy.
    
                 The value '0' indicates an invalid transit IP policy.";
        }
    
        typedef bsx-trans-pref-policy-id {
          type uint32 {
            range "1..65535";
          }
          description
            "Identifies a transit prefix policy.
    
                 The value '0' indicates an invalid transit prefix policy.";
        }
    
        typedef bsx-trans-pref-policy-id-or-zero {
          type uint32 {
            range "0..65535";
          }
          description
            "Identifies a transit prefix policy.
    
                 The value '0' indicates an invalid transit prefix policy.";
        }
    
        typedef link-map-profile-id {
          type int32 {
            range "1..64";
          }
          description
            "The data type TmnxLinkMapProfileId describes the link map profile
                 identifier.";
        }
    
        typedef interface-index-or-zero {
          type int32 {
            range "0..2147483647";
          }
          description
            "This textual convention is an extension of the
                 interface-index convention.  The latter defines a greater
                 than zero value used to identify an interface or interface
                 sub-layer in the managed system.  This extension permits the
                 additional value of zero.  the value zero is object-specific
                 and must therefore be defined as part of the description of
                 any object which uses this syntax.  Examples of the usage of
                 zero might include situations where interface was unknown,
                 or when none or all interfaces need to be referenced.";
        }
    
        typedef interface-index {
          type int32;
          description
            "A unique value, greater than zero, for each interface
                 or interface sub-layer in the managed system.  It is
                 recommended that values are assigned contiguously
                 starting from 1.  The value for each interface sub-
                 layer must remain constant at least from one re-
                 initialization of the entity's network management
                 system to the next re-initialization.";
        }
    
        typedef sdp-bind-id {
          type string {
            length "3..16";
            pattern
              "([1-9]|[1-9][0-9]{1,3}|[1-2][0-9]{4}|3[0-1][0-9]{3}|32[0-6][0-9]{2}|327[0-5][0-9]|3276[0-7]):([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])";
          }
          description
            "A Service Distribution Point (SDP) binding identification in the following format: <sdp-id>:<vc-id>.
                 sdp-id - [1..32767]
                 vc-id - [1..4294967295]";
        }
    
        typedef ies-sdp-bind-vc-type {
          type enumeration {
            enum "ether" {
              value 2;
            }
            enum "ipipe" {
              value 11;
            }
          }
          description
            "This textual convention is used when default value is unknown and
                 set by the CPM.";
        }
    
        typedef mci-sdp-bind-vc-type {
          type enumeration {
            enum "undef" {
              value 1;
            }
            enum "ether" {
              value 2;
            }
            enum "vlan" {
              value 4;
            }
            enum "mirror" {
              value 5;
            }
            enum "atm-sdu" {
              value 6;
            }
            enum "atm-cell" {
              value 7;
            }
            enum "atm-vcc" {
              value 8;
            }
            enum "atm-vpc" {
              value 9;
            }
            enum "fr-dlci" {
              value 10;
            }
            enum "ipipe" {
              value 11;
            }
            enum "satop-e1" {
              value 12;
            }
            enum "satop-t1" {
              value 13;
            }
            enum "satop-e3" {
              value 14;
            }
            enum "satop-t3" {
              value 15;
            }
            enum "cesopsn" {
              value 16;
            }
            enum "cesopsn-cas" {
              value 17;
            }
          }
          description
            "This textual convention is used when default value is unknown and
                 set by the CPM.";
        }
    
        typedef bfd-encap {
          type enumeration {
            enum "ipv4" {
              value 1;
            }
          }
          description
            "An enumerated integer indicating encapsulation used for in the BFD operation.";
        }
    
        typedef mci-boolean {
          type enumeration {
            enum "true" {
              value 1;
            }
            enum "false" {
              value 2;
            }
          }
          description
            "This textual convention is used when default value is unknown and
                 set by the CPM.";
        }
    
        typedef sdp-bind-bandwidth {
          type union {
            type uint32 {
              range "0..100000000";
            }
            type enumeration {
              enum "max" {
                value 100000000;
              }
            }
          }
          units "kilobps";
          description
            "The required SDP binding bandwidth, in kbps.";
        }
    
        typedef sap-bandwidth {
          type uint64 {
            range "1..6400000000";
          }
          units "kilobps";
          description
            "The required SAP binding bandwidth, in kbps.";
        }
    
        typedef mirror-type {
          type enumeration {
            enum "ether" {
              value 1;
            }
            enum "ip-only" {
              value 11;
            }
          }
          description
            "The mirror-type data type is an enumerated integer
                 that describes the port encapsulation supported
                 by a mirror service.";
        }
    
        typedef anti-spoof-option {
          type enumeration {
            enum "source-ip-addr" {
              value 1;
            }
            enum "source-mac-addr" {
              value 2;
            }
            enum "source-ip-and-mac-addr" {
              value 3;
            }
            enum "next-hop-ip-and-mac-addr" {
              value 4;
            }
          }
          description
            "The anti-spoof-option describes the anti-spoof options available.";
        }
    
        typedef anti-spoof-option-ip {
          type enumeration {
            enum "source-ip-addr" {
              value 1;
            }
            enum "source-ip-and-mac-addr" {
              value 3;
            }
            enum "next-hop-ip-and-mac-addr" {
              value 4;
            }
          }
          description
            "The anti-spoof-option describes the anti-spoof options available.";
        }
    
        typedef anti-spoof-option-ip-mac {
          type enumeration {
            enum "source-ip-and-mac-addr" {
              value 3;
            }
            enum "next-hop-ip-and-mac-addr" {
              value 4;
            }
          }
          description
            "The anti-spoof-option describes the anti-spoof options available.";
        }
    
        typedef sap-sub-type {
          type enumeration {
            enum "regular" {
              value 0;
            }
            enum "capture" {
              value 1;
            }
            enum "managed" {
              value 2;
            }
            enum "video" {
              value 3;
            }
            enum "internal" {
              value 4;
            }
          }
          description
            "The sap-sub-type describes sub type of the SAP.";
        }
    
        typedef eth-cfm-monitoring-bits {
          type bits {
            bit eth-cfm-monitor {
              position 0;
            }
            bit aggregate {
              position 1;
            }
            bit car {
              position 2;
            }
          }
          description
            "The eth-cfm-monitoring-bits specifies ETH CFM monitoring information.";
        }
    
        typedef broadcast-address-format {
          type enumeration {
            enum "all-ones" {
              value 1;
            }
            enum "host-ones" {
              value 2;
            }
          }
          description
            "Broadcast address format used for local broadcast.";
        }
    
        typedef sap-protected-src-mac-violation-action {
          type enumeration {
            enum "sap-oper-down" {
              value 1;
            }
            enum "alarm-only" {
              value 2;
            }
            enum "discard" {
              value 3;
            }
          }
          description
            "Action for restrict protected source feature.";
        }
    
        typedef sdp-protected-src-mac-violation-action {
          type enumeration {
            enum "sdp-bind-oper-down" {
              value 1;
            }
            enum "alarm-only" {
              value 2;
            }
            enum "discard" {
              value 3;
            }
          }
          description
            "Action for restrict protected source feature.";
        }
    
        typedef protected-src-mac-violation-df-action {
          type enumeration {
            enum "discard" {
              value 1;
            }
          }
          description
            "Action for restrict protected source feature.";
        }
    
        typedef ep-protected-src-mac-violation-action {
          type enumeration {
            enum "sdp-bind-oper-down" {
              value 1;
            }
            enum "alarm-only" {
              value 2;
            }
            enum "discard" {
              value 3;
            }
          }
          description
            "Action for restrict protected source feature.";
        }
    
        typedef group-interface-type {
          type enumeration {
            enum "plain" {
              value 1;
            }
            enum "lns" {
              value 2;
            }
            enum "wlan-gw" {
              value 3;
            }
            enum "gtp" {
              value 4;
            }
            enum "bonding" {
              value 5;
            }
          }
          description "Type of group-interface.";
        }
    
        typedef pbb-type {
          type enumeration {
            enum "b-vpls" {
              value 2;
            }
            enum "i-vpls" {
              value 3;
            }
          }
          description "Type of VPLS.";
        }
    
        typedef cookie-value {
          type string {
            length "18..23";
            pattern
              "(0x[0-9a-fA-F]{16})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){7})";
          }
          description
            "The eight byte value to identify L2TPv3 tunnel.";
        }
    
        typedef sap-lag-per-link-hash-class {
          type int32 {
            range "1..3";
          }
          description
            "The sap-lag-per-link-hash-class is the class of traffic which along
                 with the relative weight is used in the egress hashing on the
                 LAG.";
        }
    
        typedef sap-lag-per-link-hash-weight {
          type int32 {
            range "1..1024";
          }
          description
            "The sap-lag-per-link-hash-weight is the relative weight of the
                 traffic which along with the class is used in the egress hashing
                 on the LAG.";
        }
    
        typedef aii-type2-string {
          type string {
            pattern
              "([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):(((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))|([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])):([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])";
          }
          description
            "The aii-type2-string describes a combination of global-id:prefix:ac-id as
                 a string.
    
                 <global-id:prefix:ac-id> : <global-id>:<prefix>:<ac-id>
                      global-id           - 1..4294967295
                      prefix              - a.b.c.d|1..4294967295
                      ac-id               - 1..4294967295.";
        }
    
        typedef aii-all-types-string {
          type string {
            pattern
              "(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):(((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))|([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])):([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|((((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))|([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])))";
          }
          description
            "The aii-string describes a combination of global-id:prefix:ac-id as
                 a string for all AII type.
    
                 For aii-type 1, AII string will have following format:
                    <prefix> : <prefix>
                 For aii-type 2, AII string will have following format:
                    <global-id:prefix:ac-id> : <global-id>:<prefix>:<ac-id>
    
                 where
                      global-id           - 0..4294967295
                      prefix              - a.b.c.d|1..4294967295
                      ac-id               - 0..4294967295.";
        }
    
        typedef ipv6-prefix-lifetime {
          type union {
            type uint32 {
              range "1..4294967294";
            }
            type enumeration {
              enum "infinite" {
                value -1;
              }
            }
          }
          description
            "The time in seconds defined for IPv6 prefix.";
        }
    
        typedef vprn-bgp-evpn-mpls-rd {
          type union {
            type string {
              pattern
                "((((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))|(([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))";
            }
            type enumeration {
              enum "auto-rd" {
                value 1;
              }
            }
          }
          description
            "The VPRN route distinguisher is a 8-octet object as string.
    
                  <ip-addr:comm-val>|<2byte-asnumber:ext-comm-val>|
                  <4byte-asnumber:comm-val>
                  ip-addr        - a.b.c.d
                  comm-val       - [0..65535]
                  2byte-asnumber - [1..65535]
                  ext-comm-val   - [0..4294967295]
                  4byte-asnumber - [1..4294967295].";
        }
    
        typedef vprn-rd-state {
          type union {
            type string;
            type enumeration {
              enum "auto-rd" {
                value 1;
              }
            }
          }
          description
            "The VPRN route distinguisher is a 8-octet object as string.
    
                  <ip-addr:comm-val>|<2byte-asnumber:ext-comm-val>|
                  <4byte-asnumber:comm-val>
                  ip-addr        - a.b.c.d
                  comm-val       - [0..65535]
                  2byte-asnumber - [1..65535]
                  ext-comm-val   - [0..4294967295]
                  4byte-asnumber - [1..4294967295].";
        }
    
        typedef vpn-route-distinguisher-or-auto-rd {
          type union {
            type enumeration {
              enum "auto-rd" {
                value 1;
              }
            }
            type vpn-route-distinguisher;
          }
          description
            "The vpn-route-distinguisher-or-auto-rd defines either a
                 vpn-route-distinguisher or an enumeration indicating use of
                 automatically assigned route-distinguisher.";
        }
    
        typedef vpn-rd-or-auto-rd {
          type union {
            type string {
              pattern
                "((((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))|(([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))";
            }
            type enumeration {
              enum "auto-rd" {
                value 1;
              }
            }
          }
          description
            "The vpn-rd-or-auto-rd defines either a string representation
                 of a route-distinguisher or an enumeration indicating use of
                 an automatically assigned route-distinguisher.
    
                 The route-distinguisher is a 8-octet object as string.
    
                 <ip-addr:comm-val>|<2byte-asnumber:ext-comm-val>|<4byte-asnumber:comm-val>
                 ip-addr        - a.b.c.d
                 comm-val       - [0..65535]
                 2byte-asnumber - [1..65535]
                 ext-comm-val   - [0..4294967295]
                 4byte-asnumber - [1..4294967295].";
        }
    
        typedef dynamic-services-accounting-stats-type {
          type enumeration {
            enum "volume-time" {
              value 1;
            }
            enum "time" {
              value 2;
            }
          }
          description
            "The dynamic-services-accounting-stats-type is an enumerated integer
                 that describes the values used to identify the type of accounting
                 statistics gathered.";
        }
    
        typedef qtag-manipulation-info {
          type union {
            type int32 {
              range "0..4094";
            }
            type enumeration {
              enum "use-sap-svlan" {
                value -2;
              }
            }
          }
          description
            "Describes vlan identifier range as used with vlan translation.";
        }
    
        typedef ingress-vc-label {
          type uint32 {
            range "1..1048575";
          }
          description
            "Specify static MPLS VC label used by the far-end device.";
        }
    
        typedef egress-vc-label {
          type uint32 {
            range "16..1048575";
          }
          description
            "Specify static MPLS VC label used by this device.";
        }
    
        typedef revert-time {
          type union {
            type int32 {
              range "1..600";
            }
            type enumeration {
              enum "never" {
                value -1;
              }
              enum "immediate" {
                value 0;
              }
            }
          }
          units "seconds";
          description
            "Specify time to wait before reverting back to the primary
                 spoke-sdp defined on the service endpoint, after having
                 failed over to a backup spoke-sdp.";
        }
    
        typedef hold-time-active {
          type uint32 {
            range "1..60";
          }
          units "deciseconds";
          description
            "Specify amount of time to hold the active
                 state before going into the standby state when a local
                 MC-LAG SAP goes down.";
        }
    
        typedef vlan-vc-tag {
          type uint32 {
            range "0..4094";
          }
          description
            "Specify VLAN VC tag for the spoke SDP.";
        }
    
        typedef agg-rate-rate {
          type int64 {
            range "1..6400000000";
          }
          description
            "Specify maximum total rate of all egress queues in kbps.";
        }
    
        typedef sdp-delivery-type {
          type enumeration {
            enum "gre" {
              value 1;
            }
            enum "mpls" {
              value 2;
            }
            enum "l2tpv3" {
              value 4;
            }
            enum "gre-eth-bridged" {
              value 5;
            }
          }
          description
            "Specifies the type of delivery used by the SDP.";
        }
    
        typedef spb-fid {
          type int32 {
            range "1..4095";
          }
          description
            "The spb-fid indicates Shortest Path Bridging forwarding database
                 identifier.";
        }
    
        typedef sdp-precedence {
          type union {
            type uint32 {
              range "1..4";
            }
            type enumeration {
              enum "primary" {
                value 0;
              }
            }
          }
          description
            "The sdp-precedence data-type indicates precedence value for the SDP.";
        }
    
        typedef stp-link-type {
          type enumeration {
            enum "pt-pt" {
              value 0;
            }
            enum "shared" {
              value 1;
            }
          }
        }
    
        typedef stp-path-cost {
          type int32 {
            range "1..200000000";
          }
        }
    
        typedef stp-port-num {
          type int32 {
            range "1..2047";
          }
        }
    
        typedef limit-mac-move {
          type enumeration {
            enum "blockable" {
              value 1;
            }
            enum "non-blockable" {
              value 2;
            }
          }
        }
    
        typedef arp-reply-agent {
          type enumeration {
            enum "true" {
              value 2;
            }
            enum "with-subscr-ident" {
              value 3;
            }
          }
          description
            "The mode of operation of the ARP Reply Agent";
        }
    
        typedef policy-statement-name {
          type types-sros:named-item;
        }
    
        typedef bpdu-translation {
          type enumeration {
            enum "auto" {
              value 1;
            }
            enum "pvst" {
              value 3;
            }
            enum "stp" {
              value 4;
            }
            enum "pvst-rw" {
              value 5;
            }
            enum "auto-rw" {
              value 6;
            }
          }
          description
            "This textual convention is used to specify whether
                 received L2 Protocol Tunnel pdu's are translated
                 before being sent out on a port or sap.";
        }
    
        typedef sdp-bind-stp-priority {
          type int32 {
            range "0..255";
          }
          description
            "The stp-priority indicates the priority range for STP for the SDP bind.";
        }
    
        typedef stp-bpdu-encap {
          type enumeration {
            enum "dynamic" {
              value 1;
            }
            enum "dot1d" {
              value 2;
            }
            enum "pvst" {
              value 3;
            }
          }
          description
            "The stp-bpdu-encap indicates the encap type of the STP packet.";
        }
    
        typedef two-byte-value {
          type string {
            length "6";
            pattern
              "0x((0[1-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F])|([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))";
          }
          description "The two byte value.";
        }
    
        typedef max-mac-addr {
          type int32 {
            range "1..511999";
          }
          description
            "The max-mac-addr defines maximum number of learned and static
                 entries allowed.";
        }
    
        typedef resolve-status {
          type enumeration {
            enum "none" {
              value 0;
            }
            enum "filter" {
              value 1;
            }
            enum "any" {
              value 2;
            }
          }
          description
            "The TResolveStatus indicates resolution status of the tunnels.";
        }
    
        typedef etype-value {
          type string {
            length "5..6";
            pattern
              "0x(([1-9a-fA-F][0-9a-fA-F]{3})|(0[6-9a-fA-F][0-9a-fA-F]{2})|([6-9a-fA-F][0-9a-fA-F]{2}))";
          }
          description
            "The etype-value indicates e-type value as 0xXXYY.";
        }
    
        typedef one-byte-value {
          type string;
          description
            "The one-byte-value indicates value as 0xXX.";
        }
    
        typedef service-name {
          type string {
            length "1..64";
            pattern "(.*\\S.*)|()" {
              error-message
                "The given string must not be all spaces.";
            }
          }
          description
            "The service-name defines name assigned to the service.";
        }
    
        typedef customer-name {
          type string {
            length "1..64";
            pattern "(.*\\S.*)|()" {
              error-message
                "The given string must not be all spaces.";
            }
          }
          description
            "The customer-name defines name assigned to the customer.";
        }
    
        typedef pw-template-name {
          type string {
            length "1..64";
            pattern "(.*\\S.*)|()" {
              error-message
                "The given string must not be all spaces.";
            }
          }
          description
            "The pw-template-name defines name assigned to the pw-template.";
        }
    
        typedef vc-id {
          type uint32 {
            range "1..4294967295";
          }
          description
            "The 'vc-id' defines virtual circuit identifier.";
        }
    
        typedef vc-id-or-zero {
          type uint32 {
            range "0..4294967295";
          }
          description
            "The 'vc-id' defines virtual circuit identifier.";
        }
    
        typedef dhcp6-user-ident {
          type enumeration {
            enum "mac" {
              value 1;
            }
            enum "mac-interface-id" {
              value 2;
            }
          }
          description
            "Specifies how subscriber hosts are identified.";
        }
    
        typedef dhcp6-pd-managed-route-nh {
          type enumeration {
            enum "ipv4" {
              value 1;
            }
            enum "ipv6" {
              value 2;
            }
          }
          description
            "Specifies the pd-managed-route next-hop.";
        }
    
        typedef vxlan-vni {
          type uint32 {
            range "1..16777215";
          }
          description
            "Specifies VXLAN VNI range.";
        }
    
        typedef provisioned-sdp {
          type enumeration {
            enum "use" {
              value 1;
            }
            enum "prefer" {
              value 2;
            }
          }
          description "Type of provisioned SDP.";
        }
    
        typedef vpn-id-or-zero {
          type uint32 {
            range "0..2147483647";
          }
          description
            "A number used to identify a VPN. In general
                 each service corresponds to a single VPN, but
                 under some circumstances a VPN may be composed
                 of multiple services.";
        }
    
        typedef state-sdp-bind-id-or-zero {
          type string {
            length "3..16";
            pattern
              "([0-9]|[1-9][0-9]{1,3}|[1-2][0-9]{4}|3[0-1][0-9]{3}|32[0-6][0-9]{2}|327[0-5][0-9]|3276[0-7]):([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5])";
          }
          description
            "A Service Distribution Point (SDP) binding identification in the following format: <sdp-id>:<vc-id>.
                 sdp-id - [0..32767]
                 vc-id - [0..4294967295]";
        }
    
        typedef bgp-evpn-ac-eth-tag {
          type int32 {
            range "1..16777215";
          }
          description
            "Ethernet tag value of the BGP EVPN attachment circuit.";
        }
    
        typedef services-sap-queuing-type {
          type enumeration {
            enum "shared" {
              value 2;
            }
            enum "multipoint-shared" {
              value 3;
            }
          }
          description
            "The services sap ingress queuing type.";
        }
    
        typedef tdm-options-sig-pkts {
          type enumeration {
            enum "no-signalling-packets" {
              value 0;
            }
            enum "data-packets" {
              value 1;
            }
            enum "signalling-packets" {
              value 2;
            }
            enum "data-and-signalling-packets" {
              value 3;
            }
          }
          description
            "Encodes support for the cpipe circuit emulation (CE)
                 application signaling packets:
                 - 'no-signalling-packets' :
                   for a cpipe that does not use signalling packets.
                 - 'data-packets' :
                   for a cpipe carrying TDM data packets and expecting CE
                   application signalling packets in a separate cpipe.
                 - 'signalling-packets' :
                   for a cpipe carrying CE application signalling packets
                   with the data packets in a separate cpipe.
                 - 'data-and-signalling-packets' :
                   for a cpipe carrying TDM data and CE application
                   signalling on the same cpipe.";
        }
    
        typedef tdm-options-cas-trunk-framing {
          type enumeration {
            enum "no-cas" {
              value 0;
            }
            enum "e1-trunk" {
              value 1;
            }
            enum "t1-esf-trunk" {
              value 2;
            }
            enum "t1-sf-trunk" {
              value 3;
            }
          }
          description
            "Encodes the CEM SAPs CAS trunk framing type:
                 - 'no-cas' :
                   for all CEM SAPs except 'nxDS0WithCas'.
                 - 'e1-trunk' :
                   for a 'nxDS0WithCas' SAP with E1 trunk.
                 - 't1-esf-trunk' :
                   for a 'nxDS0WithCas' SAP with T1 ESF trunk.
                 - 't1-sf-trunk' :
                   for a 'nxDS0WithCas' SAP with T1 SF trunk.";
        }
    
        typedef ethernet-segment-id {
          type string {
            pattern
              "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})";
          }
          description
            "Ethernet Segment Identifier (ESI) as defined in IETF draft
                 BGP MPLS Based Ethernet VPN. ESI is a unique non-zero identifier that
                 identifies an Ethernet Segment. ESI is encoded as a ten octets integer
                 in line format with the most significant octet sent first.
                 The following two ESI values are reserved:
                     - ESI 0 denotes a single-homed CE.
                     - ESI {0xFF} (repeated 10 times) is known as MAX-ESI.
    
                 In a network with managed and not-managed CEs, the ESI has the
                 following format:
    
                              +---+---+---+---+---+---+---+---+---+---+
                              | T |          ESI Value                |
                              +---+---+---+---+---+---+---+---+---+---+
    
                  Where:
                  T (ESI Type) is a 1-octet field (most significant octet) that
                  specifies the format of the remaining nine octets (ESI Value).
                  ESI type can be one of the values 0x00-0x05.";
        }
    
        typedef ethernet-segment-id-mac-based {
          type string {
            pattern
              "(0x[0-9a-fA-F]{20})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){9})|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2}){9})";
          }
          description
            "Ethernet Segment Identifier (ESI) as defined in IETF draft
                 BGP MPLS Based Ethernet VPN. ESI is a unique non-zero identifier that
                 identifies an Ethernet Segment. ESI is encoded as a ten octets integer
                 in line format with the most significant octet sent first.
                 The following two ESI values are reserved:
                     - ESI 0 denotes a single-homed CE.
                     - ESI {0xFF} (repeated 10 times) is known as MAX-ESI.
    
                 In a network with managed and not-managed CEs, the ESI has the
                 following format:
    
                              +---+---+---+---+---+---+---+---+---+---+
                              | T |          ESI Value                |
                              +---+---+---+---+---+---+---+---+---+---+
    
                  Where:
                  T (ESI Type) is a 1-octet field (most significant octet) that
                  specifies the format of the remaining nine octets (ESI Value).
                  ESI type can be one of the values 0x00-0x05.";
        }
    
        typedef bmac-lsb {
          type string {
            pattern
              "((0x[0-9a-fA-F]{4})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}))|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2})))";
          }
          description
            "specifies the 16 least significant bits (lsb) which when combined with the 32 most significant bits of the PBB source-bmac in the associated service, forms the virtual backbone MAC address.";
        }
    
        typedef bmac-lsb-no-zero {
          type string {
            pattern
              "((0x[0-9a-fA-F]{4})|([0-9a-fA-F]{2}(:[0-9a-fA-F]{2}))|([0-9a-fA-F]{2}(-[0-9a-fA-F]{2})))";
          }
          description
            "specifies the 16 least significant bits (lsb) which when combined with the 32 most significant bits of the PBB source-bmac in the associated service, forms the virtual backbone MAC address.";
        }
    
        typedef ve-id {
          type int32 {
            range "1..65535";
          }
          description "VPLS edge identifier.";
        }
    
        typedef evi {
          type uint32 {
            range "1..16777215";
          }
          description
            "Range of EVPN identifiers.";
        }
    
        typedef bgp-evpn-force-vc-forwarding {
          type enumeration {
            enum "vlan" {
              value 1;
            }
          }
          description
            "Force VC forwarding options for BGP EVPN.";
        }
    
        typedef ecmp-value {
          type int32 {
            range "1..32";
          }
          description "Range of ECMP values.";
        }
    
        typedef failed-threshold {
          type union {
            type int32 {
              range "1..1000";
            }
            type enumeration {
              enum "all" {
                value -1;
              }
            }
          }
          description "Failed threshold range.";
        }
    
        typedef site-boot-timer {
          type int32 {
            range "0..600";
          }
          description
            "BGP multi homing site boot timer.";
        }
    
        typedef site-activation-timer {
          type int32 {
            range "0..100";
          }
          description
            "BGP multi homing site activation timer.";
        }
    
        typedef site-min-down-timer {
          type int32 {
            range "0..100";
          }
          description
            "BGP multi homing site minimum down timer.";
        }
    
        typedef ethernet-segment-vlan-range-encap {
          type union {
            type uint32 {
              range "0..4094";
            }
            type enumeration {
              enum "tag-*" {
                value 4095;
              }
            }
          }
          description
            "specifies the dot1q range value for virtual ethernet segments.";
        }
    
        typedef ethernet-segment-vlan-range-encap-with-null {
          type union {
            type uint32 {
              range "0..4094";
            }
            type enumeration {
              enum "tag-*" {
                value 4095;
              }
              enum "null" {
                value 32768;
              }
            }
          }
          description
            "specifies the dot1q range value for virtual ethernet segments.";
        }
    
        typedef mvpls-prune-state {
          type enumeration {
            enum "not-applicable" {
              value 1;
            }
            enum "not-pruned" {
              value 2;
            }
            enum "pruned" {
              value 3;
            }
          }
          description
            "Managed VPLS (mVPLS): state of a SAP or spoke-SDP in a
                 user VPLS (uVPLS).
                 - not-applicable :
                   the SAP or spoke SDP of a uVPLS is not managed by a SAP
                   or spoke SDP of a mVPLS.
                 - not-pruned:
                   the SAP or spoke SDP of a uVPLS is managed by a mVPLS,
                   but the link is not pruned.
                 -pruned
                   the SAP or spoke SDP of a uVPLS is managed by a mVPLS,
                   but the link is pruned as a result of an STP decision
                   taken in the STP instance running in the mVPLS.";
        }
    
        typedef msti-instance-or-zero {
          type uint32 {
            range "0..4094";
          }
          description
            "This data-type indicates all possible multiple spanning tree instances,
                 including the CIST (for which case the value '0' is
                 reserved).";
        }
    
        typedef sap-instance-status {
          type enumeration {
            enum "not-applicable" {
              value 1;
            }
            enum "complete" {
              value 2;
            }
            enum "in-progress" {
              value 3;
            }
            enum "failed" {
              value 4;
            }
          }
          description
            "The sap-instance-status data type is an enumerated integer
                 that indicates status of the SAP instantiating other SAPs
                 controlled by this SAP.";
        }
    
        typedef route-distinguisher-type {
          type enumeration {
            enum "none" {
              value 0;
            }
            enum "configured" {
              value 1;
            }
            enum "derived-vpls" {
              value 2;
            }
            enum "derived-evi" {
              value 3;
            }
            enum "auto" {
              value 4;
            }
            enum "default" {
              value 5;
            }
          }
          description
            "Type of route-distinguisher.";
        }
    
        typedef route-target-origin {
          type enumeration {
            enum "none" {
              value 0;
            }
            enum "configured" {
              value 1;
            }
            enum "derived-vpls" {
              value 2;
            }
            enum "derived-evi" {
              value 3;
            }
            enum "vsi" {
              value 4;
            }
          }
          description
            "Origin of route-target policy.";
        }
    
        typedef l2-sap-oper-flags {
          type bits {
            bit sap-admin-down {
              position 0;
            }
            bit svc-admin-down {
              position 1;
            }
            bit port-oper-down {
              position 3;
            }
            bit port-mtu-too-small {
              position 4;
            }
            bit l2-oper-down {
              position 5;
            }
            bit ingress-qos-mismatch {
              position 6;
            }
            bit egress-qos-mismatch {
              position 7;
            }
            bit relearn-limit-exceeded {
              position 8;
            }
            bit rec-prot-src-mac {
              position 9;
            }
            bit sub-if-admin-down {
              position 10;
            }
            bit sap-ipipe-no-ce-ip-addr {
              position 11;
            }
            bit reserved12 {
              position 12;
            }
            bit reserved13 {
              position 13;
            }
            bit sap-param-mismatch {
              position 14;
            }
            bit sap-cem-no-ecid-or-macaddr {
              position 15;
            }
            bit sap-standby-for-mcring {
              position 16;
            }
            bit sap-svc-mtu-too-small {
              position 17;
            }
            bit ingress-named-pool-mismatch {
              position 18;
            }
            bit egress-named-pool-mismatch {
              position 19;
            }
            bit ip-mirror-no-macaddr {
              position 20;
            }
            bit sap-epipe-no-ring-node {
              position 21;
            }
            bit mc-standby {
              position 22;
            }
            bit mh-standby {
              position 23;
            }
            bit oam-down-mep-fault {
              position 24;
            }
            bit oam-up-mep-fault {
              position 25;
            }
            bit eth-tun-tag-misconfig {
              position 26;
            }
            bit ingress-policer-mismatch {
              position 27;
            }
            bit egress-policer-mismatch {
              position 28;
            }
            bit sap-tls-no-ring-node {
              position 29;
            }
            bit eth-ring-path-blocked {
              position 30;
            }
            bit oam-tunnel-mep-fault {
              position 31;
            }
            bit oper-grp-down {
              position 32;
            }
            bit port-bouncing {
              position 33;
            }
            bit sap-egress-hqos-mgmt-mismatch {
              position 34;
            }
            bit evpn-p2mp-conflict {
              position 35;
            }
            bit l2tpv3-tunnel-down {
              position 36;
            }
            bit label-stack-limit-exceeded {
              position 37;
            }
          }
          description
            "Layer-2 sap operational flags.";
        }
    
        typedef l3-sap-oper-flags {
          type bits {
            bit sap-admin-down {
              position 0;
            }
            bit svc-admin-down {
              position 1;
            }
            bit interface-admin-down {
              position 2;
            }
            bit port-oper-down {
              position 3;
            }
            bit port-mtu-too-small {
              position 4;
            }
            bit l2-oper-down {
              position 5;
            }
            bit ingress-qos-mismatch {
              position 6;
            }
            bit egress-qos-mismatch {
              position 7;
            }
            bit relearn-limit-exceeded {
              position 8;
            }
            bit rec-prot-src-mac {
              position 9;
            }
            bit sub-if-admin-down {
              position 10;
            }
            bit sap-ipipe-no-ce-ip-addr {
              position 11;
            }
            bit reserved12 {
              position 12;
            }
            bit reserved13 {
              position 13;
            }
            bit sap-param-mismatch {
              position 14;
            }
            bit sap-cem-no-ecid-or-macaddr {
              position 15;
            }
            bit sap-standby-for-mcring {
              position 16;
            }
            bit sap-svc-mtu-too-small {
              position 17;
            }
            bit ingress-named-pool-mismatch {
              position 18;
            }
            bit egress-named-pool-mismatch {
              position 19;
            }
            bit ip-mirror-no-macaddr {
              position 20;
            }
            bit sap-epipe-no-ring-node {
              position 21;
            }
            bit mc-standby {
              position 22;
            }
            bit mh-standby {
              position 23;
            }
            bit oam-down-mep-fault {
              position 24;
            }
            bit oam-up-mep-fault {
              position 25;
            }
            bit eth-tun-tag-misconfig {
              position 26;
            }
            bit ingress-policer-mismatch {
              position 27;
            }
            bit egress-policer-mismatch {
              position 28;
            }
            bit sap-tls-no-ring-node {
              position 29;
            }
            bit eth-ring-path-blocked {
              position 30;
            }
            bit oam-tunnel-mep-fault {
              position 31;
            }
            bit oper-grp-down {
              position 32;
            }
            bit port-bouncing {
              position 33;
            }
            bit sap-egress-hqos-mgmt-mismatch {
              position 34;
            }
            bit evpn-p2mp-conflict {
              position 35;
            }
            bit l2tpv3-tunnel-down {
              position 36;
            }
            bit label-stack-limit-exceeded {
              position 37;
            }
            bit sap-ing-qgrp-redir-mismatch {
              position 38;
            }
            bit sap-egr-qgrp-redir-mismatch {
              position 39;
            }
          }
          description
            "Layer-3 sap operational flags.";
        }
    
        typedef sap-max-rate-ovr {
          type union {
            type int64 {
              range "1..6400000000";
            }
            type enumeration {
              enum "max" {
                value -1;
              }
            }
          }
          description
            "Maximum frame based bandwidth limit.";
        }
    
        typedef sap-pir-rate-ovr {
          type union {
            type int64 {
              range "1..6400000000";
            }
            type enumeration {
              enum "max" {
                value -1;
              }
            }
          }
          description "Specify the PIR rate.";
        }
    
        typedef sap-cir-rate-ovr {
          type union {
            type int64 {
              range "0..6400000000";
            }
            type enumeration {
              enum "max" {
                value -1;
              }
            }
          }
          description "Specify the CIR rate.";
        }
    
        typedef li-interception-identifier {
          type uint32 {
            range "1..1073741823";
          }
          description
            "A 30-bit value that identifies a traffic flow being intercepted";
        }
    
        typedef li-interception-identifier-wide {
          type uint32 {
            range "1..4294967295";
          }
          description
            "A 32-bit value that identifies a traffic flow being intercepted";
        }
    
        typedef li-session-identifier {
          type uint32 {
            range "1..4294967295";
          }
          description
            "A 32-bit value that identifies a traffic flow session";
        }
    
        typedef mirror-source-port-lag-key {
          type types-sros:port-named;
          description "Port identifier.";
        }
    
        typedef keygroup-id {
          type uint32 {
            range "1..127";
          }
          description
            "A number used to identify an entry in the aluNgeKeygroupTable.";
        }
    
        typedef vlan-manipulation-ingress-action-type {
          type enumeration {
            enum "preserve" {
              value 1;
            }
            enum "push" {
              value 2;
            }
            enum "translate-1-to-1" {
              value 3;
            }
            enum "translate-2-to-1" {
              value 4;
            }
            enum "translate-2-to-2" {
              value 5;
            }
          }
          description
            "Describes action to take for VLAN tag manipulation at ingress.";
        }
    
        typedef vlan-manipulation-egress-action-type {
          type enumeration {
            enum "preserve" {
              value 1;
            }
            enum "push" {
              value 2;
            }
            enum "translate-1-to-1" {
              value 3;
            }
            enum "translate-1-to-2" {
              value 4;
            }
            enum "translate-2-to-2" {
              value 5;
            }
          }
          description
            "Describes action to take for VLAN tag manipulation at egress.";
        }
    
        typedef vlan-manipulate-ingress-vlan-type {
          type union {
            type int32 {
              range "0..4094";
            }
            type enumeration {
              enum "null" {
                value -1;
              }
            }
          }
          description
            "Describes VLAN identifier range to use with manipulation action at ingress.";
        }
    
        typedef vlan-manipulation-egress-vlan-type {
          type enumeration {
            enum "null" {
              value -1;
            }
            enum "use-sap-vlan" {
              value 1;
            }
          }
          description
            "Describes VLAN to use with manipulation action at egress.";
        }
    
        typedef epipe-sap-ethernet-llf-oper-status-type {
          type enumeration {
            enum "fault" {
              value 0;
            }
            enum "clear" {
              value 1;
            }
          }
        }
    
        typedef dist-cpu-prot-policer-state {
          type enumeration {
            enum "exceed" {
              value 1;
            }
            enum "conform" {
              value 2;
            }
          }
          description
            "The state of the policer for the Distributed CPU Protection Policy.";
        }
    
        typedef dist-cpu-prot-action-duration {
          type union {
            type int32 {
              range "1..10080";
            }
            type enumeration {
              enum "indefinite" {
                value -1;
              }
              enum "none" {
                value 0;
              }
            }
          }
          units "seconds";
          description
            "An exceed action rate in seconds for Distributed CPU Protection Policy
                 parameters determining hold-down duration for specified exceed-action.";
        }
    
        typedef cem-endpoint-type {
          type enumeration {
            enum "unstructured-e1" {
              value 1;
            }
            enum "unstructured-t1" {
              value 2;
            }
            enum "unstructured-e3" {
              value 3;
            }
            enum "unstructured-t3" {
              value 4;
            }
            enum "nx-ds0" {
              value 5;
            }
            enum "nx-ds0-with-cas" {
              value 6;
            }
          }
          description "CEM endpoint type";
        }
    
        typedef item-scope {
          type enumeration {
            enum "exclusive" {
              value 1;
            }
            enum "template" {
              value 2;
            }
          }
          description
            "This textual convention determines some aspects of an item's
                 behavior regarding creation and use, unused entry garbage collection,
                 and automated promulgation by Element Management System to
                 other systems in the service domain.
    
                 Item scope applies to SAP-ingress, SAP-egress, and Network policies,
                 and to IP filters and MAC filters.
    
                 exclusive:
    
                     When the scope of an item is defined as exclusive, the item can
                     only be applied once, for example to a single SAP.  Attempting
                     to assign the policy to a second SAP is not allowed and will
                     result in an error.  If the item is removed from the exclusive
                     SAP, it will become available for assignment to another
                     exclusive SAP.
    
                     A non-applied exclusive scope policy is a candidate to be removed
                     from the system by a TBD garbage collection command.
    
                     The system default policies cannot be put into the exclusive scope.
                     An error will be generated if scope exclusive is executed in
                     any policies with a policy-id equal to 1.
    
                 template:
    
                     When the scope of an item is defined as template, the item can be
                     applied any number of times.  Policies with template scope
                     will not be considered for deletion by a TBD garbage collection
                     command; all items of scope 'template' must be deleted explicitly.
    
                     The system default policies will always be scope template.
                     An error will occur if a policy-id 1 is attempted to be
                     set to scope exclusive.";
        }
    
        typedef entry-indicator {
          type uint32 {
            range "0..65535";
          }
          description
            "Uniquely identifies an entry in a policy or filter table. The
                 value 0 is not a valid entry-id. When used as insertion point
                 the value 0 indicates that entries must be inserted at the very
                 beginning, i.e.before the first entry defined.";
        }
    
        typedef entry-id {
          type entry-indicator {
            range "1..65535";
          }
          description
            "uniquely identifies an entry in a policy or filter table.
                 to facilitate insertion of entries in the tables, we recommend
                 assigning entry IDs by 10s:  10, 20, 30, etc. ";
        }
    
        typedef sbind-bfd-fail-action {
          type enumeration {
            enum "none" {
              value 0;
            }
            enum "down" {
              value 1;
            }
          }
          description
            "SDP bind BFD failure action";
        }
    
        typedef srv6-instance {
          type int32 {
            range "1..2";
          }
          description "SRv6 instance range";
        }
    
        typedef epipe-srv6-instance {
          type int32 {
            range "1";
          }
          description "SRv6 instance range";
        }
    
        typedef vpls-srv6-instance {
          type int32 {
            range "1";
          }
          description "SRv6 instance range";
        }
    
        typedef srv6-locator-function-value {
          type union {
            type int32 {
              range "1..1048575";
            }
            type enumeration {
              enum "dynamic" {
                value -1;
              }
            }
          }
          description
            "Segment routing v6 locator function value";
        }
    
        typedef bfd-oper-state {
          type enumeration {
            enum "unknown" {
              value 1;
            }
            enum "connected" {
              value 2;
            }
            enum "broken" {
              value 3;
            }
            enum "peer-detects-down" {
              value 4;
            }
            enum "not-configured" {
              value 5;
            }
            enum "no-resources" {
              value 6;
            }
          }
          description
            "The bfd-oper-state data type is an enumerated integer
                 that describes the values used to identify the operational state of
                 a BFD session the instance is relying upon for its fast triggering
                 mechanism.";
        }
    
        typedef multicast-forwarding-type {
          type enumeration {
            enum "none" {
              value 0;
            }
            enum "unicast" {
              value 1;
            }
            enum "broadcast-multicast" {
              value 2;
            }
            enum "broadcast-unicast-multicast" {
              value 3;
            }
            enum "multicast" {
              value 4;
            }
          }
          description
            "The multicast-forwarding-type indicates type of traffic";
        }
    
        typedef evpn-mh-es-status {
          type enumeration {
            enum "designated-forwarder" {
              value 1;
            }
            enum "non-designated-forwarder" {
              value 2;
            }
            enum "not-es-managed" {
              value 3;
            }
          }
          description
            "The evpn-mh-es-status is an enumerated integer that
                 describes the status of an ethernet segment associated with the given
                 SAP or SDP binding.";
        }
    
        typedef bridge-id {
          type binary {
            length "8";
          }
          description
            "The Bridge-Identifier used by the Spanning Tree
                 Protocol to uniquely identify a bridge. The first
                 two octets represent the bridge priority (in big
                 endian format) while the remaining six octets
                 represent the main MAC address of the bridge.";
        }
    
        typedef fdb-locale {
          type enumeration {
            enum "local" {
              value 1;
            }
            enum "sap" {
              value 2;
            }
            enum "sdp-bind" {
              value 3;
            }
            enum "unknown" {
              value 4;
            }
          }
          description
            "The fdb-locale data type is an enumerated integer that describes the
                 values used to indicate source of forwarding database (FDB) entry for
                 Shortest Path Bridging (SPB).";
        }
    
        typedef fdb-state {
          type enumeration {
            enum "ok" {
              value 0;
            }
            enum "add-modify-pending" {
              value 1;
            }
            enum "delete-pending" {
              value 2;
            }
            enum "system-fdb-limit" {
              value 3;
            }
            enum "no-fate-shared" {
              value 4;
            }
            enum "svc-fdb-limit" {
              value 5;
            }
            enum "no-unicast" {
              value 6;
            }
          }
          description
            "The fdb-state data type is an enumerated integer that describes the
                 values used to indicate state of the forwarding database FDB entry
                 for Shortest Path Bridging (SPB).";
        }
    
        typedef fdb-mac-type {
          type enumeration {
            enum "static" {
              value 1;
            }
            enum "learned" {
              value 2;
            }
            enum "oam" {
              value 3;
            }
            enum "dhcp" {
              value 4;
            }
            enum "host" {
              value 5;
            }
            enum "intf" {
              value 6;
            }
            enum "spb" {
              value 7;
            }
            enum "cond-static" {
              value 8;
            }
            enum "bgp-evpn" {
              value 9;
            }
            enum "bgp-evpn-static" {
              value 10;
            }
            enum "bgp-evpn-duplicate-detection" {
              value 11;
            }
            enum "eth-cfm" {
              value 12;
            }
          }
          description
            "The fdb-mac-type data type is an enumerated integer that describes the
                 values used to indicate method by which the MAC entry was added to the FDB.";
        }
    
        typedef vpls-fdb-locale {
          type enumeration {
            enum "sap" {
              value 1;
            }
            enum "sdp-bind" {
              value 2;
            }
            enum "cpm" {
              value 3;
            }
            enum "endpoint" {
              value 4;
            }
            enum "vxlan" {
              value 5;
            }
            enum "evpn-mpls" {
              value 6;
            }
            enum "blackhole" {
              value 7;
            }
            enum "srv6" {
              value 8;
            }
          }
          description
            "The vpls-fdb-locale data type is an enumerated integer that describes the
                 values used to indicate source of forwarding database (FDB) entry for VPLS service";
        }
    
        typedef spb-wait {
          type uint32 {
            range "10..120000";
          }
          units "milliseconds";
          description
            "SPB wait time in milliseconds.";
        }
    
        typedef spb-initial-wait {
          type uint32 {
            range "10..100000";
          }
          units "milliseconds";
          description
            "SPB initial wait time in milliseconds.";
        }
    
        typedef spb-second-wait {
          type uint32 {
            range "10..100000";
          }
          units "milliseconds";
          description
            "SPB second wait time in milliseconds.";
        }
    
        typedef domain-id {
          type string {
            pattern
              "(([0-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))|(([1-9]|[1-9][0-9]{1,8}|[1-3][0-9]{9}|4[0-1][0-9]{8}|42[0-8][0-9]{7}|429[0-3][0-9]{6}|4294[0-8][0-9]{5}|42949[0-5][0-9]{4}|429496[0-6][0-9]{3}|4294967[0-1][0-9]{2}|42949672[0-8][0-9]|429496729[0-5]):([0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{1,4}|6[0-4][0-9]{1,3}|65[0-4][0-9][0-9]|655[0-2][0-9]|6553[0-5]))";
          }
          description
            "The D-Path Domain Id is a 6-octet object as string.
    
                 <global-field:local-field>
                 global-field   - [0..4294967295]
                 local-field    - [0..65535].";
        }
    
        typedef spb-algorithm {
          type enumeration {
            enum "low-path-id" {
              value 0;
            }
            enum "high-path-id" {
              value 1;
            }
          }
          description "Type of SPB algorithm";
        }
    
        typedef ip-tunnel-oper-state {
          type enumeration {
            enum "unknown" {
              value 1;
            }
            enum "up" {
              value 2;
            }
            enum "down" {
              value 3;
            }
            enum "transition" {
              value 4;
            }
            enum "limited" {
              value 5;
            }
          }
          description
            "Oper-state specifies the IP Tunnel operational states.";
        }
    
        typedef oper-admin-state {
          type enumeration {
            enum "enable" {
              value 1;
            }
            enum "disable" {
              value 2;
            }
          }
          description
            "This type can be used on config false leafs to clone the state of some admin-state field";
        }
      }  // module nokia-types-services
    

© 2023 YumaWorks, Inc. All rights reserved.