LWIP2.0.3SNMP

    技术2022-07-10  102

    SNMP数据类型 数据类型共分为三大类,即: (1)通用类型(Universal) (2)通用结构类型(Universal-constructed) (3)应用类型(application) ●通用数据类型 通用数据类型通常被称为非聚合类型,在SNMP协议中有4种通用数据类型: (1)INTEGER: 整型,是-2,147,483,648~2,147,483,647的有符号整数; (2)OCTET STRING: 字符串; (3)OBJECT IDENTIFIER: 对象标识符; (4)NULL: 空值。 ●通用结构类型 结构类型指列表和表格,常被称作聚合类型。在SNMP协议中主要使用两种结构类型: (1)SEQUENCE 用于列表。这一数据类型与大多数程序设计语言中的“structure”类似。一个SEQUENCE包括0个或更多元素,每一个元素又是另一个ASN.1数据类型。 (2)SEQUENCE OF type 用于表格。这一数据类型与大多数程序设计语言中的“array”类似。一个表格包括0个或更多元素,每一个元素又是另一个ASN.1数据类型。 ●应用数据类型 应用数据类型采用隐式定义,是引用SNMP的简单数据类型来定义的。主要有6种: (1)IpAddress: 以网络序表示的IP地址。因为它是一个32位的值,所以定义为4个字节; (2)network address:网络地址,表示从一个特定协议族中选定的网络地址, SNMPv1仅支持32位IP地址;所以与IpAddress等效; (3)counter:计数器是一个非负的整数,它递增至最大值,而后归零。SNMPv1中定义的计数器是32位的,即最大值为4,294,967,295; (4)Gauge :也是一个非负整数,它可以递增或递减,但达到最大值时保持在最大值,最大值为2^32-1; (5)time ticks:是一个时间单位,表示以0.01秒为单位计算的时间; opaque:表示用于传递任意信息串的任意编码格式,它与SMI使用的严格数据输入格式不同

    Lwip1.4.1中:

    数据类型的定义,读写方式是由定义的最后一层的四个函数确定的,可以参考 const mib_scalar_node snmp_scalar = { &snmp_get_object_def, &snmp_get_value, &snmp_set_test, &snmp_set_value, MIB_NODE_SC, 0 };这个当前最后一层这四个函数 snmp_get_object_def 节点定义 snmp_get_value 节点数据读取 snmp_set_test 节点测试(其实是定义长度测试),主要用于set限制输入长度 snmp_set_value 节点数据写入 另外,如果使用私有节点,需要定义宏SNMP_PRIVATE_MIB为1

    要在节点定义时(或在节点初始化时),要调用每个节点的里这几个函数,初始化每个节点的数据类型,允许读写的模式,和数据长度,还有数据的赋值等操作

    /**************************************************************************/

    Lwip2.0.3 版本:以后再写

    Processed: 0.053, SQL: 9