做过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. 【英语】Bingo口语笔记(21) - 表达“请客吃饭”

  2. 【Android】SDK工具学习 - Traceview 和 dmtracedump

    dmtracedump官方文档 Traceview 根据程序的log,形成图形 dmtracedump [-ho] [-s sortable] [-d trace-base-name] [-g out ...

  3. Android点击按钮实现全屏的代码

    package com.hsx.test; import java.lang.reflect.Field; import android.app.Activity; import android.os ...

  4. Hadoop学习总结之五:Hadoop的运行痕迹

    Hadoop学习总结之五:Hadoop的运行痕迹   Hadoop 学习总结之一:HDFS简介 Hadoop学习总结之二:HDFS读写过程解析 Hadoop学习总结之三:Map-Reduce入门 Ha ...

  5. bootstrap-datetimepicker在经过GC(Google Closure Compiler)压缩后无法使用的解决方案

    将压缩级别由simple改成whitespace 问题就是这样之后压缩后的文件大了很多 <?xml version="1.0"?> <project name=& ...

  6. Spring 框架概述

    ◆简介 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 Spring 框架是一个分层架构,由 7 个定义良好的模块组成. ...

  7. anything vs everything

    everything多用于肯定而anything多用于否定和疑问语气 anything 1) 任何事情/东西,可以用在肯定句/否定句/疑问句中.如:You can take anything you ...

  8. C#中的选择查询相关

    看代码实现: using System; using System.Collections.Generic; using System.Linq; using System.Text; using S ...

  9. LR之脚本调试

    1.概述 2.Animated run和Non-animated run 3.调试小技巧 4.日志设置

  10. 《深入理解C#》第3版 学习进度备忘

    学习资源:<深入理解C#>第3版 知识基础支持: <C# in a nutshell> O Reilly出版社,是一本从头介绍C#的优秀图书.<Essential C#5 ...