LUM-SNMP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, IpAddress
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    SnmpEngineID
        FROM SNMP-FRAMEWORK-MIB
    RowStatus, DisplayString, DateAndTime, StorageType
        FROM SNMPv2-TC
    lumModules, lumSnmpMIB
        FROM LUM-REG
    CommandString
        FROM LUM-TC;

lumSnmpMIBModule MODULE-IDENTITY
    LAST-UPDATED 
        "200410010000Z" -- October 1st 2004
    ORGANIZATION 
        "Transmode Systems AB"
    CONTACT-INFO
        "support@transmode.se"
    DESCRIPTION
        "The SNMP MIB.

        - General 

        - Inform sink list (trap receivers)

        - USM user definitions

        //$Id: LUM-SNMP-MIB.txt 3699 2008-06-05 12:05:14Z mac $
        //alias=snmp
        //persistent=yes"
    REVISION        
        "200410010000Z" -- October 1st 2004
    DESCRIPTION
        "Added table size variables."
    REVISION        
        "200406230000Z" -- July 23d 2004
    DESCRIPTION
        "Added possibility to set storagetype on informSink rows
        and added trap filtering for informSinks."
    REVISION        
        "200309300000Z" -- September 30th 2003
    DESCRIPTION
        "Updated compliance to indicate new functionality;
        it is now possible to create informSink rows."
    REVISION        
        "200205300000Z" -- May 30th 2002
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 18 }


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

lumSnmpConfs OBJECT IDENTIFIER ::= { lumSnmpMIB 1 }
lumSnmpGroups OBJECT IDENTIFIER ::= { lumSnmpConfs 1 }
lumSnmpCompl OBJECT IDENTIFIER ::= { lumSnmpConfs 2 }


-- ----------------------------------------------------
-- Root for objects in the snmp MIB
-- ----------------------------------------------------

lumSnmpMIBObjects OBJECT IDENTIFIER ::= { lumSnmpMIB 2 }


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

snmpInformSinkList OBJECT IDENTIFIER ::= { lumSnmpMIBObjects 1 } 
snmpGeneral OBJECT IDENTIFIER ::= { lumSnmpMIBObjects 2 } -- //alias=general
snmpUserList OBJECT IDENTIFIER ::= { lumSnmpMIBObjects 3 } 


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

-- n/a


-- ----------------------------------------------------
-- Informsink group
-- ----------------------------------------------------

snmpInformSinkTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF SnmpInformSinkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The notification (trap) receiver configuration 
        directives list."
    ::= { snmpInformSinkList 1 }

snmpInformSinkEntry OBJECT-TYPE
    SYNTAX      SnmpInformSinkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the notification (trap) receiver 
        list. Typically there should be one row 
        for each management system.

        Only SNMPv2c trap receivers are supported.

        Create:

        <address>[:<port>[:storage[:<community>[:<alarms>:<pm>:<other>]]]]
        
        Default values: port is set to 162, community 
        to 'public', storage to other(1) (meaning 
        configuration file), alarms, pm and other 
        to 'on'.

        Storagetype can also be set to volatile(2).
        Such entries will not be saved.

        //alias=notify" 
    INDEX { snmpInformSinkIndex }
    ::= { snmpInformSinkTable 1 }

SnmpInformSinkEntry ::=
    SEQUENCE {
        snmpInformSinkIndex                     Unsigned32,
        snmpInformSinkName                      DisplayString,
        snmpInformSinkAddr                      IpAddress,
        snmpInformSinkPort                      Unsigned32,
        snmpInformSinkCommunity                 DisplayString,
        snmpInformSinkRowStatus                 RowStatus,
        snmpInformSinkStorageType               StorageType,
        snmpInformSinkAlarmNotifications        INTEGER,
        snmpInformSinkPerformanceNotifications  INTEGER,
        snmpInformSinkOtherNotifications        INTEGER
    }

snmpInformSinkIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry. 

        //longAlias='Index'
        //alias=index
        //advanced=yes"
    ::= { snmpInformSinkEntry 1 }

snmpInformSinkName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Name assigned to each entry.

        //longAlias='Name'
        //alias=name
        //table=yes"
    ::= { snmpInformSinkEntry 2 }

snmpInformSinkAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The IP address for the notification (trap) 
        recevier.

        This attribute can be written via SNMP.
        //snmp='read-create'
        //range=no
        //longAlias='IP address'
        //alias=addr
        //persistent=yes
        //table=yes"
    ::= { snmpInformSinkEntry 3 }

snmpInformSinkPort OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The port number for the notification (trap) 
        receiver.

        This attribute can be written via SNMP.
        //snmp='read-create'
        //longAlias='Port number'
        //alias=port
        //persistent=yes
        //table=yes"
    DEFVAL { 162 }
    ::= { snmpInformSinkEntry 4 }

snmpInformSinkCommunity OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The community string included in the 
        notification (trap).
        Only SNMPv2c notifications (traps) are supported.

        This attribute can be written via SNMP.
        //snmp='read-write'
        //longAlias='Community'
        //alias=community
        //persistent=yes
        //table=yes"
    DEFVAL { "public" }
    ::= { snmpInformSinkEntry 5 }

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

        This attribute can be written via SNMP.
        
        Note: The newly created object will not necessarily
        receive the same index as used in the create
        procedure.
        //snmp='read-create'
        //alias=rowStatus
        //hidden=yes"
    ::= { snmpInformSinkEntry 6 }

snmpInformSinkStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Sets the storage type for the row.
        See also SNMPv2-TC.

        other(1) - Saved in configuration file.

        volatile(2) - Not saved.

        nonVolatile(3) - Not used

        permanent(4) - Not used.

        readOnly(5) - Not used.

        This attribute can be written via SNMP.
        
        Note: The newly created object will not necessarily
        receive the same index as used in the create
        procedure.
        //snmp='read-create'
        //alias=storageType
        //hidden=yes"
    ::= { snmpInformSinkEntry 7 }

snmpInformSinkAlarmNotifications OBJECT-TYPE
    SYNTAX      INTEGER {
                    off (1),
                    on (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mode for alarm notifications
        (traps) for the receiver.

        off - Alarms traps are inactive.
        
        on - Alarm traps are activated.

        //completion=yes
        //longAlias='Alarm traps'
        //alias=alarmTraps
        //persistent=yes
        //table=yes"
    DEFVAL { on }
    ::= { snmpInformSinkEntry  8 }

snmpInformSinkPerformanceNotifications OBJECT-TYPE
    SYNTAX      INTEGER {
                    off (1),
                    on (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mode for performance measurement 
        notifications (traps) for the receiver.

        off - PM traps are inactive.
        
        on - PM traps are activated.

        //completion=yes
        //longAlias='PM traps'
        //alias=pmTraps
        //persistent=yes
        //table=yes"
    DEFVAL { off }
    ::= { snmpInformSinkEntry  9 }

snmpInformSinkOtherNotifications OBJECT-TYPE
    SYNTAX      INTEGER {
                    off (1),
                    on (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mode for other notifications (traps)
        (not alarm or performance measurement related)
        for the receiver. 

        off - Other traps are inactive.
        
        on - Other traps are activated.

        //completion=yes
        //longAlias='Other traps'
        //alias=otherTraps
        //persistent=yes
        //table=yes"
    DEFVAL { off }
    ::= { snmpInformSinkEntry 10 }


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

snmpGeneralLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state of the MIB was last 
        changed. 
        //longAlias='State last change'
        //alias=stateLastChange"
    ::= { snmpGeneral 1 }
 
snmpGeneralConfigLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the configuration of the MIB was 
        last changed. 
        
        //longAlias='Configuration last change'
        //alias=configLastChange"
    ::= { snmpGeneral 2 }

snmpGeneralEngineID OBJECT-TYPE
    SYNTAX SnmpEngineID 
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The engine id for the SNMP agent.
        
        //persistent=yes
        //alias=engineId
        //hidden=yes"
    ::= { snmpGeneral 3 }

snmpGeneralCommunity OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The community string for the SNMP agent.
        Set to the empty string to disable SNMP v1 and v2c access.
        SNMP v1 and v2c access are read-only.
        
        //persistent=yes
        //longAlias='Community'
        //alias=community"
    DEFVAL { "public" }
    ::= { snmpGeneral 4 }

snmpGeneralInformSinkTableSize  OBJECT-TYPE
    SYNTAX      Unsigned32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of rows available in the 
        inform sink table.

        //longAlias='Notify table size'
        //alias=notifyTableSize
        //advanced=yes"
    ::= { snmpGeneral 5 }

snmpGeneralUserTableSize OBJECT-TYPE
    SYNTAX      Unsigned32 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of rows available in the 
        SNMP user table.

        //longAlias='User table size'
        //alias=userTableSize
        //advanced=yes"
    ::= { snmpGeneral 6 }


-- ----------------------------------------------------
-- User group
-- ----------------------------------------------------

snmpUserTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF SnmpUserEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The USM user list."
    ::= { snmpUserList 1 }

snmpUserEntry OBJECT-TYPE
    SYNTAX      SnmpUserEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the USM user table.

        Create: 

        <user>[:<password>]

        Default values: Password is set to the
        default password.

        //alias=user" 
    INDEX { snmpUserIndex }
    ::= { snmpUserTable 1 }

SnmpUserEntry ::=
    SEQUENCE {
        snmpUserIndex                   Unsigned32,
        snmpUserName                    DisplayString,
        snmpUserChangePassword          CommandString,
        snmpUserEngineId                SnmpEngineID,
        snmpUserAuthKey                 OCTET STRING }

snmpUserIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry. 

        //longAlias='Index'
        //alias=index
        //hidden=yes"
    ::= { snmpUserEntry 1 }

snmpUserName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Name assigned to each entry.

        //longAlias='Name'
        //alias=name
        //persistent=yes
        //table=yes"
    DEFVAL { "oper" }
    ::= { snmpUserEntry 2 }

snmpUserChangePassword OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Change user password.

        The password must be at least 8 
        characters long.

        Default password is set to '1234567890'.

        //alias=changePassword
        //longAlias='Change password'"
    DEFVAL { "1234567890" }
    ::= { snmpUserEntry 3 }

snmpUserEngineId OBJECT-TYPE
    SYNTAX SnmpEngineID
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The engine id used when the authority key was
        generated.

        //alias=engineId
        //persistent=yes
        //hidden=yes"
    ::= { snmpUserEntry 4 }

snmpUserAuthKey OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The authority key for the user.

        //alias=authKey
        //persistent=yes
        //hidden=yes"
    ::= { snmpUserEntry 5 }

-- tbd AuthProtocol
-- tbd PrivProtocol


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

-- n/a


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

snmpInformSinkGroup OBJECT-GROUP
    OBJECTS {
        snmpInformSinkIndex,
        snmpInformSinkName,
        snmpInformSinkAddr,
        snmpInformSinkPort,
        snmpInformSinkCommunity,
        snmpInformSinkRowStatus }
    STATUS      deprecated
    DESCRIPTION
        "The informsink objects."
    ::= { lumSnmpGroups 1 }

snmpGeneralGroup OBJECT-GROUP
    OBJECTS {
        snmpGeneralLastChangeTime,
        snmpGeneralConfigLastChangeTime }
    STATUS      deprecated
    DESCRIPTION
        "The general objects."
    ::= { lumSnmpGroups 2 }

snmpGeneralGroupV2 OBJECT-GROUP
    OBJECTS {
        snmpGeneralLastChangeTime,
        snmpGeneralConfigLastChangeTime,
        snmpGeneralEngineID }
    STATUS      deprecated
    DESCRIPTION
        "The general objects v2."
    ::= { lumSnmpGroups 3 }

snmpUserGroup OBJECT-GROUP
    OBJECTS {
        snmpUserIndex,
        snmpUserName,
        snmpUserChangePassword,
        snmpUserEngineId,
        snmpUserAuthKey }
    STATUS      current
    DESCRIPTION
        "The user objects."
    ::= { lumSnmpGroups 4 }

snmpGeneralGroupV3 OBJECT-GROUP
    OBJECTS {
        snmpGeneralLastChangeTime,
        snmpGeneralConfigLastChangeTime,
        snmpGeneralEngineID,
        snmpGeneralCommunity }
    STATUS      deprecated
    DESCRIPTION
        "The general objects v3."
    ::= { lumSnmpGroups 5 }

snmpInformSinkGroupV2 OBJECT-GROUP
    OBJECTS {
        snmpInformSinkIndex,
        snmpInformSinkName,
        snmpInformSinkAddr,
        snmpInformSinkPort,
        snmpInformSinkCommunity,
        snmpInformSinkRowStatus,
        snmpInformSinkStorageType,
        snmpInformSinkAlarmNotifications,
        snmpInformSinkPerformanceNotifications,
        snmpInformSinkOtherNotifications }
    STATUS      current
    DESCRIPTION
        "The informsink objects v2."
    ::= { lumSnmpGroups 6 }

snmpGeneralGroupV4 OBJECT-GROUP
    OBJECTS {
        snmpGeneralLastChangeTime,
        snmpGeneralConfigLastChangeTime,
        snmpGeneralEngineID,
        snmpGeneralCommunity,
        snmpGeneralInformSinkTableSize,
        snmpGeneralUserTableSize }
    STATUS      current
    DESCRIPTION
        "The general objects v4."
    ::= { lumSnmpGroups 7 }


-- ----------------------------------------------------
-- Compliance 
-- ----------------------------------------------------

lumSnmpBasicComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the SNMP MIB V1."
    MODULE
        MANDATORY-GROUPS {
            snmpInformSinkGroup,
            snmpGeneralGroup }
    ::= { lumSnmpCompl 1 }

lumSnmpBasicComplV2 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the SNMP MIB V2."
    MODULE
        MANDATORY-GROUPS {
            snmpInformSinkGroup,
            snmpGeneralGroupV2,
            snmpUserGroup }
    ::= { lumSnmpCompl 2 }

lumSnmpBasicComplV3 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the SNMP MIB V3."
    MODULE
        MANDATORY-GROUPS {
            snmpInformSinkGroup,
            snmpGeneralGroupV2,
            snmpUserGroup }
    ::= { lumSnmpCompl 3 }

lumSnmpBasicComplV4 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the SNMP MIB V4."
    MODULE
        MANDATORY-GROUPS {
            snmpInformSinkGroup,
            snmpGeneralGroupV3,
            snmpUserGroup }
    ::= { lumSnmpCompl 4 }

lumSnmpBasicComplV5 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the SNMP MIB V5."
    MODULE
        MANDATORY-GROUPS {
            snmpInformSinkGroupV2,
            snmpGeneralGroupV3,
            snmpUserGroup }
    ::= { lumSnmpCompl 5 }

lumSnmpBasicComplV6 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the SNMP MIB V6."
    MODULE
        MANDATORY-GROUPS {
            snmpInformSinkGroupV2,
            snmpGeneralGroupV4,
            snmpUserGroup }
    ::= { lumSnmpCompl 6 }


END
