LUM-PW-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32, Counter64
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    DisplayString, DateAndTime, RowStatus
        FROM SNMPv2-TC
    lumModules, lumPwMIB
        FROM LUM-REG
    MplsLabel, PortNumber
    		FROM LUM-TC
    MgmtNameString, CommandString
        FROM LUM-TC;

lumPwMIBModule MODULE-IDENTITY
    LAST-UPDATED
        "201706150000Z" -- June 15th 2017
    ORGANIZATION
        "Infinera Corporation"
    CONTACT-INFO
        "techsupport@infinera.com"
    DESCRIPTION
        "The MIB module for management of Pseudowires.

         The tables contained in this MIB are:

         (1) The General group contains some general attributes as time stamps
             and tables sizes.

         (2) The generic table contains generic information and configuration
             applicable to all types of pseudowires. All created pseudowires
             will be represented by an entry in this table.

         (3) The MPLS table contains MPLS specific information and
             configuration. A pseudowire configured to run over a MPLS packet switched
             network will be represented by an entry in this table.

         (4) The Ethernet table contains specific information and configuration
             for all pseudowires configured to carry Ethernet traffic. An
             Ethernet pseudowire will be represented by one entry in this table.

         (5) The multi-segment pseudowire table contains specific information
             and configuration for all multi-segment pseudowires. A multi-segment
             pseudowire will be represented by on entry in this table.

             Generic table is used for all pseudowires. MPLS table and Ethernet table are
             only used for edge pseudowire, while multi-segment table is specifically used
             for multi-segment pseudowire.
"
    REVISION
        "201706150000Z" -- June 15th 2017
    DESCRIPTION
        "Changes made for release r29.0:
         - Changed ORGANIZATION and CONTACT-INFO"
    REVISION
        "201611300000Z" -- November 30th 2016
    DESCRIPTION
        "Changes made for release r28.0:
        - Added pwEnetIfNo, pwEnetTxPort, pwEnetInterfaceName, pwGenericPwNumber, pwGenericConfigurationSet
        - Added pwGenericFlowLabel"
    REVISION
        "201212200000Z" -- December 20th 2012
    DESCRIPTION
        "- Added multi-segment pseudowire table.
         - Added classification object to enet pseudowire.
         - Added traffic class to pseudowire"
    REVISION
        "201112200000Z" -- December 20th 2011
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 41 }


-- ----------------------------------------------------
-- Conformance area, containing groups and compliance
-- specifications.
-- ----------------------------------------------------

lumPwConfs OBJECT IDENTIFIER ::= { lumPwMIB 1 }
lumPwGroups OBJECT IDENTIFIER ::= { lumPwConfs 1 }
lumPwCompl OBJECT IDENTIFIER ::= { lumPwConfs 2 }


-- ----------------------------------------------------
-- Root for objects in the pw MIB
-- ----------------------------------------------------

lumPwMIBObjects OBJECT IDENTIFIER ::= { lumPwMIB 2 }


-- ----------------------------------------------------
-- This MIB contains the following groups:
-- ----------------------------------------------------

pwGeneral OBJECT IDENTIFIER ::= { lumPwMIBObjects 1 }
pwGenericList OBJECT IDENTIFIER ::= { lumPwMIBObjects 2 }
pwMplsList OBJECT IDENTIFIER ::= { lumPwMIBObjects 3 }
pwEnetList OBJECT IDENTIFIER ::= { lumPwMIBObjects 4 }
pwMspwList OBJECT IDENTIFIER ::= { lumPwMIBObjects 5 }

-- ----------------------------------------------------
-- Textual Conventions
-- ----------------------------------------------------




-- ----------------------------------------------------
-- General group
-- ----------------------------------------------------

pwGeneralLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the configuration of the MIB was
        last changed.
"
    ::= { pwGeneral 1 }

pwGeneralStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state of the MIB was last
        changed.
"
    ::= { pwGeneral 2 }

pwGeneralPwGenericTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of generic pseudowire table
"
    ::= { pwGeneral 3 }

pwGeneralPwMplsTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of MPLS pseudowire table
"
    ::= { pwGeneral 4 }

pwGeneralPwEnetTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of Ethernet pseudowire table
"
    ::= { pwGeneral 5 }

pwGeneralPwMspwTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of multi-segment pseudowire table
"
    ::= { pwGeneral 6 }

-- ----------------------------------------------------
-- Generic PW table
-- ----------------------------------------------------

pwGenericTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF PwGenericEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The generic pseudowire list."
    ::= { pwGenericList 1 }

pwGenericEntry OBJECT-TYPE
    SYNTAX      PwGenericEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the generic pseudowire list.
        Each entry represents a pseudowire.
"
    INDEX { pwGenericIndex }
    ::= { pwGenericTable 1 }

PwGenericEntry ::=
    SEQUENCE {
        pwGenericIndex                       Unsigned32,
        pwGenericName                        MgmtNameString,
        pwGenericIdentifier                  DisplayString,
        pwGenericInternalReference           Unsigned32,
        pwGenericDescr                       DisplayString,
        pwGenericOutboundLabel               MplsLabel,
        pwGenericInboundLabel                MplsLabel,
        pwGenericInPackets                   Counter64,
        pwGenericInBytes                     Counter64,
        pwGenericOutPackets                  Counter64,
        pwGenericOutBytes                    Counter64,
        pwGenericResetCont                   INTEGER,
        pwGenericRowStatus                   RowStatus,
        pwGenericPwType                      INTEGER,
        pwGenericTrafficClass                INTEGER,
        pwGenericReservedBW                  Unsigned32,
        pwGenericPwNumber                    Unsigned32,
        pwGenericConfigurationSet            INTEGER,
        pwGenericFlowLabel                   INTEGER}

pwGenericIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry.
"
    ::= { pwGenericEntry 1 }

pwGenericName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the pseudowire, for example
        'pw:1:2:1-2', where the first number indicates
        subrack, the second slot number and the third/fourth
        are the port numbers.
"
    ::= { pwGenericEntry 2 }

pwGenericIdentifier OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Unique identifier used for referencing this object.
"
	DEFVAL { "" }
    ::= { pwGenericEntry 3 }

pwGenericInternalReference OBJECT-TYPE
    SYNTAX      Unsigned32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "For internal use only.
"
    DEFVAL { 0 }
    ::= { pwGenericEntry 4 }

pwGenericDescr OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "User configurable label for describing the pseudowire.
"
        DEFVAL { "" }
    ::= { pwGenericEntry 5 }

pwGenericOutboundLabel OBJECT-TYPE
    SYNTAX      MplsLabel
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The pseudowire label used in the outbound direction,
        Actual label range is 16-1048575, 0-15 is reserved.
        (i.e. towards the PSN)
        Only valid for edge pseudowire.
"
	    DEFVAL { 0 }
    ::= { pwGenericEntry 6 }

pwGenericInboundLabel OBJECT-TYPE
    SYNTAX      MplsLabel
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The pseudowire label used in the the inbound direction,
        Actual label range is 16-1048575, 0-15 is reserved.
        (i.e. from the PSN)
        Only valid for edge pseudowire.
"
	    DEFVAL { 0 }
    ::= { pwGenericEntry 7 }

pwGenericInPackets OBJECT-TYPE
     SYNTAX        Counter64
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "This value represents the number of frames received
         by this pseudowire since last reset of counters.
         Continuous (free running) pseudowire counter.
         Only valid for edge pseudowire.
"
        DEFVAL { 0 }
     ::= { pwGenericEntry 8 }

pwGenericInBytes OBJECT-TYPE

     SYNTAX        Counter64
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "This value represents the number of bytes received by
         this pseudowire since last reset of counters.
         Continuous (free running) pseudowire counter.
         Only valid for edge pseudowire.
"
        DEFVAL { 0 }
     ::= { pwGenericEntry 9 }

pwGenericOutPackets OBJECT-TYPE
     SYNTAX        Counter64
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "This value represents the number of frames sent by
         this pseudowire since last reset of counters.
         Continuous (free running) pseudowire counter.
         Only valid for edge pseudowire.
"
        DEFVAL { 0 }
     ::= { pwGenericEntry 10 }

pwGenericOutBytes OBJECT-TYPE
     SYNTAX        Counter64
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "This value represents the number of bytes sent by this
         pseudowire since last reset of counters.
         Continuous (free running) pseudowire counter.
         Only valid for edge pseudowire.
"
        DEFVAL { 0 }
     ::= { pwGenericEntry 11 }

pwGenericResetCont OBJECT-TYPE
    SYNTAX      INTEGER {
                    normal (1),
                    reset (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Reset the continuous (free running) pseudowire
        counters. After a successful reset the default value
        (normal) is restored in this action attribute.
        Only valid for edge pseudowire.
"
        DEFVAL { normal }
    ::= { pwGenericEntry 12 }

pwGenericRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Manages creation and deletion of conceptual rows via snmp.
        See also SNMPv2-TC.
        This object is only valid for creation and deletion of edge pseudowire.
        The corresponding MPLS pseudowire table and Ethernet pseudowire table
        will be created as well.

        Note: The newly created object will not necessarily
        receive the same index as used in the create
        procedure.
"
    ::= { pwGenericEntry 13 }

pwGenericPwType OBJECT-TYPE
    SYNTAX      INTEGER {
                    edge (1),
                    multiSeg (2) }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The type of pseudowire. Edge pseudowire spans a single
         segment between two PEs. The pseudowire label is unchanged
         between the originating and terminating PEs.
         Multi-segment pseudowire is a configured set of two pseudowire
         segments that behave and function as a single point-to-point pseudowire.
"
    DEFVAL { edge }
    ::= { pwGenericEntry 14 }

pwGenericTrafficClass OBJECT-TYPE
    SYNTAX      Integer32 (-1..7)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "
        The entry signifies the Traffic Class set on the traffic
        on entering the pseudowire. Setting the traffic class to -1 is not supported.
"
    DEFVAL { 4 }
    ::= { pwGenericEntry 15 }

pwGenericReservedBW  OBJECT-TYPE
     SYNTAX      Unsigned32 (0..4294967295)
     MAX-ACCESS  read-write
     STATUS      current
     DESCRIPTION
         "Bandwidth reserved by the pseudowire.
          Default value is 0 and indicates that no bandwidth
          has been allocated by the pseudowire.
"
     DEFVAL { 0 }
    ::= { pwGenericEntry 16 }

pwGenericPwNumber OBJECT-TYPE
     SYNTAX      Unsigned32 (0..4294967295)
     MAX-ACCESS  read-create
     STATUS      current
     DESCRIPTION
        "Pseudowire number is used for index calculations
        The number is unique and generated by system.

"
    DEFVAL { 0 }
    ::= { pwGenericEntry 17 }

pwGenericConfigurationSet OBJECT-TYPE
    SYNTAX     INTEGER {
       false(0),
       true(1)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "PW configuartion set in hardware

         true - Indicates that the configuration is set
         false - Indicates that the configuration is not set

"
     DEFVAL { 0 }
    ::= { pwGenericEntry 18 }

pwGenericFlowLabel OBJECT-TYPE
    SYNTAX      INTEGER {
        disabled (0),
        enabled (1)
    }
    MAX-ACCESS  read-create
    STATUS  current
    DESCRIPTION
        "Flow label

"
    DEFVAL { 0 }
    ::= { pwGenericEntry 19 }

-- ----------------------------------------------------
-- MPLS PW Table
-- ----------------------------------------------------

pwMplsTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF PwMplsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The MPLS pseudowire list."
    ::= { pwMplsList 1 }

pwMplsEntry OBJECT-TYPE
    SYNTAX      PwMplsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the MPLS pseudowire list. Each entry
         represents one tunnel mapped to a pseudowire.
"
    INDEX { pwMplsIndex }
    ::= { pwMplsTable 1 }

PwMplsEntry ::=
    SEQUENCE {
        pwMplsIndex                       Unsigned32,
        pwMplsName                        MgmtNameString,
        pwMplsIdentifier                  DisplayString,
        pwMplsInternalReference           Unsigned32,
        pwMplsOutboundTunnelId            DisplayString,
        pwMplsAssociateTunnel             CommandString,
        pwMplsRowStatus					  RowStatus
    }

pwMplsIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry.
"
    ::= { pwMplsEntry 1 }

pwMplsName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the pseudowire, for example
        'pw:1:2:id', where the first number indicates
        subrack, the second slot number and the id is the
        same as the pseudowire identifier configured in the
        corresponding entry in the pwTable.
"
    ::= { pwMplsEntry 2 }

pwMplsIdentifier OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Unique identifier used for referencing this object.
         This will be identical to the identifier of the
         corresponding entry generic pseudowire entry
         in pwTable.
"
	DEFVAL { "" }
    ::= { pwMplsEntry 3 }

pwMplsInternalReference OBJECT-TYPE
    SYNTAX      Unsigned32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "For internal use only.
"
    DEFVAL { 0 }
    ::= { pwMplsEntry 4 }

pwMplsOutboundTunnelId OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The identifier of the MPLS tunnel that the pseudowire
        is connected to.
"
	DEFVAL { "" }
    ::= { pwMplsEntry 5 }

pwMplsAssociateTunnel  OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
        "Internal command for connecting a pseudowire to
        a MPLS tunnel object. The MPLS tunnel is intended to
        carry the pseudowire traffic. The reference will be
        displayed in pwMplsOutboundTunnelId attribute for the
        pseudowire object.
"
    ::= { pwMplsEntry 6 }


pwMplsRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Manages creation and deletion of conceptual rows via snmp.
        See also SNMPv2-TC.
        This object is only valid for creation and deletion of edge pseudowire.

        Note: The newly created object will not necessarily
        receive the same index as used in the create
        procedure.
"
    ::= { pwMplsEntry 7 }
-- ----------------------------------------------------
-- Ethernet PW Table
-- ----------------------------------------------------

pwEnetTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF PwEnetEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Ethernet pseudowire list."
    ::= { pwEnetList 1 }

pwEnetEntry OBJECT-TYPE
    SYNTAX      PwEnetEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the pw ethernet list. Every entry
         represents one PW classification mapped to a pseudowire, together
         with a VLAN operation.
"
    INDEX { pwEnetIndex }
    ::= { pwEnetTable 1 }

PwEnetEntry ::=
    SEQUENCE {
        pwEnetIndex                       Unsigned32,
        pwEnetName                        MgmtNameString,
        pwEnetIdentifier                  DisplayString,
        pwEnetInternalReference           Unsigned32,
        pwEnetPortVlan                    Unsigned32,
        pwEnetPortIndex                   Unsigned32,
        pwEnetPortName                    DisplayString,
        pwEnetTpid                        INTEGER,
        pwEnetRowStatus                   RowStatus,
        pwEnetClassification              DisplayString,
        pwEnetFecType                     INTEGER,
        pwEnetSdTagVlanActionIngress      INTEGER,
        pwEnetSdTagVlanIngress            Unsigned32,
        pwEnetSdTagVlanActionEgress       INTEGER,
        pwEnetSdTagVlanEgress             Unsigned32,
        pwEnetOpMode                      INTEGER,
        pwEnetIfNo                        PortNumber,
        pwEnetTxPort                      PortNumber,
        pwEnetInterfaceName               DisplayString }

pwEnetIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry.
"
    ::= { pwEnetEntry 1 }

pwEnetName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the pseudowire, for example
        'pw:1:2:id', where the first number indicates
        subrack, the second slot number and the id is the
        same as the pseudowire identifier configured in the
        corresponding entry in the pwTable.
"
    ::= { pwEnetEntry 2 }


pwEnetIdentifier OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This is an unique identifier used for referencing this
         object. The identifier will be used as reference to the
         pwEnet object in the generic pwTable.
"
	DEFVAL { "" }
    ::= { pwEnetEntry 3 }

pwEnetInternalReference OBJECT-TYPE
    SYNTAX      Unsigned32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "For internal use only.
"
    DEFVAL { 0 }
    ::= { pwEnetEntry 4 }

pwEnetPortVlan OBJECT-TYPE
    SYNTAX      Unsigned32(0..4095)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This attribute defines if the mapping between the
         original port to the pseudowire is VLAN based or not.
         In case of VLAN mapping, this object indicates the
         VLAN ID value on the original port.
         The value of '4095' is used if the whole original port
         traffic is mapped to the pseudowire.
"
    DEFVAL { 4095 }
    ::= { pwEnetEntry 5 }

pwEnetPortIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This attribute defines the index of the port associated
         with this pseudowire for point-to-point Ethernet
         service.
"
	 DEFVAL { 1 }
    ::= { pwEnetEntry 6 }

pwEnetPortName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This attribute defines the name of the port associated
         with this pseudowire for point-to-point Ethernet
         service.
"
         DEFVAL { "" }
    ::= { pwEnetEntry 7 }

pwEnetTpid OBJECT-TYPE
    SYNTAX      INTEGER {
                    undefined (0),
                    anyTag (1),
                    qTag0x8100 (2),
                    sTag0x88a8 (3)}
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This attribute defines ether type tag information
         for the mapping of VLAN on the entry port.
"
    DEFVAL { 3 }
    ::= { pwEnetEntry 8 }

pwEnetRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Manages creation and deletion of conceptual rows.
        See also SNMPv2-TC.

        Note: The newly created object will not necessarily
        receive the same index as used in the create
        procedure.
"
    ::= { pwEnetEntry 9 }

pwEnetClassification OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Unique identifier for the policy classification connected to pseudowire.
        The policy classification is located in mesClass table.
        Only valid when pseudowire classification type is policy classification.
"
    DEFVAL { "" }
    ::= { pwEnetEntry 10 }

pwEnetFecType OBJECT-TYPE
    SYNTAX      INTEGER {
                     port (0),
                     portVlan (1),
                     classification (2)}
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the mapping between the original port to the pseudowire.
         port (0)
              -- the whole original port traffic is mapped to the pseudowire.
         portVlan (1)
              -- the mapping between the original port to the pseudowire is VLAN based.
                 The attributes portVlan indicates the VLAN value on the original port.
         classification (2)
              -- the created policy classification specified the mapping between the
                 original port to the pseudowire.
"
    DEFVAL { 0 }
    ::= { pwEnetEntry 11 }

pwEnetSdTagVlanActionIngress OBJECT-TYPE
    SYNTAX      INTEGER {
                     noAction (0),
                     swap (1),
                     push (2),
                     pop (3)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This attribute indicates the mode of VLAN handling between the
        port or the virtual port associated with the pseudowire and the pseudowire
        encapsulation. Action is performed for traffic entering the pseudowire.
        This attribute is implicitly set from the pseudowire operation mode.
        noAction (0)
            -- packets will be forwarded between the port and the pseudowire
               independent of their structure.
        swap (1)
            -- VLAN field on the pseudowire may be different than the VLAN field
               on the port. The VLAN on the PE-CE link is the service-delimiting
               tag but has a different value on the pseudowire.
        push (2)
            -- a VLAN field will be added on the pseudowire. The VLAN value is
               defined by the attribute pseudowire VLAN.
        pop (3)
            -- the encapsulation on the pseudowire will not include the
               service-delimiting VLAN field.
"
        DEFVAL { 0 }
    ::= { pwEnetEntry 12 }

pwEnetSdTagVlanIngress OBJECT-TYPE
    SYNTAX      Unsigned32(0..4095)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This attribute defines the (service-delimiting) VLAN field value on the
        pseudowire. The value 4095 is used when the attribute is not applicable.
"
    DEFVAL { 4095 }
    ::= { pwEnetEntry 13 }

pwEnetSdTagVlanActionEgress OBJECT-TYPE
    SYNTAX      INTEGER {
                     noAction (0),
                     swap (1),
                     push (2),
                     pop (3)}
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This attribute indicates the mode of VLAN handling between the
        pseudowire encapsulation and the port or the virtual port associated with the pseudowire.
        Action is performed on traffic exiting the pseudowire.
    noAction (0)
        -- packets will be forwarded between the pseudowire
           independent of their structure and the port.
    swap (1)
        -- VLAN field on the pseudowire may be different than the VLAN field
           on the port. The VLAN on the PE-CE link is the service-delimiting
           tag but has a different value on the pseudowire.
    push (2)
        -- a VLAN field will be added on the pseudowire. The VLAN value is
           defined by the attribute pseudowire VLAN.
    pop (3)
        -- the encapsulation on the pseudowire will not include the
           service-delimiting VLAN field.
"
    DEFVAL { 0 }
    ::= { pwEnetEntry 14 }

pwEnetSdTagVlanEgress OBJECT-TYPE
    SYNTAX      Unsigned32(0..4095)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This attribute defines the (service-delimiting) VLAN field value on the
        pseudowire. The value 4095 is used when the attribute is not applicable.
"
    DEFVAL { 4095 }
    ::= { pwEnetEntry 15 }

pwEnetOpMode OBJECT-TYPE
    SYNTAX      INTEGER {
                     transparent (0),
                     raw (1),
                     tagged (2)}
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
    "An Ethernet pseudowire operates in one of the tree modes:
    transparent (0)
        -- packets will be forwarded between the port and the pseudowire
           independent of their structure. No action is performed on traffic
           either entering or exiting the pseudowire.
    raw (1)
        -- service-delimiting tags are never sent over the pseudowire if Ethernet
           pseudowire is operating in raw mode. If a service-delimiting tag is
           present when the frame is received from the attachment circuit by the
           PE, it is stripped from the frame before the frame is sent to the
           pseudowire.
    tagged (2)
        -- every frame sent on the pseudowire must have a service-delimiting VLAN
           tag if Ethernet pseudowire is operating in tagged mode. If the frame as
           received by the PE from the attachment circuit does not have a service-
           delimiting tag, the PE will push the frame with a VLAN tag.
"
    DEFVAL { 0 }
    ::= { pwEnetEntry 16 }

pwEnetIfNo      OBJECT-TYPE
    SYNTAX      PortNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The physical interface number of the multi-connector port.

"
    DEFVAL { 0 }
    ::= { pwEnetEntry 17 }

pwEnetTxPort OBJECT-TYPE
    SYNTAX      PortNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The physical port that this pseudowire is
        bound to.
"
        DEFVAL { 0 }
    ::= { pwEnetEntry 18 }

pwEnetInterfaceName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Name of the Interface connected to pw.
"
    DEFVAL { " " }
    ::= { pwEnetEntry 19 }

-- ----------------------------------------------------
-- MS-PW(Multi-segment pseudowire) Table
-- ----------------------------------------------------
pwMspwTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF PwMspwEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The multi-segment pseudowire list."
    ::= { pwMspwList 1 }

pwMspwEntry OBJECT-TYPE
    SYNTAX      PwMspwEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ms-pw list.
"
    INDEX { pwMspwIndex }
    ::= { pwMspwTable 1 }

PwMspwEntry ::=
    SEQUENCE {
        pwMspwIndex                       Unsigned32,
        pwMspwName                        MgmtNameString,
        pwMspwIdentifier                  DisplayString,
        pwMspwInternalReference           Unsigned32,
        pwMspwEastInboundLabel            MplsLabel,
        pwMspwEastOutboundLabel           MplsLabel,
        pwMspwEastOutboundTunnelId        DisplayString,
        pwMspwWestInboundLabel            MplsLabel,
        pwMspwWestOutboundLabel           MplsLabel,
        pwMspwWestOutboundTunnelId        DisplayString,
        pwMspwRowStatus                   RowStatus }

pwMspwIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry.
"
    ::= { pwMspwEntry 1 }

pwMspwName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the pseudowire, for example
        'mspw:1:2:id', where the first number indicates
        subrack, the second slot number and the id is the
        same as the pseudowire identifier configured in the
        corresponding entry in the generic table.
"
    ::= { pwMspwEntry 2 }

pwMspwIdentifier OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Unique identifier used for referencing this object.
         This will be identical to the identifier of the
         corresponding entry generic pseudowire entry
         in pwTable.
"
    ::= { pwMspwEntry 3 }

pwMspwInternalReference OBJECT-TYPE
    SYNTAX      Unsigned32 (0..2147483647)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "For internal use only.
"
    DEFVAL { 0 }
    ::= { pwMspwEntry 4 }

pwMspwEastInboundLabel OBJECT-TYPE
    SYNTAX      MplsLabel
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The east pseudowire label used in the the inbound direction,
        Actual label range is 16-1048575, 0-15 is reserved.
"
    ::= { pwMspwEntry 5 }

pwMspwEastOutboundLabel OBJECT-TYPE
    SYNTAX      MplsLabel
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The east pseudowire label used in the the outbound direction,
        Actual label range is 16-1048575, 0-15 is reserved.
"
    ::= { pwMspwEntry 6 }

pwMspwEastOutboundTunnelId OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The identifier of the MPLS tunnel intended to carry
         the pseudowire traffic.
"
    ::= { pwMspwEntry 7 }

pwMspwWestInboundLabel OBJECT-TYPE
    SYNTAX      MplsLabel
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The west pseudowire label used in the the inbound direction,
        Actual label range is 16-1048575, 0-15 is reserved.
"
    ::= { pwMspwEntry 8 }

pwMspwWestOutboundLabel OBJECT-TYPE
    SYNTAX      MplsLabel
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The west pseudowire label used in the the outbound direction,
        Actual label range is 16-1048575, 0-15 is reserved.
"
    ::= { pwMspwEntry 9 }

pwMspwWestOutboundTunnelId OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The identifier of the MPLS tunnel intended to carry
         the pseudowire traffic.
"
    ::= { pwMspwEntry 10 }

pwMspwRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Manages creation and deletion of conceptual rows.
        See also SNMPv2-TC.
        This object is used for creation and deletion of multi-segment pseudowire.
        The corresponding pseudowire generic table will be created as well.
        Note: The newly created object will not necessarily
        receive the same index as used in the create
        procedure.
"
    ::= { pwMspwEntry 11 }

-- ----------------------------------------------------
-- Notifications
-- ----------------------------------------------------


-- ----------------------------------------------------
-- Object and event groups
-- ----------------------------------------------------

pwGeneralGroupV1 OBJECT-GROUP
    OBJECTS {
        pwGeneralLastChangeTime,
        pwGeneralStateLastChangeTime,
        pwGeneralPwGenericTableSize,
        pwGeneralPwMplsTableSize,
        pwGeneralPwEnetTableSize}
    STATUS      deprecated
    DESCRIPTION
        "The general objects."
    ::= { lumPwGroups 1 }

pwGenericGroupV1 OBJECT-GROUP
    OBJECTS {
        pwGenericIndex,
        pwGenericName,
        pwGenericIdentifier,
        pwGenericInternalReference,
        pwGenericDescr,
        pwGenericOutboundLabel,
        pwGenericInboundLabel,
        pwGenericInPackets,
        pwGenericInBytes,
        pwGenericOutPackets,
        pwGenericOutBytes,
        pwGenericResetCont,
        pwGenericRowStatus }

    STATUS      deprecated
    DESCRIPTION
        "The generic pseudowire objects (R18.0)."
    ::= { lumPwGroups 2 }

pwMplsGroupV1 OBJECT-GROUP
    OBJECTS {
        pwMplsIndex,
        pwMplsName,
        pwMplsIdentifier,
        pwMplsInternalReference,
        pwMplsOutboundTunnelId,
        pwMplsAssociateTunnel }
    STATUS      deprecated
    DESCRIPTION
        "The mpls pseudowire objects (R18.0)."
    ::= { lumPwGroups 3 }

pwEnetGroupV1 OBJECT-GROUP
    OBJECTS {
        pwEnetIndex,
        pwEnetName,
        pwEnetIdentifier,
        pwEnetInternalReference,
        pwEnetPortVlan,
        pwEnetPortIndex,
        pwEnetPortName,
        pwEnetTpid,
        pwEnetRowStatus}
    STATUS      deprecated
    DESCRIPTION
        "The ethernet pseudowire objects (R18.0)."
    ::= { lumPwGroups 4 }

pwEnetGroupV2 OBJECT-GROUP
    OBJECTS {
        pwEnetIndex,
        pwEnetName,
        pwEnetIdentifier,
        pwEnetInternalReference,
        pwEnetPortVlan,
        pwEnetPortIndex,
        pwEnetPortName,
        pwEnetTpid,
        pwEnetRowStatus,
        pwEnetClassification,
        pwEnetFecType,
        pwEnetSdTagVlanActionIngress,
        pwEnetSdTagVlanIngress,
        pwEnetSdTagVlanActionEgress,
        pwEnetSdTagVlanEgress,
        pwEnetOpMode }
    STATUS      deprecated
    DESCRIPTION
        "The ethernet pseudowire objects (R20.0)."
    ::= { lumPwGroups 5 }

pwGeneralGroupV2 OBJECT-GROUP
    OBJECTS {
        pwGeneralLastChangeTime,
        pwGeneralStateLastChangeTime,
        pwGeneralPwGenericTableSize,
        pwGeneralPwMplsTableSize,
        pwGeneralPwEnetTableSize,
        pwGeneralPwMspwTableSize }
    STATUS      current
    DESCRIPTION
        "The general objects (R20.0)"
    ::= { lumPwGroups 6 }

pwMspwGroupV1 OBJECT-GROUP
    OBJECTS {
        pwMspwIndex,
        pwMspwName,
        pwMspwIdentifier,
        pwMspwInternalReference,
        pwMspwEastInboundLabel,
        pwMspwEastOutboundLabel,
        pwMspwEastOutboundTunnelId,
        pwMspwWestInboundLabel,
        pwMspwWestOutboundLabel,
        pwMspwWestOutboundTunnelId,
        pwMspwRowStatus }
    STATUS      current
    DESCRIPTION
        "The multi-segment pseudowire objects (R20.0)."
    ::= { lumPwGroups 7 }

pwGenericGroupV2 OBJECT-GROUP
    OBJECTS {
        pwGenericIndex,
        pwGenericName,
        pwGenericIdentifier,
        pwGenericInternalReference,
        pwGenericDescr,
        pwGenericOutboundLabel,
        pwGenericInboundLabel,
        pwGenericInPackets,
        pwGenericInBytes,
        pwGenericOutPackets,
        pwGenericOutBytes,
        pwGenericResetCont,
        pwGenericRowStatus,
        pwGenericPwType,
        pwGenericTrafficClass,
        pwGenericReservedBW}

    STATUS      deprecated
    DESCRIPTION
        "The generic pseudowire objects (R20.0)."
    ::= { lumPwGroups 8 }

pwEnetGroupV3 OBJECT-GROUP
    OBJECTS {
        pwEnetIndex,
        pwEnetName,
        pwEnetIdentifier,
        pwEnetInternalReference,
        pwEnetPortVlan,
        pwEnetPortIndex,
        pwEnetPortName,
        pwEnetTpid,
        pwEnetRowStatus,
        pwEnetClassification,
        pwEnetFecType,
        pwEnetSdTagVlanActionIngress,
        pwEnetSdTagVlanIngress,
        pwEnetSdTagVlanActionEgress,
        pwEnetSdTagVlanEgress,
        pwEnetOpMode,
        pwEnetIfNo,
        pwEnetTxPort,
        pwEnetInterfaceName }
    STATUS      current
    DESCRIPTION
        "The ethernet pseudowire objects (R28.0)."
    ::= { lumPwGroups 9 }

pwGenericGroupV3 OBJECT-GROUP
    OBJECTS {
        pwGenericIndex,
        pwGenericName,
        pwGenericIdentifier,
        pwGenericInternalReference,
        pwGenericDescr,
        pwGenericOutboundLabel,
        pwGenericInboundLabel,
        pwGenericInPackets,
        pwGenericInBytes,
        pwGenericOutPackets,
        pwGenericOutBytes,
        pwGenericResetCont,
        pwGenericRowStatus,
        pwGenericPwType,
        pwGenericTrafficClass,
        pwGenericReservedBW,
        pwGenericPwNumber,
        pwGenericConfigurationSet,
        pwGenericFlowLabel}

    STATUS      current
    DESCRIPTION
        "The generic pseudowire objects (R28.0)."
    ::= { lumPwGroups 10 }

pwMplsGroupV2 OBJECT-GROUP
    OBJECTS {
        pwMplsIndex,
        pwMplsName,
        pwMplsIdentifier,
        pwMplsInternalReference,
        pwMplsOutboundTunnelId }
    STATUS      deprecated
    DESCRIPTION
        "The mpls pseudowire objects (R28.0)."
    ::= { lumPwGroups 11 }

pwMplsGroupV3 OBJECT-GROUP
    OBJECTS {
        pwMplsIndex,
        pwMplsName,
        pwMplsIdentifier,
        pwMplsInternalReference,
        pwMplsOutboundTunnelId,
        pwMplsRowStatus }
    STATUS      current
    DESCRIPTION
        "The mpls pseudowire objects (R30.0)."
    ::= { lumPwGroups 12 }
-- ----------------------------------------------------
-- Compliance
-- ----------------------------------------------------

lumPwBasicComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the
         pseudowire MIB. (R18.0)"
    MODULE
        MANDATORY-GROUPS {
            pwGeneralGroupV1,
            pwGenericGroupV1,
            pwMplsGroupV1,
            pwEnetGroupV1 }
    ::= { lumPwCompl 1 }

lumPwBasicComplV2 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the
         pseudowire MIB. (R20.0)"
    MODULE
        MANDATORY-GROUPS {
            pwGeneralGroupV2,
            pwGenericGroupV2,
            pwMplsGroupV1,
            pwEnetGroupV2,
            pwMspwGroupV1 }
    ::= { lumPwCompl 2 }

lumPwBasicComplV3 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the
         pseudowire MIB. (R28.0)"
    MODULE
        MANDATORY-GROUPS {
            pwGeneralGroupV2,
            pwGenericGroupV3,
            pwMplsGroupV2,
            pwEnetGroupV3,
            pwMspwGroupV1 }
    ::= { lumPwCompl 3 }


lumPwBasicComplV4 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the
         pseudowire MIB. (R30.1)"
    MODULE
        MANDATORY-GROUPS {
            pwGeneralGroupV2,
            pwGenericGroupV3,
            pwMplsGroupV3,
            pwEnetGroupV3,
            pwMspwGroupV1 }
    ::= { lumPwCompl 4 }
END


