CN1332528C - 网管标准代理中信息管理库树的加载实现方法 - Google Patents
网管标准代理中信息管理库树的加载实现方法 Download PDFInfo
- Publication number
- CN1332528C CN1332528C CNB031024610A CN03102461A CN1332528C CN 1332528 C CN1332528 C CN 1332528C CN B031024610 A CNB031024610 A CN B031024610A CN 03102461 A CN03102461 A CN 03102461A CN 1332528 C CN1332528 C CN 1332528C
- Authority
- CN
- China
- Prior art keywords
- mib
- tree
- subtree
- node
- protocol module
- 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.)
- Expired - Fee Related
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树。可充分支持产品协议模块的可裁剪性;减轻SNMP Agent开发工作量,提高开发效率;能满足电信产品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树中,其中,挂接函数是用于将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树节点中的每个节点指向一个后续节点。
本发明MIB树的动态加载技术,是对不同协议模块的MIB先分别编译,然后动态链接和加载。就是在SNMP Agent开发过程中,将与产品的各个协议模块相关的MIB文件先用MIB编译器生成MIB子树;在产品初始化各协议模块的时候,各个协议模块动态地加载各自模块的MIB,实现MIB子树的动态叠加;众多这样的MIB子树动态叠加形成产品的MIB树。
采用本发明的方法,在某个或某些协议模块被裁剪时,SNMP Agent开发人员不必重新组织各MIB文件,不必重新用MIB编译器再对没有被裁剪的MIB文件进行编译,在产品初始化各协议模块的时候,各个没有被裁剪的协议模块就会动态地加载各自模块的MIB,实现MIB子树的叠加,同时也能避免发生因源文件过大而不能编译、需手工拆分的情况。
另外,MIB树的动态加载技术还能解决电信产品MIB管理信息的在线升级需求,当产品槽位中插入新的业务板后,为了能够对业务板进行网管,也需要业务板在初始化的过程中将MIB管理信息动态的加载到主控板上。
本发明方法的有益效果是:
可充分支持产品协议模块的可裁剪性;减轻了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不存在于MI B树中,则将H节点连同其孩子节点M、N、O及其孩子节点的孩子节点P、Q、R一起挂接到MIB树中,形成图7所示合并后的MIB树。
各协议模块都叠加完成后,还需线索化MIB树节点。线索化是指:每个MIB节点都要指向一个后续节点,因为如果在每次加载后都做一次线索化,势必会影响整个加载速度,因此本发明将线索化放在各协议模块都叠加完成后,即最后进行线索化,是出于加载效率方面的要求。
本发明方法能可靠应用在通信设备AGENT的开发中。
Claims (5)
1.一种网管标准代理中信息管理库树的加载实现方法,其特征在于包括:
A.由MIB编译器将各协议模块的MIB文件生成MIB子树;
B.各协议模块在启动、完成初始化后,只将未被裁剪的协议模块的MIB子树通过该MIB子树中封装的挂接函数加载到产品的MIB树中,其中,挂接函数是用于将MIB子树的逻辑结构加载到产品的MIB树中的函数。
2.根据权利要求1所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述步骤A中,生成的MIB子树包含有用C语言描述的MIB子树挂接算法和协议模块MIB节点的逻辑关系,MIB子树挂接算法封装在包含模块名的挂接函数中,其中,挂接算法是用于查找MIB节点在MIB树中的位置并将其加载到MIB树中的算法。
3.根据权利要求1或2所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述的挂接函数是由MIB编译器提供给协议模块。
4.根据权利要求1所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述的步骤B,是通过调用各协议模块的挂接函数,利用递归调用方法,进行MIB树节点查找与加载,对各协议模块的MIB子树作合并的过程。
5.根据权利要求4所述的一种网管标准代理中信息管理库树的加载实现方法,其特征在于:所述的递归调用进一步包括:从各协议模块的MIB子树的根节点开始查找;判断所查找的节点是否存在于MIB树中,对于MIB树中不存在的节点,将该节点连同其孩子节点一起加载到MIB树中,对于MIB树中存在的节点,进一步判断该节点的孩子节点是否存在于MIB树中,对于不存在的孩子节点,将该孩子节点连同该孩子节点的孩子节点一起加载到MIB树中,重复执行本步骤直至各协议模块的MIB子树全部加载到MIB树中;将MIB树节点中的每个节点指向一个后续节点。
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 CN1520095A (zh) | 2004-08-11 |
CN1332528C true 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) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100440801C (zh) * | 2005-12-01 | 2008-12-03 | 中兴通讯股份有限公司 | 一种实现代理侧多标准管理信息库融合的方法 |
JP5028979B2 (ja) * | 2006-12-01 | 2012-09-19 | 富士通株式会社 | 機器管理システム、機器管理方法及びエージェント |
CN101039494B (zh) * | 2007-03-19 | 2010-12-08 | 中兴通讯股份有限公司 | 一种多网元配置数据批量升级的方法及装置 |
CN101282234B (zh) * | 2007-04-06 | 2010-12-29 | 中兴通讯股份有限公司 | 一种基于简单网管协议代理多变量分组设置方法 |
CN101557312B (zh) * | 2009-05-08 | 2012-07-04 | 中兴通讯股份有限公司 | 控制网络设备的访问控制列表的方法及装置 |
CN104113438B (zh) * | 2014-07-31 | 2018-04-06 | 上海斐讯数据通信技术有限公司 | 一种基于mib的多个设备的管理方法和系统 |
CN104506366B (zh) * | 2014-12-29 | 2017-11-14 | 瑞斯康达科技发展股份有限公司 | 一种维护管理信息mib库的方法和装置 |
CN109188994B (zh) * | 2017-06-30 | 2021-06-08 | 沈阳新松机器人自动化股份有限公司 | 一种梯形图编译方法及相应的plc系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1257365A (zh) * | 1998-11-27 | 2000-06-21 | 日本电气株式会社 | 网络管理系统中数据库同步用的方法和装置 |
CN1269650A (zh) * | 1999-04-07 | 2000-10-11 | 深圳市华为技术有限公司 | 具有分布网管代理的网管方法 |
-
2003
- 2003-01-24 CN CNB031024610A patent/CN1332528C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1257365A (zh) * | 1998-11-27 | 2000-06-21 | 日本电气株式会社 | 网络管理系统中数据库同步用的方法和装置 |
CN1269650A (zh) * | 1999-04-07 | 2000-10-11 | 深圳市华为技术有限公司 | 具有分布网管代理的网管方法 |
Non-Patent Citations (1)
Title |
---|
ATM交换机SNMP Agent的研究与实现 邵旭,丁炜,电讯技术,第2001卷第3期 2001 * |
Also Published As
Publication number | Publication date |
---|---|
CN1520095A (zh) | 2004-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5978845A (en) | Network management relay mechanism | |
US6275853B1 (en) | System and method for extending communications features using generic management information base objects | |
EP1265414B1 (en) | Method for deploying a service and a method for configuring a network element in a communication network | |
US7181436B1 (en) | Automatically generating replication topology information for use by a directory service | |
CN102017687A (zh) | 终端设备管理树管理对象实例化的方法及设备 | |
CN1083193C (zh) | 数据存储装置 | |
CN1332528C (zh) | 网管标准代理中信息管理库树的加载实现方法 | |
US20050015387A1 (en) | Managing program applications | |
CN1859216A (zh) | Snmp通信系统和方法 | |
US8201144B2 (en) | Method and system for distributing software components | |
CN101848110B (zh) | 一种tr069网络管理方法和设备 | |
US20050193119A1 (en) | Method, system and program product for resolving prerequisites for a client device in an open service gateway initiative (OSGi) framework | |
CN1113505C (zh) | 具有分布网管代理的网管方法 | |
Deri | Network Management for the 90s | |
CN1638358A (zh) | 用于网络应用上的多个管理服务器的统一会话控制方法和系统 | |
US20060190928A1 (en) | Device and method for managing communication equipment | |
US7313598B1 (en) | Method and apparatus for partial replication of directory information in a distributed environment | |
CN100440801C (zh) | 一种实现代理侧多标准管理信息库融合的方法 | |
CA2346182A1 (en) | Management of path selection in a communications network | |
US20050076343A1 (en) | Persistent storage of network management data using object references | |
Aschemann et al. | Integration of SNMP into a CORBA-and Web-based Management Environment | |
CN1442800A (zh) | 动态snmp网络设备 | |
Wade et al. | A methodology for developing integrated multi-domain service management systems | |
KR100735256B1 (ko) | 케이블모뎀 관리 방법 | |
Clemm et al. | Generic provisioning of heterogeneous services––a close encounter with service profiles |
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 |