-- =================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: Object Information query mib
-- Reference: None
-- Version: V1.0
-- History:
--   V1.0 created by longyin
--     2005-01-04 Initial version
-- =================================================================
HPN-ICF-OBJECT-INFO-MIB   DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-TYPE, MODULE-IDENTITY
            FROM SNMPv2-SMI
        OBJECT-GROUP, MODULE-COMPLIANCE
            FROM SNMPv2-CONF
        hpnicfCommon
            FROM HPN-ICF-OID-MIB;

    hpnicfObjectInfo   MODULE-IDENTITY
        LAST-UPDATED "200412270000Z"        -- December 27, 2004 at 14:49 GMT
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
            "
            This MIB is used to acquire information from the agent.
            Before a NMS takes some actions, it is not sure whether the
            agent supports it or not.  This MIB is used to solve this problem.
            "
        REVISION "200412270000Z"   -- December 27, 2004 at 14:49 GMT
        DESCRIPTION
            "
            The initial revision of this MIB module.
            "
        ::= { hpnicfCommon 55 }

--
-- Node definitions
--

hpnicfObjectInformation   OBJECT IDENTIFIER ::= { hpnicfObjectInfo 1 }

-- The hpnicfObjectInfo Table =========================================================

    hpnicfObjectInfoTable   OBJECT-TYPE
        SYNTAX  SEQUENCE OF HpnicfObjectInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "
        MIB objects information query table.
        "
        ::= { hpnicfObjectInformation 1 }

    hpnicfObjectInfoEntry   OBJECT-TYPE
        SYNTAX HpnicfObjectInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            " 
            The entry of hpnicfObjectInfoTable. 
            "
        INDEX   { hpnicfObjectInfoOID, hpnicfObjectInfoType, hpnicfObjectInfoTypeExtension }
        ::= { hpnicfObjectInfoTable  1 }

    HpnicfObjectInfoEntry ::= SEQUENCE {
        hpnicfObjectInfoOID             OBJECT IDENTIFIER,
        hpnicfObjectInfoType            INTEGER,
        hpnicfObjectInfoTypeExtension   OCTET STRING,
        hpnicfObjectInfoValue           OCTET STRING
        }

    hpnicfObjectInfoOID   OBJECT-TYPE
        SYNTAX  OBJECT IDENTIFIER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            " 
            The OID of the MIB object which is queried.  
            If the user has no privilege accessing to the object referred by this OID, 
            get operation on hpnicfObjectInfoValue will be failed.
            "
        ::= { hpnicfObjectInfoEntry 1 }

    hpnicfObjectInfoType   OBJECT-TYPE
        SYNTAX  INTEGER
        {
            reserved(1),       -- this value is reserved, not used.
            accessType(2),     -- query access type of the MIB object
            dataType(3),       -- query data type of the MIB object
            dataRange(4),      -- query data value range of the MIB object
            dataLength(5)      -- query data length of the MIB object
        }
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "
            The object's properties type to be queried.         
            The queried result will be returned by hpnicfObjectInfoValue.  The format of the result will be
            different according to different hpnicfObjectInfoType.
            "
        ::= { hpnicfObjectInfoEntry 2 }

    hpnicfObjectInfoTypeExtension   OBJECT-TYPE
        SYNTAX  OCTET STRING(SIZE (1..10))
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "
            The object's property type extension to be queried.  
            This object's value is relative to the value of hpnicfObjectInfoType.
            "
        ::= { hpnicfObjectInfoEntry 3 }

    hpnicfObjectInfoValue   OBJECT-TYPE
        SYNTAX  OCTET STRING
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "
            Return property value of the queried object.   
            Zero length string is the default value of this object which means no value is returned.  
            If the request is invalid, then the result should be the default value.  
        
            If the value of hpnicfObjectInfoType is accessType, the rules below should be followed.  
                1) The returned value must have prefix 'A', and followed by some nonnegative integers.
                   The format is like 'A2'.
                2) The nonnegative integers and the meaning of them are as follow:
                               0 means 'not-accessible'.
                               1 means 'notification'.
                               2 means 'read-only'.
                               3 means 'read-write'.
                               4 means 'read-create'.
                               5 means 'write-only'.
                               6 means 'accessible-for-notify'.
                               7 means 'error'.
                               --the above values are defined by standard protocol 
                               101 means 'not implemented'.  -- The queried node is not implemented by agent.
                               102 means 'unknown error'.    -- Query failed for unknown reason.
                 
            If the value of hpnicfObjectInfoType is dataType, the rules below should be followed.  
               1) The returned value must have prefix 'T', and followed by string which has
                  format like 2), such as 'T1', the character '1' means INTEGER.  
               2) The following data types are defined in standard protocol, the values in brackets 
                  will be returned to indicate these data types.
                               INTEGER(1)
                               Integer32(2)
                               Unsigned32(4)
                               Gauge(6)
                               Counter(7)
                               Counter32(8)
                               Counter64(9)
                               TimeTicks(10)
                               OCTET STRING(11)
                               OBJECT IDENTIFIER(12)
                               IpAddress(13)
                               NetworkAddress(14)
                               Opaque(15)
                               BITS(16)
            
            If the value of hpnicfObjectInfoType is dataRange, the rules below should be followed.
               1) The returned value must have prefix 'R', and followed by string which has the
                  format like 2) to 5), such as 'R[1,1]'.
               2) If hpnicfObjectInfoValue returns Integer32, the format is as followed. Suppose A is a 
                  MIB object.
                  If SYNTAX of A is 'Integer32{1|2|3|5|6|7}', the format is 'R[1,3],[5,7]'.
                  If SYNTAX of A is 'Integer32{1|3}', the format is 'R[1,1],[3,3]'.
                  If SYNTAX of A is 'Integer32', the format is 'R[]' which means the default value 
                  range of Integer32 between -2147483648 and 2147483647.
               3) The process of Counter, Counter32, Counter64, Unsigned32, Gauge32, INTEGER is the 
                  same as that of Integer32.
               4) If SYNTAX of A is other types such as OCTET STRING, then this object returns default value 'R[]'.
               5) If SYNTAX of A is 'BITS{a(0),b(1)}', the format is 'R[0,0],[1,1]'.
            
            If the value of hpnicfObjectInfoType is dataLength, the rules below should be followed.
               1) The returned value must have prefix 'L', and followed by string which has the format
                  like 2) to 4), such as 'L[6,6]'.
               2) If SYNTAX of A is 'OCTET STRING(SIZE (6|10..255))', the format is 'L[6,6],[10,255]'.
                  If SYNTAX of A is 'OCTET STRING', the format is like 'L[]' which means the default 
                  length of OCTET STRING between 0 and 65535.
               3) If SYNTAX of A is BITS, the format of it is the same as OCTET STIRNG. But its unit 
                  is in bit, not in byte.
               4) If SYNTAX of A is other types such as INTEGER and IpAddress, this object returns 'L[]'.
            "
        ::= { hpnicfObjectInfoEntry 4 }

-- The hpnicfObjectInfoMIB Conformance ==============================================

    hpnicfObjectInfoMIBConformance   OBJECT IDENTIFIER ::= { hpnicfObjectInfo 2 }

    hpnicfObjectInfoMIBCompliances   OBJECT IDENTIFIER ::= { hpnicfObjectInfoMIBConformance 1 }

    hpnicfObjectInfoMIBCompliance   MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
            " 
            The compliance statement for implementing ObjectInfo MIB.
            "
        MODULE
            HPN-ICF-OBJECT-INFO-MIB
        MANDATORY-GROUPS { hpnicfObjectInfoTableGroup }

        ::= { hpnicfObjectInfoMIBCompliances 1 }

-- The hpnicfObjectInfoMIB Groups ====================================================
    hpnicfObjectInfoMIBGroups   OBJECT IDENTIFIER ::= { hpnicfObjectInfoMIBConformance 2 }

    hpnicfObjectInfoTableGroup   OBJECT-GROUP
        OBJECTS {
                    hpnicfObjectInfoValue
                }
        STATUS  current
        DESCRIPTION
            " 
            The basic collection of hpnicfObjectInfo table objects.
            "
        ::= { hpnicfObjectInfoMIBGroups 1 }

END
