对MIB文件中一些常见的宏定义的描述
1.DEFINITIONS ::= BEGIN
SNMP始终使用ASN.1概念中的描述块(module)来组织ASN.1对象的,ASN.1的描述块是一些相关描述语句的集合,module的结构如下
<> DEFINITIONS ::= BEGIN
<>
<>
END

2.<> ::= TEXTUAL-CONVENTION
定义了对标准数据类型的进行扩展的语法
很多MIB定义中都会先定义一些基于标准类型的扩展类型,如:
CiFlowDirection ::= TEXTUAL-CONVENTION
        STATUS  current
        DESCRIPTION
            "The direction of data flow thru a circuit.

                transmit(1) - Only transmitted data
                receive(2)  - Only received data
                both(3)     - Both transmitted and received data."
        SYNTAX  INTEGER {
                  transmit(1),
                  receive(2),
                  both(3)
                }
CiFlowDirection 是基于INTEGER的枚举类型

3.<> MODULE-IDENTITY
该定义添加了一个公共的标示段来对整个信息描述块进行顶层的文字描述,以加强对管理MIB描述块的文档管理和控制,每个MIB定义中都会有该定义。
如:
circuitIfMIB MODULE-IDENTITY

4.OBJECT-IDENTIFIFIER
声明一个节点
如:
atmClpTaggingNoScr  OBJECT-IDENTITY

5.OBJECT-TYPE
如:
    ciCircuitTable  OBJECT-TYPE
        SYNTAX      SEQUENCE OF CiCircuitEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The Circuit Interface Circuit Table."
        ::= { ciObjects 1 }
包括了SNMP定义该管理对象的全部信息,相当于一个模板。
表,实体,叶子都是该类型。

SNMPv2中对SNMP的兼容性做了规定,主要是通过引入三个宏: OBJECT-GROUP,MODULE-COMPLIANCE,AGENT-CAPABILITIES.

6.OBJECT-GROUP
定义相关管理对象集合以及他们彼此关联的一致性程度。OBJECT-GROUP声明的MIB对象是实现该组所必须包括的MIB对象的最小集合。也就是说,要实现这个组,必须包括这些对象。

7.MODULE-COMPLIANCE
通过定义模块内所包含的组来保证模块的兼容性。
规定了要实现该模块必须包含的组的最小集合。
其中MANDATORY-GROUPS规定了此模块必须实现的组的名称。GROUP子句说明条件必须活条件可选的组。

8.AGENT-CAPABILITIES
管理代理实现了模块中的哪些组以及这些组中的MIB对象在实现时和原定义的差别在管理信息结构中由此宏定义表示。此宏定义在实际应用中很少见。

9.OBJECT-IDENTITY
对象标示宏,此宏定义用于说明对象标示符(OBJECT-IDENTIFIER),给对象标示符的说明加上附加信息,包括状态,文字说明等,可用于对一个表中几个参数的不同组合的意义的说明。

10.NOTIFICATION-TYPE
说明了SNMPv2的trap格式。定义了通知类型报文中传输的数据。