SNMP MIB中的含read-create节点的表的实现
做过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节点的表的实现的更多相关文章
- SNMP MIB库
-- mib文件的开头指定文件名,并且使用BEGIN开始,文件的最后用END结束 -- IMPORTS就相当与c语言中的include,包含需要使用的一些数据类型 -- 通过FROM指定引用的来源 M ...
- es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式
es6 Object.assign 目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...
- 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 ...
- 单链表 C++ 实现 - 含虚拟头节点
本文例程下载链接:ListDemo 链表 vs 数组 链表和数组的最大区别在于链表不支持随机访问,不能像数组那样对任意一个(索引)位置的元素进行访问,而需要从头节点开始,一个一个往后访问直到查找到目标 ...
- LeetCode 剑指 Offer 22. 链表中倒数第k个节点
剑指 Offer 22. 链表中倒数第k个节点 题意 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点. 例如,一个链表有 6 个 ...
- 【前端】js中new和Object.create()的区别
js中new和Object.create()的区别 var Parent = function (id) { this.id = id this.classname = 'Parent' } Pare ...
- 剑指offer-第三章高质量的代码(输出该链表中倒数第K个节点)
题目:输入一个链表,输出这个链表中倒数第K个节点.(代码的鲁棒性) 思路:用两个指针p1和p2,都指向头节点,开始的时候,p2不动,p1移动k-1次,指向第k个节点.此时,如果p1->next! ...
- 向CDH5集群中添加新的主机节点
向CDH5集群中添加新的主机节点 步骤一:首先得在新的主机环境中安装JDK,关闭防火墙.修改selinux.NTP时钟与主机同步.修改hosts.与主机配置ssh免密码登录.保证安装好了perl和py ...
- lintcode:Remove Nth Node From End of Lis 删除链表中倒数第n个节点
题目: 删除链表中倒数第n个节点 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 样例 给出链表1->2->3->4->5->null和 n = 2. 删除 ...
随机推荐
- ZOJ 3396 Conference Call(3点最小生成树)
题意:给出一组含m个点的无向图,再给出n个点,这n个点分别以一条边连接到这个无向图中的某个点.对于每个询问,求出3点连通的最小代价.有可能3个点是不能互通的.如图,最小代价就是红色的边的权之和. 思路 ...
- 20160204.CCPP体系详解(0014天)
程序片段(01):define.h+data.h&data.c+control.h&control.c+view.h&view.c+AI.h&AI.c+main.c 内 ...
- 【转】搭建Python的Eclipse开发环境之安装PyDev插件--离线安装
原文网址:http://blog.csdn.net/wangpingfang/article/details/7181223 使用update site安装pydev插件 注意:该安装指南针对ecli ...
- 小结JS中的OOP(上)
前言:大家都知道,OOP有三大特性:封装,继承,多态.下面是自己对这三个特性的理解: 封装:把属性与方法整合到某种数据类型中.目的是让类的使用者按类的编写者的意愿去使用类.在封装过程中会一般会做两件事 ...
- C# GDI+学习笔记1
前言 本文是学习C# GDI+系列的第一篇文章,简单的介绍了GDI+的一些基本绘图内容,比较粗糙.但本文主要是让大家简单的回顾一下GDI+的基本概念.本篇文章的参考代码请在此下载 . GDIPTes ...
- LoadRunner error -27498
URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/ subOrderQuery.do错误分析:这种错误常常是因为并发压 ...
- 性能测试之系统监控工具nmon
一.概述 本篇文章主要讲解nmon,以下为目录 1.nmon介绍 2.nmon下载.安装及使用 3.nmon analysis 分析及使用,各个项的含义 二.详细信息: 1.nmon介绍: nmon( ...
- 独立开发游戏越来越容易:Unity 发布旗下的最新游戏引擎 Unity 5,依然有免费版(转)
独立开发者开发游戏正变得越来越容易,因为在游戏设计中很多吃力不讨好的工作可以直接采用像 Epic Games 或 Unity Technologies 这样的游戏引擎来解决.而这几天,游戏引擎商们先后 ...
- 浅谈“be practical and realistic”
一 “实事求是”这个词,一般认为是古人的一种治学观念,后来经咏芝的发明.阐释.以及“应用”,成为“基本思想路线”(具体可参看大学思想政治教科书),被称为“活的灵魂”.这里不想过多地牵扯政治话题,仅就我 ...
- 数往知来 ASP.NET 表单的提交_url传值_重定向 <十八>
一.表单提交时注意 如果是以get方式提交数据的时候,在接收时是用QueryString方式进行接收 如果是以post请求数据时在接收时是用Form进行接收 为什么么要这样做呢?我们用Request[ ...