YANG模式语言到命令行的映射方法及系统技术方案

技术编号:22567954 阅读:37 留言:0更新日期:2019-11-16 13:18
本发明专利技术公开了一种YANG模式语言到命令行的映射方法及系统,涉及SDN网络设备北向接口领域。该方法包括以下步骤:加载YANG模式语言与命令行脚本的映射关系,以及YANG模式语言中的扩展标记的添加规则;根据映射关系和扩展标记的添加规则,将YANG模式语言的实例数据转化为命令行脚本。本发明专利技术提高了转化方案的可靠性,确保信息模型在SDN网络设备在升级演进过程前向兼容。

Mapping method and system from Yang pattern language to command line

The invention discloses a mapping method and system from Yang mode language to command line, relating to the field of north interface of SDN network equipment. This method includes the following steps: loading the mapping relationship between Yang mode language and command line script, and adding rules of extension tags in Yang mode language; converting the instance data of Yang mode language into command line script according to the mapping relationship and adding rules of extension tags. The invention improves the reliability of the transformation scheme and ensures the information model to be compatible before the SDN network device is upgraded and evolved.

【技术实现步骤摘要】
YANG模式语言到命令行的映射方法及系统
本专利技术涉及SDN网络设备北向接口领域,具体是涉及一种YANG模式语言到命令行的映射方法及系统。
技术介绍
随着SDN(SoftwareDefinedNetworks,软件定义网络)技术演进,网络设备的信息管理由TELENT+命令行管理方式,向NETCONF+YANG管理转变。YANG模式语言在SDN网络设备中用于描述北向接口信息模型,为考虑前向兼容,在设计YANG模型时,应支持兼容原有命令行(CommandLine)管理方式下的设备信息模型。诸如XSD(XMLSchemasDefinition,XML文件结构定义文件)、JSON(JavaScriptObjectNotation,JavaScript对象表示法)、YANG之类的模式语言都可以将信息模型进行结构化的描述,例如:元素声明、属性声明、简单类型定义和复杂类型定义,以及逻辑约束规则等等。命令行属于人机交互语言,针对配置功能,命令行的设计本身是基于视图+关键字的风格,这种风格利于人工识别,但无法直观的体现信息模型。因此,从模式语言到命令行的转换(Conversion)存在较大困难。当前模式语言到命令行的转换方案中,传统的方式是采用手工控制方式,编写命令行控制脚本,并将模式语言中的信息映射至命令行控制脚本,在设计命令行控制脚本时,该过程需穷举所有模式语言的信息使用场景,将模式语言的信息数据逐一映射到控制脚本中。传统转换方案无法做到自动化,容易存在信息遗漏,且依赖人工编写控制脚本,维护难度较大。r>在实现本专利技术的过程中,专利技术人发现现有技术中至少存在如下问题:在SDN网络设备的YANG模型设计中,从模式语言到命令行的转化时,急需一种能从YANG模式语言到命令行的映射方法,解决当前转化方案中存在可靠性、可维护的问题,确保信息模型前向兼容。
技术实现思路
本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种YANG模式语言到命令行的映射方法及系统,提高了转化方案的可靠性,确保信息模型在SDN网络设备在升级演进过程前向兼容。本专利技术提供一种YANG模式语言到命令行的映射方法,包括以下步骤:加载YANG模式语言与命令行脚本的映射关系,以及YANG模式语言中的扩展标记的添加规则;根据所述映射关系和扩展标记的添加规则,将YANG模式语言的实例数据转化为命令行脚本。在上述方案的基础上,所述映射关系包括:若某命令执行后进入某子视图,且不创建实例条目,则将YANG模式语言的子视图型容器映射到命令关键字;若某命令执行后进入某子视图,且同时创建实例条目,则将YANG模式语言的子视图型列表映射到命令关键字;若某命令执行后创建实例条目,但不进入子视图,则将YANG模式语言的普通型列表映射到命令关键字;若某命令包含多个句元,则将YANG模式语言的隐含型容器映射到命令关键字;若某命令仅包含单个句元,则将YANG模式语言的数据节点映射到命令关键字。在上述方案的基础上,所述扩展标记的添加规则包括:若某命令执行后进入某子视图,在列表内增加进入子视图标记;若某命令包含多个句元,在容器内增加隐含型容器标记;若容器内的节点为列表的关键字节点,在该节点中增加关键字标记;若容器内的多个节点之间输出命令行时存在先后次序,则在该句元对应的YANG语言节点中增加前序命令节点标识;若容器、列表或节点在输出命令行时不需要输出参数ID,在该容器、列表或节点中增加省略输出参数ID标识。在上述方案的基础上,根据所述映射关系和扩展标记的添加规则,将YANG模式语言的实例数据转化为命令行脚本,具体包括以下步骤:在NETCONF框架中,将YANG模式的实例数据转化为树形XML数据,并根据所述扩展标记的添加规则,添加YANG模式语言中的扩展标记;采用SAX解析XML数据,根据映射关系和所述扩展标记,将XML数据转换成命令行脚本。在上述方案的基础上,所述采用SAX解析XML数据,根据映射关系和所述扩展标记,将XML数据转换成命令行脚本,具体包括以下步骤:读取脚本XML数据,采用SAX对XML数据进行扫描,将容器、列表、数据节点元素逐条解析,并转化成命令行文本:优先查找该节点下是否存在携带关键字标记的子节点元素,若存在,则将该节点与所有携带关键字标记的子节点合并生成一条命令行;若读取到进入子视图标记,则在携带进入子视图标记的容器或列表下的所有节点数据后,增加退出命令;若读取到隐含型容器标记,则将该节点数据缓存,并读取该节点下的所有子节点元素,并根据子节点元素的前序命令节点标记确定相互之间先后顺序,最终与该节点合并生成命令行;若读取到省略输出参数ID标记,则将该该容器、列表或节点中转化为命令行时,仅输出XML标记内容。本专利技术提供一种YANG模式语言到命令行的映射系统,包括:映射关系加载单元,用于:加载YANG模式语言与命令行脚本的映射关系,以及YANG模式语言中的扩展标记的添加规则;数据转化单元,用于:根据所述映射关系和扩展标记的添加规则,将YANG模式语言的实例数据转化为命令行脚本。在上述方案的基础上,所述映射关系包括:若某命令执行后进入某子视图,且不创建实例条目,则将YANG模式语言的子视图型容器映射到命令关键字;若某命令执行后进入某子视图,且同时创建实例条目,则将YANG模式语言的子视图型列表映射到命令关键字;若某命令执行后创建实例条目,但不进入子视图,则将YANG模式语言的普通型列表映射到命令关键字;若某命令包含多个句元,则将YANG模式语言的隐含型容器映射到命令关键字;若某命令仅包含单个句元,则将YANG模式语言的数据节点映射到命令关键字。在上述方案的基础上,所述扩展标记的添加规则包括:若某命令执行后进入某子视图,在列表内增加进入子视图标记;若某命令包含多个句元,在容器内增加隐含型容器标记;若容器内的节点为列表的关键字节点,在该节点中增加关键字标记;若容器内的多个节点之间输出命令行时存在先后次序,则在该句元对应的YANG语言节点中增加前序命令节点标识;若容器、列表或节点在输出命令行时不需要输出参数ID,在该容器、列表或节点中增加省略输出参数ID标识。在上述方案的基础上,所述数据转化单元具体用于:在NETCONF框架中,将YANG模式的实例数据转化为树形XML数据,并根据所述扩展标记的添加规则,添加YANG模式语言中的扩展标记;采用SAX解析XML数据,根据映射关系和所述扩展标记,将XML数据转换成命令行脚本。在上述方案的基础上,所述数据转化单元采用SAX解析XML数据,根据映射关系和所述扩展标记,将XML数据转换成命令行脚本,具体包括以下步骤:读取脚本XML数据,采用SAX对XML数据进行扫描,将容器、列表、数据节点元素逐条解析,并转化成命令行文本:优先查找该节点下是否存在携本文档来自技高网...

【技术保护点】
1.一种YANG模式语言到命令行的映射方法,其特征在于,包括以下步骤:/n加载YANG模式语言与命令行脚本的映射关系,以及YANG模式语言中的扩展标记的添加规则;/n根据所述映射关系和扩展标记的添加规则,将YANG模式语言的实例数据转化为命令行脚本。/n

【技术特征摘要】
1.一种YANG模式语言到命令行的映射方法,其特征在于,包括以下步骤:
加载YANG模式语言与命令行脚本的映射关系,以及YANG模式语言中的扩展标记的添加规则;
根据所述映射关系和扩展标记的添加规则,将YANG模式语言的实例数据转化为命令行脚本。


2.如权利要求1所述的YANG模式语言到命令行的映射方法,其特征在于:所述映射关系包括:
若某命令执行后进入某子视图,且不创建实例条目,则将YANG模式语言的子视图型容器映射到命令关键字;若某命令执行后进入某子视图,且同时创建实例条目,则将YANG模式语言的子视图型列表映射到命令关键字;若某命令执行后创建实例条目,但不进入子视图,则将YANG模式语言的普通型列表映射到命令关键字;
若某命令包含多个句元,则将YANG模式语言的隐含型容器映射到命令关键字;若某命令仅包含单个句元,则将YANG模式语言的数据节点映射到命令关键字。


3.如权利要求2所述的YANG模式语言到命令行的映射方法,其特征在于:所述扩展标记的添加规则包括:
若某命令执行后进入某子视图,在列表内增加进入子视图标记;
若某命令包含多个句元,在容器内增加隐含型容器标记;
若容器内的节点为列表的关键字节点,在该节点中增加关键字标记;
若容器内的多个节点之间输出命令行时存在先后次序,则在该句元对应的YANG语言节点中增加前序命令节点标识;
若容器、列表或节点在输出命令行时不需要输出参数ID,在该容器、列表或节点中增加省略输出参数ID标识。


4.如权利要求3所述的YANG模式语言到命令行的映射方法,其特征在于:根据所述映射关系和扩展标记的添加规则,将YANG模式语言的实例数据转化为命令行脚本,具体包括以下步骤:
在NETCONF框架中,将YANG模式的实例数据转化为树形XML数据,并根据所述扩展标记的添加规则,添加YANG模式语言中的扩展标记;
采用SAX解析XML数据,根据映射关系和所述扩展标记,将XML数据转换成命令行脚本。


5.如权利要求4所述的YANG模式语言到命令行的映射方法,其特征在于:所述采用SAX解析XML数据,根据映射关系和所述扩展标记,将XML数据转换成命令行脚本,具体包括以下步骤:
读取脚本XML数据,采用SAX对XML数据进行扫描,将容器、列表、数据节点元素逐条解析,并转化成命令行文本:
优先查找该节点下是否存在携带关键字标记的子节点元素,若存在,则将该节点与所有携带关键字标记的子节点合并生成一条命令行;
若读取到进入子视图标记,则在携带进入子视图标记的容器或列表下的所有节点数据后,增加退出命令;
若读取到隐含型容器标记,则将该节点数据缓存,并读取该节点下的所有子节点元素,并根据子节点元素的前序命令节点标记确定相互之间先后顺序,最终与该节点合并生成命令行;
若读取到省略输出参数ID标记,则将该该容器、列表或节点中转化为命令行时,仅输出XML标记内容...

【专利技术属性】
技术研发人员:刘鑫
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1