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

   EXTREME-MPLS-MIB DEFINITIONS ::= BEGIN

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

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

     extremeAgent
         FROM EXTREME-BASE-MIB

     TruthValue, TimeStamp
        FROM SNMPv2-TC                     -- [RFC2579]

     SnmpAdminString
         FROM SNMP-FRAMEWORK-MIB           -- [RFC3411 </rfcs/rfc3411.html>]

     PwIndexType, PwOperStatusTC,
     PwStatus 
        FROM PW-TC-STD-MIB                 -- [PWTC]

     VPNIdOrZero
        FROM VPN-TC-STD-MIB                -- [RFC4265]

     InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB              -- [RFC4001]

--         IndexInteger,
--         IndexIntegerNextFree
--             FROM DIFFSERV-MIB
                                            --  [RFC3289]               

     MplsTunnelIndex, MplsTunnelInstanceIndex,
     MplsExtendedTunnelId, MplsLdpIdentifier, 
     MplsLsrIdentifier
        FROM MPLS-TC-STD-MIB               -- [RFC3811]

     pwIndex
          FROM PW-STD-MIB                    -- [PWMIB]

     MplsIndexType
          FROM MPLS-LSR-STD-MIB              -- [RFC3813]
  ;

    extremeMplsMIB MODULE-IDENTITY
        LAST-UPDATED "201006280000Z" -- June 28, 2010
        ORGANIZATION "Extreme Networks, Inc."
        CONTACT-INFO "www.extremenetworks.com"
        DESCRIPTION "Extreme extensions to mplsTeStdMIB"
    ::= { extremeAgent 37 }

  -- Notifications
   extremeMplsNotifications OBJECT IDENTIFIER ::= { extremeMplsMIB 0 }
                                
   extremeMplsScalars       OBJECT IDENTIFIER ::= { extremeMplsMIB 1 }

  -- DEFINED IN extremersvpmib.my
  -- extremeMplsTeMIB       MODULE-IDENTITY   ::= { extremeMplsMIB 2 }

   extremeVplsObjects       OBJECT IDENTIFIER ::= { extremeMplsMIB 3 }

   extremeL2VpnMplsNotificationHandler OBJECT IDENTIFIER ::= { extremeMplsMIB 4 }

   extremePwObjects         OBJECT IDENTIFIER ::= { extremeMplsMIB 5 }


IndexInteger ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
       "An integer which may be used as a table index."
    SYNTAX   Unsigned32 (1..4294967295)

  extremePwUpDownNotificationEnable  OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "If this object is set to true(1), then it enables
         the emission of pwUp and pwDown
         notifications; otherwise these notifications are not
         emitted."
     REFERENCE
        "See also [RFC3413] for explanation that
         notifications are under the ultimate control of the
         MIB module in this document."
     DEFVAL { true }
     ::= { extremeMplsScalars 5 }

  extremePwDeletedNotificationEnable  OBJECT-TYPE
     SYNTAX      TruthValue
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
        "If this object is set to true(1), then it enables the
         emission of pwDeleted notification; otherwise this
         notification is not emitted."
     REFERENCE
        "See also [RFC3413] for explanation that
         notifications are under the ultimate control of the
         MIB module in this document."
     DEFVAL { true }
     ::= { extremeMplsScalars 6 }

   extremePwNotificationMaxRate OBJECT-TYPE
      SYNTAX       Unsigned32
      MAX-ACCESS   read-write
      STATUS       current
      DESCRIPTION
           "This variable indicates the maximum number of
             notifications issued per second. If events occur
             more rapidly, the implementation may simply fail to
             emit these notifications during that period, or may
             queue them until an appropriate time. A value of 0
             means no throttling is applied and events may be
             notified at the rate at which they occur."
      DEFVAL       { 0 }
      ::= { extremeMplsScalars 7 }

   extremePwNotificationPwIndex OBJECT-TYPE
      SYNTAX       PwIndexType
      MAX-ACCESS   accessible-for-notify
      STATUS       current
      DESCRIPTION
           "This variable indicates the index of the pseudowire
	     that either went up, down, or was deleted as reported
	     by the corresponding notification.

	    To obtain further information regarding the pseudowire, 
	     the network administrator should look up the corresponding
	     pseudowire entry in pwTable (RFC 5601)."

      ::= { extremeMplsScalars 8 }

   extremePwNotificationPwOperStatus OBJECT-TYPE
      SYNTAX       PwOperStatusTC
      MAX-ACCESS   accessible-for-notify
      STATUS       current
      DESCRIPTION
           "This variable is used to report the value of pwOperStatus 
	     in pwTable (RFC 5601) associated with the pseudowire that
	     went up or down."
      ::= { extremeMplsScalars 9 }

   extremePwNotificationPeerAddrType OBJECT-TYPE
      SYNTAX       InetAddressType
      MAX-ACCESS   accessible-for-notify
      STATUS       current
      DESCRIPTION
           "Denotes the address type of the peer node."
      ::= { extremeMplsScalars 10 }

   extremePwNotificationPeerAddr OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    accessible-for-notify
     STATUS        current
     DESCRIPTION
          "This object contains the value of the peer node address."
     ::= { extremeMplsScalars 11 }

   extremeMplsNotifTunnelIndex OBJECT-TYPE
      SYNTAX        MplsTunnelIndex
      MAX-ACCESS    accessible-for-notify
      STATUS        current
      DESCRIPTION
           "Uniquely identifies a set of tunnel instances
             between a pair of ingress and egress LSRs.
	    Contains part of the index of a te tunnel that underwent
	     state change.
	    The same tunnel can also be looked up in the te mib."
      REFERENCE
           "1. RSVP-TE: Extensions to RSVP for LSP Tunnels,
             Awduche et al, RFC 3209 </rfcs/rfc3209.html>, December 2001
            2. Constraint-Based LSP Setup using LDP, Jamoussi
             (Editor), RFC 3212 </rfcs/rfc3212.html>, January 2002
            3. MPLS Traffic Engineering (TE) Management Information Base (MIB).
             http://www.faqs.org/rfcs/rfc3812.html."
     ::= { extremeMplsScalars 12 }

   extremeMplsNotifTunnelInstance OBJECT-TYPE
      SYNTAX        MplsTunnelInstanceIndex
      MAX-ACCESS    accessible-for-notify
      STATUS        current
      DESCRIPTION
           "Uniquely identifies a particular instance of a
             tunnel between a pair of ingress and egress LSRs."
     ::= { extremeMplsScalars 13 }


   extremeMplsNotifTunnelIngressLSRId OBJECT-TYPE
      SYNTAX        MplsExtendedTunnelId
      MAX-ACCESS    accessible-for-notify
      STATUS        current
      DESCRIPTION
           "Identity of the ingress LSR associated with this
             tunnel instance."
     ::= { extremeMplsScalars 14 }

   extremeMplsNotifTunnelEgressLSRId OBJECT-TYPE
      SYNTAX        MplsExtendedTunnelId
      MAX-ACCESS    accessible-for-notify
      STATUS        current
      DESCRIPTION
           "Identity of the egress LSR associated with this
             tunnel instance."
     ::= { extremeMplsScalars 15 }

   extremeMplsNotifTunnelAdminStatus OBJECT-TYPE
      SYNTAX     INTEGER {
                      up(1),
                      down(2)
                }
      MAX-ACCESS    accessible-for-notify
      STATUS        current
      DESCRIPTION
           "Reports the desired operational status of this tunnel."
     ::= { extremeMplsScalars 16 }

   extremeMplsNotifTunnelOperStatus OBJECT-TYPE
      SYNTAX     INTEGER {
                  -- ready to pass packets
                  up(1),
                  down(2),
                  -- in some test mode
                  testing(3),
                  -- status cannot be determined
                  unknown(4),
                  dormant(5),
                  -- some component is missing
                  notPresent(6),

                  -- down due to the state of
                  -- lower layer interfaces
                  lowerLayerDown(7)
                }
      MAX-ACCESS    accessible-for-notify
      STATUS        current
      DESCRIPTION
           "Reports the actual operational status of this
             tunnel, which is typically but not limited to, a
             function of the state of individual segments of
             this tunnel."
     ::= { extremeMplsScalars 17 }

      extremeMplsNotifLdpEntityLdpId OBJECT-TYPE
          SYNTAX      MplsLdpIdentifier
          MAX-ACCESS  accessible-for-notify
          STATUS      current
          DESCRIPTION
              "The LDP identifier. This is the primary index to identify
	        a row in the mplsLdpEntityTable (RFC 3815)."
         REFERENCE
             "1. RFC3036: LDP Specification, Section on LDP Identifiers.
	      2. RFC3815: Definitions of Managed Objects for the Multiprotocol
	         Label Switching (MPLS), Label Distribution Protocol (LDP)." 
         ::= { extremeMplsScalars 18 }

     extremeMplsNotifLdpEntityIndex OBJECT-TYPE
         SYNTAX      IndexInteger
         MAX-ACCESS  accessible-for-notify
         STATUS      current
         DESCRIPTION
             "This index is used as a secondary index to uniquely identify
	       a row in the mplsLdpEntityTable (RFC 3815).

              This object is meaningful to some but not all, LDP
	       implementations."
         ::= { extremeMplsScalars 19 }

     extremeMplsNotifLdpPeerLdpId OBJECT-TYPE
         SYNTAX      MplsLdpIdentifier
         MAX-ACCESS  accessible-for-notify
         STATUS      current
         DESCRIPTION
             "The LDP identifier of this LDP Peer."
         REFERENCE
             "1. RFC3036: LDP Specification, Section on LDP Identifiers.
	      2. RFC3815: Definitions of Managed Objects for LDP."
         ::= { extremeMplsScalars 20 }

     extremeMplsNotifLdpSessionState OBJECT-TYPE
         SYNTAX      INTEGER {
                        nonexistent(1),
                        initialized(2),
                        openrec(3),
                        opensent(4),
                        operational(5)
                     }
         MAX-ACCESS  accessible-for-notify
         STATUS      current
         DESCRIPTION
             "The current state of the session, all of the
             states 1 to 5 are based on the state machine
             for session negotiation behavior."
         REFERENCE
             "1. RFC3036: LDP Specification, Section 2.5.4, Initialization
		 State Machine.
	      2. RFC3815: Definitions of Managed Objects for LDP."
         ::= { extremeMplsScalars 21 }

     extremeMplsNotifLdpSessionDiscontinuityTime OBJECT-TYPE
         SYNTAX      TimeStamp
         MAX-ACCESS  accessible-for-notify
         STATUS      current
         DESCRIPTION
             "The initial value of this object is the value of
               sysUpTime when the entry was created in this table.

             Subsequent notifications report the time when the session
              between a given Entity and Peer goes away or a new session
              is established."
         REFERENCE
             "1. RFC3036: LDP Specification, Section 2.5.4, Initialization
		 State Machine.
	      2. RFC3815: Definitions of Managed Objects for LDP."
         ::= { extremeMplsScalars 22 }


     extremeVplsNotifConfigIndex OBJECT-TYPE
         SYNTAX      Unsigned32 (1.. 2147483647)
         MAX-ACCESS  accessible-for-notify
         STATUS      current
         DESCRIPTION
             "Unique index for the conceptual row identifying
               a VPLS service in the vplsConfigTable."
         REFERENCE
             "vplsGenericDraft01MIB: Generic managed object definitions
               for Virtual Private LAN Services as in [L2VPN-VPLS-LDP]
               and [L2VPN-VPLS-BGP]

               The L2VPN Working Group (email distribution l2vpn@ietf.org,
               http://www.ietf.org/html.charters/l2vpn-charter.html)"
         ::= { extremeMplsScalars 23 }


      extremeVplsNotifConfigVpnId OBJECT-TYPE
          SYNTAX          VPNIdOrZero
          MAX-ACCESS      accessible-for-notify
          STATUS          current
          DESCRIPTION
               "This objects indicates the IEEE 802-1990 VPN ID of the 
	         associated VPLS service.

		This object has the same value as vplsConfigVpnId in the
		 vplsConfigTable for an index value equal to
		 extremeVplsNotifConfigIndex sent in the notification."
          ::= { extremeMplsScalars 24 }

      extremeVplsNotifConfigAdminStatus OBJECT-TYPE
          SYNTAX          INTEGER {
                              up(1),
                              down(2),
                              testing(3)

                          }
          MAX-ACCESS      accessible-for-notify
          STATUS          current
          DESCRIPTION
               "The administrative state of the VPLS service.        

		This object has the same value as vplsConfigAdminStatus in the
		 vplsConfigTable for an index value equal to
		 extremeVplsNotifConfigIndex sent in the notification."
          ::= { extremeMplsScalars 25 }

      extremeVplsNotifStatusOperStatus OBJECT-TYPE
          SYNTAX          INTEGER {
                              up(1),
			      degraded(2),
                              down(3)
                          }
          MAX-ACCESS      accessible-for-notify
          STATUS          current
          DESCRIPTION
               "The current operational state of this VPLS Service.

		A value of up(1) indicates that all pseudo-wires for this  
		 vpls are up and the attachment circuit is up.

		A value of degraded(2) indicates that at least one
                 pseudo-wires for this vpls is up and the attachment circuit
	         is up.

		A value of down(3) indicates that all pseudo-wires for this  
		 vpls are down or the attachment circuit is down."
          ::= { extremeMplsScalars 26 }

   extremePwStatusChange NOTIFICATION-TYPE
     OBJECTS { extremePwNotificationPwIndex,
               extremePwNotificationPwOperStatus
     }
     STATUS  current
     DESCRIPTION
         "This notification is generated when the pwOperStatus
          object for a pseudowire transitions from up(1) to down(2)
          or from down(2) to up(1)."
     ::= { extremeMplsNotifications  1 }

  extremePwDeleted NOTIFICATION-TYPE
     OBJECTS { extremePwNotificationPwIndex,
               extremePwNotificationPeerAddrType,
               extremePwNotificationPeerAddr
     }
     STATUS  current
     DESCRIPTION
         "This notification is generated when a PW has been
          deleted."
     ::= { extremeMplsNotifications  2 }

   extremeMplsTunnelStatusChange NOTIFICATION-TYPE
     OBJECTS { extremeMplsNotifTunnelIndex,
               extremeMplsNotifTunnelInstance,
               extremeMplsNotifTunnelIngressLSRId,
               extremeMplsNotifTunnelEgressLSRId,
               extremeMplsNotifTunnelAdminStatus,
               extremeMplsNotifTunnelOperStatus
     }
     STATUS  current
     DESCRIPTION
         "This notification is generated when the mplsTunnelOperStatus
           object for a te-lsp transitions from up(1) to down(2)
           or from down(2) to up(1). This new state is indicated by the
           included value of mplsTunnelOperStatus."
     ::= { extremeMplsNotifications  3 }

     extremeMplsLdpSessionStatusChange NOTIFICATION-TYPE
          OBJECTS     {
		      	extremeMplsNotifLdpEntityLdpId,
                        extremeMplsNotifLdpEntityIndex,
		     	extremeMplsNotifLdpPeerLdpId,
			extremeMplsNotifLdpSessionState,
	     		extremeMplsNotifLdpSessionDiscontinuityTime
                      }
          STATUS      current
          DESCRIPTION
             "This notification is generated when the value of
              'mplsLdpSessionState' (rfc3815) enters or leaves the
              'operational(5)' state."
     ::= { extremeMplsNotifications  4 }

     extremeVplsStatusChange NOTIFICATION-TYPE
          OBJECTS     {
              		extremeVplsNotifConfigIndex,
              		extremeVplsNotifConfigVpnId,
              		extremeVplsNotifConfigAdminStatus,
              		extremeVplsNotifStatusOperStatus
                      }
          STATUS      current
          DESCRIPTION
               "This notification is generated to inform recepients of the
	        state of the Vpls.

		When all pseudowires in this Vpls are up or ready and the
		attachment circuit is up, extremeVplsNotifStatusOperStatus
	        is set to vplsOperStatusUp(1) in the notification.

		When at least one pseudowire in this Vpls is up or ready
		and the attachment circuit is up, extremeVplsNotifStatusOperStatus
		is set to vplsOperStatusDegraded(2) in the notification.

		When all pseudowires in this Vpls are down or the
		attachment circuit is down, extremeVplsNotifStatusOperStatus
		is set to vplsOperStatusDown(3) in the notification.

		Once a notification has been sent with vplsOperStatusDegraded(2),
		no further notification will be  sent untill
		extremeVplsNotifStatusOperStatus transitions to  
		vplsOperStatusUp(1) or vplsOperStatusDown(3)."

     REFERENCE
        "See also Extreme Networks Concepts Guide for a description of H-VPLS."
     ::= { extremeMplsNotifications  5 }

-- VPLS Config table
        
          extremeVplsConfigTable OBJECT-TYPE
                  SYNTAX          SEQUENCE OF ExtremeVplsConfigEntry
                  MAX-ACCESS      not-accessible
                  STATUS          current
                  DESCRIPTION
                       "This table specifies information for configuring
                        and monitoring Virtual Private Lan Services(VPLS).
                        "
                  REFERENCE
                       "VPLS-GENERIC-DRAFT-01-MIB  : Generic information 
                       for configuring and monitoring Virtual Private Lan 
                       Services (VPLS) " 
                  ::= { extremeVplsObjects 1 }

          extremeVplsConfigEntry OBJECT-TYPE
                  SYNTAX          ExtremeVplsConfigEntry
                  MAX-ACCESS      not-accessible
                  STATUS          current
                  DESCRIPTION
                   "A row in this table represents a Virtual Private Lan
                    Service(VPLS) in a packet network. It is indexed by
                    extremeVplsConfigIndex, which uniquely identifies a 
                    single VPLS.
                    "
                  INDEX           { extremeVplsConfigIndex }
                  ::= { extremeVplsConfigTable 1 }

         ExtremeVplsConfigEntry ::=
                SEQUENCE {
                         extremeVplsConfigIndex                                Unsigned32,
                         extremeVplsConfigRedunType                            INTEGER,
                         extremeVplsConfigEAPSStatus                           SnmpAdminString,
                         extremeVplsConfigESRPState                            SnmpAdminString
                 }

         extremeVplsConfigIndex  OBJECT-TYPE
                  SYNTAX          Unsigned32 (1.. 2147483647)
                  MAX-ACCESS      not-accessible
                  STATUS          current
                  DESCRIPTION
                       "Unique index for the conceptual row identifying
                        a VPLS service."
                  ::= { extremeVplsConfigEntry 1 }

        
         extremeVplsConfigRedunType OBJECT-TYPE   
                  SYNTAX        INTEGER {
                                  none  (0),
                                  esrp  (1),
                                  eaps  (2),
                                  stp   (3)
                                }  
                  MAX-ACCESS    read-only  
                  STATUS        current  
                  DESCRIPTION  
                       "This variable indicates the redundancy type for this vpls.
                        Redundacy states can be None, EAPS, ESRP and STP."
                  DEFVAL { none }
                  ::= { extremeVplsConfigEntry 2 }  

        extremeVplsConfigEAPSStatus OBJECT-TYPE   
                  SYNTAX        SnmpAdminString
                  MAX-ACCESS    read-only  
                  STATUS        current  
                  DESCRIPTION  
                       "This variable indicates the EAPS redundancy status for this vpls.
                        It displays Protected if the VLAN is protected, else Not Protected.
                        EAPS Status displays the following values
                        Waiting - if we are waiting on EAPS status
                        Connected - if EAPS ring status is connected to VLAN.
                                    PW will not be installed in this state.
                        Disconnected - if EAPS ring state is disconnected.
                                       PW will be installed in this state.
                        Unknown - if EAPS is not found 
                       "  
                  ::= { extremeVplsConfigEntry 3 } 
          
        extremeVplsConfigESRPState OBJECT-TYPE   
                  SYNTAX        SnmpAdminString
                  MAX-ACCESS    read-only  
                  STATUS        current  
                  DESCRIPTION  
                       "This variable indicates the ESRP redundancy state for this vpls.
                        ESRP states can have two values : Master and Slave
                        PW will only be installed when ESRP is in the Master state.
                        "  
                  ::= { extremeVplsConfigEntry 4 }   

  -- End of Vpls Config table
  
  -- VPLS Status table   
          extremeVplsStatusTable OBJECT-TYPE
                  SYNTAX          SEQUENCE OF ExtremeVplsStatusEntry
                  MAX-ACCESS      not-accessible
                  STATUS          current
                  DESCRIPTION
                       "This table specifies information for configuring
                        and monitoring Virtual Private Lan Services(VPLS).
                        "
                  REFERENCE
                       "VPLS-GENERIC-DRAFT-01-MIB  : Generic information 
                       for configuring and monitoring Virtual Private Lan 
                       Services (VPLS) " 
                  ::= { extremeVplsObjects 2 }

          extremeVplsStatusEntry OBJECT-TYPE
                  SYNTAX          ExtremeVplsStatusEntry
                  MAX-ACCESS      not-accessible
                  STATUS          current
                  DESCRIPTION
                   "A row in this table represents a Virtual Private Lan
                    Service(VPLS) in a packet network. It is indexed by
                    extremeVplsConfigIndex, which uniquely identifies a 
                    single VPLS.
                    "
                  INDEX           { extremeVplsStatusIndex }
                  ::= { extremeVplsStatusTable 1 }  

          ExtremeVplsStatusEntry ::=
                SEQUENCE {
                         extremeVplsStatusIndex                                Unsigned32,
                         extremeVplsOperStatus                                 INTEGER
                         }

          extremeVplsStatusIndex  OBJECT-TYPE
                  SYNTAX          Unsigned32 (1.. 2147483647)
                  MAX-ACCESS      not-accessible
                  STATUS          current
                  DESCRIPTION
                       "Unique index for the conceptual row identifying
                        a VPLS service."
                  ::= { extremeVplsStatusEntry 1 }

          extremeVplsOperStatus OBJECT-TYPE   
                  SYNTAX        INTEGER {
                                  up        (1),
                                  degraded  (2),
                                  down      (3)
                                }  
                  MAX-ACCESS    read-only
                  STATUS        current  
                  DESCRIPTION  
                       "This variable indicates the vpls operation Status. This is a special
                       status provided which has values up,down and degraded. This is different
                       from the vpls pw status shown in the standard mib.
                       Up - all PWs are in the Up or Ready state.
                       Degraded - Atleast one PW is in the Up or Ready state.
                       Down - None of the PWs are in Up or Ready state."  
                  ::= { extremeVplsStatusEntry 2 }  
 -- End of table

  -- VPLS Peer table 
        
          extremeVplsPeerTable OBJECT-TYPE
                 SYNTAX        SEQUENCE OF ExtremeVplsPeerEntry
                 MAX-ACCESS    not-accessible
                 STATUS        current
                 DESCRIPTION   
                                  "This table provides information for monitoring
                Virtual Private Lan Services(VPLS) Peer Entries."      
                REFERENCE
                       "PW-STD-MIB  : Information 
                       for configuring and monitoring Virtual Private Lan 
                       Services (VPLS) Peer Entries"        
          ::= { extremeVplsObjects 3 }

          extremeVplsPeerEntry OBJECT-TYPE
                  SYNTAX          ExtremeVplsPeerEntry
                  MAX-ACCESS      not-accessible
                  STATUS          current
                  DESCRIPTION
                    "This entry contains information of all the peers belonging
                    to a particular VPLS "
                  INDEX           { extremeVplsIndex,  extremeVplsPwBindIndex }
                  ::= { extremeVplsPeerTable 1 }
        
             ExtremeVplsPeerEntry ::=
                SEQUENCE {
                 extremeVplsIndex                            Unsigned32,
                 extremeVplsPwBindIndex                      PwIndexType,
                 extremePwInstalled                          TruthValue,
                 extremePwMode                               INTEGER,
                 extremePwConfiguredRole                     INTEGER
                 
             }

          extremeVplsIndex  OBJECT-TYPE
                  SYNTAX          Unsigned32 (1.. 2147483647)
                  MAX-ACCESS      not-accessible
                  STATUS          current
                  DESCRIPTION
                       "Unique index for the conceptual row identifying
                        a VPLS service."
            ::= { extremeVplsPeerEntry 1 }

          extremeVplsPwBindIndex        OBJECT-TYPE
                   SYNTAX        PwIndexType
                   MAX-ACCESS    not-accessible
                   STATUS        current
                   DESCRIPTION
                      "Secondary Index for the conceptual row identifying
                       a pseudowire within the PwEntry which MUST
                       match an entry from the PW-STD-MIB's PwTable
                       which represents an already-provisioned
                       pseuwowire that is then associated with this
                       VPLS instance."
            ::= { extremeVplsPeerEntry 2 }

          extremePwInstalled OBJECT-TYPE
                 SYNTAX        INTEGER {
                                  false  (0),
                                  true   (1)
                               }
                 MAX-ACCESS    read-only
                 STATUS        current
                 DESCRIPTION
                               "Boolean true or false indicating if PW is installed"
           ::= { extremeVplsPeerEntry 3 }

         extremePwMode OBJECT-TYPE   
                  SYNTAX        INTEGER {
                                  coretocore  (1),
                                  coretospoke (2),
                                  spoketocore (3)
                                }  
                  MAX-ACCESS    read-only  
                  STATUS        current  
                  DESCRIPTION  
                       "The peer mode of this pw. It indicates its current mode and the mode of 
                       the switch it is connected to. It can have the following values :
                       Core-to-core, Core-to-Spoke and Spoke-to-Core."  
           ::= { extremeVplsPeerEntry 4 }

         extremePwConfiguredRole OBJECT-TYPE   
                  SYNTAX        INTEGER {
                                  primary        (1),
                                  secondary      (2),
                                  notApplicable  (3)
                                }  
                  MAX-ACCESS    read-only  
                  STATUS        current  
                  DESCRIPTION  
                       "The configured role of this pw. It applies only in the case the PWMode is
                       Core-to-core. In this case, the configured role can either be Primary or 
                       Secondary. For all the other PW modes, the configured role does not apply."  
                  DEFVAL          { notApplicable }
           ::= { extremeVplsPeerEntry 5 }

         
     -- End of Vpls Peer table

   -- Enable/Disable L2VPN/MPLS trap 

           extremeMPLSTrapsEnable OBJECT-TYPE
                 SYNTAX      INTEGER {
                                enabled  (1),
                                disabled (2)
                             }
                 MAX-ACCESS  read-write
                 STATUS      current
                 DESCRIPTION
                     "Mpls Trap status. If enabled then all the mpls related traps will be sent out."
                 ::= { extremeL2VpnMplsNotificationHandler 1 }

           extremeL2VpnTrapsEnable OBJECT-TYPE
                 SYNTAX      INTEGER {
                                enabled  (1),
                                disabled (2)
                             }
                 MAX-ACCESS  read-write
                 STATUS      current
                 DESCRIPTION
                     "L2Vpn Trap status. If enabled then all the l2vpn related traps will be sent out."
                 ::= { extremeL2VpnMplsNotificationHandler 2 }


   -- Extreme PW performance table 
   extremePwPerfTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF ExtremePwPerfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This table provides per-PW performance information."

      ::= { extremePwObjects 1 }

   extremePwPerfEntry OBJECT-TYPE
      SYNTAX        ExtremePwPerfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table is created by the agent for
           every PW."

      INDEX { pwIndex }
      ::= { extremePwPerfTable 1 }

   ExtremePwPerfEntry ::= SEQUENCE {
        pwPerfInPackets            Counter32,
        pwPerfInBytes              Counter32,
        pwPerfOutPackets           Counter32,
        pwPerfOutBytes             Counter32,
        pwPerfInHCPackets          Counter64,
        pwPerfInHCBytes            Counter64,
        pwPerfOutHCPackets         Counter64,
        pwPerfOutHCBytes           Counter64         
      }

   pwPerfInPackets OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "The counter for the total number of packets received 
            by the PW (from the PSN). This is the 32-bit value of 
            the least significant part of the 64-bit value 
            pwPerfInHCPackets."
      ::= { extremePwPerfEntry 1 }

    pwPerfInBytes OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "The counter for the total number of bytes received 
            by the PW (from the PSN). This is the 32-bit value of 
            the least significant part of the 64-bit value  
            pwPerfInHCBytes."
      ::= { extremePwPerfEntry 2 }

   pwPerfOutPackets OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "The counter for the total number of packets forwarded 
            by the PW (to the PSN). This is the 32-bit value of 
            the least significant part of the 64-bit value  
            pwPerfOutHCPackets."
      ::= { extremePwPerfEntry 3 }

    pwPerfOutBytes OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "The counter for the total number of bytes forwarded 
            by the PW (to the PSN). This is the 32-bit value of 
            the least significant part of the 64-bit value 
            pwPerfOutHCBytes."
      ::= { extremePwPerfEntry 4 }

     pwPerfInHCPackets OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "High-capacity counter for the total number of packets
           received by the PW (from the PSN)."
      ::= { extremePwPerfEntry 5 }

    pwPerfInHCBytes OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "High-capacity counter for the total number of bytes
           received by the PW (from the PSN)."
      ::= { extremePwPerfEntry 6 }

   pwPerfOutHCPackets OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "High-capacity counter for the total number of packets 
            forwarded by the PW (to the PSN)."
      ::= { extremePwPerfEntry 7 }

    pwPerfOutHCBytes OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "High-capacity counter for the total number of bytes 
            forwarded by the PW (to the PSN)."
      ::= { extremePwPerfEntry 8 }

   -- end of Extreme PW performance table 

-- Extreme PW LSP Mapping table 

   extremePwLspOutboundMappingTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF ExtremePwLspOutboundMappingEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This table provides mappings between PW and LSP  
           outbound tunnels."

      ::= { extremePwObjects 2 }

   extremePwLspOutboundMappingEntry OBJECT-TYPE
      SYNTAX        ExtremePwLspOutboundMappingEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table is created by the agent for
           each LSP in-use by a PW."

      INDEX {  pwIndex,
               lspIndex
            }
      ::= { extremePwLspOutboundMappingTable 1 }

   ExtremePwLspOutboundMappingEntry ::= SEQUENCE {
         lspIndex                          Unsigned32,
         pwLspOutboundLsrXcIndex           MplsIndexType,
         pwLspOutboundTunnelIndex          MplsTunnelIndex,
         pwLspOutboundTunnelInstance       MplsTunnelInstanceIndex,
         pwLspOutboundTunnelLclLSR         MplsLsrIdentifier,
         pwLspOutboundTunnelPeerLSR        MplsLsrIdentifier,
         pwLspOutboundTunnelTypeInUse      INTEGER
      }

   lspIndex OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "The second index for the table. It contains 
           the unique id assigned to a tunnel used by the PW."
      ::= { extremePwLspOutboundMappingEntry 1 }

    pwLspOutboundLsrXcIndex      OBJECT-TYPE
      SYNTAX        MplsIndexType
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
          "This object is applicable if pwLspOutboundTunnelTypeInUse 
           is mplsNonTe(2), and MUST return a value of zero otherwise. 
           If the outer tunnel is signaled, it indicates the XC index 
           in the MPLS-LSR-STD-MIB of the outer tunnel toward the peer. 
           Otherwise if tunnel is set up manually, it indicates 
           the XC index of the manually created outer tunnel."
      ::= { extremePwLspOutboundMappingEntry 2 }


   pwLspOutboundTunnelIndex         OBJECT-TYPE
      SYNTAX        MplsTunnelIndex
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
          "This object is applicable if pwLspOutboundTunnelTypeInUse 
           is mplsTe(1), and MUST return a value of zero otherwise."
      ::= { extremePwLspOutboundMappingEntry 3 }

   pwLspOutboundTunnelInstance      OBJECT-TYPE
      SYNTAX        MplsTunnelInstanceIndex
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
          "This object is applicable if pwLspOutboundTunnelTypeInUse 
           is mplsTe(1), and MUST return a value of zero otherwise."
      ::= { extremePwLspOutboundMappingEntry 4 }

   pwLspOutboundTunnelLclLSR        OBJECT-TYPE
      SYNTAX        MplsLsrIdentifier
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
          "This object is applicable if pwLspOutboundTunnelTypeInUse 
           is mplsTe(1), and MUST return a value of all zeros otherwise."
      ::= { extremePwLspOutboundMappingEntry 5 }

   pwLspOutboundTunnelPeerLSR       OBJECT-TYPE
      SYNTAX        MplsLsrIdentifier
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
          "This object is applicable if pwLspOutboundTunnelTypeInUse 
           is mplsTe(1), and MUST return a value of zero otherwise."
      ::= { extremePwLspOutboundMappingEntry 6 }

   pwLspOutboundTunnelTypeInUse OBJECT-TYPE
      SYNTAX         INTEGER {
                     mplsTe      (1),
                     mplsNonTe   (2)
      }
      MAX-ACCESS     read-only
      STATUS         current
      DESCRIPTION
          "This object indicates the current tunnel that is carrying
           the PW traffic."
      ::= { extremePwLspOutboundMappingEntry 7 }

   -- end of Extreme PW LSP Mapping table

   -- Extreme PW LSP performance table 

   extremePwLspPerfTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF ExtremePwLspPerfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This table provides performance information for each LSP 
           in-use by a PW."

      ::= { extremePwObjects 3 }

   extremePwLspPerfEntry OBJECT-TYPE
      SYNTAX        ExtremePwLspPerfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table is created by the agent for
           each LSP in-use by a PW."

      INDEX {  pwIndex,
               lspIndex
            }
      ::= { extremePwLspPerfTable 1 }

   ExtremePwLspPerfEntry ::= SEQUENCE {
        pwLspPerfOutPackets            Counter32,
        pwLspPerfOutBytes              Counter32,
        pwLspPerfOutHCPackets          Counter64,
        pwLspPerfOutHCBytes            Counter64
      }

   pwLspPerfOutPackets OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "The counter for the number of packets forwarded 
            by the LSP for the given PW (to the PSN). This is 
            the 32-bit value of the least significant part of 
            the 64-bit value pwLspPerfOutHCPackets."
      ::= { extremePwLspPerfEntry 1 }

    pwLspPerfOutBytes OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "The counter for the number of bytes forwarded 
            by the LSP for the given PW (to the PSN). This is 
            the 32-bit value of the least significant part of 
            the 64-bit value pwLspPerfOutHCBytes."
      ::= { extremePwLspPerfEntry 2 }

    pwLspPerfOutHCPackets OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "High-capacity counter for the number of packets forwarded 
            by the LSP for the given PW (to the PSN)."
      ::= { extremePwLspPerfEntry 3 }

    pwLspPerfOutHCBytes OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
            "High-capacity counter for the number of bytes forwarded 
            by the LSP for the given PW (to the PSN)."
      ::= { extremePwLspPerfEntry 4 }

   -- end of Extreme PW LSP performance table 

    extremePwNotificationLspIndex OBJECT-TYPE
      SYNTAX       Unsigned32
      MAX-ACCESS   accessible-for-notify
      STATUS       current
      DESCRIPTION
           "This variable indicates the index of the LSP
	     that was added to or deleted from a given PW as reported
	     by the corresponding notification."

      ::= { extremeMplsScalars 27 }

   extremePwLspAdded NOTIFICATION-TYPE
     OBJECTS { extremePwNotificationPwIndex,
               extremePwNotificationLspIndex
     }
     STATUS  current
     DESCRIPTION
         "This notification is generated when an entry is added to the  
          extremePwLspOutboundMappingTable table and the extremePwLspPerfTable 
          table."
     ::= { extremeMplsNotifications  6 }

   extremePwLspDeleted NOTIFICATION-TYPE
     OBJECTS { extremePwNotificationPwIndex,
               extremePwNotificationLspIndex
     }
     STATUS  current
     DESCRIPTION
         "This notification is generated when an entry is deleted from the  
          extremePwLspOutboundMappingTable table and the extremePwLspPerfTable 
          table."
     ::= { extremeMplsNotifications  7 }


END
