ADTRAN-GENERIC-PSEUDOWIRE-CEM-MGMT-MIB  DEFINITIONS ::= BEGIN

   -- TITLE:      Total Access 5000 Pseudowire Circuit Emulation Management MIB
   -- PRODUCT:    1187500E1, 1187501G1, 1187502F1, 1188801G1, TBD.
   -- VERSION:    1.0
   -- DATE:       10/07/09 (yy/mm/dd)
   -- AUTHOR:     Shobana Rao <shobana.rao@adtran.com>
   -- SNMP:       SNMPv2
   -- MIB ARC:    adtran.adShared.adGenCndSystem.adGenPseudowireCEMMgmt

   -- DESCRIPTION:
         -- Created based upon the genTa5kPseudowireMgmt.mi2 to support the
         -- 1187500E1 (GPON OLT)
         -- 1187501G1 (GPON OLT)
         -- 1187502F1 (GPON OLT)
         -- 1188801G1 (32-Port E1 CEM)
         -- However, this MIB is intended to be forward looking to support
         -- Pseudowire Circuit Emulation SNMP management for future PWE3 modules
         -- developed for the TA5000 platform.

   -- HISTORY: (yy/mm/dd)
         -- 10/07/09 - Created based upon the ADTRAN-GENERIC-TA5000-PSEUDOWIRE-MGMT-MIB.
    -- "DO NOT MAKE HISTORY COMMENTS HERE!!!! Revision history now in REVISION/DESCRIPTION clauses below"
   -- NOTES:
         -- Created based upon the ADTRAN-GENERIC-TA5000-PSEUDOWIRE-MGMT-MIB,
         -- to support TA5000 Pseudowire CEM configurations.
         -- Please consult product specific documentation and MIB's for
         -- further configuration details and considerations.

         -- adGenPseudowireCEMDestinationNode:
         -- Hint:  The `adTa5kSmNode' and
         -- the `adTa5kSmMaxNode'
         -- objects in the local and remote managed
         -- ADTRAN-TA5K-SM-MIB, (adTa5kSm.mi2),
         -- may be considered when provisioning the pseudowire remote node.

         -- adGenPseudowireCEMDestinationShelf:
         -- Hint:  The `adTa5kSmMaxShelves'
         -- object in the local managed
         -- ADTRAN-TA5K-SM-MIB, (adTa5kSm.mi2),
         -- may be considered when provisioning the pseudowire remote shelf.

         -- adGenPseudowireCEMDestinationSlot:
         -- Hint:  The `adGenSlotInfoIndex'
         -- object in the remote managed
         -- ADTRAN-GENSLOT-MIB, (genslot.mi2),
         -- may be considered when provisioning the pseudowire remote slot.
         -- Typically the remote slot number should not exceed 22.

   IMPORTS
            MODULE-IDENTITY,
            OBJECT-TYPE,
            Integer32,
            IpAddress                           FROM SNMPv2-SMI

            adGenPseudowireCEMMgmt,
            adGenPseudowireCEMMgmtID         FROM ADTRAN-SHARED-CND-SYSTEM-MIB

            DisplayString,
            RowStatus,
            TruthValue,
            MacAddress,
            TEXTUAL-CONVENTION                  FROM SNMPv2-TC

            adGenSlotInfoIndex                  FROM ADTRAN-GENSLOT-MIB

            ifIndex,
            InterfaceIndex,
            InterfaceIndexOrZero                FROM IF-MIB;

-- Module ID ==================================================================

   adGenPseudowireCEMMgmtModuleIdentity         MODULE-IDENTITY
         LAST-UPDATED    "201412171115Z"
         ORGANIZATION
            "ADTRAN, Inc."
         CONTACT-INFO
            "CND Tech Support
                Postal: ADTRAN, Inc.
                        901 Explorer Blvd.
                        Huntsville, AL  35806
                        Tel: +1 800 726-8663
                        Fax: +1 256 963 6217
                        E-mail: support@adtran.com"
         DESCRIPTION
            "Total Access 5000 Pseudowire CEM Management MIB"
    REVISION "201412171115Z"
    DESCRIPTION "Added adGenPseudowireCEMDetailedOperStatus and adGenAdvancedPseudowireCEMDetailedOperStatus"
		
    REVISION "201205181115Z"
    DESCRIPTION "Added adGenPseudowireCEMAlarmProv and associated oid to allow for alarm provisioning"
         ::= { adGenPseudowireCEMMgmtID 1 }

-- OBJECT IDENTIFIERS =========================================================

   adGenPseudowireCEMProv              OBJECT IDENTIFIER ::= {adGenPseudowireCEMMgmt 1}
   adGenAdvancedPseudowireCEMProv      OBJECT IDENTIFIER ::= {adGenPseudowireCEMMgmt 2}
   adGenPseudowireCEMCesopTimeslotProv OBJECT IDENTIFIER ::= {adGenPseudowireCEMMgmt 3}
   adGenEasyPseudowireCEMProv       OBJECT IDENTIFIER ::= {adGenPseudowireCEMMgmt 4}
   adGenPseudowireCEMPerformance       OBJECT IDENTIFIER ::= {adGenPseudowireCEMMgmt 5}
   adGenPseudowireCEMAlarms            OBJECT IDENTIFIER ::= {adGenPseudowireCEMMgmt 6}
   adGenPseudowireCEMAlarmProv         OBJECT IDENTIFIER ::= {adGenPseudowireCEMMgmt 7}

   adGenPseudowireCEMPerfID         OBJECT IDENTIFIER ::= {adGenPseudowireCEMMgmtID     2}
   adGenPseudowireCEMAlarmsID          OBJECT IDENTIFIER ::= {adGenPseudowireCEMMgmtID     3}

   adGenPseudowireCEMPerfInfo       OBJECT IDENTIFIER ::= {adGenPseudowireCEMPerformance 2}
   adGenPseudowireCEMPerfInfoID     OBJECT IDENTIFIER ::= {adGenPseudowireCEMPerfID 2}

   adGenPseudowireCEMEvents            OBJECT IDENTIFIER ::= {adGenPseudowireCEMAlarms 0}

-- OBJECT IDENTIFIERS - Pseudowire CEM Provisioning Table =========================

   -- Pseudowire CEM Provisioning Table
   adGenPseudowireCEMProvTable OBJECT-TYPE
         SYNTAX         SEQUENCE OF AdGenPseudowireCEMProvTableEntry
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "Total Access 5000 Pseudowire CEM Provisioning Table."
         ::= { adGenPseudowireCEMProv 1 }

   adGenPseudowireCEMProvTableEntry OBJECT-TYPE
         SYNTAX         AdGenPseudowireCEMProvTableEntry
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "Channel ifIndex - see specific product"
         INDEX   { ifIndex }
         ::= { adGenPseudowireCEMProvTable 1 }

   AdGenPseudowireCEMProvTableEntry ::=
         SEQUENCE {
            adGenPseudowireCEMType                   INTEGER,
            adGenPseudowireCEMPhysicalPortIfIndex   InterfaceIndexOrZero,
            adGenPseudowireCEMDestinationNode        Integer32,
            adGenPseudowireCEMDestinationShelf       Integer32,
            adGenPseudowireCEMDestinationSlot        InterfaceIndex,
            adGenPseudowireCEMDestinationChannel     InterfaceIndex,
            adGenPseudowireCEMDestinationONTNumber   InterfaceIndex,
            adGenPseudowireCEMDestinationONTSlot     InterfaceIndex,
            adGenPseudowireCEMDestinationONTPort     InterfaceIndex,
            adGenPseudowireCEMRowStatus              RowStatus,
            adGenPseudowireCEMErrorStr               DisplayString,
            adGenPseudowireCEMCircuitIdentifierStr   DisplayString,
            adGenPseudowireCEMPktJitterBufferDepth   Integer32,
            adGenPseudowireCEMPktPayloadSize         Integer32,
            adGenPseudowireCEMPktRTPPayloadType      Integer32,
            adGenPseudowireCEMPktRTPFrequency        Integer32,
            adGenPseudowireCEMDscp                   Integer32,
            adGenPseudowireCEMServiceState           INTEGER,
            adGenPseudowireCEMDetailedOperStatus     DisplayString
         }

   adGenPseudowireCEMType OBJECT-TYPE
         SYNTAX         INTEGER {
                           satop(1),
                           cesopBasic(2),
                           cesopCas(3)
                        }
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The pseudowire circuit emulation mode assigned to the pseudowire channel.

             This object supports three enumerations.

               - `satop', Structure-Agnostic Time Division Multiplexing (TDM)
                          over Packet, RFC 4553.

               - `cesop-basic', Circuit Emulation Services over Packet, NxDS0 Services.

               - `cesop-cas', Circuit Emulation Services over Packet,  NxDS0 Services with Channel-Associated Signaling"
         ::= { adGenPseudowireCEMProvTableEntry 1 }

   adGenPseudowireCEMPhysicalPortIfIndex OBJECT-TYPE
         SYNTAX         InterfaceIndexOrZero
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The ifIndex of the T1/E1 connected to this pseudowire channel, or 0 for no connection.
            This OID is applicable only in SAToP mode."
         ::= { adGenPseudowireCEMProvTableEntry 2 }

   adGenPseudowireCEMDestinationNode OBJECT-TYPE
         SYNTAX         Integer32
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The remote node assigned to the pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 3 }

   adGenPseudowireCEMDestinationShelf OBJECT-TYPE
         SYNTAX         Integer32
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The remote shelf assigned to the pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 4 }

   adGenPseudowireCEMDestinationSlot OBJECT-TYPE
         SYNTAX         InterfaceIndex
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The remote slot ifIndex assigned to the pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 5 }

   adGenPseudowireCEMDestinationChannel OBJECT-TYPE
         SYNTAX         InterfaceIndex
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The remote pseudowire channel ifIndex assigned to this pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 6 }

   adGenPseudowireCEMDestinationONTNumber OBJECT-TYPE
         SYNTAX         InterfaceIndex
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The remote ONT number ifIndex assigned to this pseudowire channel. This object
            is only used when the remote is a GPON device otherwise it should be kept
            at 0."
         ::= { adGenPseudowireCEMProvTableEntry 7 }

   adGenPseudowireCEMDestinationONTSlot OBJECT-TYPE
         SYNTAX         InterfaceIndex
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The remote ONT slot ifIndex assigned to this pseudowire channel. This object
            is only used when the remote is a GPON device otherwise it should be kept
            at 0."
         ::= { adGenPseudowireCEMProvTableEntry 8 }

   adGenPseudowireCEMDestinationONTPort OBJECT-TYPE
         SYNTAX         InterfaceIndex
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The remote ONT port ifIndex assigned to this pseudowire channel. This object
            is only used when the remote is a GPON device otherwise it should be kept
            at 0."
         ::= { adGenPseudowireCEMProvTableEntry 9 }

   adGenPseudowireCEMRowStatus OBJECT-TYPE
         SYNTAX         RowStatus
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The object is used to manage the creation, activation and
            deletion of a conceptual row.

            This object only supports four of the six status columns defined
            by the SNMPv2-TC MIB.

               - `active', which indicates that the conceptual row is
               available for use by the managed device;

               - `notInService', which indicates that the conceptual
               row exists in the agent, but is unavailable for use by
               the managed device;

               - `createAndWait', which is supplied by a management
               station wishing to create a new instance of a
               conceptual row (but not make it available for use by
               the managed device); and,

               - `destroy', which is supplied by a management station
               wishing to delete all of the instances associated with
               an existing conceptual row.

            For conceptual row creation, the management station must issue a
            management protocol set operation which sets the instance of the
            status column to `createAndWait'.

            Once the management station is satisfied with the values
            associated with the columns of the conceptual row, it issues a
            management protocol set operation to set the status
            column to `active'.

            For deletion of conceptual rows, a management protocol set
            operation is issued which sets the instance of the status
            column to `destroy'."
         ::= { adGenPseudowireCEMProvTableEntry 10 }

   adGenPseudowireCEMErrorStr OBJECT-TYPE
         SYNTAX         DisplayString
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The error string for SNMP query."
         ::= { adGenPseudowireCEMProvTableEntry 11 }

   adGenPseudowireCEMCircuitIdentifierStr OBJECT-TYPE
         SYNTAX      DisplayString
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The circuit identifier string for the pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 12 }

   adGenPseudowireCEMPktJitterBufferDepth OBJECT-TYPE
         SYNTAX      Integer32 (1..100)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The jitter buffer depth in milliseconds for the pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 13 }

   adGenPseudowireCEMPktPayloadSize OBJECT-TYPE
         SYNTAX      Integer32 (25..958)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The payload packet size in bytes for the pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 14 }

   adGenPseudowireCEMPktRTPPayloadType OBJECT-TYPE
         SYNTAX      Integer32 (96..127)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The RTP payload type for the pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 15 }

   adGenPseudowireCEMPktRTPFrequency OBJECT-TYPE
         SYNTAX      Integer32 (8..13200)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "The RTP frequency in 8 kHz increments for the pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 16 }

   adGenPseudowireCEMDscp OBJECT-TYPE
         SYNTAX      Integer32 (0..63)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "Differenciated services code point (DSCP) as defined by Iana.
            DSCP is a 6-bit field in the header of IP packets for packet
            classification purposes."
         ::= { adGenPseudowireCEMProvTableEntry 17 }

   adGenPseudowireCEMServiceState OBJECT-TYPE
         SYNTAX     INTEGER
                   {
                        inService(1),
                        oosUnassigned(2),
                        oosMaintenance(3)
                   }
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "This entry gets/sets the service state of the selected pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 18 }

   adGenPseudowireCEMDetailedOperStatus OBJECT-TYPE
         SYNTAX         DisplayString(SIZE (0..255))
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "The Detailed Operational Status of the pseudowire channel."
         ::= { adGenPseudowireCEMProvTableEntry 19 }


-- OBJECT IDENTIFIERS - Pseudowire CEM Advanced Provisioning Table ================

   -- Pseudowire CEM Advanced Provisioning Table
   adGenAdvancedPseudowireCEMProvTable OBJECT-TYPE
         SYNTAX         SEQUENCE OF AdGenAdvancedPseudowireCEMProvTableEntry
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "Total Access 5000 Pseudowire CEM Advanced Provisioning Table."
         ::= { adGenAdvancedPseudowireCEMProv 1 }

   adGenAdvancedPseudowireCEMProvTableEntry OBJECT-TYPE
         SYNTAX         AdGenAdvancedPseudowireCEMProvTableEntry
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "Channel ifIndex - see specific product"
         INDEX   { ifIndex }
         ::= { adGenAdvancedPseudowireCEMProvTable 1 }

   AdGenAdvancedPseudowireCEMProvTableEntry ::=
         SEQUENCE {
                adGenAdvancedPseudowireCEMType                    INTEGER,
                adGenAdvancedPseudowireCEMSourceUDP               Integer32,
                adGenAdvancedPseudowireCEMPhysicalPortIfIndex    InterfaceIndexOrZero,
                adGenAdvancedPseudowireCEMDestinationUDP          Integer32,
                adGenAdvancedPseudowireCEMDestinationIP           IpAddress,
                adGenAdvancedPseudowireCEMDestinationMac          MacAddress,
                adGenAdvancedPseudowireCEMRowStatus               RowStatus,
                adGenAdvancedPseudowireCEMErrorStr                DisplayString,
                adGenAdvancedPseudowireCEMCircuitIdentifierStr    DisplayString,
                adGenAdvancedPseudowireCEMPktJitterBufferDepth    Integer32,
                adGenAdvancedPseudowireCEMPktPayloadSize          Integer32,
                adGenAdvancedPseudowireCEMPktRTPPayloadType       Integer32,
                adGenAdvancedPseudowireCEMPktRTPFrequency         Integer32,
                adGenAdvancedPseudowireCEMDscp                    Integer32,
                adGenAdvancedPseudowireCEMServiceState            INTEGER,
                adGenAdvancedPseudowireCEMDetailedOperStatus      DisplayString
                }

   adGenAdvancedPseudowireCEMType OBJECT-TYPE
         SYNTAX         INTEGER
                {
                   satop(1),
                   cesopBasic(2),
                   cesopCas(3)
                }
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The pseudowire type assigned to the pseudowire channel.

             This object supports three enumerations.

               - `satop', Structure-Agnostic Time Division Multiplexing (TDM)
                          over Packet, RFC 4553.

               - `cesop-basic', Circuit Emulation Services over Packet, NxDS0 Services.

               - 'cesop-cas', Circuit Emulation Services over Packet,  NxDS0 Services with Channel-Associated Signaling"
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 1 }

   adGenAdvancedPseudowireCEMSourceUDP OBJECT-TYPE
         SYNTAX         Integer32
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The source UDP assigned to the pseudowire channel.

            The integer value of the source UDP for this object
            is 49152 through 65535."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 2 }

   adGenAdvancedPseudowireCEMPhysicalPortIfIndex OBJECT-TYPE
         SYNTAX         InterfaceIndexOrZero
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The ifIndex of the T1/E1 connected to this pseudowire channel, or 0 for no connection.
            This OID is applicable only in SAToP mode."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 3 }

   adGenAdvancedPseudowireCEMDestinationUDP OBJECT-TYPE
         SYNTAX         Integer32
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The destination UDP assigned to the pseudowire channel.

            The integer value of the destination UDP for this object
            is 49152 through 65535."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 4 }

   adGenAdvancedPseudowireCEMDestinationIP OBJECT-TYPE
         SYNTAX         IpAddress
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The destination IP address assigned to the pseudowire channel."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 5 }

   adGenAdvancedPseudowireCEMDestinationMac OBJECT-TYPE
         SYNTAX         MacAddress
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "The MAC address of the destination pseudowire interface."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 6 }

   adGenAdvancedPseudowireCEMRowStatus OBJECT-TYPE
         SYNTAX         RowStatus
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The object is used to manage the creation, activation and
            deletion of a conceptual row.

            This object only supports four of the six status columns defined
            by the SNMPv2-TC MIB.

               - `active', which indicates that the conceptual row is
               available for use by the managed device;

               - `notInService', which indicates that the conceptual
               row exists in the agent, but is unavailable for use by
               the managed device;

               - `createAndWait', which is supplied by a management
               station wishing to create a new instance of a
               conceptual row (but not make it available for use by
               the managed device); and,

               - `destroy', which is supplied by a management station
               wishing to delete all of the instances associated with
               an existing conceptual row.

            For conceptual row creation, the management station must issue a
            management protocol set operation which sets the instance of the
            status column to `createAndWait'.

            Once the management station is satisfied with the values
            associated with the columns of the conceptual row, it issues a
            management protocol set operation to set the status
            column to `active'.

            For deletion of conceptual rows, a management protocol set
            operation is issued which sets the instance of the status
            column to `destroy'."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 7 }

   adGenAdvancedPseudowireCEMErrorStr OBJECT-TYPE
         SYNTAX         DisplayString
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The error string for SNMP query."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 8 }

   adGenAdvancedPseudowireCEMCircuitIdentifierStr OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The circuit identifier string for the pseudowire channel."
        ::= { adGenAdvancedPseudowireCEMProvTableEntry 9 }

   adGenAdvancedPseudowireCEMPktJitterBufferDepth OBJECT-TYPE
        SYNTAX      Integer32 (1..100)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The jitter buffer depth in milliseconds for the pseudowire channel."
        ::= { adGenAdvancedPseudowireCEMProvTableEntry 10 }

   adGenAdvancedPseudowireCEMPktPayloadSize OBJECT-TYPE
        SYNTAX      Integer32 (25..958)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The payload packet length in bytes for the pseudowire channel."
        ::= { adGenAdvancedPseudowireCEMProvTableEntry 11 }

   adGenAdvancedPseudowireCEMPktRTPPayloadType OBJECT-TYPE
        SYNTAX      Integer32 (96..127)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The RTP payload type for the pseudowire channel."
        ::= { adGenAdvancedPseudowireCEMProvTableEntry 12 }

   adGenAdvancedPseudowireCEMPktRTPFrequency OBJECT-TYPE
        SYNTAX      Integer32 (8..13200)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The RTP frequency in 8 kHZ increments for the pseudowire channel."
        ::= { adGenAdvancedPseudowireCEMProvTableEntry 13 }

   adGenAdvancedPseudowireCEMDscp OBJECT-TYPE
         SYNTAX      Integer32 (0..63)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
            "Differenciated services code point (DSCP) as defined by Iana.
             DSCP is a 6-bit field in the header of IP packets for packet classification purposes."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 14 }

   adGenAdvancedPseudowireCEMServiceState OBJECT-TYPE
         SYNTAX     INTEGER
                {
                        inService(1),
                        oosUnassigned(2),
                        oosMaintenance(3)
                }
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
             "This entry gets/sets the service state of the selected pseudowire channel."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 15 }

   adGenAdvancedPseudowireCEMDetailedOperStatus OBJECT-TYPE
         SYNTAX         DisplayString(SIZE (0..255))
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "The Detailed Operational Status of the pseudowire channel."
         ::= { adGenAdvancedPseudowireCEMProvTableEntry 16 }

-- OBJECT IDENTIFIERS - Pseudowire CEM CESoP Mode Timeslot Provisioning Table ================

   -- Pseudowire CEM CESoP Timeslot Provisioning Table
   adGenPseudowireCEMCesopTimeslotTable OBJECT-TYPE
         SYNTAX         SEQUENCE OF AdGenPseudowireCEMCesopTimeslotTableEntry
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "Pseudowire CEM CESoP Mode Timeslot Assignment Table."
         ::= { adGenPseudowireCEMCesopTimeslotProv 1 }

   adGenPseudowireCEMCesopTimeslotTableEntry OBJECT-TYPE
         SYNTAX         AdGenPseudowireCEMCesopTimeslotTableEntry
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "An entry in the cesop mode timeslot assignment table"
         INDEX   { adGenPseudowireCEMCesopPweIfIndex, adGenPseudowireCEMCesopPweTimeslot, adGenPseudowireCEMCesopPhysicalPortIfIndex, adGenPseudowireCEMCesopPhyTimeslot }
         ::= { adGenPseudowireCEMCesopTimeslotTable 1 }

   AdGenPseudowireCEMCesopTimeslotTableEntry ::=
         SEQUENCE {
                adGenPseudowireCEMCesopPweIfIndex           InterfaceIndex,
                adGenPseudowireCEMCesopPweTimeslot          Integer32,
                adGenPseudowireCEMCesopPhysicalPortIfIndex     InterfaceIndex,
                adGenPseudowireCEMCesopPhyTimeslot          Integer32,
                adGenPseudowireCEMCesopConnectionStatus        INTEGER
   }

   adGenPseudowireCEMCesopPweIfIndex OBJECT-TYPE
         SYNTAX         InterfaceIndex
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "The pseudowire ifIndex."
         ::= { adGenPseudowireCEMCesopTimeslotTableEntry 1 }

   adGenPseudowireCEMCesopPweTimeslot OBJECT-TYPE
         SYNTAX         Integer32
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "The pseudowire timeslots."
         ::= { adGenPseudowireCEMCesopTimeslotTableEntry 2 }

   adGenPseudowireCEMCesopPhysicalPortIfIndex OBJECT-TYPE
         SYNTAX         InterfaceIndex
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "The ifIndex of the physical DS1/E1 connected to the pseudowire channel."
         ::= { adGenPseudowireCEMCesopTimeslotTableEntry 3 }

   adGenPseudowireCEMCesopPhyTimeslot OBJECT-TYPE
         SYNTAX         Integer32
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "The timeslots of the physical DS1/E1 connected to the pseudowire channel."
         ::= { adGenPseudowireCEMCesopTimeslotTableEntry 4 }

   adGenPseudowireCEMCesopConnectionStatus OBJECT-TYPE
         SYNTAX         INTEGER
                     {
                        connected(1)
                     }
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "The connection status."
         ::= { adGenPseudowireCEMCesopTimeslotTableEntry 5 }

-- OBJECT IDENTIFIERS - Easy Pseudowire CEM GetNext Table ================

   adGenEasyPseudowireCEMGetNextTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF AdGenEasyPseudowireCEMGetNextEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table is used for getting the next available index to the
           Easy Pseudowire CEM Table."
       ::= { adGenEasyPseudowireCEMProv 1 }

   adGenEasyPseudowireCEMGetNextEntry OBJECT-TYPE
         SYNTAX         AdGenEasyPseudowireCEMGetNextEntry
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "An entry in the Pseudowire CEM GetNext Table"
         INDEX   { adGenSlotInfoIndex }
         ::= { adGenEasyPseudowireCEMGetNextTable 1 }

   AdGenEasyPseudowireCEMGetNextEntry ::=
         SEQUENCE {
                adGenEasyPseudowireCEMNextIndex          Integer32
         }

   adGenEasyPseudowireCEMNextIndex OBJECT-TYPE
         SYNTAX         Integer32
         MAX-ACCESS     read-only
         STATUS         current
         DESCRIPTION
            "Returns the next available Easy CEM index number."
         ::= { adGenEasyPseudowireCEMGetNextEntry 1 }

-- OBJECT IDENTIFIERS - Easy Pseudowire CEM Timeslot Table ================

   adGenEasyPseudowireCEMTimeslotTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF AdGenEasyPseudowireCEMTimeslotEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table is used to setup timeslots. Activation of a row in this
           table creates row(s) in the adGenPseudowireCEMCesopTimeslotTable."
       ::= { adGenEasyPseudowireCEMProv 2 }

   adGenEasyPseudowireCEMTimeslotEntry OBJECT-TYPE
         SYNTAX         AdGenEasyPseudowireCEMTimeslotEntry
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "An entry in the Pseudowire CEM Timeslot Table. This table is indexed
            by the values returned from the adGenEasyPseudowireCEMNextIndex OID."
         INDEX   { adGenSlotInfoIndex, adGenEasyPseudowireCEMIndex }
         ::= { adGenEasyPseudowireCEMTimeslotTable 1 }

   AdGenEasyPseudowireCEMTimeslotEntry ::=
         SEQUENCE {
                adGenEasyPseudowireCEMIndex              Integer32,
                adGenEasyPseudowireCEMPweIfIndex         InterfaceIndex,
                adGenEasyPseudowireCEMStartingPweTimeslot   Integer32,
                adGenEasyPseudowireCEMPhysicalPortIfIndex   InterfaceIndex,
                adGenEasyPseudowireCEMPhyTimeslots       OCTET STRING,
                adGenEasyPseudowireCEMAction          INTEGER,
                adGenEasyPseudowireCEMErrorString        DisplayString,
                adGenEasyPseudowireCEMStatusString       INTEGER,
                adGenEasyPseudowireCEMRowStatus          RowStatus
         }

   adGenEasyPseudowireCEMIndex OBJECT-TYPE
         SYNTAX         Integer32
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "This is an arbitrary index assigned by the adGenEasyPseudowireCEMNextIndex OID."
         ::= { adGenEasyPseudowireCEMTimeslotEntry 1 }

   adGenEasyPseudowireCEMPweIfIndex OBJECT-TYPE
         SYNTAX         InterfaceIndex
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "This is the index of the pseudowire channel."
         ::= { adGenEasyPseudowireCEMTimeslotEntry 2 }

   adGenEasyPseudowireCEMStartingPweTimeslot OBJECT-TYPE
         SYNTAX         Integer32
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "Starting Pseudowire timeslot."
         ::= { adGenEasyPseudowireCEMTimeslotEntry 3 }

   adGenEasyPseudowireCEMPhysicalPortIfIndex OBJECT-TYPE
         SYNTAX         InterfaceIndex
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The ifIndex of the physical DS1/E1 connected to the pseudowire channel."
         ::= { adGenEasyPseudowireCEMTimeslotEntry 4 }

   adGenEasyPseudowireCEMPhyTimeslots OBJECT-TYPE
         SYNTAX         OCTET STRING
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "Bitmap of timeslots from DS1/E1 to be connected to the pseudowire channel.
            Three octets are used to represent the 24 timeslots of DS1 and four octets
            are used to represent the 32 timeslots of E1. Each octet within the value
            of this object specifies a set of eight timeslots, with the first octet
            specifying timeslots 1 through 8, the second octet specifying timeslots
            9 through 16, etc.  Within each octet, the least significant bit represents
            the lowest numbered timeslot and the most significant bit represents the highest
            numbered timeslot. Thus, each timeslot is represented by a single bit within the
            value of this object. Writing a '1' to a given bit location selects that timeslot
            and the timeslot is not included if its bit is set to '0'.
            For ex. setting this object to 00 00 FC 3F selects timeslots 1 through 6 and
            11 through 16."
         ::= { adGenEasyPseudowireCEMTimeslotEntry 5 }

   adGenEasyPseudowireCEMAction OBJECT-TYPE
         SYNTAX         INTEGER
                        {
                           add(1),
                           remove(2)
                        }
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "Set this object to add/remove a row in the table."
         ::= { adGenEasyPseudowireCEMTimeslotEntry 6 }

   adGenEasyPseudowireCEMErrorString OBJECT-TYPE
         SYNTAX         DisplayString
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "Indicates the reason for the error if there was an error in provisioning."
         ::= { adGenEasyPseudowireCEMTimeslotEntry 7 }

   adGenEasyPseudowireCEMStatusString OBJECT-TYPE
       SYNTAX          INTEGER
                       {
                         pass(1),
                         fail(2),
                         inProgress(3)
                       }
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
           "This object indicates the status of the last attempted activation of this
            row. It will indicate pass/fail/inProgress status."
         ::= { adGenEasyPseudowireCEMTimeslotEntry 8 }

   adGenEasyPseudowireCEMRowStatus OBJECT-TYPE
         SYNTAX         RowStatus
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "For this row to go active each parameter in this table must be set.
            If an activate fails then the adGenEasyPseudowireCEMErrorString will be populated
            with the failure reasons.."
         ::= { adGenEasyPseudowireCEMTimeslotEntry 9 }

END
