CN1520095A - 网管标准代理中信息管理库树的加载实现方法 - Google Patents

网管标准代理中信息管理库树的加载实现方法 Download PDF

Info

Publication number
CN1520095A
CN1520095A CNA031024610A CN03102461A CN1520095A CN 1520095 A CN1520095 A CN 1520095A CN A031024610 A CNA031024610 A CN A031024610A CN 03102461 A CN03102461 A CN 03102461A CN 1520095 A CN1520095 A CN 1520095A
Authority
CN
China
Prior art keywords
mib
tree
protocol module
subtree
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA031024610A
Other languages
English (en)
Other versions
CN1332528C (zh
Inventor
曹诗勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB031024610A priority Critical patent/CN1332528C/zh
Publication of CN1520095A publication Critical patent/CN1520095A/zh
Application granted granted Critical
Publication of CN1332528C publication Critical patent/CN1332528C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种网管标准代理中信息管理库(MIB)树的加载实现方法,包括:由MIB编译器将各协议模块的MIB文件生成MIB子树;各协议模块在启动、完成初始化后,由各MIB子树中封装的挂接函数将各协议模块的MIB子树加载到产品的MIB树中。生成的MIB子树包含有用C语言描述的MIB子树挂接算法和协议模块MIB节点的逻辑关系,MIB子树挂接算法封装在包含模块名的挂接函数中。挂接函数是由MIB编译器提供给协议模块的加载MIB子树的接口函数。各协议模块的挂接函数,利用递归调用方法,进行MIB树节点查找与叠加,对各协议模块的MIB子树作合并,生成一棵MIB树。可充分支持产品协议模块的可裁剪性;减轻SNMPAgent开发工作量,提高开发效率;能满足电信产品MIB管理信息在线升级的需求。

Description

网管标准代理中信息管理库树的加载实现方法
技术领域
本发明涉及一种数据通讯技术,更确切地说是涉及一种SNMP Agent开发中,信息管理库(MIB)树的加载实现方法。
背景技术
SNMP是业界最流行的网络管理标准,管理者与几乎所有的可管理设备之间都依靠该网管协议进行通讯。如大部分数据通信设备,包括路由器、接入服务器、ATM(异步传输模式)交换机、LAN SWITCH(局域网交换机)、ADSL(非对称数字用户线)等,自然都需支持SNMP协议。
如图1所示的SNMP管理站与SNMP代理间的数据流,SNMP网络管理站(SNMP NMS:SNMP Management Station),经网络或Internet,通过向SNMP代理(Agent)发送请求(包括:GetRequest、GetNextReq、GetBulk、SetRequest)对SNMP Agnet上的管理变量进行操作;SNMP Agent接到请求后通过发送响应(GetResponse)向SNMP NMS返回操作的结果;当SNMP Agent上发生异常时,SNMP Agnet通过向SNMP NMS发送Trap或者Notification来通知SNMP NMS。图中虚线表示网络最高层(应用层)间可直接进行通讯,其它层间通过物理层协议(Network-Dependent Protocols)进行通讯。
SNMP Agent是一驻留在设备上的软件模块,接受网管站发出的网管操作请求,并应请求向其它协议模块索取管理信息或进行相应操作,然后响应请求。信息管理库(MIB)是SNMP协议栈的一部分,它定义了可以通过网络管理协议进行访问的被管对象的集合。
宽带网络通信产品的开发离不开SNMP Agent的开发,而在宽带网络通信产品中,产品由多个协议模块组成,每个协议模块又有相应的MIB文件与之关联。在SNMP Agent的开发过程中,惯用的MIB树加载实现方法,是将所有协议模块的MIB文件一起通过MIB编译器编译,形成一个点C文件的MIB树。
这种做法存在很多弊端:生成的MIB树文件过大、难于实现协议模块的拆卸,更重要的是无法实现MIB管理信息的在线升级;当产品中某个或某些协议模块需要被裁剪时,所有未被裁剪协议模块的MIB文件又需要重新组织,用MIB编译器重新再生成点C文件,导致各协议模块因为MIB文件而不能很好地支持产品的可裁减性;当MIB文件很多时,用MIB编译器生成的这个点C文件将是巨大无比的,代码小到几万行大到十几万甚至几百万行,在PSOS及Vxworks环境下会因为源文件过大而不能通过编译,导致SNMP Agent的开发人员需要手工将产品的MIB文件拆分成几个小文件,这样的拆分工作既繁杂又多余。
发明内容
本发明的目的是设计一种网管标准代理中信息管理库树的加载实现方法,在产品初始化协议模块时,各个协议模块动态地加载各模块的MIB文件,实现MIB子树的动态叠加。
实现本发明目的的技术方案是:一种网管标准代理中信息管理库MIB树的加载实现方法,其特征在于包括:
A.由MIB编译器将各协议模块的MIB文件生成MIB子树;
B.各协议模块在启动、完成初始化后,由各MIB子树中封装的挂接函数将各协议模块的MIB子树加载到产品的MIB树中。
所述步骤A中,生成的MIB子树包含有用C语言描述的MIB子树挂接算法和协议模块MIB节点的逻辑关系,MIB子树挂接算法封装在包含模块名的挂接函数中。
所述的挂接函数是由MIB编译器提供给协议模块的加载MIB子树的接口函数。
所述各协议模块的挂接函数,是将对应MIB子树的逻辑结构加载到产品的MIB树中。
所述的步骤B,是通过调用各协议模块的挂接函数,利用递归调用方法,进行MIB树节点查找与叠加,对各协议模块的MIB子树作合并的过程。
所述的递归调用进一步包括:从各协议模块的MIB子树的根节点开始查找;判断所查找的节点是否存在于MIB树中,对于MIB树中不存在的节点,将该节点连同其孩子节点一起挂接到MIB树中,对于MIB树中存在的节点,进一步判断该节点的孩子节点是否存在于MIB树中,对于不存在的孩子节点,将该孩子节点连同它们的孩子节点一起挂接到MIB树中,重复执行本步骤直至各协议模块的MIB子树全部叠加到MIB树中;进行线索化MIB树节点。
所述的步骤B还包括,对于被裁剪掉的协议模块,仅在叠加各协议模块MIB子树的过程中,不对与被裁剪协议模块相关的MIB子树作合并。
本发明MIB树的动态加载技术,是对不同协议模块的MIB先分别编译,然后动态链接和加载。就是在SNMP Agent开发过程中,将与产品的各个协议模块相关的MIB文件先用MIB编译器生成MIB子树;在产品初始化各协议模块的时候,各个协议模块动态地加载各自模块的MIB,实现MIB子树的动态叠加;众多这样的MIB子树动态叠加形成产品的MIB树。
采用本发明的方法,在某个或某些协议模块被裁剪时,SNMP Agent开发人员不必重新组织各MIB文件,不必重新用MIB编译器再对没有被裁剪的MIB文件进行编译,在产品初始化各协议模块的时候,各个没有被裁剪的协议模块就会动态地加载各自模块的MIB,实现MIB子树的叠加,同时也能避免发生因源文件过大而不能编译、需手工拆分的情况。
另外,MIB树的动态加载技术还能解决电信产品MIB管理信息的在线升级需求,当产品槽位中插入新的业务板后,为了能够对业务板进行网管,也需要业务板在初始化的过程中将MI B管理信息动态的加载到主控板上。
本发明方法的有益效果是:
可充分支持产品协议模块的可裁剪性;减轻了SNMP Agent开发的工作量,可提高开发效率;能满足电信产品的MIB管理信息可在线升级的需求。
附图说明
图1是SNMP网管站与SNMP代理间数据流示意图;
图2是PPP模块用MIB编译器生产PPP模块MIB子树的过程示意图;
图3是设备动态加载MIB树的加载框架示意图;
图4是设备动态加载MIB树的加载过程示意图;
图5是一协议模块MIB子树1的节点关系示意图;
图6是另一协议模块MIB子树2的节点关系示意图;
图7是MIB子树1与MIB子树2叠加后的MIB树节点关系示意图。
具体实施方式
本发明MIB树动态加载技术实现的原理如下:
1)生产各协议模块的MIB子树,是由MIB编译器对与各协议模块相关的MIB文件进行编译,生成用C语言描述的各MIB子树;各MIB子树中描述了本协议模块MIB节点的逻辑关系及封装了用SNMP_Add_MIB+协议模块名的挂接函数。
首先,各协议模块用MIB编译器将与本协议模块相关的MIB文件生成MIB子树,同时,MIB编译器还向各协议模块提供一加载MIB子树的接口(挂接)函数,以便在该协议模块的任务启动且初始化完成后,调用该接口函数完成MIB子树加载。
如图2所示的PPP协议模块,与它相关的MIB文件是rfc1473.mib和rfc1471.mib,由MIB编译器将MIB文件rfc1473.mib及rfc1471.mib生成用C语言描述的MIB子树PPP_tree.c,该MIB子树PPP_tree.c中描述了PPP协议模块MIB节点的逻辑关系,及封装了一MIB接口(挂接)函数,该接口函数要完成的功能是把PPP的MIB子树(ppp_tree.c)加载到产品的MIB树中。
如图4所示,MIB编译器将VLAN协议模块的MIB文件vlan.mib生成MIB子树vlan_tree.c,将SNMP协议模块的MIB文件snmp.mib生成MIB子树snmp_tree.c,将QOS协议模块的MIB文件qos.mib生成MIB子树qos_tree.c,将PPP协议模块的MIB文件ppp.mib生成MIB子树ppp_tree.c,将IP协议模块的MIB文件ip.mib生成MIB子树ip_tree.c,将ROUTER协议模块的MIB文件router.mib生成MIB子树router_tree.c。
2)各协议模块在启动且完成初始化后,调用各协议模块的挂接函数“SNMP_Add_MIB+协议模块名”,将各协议模块的MIB子树叠加到产品的MIB树中,完成各模块MIB子树的动态加载过程。
如图3中所示,在设备初始化前,已经由MIB编译器将PPP协议模块的MIB文件生成了用C语言描述的PPP MIB子树、已经由MIB编译器将IP协议模块的MIB文件生成了用C语言描述的IP MIB子树、已经由MIB编译器将VLAN(虚拟局域网)协议模块的MIB文件生成了用C语言描述的VLAN MIB子树、已经由MIB编译器将QOS(服务质量)协议模块的MIB文件生成了用C语言描述的QOS MIB子树、和已经由MIB编译器将SNMP(网管标准)协议模块的MIB文件生成了用C语言描述的SNMP MIB子树。
当各协议模块在启动且完成初始化后,所有协议模块通过调用各自模块的挂接函数,将各模块的MIB子树(PPP MIB子树、IP MIB子树、VLAN MIB子树、QOS MIB子树、SNMP MIB子树)都叠加在一起,构成产品的一棵MIB树。当某一个协议模块或某几个协议模块被裁剪后,与这些协议模块相关的MIB子树节点也就不会被加载到MIB树中,如图中虚线所示。
3)由MIB编译器提供的模块挂接函数,如“SNMP_Add_MIB+模块名”,封装了MIB树挂接算法,算法主要是利用递归调用方法来完成MIB节点的查找与叠加,MIB树叠加是各协议模块MIB子树的一个合并过程。
如图4中所示,对各协议模块的MIB子树vlan_tree.c、snmp_tree.c、qos_tree.c、ppp_tree.c、ip_tree.c、和router_tree.c进行动态加载,形成设备或产品的MIB树,应用于通信设备的SNMP代理开发中。
结合参见图5、图6、图7,A是各协议模块MIB子树的根节点,B、C、D是A的孩子节点,E、F、G是B的孩子节点,J是E的孩子节点,K、L是G的孩子节点,H、I是D的孩子节点,M、N、O是H的孩子节点,P是M的孩子节点,Q、R是O的孩子节点。也可以说J是A的孩子节点B的孩子节点E的孩子节点,依次类推。
图5所示是MIB子树1的节点逻辑关系,图6所示是MIB子树2的节点逻辑关系,图7所示是叠加后的MIB树的节点逻辑关系。进行叠加时挂接函数的递归调用过程是:1)首先从协议模块MIB子树1的根节点A开始(图5所示),看该节点A在MIB树中是否存在,MIB树中不存在该节点A,则把该节点A连同其孩子节点B、C、D、孩子节点的孩子节点E、F、G、H、I、孩子节点的孩子节点的孩子节点K、L一起挂接到MIB树中,形成图7中与图5相同节点关系的MIB树;再从协议模块MIB子树2的根节点A开始(图6所示),看该节点A在MIB树中是否存在,该节点A存在于MIB树中,再看它的孩子节点B、C、D、孩子节点的孩子节点H、I也都存在于MIB树中,但H节点的孩子节点M、N、O及孩子节点的孩子节点P、Q、R不存在于MIB树中,则将H节点连同其孩子节点M、N、O及其孩子节点的孩子节点P、Q、R一起挂接到MIB树中,形成图7所示合并后的MIB树。
各协议模块都叠加完成后,还需线索化MIB树节点。线索化是指:每个MIB节点都要指向一个字典后续节点,因为如果在每次加载后都做一次线索化,势必会影响整个加载速度,因此本发明将线索化放在各协议模块都叠加完成后,即最后进行线索化,是出于加载效率方面的要求。
本发明方法能可靠应用在通信设备AGENT的开发中。

Claims (7)

1.一种网管标准代理中信息管理库树的加载实现方法,其特征在于包括:
A.由MIB编译器将各协议模块的MIB文件生成MIB子树;
B.各协议模块在启动、完成初始化后,由各MIB子树中封装的挂接函数将各协议模块的MIB子树加载到产品的MIB树中。
2.根据权利要求1所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述步骤A中,生成的MIB子树包含有用C语言描述的MIB子树挂接算法和协议模块MIB节点的逻辑关系,MIB子树挂接算法封装在包含模块名的挂接函数中。
3.根据权利要求1或2所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述的挂接函数是由MIB编译器提供给协议模块的加载MIB子树的接口函数。
4.根据权利要求1或2所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述各协议模块的挂接函数,是将对应MIB子树的逻辑结构加载到产品的MIB树中。
5.根据权利要求1所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述的步骤B,是通过调用各协议模块的挂接函数,利用递归调用方法,进行MIB树节点查找与叠加,对各协议模块的MIB子树作合并的过程。
6.根据权利要求5所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述的递归调用进一步包括:从各协议模块的MIB子树的根节点开始查找;判断所查找的节点是否存在于MIB树中,对于MIB树中不存在的节点,将该节点连同其孩子节点一起挂接到MIB树中,对于MIB树中存在的节点,进一步判断该节点的孩子节点是否存在于MIB树中,对于不存在的孩子节点,将该孩子节点连同它们的孩子节点一起挂接到MIB树中,重复执行本步骤直至各协议模块的MIB子树全部叠加到MIB树中;进行线索化MIB树节点。
7.根据权利要求1所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述的步骤B还包括,对于被裁剪掉的协议模块,仅在叠加各协议模块MIB子树的过程中,不对与被裁剪协议模块相关的MIB子树作合并。
CNB031024610A 2003-01-24 2003-01-24 网管标准代理中信息管理库树的加载实现方法 Expired - Fee Related CN1332528C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB031024610A CN1332528C (zh) 2003-01-24 2003-01-24 网管标准代理中信息管理库树的加载实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB031024610A CN1332528C (zh) 2003-01-24 2003-01-24 网管标准代理中信息管理库树的加载实现方法

Publications (2)

Publication Number Publication Date
CN1520095A true CN1520095A (zh) 2004-08-11
CN1332528C CN1332528C (zh) 2007-08-15

Family

ID=34281734

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031024610A Expired - Fee Related CN1332528C (zh) 2003-01-24 2003-01-24 网管标准代理中信息管理库树的加载实现方法

Country Status (1)

Country Link
CN (1) CN1332528C (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100440801C (zh) * 2005-12-01 2008-12-03 中兴通讯股份有限公司 一种实现代理侧多标准管理信息库融合的方法
CN101039494B (zh) * 2007-03-19 2010-12-08 中兴通讯股份有限公司 一种多网元配置数据批量升级的方法及装置
CN101282234B (zh) * 2007-04-06 2010-12-29 中兴通讯股份有限公司 一种基于简单网管协议代理多变量分组设置方法
CN101197718B (zh) * 2006-12-01 2011-03-16 富士通株式会社 连网设备的运行管理系统和方法、设备运行管理的代理
CN101557312B (zh) * 2009-05-08 2012-07-04 中兴通讯股份有限公司 控制网络设备的访问控制列表的方法及装置
CN104113438A (zh) * 2014-07-31 2014-10-22 上海斐讯数据通信技术有限公司 一种基于mib的多个设备的管理方法和系统
CN104506366A (zh) * 2014-12-29 2015-04-08 瑞斯康达科技发展股份有限公司 一种维护管理信息mib库的方法和装置
CN109188994A (zh) * 2017-06-30 2019-01-11 沈阳新松机器人自动化股份有限公司 一种梯形图编译方法及相应的plc系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163344A (ja) * 1998-11-27 2000-06-16 Nec Corp ネットワーク管理システムのデータベース復旧方式
CN1113505C (zh) * 1999-04-07 2003-07-02 华为技术有限公司 具有分布网管代理的网管方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100440801C (zh) * 2005-12-01 2008-12-03 中兴通讯股份有限公司 一种实现代理侧多标准管理信息库融合的方法
CN101197718B (zh) * 2006-12-01 2011-03-16 富士通株式会社 连网设备的运行管理系统和方法、设备运行管理的代理
CN101039494B (zh) * 2007-03-19 2010-12-08 中兴通讯股份有限公司 一种多网元配置数据批量升级的方法及装置
CN101282234B (zh) * 2007-04-06 2010-12-29 中兴通讯股份有限公司 一种基于简单网管协议代理多变量分组设置方法
CN101557312B (zh) * 2009-05-08 2012-07-04 中兴通讯股份有限公司 控制网络设备的访问控制列表的方法及装置
CN104113438A (zh) * 2014-07-31 2014-10-22 上海斐讯数据通信技术有限公司 一种基于mib的多个设备的管理方法和系统
CN104506366A (zh) * 2014-12-29 2015-04-08 瑞斯康达科技发展股份有限公司 一种维护管理信息mib库的方法和装置
CN104506366B (zh) * 2014-12-29 2017-11-14 瑞斯康达科技发展股份有限公司 一种维护管理信息mib库的方法和装置
CN109188994A (zh) * 2017-06-30 2019-01-11 沈阳新松机器人自动化股份有限公司 一种梯形图编译方法及相应的plc系统
CN109188994B (zh) * 2017-06-30 2021-06-08 沈阳新松机器人自动化股份有限公司 一种梯形图编译方法及相应的plc系统

Also Published As

Publication number Publication date
CN1332528C (zh) 2007-08-15

Similar Documents

Publication Publication Date Title
US6275853B1 (en) System and method for extending communications features using generic management information base objects
CN1102001C (zh) 网络单元中比较可控对象表示式属性值的方法
CN1305274C (zh) 用于处理分组的方法和装置
CN1188983C (zh) 通过网管设备修改网络设备ip地址的方法
US7181436B1 (en) Automatically generating replication topology information for use by a directory service
CN1083193C (zh) 数据存储装置
CN1407780A (zh) 在多种终端设备访问服务内容时保持过程持续性的方法和设备
CN1968134A (zh) 基于中间件实现多媒体融合业务的方法及系统
CN1520095A (zh) 网管标准代理中信息管理库树的加载实现方法
CN1885858A (zh) 一种基于snmp协议对网络设备进行集群式管理的方法
CN1859216A (zh) Snmp通信系统和方法
US20050015387A1 (en) Managing program applications
US8201144B2 (en) Method and system for distributing software components
CN1852253A (zh) 一种arp报文处理方法
CN1099796C (zh) 管理信息通信的方法及存储转换程序的存储装置
CN1906890A (zh) 用于支持事务的方法和装置
US20050193119A1 (en) Method, system and program product for resolving prerequisites for a client device in an open service gateway initiative (OSGi) framework
CN1113505C (zh) 具有分布网管代理的网管方法
CN1929405A (zh) 基于客户端/服务器结构的离线配置管理系统及方法
CN1771713A (zh) 用于在数据网络中对设备进行配置的方法和装置
CN1631018A (zh) 在网络中获取信息的方法和装置
CN1300979C (zh) 全动态分布式网络服务管理系统及其服务方法
Babin et al. Two-level communication protocol for a Web operating system (WOS/sup TM/)
CN1638358A (zh) 用于网络应用上的多个管理服务器的统一会话控制方法和系统
US20060190928A1 (en) Device and method for managing communication equipment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070815

Termination date: 20210124