LUM-SOFTWARE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, IpAddress, NOTIFICATION-TYPE,
    Gauge32
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    RowStatus, DisplayString, TestAndIncr, DateAndTime
        FROM SNMPv2-TC
    lumModules, lumSoftwareMIB
        FROM LUM-REG
    FaultStatus, MgmtNameString, CommandString, ObjectProperty,
    BoardOrInterfaceAdminStatus
        FROM LUM-TC;

lumSoftwareMIBModule MODULE-IDENTITY
    LAST-UPDATED 
        "200411220000Z" -- November 22nd 2004
    ORGANIZATION 
        "Transmode Systems AB"
    CONTACT-INFO
        "support@transmode.se"
    DESCRIPTION
        "The software MIB.

        Only visible in SNMP.

        //$Id: LUM-SOFTWARE-MIB.txt 5884 2009-02-23 12:22:46Z l8 $
        //alias=software"
    REVISION        
        "200411220000Z" -- November 22nd 2004
    DESCRIPTION
        "Added configure command for spare parts."
    REVISION        
        "200406150000Z" -- June 15th 2004
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 28 }

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

lumSoftwareConfs OBJECT IDENTIFIER ::= { lumSoftwareMIB 1 }
lumSoftwareGroups OBJECT IDENTIFIER ::= { lumSoftwareConfs 1 }
lumSoftwareCompl OBJECT IDENTIFIER ::= { lumSoftwareConfs 2 }


-- ----------------------------------------------------
-- Root for objects in the software MIB
-- ----------------------------------------------------

lumSoftwareMIBObjects OBJECT IDENTIFIER ::= { lumSoftwareMIB 2 }


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

softwareGeneral OBJECT IDENTIFIER ::= { lumSoftwareMIBObjects 1 } -- //alias=general
softwareVersionList OBJECT IDENTIFIER ::= { lumSoftwareMIBObjects 2 }
softwareCommand OBJECT IDENTIFIER ::= { lumSoftwareMIBObjects 3 } -- //alias=command
softwareLogList OBJECT IDENTIFIER ::= { lumSoftwareMIBObjects 4 } -- //alias=log
lumentisSoftwareNotifications OBJECT IDENTIFIER ::= { lumSoftwareMIBObjects 5 }
softwareSpare OBJECT IDENTIFIER ::= { lumSoftwareMIBObjects 6 } -- //alias=spare
softwareExpectedSwList OBJECT IDENTIFIER ::= { lumSoftwareMIBObjects 7 } -- //alias=expected
softwareCuRep OBJECT IDENTIFIER ::= { lumSoftwareMIBObjects 8 } -- //alias=cuRep

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

-- n/a


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

softwareGeneralLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the log table was last
        changed. 

        //alias=stateLastChange"
    ::= { softwareGeneral 1 }

softwareGeneralConfigLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the following data 
        was last changed:
        - command
        - version
        - expected
        //alias=configLastChange"
    ::= { softwareGeneral 2 }

softwareGeneralSoftwareVersionTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of table

        //alias=softwareVersionTableSize
        //advanced=yes
        //tableSize='swVersion'"
    ::= { softwareGeneral 3 }

softwareGeneralSoftwareLogTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of table

        //alias=softwareLogTableSize
        //advanced=yes
        //tableSize='swLog'"
    ::= { softwareGeneral 4 }

softwareGeneralSoftwareExpectedSwTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of table

        //alias=softwareExpectedSwTableSize
        //advanced=yes
        //tableSize='swExpected'"
    ::= { softwareGeneral 5 }

-- ----------------------------------------------------
-- Command group
-- ----------------------------------------------------

softwareCommandServerIp OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The IP address of the host to retrieve the file from.

        //ipaddress=yes
        //alias=serverIp"
    DEFVAL { "" }
    ::= { softwareCommand 1 }

softwareCommandEnmFile OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Full path to the ENM-spec to use.

	//completion=yes
        //alias=file"
    DEFVAL { "" }
    ::= { softwareCommand 2 }

softwareCommandIncludeFs OBJECT-TYPE
    SYNTAX      INTEGER {
                   true (1),
                   false (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Shall the file system be included in the operation?

        //alias=includeFs"
    DEFVAL { false }
    ::= { softwareCommand 3 }

softwareCommandCleanFirst OBJECT-TYPE
    SYNTAX      INTEGER {
                   noClean (1),
                   normalClean (2),
                   culessClean (3) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Shall the file system be 'cleaned' before the operation?

        noClean      - do not clean
        normalClean  - equivalent to 'swu clean all all'
        culessClean  - this will also remove the previous
                       version of appl.

        //alias=cleanFirst"
    DEFVAL { normalClean }
    ::= { softwareCommand 4 }

softwareCommandForce OBJECT-TYPE
    SYNTAX      INTEGER {
                   true (1),
                   false (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Ignore minor failures.

        //alias=force"
    DEFVAL { false }
    ::= { softwareCommand 5 }

softwareCommandOperation OBJECT-TYPE
    SYNTAX      INTEGER {
                   test (1),
                   check (2),
                   install (3),
                   upgrade (4),
                   rebootAfter (5),
                   rebootCu (6),
                   rebootAll (7),
                   revert (8),
                   abort (9),
                   unlock (10),
                   clean (11),
		   forcedUnlock (12) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The operation to perform.

        test  - A no operation - test semaphore.
                Optional use.

        check - do not install anything, just show what needs
                to be done.

        install - install but do not activate.

        upgrade - install and activate

        rebootAfter - install, activate and reboot.
                      This should not be used by SNMP.

        rebootCu - reboot the main CU.

        rebootAll - reboot all boards.

        revert    - 'Undo' an upgrade operation and set the
                    'next' to be the same as 'executing'.
                    This has to be done before reboot.
                    Revert does not work if the file system has
                    been upgraded.

        abort     - release the transaction.

        unlock    - release the transaction.

        clean     - prepare space by cleaning (FTP)

        forcedUnlock - node internal operation.
                       Release transaction without passwd.

        //alias=operation"
    DEFVAL { test }
    ::= { softwareCommand 6 }

softwareCommandOperationTimeout OBJECT-TYPE
    SYNTAX      Unsigned32(0..300)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Delay (in seconds) until the operation is started.

         //unit=' s'
        //alias=operationTimeout"
    DEFVAL { 0 }
    ::= { softwareCommand 7 }

softwareCommandTestAndIncr OBJECT-TYPE
    SYNTAX      TestAndIncr
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Protection against simultaneous access from 
        multiple managers. See SNMPv2-TC.

        Setting this variable implies that a transaction
        starts. The provided newPasswd will be secret passwd
        of the transaction.

        //insert=0.1
        //alias=testAndIncr"
    DEFVAL { 0 }
    ::= { softwareCommand 8 }

softwareCommandSemaphore OBJECT-TYPE
    SYNTAX      INTEGER {
                   open (1),
                   locked (2) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The primary state of the SWU-server

        NOTE that this variable will change state without
        affecting the lastChange time stamp.

        Test this variable before starting a transaction.

        open - no transaction is started

        locked - transaction is started

        //alias=semaphore"
    ::= { softwareCommand 9 }

softwareCommandOperationState OBJECT-TYPE
    SYNTAX      INTEGER {
                   idle (1),
                   pending(2),
                   cleaning (3),
                   checking (4),
                   downloading (5),
                   installing (6),
                   preparing (7),
                   activating (8),
                   installingFs(9),
                   reverting (10),
                   rebooting (11) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "State to show the progress of the operation.

        idle           - when no operation is in progress.

        pending        - operation is ordered but will start later

        cleaning       - cleaning all boards.

        checking       - checking which SW packages that need to be
                         downloaded.

        downloading    - downloading SW packages from server.

        installing     - distributing and unpacking packages within
                         the node.

        preparing      - performing a test activate

        activating     - activating all SW packages.

        installingFs   - distributing and unpacking filesystem.

        reverting      - reverting to executing 

        rebooting      - ordering reboot to all nodes.

        //alias=operationState"
    ::= { softwareCommand 10 }

softwareCommandProgressMax OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Show the maximum value of the progressCounter

        //alias=progressMax"
    ::= { softwareCommand 11 }

softwareCommandResult OBJECT-TYPE
    SYNTAX      INTEGER {
                   none (1),
                   success (2),
                   failed (3) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The result of the operation 

        none    -  no result

        success - the latest operation was successful.

        failed  - the latest operation failed.

        //alias=result"
    ::= { softwareCommand 12 }

softwareCommandEnmState OBJECT-TYPE
    SYNTAX      INTEGER {
                   none (1),
                   upToDate (2),
                   rebootNeeded (3),
                   activateNeeded (4),
                   upgradeNeeded (5),
                   done (6) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "
        Only applicable if result != none.

        none           - no state

        upToDate       - no upgrade needed

        rebootNeeded   - all software is activated, but reboot of
                         some boards are required

        activateNeeded - all software is installed, but activation of 
                         new software required

        upgradeNeeded  - installation of new software required

        done           - the new software is installed and activated, 
                         and, the updated board are rebooted.

        //alias=enmState"
    ::= { softwareCommand 13 }

softwareCommandErrorCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows the number of minor erros encountered.

        //alias=errors"
    ::= { softwareCommand 14 }

softwareCommandProgressCounter OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows the progress of the ongoing
         ENM upgrade.

        //insert=11
        //alias=progressCounter"
    ::= { softwareCommand 15 }

softwareCommandNewPassword OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This is a secret, write-only, parameter.

         This is set in the same multi-set as testAndIncr
         and will be used as the client password to the
         transaction.

         It must be supplied in all operations in
         'passwd'.

        //insert=0.0
        //alias=newPasswd"
    DEFVAL { 0 }
    ::= { softwareCommand 16 }

softwareCommandPassword OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This is a secret, write-only, parameter.

         This parameter will trigger the operation.

         Use the same value as set in newPasswd.

        //insert=8
        //alias=passwd"
    DEFVAL { 0 }
    ::= { softwareCommand 17 }

softwareCommandReleaseAfterOperation OBJECT-TYPE
    SYNTAX      INTEGER {
                   true (1),
                   false (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Release lock after operation.

        //insert=7
        //alias=releaseLockAfter"
    DEFVAL { false }
    ::= { softwareCommand 18 }

softwareCommandSendTraps OBJECT-TYPE
    SYNTAX      INTEGER {
                   true (1),
                   false (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Set this to indicate whether you want traps or not.

        //insert=7
        //alias=sendTraps"
    DEFVAL { false }
    ::= { softwareCommand 19 }

softwareCommandClientOperationId OBJECT-TYPE
    SYNTAX      Unsigned32 (0..4294967295)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This value is set by the SNMP client
         for each operation. The value is
         sent back in the traps generated
         by the operation.

        //insert=7
        //alias=clientOperationId"
    DEFVAL { 0 }
    ::= { softwareCommand 20 }

softwareCommandTftpTimeout OBJECT-TYPE
    SYNTAX      Unsigned32 (0..20000)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This parameter stipulates the timeout
         used by TFTP when downloading from
         the network.

         Normally, you do not have to use this!

         If the circumstances are extreme, you
         might have to set the timeout.

        0 = use predefined defaults.

        //insert=7
        //unit=' ms'
        //alias=tftpTimeout"
    DEFVAL { 0 }
    ::= { softwareCommand 21 }

softwareCommandLocalFtpDirectory OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Full path to the directory where files
         should be FTPd from TNM.

        //alias=ftpDirectory"
    DEFVAL { "" }
    ::= { softwareCommand 22 }

softwareCommandWarningCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Shows the number of warnings encountered.

        //alias=warnings"
    ::= { softwareCommand 23 }

softwareCommandEnmRelease OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current ENM release.

        //alias=enmRelease"
    DEFVAL { "" }
    ::= { softwareCommand 24 }


-- ----------------------------------------------------
-- Software versions list
-- ----------------------------------------------------

softwareVersionTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF SoftwareVersionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The list of software versions."
    ::= { softwareVersionList 1 }

softwareVersionEntry OBJECT-TYPE
    SYNTAX      SoftwareVersionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the software version list.

        //alias=versions"    
    INDEX { softwareVersionIndex }
    ::= { softwareVersionTable 1 }

SoftwareVersionEntry ::=
    SEQUENCE {
        softwareVersionIndex                    Unsigned32,
        softwareVersionName                     DisplayString,
        softwareVersionSubrack                  Unsigned32,
        softwareVersionSlot                     Unsigned32,
        softwareVersionCategory                 INTEGER,
        softwareVersionVersion                  DisplayString,
        softwareVersionStatus                   Unsigned32 }

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

        //alias=index
        //table=yes
        //advanced=no"
    ::= { softwareVersionEntry 1 }

softwareVersionName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the version entry.

        //alias=name
        //table=yes"
    ::= { softwareVersionEntry 2 }

softwareVersionSubrack OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The subrack for this version

        //alias=subrack"
    ::= { softwareVersionEntry 3 }

softwareVersionSlot OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The slot for this version

        //alias=slot"
    ::= { softwareVersionEntry 4 }

softwareVersionCategory OBJECT-TYPE
    SYNTAX      INTEGER {
                    boot (0),
                    kernel (1),
                    appl (2),
                    fs (3) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The category for this version

        //alias=category"
    ::= { softwareVersionEntry 5 }


softwareVersionVersion OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The version.

        //alias=version"
    ::= { softwareVersionEntry 6 }

softwareVersionStatus OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The status of this version

        A bit mask
        Bit 0 (lowest) = 1 => isExecuting
        Bit 1          = 1 => isPrevious
        Bit 2          = 1 => isCurrent (not used)
        Bit 3          = 1 => isNext
        Bit 4          = 1 => isIncomplete (not used)
        Bit 5          = 1 => isOnlyVirtual
        Bit 6          = 1 => isExpected

        //hex=yes
        //table=yes
        //alias=status"
    ::= { softwareVersionEntry 7 }

-- ----------------------------------------------------
-- Software log list
-- ----------------------------------------------------
softwareLogTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF SoftwareLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The list of software command log entries."
    ::= { softwareLogList 1 }

softwareLogEntry OBJECT-TYPE
    SYNTAX      SoftwareLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the command log list.

        //alias=log"    
    INDEX { softwareLogIndex }
    ::= { softwareLogTable 1 }

SoftwareLogEntry ::=
    SEQUENCE {
        softwareLogIndex                    Unsigned32,
        softwareLogName                     DisplayString,
        softwareLogTransaction              Unsigned32,
        softwareLogString                   DisplayString }

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

        //alias=index
        //table=no
        //advanced=yes"
    ::= { softwareLogEntry 1 }

softwareLogName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the log entry.

        //alias=name
        //table=yes     
        //hidden=no"
    ::= { softwareLogEntry 2 }

softwareLogTransaction OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The ID of the transaction generating the 
         log entry.

        //alias=transactionId
        //table=no
        //advanced=no"
    ::= { softwareLogEntry 3 }

softwareLogString OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The actual log string

        //alias=string
        //table=yes
        //hidden=no"
    ::= { softwareLogEntry 4 }

-- ----------------------------------------------------
-- SparePart group
-- ----------------------------------------------------

softwareSpareBoardAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The IP address of the node.

       //reboot=yes
        //ipaddress=yes
        //alias=boardAddress"
    DEFVAL { "" }
    ::= { softwareSpare 1 }

softwareSpareBoardMask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The net mask of the node.

        //range=no
        //ipaddress=yes
        //alias=mask"
    DEFVAL { "" }
    ::= { softwareSpare 2 }

softwareSpareMasterAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The IP address of the CU.

        //ipaddress=yes
        //alias=masterAddress"
    DEFVAL { "" }
    ::= { softwareSpare 3 }

softwareSpareMode OBJECT-TYPE
    SYNTAX      INTEGER {
                   undef (0),
                   tu (1),
                   standalone (2),
                   slave (3) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates how the spare part shall be configured.

        tu         - normal TU

        standalone - boardAddress/mask will be set
                     together with standalone attribute

        slave      - boardAddress/mask will be set
                     together with standalone attribute and
                     masterAddress.

        //alias=mode"
    DEFVAL { undef }
    ::= { softwareSpare 4 }

softwareSpareBackupServer OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IP address of the server storing backups.

        //ipaddress=yes
        //alias=backupServer"
    ::= { softwareSpare 5 }

softwareSpareBackupFile OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Full path to the backup file on remote server.

        //alias=backupFile"
    ::= { softwareSpare 6 }

softwareSpareState OBJECT-TYPE
    SYNTAX      INTEGER {
                   undef (0),
                   waiting (1),
                   contactingCu (2),
                   installBoot (3),
                   installKernel (4),
                   installAppl (5),
                   installFs (6),
                   activating (7),
                   clearSparepart (8),
                   done (9),
                   publicAddress (10) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "State of the spare part.

        waiting     - trying to find CU
        installBoot - in progress of installing the boot
        installKernel - in progress of installing the kernel
        installAppl - in progress of installing the application
        installFs - in progress of installing the file system
        activating - install ready => activate
        clearSparepart - clear flash parameter
        done       - about to reboot
        publicAddress - changed to public address
        //alias=state"
    ::= { softwareSpare 7 }

softwareSpareResult OBJECT-TYPE
    SYNTAX      INTEGER {
                   none (1),
                   ok (2), 
                   cuNotFound (3),
                   autoUpgradeNotSupported (4),
                   bootNotFound (5),
                   kernelNotFound (6),
                   applNotFound (7),
                   fsNotFound (8),
                   bootActivateFailed (9),
                   kernelActivateFailed (10),
                   applActivateFailed (11),
                   flashUpdateFailed (12) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Result of the spare part operation

        //alias=result"
    ::= { softwareSpare 8 }

softwareSpareCommentString OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Display comment about the state.

        //alias=comment"
    ::= { softwareSpare 9 }

softwareSpareConfigure OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Configure a spare part. 
        Run automatically when in spare part mode.
        Asks for the following:

        mode 

        boardAddress - if mode is 'standalone' 
        or 'slave'

        mask - if mode is 'standalone' 
        or 'slave'

        masterAddress - if mode is 'slave'
                
        //alias=configure
        //longAlias='Configure spare part'"
    ::= { softwareSpare 10 }

-- ----------------------------------------------------
-- Expected Software list
-- ----------------------------------------------------

softwareExpectedSwTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF SoftwareExpectedSwEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The list of software versions."
    ::= { softwareExpectedSwList 1 }

softwareExpectedSwEntry OBJECT-TYPE
    SYNTAX      SoftwareExpectedSwEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the software version list.

        //alias=expectedSw"    
    INDEX { softwareExpectedSwIndex }
    ::= { softwareExpectedSwTable 1 }

SoftwareExpectedSwEntry ::=
    SEQUENCE {
        softwareExpectedSwIndex                 Unsigned32,
        softwareExpectedSwName                  DisplayString,
        softwareExpectedSwCategory              INTEGER,
        softwareExpectedSwBoardType             INTEGER,
        softwareExpectedSwFileName              DisplayString,
        softwareExpectedSwPresent               INTEGER }

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

        //alias=index
        //advanced=no"
    ::= { softwareExpectedSwEntry 1 }

softwareExpectedSwName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the expected sw entry.

        //alias=name
        //table=yes     
        //hidden=no"
    ::= { softwareExpectedSwEntry 2 }

softwareExpectedSwCategory OBJECT-TYPE
    SYNTAX      INTEGER {
                    boot (0),
                    kernel (1),
                    appl (2),
                    fs (3) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The category for this version

        //table=yes
        //alias=category"
    ::= { softwareExpectedSwEntry 3 }

softwareExpectedSwBoardType OBJECT-TYPE
    SYNTAX      INTEGER {
                    cu (0),
                    tu (1),
                    all (2) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The board type that this applies to.

        //table=yes
        //alias=boardType"
    ::= { softwareExpectedSwEntry 4 }

softwareExpectedSwFileName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the expected sw entry.

        //alias=fileName
        //table=yes     
        //hidden=no"
    ::= { softwareExpectedSwEntry 5 }

softwareExpectedSwPresent OBJECT-TYPE
    SYNTAX      INTEGER {
                    yes (1),
                    no (2) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates if the file already is present in the node.

        //table=no
        //alias=present"
    ::= { softwareExpectedSwEntry 6 }

-- ----------------------------------------------------
-- CUReplacement group
-- ----------------------------------------------------

softwareCuRepAdminStatus OBJECT-TYPE
    SYNTAX      	 BoardOrInterfaceAdminStatus
    MAX-ACCESS  	 read-write
    STATUS      	 current
    DESCRIPTION
        "The administrative state for the alarm.

        down - No alarm will be rasied if SW packages are missing.

        service - No alarm will be rasied if SW packages are missing.

        up - Alarms are not suppressed.

        //alias=adminStatus
        //longAlias='Administrative state'
        //persistent=yes
        //table=yes"
    DEFVAL { up }
    ::= { softwareCuRep 1 }

softwareCuRepUnSaved OBJECT-TYPE
    SYNTAX           INTEGER {
                     true (1),
                     false (2) }
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
        "If the configuration is saved or not.

         //alias=unSaved
         //hidden=yes"
    DEFVAL { false }
    ::= { softwareCuRep 2 }

softwareCuRepSystemMode OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "If dipswitch is changed or not.

        //alias=systemMode
        //hidden=yes"
    DEFVAL { 1 }
    ::= { softwareCuRep 3 }

softwareCuRepRebootCu OBJECT-TYPE
    SYNTAX      INTEGER {
                true (1),
                false (2) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If the CU should be rebooted or not.

        //alias=rebootCu
        //hidden=yes"
    DEFVAL { false }
    ::= { softwareCuRep 4 }

softwareCuRepOkConfigure OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Configure an CU that has correct SW.
        Run automatically when in CU replacement mode
        when CU is an CU-SFP AND SW is correct.
        Asks for the following:

        Configuration not saved. Do you want to continue anyway? (yes/no)

        Dipswitch is not changed. Do you want to continue anyaway? (yes/no)

        To fulfill CU-replacement, the main CU must be rebooted. Continue
        with reboot? (yes/no)

        //alias=okConfigure
        //hidden=yes
        //longAlias='Configure CU-SFP with correct SW'"
    ::= { softwareCuRep 5 }

softwareCuRepSwPackagesMissing OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Not all packages that are needed to perform a CU-SFP replacement
         in case needs to be replaced. Please perform an upgrade to
         current enm-release spec file (without rebooting) to solve
         the problem.

        //alias=swPackagesMissing
        //longAlias='SW Packages missing'
        //alarmText='All SW packages are not downloaded'
        //alarmType=processingError
        //alarmCause=configurationOrCustomizationError
        //alarmSeverity=warning"
    ::= { softwareCuRep 6 }

-- ----------------------------------------------------
-- Notifications
-- ----------------------------------------------------
softwareNotifyPrefix OBJECT IDENTIFIER ::= { lumentisSoftwareNotifications 0 }

softwareResultTrap NOTIFICATION-TYPE
    OBJECTS {
            softwareCommandOperationState,
            softwareCommandProgressMax,
            softwareCommandResult,
            softwareCommandEnmState,
            softwareCommandErrorCount,
            softwareCommandProgressCounter,
            softwareCommandNewPassword,
            softwareCommandClientOperationId
    }
    STATUS      current
    DESCRIPTION
        "Sent when the software upgrade
         operation changes state.

        //alias=softwareResultTrap"
    ::= { softwareNotifyPrefix 1 }

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

softwareGeneralGroup OBJECT-GROUP
    OBJECTS {
        softwareGeneralLastChangeTime,
        softwareGeneralConfigLastChangeTime }
    STATUS      deprecated
    DESCRIPTION
        "The software general objects."
    ::= { lumSoftwareGroups 1 }

softwareVersionGroup OBJECT-GROUP
    OBJECTS {
        softwareVersionIndex,
        softwareVersionName,
        softwareVersionSubrack,
        softwareVersionSlot,
        softwareVersionCategory,
        softwareVersionVersion,
        softwareVersionStatus }
    STATUS      current
    DESCRIPTION
        "The software version objects."
    ::= { lumSoftwareGroups 2 }

softwareCommandGroup OBJECT-GROUP
    OBJECTS {
         softwareCommandServerIp,
         softwareCommandEnmFile,
         softwareCommandIncludeFs,
         softwareCommandCleanFirst,
         softwareCommandForce,
         softwareCommandOperation,
         softwareCommandOperationTimeout,       
         softwareCommandTestAndIncr,
         softwareCommandSemaphore,
         softwareCommandOperationState,
         softwareCommandProgressCounter,
         softwareCommandResult,
         softwareCommandEnmState,
         softwareCommandErrorCount }
    STATUS      deprecated
    DESCRIPTION
        "The software command objects."
    ::= { lumSoftwareGroups 3 }

softwareLogGroup OBJECT-GROUP
    OBJECTS {
        softwareLogIndex,
        softwareLogName,
        softwareLogTransaction,
        softwareLogString }
    STATUS      current
    DESCRIPTION
        "The software log objects."
    ::= { lumSoftwareGroups 4 }

softwareCommandGroupV2 OBJECT-GROUP
    OBJECTS {
         softwareCommandServerIp,
         softwareCommandEnmFile,
         softwareCommandIncludeFs,
         softwareCommandCleanFirst,
         softwareCommandForce,
         softwareCommandOperation,
         softwareCommandOperationTimeout,       
         softwareCommandTestAndIncr,
         softwareCommandSemaphore,
         softwareCommandOperationState,
         softwareCommandProgressMax,
         softwareCommandResult,
         softwareCommandEnmState,
         softwareCommandErrorCount,
         softwareCommandProgressCounter,
         softwareCommandNewPassword,
         softwareCommandPassword,
         softwareCommandReleaseAfterOperation,
         softwareCommandSendTraps,
         softwareCommandClientOperationId,
         softwareCommandTftpTimeout }
    STATUS      deprecated
    DESCRIPTION
        "The software command objects (3.1)."
    ::= { lumSoftwareGroups 5 }

softwareSpareGroup OBJECT-GROUP
    OBJECTS {
            softwareSpareBoardAddr,
            softwareSpareBoardMask,
            softwareSpareMasterAddr,
            softwareSpareMode,
            softwareSpareBackupServer,
            softwareSpareBackupFile,
            softwareSpareState,
            softwareSpareResult,
            softwareSpareCommentString,
            softwareSpareConfigure }
    STATUS      current
    DESCRIPTION
        "The spare part objects."
    ::= { lumSoftwareGroups 6 }

softwareGeneralGroupV2 OBJECT-GROUP
    OBJECTS {
        softwareGeneralLastChangeTime,
        softwareGeneralConfigLastChangeTime,
        softwareGeneralSoftwareVersionTableSize,
        softwareGeneralSoftwareLogTableSize }
    STATUS      deprecated
    DESCRIPTION
        "The software general objects."
    ::= { lumSoftwareGroups 7 }

softwareGeneralGroupV3 OBJECT-GROUP
    OBJECTS {
        softwareGeneralLastChangeTime,
        softwareGeneralConfigLastChangeTime,
        softwareGeneralSoftwareVersionTableSize,
        softwareGeneralSoftwareLogTableSize,
        softwareGeneralSoftwareExpectedSwTableSize }
    STATUS      current
    DESCRIPTION
        "The software general objects. (5.0)"
    ::= { lumSoftwareGroups 8 }

softwareCommandGroupV3 OBJECT-GROUP
    OBJECTS {
         softwareCommandServerIp,
         softwareCommandEnmFile,
         softwareCommandIncludeFs,
         softwareCommandCleanFirst,
         softwareCommandForce,
         softwareCommandOperation,
         softwareCommandOperationTimeout,       
         softwareCommandTestAndIncr,
         softwareCommandSemaphore,
         softwareCommandOperationState,
         softwareCommandProgressMax,
         softwareCommandResult,
         softwareCommandEnmState,
         softwareCommandErrorCount,
         softwareCommandProgressCounter,
         softwareCommandNewPassword,
         softwareCommandPassword,
         softwareCommandReleaseAfterOperation,
         softwareCommandSendTraps,
         softwareCommandClientOperationId,
         softwareCommandTftpTimeout,
         softwareCommandLocalFtpDirectory,
         softwareCommandWarningCount,
	 softwareCommandEnmRelease }
    STATUS      current
    DESCRIPTION
        "The software command objects (5.0)."
    ::= { lumSoftwareGroups 9 }

softwareExpectedSwGroup OBJECT-GROUP
    OBJECTS {
         softwareExpectedSwIndex,
         softwareExpectedSwName,
         softwareExpectedSwCategory,
         softwareExpectedSwBoardType,
         softwareExpectedSwFileName
    }   
    STATUS      deprecated
    DESCRIPTION
        "The expected software objects (5.0)."
    ::= { lumSoftwareGroups 10 }

softwareExpectedSwGroupV2 OBJECT-GROUP
    OBJECTS {
         softwareExpectedSwIndex,
         softwareExpectedSwName,
         softwareExpectedSwCategory,
         softwareExpectedSwBoardType,
         softwareExpectedSwFileName,
         softwareExpectedSwPresent
    }   
    STATUS      current
    DESCRIPTION
        "The expected software objects (11.0)."
    ::= { lumSoftwareGroups 11 }

softwareCuRepGroup OBJECT-GROUP
    OBJECTS {
         softwareCuRepAdminStatus,
         softwareCuRepUnSaved,
         softwareCuRepSystemMode,
         softwareCuRepRebootCu,
         softwareCuRepOkConfigure,
         softwareCuRepSwPackagesMissing
    }   
    STATUS      current
    DESCRIPTION
        "The cu replacement software objects (13.0)."
    ::= { lumSoftwareGroups 12 }

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

lumSoftwareBasicComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the software MIB v1 (3.0)."
    MODULE
        MANDATORY-GROUPS {
            softwareGeneralGroup,
            softwareVersionGroup,
            softwareCommandGroup,
            softwareLogGroup }
    ::= { lumSoftwareCompl 1 }

lumSoftwareBasicComplV2 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the software MIB v2 (3.1)."
    MODULE
        MANDATORY-GROUPS {
            softwareGeneralGroupV2,
            softwareVersionGroup,
            softwareCommandGroupV2,
            softwareLogGroup,
            softwareSpareGroup }
    ::= { lumSoftwareCompl 2 }

lumSoftwareBasicComplV3 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the software MIB v3 (5.0)."
    MODULE
        MANDATORY-GROUPS {
            softwareGeneralGroupV3,
            softwareVersionGroup,
            softwareCommandGroupV3,
            softwareLogGroup,
            softwareSpareGroup,
            softwareExpectedSwGroup }
    ::= { lumSoftwareCompl 3 }

lumSoftwareBasicComplV4 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the software MIB v3 (11.0)."
    MODULE
        MANDATORY-GROUPS {
            softwareGeneralGroupV3,
            softwareVersionGroup,
            softwareCommandGroupV3,
            softwareLogGroup,
            softwareSpareGroup,
            softwareExpectedSwGroupV2 }
    ::= { lumSoftwareCompl 4 }

lumSoftwareBasicComplV5 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the software MIB v3 (13.0)."
    MODULE
        MANDATORY-GROUPS {
            softwareGeneralGroupV3,
            softwareVersionGroup,
            softwareCommandGroupV3,
            softwareLogGroup,
            softwareSpareGroup,
            softwareExpectedSwGroupV2,
            softwareCuRepGroup }
    ::= { lumSoftwareCompl 5 }

END
