一种YANG模型管理系统、方法和存储介质与流程

文档序号:23063447发布日期:2020-11-25 17:47阅读:420来源:国知局
本发明涉及通信领域,具体涉及一种yang模型管理系统、方法和存储介质。
背景技术
::为满足云计算趋势下数据中心大带宽流量的交互需求,互联网及运营商大规模的采用光传输产品来组建dci网络。otn网络以其丰富的管理开销,高可靠和多样化的保护方式,集中专业化nms管理平台,以及大带宽,已经不再是电信网络专有技术了,互联网的崛起,让这样一个传统的电信网络技术进入了dci网络行业。目前基于otn网络的基础上结合了yangmodel,restapi,netconf等新型接口后,对dci传输设备管理与ip网络设备管理用同一种接口进行开发,从而更好的进行统一的平台化网络集中管理。然而基于yangmodel的netconf系统中,yang文件的内容比较庞大和繁多,如果用户需要用这个系统,那么必须先理解每个yang文件的内容,处理起来相当复杂。技术实现要素:本发明所要解决的技术问题是yang文件的内容比较庞大和繁多,使用时需要理解每个yang文件的内容,处理起来相当复杂,目的在于提供一种yang模型管理系统、方法和存储介质,解决了yang模型文件通用性管理,而无需理解每个yang文件内容的问题。本发明通过下述技术方案实现:yang模型管理系统,包括apitools模块、apitable模块和消息处理模块,所述apitools模块用于获取用户yang文件,并根据所述用户yang文件生成api映射表;所述apitable模块包括所述用户yang文件在设备硬件接口上的映射文件,即api映射表;所述消息处理模块用于根据所述api映射表进行处理和解析配置信息,并返回用户所需要的状态消息。本发明根据获得的用户yang文件,来即时生成api映射表,以适应yang模型在不同配置环境下的需求,再通过api映射表匹配设备硬件接口,同时设置一个消息处理模块处理和解析api映射表,并返回用户所需要的状态消息。通过将三个模块对yang模型进行自动化管理,用户在使用yang模型时,无需再关心每个yang文件的具体内容,即可任意调用yang模型。进一步的,所述apitools模块执行以下操作:以openconfigyang模型中yang文件为基准,初始化所述api映射表;根据所述用户yang文件更新所述api映射表,具体为:相比所述openconfigyang模型中yang文件,当所述用户yang文件有新增内容或者内容改变时,更新所述api映射表,否则报错。进一步的,基于dciotn设备,还包括:netconfclient模块,基于netconf协议的客户端,并为网络配置应用程序,向所述netconfserver模块发送配置消息;netconfserver模块,基于netconf协议的服务器端,接收来自于netconfclient的配置消息,并向所述netconfclient模块进行响应;sysrepoengine模块,基于yang模型的开源数据存储库,用于保存配置信息;datafiles模块,包括所述配置信息;yangfiles模块,包括所述dciotn设备管理需要用到的yang文件;设备硬件接口模块,用于根据所述api映射表对硬件进行配置或读取操作接口。本发明的另一种实现方式,一种yang模型管理方法,基于netconf配置的网络设备,包括以下步骤:s1:获取yang模型文件;s2:生成与所述yang模型文件对应的api映射表;s3:根据所述api映射表,将所述网络设备的硬件接口程序与所述api映射表进行适配;s4:将所述api映射表编译成动态库;s5:将所述动态库加载到所述网络设备程序中;s6:启动所述基于netconf配置的网络设备。进一步的,所述基于netconf配置的网络设备包括dciotn设备。本发明的另一种实现方式,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的yang模型管理方法。本发明与现有技术相比,具有如下的优点和有益效果:本发明通过维护yang文件和设备硬件接口的映射关系,用户不必关心yang模型内部实现,就可以通过netconf和yang模型对dciotn设备进行管理。附图说明此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:图1为dciotn设备结构框图;图2为apitable更新流程图;图3为yang模型管理系统的实际应用流程图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。实施例1本实施例1是一种yang管理系统,核心思想是基于openconfigyangmodel文件集自动生成操作dciotn设备的api函数集。当openconfigyangmodel的文件发生改变或者增加了新定义的yang文件时,可以快速生成用户需要的yang文件对应的api函数,用户只需要在这些api函数中实现与硬件设备的适配,即可完成基于yangmodel的netconf系统对dciotn设备的管理。yangmodel是作为netconf的建模语言,可以用户自定义,但是目前国内的腾讯、百度和阿里等互联网服务提供商都在积极推进openconfigyangmodel,所以本系统将openconfigyangmodel的文件集作为生成设备api函数集的基础。如图1所示为dciotn设备的功能模块组成。netconfserver模块和sysrepoengine模块利用现有开源代码实现。设备硬件接口模块是与具体硬件配置相关的接口实现,需要用户根据实际硬件实现。本实施例1所描述的yang模型管理系统即是虚线框中的部分:消息处理模块,apitools模块和apitable模块。这三个模块协同合作,一起来完成yang模型的管理。yang模型管理系统就是维护yang文件和设备硬件接口的映射关系,用户不必关心yang模型内部实现,就可以通过netconf和yang模型对dciotn设备进行管理。目前大部分dciotn设备软件的实现都是基于c++的,所以本实施例1的例子都是基于c++,但是此方法不仅仅限于c++语言。下面介绍下yang模型管理系统每个模块的功能。一、apitableapitable是一组yang文件与设备硬件接口的映射文件,此映射文件是根据yang文件通过apitools模块生成。当用户完成api和硬件接口适配之后,会生成动态库,加载到dciotn设备的程序中运行。下面以c++环境为例,介绍下apitable。在此环境下,apitable为openconfig_table.hpp和openconfig_table.cpp这两个文件。openconfig_table.hpp和openconfig_table.cpp这两个文件映射的原则:1、一个moduleid对应一个数组table。2、config为false的leaf对应为get的函数。config为true的leaf节点对应为set的函数。3、支持动态的创建/删除管理。4、通过每个leaf点的xpath和api函数形成一一对应的关系。5、api函数的具体实现由用户根据实际的硬件接口来完成。下面将以openconfig-lldpmodule为例,介绍c++环境中,apitable的生成。以下的是openconfig-lldp.yang文件的部分内容:通过apitools模块将上面的这个yang文件生成对应的table,在openconfig_table.hpp和openconfig_table.cpp文件中更新。下面的例子是以openconfig-lldpmodule中两个leaf点为参考写的。在openconfig_table.hpp中生成openconfig-lldpmodule对应的openconfig_lldp_api_table数组,然后在这个table中增加两个leaf点的定义。table数组的命名规则:module名_api_table。api函数的命名原则module名_xpath_opr,其中xpath为leaf点在yang文件中的xpath。如果leaf点的config属性为false,那么opr为“get”,如果leaf的config属性为true,那么opr为“set”。其中module名中的“-”改成“_”。上述用到的一些函数指针定义和结构体定义如下:api_info是表示leaf点和api对应关系的结构体。其中isconfig与这个leaf的config属性相同,xpathname表示每个leaf点对应的xpath,call_back表示每个leaf对应的操作或者获取硬件配置的api接口。typedefint(*fun_ptr)(int,string&);这个函数指针,用在api_info结构体中,用于存放leaf点对应的api。在openconfig_table.cpp中生成这两个leaf点对应关系的api的空函数。需要用户根据硬件的情况来实现这个函数,主要工作是完成yang的api和硬件设备接口的适配操作。api函数的第一个参数opr:在set的函数中表示删除、创建或者修改的操作,在get的函数中设置为0。api函数第二个参数value:在set的函数中表示设置的值,在get的函数中表示读取的状态值。api函数原型示例如下所示:intopenconfig_lldp_lldp_config_enabled_set(intopr,string&value){}intopenconfig_lldp_lldp_state_counters_get(intopr,string&value){}二、apitools模块apitools模块是一个可以独立于dciotn设备进程,可以单独执行的程序。主要完成下面的操作:1、apitable的初始化在初始化的时候,把openconfigyang模型的yang文件作为基准,生成初始的apitable,在c++环境中是openconfig_table.hpp和openconfig_table.cpp文件。2、yang文件更新当用户的yang文件与openconfigyang模型中的yang文件有区别的时候,apitools会做出判断。如图2所示。如果发现yang文件改变是因为有新增的module,那么更新apitable,在c++环境中是更新openconfig_table.hpp和openconfig_table.cpp文件。如果yang文件并没有增加新的module,只是改变某些leaf点,那么就在apitable里找到相应的moduleid对应的table,对其内容进行更新。如果以上情况都不是,那么就报error。三、消息处理模块此模块属于dciotn运行程序的一部分。它的功能是,当dciotn设备运行的时候,处理和解析接收到的配置消息,并返回用户需要获取的状态消息。处理和解析配置消息具体流程如下:当dciotn设备初始化的时候,消息处理模块读取apitable,找到apitable中所有的moduleid,通过sysrepoengine提供的接口函数sr_module_change_subscribe将这些moduleid注册到sysrepoengine。如果注册成功,那么当用户通过netconf对这个module的任意一个leaf进行配置操作(包括创建/删除/更改)的时候,sysrepoengine模块将通知消息处理模块,通知的内容就是这个module的leaf点配置有变化。消息处理模块从sysrepoengine获取到改变的leaf点的moduleid,xpath和配置值。消息处理模块根据moduleid,xpath在apitable中查找对应的api接口函数。如果查找到,将调用对应的api接口函数进行配置操作。如果没有查找到,将报错。处理用户获取状态消息具体流程如下:当dciotn设备初始化的时候,消息处理模块读取apitable,找出所有config属性为false的leaf点,通过sysrepoengine提供的函数sr_dp_get_items_subscribe将这些leaf点对应的xpath和api注册sysrepoengine中。如果注册成功,当用户通过netconf执行获取某个leaf点的状态消息的操作时,sysrepoengine会通过消息模块直接调用此leaf点的对应的api进行。通过消息模块可以完成用户基于netconf对dciotn设备的各种操作。其中,netconfclient模块,基于netconf协议的客户端,并为网络配置应用程序,向netconfserver模块发送配置消息;netconfserver模块,基于netconf协议的服务器端,接收来自于netconfclient的配置消息,并向netconfclient模块进行响应;sysrepoengine模块,基于yang模型的开源数据存储库,用于保存配置信息;datafiles模块,包括配置信息;yangfiles模块,包括dciotn设备管理需要用到的yang文件;设备硬件接口模块,用于根据api映射表对硬件进行配置或读取操作接口。实施例2本实施例2是在实施例1的基础上,yang模型管理系统的实际应用,如图3所示,应用流程如下:1、用户导入自己需要的yang模型文件。2、运行apitool生成和yang模型对应的apitable,在c++环境中即是:openconfig_table.hpp和openconfig_table.cpp文件。3、用户完成具体设备硬件接口程序和api的适配,在c++环境中也就是实现openconfig_table.cpp函数的内容。4、将apitable,在c++环境中的openconfig_table.hpp和openconfig_table.cpp编程为动态库,加载到dciotn设备程序中。5、启动dciotn设备程序。实施例3本实施例3是在实施例1和实施例2的基础上的计算机可读存储介质,此存储介质在被存储器执行时,能够实现实施例1或实施例2的方案。本发明中,dci:datacenterinterconnect,数据中心互联。otn:opticaltransportnetwork,光传输网。本发明中yang模型管理系统不仅仅限于dciotn设备,只要是基于netconf配置的网络设备都可以应用。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1