-- =================================================================
-- Copyright (C) 2004 by H3C TECHNOLOGIES.  All rights reserved.
--
-- Description: Object Information query mib
-- Reference: None
-- Version: V1.0
-- History:
--   V1.0 created by longyin
--     2005-01-04 Initial version
-- =================================================================
H3C-OBJECT-INFO-MIB   DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-TYPE, MODULE-IDENTITY
            FROM SNMPv2-SMI
        OBJECT-GROUP, MODULE-COMPLIANCE
            FROM SNMPv2-CONF
        h3cCommon
            FROM HUAWEI-3COM-OID-MIB;

    h3cObjectInfo   MODULE-IDENTITY
        LAST-UPDATED "200412270000Z"        -- December 27, 2004 at 14:49 GMT
        ORGANIZATION
            "Hangzhou H3C Tech. Co., Ltd."
        CONTACT-INFO
            "Platform Team Hangzhou H3C Tech. Co., Ltd.
            Hai-Dian District Beijing P.R. China
            http://www.h3c.com
            Zip:100085
            "
        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.
            "
        ::= { h3cCommon 55 }

--
-- Node definitions
--

h3cObjectInformation   OBJECT IDENTIFIER ::= { h3cObjectInfo 1 }

-- The h3cObjectInfo Table =========================================================

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

    h3cObjectInfoEntry   OBJECT-TYPE
        SYNTAX H3cObjectInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            " 
            The entry of h3cObjectInfoTable. 
            "
        INDEX   { h3cObjectInfoOID, h3cObjectInfoType, h3cObjectInfoTypeExtension }
        ::= { h3cObjectInfoTable  1 }

    H3cObjectInfoEntry ::= SEQUENCE {
        h3cObjectInfoOID             OBJECT IDENTIFIER,
        h3cObjectInfoType            INTEGER,
        h3cObjectInfoTypeExtension   OCTET STRING,
        h3cObjectInfoValue           OCTET STRING
        }

    h3cObjectInfoOID   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 h3cObjectInfoValue will be failed.
            "
        ::= { h3cObjectInfoEntry 1 }

    h3cObjectInfoType   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 h3cObjectInfoValue.  The format of the result will be
            different according to different h3cObjectInfoType.
            "
        ::= { h3cObjectInfoEntry 2 }

    h3cObjectInfoTypeExtension   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 h3cObjectInfoType.
            "
        ::= { h3cObjectInfoEntry 3 }

    h3cObjectInfoValue   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 h3cObjectInfoType 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 h3cObjectInfoType 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 h3cObjectInfoType 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 h3cObjectInfoValue 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 h3cObjectInfoType 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[]'.
            "
        ::= { h3cObjectInfoEntry 4 }

-- The h3cObjectInfoMIB Conformance ==============================================

    h3cObjectInfoMIBConformance   OBJECT IDENTIFIER ::= { h3cObjectInfo 2 }

    h3cObjectInfoMIBCompliances   OBJECT IDENTIFIER ::= { h3cObjectInfoMIBConformance 1 }

    h3cObjectInfoMIBCompliance   MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
            " 
            The compliance statement for implementing ObjectInfo MIB.
            "
        MODULE
            H3C-OBJECT-INFO-MIB
        MANDATORY-GROUPS { h3cObjectInfoTableGroup }

        ::= { h3cObjectInfoMIBCompliances 1 }

-- The h3cObjectInfoMIB Groups ====================================================
    h3cObjectInfoMIBGroups   OBJECT IDENTIFIER ::= { h3cObjectInfoMIBConformance 2 }

    h3cObjectInfoTableGroup   OBJECT-GROUP
        OBJECTS {
                    h3cObjectInfoValue
                }
        STATUS  current
        DESCRIPTION
            " 
            The basic collection of h3cObjectInfo table objects.
            "
        ::= { h3cObjectInfoMIBGroups 1 }

END
