-- ****************************************************************************
-- ****************************************************************************
--             Copyright(c) 2004 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-SNMP-MIB
DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Unsigned32,
        Integer32
    FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
    FROM SNMPv2-CONF
        MxEnableState,
        MxActivationState,
        MxIpHostName,
        MxIpAddress,
        MxIpPort,
        MxAdvancedIpPort,
        MxIpSubnetMask,
        MxDigitMap
    FROM MX-TC
        MxUInt64,
        MxFloat32,
        MxIpHostNamePort,
        MxIpAddr,
        MxIpAddrPort,
        MxIpAddrMask,
        MxUri,
        MxUrl
    FROM MX-TC2
        mediatrixServices
    FROM MX-SMI2;

snmpMIB MODULE-IDENTITY
 LAST-UPDATED   "1910210000Z"
 ORGANIZATION " Mediatrix Telecom, Inc. "
 CONTACT-INFO " Mediatrix Telecom, Inc.
                4229, Garlock Street
                Sherbrooke (Quebec)
                Canada
                Phone: (819) 829-8749
                "
 DESCRIPTION  " Simple Network Management Protocol

                The Simple Network Management Protocol (SNMP) service allows
                the administrator to manage the unit using the SNMP protocol.
                "
 ::= { mediatrixServices 900 }

snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 }

-- ****************************************************************************

-- Group:SNMP Protocol

-- Contains parameters for selecting the SNMP protocol with associated
-- authentication and privacy settings.
-- ****************************************************************************

protocolGroup OBJECT IDENTIFIER
 ::= { snmpMIBObjects 200 }
 -- Scalar:Enable SNMPv1

 enableSnmpV1 OBJECT-TYPE
  SYNTAX        MxEnableState
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Enable SNMPv1

                Specifies if a user can connect to the system by using SNMPv1.
                Please note that a 'public' user might be granted (unsecure)
                access by using v1 while an 'admin' user should rather be
                granted a v3 access.
                "
  DEFVAL        { disable }
  ::= { protocolGroup 200 }

 -- Scalar:Enable SNMPv2

 enableSnmpV2 OBJECT-TYPE
  SYNTAX        MxEnableState
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Enable SNMPv2

                Specifies if a user can connect to the system by using SNMPv2.
                Please note that a 'public' user might be granted (unsecure)
                access by using v2 while an 'admin' user should rather be
                granted a v3 access.
                "
  DEFVAL        { disable }
  ::= { protocolGroup 300 }

 -- Scalar:Enable SNMPv3

 enableSnmpV3 OBJECT-TYPE
  SYNTAX        MxEnableState
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Enable SNMPv3

                Specifies if a user can connect to the system by using SNMPv3.
                Please note that a 'public' user might be granted (unsecure)
                access by using v1 while an 'admin' user should rather be
                granted a v3 access.
                "
  DEFVAL        { enable }
  ::= { protocolGroup 400 }

 -- Scalar:Authentication Protocol

 authProtocol OBJECT-TYPE
  SYNTAX        INTEGER { md5(100) , sha1(200) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Authentication Protocol

                Protocol to use with SNMPv3.

                  * Md5: MD5 encoding is used.
                  * Sha1: SHA1 encoding is used.

                "
  DEFVAL        { md5 }
  ::= { protocolGroup 500 }

 -- Scalar:Privacy Protocol

 privProtocol OBJECT-TYPE
  SYNTAX        INTEGER { none(0) , des(100) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Privacy Protocol

                Protocol to use with SNMPv3.

                  * None: No encryption is used. The PrivPassword parameter is
                    ignored.
                  * DES: DES encryption is used.

                "
  DEFVAL        { none }
  ::= { protocolGroup 600 }

 -- Scalar:Privacy Password

 privPassword OBJECT-TYPE
  SYNTAX        OCTET STRING
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Privacy Password

                Password to use with SNMPv3 when using DES privacy. If 'None'
                is used, the PrivPassword parameter is ignored.

                "
  DEFVAL        { "PrivPassword" }
  ::= { protocolGroup 700 }

 -- Scalar:Community

 community OBJECT-TYPE
  SYNTAX        OCTET STRING ( SIZE(1..32) )
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Community

                String to use for the community field of SNMPv1 and SNMPv2
                read-write commands and traps. It must not be empty.

                The use of a community name provides context for agents
                receiving requests and initiating traps. An SNMP agent won't
                respond to a request from a management system outside its
                configured community.

                "
  DEFVAL        { "public" }
  ::= { protocolGroup 800 }

 -- Scalar:Snmp User

 snmpUser OBJECT-TYPE
  SYNTAX        OCTET STRING ( SIZE(0..50) )
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Snmp User

                User name used by the SNMP v1/v2 to access the configuration.

                If this parameter is empty, the community name is used as the
                user name (see the Community parameter).

                Note: In both cases, if the provided user name does not exist
                in the AAA.UsersStatus table, the SNMP access will fail.

                "
  DEFVAL        { "" }
  ::= { protocolGroup 900 }

-- End of group:SNMP Protocol

-- ****************************************************************************

-- Group:Standard Traps

-- Contains parameters that configure the behaviour of the standard traps.
-- ****************************************************************************

standardTrapsGroup OBJECT IDENTIFIER
 ::= { snmpMIBObjects 300 }
 -- Scalar:Trap Destination

 trapDest OBJECT-TYPE
  SYNTAX        OCTET STRING ( SIZE(0..255) )
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Trap Destination

                Addresses/FQDNs and ports where to send traps.

                Up to 5 comma-separated destinations can be specified. The
                port numbers are optional.

                Note that the traps are sent simultaneously to all resolved
                destinations. If an FQDN cannot be resolved, this destination
                will be skipped and will not receive the traps.

                "
  DEFVAL        { "192.168.10.10:162" }
  ::= { standardTrapsGroup 100 }

 -- Scalar:Trap Enable

 enableTrap OBJECT-TYPE
  SYNTAX        MxEnableState
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Trap Enable

                Specifies if traps can be sent.
                "
  DEFVAL        { enable }
  ::= { standardTrapsGroup 200 }

-- End of group:Standard Traps

-- Scalar:Listen Port

port OBJECT-TYPE
 SYNTAX        MxIpPort
 MAX-ACCESS    read-write
 STATUS        current
 DESCRIPTION " Listen Port

               Port on which the SNMP service should listen for incoming SNMP
               requests.
               "
 DEFVAL        { 161 }
 ::= { snmpMIBObjects 400 }

-- ***********************************************************************

-- Group:Statistics

-- ***********************************************************************

statisticsGroup OBJECT IDENTIFIER
        ::= { snmpMIBObjects 10000 }
        -- Scalar:Number of GET Requests

        statsGetRequest OBJECT-TYPE
         SYNTAX        Unsigned32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION " Number of GET Requests

                       Number of GET Requests handled by the service.
                       "
         ::= { statisticsGroup 100 }

        -- Scalar:Number of GET-NEXT requests

        statsGetNextRequest OBJECT-TYPE
         SYNTAX        Unsigned32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION " Number of GET-NEXT requests

                       Number of GET-NEXT requests handled by the
                       service.
                       "
         ::= { statisticsGroup 200 }

        -- Scalar:Number of SET Requests

        statsSetRequest OBJECT-TYPE
         SYNTAX        Unsigned32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION " Number of SET Requests

                       Number of SET requests handled by the service.
                       "
         ::= { statisticsGroup 300 }

-- End of group:Statistics

-- ****************************************************************************

-- Group:Notification Messages Configuration

-- ****************************************************************************

notificationsGroup OBJECT IDENTIFIER
 ::= { snmpMIBObjects 60010 }
 -- Scalar:Minimal Severity of Notification

 minSeverity OBJECT-TYPE
  SYNTAX        INTEGER { disable(0) , debug(100) , info(200) , warning(300) ,
                error(400) , critical (500) }
  MAX-ACCESS    read-write
  STATUS        current
  DESCRIPTION " Minimal Severity of Notification

                Sets the minimal severity to issue a notification message
                incoming from this service.

                  * Disable: No notification is issued.
                  * Debug: All notification messages are issued.
                  * Info: Notification messages with a 'Informational' and
                    higher severity are issued.
                  * Warning: Notification messages with a 'Warning' and higher
                    severity are issued.
                  * Error: Notification messages with an 'Error' and higher
                    severity are issued.
                  * Critical: Notification messages with a 'Critical' severity
                    are issued.

                "
  DEFVAL        { warning }
  ::= { notificationsGroup 100 }

-- End of group:Notification Messages Configuration

-- ****************************************************************************

-- Group:Configuration Settings

-- ****************************************************************************

configurationGroup OBJECT IDENTIFIER
 ::= { snmpMIBObjects 60020 }
 -- Scalar:Need Restart

 needRestartInfo OBJECT-TYPE
  SYNTAX        INTEGER { no(0) , yes(100) }
  MAX-ACCESS    read-only
  STATUS        current
  DESCRIPTION " Need Restart

                Indicates if the service needs to be restarted for the
                configuration to fully take effect.

                  * Yes: Service needs to be restarted.
                  * No: Service does not need to be restarted.

                Services can be restarted by using the
                Scm.ServiceCommands.Restart command.

                "
  ::= { configurationGroup 100 }

-- End of group:Configuration Settings

END
