ADTRAN-AOSDOWNLOAD DEFINITIONS ::= BEGIN IMPORTS Integer32, Gauge32, OBJECT-TYPE, MODULE-IDENTITY FROM SNMPv2-SMI DisplayString, RowStatus, TDomain, TAddress FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF adIdentity FROM ADTRAN-MIB adGenAOSCommon, adGenAOSConformance FROM ADTRAN-AOS; adAOSDownloadMib MODULE-IDENTITY LAST-UPDATED "200409212216Z" -- September 21, 2004 ORGANIZATION "ADTRAN, Inc." CONTACT-INFO " Technical Support Dept. Postal: ADTRAN, Inc. 901 Explorer Blvd. Huntsville, AL 35806 Tel: +1 800 726-8663 Fax: +1 256 963 6217 E-mail: support@adtran.com" DESCRIPTION "This MIB defines how the method for commanding an ADTRAN OS device to initiate a download or upload of configuration or firmware from a TFTP server " REVISION "200409212216Z" -- September 21, 2004 DESCRIPTION "Initial version of this MIB module." ::= { adIdentity 10000 53 1 3 } adAOSDownload OBJECT IDENTIFIER ::= { adGenAOSCommon 3 } adAOSDownloadTable OBJECT-TYPE SYNTAX SEQUENCE OF AdAOSDownloadEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of firmware downloads to this device. There will at any time be either 0 or 1 rows in this table, and the only valid index for this table is 1. It is only a table so that we may take advantage of the RowStatus textual convention for configuring the download parameters." ::= { adAOSDownload 1 } adAOSDownloadEntry OBJECT-TYPE SYNTAX AdAOSDownloadEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The row in the adAOSDownloadTable containing the download parameters." INDEX { adAOSDownloadIndex } ::= { adAOSDownloadTable 1 } AdAOSDownloadEntry ::= SEQUENCE { adAOSDownloadIndex INTEGER, adAOSDownloadOwnerAddress TAddress, adAOSDownloadOwnerDomain TDomain, adAOSDownloadTAddress TAddress, adAOSDownloadTDomain TDomain, adAOSDownloadFilename DisplayString, adAOSDownloadResetType INTEGER, adAOSDownloadErrorStatus INTEGER, adAOSDownloadErrorText DisplayString, adAOSDownloadStatus RowStatus, adAOSDownloadPassesLeft Integer32, adAOSDownloadOctetCount Integer32, adAOSDownloadDestination DisplayString, --deprecated adAOSDownloadDestinationType INTEGER } adAOSDownloadIndex OBJECT-TYPE SYNTAX INTEGER { dlInstance(1) } MAX-ACCESS read-only STATUS current DESCRIPTION "The index which uniquely identifies this row. The only legal value for this object is 1." ::= { adAOSDownloadEntry 1 } adAOSDownloadOwnerAddress OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The transport address of the management station that initiated this download attempt, formatted according to the value of the associated instance of adAOSDownloadOwnerDomain." ::= { adAOSDownloadEntry 2 } adAOSDownloadOwnerDomain OBJECT-TYPE SYNTAX TDomain MAX-ACCESS read-only STATUS current DESCRIPTION "The kind of transport service used by the management station that initiated this download attempt." ::= { adAOSDownloadEntry 3 } adAOSDownloadTAddress OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The transport address of the node to download firmware from, formatted according to the value of the associated instance of adAOSDownloadTDomain. An attempt to modify this value will fail if the associated adAOSDownloadStatus object would be equal to 'active' both before and after the modification attempt." ::= { adAOSDownloadEntry 4 } adAOSDownloadTDomain OBJECT-TYPE SYNTAX TDomain MAX-ACCESS read-create STATUS current DESCRIPTION "The kind of transport service to be used for the download. Currently supports snmpUDPDomain and snmpIPXDomain. An attempt to modify this value will fail if the associated adAOSDownloadStatus object would be equal to 'active' both before and after the modification attempt." ::= { adAOSDownloadEntry 5 } adAOSDownloadFilename OBJECT-TYPE SYNTAX DisplayString (SIZE(0..63)) MAX-ACCESS read-create STATUS current DESCRIPTION "Filename and path of file to download (maximum length of 63 characters + NULL). An attempt to modify this value will fail if the associated adAOSDownloadStatus object would be equal to 'active' both before and after the modification attempt." ::= { adAOSDownloadEntry 6 } adAOSDownloadResetType OBJECT-TYPE SYNTAX INTEGER { noReset(1), warmReset(2), factoryReset(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "The type of reset to perform after completion of the firmware download. Note that not all agents will support all possible values, and there may be other agent-specific values for this object." ::= { adAOSDownloadEntry 7 } adAOSDownloadErrorStatus OBJECT-TYPE SYNTAX INTEGER { fileNotFound(1), accessViolation(2), diskFull(3), illegalOperation(4), unknownTID(5), fileExists(6), noSuchUser(7), notDefined(8), corruptFile(9), noServer(10), tftpTimeout(11), hardwareError(12), success(13), aborted(14), inProgress(15), idle(16), erasingEeprom(17), incompleteFirmware(18), requirePowerCycle(19), cannotUpgrade(20), cannotDowngrade(21) } MAX-ACCESS read-only STATUS current DESCRIPTION "Status of download. The first seven codes are equal to the codes defined by the TFTP protocol. 'notDefined' is the same as TFTP protocol error 0. The following are the other possible values for this object: corruptFile - the agent detected a problem with the download file format. noServer - the TFTP server at adAOSDownloadTAddress did not respond to the TFTP request. tftpTimeout - the download was aborted due to excessive timeouts. hardwareError - there was a hardware problem on the agent that forced an abort of the download (see adAOSDownloadErrorText for more detailed information). success - the download has completed successfully. aborted - the download was aborted by setting the adAOSDownloadStatus to 'notInService' or 'delete'. inProgress - the TFTP transfer is currently active. idle - means that the download has not yet started (i.e. the value of adAOSDownloadStatus has not yet been set to 'active'). erasingEeprom - the agent is currently erasing the EEPROM device. incompleteFirmware - the agent is running an incomplete version of firmware and requires a download. requirePowerCycle - the agent must be power cycled to run the newly downloaded firmware. cannotUpgrade - the agent's current firmware revision cannot be upgraded to the revision in the download file. cannotDowngrade - the agent's current firmware revision cannot be downgraded to the revision in the download file." ::= { adAOSDownloadEntry 8 } adAOSDownloadErrorText OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) MAX-ACCESS read-only STATUS current DESCRIPTION "A textual description of the current error status of the firmware download." ::= { adAOSDownloadEntry 9 } adAOSDownloadStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this download entry. This object may not be set to 'active' unless the following columnar objects exist in this row: adAOSDownloadTAddress, adAOSDownloadTDomain, adAOSDownloadFilename, and adAOSDownloadResetType." ::= { adAOSDownloadEntry 10 } adAOSDownloadPassesLeft OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of passes remaining in the current download attempt. Some agents require multiple passes through the download file in order to download a firmware image. This object indicates the number of passes remaining, including the current pass. The object is initialized by the agent to the number of passes required to complete the download when the corresponding instance of adAOSDownloadStatus is set to 'active'. It is decremented by one each time a pass completes." ::= { adAOSDownloadEntry 11 } adAOSDownloadOctetCount OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of octets that have been transferred during the current pass. This object is initialized to zero by the agent when the corresponding instance of adAOSDownloadStatus is set to 'active', and reinitialized to zero at the beginning of each pass." ::= { adAOSDownloadEntry 12 } adAOSDownloadDestination OBJECT-TYPE SYNTAX DisplayString (SIZE(0..63)) MAX-ACCESS read-create STATUS deprecated DESCRIPTION "The destination of the download file. The allowable destination names depend on the type of agent being downloaded. In all cases, a destination of '/os/primary' or '/os/secondary' indicates that this is a download of the agent's firmware image. The agent will use '/os/primary' as the default value for this object when the row is created. ICF router agents also allow a download of a config file. Currently, the name of the config file on the agent is '/config'. An agent should reject an attempt to set this object to a destination name that does not make sense for this type of agent." DEFVAL { "/os/primary" } -- public ::= { adAOSDownloadEntry 13 } adAOSDownloadDestinationType OBJECT-TYPE SYNTAX INTEGER { primary(1), secondary(2), config(3), remote(4), other(5) } MAX-ACCESS read-create STATUS current DESCRIPTION "The destination of the download file. The allowable destination names depend on the type of agent being downloaded. In all cases, a destination of 'primary(1)' or 'secondary(2)' indicates that this is a download of the agent's firmware image. The agent will use 'primary(1)' as the default value for this object when the row is created. ICF router agents also allow a download of a config file. Currently, the name of the config file on the agent is 'config(3)'. ICF router agents also allow a download of a file to a remote server. A destination of 'remote(4)' indicates that this is a download to a remote server. An agent should reject an attempt to set this object to a destination name that does not make sense for this type of agent." DEFVAL { 1 } -- public ::= { adAOSDownloadEntry 14 } adAOSDownloadLogMaxSize OBJECT-TYPE SYNTAX Integer32 (0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum number of the download log entries supported by this agent. Note that 0 is a legal value for this variable." ::= { adAOSDownload 2 } adAOSDownloadLogSize OBJECT-TYPE SYNTAX Gauge32 (0..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The number of download log entries currently in the adAOSDownloadLogTable." ::= { adAOSDownload 3 } adAOSDownloadLogTable OBJECT-TYPE SYNTAX SEQUENCE OF AdAOSDownloadLogEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A log of the adAOSDownloadSize most recent download attempts to this device. The first entry in the table is the oldest." ::= { adAOSDownload 4 } adAOSDownloadLogEntry OBJECT-TYPE SYNTAX AdAOSDownloadLogEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the adAOSDownloadLogTable containing information about a single download attempt." INDEX { adAOSDlLogIndex } ::= { adAOSDownloadLogTable 1 } AdAOSDownloadLogEntry ::= SEQUENCE { adAOSDlLogIndex Integer32, adAOSDlLogOwnerAddress TAddress, adAOSDlLogOwnerDomain TDomain, adAOSDlLogTAddress TAddress, adAOSDlLogTDomain TDomain, adAOSDlLogFilename DisplayString, adAOSDlLogResetType INTEGER, adAOSDlLogErrorStatus INTEGER, adAOSDlLogErrorText DisplayString } adAOSDlLogIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The index of this entry in the download log table. Index 1 will always contain the oldest entry. If the table is full when a download attempt is made, the new entry becomes the last entry (adAOSDownloadLogMaxSize), and all earlier entries are shifted down by one entry, removing the old index 1." ::= { adAOSDownloadLogEntry 1 } adAOSDlLogOwnerAddress OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The transport address of the management station that attempted to initiate a download of this device, formatted according to the value of adAOSDlLastOwnerDomain." ::= { adAOSDownloadLogEntry 2 } adAOSDlLogOwnerDomain OBJECT-TYPE SYNTAX TDomain MAX-ACCESS read-only STATUS current DESCRIPTION "The kind of transport service used by the management station that attempted to initiate a download of this device." ::= { adAOSDownloadLogEntry 3 } adAOSDlLogTAddress OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The transport address of the node from which this device attempted to download firmware, formatted according to the value of adAOSDlLastTDomain." ::= { adAOSDownloadLogEntry 4 } adAOSDlLogTDomain OBJECT-TYPE SYNTAX TDomain MAX-ACCESS read-only STATUS current DESCRIPTION "The kind of transport service which was used for the attempt to download firmware to this device." ::= { adAOSDownloadLogEntry 5 } adAOSDlLogFilename OBJECT-TYPE SYNTAX DisplayString (SIZE(0..63)) MAX-ACCESS read-only STATUS current DESCRIPTION "The filename from which this device attempted to download firmware." ::= { adAOSDownloadLogEntry 6 } adAOSDlLogResetType OBJECT-TYPE SYNTAX INTEGER { noReset(1), warmReset(2), factoryReset(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "The type of reset requested to be performed after completion of the firmware download attempt." ::= { adAOSDownloadLogEntry 7 } adAOSDlLogErrorStatus OBJECT-TYPE SYNTAX INTEGER { fileNotFound(1), accessViolation(2), diskFull(3), illegalOperation(4), unknownTID(5), fileExists(6), noSuchUser(7), notDefined(8), corruptFile(9), noServer(10), tftpTimeout(11), hardwareError(12), success(13), aborted(14) } MAX-ACCESS read-only STATUS current DESCRIPTION "The result of the attempt to download firmware to this device. The values are the same as the corresponding values of adAOSDownloadErrorStatus." ::= { adAOSDownloadLogEntry 8 } adAOSDlLogErrorText OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) MAX-ACCESS read-only STATUS current DESCRIPTION "A textual description of the final error status of the attempt to download firmware to this device." ::= { adAOSDownloadLogEntry 9 } -- conformance information adAOSDownloadConformance OBJECT IDENTIFIER ::= { adGenAOSConformance 3 } adAOSDownloadCompliances OBJECT IDENTIFIER ::= { adAOSDownloadConformance 1 } adAOSDownloadGroups OBJECT IDENTIFIER ::= { adAOSDownloadConformance 2 } -- compliance statements adAOSDownloadConfigCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "New version of the compliance statement for network downloadable devices that allows for monitoring in-progress downloads and for directing a download to different destinations on the device." MODULE MANDATORY-GROUPS { adAOSDownloadConfigGroup } GROUP adAOSDownloadLogGroup DESCRIPTION "This group should be implemented by devices that are able to keep log of network download attempts." ::= { adAOSDownloadCompliances 1 } -- units of conformance adAOSDownloadLogGroup OBJECT-GROUP OBJECTS { adAOSDlLogIndex, adAOSDlLogOwnerAddress, adAOSDlLogOwnerDomain, adAOSDlLogTAddress, adAOSDlLogTDomain, adAOSDlLogFilename, adAOSDlLogResetType, adAOSDlLogErrorStatus, adAOSDlLogErrorText } STATUS current DESCRIPTION "A collection of objects for maintaining a log of network download attempts to ICF devices." ::= { adAOSDownloadGroups 1 } adAOSDownloadConfigGroup OBJECT-GROUP OBJECTS { adAOSDownloadIndex, adAOSDownloadOwnerAddress, adAOSDownloadOwnerDomain, adAOSDownloadTAddress, adAOSDownloadTDomain, adAOSDownloadFilename, adAOSDownloadResetType, adAOSDownloadErrorStatus, adAOSDownloadErrorText, adAOSDownloadStatus, adAOSDownloadPassesLeft, adAOSDownloadOctetCount, adAOSDownloadDestination, adAOSDownloadLogMaxSize, adAOSDownloadLogSize } STATUS current DESCRIPTION "A collection of objects for controlling and monitoring network download of device firmware to ICF devices." ::= { adAOSDownloadGroups 2 } END