做过snmp/mib开发的知道,常见的节点类型一般只有no-accessible,read-only,read-write三种访问类型。snmp V2中引入了一种新的访问类型:read-create。

最近在一个产品的snmp管理接口开发中,需要实现snmpTargetMIB(.1.3.6.1.6.3.12),其下面两个表snmpTargetAddrEntry和snmpTargetParamsTable的节点都是read-create类型。

read没什么好说的,关键是这个create。Create是指这个表的行可以通过“snmp途径”来操作(增加,删除)。这些行操作是通过表中的“RowStatus”节点来进行的,比如上图中的snmpTargetAddrRowStatus和snmpTargetParamsRowStatus。mib中这两个节点的类型定义如下:

        ROWSTATUS INTEGER {active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), destroy(6) }

1.表中行的创建/删除操作 

如果把rowstauts节点值设成(SnmpSet)4,5则表示在表中建立一个新的行(索引值同rowstatus节点)。

而1,2,3则是用来标记这一行描述的对象的状态的(前提是已经建立)。即建立一行后,应根据对象的=状态来更新rowstatus节点值到1/2/3。

如果把RowStatus的值设成6,则表示要删除这行。

可能有点绕,总结一下,有管理软件(发起snmp命令的)和被管理方(MIB所在处),表的行的节点建立&删除指令由管理软件来发送,由被管理方来执行。

举个例子:

比如表中已经有两条记录:

snmpTargetAdrrRowStatus(1) --->Active

snmpTargetAddrRowStatus(2) ---->notReady

要增加一个索引为3的记录,管理方发起一条 snmpSet snmpTargetAddrRowStatus(3) --->createAndGo,被管理方收到这条消息后,在表中建立一条索引为3的记录,包括snmpTargetAddrRowStatus(3)节点。

2.表中行的节点值的维护/更新

表行中所有的节点的值,除了rowStatus的4,5,6只能由管理软件来写(snmp-set),其他节点的值和RowStatus的2,3,4可以由管理软件或被管理方来更新。这点mib定义是未做约束的,我觉得这样也是合理的,可以根据需要灵活处理。

比如要添加一个告警目标(IP地址),这个地址通过管理软件来设置(snmp-set snmpTargetAddrTAddress),也可以在被管理方上来设置(比如通过Console接口,配置文件等)。  而这个目标是否可以连通则由被管理方来检测(根据结果设置rowStatus的值到1/2/3)。其实每个节点在创建后被管理方都应给它个默认值。

关于read-create节点表的软件实现,提供点思路吧。

管理方软件:

其实就是snmp-get 和snmp-set的命令组合,和read-write节点操作一样。“create”是通过snmp-set RowStatus节点来实现的。

被管理方软件:

对于RowStatus节点,定义好对RowStatus节点操作的回调函数,回调函数中根据写入的值来创建/删除表中的记录行。对于其他节点的实现则和read-write节点一样。

SNMP MIB中的含read-create节点的表的实现的更多相关文章

  1. SNMP MIB库

    -- mib文件的开头指定文件名,并且使用BEGIN开始,文件的最后用END结束 -- IMPORTS就相当与c语言中的include,包含需要使用的一些数据类型 -- 通过FROM指定引用的来源 M ...

  2. es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式

    es6 Object.assign   目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...

  3. lwip 2.0.2 snmp mib ipv6

    1.3.6.1.2.1 - SNMP MIB-2 Submitted by Harald.T.Alvestrand at uninett.no from host aun.uninett.no (12 ...

  4. 单链表 C++ 实现 - 含虚拟头节点

    本文例程下载链接:ListDemo 链表 vs 数组 链表和数组的最大区别在于链表不支持随机访问,不能像数组那样对任意一个(索引)位置的元素进行访问,而需要从头节点开始,一个一个往后访问直到查找到目标 ...

  5. LeetCode 剑指 Offer 22. 链表中倒数第k个节点

    剑指 Offer 22. 链表中倒数第k个节点 题意 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. ​ 例如,一个链表有 6 个 ...

  6. 【前端】js中new和Object.create()的区别

    js中new和Object.create()的区别 var Parent = function (id) { this.id = id this.classname = 'Parent' } Pare ...

  7. 剑指offer-第三章高质量的代码(输出该链表中倒数第K个节点)

    题目:输入一个链表,输出这个链表中倒数第K个节点.(代码的鲁棒性) 思路:用两个指针p1和p2,都指向头节点,开始的时候,p2不动,p1移动k-1次,指向第k个节点.此时,如果p1->next! ...

  8. 向CDH5集群中添加新的主机节点

    向CDH5集群中添加新的主机节点 步骤一:首先得在新的主机环境中安装JDK,关闭防火墙.修改selinux.NTP时钟与主机同步.修改hosts.与主机配置ssh免密码登录.保证安装好了perl和py ...

  9. lintcode:Remove Nth Node From End of Lis 删除链表中倒数第n个节点

    题目: 删除链表中倒数第n个节点 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点.  样例 给出链表1->2->3->4->5->null和 n = 2. 删除 ...

随机推荐

  1. spm中头动绘图的理解,自带数据集

    1.在得到头动评估的数据基础上,可以汇出头动变化的折线图. 运行本程序需要下载相应的实例数据 headmove_data.txt 头动是fMRI的一个重要问题,该程序画出了某个被试进行扫描时头动的具体 ...

  2. java 构造函数内部的多态方法 完全剖析

    我们先来看一个例子,如果你读过<java编程思想>的话 应该会有印象 package com.test.zj; public class PolyConstructors { public ...

  3. android 横竖屏限制如何配置

    在开发android的应用中,有时候需要限制横竖屏切换.只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制. ndroid:screen ...

  4. mysql 插入汉字出现问号 解决方法

    mysql中文显示乱码或者问号是因为选用的编码不对或者编码不一致造成的,最简单的方法就是修改mysql的配置文件my.cnf.在[mydqld]和[client]段加入 default-charact ...

  5. 【转】WPF MultiBinding 和 IMultiValueConverter

    WPF MultiBinding 和 IMultiValueConverter 时间 2015-02-02 19:43:00  博客园精华区 原文  http://www.cnblogs.com/wo ...

  6. BroadcastReceiver应用详解

    今天我们来讲一下Android中BroadcastReceiver的相关知识. BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播. 在And ...

  7. Yii连接多个数据库的方法

    一.配置多数据库 大多数情况下,我们都会采用同一类型的数据库,只是为了缓解压力分成主从或分布式形式而已.声明你可以在 主配置文件 ( main.php )   中里声明其它的数据库连接: <?p ...

  8. [Java]获取Window界面的标题栏的高度大小

    利用JFrame继承java.awt.Container类的函数getInsets().该函数返回insets类. import java.awt.Insets; import javax.swing ...

  9. bjfu1253 最大上升子序列和

    n^2的算法就行,很简单的动态规划.直接上代码 /* * Author : ben */ #include <cstdio> #include <cstdlib> #inclu ...

  10. [转]Java Web乱码过滤器

    本文转自http://blog.csdn.net/l271640625/article/details/6388690 大家都知道,在jsp里乱码是最让人讨厌的东西,有些乱码出来的莫名其妙,给开发带来 ...