-- ****************************************************************************
-- ****************************************************************************
--
--             Copyright(c) 2005 Mediatrix Telecom, Inc. 
--
--  NOTICE:
--   This document contains information that is confidential and proprietary
--   to Mediatrix Telecom, Inc. 
--
--   Mediatrix Telecom, Inc. 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
--   Mediatrix Telecom, Inc. 
--
--   Mediatrix Telecom, Inc. 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. 
--
-- ****************************************************************************
-- ****************************************************************************

MX-DIGITAL-PRODUCTS-MIB
DEFINITIONS ::= BEGIN

IMPORTS
       mediatrix                                FROM MX-SMI
       MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
       Integer32, Counter32, Gauge32,Counter64, TimeTicks  FROM SNMPv2-SMI
       TEXTUAL-CONVENTION, DisplayString,
       PhysAddress, TruthValue, RowStatus,
       TimeStamp, AutonomousType, TestAndIncr   FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP          FROM SNMPv2-CONF
       snmpTraps                                FROM SNMPv2-MIB
       enterprises                              FROM RFC1155-SMI;

mediatrixDigitalProducts MODULE-IDENTITY
        LAST-UPDATED "0208071000Z"
        ORGANIZATION "Mediatrix Telecom, Inc."
        CONTACT-INFO "Mediatrix Telecom, Inc. 
                      4229, Garlock Street
                      Sherbrooke (Quebec)
                      Canada
                      Phone: (819) 829-8749
                      Web: http://www.mediatrix.com"
        DESCRIPTION "This MIB describes the parameters of Mediatrix digital 
                     products."

        REVISION "0208071000Z"
        DESCRIPTION
            "Creation"
       ::= { mediatrix 3 }

-- ****************************************************************************
-- defining the objects
-- ****************************************************************************

 sysinfo         OBJECT IDENTIFIER ::= { mediatrixDigitalProducts 1 }
 admin           OBJECT IDENTIFIER ::= { mediatrixDigitalProducts 2 }
 config          OBJECT IDENTIFIER ::= { mediatrixDigitalProducts 3 }
 firmware        OBJECT IDENTIFIER ::= { mediatrixDigitalProducts 4 }
 products        OBJECT IDENTIFIER ::= { mediatrixDigitalProducts 5 }
 performance     OBJECT IDENTIFIER ::= { mediatrixDigitalProducts 70 }

 startupConfigUpload    OBJECT IDENTIFIER ::= { config 1 }
 startupConfigDownload  OBJECT IDENTIFIER ::= { config 2 }

-- ****************************************************************************
-- defining the sysinfo objects
-- ****************************************************************************

serialNumber OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..12))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Provides the serial number of the device."
        ::= { sysinfo 1 }

hwRelease OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..8))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Provides the hardware release of the device."
        ::= { sysinfo 3 }

hwVersion OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..8))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Provides the hardware version of the device."
        ::= { sysinfo 4 }

swVersion OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..255))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Provides the software version of the device. The following
            is an example of a software version information:

            R2.20 BUILD21219"
        ::= { sysinfo 5 }

productName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE(0..255))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Provides the product name of the device."
        ::= { sysinfo 6 }

-- ****************************************************************************
-- defining the startup config upload objects
-- ****************************************************************************

uploadExecute OBJECT-TYPE
        SYNTAX  INTEGER {
            noOp (0),
            uploadConfiguration (1)
            }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Starts configuration upload via TFTP.
                0 noOp
                1 uploadConfiguration"
       ::= { startupConfigUpload 1 }

uploadTftpServerAddress OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(1..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Tftp server IP address."
       ::= { startupConfigUpload 2 }

uploadTftpServerPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION "Tftp server IP port number."
        DEFVAL      { 69 }
       ::= { startupConfigUpload 3 }

uploadTftpServerPath OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(1..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Server path and file name on which the configuration will be stored.
             ( e.g. configurations/config1.cfg )"
       ::= { startupConfigUpload 4 }

uploadStatus OBJECT-TYPE
        SYNTAX  INTEGER {
            failed (0),
            success (1),
            inProgress (2)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The status of the running configuration transfer from the device to
             a file on the TFTP server.
                0 failed
                1 success
                2 inProgress"
        ::= { startupConfigUpload 5 }

-- ****************************************************************************
-- defining the startup config download objects
-- ****************************************************************************

downloadExecute OBJECT-TYPE
        SYNTAX  INTEGER {
            noOp (0),
            downloadConfiguration (1)
            }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Starts configuration download via TFTP. A reload of the device will
             be necessary in order to apply the new downloaded configuration.
                0 noOP
                1 downloadConfiguration"
       ::= { startupConfigDownload 1 }

downloadTftpServerAddress OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(1..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Tftp server IP address."
       ::= { startupConfigDownload 2 }

downloadTftpServerPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        ACCESS  read-write
        STATUS  current
        DESCRIPTION "Tftp server IP port number."
        DEFVAL      { 69 }
       ::= { startupConfigDownload 3 }

downloadTftpServerPath OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(1..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Server path and file name from which the configuration will
             be downloaded ( e.g. configurations/config1.cfg )."
       ::= { startupConfigDownload 4 }

downloadStatus OBJECT-TYPE
        SYNTAX  INTEGER {
            failed (0),
            success (1),
            inProgress (2)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The status of the configuration file transfer from the TFTP server to
             the device's startup configuration.
                0 failed
                1 success
                2 inProgress"
        ::= { startupConfigDownload 5 }

-- ****************************************************************************
-- defining the firmware download objects
-- ****************************************************************************

firmwareLoadExecute OBJECT-TYPE
        SYNTAX  INTEGER {
            noOp (0),
            loadFirmware (1)
            }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Starts firmware download via TFTP.
               0 noOp
               1 loadFirmware"
       ::= { firmware 1 }

firmwareTftpServerAddress OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(1..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Tftp server IP address."
       ::= { firmware 2 }

firmwareTftpServerPort OBJECT-TYPE
        SYNTAX INTEGER (1..65535)
        ACCESS  read-write
        STATUS  current
        DESCRIPTION "Tftp server IP port number."
        DEFVAL      { 69 }
       ::= { firmware 3 }

firmwareTftpServerPath OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(1..255))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Server path and file name of the firmware batch-file.
             ( e.g. firmware/b )"
       ::= { firmware 4 }

firmwareLoadStatus OBJECT-TYPE
        SYNTAX  INTEGER {
            failed (0),
            success (1),
            inProgress (2)
            }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
            "The status of the firmware download from the TFTP server to the device.
                0 failed
                1 success
                2 inProgress"
        ::= { firmware 5 }

-- ****************************************************************************
-- defining the admin objects
-- ****************************************************************************

deviceReload OBJECT-TYPE
        SYNTAX  INTEGER {
            noOp (0),
            reload (1)
            }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Force a reload of the device.
               0 noOp
               1 reload"
       ::= { admin 1 }

saveRunningConfig OBJECT-TYPE
        SYNTAX  INTEGER {
            noOp (0),
            saveConfiguration (1)
            }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
            "Save the device running configuration into the startup configuration.
               0 noOp
               1 saveConfiguration"
       ::= { admin 2 }

-- ****************************************************************************
-- defining the products objects
-- ****************************************************************************

mediatrix1400-2400              OBJECT IDENTIFIER ::= { products 2 }
mediatrix1500-1600-2500-2600    OBJECT IDENTIFIER ::= { products 3 }
-- ****************************************************************************
-- defining the performance objects
-- ****************************************************************************

 cpu             OBJECT IDENTIFIER ::= { performance 10 }
 memory          OBJECT IDENTIFIER ::= { performance 20 }
 temperature     OBJECT IDENTIFIER ::= { performance 30 }
 gateway         OBJECT IDENTIFIER ::= { performance 40 }

-- ****************************************************************************
-- defining the CPU objects
-- ****************************************************************************

          cpuNumber OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of CPUs present 
                       on this system."
              ::= { cpu 1 }

          cpuTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF CpuEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of CPU entries. The 
                       number of entries is given 
                       by the value of cpuNumber."
              ::= { cpu 2 }

          cpuEntry OBJECT-TYPE
              SYNTAX  CpuEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A CPU entry containing objects 
                       for corresponding to the CPU."
              INDEX {
        	         cpuDescr
                    }

              ::= { cpuTable 1 }

          CpuEntry ::= 
               SEQUENCE {
                  cpuDescr                      DisplayString,
                  cpuWorkloadCurrent            Gauge32,
                  cpuWorkload1MinuteAverage     Gauge32,
                  cpuWorkload5MinuteAverage     Gauge32
              }

          cpuDescr OBJECT-TYPE
              SYNTAX  DisplayString
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A name identifying the CPU."
              ::= { cpuEntry 1 }

          cpuWorkloadCurrent OBJECT-TYPE
              SYNTAX  Gauge32
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The current CPU workload in percent."
              ::= { cpuEntry 2 }

          cpuWorkload1MinuteAverage OBJECT-TYPE
              SYNTAX  Gauge32
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The CPU workload average over the 
                       last minute in percent."
              ::= { cpuEntry 3 }

          cpuWorkload5MinuteAverage OBJECT-TYPE
              SYNTAX  Gauge32
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The CPU workload average over the 
                       last 5 minutes in percent."
              ::= { cpuEntry 4 }

-- ****************************************************************************
-- defining the memory objects
-- ****************************************************************************

          memoryPoolNumber OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of memory pools 
                       present on this system."
              ::= { memory 1 }

          memoryPoolTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF MemoryPoolEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of memory pool entries. The 
                       number of entries is given by the 
                       value of memoryPoolNumber."
              ::= { memory 2 }

          memoryPoolEntry OBJECT-TYPE
              SYNTAX  MemoryPoolEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A memory pool entry containing objects 
                       for the corresponding memory pool."
              INDEX {
        	         memDescr
                    }

              ::= { memoryPoolTable 1 }

          MemoryPoolEntry ::=
              SEQUENCE {
                  memDescr            DisplayString,
                  memTotalBytes       INTEGER,
                  memAllocatedBytes   INTEGER,
                  memFreeBytes        INTEGER,
                  memLargestFreeBlock INTEGER,
                  memAllocatedBlocks  INTEGER,
                  memFreeBlocks       INTEGER
              }

          memDescr OBJECT-TYPE
              SYNTAX  DisplayString
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A name identifying the memory pool."
              ::= { memoryPoolEntry 1 }

          memTotalBytes OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  optional
              DESCRIPTION
                      "The total number of bytes 
                       belonging to the memory pool."
              ::= { memoryPoolEntry 2 }

          memAllocatedBytes OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The current number of allocated 
                       bytes in the memory pool."
              ::= { memoryPoolEntry 3 }

          memFreeBytes OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The current number of free bytes 
                       in the memory pool."
              ::= { memoryPoolEntry 4 }

          memLargestFreeBlock OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The size of the largest available 
                       free block."
              ::= { memoryPoolEntry 5 }

          memAllocatedBlocks OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The current number of allocated 
                       blocks in the memory pool."
              ::= { memoryPoolEntry 6 }

          memFreeBlocks OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory


              DESCRIPTION
                      "The current number of free blocks in the memory pool."
              ::= { memoryPoolEntry 7 }

-- ****************************************************************************
-- defining the temperature probe objects
-- ****************************************************************************

          tempProbeNumber OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of temperature probes 
                       present on this system."
              ::= { temperature 1 }

          tempProbeTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF TempProbeEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of temperature probe entries. 
                       The number of entries is given by the 
                       value of tempProbeNumber."
              ::= { temperature 2 }

          tempProbeEntry OBJECT-TYPE
              SYNTAX  TempProbeEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A temperature probe entry containing 
                       objects for the corresponding temperature 
                       probe."
              INDEX {
        	         tempProbeDescr
                    }
              
              ::= { tempProbeTable 1 }

          TempProbeEntry ::=
              SEQUENCE {
                  tempProbeDescr           DisplayString,
                  currentDegreesCelsius    Gauge32
              }

          tempProbeDescr OBJECT-TYPE
              SYNTAX  DisplayString
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A description for the temperature probe."
              ::= { tempProbeEntry 1 }

          currentDegreesCelsius OBJECT-TYPE
              SYNTAX  Gauge32
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The current temperature measured by the 
                       temperature probe in degrees celsius."
              ::= { tempProbeEntry 2 }

-- ****************************************************************************
-- defining the gateway objects
-- ****************************************************************************

          gwNumber OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of gateways present on 
                       this system."
              ::= { gateway 1 }

          gwTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF GwEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of gateway entries.  The number of
                       entries is given by the value of gwNumber."
              
              ::= { gateway 2 }

          gwEntry OBJECT-TYPE
              SYNTAX  GwEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A gateway entry containing objects for 
                       the corresponding gateway."
              INDEX {
        	         gwDescr
                    }

              ::= { gwTable 1 }

          GwEntry ::=
              SEQUENCE {
                  gwDescr                 DisplayString,
                  gwCurrentConnectedCalls Gauge32,
                  gwCurrentOngoingCalls   Gauge32,
                  gwTotalAccumulatedCalls Counter32
              }

          gwDescr OBJECT-TYPE
              SYNTAX  DisplayString
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A description of the gateway type."
              ::= { gwEntry 1 }

          gwCurrentConnectedCalls OBJECT-TYPE
              SYNTAX  Gauge32
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of calls on all instances 
                      of this gateway type that are currently in 
                      the connected state."
              ::= { gwEntry 2 }

          gwCurrentOngoingCalls OBJECT-TYPE
              SYNTAX  Gauge32
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of calls on all instances of 
                       this gateway type that are currently in the 
                       connected, a call setup or a call clearing 
                       state."
              ::= { gwEntry 3 }

          gwTotalAccumulatedCalls OBJECT-TYPE
              SYNTAX  Counter32
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total accumulated number of calls 
                       processed on all instances of this gateway 
                       type since the system has started."
              ::= { gwEntry 4 }


END
