-- **SDOC***********************************************************************
-- *****************************************************************************
--
--             Copyright(c) 2005 Mediatrix Telecom, Inc.
--             Copyright(c) 2008 Media5 Corporation. ("Media5")
--
--  NOTICE:
--   This document contains information that is confidential and proprietary
--   to Media5.
--
--   Media5 reserves all rights to this document as well as to the Intellectual
--   Property of the document and the technology and know-how that it includes
--   and represents.
--
--   This publication cannot be reproduced, neither in whole nor in part, in
--   any form whatsoever without written prior approval by Media5.
--
--   Media5 reserves the right to revise this publication and make changes at
--   any time and without the obligation to notify any person and/or entity of
--   such revisions and/or changes.
-- *****************************************************************************
-- **EDOC***********************************************************************

MX-ATM-MIB
DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Unsigned32
    FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
    FROM SNMPv2-CONF
        MxEnableState
    FROM MX-TC
        mediatrixMgmt,
        mediatrixConfig
    FROM MX-SMI;

atmMIB MODULE-IDENTITY
    LAST-UPDATED "200501270000Z"
    ORGANIZATION "Mediatrix Telecom, Inc."
    CONTACT-INFO "Mediatrix Telecom, Inc.
                  4229, Garlock Street
                  Sherbrooke (Quebec)
                  Canada, J1L 2C8
                  Phone: (819) 829-8749
                  http://www.mediatrix.com"
    DESCRIPTION  "This MIB is used to configure ATM/OAM/AAL5 layers
                  and to provide stats from those layers."


    -- *************************************************************************
    -- Revision history
    -- *************************************************************************
    REVISION    "200808250000Z"
    DESCRIPTION "Correction of atmTxTrafficClass and atmRxTrafficClass enum syntax. Corrections of atmVcEnable defvalue"
    REVISION    "200501270000Z"
    DESCRIPTION "Creation."
    REVISION    "200501310000Z"
    DESCRIPTION "Revision by reviewer."
    REVISION    "200502080000Z"
    DESCRIPTION "Corrections."
    REVISION    "200509010000Z"
    DESCRIPTION "Multiple PVC support."
    ::= { mediatrixConfig 300 }

atmMIBObjects OBJECT IDENTIFIER ::= { atmMIB 1 }
atmConformance OBJECT IDENTIFIER ::= { atmMIB 2 }

atmStatus  OBJECT IDENTIFIER ::= { mediatrixMgmt 150 }

    -- *************************************************************************
    -- Table of Virtal Circuit, indexed by channels
    -- *************************************************************************
    atmVcTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF AtmVcEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "A table of supported virtual circuit (VC)"
        ::= { atmMIBObjects 50 }

        atmVcEntry OBJECT-TYPE
            SYNTAX      AtmVcEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION "A row in the atmVcTable table. It contains the configuration of the VC for this
                         interface."
            INDEX       {
                            atmVcIndex
                        }
            ::= { atmVcTable 5 }

            AtmVcEntry ::= SEQUENCE
                {
                    atmVcIndex                       Unsigned32,
                    atmVcName                        OCTET STRING,
                    atmVcEnable                      MxEnableState,
                    atmVcType                        INTEGER,
                    atmVcInUse                       INTEGER,
                    atmVpi                           Unsigned32,
                    atmVci                           Unsigned32,
                    atmEncapsulation                 INTEGER,
                    atmTxTrafficClass                INTEGER,
                    atmTxPeakCellRate                Unsigned32,
                    atmTxSustainableCellRate         Unsigned32,
                    atmTxMaximumBurstSize            Unsigned32,
                    atmTxCellDelayVariationTolerance Unsigned32,
                    atmTxMinimumCellRate             Unsigned32,
                    atmTxMaximumSdu                  Unsigned32,
                    atmRxTrafficClass                INTEGER,
                    atmRxPeakCellRate                Unsigned32,
                    atmRxSustainableCellRate         Unsigned32,
                    atmRxMaximumBurstSize            Unsigned32,
                    atmRxCellDelayVariationTolerance Unsigned32,
                    atmRxMinimumCellRate             Unsigned32,
                    atmRxMaximumSdu                  Unsigned32
               }

            atmVcIndex OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION "Index for supported VC."
                ::= { atmVcEntry 50 }

            atmVcName OBJECT-TYPE
                SYNTAX      OCTET STRING (SIZE(0..255))
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates a user-defined name for this VC."
                ::= { atmVcEntry 55 }

            atmVcEnable OBJECT-TYPE
                SYNTAX      MxEnableState
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Enable or disable the VC."
                DEFVAL { disable }
                ::= { atmVcEntry 60 }

            atmVcType       OBJECT-TYPE
                SYNTAX      INTEGER {
                                       bridge(0),
                                       wan(1)
                                    }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Indicates the function for which this VC will be used.

                             bridge : If the IpRouting is disabled, the LAN port will use the first enabled
                                      bridge VC in order to act as a bridge for a IP device connected to the
                                      Computer port. In case that the IpRouting is enabled, all bridge VCs
                                      are ignored.

                             wan: This type of VC is used for WAN.

                             The type of the first VC is set to WAN and it is always enabled since it is
                             requested to have a valid configuration. This WAN VC is always the one used to
                             operate/administrate and manage the unit."
                DEFVAL { bridge }
                ::= { atmVcEntry 65 }

            atmVcInUse OBJECT-TYPE
                SYNTAX      INTEGER {
                                       notUsed(0),
                                       inUse(1)
                                    }
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION "VC usage state."
                DEFVAL { notUsed }
                ::= { atmVcEntry 75 }

            atmVpi OBJECT-TYPE
                SYNTAX  Unsigned32 (0..255)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the selected Virtual Path Indicator to use for the VC connection."
                DEFVAL { 0 }
                ::= { atmVcEntry 100 }

            atmVci OBJECT-TYPE
                SYNTAX  Unsigned32 (32..65535)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the selected Virtual Channel Indicator to use for the VC connection."
               DEFVAL { 32 }
               ::= { atmVcEntry 150 }

            atmEncapsulation OBJECT-TYPE
                SYNTAX  INTEGER {
                                  llcBridged(0),
                                  vcMuxBridged(1),
                                  llcRouted(3),
                                  vcMuxRouted(4)
                                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the encapsulation used.
                                  llcBridged(0)  : LLC SNAP Encapsulation used with a bridged protocol.
                                  vcMuxBridged(1): VC Mux encapsulation used with a bridged protocol.
                                  llcRouted(3)   : LLC SNAP Encapsulation used with a routed protocol.
                                  vcMuxRouted(4) : VC Mux encapsulation used with a routed protocol."
                DEFVAL      { llcBridged }
                ::= { atmVcEntry 200 }

            atmTxTrafficClass OBJECT-TYPE
                SYNTAX  INTEGER {
                                  ubr(1),
                                  cbr(2),
                                  vbr(3)
                                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Traffic class value for VC.
                                  ubr(1) : Undefined Bit Rate (best effort)
                                  cbr(2) : Constant Bit Rate
                                  vbr(3) : Variable Bit Rate"
                DEFVAL      { ubr }
                ::= { atmVcEntry 250 }

            atmTxPeakCellRate OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the peak cell rate used by this VC.(cells/seconds)"
               DEFVAL { 0 }
               ::= { atmVcEntry 300 }

            atmTxSustainableCellRate OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the Sustainable Cell Rate used by this VC.(cells/seconds)
                             Only meaningful for atmQos = VBR."
               DEFVAL { 0 }
               ::= { atmVcEntry 350 }

            atmTxMaximumBurstSize OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the maximum burst size for this VC.(cells/seconds)
                             Only meaningful for a traffic class of VBR."
               DEFVAL { 0 }
               ::= { atmVcEntry 400 }

            atmTxCellDelayVariationTolerance OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the maximum Cell Delay Variation Tolerance for the VC connection in
                             microseconds.
                             Only meaningful for traffic class of  VBR or CBR."
               DEFVAL { 0 }
               ::= { atmVcEntry 450 }

            atmTxMinimumCellRate OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the minimum cell rate size for this VC. (cells/seconds)"
               DEFVAL { 0 }
               ::= { atmVcEntry 500 }

            atmTxMaximumSdu OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the maximum size of payload for an ATM cell for the VC connection (bytes)."
               DEFVAL { 1524 }
               ::= { atmVcEntry 550 }

            atmRxTrafficClass OBJECT-TYPE
                SYNTAX  INTEGER {
                                  ubr(1),
                                  cbr(2),
                                  vbr(3)
                                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Traffic class value for VC.
                                  ubr(1) : Undefined Bit Rate (best effort)
                                  cbr(2) : Constant Bit Rate
                                  vbr(3) : Variable Bit Rate"
                DEFVAL      { ubr }
                ::= { atmVcEntry 575 }

            atmRxPeakCellRate OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the peak cell rate used by this VC.(cells/seconds)"
               DEFVAL { 0 }
               ::= { atmVcEntry 600 }

            atmRxSustainableCellRate OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the Sustainable Cell Rate used by this VC.(cells/seconds)
                             Only meaningful for a traffic class of VBR."
               DEFVAL { 0 }
               ::= { atmVcEntry 650 }

            atmRxMaximumBurstSize OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the maximum burst size for this VC.(cells/seconds)
                             Only meaningful for a traffic class of VBR."
               DEFVAL { 0 }
               ::= { atmVcEntry 700 }

            atmRxCellDelayVariationTolerance OBJECT-TYPE
                SYNTAX      Unsigned32 (0..9999)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the Cell Delay Variation Tolerance for the VC connection.(micro seconds)
                             Only meaningful for a traffic class of VBR or CBR."
               DEFVAL { 0 }
               ::= { atmVcEntry 750 }

            atmRxMinimumCellRate OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the minimum cell rate size for this VC. (cells/seconds)"
               DEFVAL { 0 }
               ::= { atmVcEntry 800 }

            atmRxMaximumSdu OBJECT-TYPE
                SYNTAX      Unsigned32
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "Sets the maximum size of payload for an ATM cell for the VC connection (bytes)."
               DEFVAL { 1524 }
               ::= { atmVcEntry 850 }


    -- *************************************************************************
    -- ATM OAM commands
    -- *************************************************************************
    oamTools    OBJECT IDENTIFIER ::= { atmMIBObjects 100 }

        oamResult OBJECT-TYPE
                SYNTAX      INTEGER {
                                       failed(0),
                                       success(1),
                                       pending(2),
                                       notStarted(3)
                                    }
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION "Hold the values of the last OAM operation performed.
                                 failed(0): OAM test failed.
                                 success(1): OAM test success.
                                 pending(2): OAM test pending.
                                 notStarted(3): OAM not started
                             "
                ::= { oamTools 50 }

        generateOamPing OBJECT-TYPE
                SYNTAX  INTEGER {
                                  noOp(0),
                                  ping(1)
                                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "This command generates an OAM ping operation. This command has the following
                             values:
                                - noOp(0) : No operation. When read, this
                                            value is returned.
                                - ping(1) : Perform the OAM ping.

                             This command also uses the following variables:
                                - oamPingType: F4 OAM ping or F5 OAM ping.
                                - oamVpi : Value for the VPI.
                                - oamVci : Value for the VCI (only used for f5OamPing commands).
                                - oamMode: Value for the OAM mode (end-to-end or segment)
                               - oamLimitTimeout:Timeout value in milliseconds"
                DEFVAL      { noOp }
                ::= { oamTools 100 }

        -- ********************************************************************
        -- ATM OAM parameters
        -- ********************************************************************
        oamToolsParameters    OBJECT IDENTIFIER ::= { oamTools 1000 }

            oamPingType OBJECT-TYPE
                SYNTAX  INTEGER {
                                  f4OamPing(0),
                                  f5OamPing(1)
                                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "This command generates an OAM ping operation. This command has the following
                             values:
                                - f4OamPing(0): OAM ping on the VP.
                                - f5OamPing(1): OAM ping on the VC."
                DEFVAL      { f4OamPing }
                ::= { oamToolsParameters 100 }

            oamVpi OBJECT-TYPE
                SYNTAX  Unsigned32 (0..255)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "This variable indicates the VPI part of the PVC to be tested for an OAM ping
                             command."
                DEFVAL      { 0 }
                ::= { oamToolsParameters 150 }

             oamVci OBJECT-TYPE
                SYNTAX  Unsigned32 (0..65535)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "This variable indicates the VCI part of the PVC to be tested by an OAM ping
                             command. Only used for F5 OAM ping."
                DEFVAL      { 32 }
                ::= { oamToolsParameters 200 }

             oamMode OBJECT-TYPE
                SYNTAX  INTEGER {
                                  segmented(0),
                                  endToEnd(1)
                                }
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "This variable indicates what the target of the OAM ping command refers to.
                                 segmented(0): Middle man of VC
                                 endToEnd(1) : End point of VC"
                DEFVAL      { endToEnd }
                ::= { oamToolsParameters 250 }

             oamTimeOut OBJECT-TYPE
                SYNTAX      Unsigned32 (0 | 10..60000)
                MAX-ACCESS  read-write
                STATUS      current
                DESCRIPTION "This variable indicates a timeout value in milliseconds to wait for the
                             completion of the OAM ping. 0 means no limit. Otherwise the lower limit
                             is 10 milliseconds."
                DEFVAL      { 0 }
                ::= { oamToolsParameters 300 }

    -- *************************************************************************
    -- aal5Stats
    -- *************************************************************************
        aal5Stats    OBJECT IDENTIFIER ::= { atmStatus 200 }

            aal5TxPdu OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Total number of AAL5 frames sent since last reset."
                    ::= { aal5Stats 50 }

            aal5RxPdu OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Total number of AAL5 frames received since last reset."
                    ::= { aal5Stats 100 }

            aal5TxTotalBytes OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Total bytes sent with AAL5 since last reset."
                    ::= { aal5Stats 150 }

            aal5RxTotalBytes OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Total bytes received with AAL5 since last reset."
                    ::= { aal5Stats 200 }

            aal5TxTotalErrorCounts OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Total error counts with AAL5 on cells sent since last reset."
                    ::= { aal5Stats 250 }

            aal5RxTotalErrorCounts      OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Total error counts with AAL5 on cells received since last reset."
                    ::= { aal5Stats 300 }

    -- *************************************************************************
    -- oamStats
    -- *************************************************************************
        oamStats    OBJECT IDENTIFIER ::= { atmStatus 250 }

            oamNearEndF5LoopBackCount OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Counter indicating the number of segmented OAM F5 Ping since last reset."
                    ::= { oamStats 50 }

            oamNearEndF4LoopBackCount OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Counter indicating the number of segmented OAM F4 Ping since last reset."
                    ::= { oamStats 100 }

            oamFarEndF5LoopBackCount OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Counter indicating the number of end-to-end OAM F5 Ping since last reset."
                    ::= { oamStats 150 }

            oamFarEndF4LoopBackCount OBJECT-TYPE
                    SYNTAX      Unsigned32
                    MAX-ACCESS  read-only
                    STATUS      current
                    DESCRIPTION "Counter indicating the number of end-to-end OAM F4 Ping since last reset."
                    ::= { oamStats 200 }


    -- *************************************************************************
    -- Conformance information
    -- *************************************************************************
    atmCompliances OBJECT IDENTIFIER ::= { atmConformance 1 }

    atmComplVer1 MODULE-COMPLIANCE
        STATUS      current
        DESCRIPTION
            "List of groups required to support ATM."
        MODULE  -- This Module
            MANDATORY-GROUPS {
                                atmVcVer1,
                                atmOamVer1,
                                atmStatusVer1
                             }
        ::= { atmCompliances 1 }

    -- *************************************************************************
    --  MIB variable grouping
    -- *************************************************************************
    atmGroups OBJECT IDENTIFIER ::= { atmConformance 5 }

    atmVcVer1 OBJECT-GROUP
        OBJECTS {
                    atmVcIndex,
                    atmVcInUse,
                    atmVpi,
                    atmVci,
                    atmEncapsulation,
                    atmTxTrafficClass,
                    atmTxPeakCellRate,
                    atmTxSustainableCellRate,
                    atmTxMaximumBurstSize,
                    atmTxCellDelayVariationTolerance,
                    atmTxMinimumCellRate,
                    atmTxMaximumSdu,
                    atmRxTrafficClass,
                    atmRxPeakCellRate,
                    atmRxSustainableCellRate,
                    atmRxMaximumBurstSize,
                    atmRxCellDelayVariationTolerance,
                    atmRxMinimumCellRate,
                    atmRxMaximumSdu
               }
        STATUS current
        DESCRIPTION
            "A collection of objects that defines the characteristics of VCs."
        ::= { atmGroups 50}

    atmOamVer1 OBJECT-GROUP
        OBJECTS {
                    oamResult,
                    generateOamPing,
                    oamPingType,
                    oamVpi,
                    oamVci,
                    oamMode,
                    oamTimeOut
                }
        STATUS current
        DESCRIPTION
            "A collection of objects that defines the characteristics of OAMs."
        ::= { atmGroups 100 }

    atmStatusVer1 OBJECT-GROUP
        OBJECTS {
                    aal5TxPdu,
                    aal5RxPdu,
                    aal5TxTotalBytes,
                    aal5RxTotalBytes,
                    aal5TxTotalErrorCounts,
                    aal5RxTotalErrorCounts,
                    oamNearEndF5LoopBackCount,
                    oamNearEndF4LoopBackCount,
                    oamFarEndF5LoopBackCount,
                    oamFarEndF4LoopBackCount
                }
        STATUS current
        DESCRIPTION
            "A collection of objects that defines the status of ATM."
        ::= { atmGroups 150 }

END
