-- ################################################################################

   EXTREME-MPLS-TE-MIB DEFINITIONS ::= BEGIN

   IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE
         FROM SNMPv2-SMI                   -- [RFC2578]

      MODULE-COMPLIANCE, OBJECT-GROUP
         FROM SNMPv2-CONF                  -- [RFC2580]

      extremeMplsMIB
          FROM EXTREME-MPLS-MIB

      mplsTunnelIndex, mplsTunnelInstance, mplsTunnelIngressLSRId,
      mplsTunnelEgressLSRId
          FROM MPLS-TE-STD-MIB                  -- [RFC3812]

   ;

    extremeMplsTeMIB MODULE-IDENTITY
        LAST-UPDATED "200907040000Z" -- July 4, 2009
        ORGANIZATION "Extreme Networks, Inc."
        CONTACT-INFO "www.extremenetworks.com"
        DESCRIPTION "Extreme extensions to mplsTeStdMIB"
    ::= { extremeMplsMIB 2 }

   extremeMplsTeScalars       OBJECT IDENTIFIER ::= { extremeMplsTeMIB 1 } -- none yet
   extremeMplsTeObjects       OBJECT IDENTIFIER ::= { extremeMplsTeMIB 2 }
   -- conformance
   extremeMplsTeConformance   OBJECT IDENTIFIER ::= { extremeMplsTeMIB 3 }

   extremeMplsTunnelTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF ExtremeMplsTunnelEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "The mplsTunnelTable (see RFC 3812) allows new MPLS tunnels
             to be created between an LSR and a remote endpoint, and
             existing tunnels to be reconfigured or removed.
             Note that only point-to-point tunnel segments are
             supported, although multipoint-to-point and point-
             to-multipoint connections are supported by an LSR
             acting as a cross-connect.  Each MPLS tunnel can
             thus have one out-segment originating at this LSR
             and/or one in-segment terminating at this LSR.

             Extreme Networks MPLS implementation allows tunnel instances
             with a common endpoint to be grouped at the ingress LSR to
             provide redundancy. The role of each tunnel in the group must
             be configured and is indicated by extremeMplsTunnelRedundancyType.
             The failover to a redundant tunnel is implementation dependent."

      ::= { extremeMplsTeObjects 1 }

   extremeMplsTunnelEntry OBJECT-TYPE
      SYNTAX        ExtremeMplsTunnelEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table represents an extension to an MPLS tunnel
             reported in the mplsTunnelTable (see RFC 3812). An entry can be
             created by a network administrator or by an SNMP agent as
             instructed by an MPLS signalling protocol.

            An entry in this table displays an ingress tunnel only since
             the tunnel type is a configured value at the local node and
             is not exchanged by the signalling protocol."

      INDEX {  mplsTunnelIndex,
               mplsTunnelInstance,
               mplsTunnelIngressLSRId,
               mplsTunnelEgressLSRId
            }
      ::= { extremeMplsTunnelTable 1 }

   ExtremeMplsTunnelEntry ::= SEQUENCE {
        mplsTunnelRedundancyType         INTEGER,
        mplsTunnelRedundancyStatus       INTEGER,
        mplsTunnelTransportStatus        BITS
      }

   mplsTunnelRedundancyType OBJECT-TYPE
      SYNTAX   INTEGER {
                primary      (1),
                secondary    (2)
               }

      MAX-ACCESS    read-write
      STATUS        current
      DESCRIPTION
           "Identifies the tunnel redundancy type associated with this
             tunnel instance. A value of primary(1) or secondary(2)
             MAY be assigned by the network administrator or by an
             SNMP manager at the time of setting up the tunnel."

      DEFVAL { primary }
      ::= { extremeMplsTunnelEntry 1 }

   mplsTunnelRedundancyStatus OBJECT-TYPE
      SYNTAX   INTEGER {
                active     (1),
                standby    (2)
               }

      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Indicates the actual redundancy status of this tunnel. When
             the status is active, the tunnel is the preferred tunnel
             in the group."
      ::= { extremeMplsTunnelEntry 2 }

   mplsTunnelTransportStatus OBJECT-TYPE
      SYNTAX   BITS  {
                allowAllIp                 (0),
                allowAssignedIpOnly        (1),
                allowAllLayer2Vpn          (2),
                allowAsignedLayer2VpnOnly  (3)
            }
      MAX-ACCESS    read-write
      STATUS        current
      DESCRIPTION
           "Indicates the type of traffic the tunnel group can be used for
             sending.
 
            When the allowAllIp(0) bit is set, IP traffic destined for 
             all IPv4 routes will be allowed over any tunnel in the group 
             marked active.
 
            When the allowAssignedIpOnly(1) bit is set, IP traffic
             destined only for IPv4 static routes that have been explicitly
             configured to use this tunnel group will be allowed.
 
            When the allowAllLayer2Vpn(2) bit is set, layer 2 VPN traffic
             for all layer 2 VPNs will be allowed over any tunnel in the 
             group marked active.
 
            When the allowAssignedLayer2VpnOnly(3) bit is set, layer 2 VPN 
             traffic destined only for pseudo-wires that have been explicitly 
             configured to use this tunnel group will be allowed."
       ::= { extremeMplsTunnelEntry 3 }
END
