-- QLGC-CHFW-MIB.my: QLogic Firmware Up/Downgrade MIB
--
-- Copyright 1994-2005 QLogic Corporation
-- All Rights Reserved

QLGC-CHFW-MIB DEFINITIONS  ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, zeroDotZero
    FROM SNMPv2-SMI

    AutonomousType, DisplayString
    FROM SNMPv2-TC

    MODULE-COMPLIANCE, OBJECT-GROUP
    FROM SNMPv2-CONF

    InetAddressType, InetAddress, InetPortNumber
    FROM INET-ADDRESS-MIB -- RFC 3291

    qlogicMgmt
    FROM QLOGIC-SMI 
    ;

qlgcChangeFirmwareModule MODULE-IDENTITY
    LAST-UPDATED  "200601260000Z" -- January 26, 2006
    ORGANIZATION  "QLogic Corp."
    CONTACT-INFO
    "
    QLogic Customer Service (SNMP)
    Postal: 26650 Aliso Viejo Parkway
            Aliso Viejo, California 92656
            USA
    Tel: +1 952-932-4040

    E-mail: support@qlogic.com
    "
    DESCRIPTION
        "The QLogic (firmware) Download MIB module."

    REVISION   "200601260000Z" -- January 26, 2006
    DESCRIPTION
        "Added limits to the DisplayString for qlgcChFwDwldPathName
         and qlgcChFwDwldFileName objects."

    REVISION   "200508240000Z" -- August 24, 2005
    DESCRIPTION
        "Remove hyphens in the named numbers of qlgcChFwOpRequest.
        Complete the CONTACT-INFO with something reasonable."

    REVISION   "200506170000Z" -- June 17, 2005
    DESCRIPTION
        "Initial version of the QLogic (firmware) Download MIB module."

::= { qlogicMgmt 1 }

qlgcChFwNotifications OBJECT IDENTIFIER ::= { qlgcChangeFirmwareModule 0 }
qlgcChFwObjects       OBJECT IDENTIFIER ::= { qlgcChangeFirmwareModule 1 }
qlgcChFwConformance   OBJECT IDENTIFIER ::= { qlgcChangeFirmwareModule 2 }

-- Textual Conventions

qlgcChFwOpTypes OBJECT IDENTIFIER ::= { qlgcChFwObjects 1 }

-- The following three OIDs define the primary states in which
-- the download process may be found. In addition, these primary
-- states also act as place holders for possible errors that
-- were encountered in that state

qlgcChFwOperDownload OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION 
        "This defines a request for the switch to download
        the firmware as specified in the Download parameters."
::= { qlgcChFwOpTypes 1 }

qlgcChFwOperInstall OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION 
        "This defines a request for the switch to install
        the firmware as specified in the Install parameters."
::= { qlgcChFwOpTypes 2 }

qlgcChFwOperReset OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION
        "This defines a request for the switch to reset
        itself as specified in the Reset parameters."
::= { qlgcChFwOpTypes 3 }

-- What follows is a list of possible state/error OIDs that 
-- could be defined. It is not conclusive and is open for
-- enhancement should error reporting require more precision

qlgcChFwDwldNoErr OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION 
        "The requested download has completed with no error."
::= { qlgcChFwOperDownload 1 }

qlgcChFwDwldHostErr OBJECT-IDENTITY
    STATUS        obsolete
    DESCRIPTION 
        "The requested download has completed with a host
        error. This could be due to an incomplete Download
        parameter list, an error encountered when trying
        to communicate with the host, or a network 
        failure."
::= { qlgcChFwOperDownload 2 }

qlgcChFwDwldFileErr OBJECT-IDENTITY
    STATUS        obsolete
    DESCRIPTION 
        "The requested download has completed with a file
        error. This could be due to an incomplete Download
        parameter list or an invalid character in the 
        filename."
::= { qlgcChFwOperDownload 3 }

qlgcChFwDwldTftpErr OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION
        "The requested download has completed with a TFTP
        error. This could be due to an incomplete Download
        parameter list, an error encountered when trying
        to communicate with the host, a network
        failure or an invalid character in the
        filename."
::= { qlgcChFwOperDownload 4 }

qlgcChFwInstallNoErr OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION 
        "The requested install has completed with no error."
::= { qlgcChFwOperInstall 1 }

qlgcChFwInstallFileErr OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION 
        "The requested install has completed with a file
        error. This could be due to an incomplete Install
        parameter list or an error encountered when trying
        to install the file."
::= { qlgcChFwOperInstall 2 }

qlgcChFwInstallFileNoAdminErr OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION 
        "The requested install has completed with a permissions
        error. This could be due to not being able to set Admin
        status, perhaps because it is in use by another user."
::= { qlgcChFwOperInstall 3 }

qlgcChFwResetNoErr OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION 
        "This will presumably never be seen and is only
        included in the interests of completeness."
::= { qlgcChFwOperReset 1 }

qlgcChFwResetErr OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION 
        "The requested reset has completed with an error. 
        This could be due to an incomplete Reset parameter
        list or an error encountered when trying reset the
        switch."
::= { qlgcChFwOperReset 2 }

qlgcChFwResetNoAdminErr OBJECT-IDENTITY
    STATUS        current
    DESCRIPTION 
        "The requested reset has completed with an error. 
        This could be due to not being able to set Admin
        status, perhaps because it is in use by another user."
::= { qlgcChFwOperReset 3 }

------------------------------------------------------------------------

qlgcChFwOpControl OBJECT IDENTIFIER ::= { qlgcChFwObjects 2 }

qlgcChFwOpResult OBJECT-TYPE
    SYNTAX        AutonomousType
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "This object contains an OBJECT IDENTIFIER
        which identifies the present state of the 
        switch in completing the task requested in
        qlgcChFwOpRequest."
    DEFVAL        { zeroDotZero }
::= { qlgcChFwOpControl 1 }

qlgcChFwOpRequest OBJECT-TYPE
    SYNTAX        INTEGER {
                      auto(1),
                      downloadOnly(2),
                      installOnly(3),
                      resetOnly(4)
                  }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The requested action to be initiated through the objects
        defined in this MIB."
::= { qlgcChFwOpControl 2 }

qlgcChFwDwldHostAddrType OBJECT-TYPE
    SYNTAX        InetAddressType
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The type of Internet Network Address contained in the
        corresponding instance of the qlgcChFwDwldHostAddr."
    DEFVAL        { ipv4 }
::= { qlgcChFwOpControl 3 }

qlgcChFwDwldHostAddr OBJECT-TYPE
    SYNTAX        InetAddress
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The download host's Internet Network Address."
::= { qlgcChFwOpControl 4 }

qlgcChFwDwldHostPort OBJECT-TYPE
    SYNTAX        InetPortNumber
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The download host's Port number."
    DEFVAL        { 69 }
::= { qlgcChFwOpControl 5 }

qlgcChFwDwldPathName OBJECT-TYPE
    SYNTAX        DisplayString (SIZE (1..255))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The full path of directories leading to that where the file
        to be fetched is found.
        It is assumed that the host is running one of the variations
        of the Unix operating system (eg, Linux). See the default
        value for an example of a full path definition."
    DEFVAL        { "/" }
::= { qlgcChFwOpControl 6 }

qlgcChFwDwldFileName OBJECT-TYPE
    SYNTAX        DisplayString (SIZE (1..255))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The name of the file to be downloaded. Do not include any
        path name information - especially if the qlgcChFwDwldPathName
        is using its default."
::= { qlgcChFwOpControl 7 }

qlgcChFwResetMethod OBJECT-TYPE
    SYNTAX        INTEGER { 
                      reset(1), -- Regular "hard" reset
                      ndcla(2)  -- Non-destructive Code Load Activation
                  }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object defines the method to use when resetting the
        switch."
    DEFVAL        { reset }
::= { qlgcChFwOpControl 8 }

------------------------------------------------------------------------

-- Conformance Statements

qlgcChFwGroups OBJECT IDENTIFIER ::= { qlgcChFwConformance 1 }

qlgcChFwGroup OBJECT-GROUP
    OBJECTS {
    qlgcChFwOpResult,
    qlgcChFwOpRequest,
    qlgcChFwDwldHostAddrType,
    qlgcChFwDwldHostAddr,
    qlgcChFwDwldHostPort,
    qlgcChFwDwldPathName,
    qlgcChFwDwldFileName,
    qlgcChFwResetMethod
    }
    STATUS current
    DESCRIPTION
        "A collection of objects providing information about iSCSI
        instances."
::= { qlgcChFwGroups 1 }

qlgcChFwCompliances OBJECT IDENTIFIER ::= { qlgcChFwConformance 2 }

qlgcChFwComplianceV1 MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "Initial version of compliance statement based on
        initial version of MIB.
        
        If an implementation can be both a target and an
        initiator, all groups are mandatory."
    MODULE       -- this module
    MANDATORY-GROUPS {
    qlgcChFwGroup
    }

::= { qlgcChFwCompliances 1 }

END
