CN113381870B - 报文处理方法和设备 - Google Patents
报文处理方法和设备 Download PDFInfo
- Publication number
- CN113381870B CN113381870B CN202010159272.1A CN202010159272A CN113381870B CN 113381870 B CN113381870 B CN 113381870B CN 202010159272 A CN202010159272 A CN 202010159272A CN 113381870 B CN113381870 B CN 113381870B
- Authority
- CN
- China
- Prior art keywords
- data
- message
- model
- sub
- file
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种报文处理方法和设备,其中,该方法包括:接收来自管理设备的报文请求消息,其中,报文请求消息为基于YANG数据模型的文本信息;根据预存的数据集合,确定与报文请求消息对应的数据对象,其中,数据集合中包括一个或多个数据对象,数据对象为基于Protobuf数据模型的数据;将与报文请求消息对应的数据对象,确定为报文响应消息,并向管理设备发送报文响应消息。由于YANG数据模型和Protobuf数据模型具有对应的数据结构,因此网络设备可以直接对报文请求消息进行响应,无需进行数据格式转换,提高配置管理的效率和灵活性,降低了网络设备响应的延迟。
Description
技术领域
本申请涉及网络通讯技术领域,尤其涉及一种报文处理方法和设备。
背景技术
为了满足软件定义网络(Software Defined Network,SDN)中复杂的网络设备配置管理的需求,国际互联网工程任务组(The Internet Engineering Task Force,IETF)制定了网络配置协议(Network Configuration Protocol,NETCONF),基于YANG建模语言构建的NETCONF配置管理模型,具有灵活、高效、安全的特性,可以轻松地实现对网络设备的配置管理。
目前,由于SDN网络中还会同时存在其他配置管理模型的网络设备,例如,基于命令行(Command Line Interface,CLI)或简单网络管理协议(Simple Network ManagementProtocol,SNMP)的配置管理模型的网络设备,为了兼容这些配置管理模型不同的网络设备,一般是通过网络设备的北向接口对基于YANG数据模型的数据进行封装,从而实现不同配置管理模型的网络设备与网管设备之间的数据转换。
然后,通过这种方式对网络设备进行配置管理时,存在配置管理效率低,使用灵活性低和响应延迟高的问题。
发明内容
本申请提供一种报文处理方法和设备,以解决对网络设备进行配置管理的效率低,使用灵活性低和响应延迟高的问题。
第一方面,本申请提供一种报文处理方法,所述方法应用于网络设备,所述方法包括:
接收来自管理设备的报文请求消息,其中,所述报文请求消息为基于YANG数据模型的文本信息;根据预存的数据集合,确定与所述报文请求消息对应的数据对象,其中,所述数据集合中包括一个或多个数据对象,所述数据对象为基于Protobuf数据模型的数据;将与所述报文请求消息对应的数据对象,确定为报文响应消息,并向所述管理设备发送所述报文响应消息。
本申请,通过基于YANG数据模型的报文请求消息,确认对应的基于Protobuf数据模型数据对象,从而生成报文响应消息,由于YANG数据模型和Protobuf数据模型具有对应的数据结构,因此YANG数据模型所具有的特性也可以在Protobuf数据模型中体现,进而在管理设备通过基于YANG数据模型的报文请求消息对网络设备进行配置管理时,可以充分发挥YANG数据模型的灵活、高效的优点,实现例如复合条件查询等复杂操作指令,提高配置管理的效率和灵活性。同时,由于避免了管理设备与网络设备进行报文传输过程中,不同报文数据格式之间的转换,提高了报文传输的效率,降低了网络设备响应的延迟。
在一种可能的设计中,所述方法,还包括:
根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,其中,所述映射文件用于指示所述子对象与所述数据值组合之间的转换关系,所述数据值组合为基于Protobuf数据模型的数据表达;根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象,其中,所述第一模型文件为基于Protobuf数据模型的文件。
本申请,通过预设的映射文件和预设的第一模型文件,将使用不同配置管理模型的内存对象转换为基于Protobuf数据模型的数据对象,相当于对存储配置数据的内存对象进行了预处理和缓存,使后续管理设备对网络设备进行配置管理时,可以通过报文请求消息直接确定数据对象,并将数据对象直接作为报文响应消息直接返回管理设备,报文交互的过程中无需进行数据格式的转换,提高了报文交互的效率和灵活性。
在一种可能的设计中,映射文件中包括一种或多种内存对象的转换信息,每一种内存对象的转换信息中包括对象标识和子对象信息;其中,子对象信息中包括一个或多个子对象的表征信息,表征信息中包括第一路径和格式属性;第一路径用于指示第二模型文件中的与子对象对应的节点,与子对象对应的节点具有数据值,所述第二模型文件为基于YANG数据模型的文件,所述第二模型文件包括N个节点,N个节点中每M个节点与每一报文请求消息对应;格式属性用于指示基于Protobuf数据模型的数据表达方式;N、M为大于等于1的整数,M小于等于N。
本申请,通过映射文件中设置的一种或多种内存对象的转换信息,实现了内存对象至数据对象的转换,通过在转换信息内设置对象标识和子对象信息,使内存对象能够对应更多配置数据的类型,实现了对内存对象对应的配置数据的进一步细化,提高了网络设备配置管理的灵活性。
在一种可能的设计中,每一种内存对象的转换信息中还包括第二路径;其中,第二路径用于指示所述第二模型文件中的与内存对象对应的节点。
本申请,通过在转换信息中增加第二路径,以实现对第二模型文件中的与内存对象对应的节点的定位,实现了对内存对象对应的配置数据的进一步细化,提高了网络设备配置管理的灵活性。
在一种可能的设计中,根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,包括:
根据所述第一路径,确定与每一子对象对应的节点,并读取与每一子对象对应的节点中的数据值;根据每一子对象的格式属性,与每一子对象对应的节点中的数据值,转换为每一数据值组合。
本申请,根据第一路径和格式属性,确定子对象对应的节点的数值及数据格式,格式属性可以根据具体的需求进行设置,因此,使内存对象能够对应更多配置数据的类型,提高了网络设备配置管理的灵活性。在一种可能的设计中,根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象,包括:
根据所述第一模型文件,生成各Protobuf对象,其中,所述Protobuf对象中包括所述对象标识和基于Protobuf的属性定义;将所述每一数据值组合,赋值给每一Protobuf对象,得到每一所述数据对象。
本申请,通过生成Protobuf对象并利用数据值组合给Protobuf对象赋值,实现了从内存对象至数据对象的数据模型的转换,由于生成数据对象及给数据对象赋值的过程无需借助设备的北向接口,在设备初始化后即可完成,因此,提高了管理设备与网络设备进行报文交互的效率和灵活性。
在一种可能的设计中,所述方法,还包括:
获取所述第二模型文件;根据预设的映射关系,将所述第二模型文件转换为所述第一模型文件,其中,所述映射关系用于指示所述第二模型文件中的属性定义与所述第一模型文件中的属性定义之间的映射关系。
本申请,根据预设的映射关系将第二模型文件转换为所述第一模型文件,实现了不同模型文件之间的转换,由于生成数据对象及给数据对象赋值的过程无需借助设备的北向接口,在设备初始化后即可完成,因此,提高了管理设备与网络设备进行报文交互的效率和灵活性。在一种可能的设计中,所述属性定义包括以下的一种或多种:声明定义、类型定义和补充定义;其中,所述补充定义包括以下的一种或多种:键定义、名字空间定义、名字定义、小数位数定义。
本申请,通过属性定义和补充定义,使Protobuf数据模型能够完全实现YANG数据模型的特性,进而实现了基于YANG数据模型收发报文的管理设备与基于Protobuf数据模型存储数据的网络设备之间的报文交互,并且,由于属性定义和补充定义可根据需要进行定义,提高了使用灵活性。
第二方面,本申请提供一种报文处理装置,包括:
接收模块,用于接收来自管理设备的报文请求消息,其中,所述报文请求消息为基于YANG数据模型的文本信息;
确定模块,用于根据预存的数据集合,确定与所述报文请求消息对应的数据对象,其中,所述数据集合中包括一个或多个数据对象,所述数据对象为基于Protobuf数据模型的数据;
发送模块,用于将与所述报文请求消息对应的数据对象,确定为报文响应消息,并向所述管理设备发送所述报文响应消息。
本申请,通过基于YANG数据模型的报文请求消息,确认对应的基于Protobuf数据模型数据对象,从而生成报文响应消息,由于YANG数据模型和Protobuf数据模型具有对应的数据结构,因此YANG数据模型所具有的特性也可以在Protobuf数据模型中体现,进而在管理设备通过基于YANG数据模型的报文请求消息对网络设备进行配置管理时,可以充分发挥YANG数据模型的灵活、高效的优点,实现例如复合条件查询等复杂操作指令,提高配置管理的效率和灵活性。同时,由于避免了管理设备与网络设备进行报文传输过程中,不同报文数据格式之间的转换,提高了报文传输的效率,降低了网络设备响应的延迟。
在一种可能的设计中,所述报文处理装置,还包括,生成模块。
所述生成模块,用于:
根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,其中,所述映射文件用于指示所述子对象与所述数据值组合之间的转换关系,所述数据值组合为基于Protobuf数据模型的数据表达;根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象,其中,所述第一模型文件为基于Protobuf数据模型的文件。
本申请,通过预设的映射文件和预设的第一模型文件,将使用不同配置管理模型的内存对象转换为基于Protobuf数据模型的数据对象,相当于对存储配置数据的内存对象进行了预处理和缓存,使后续管理设备对网络设备进行配置管理时,可以通过报文请求消息直接确定数据对象,并将数据对象直接作为报文响应消息直接返回管理设备,报文交互的过程中无需进行数据格式的转换,提高了报文交互的效率和灵活性。
在一种可能的设计中,映射文件中包括一种或多种内存对象的转换信息,每一种内存对象的转换信息中包括对象标识和子对象信息;其中,子对象信息中包括一个或多个子对象的表征信息,表征信息中包括第一路径和格式属性;第一路径用于指示第二模型文件中的与子对象对应的节点,与子对象对应的节点具有数据值,所述第二模型文件为基于YANG数据模型的文件,所述第二模型文件包括N个节点,N个节点中每M个节点与每一报文请求消息对应;格式属性用于指示基于Protobuf数据模型的数据表达方式;N、M为大于等于1的整数,M小于等于N。
本申请,通过映射文件中设置的一种或多种内存对象的转换信息,实现了内存对象至数据对象的转换,通过在转换信息内设置对象标识和子对象信息,使内存对象能够对应更多配置数据的类型,实现了对内存对象对应的配置数据的进一步细化,提高了网络设备配置管理的灵活性。
在一种可能的设计中,每一种内存对象的转换信息中还包括第二路径;其中,第二路径用于指示所述第二模型文件中的与内存对象对应的节点。
本申请,通过在转换信息中增加第二路径,以实现对第二模型文件中的与内存对象对应的节点的定位,实现了对内存对象对应的配置数据的进一步细化,提高了网络设备配置管理的灵活性。
在一种可能的设计中,所述生成模块在根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合时,具体用于:
根据所述第一路径,确定与每一子对象对应的节点,并读取与每一子对象对应的节点中的数据值;根据每一子对象的格式属性,与每一子对象对应的节点中的数据值,转换为每一数据值组合。
本申请,根据第一路径和格式属性,确定子对象对应的节点的数值及数据格式,格式属性可以根据具体的需求进行设置,因此,使内存对象能够对应更多配置数据的类型,提高了网络设备配置管理的灵活性。
在一种可能的设计中,所述生成模块在根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象时,具体用于:
根据所述第一模型文件,生成各Protobuf对象,其中,所述Protobuf对象中包括所述对象标识和基于Protobuf的属性定义;将所述每一数据值组合,赋值给每一Protobuf对象,得到每一所述数据对象。
本申请,通过生成Protobuf对象并利用数据值组合给Protobuf对象赋值,实现了从内存对象至数据对象的数据模型的转换,由于生成数据对象及给数据对象赋值的过程无需借助设备的北向接口,在设备初始化后即可完成,因此,提高了管理设备与网络设备进行报文交互的效率和灵活性。
在一种可能的设计中,所述装置,还包括:转换模块。
所述转换模块,用于:
获取所述第二模型文件;根据预设的映射关系,将所述第二模型文件转换为所述第一模型文件,其中,所述映射关系用于指示所述第二模型文件中的属性定义与所述第一模型文件中的属性定义之间的映射关系。
本申请,根据预设的映射关系将第二模型文件转换为所述第一模型文件,实现了不同模型文件之间的转换,由于生成数据对象及给数据对象赋值的过程无需借助设备的北向接口,在设备初始化后即可完成,因此,提高了管理设备与网络设备进行报文交互的效率和灵活性。
在一种可能的设计中,所述属性定义包括以下的一种或多种:声明定义、类型定义和补充定义;其中,所述补充定义包括以下的一种或多种:键定义、名字空间定义、名字定义、小数位数定义。
本申请,通过属性定义和补充定义,使Protobuf数据模型能够完全实现YANG数据模型的特性,进而实现了基于YANG数据模型收发报文的管理设备与基于Protobuf数据模型存储数据的网络设备之间的报文交互,并且,由于属性定义和补充定义可根据需要进行定义,提高了使用灵活性。
第三方面,本申请提供一种网络设备,包括:处理器、接收器和发送器。
所述接收器,用于接收来自管理设备的报文请求消息,其中,所述报文请求消息为基于可扩展标记语言XML的消息;所述处理器,用于根据预存的数据集合,确定与所述报文请求消息对应的数据对象,其中,所述数据集合中包括一个或多个数据对象,所述数据对象为基于Protobuf数据模型的数据;将与所述报文请求消息对应的数据对象,确定为报文响应消息;所述发送器,用于向所述管理设备发送所述报文响应消息,其中,所述报文响应消息为基于XML的消息。
本申请,通过基于YANG数据模型的报文请求消息,确认对应的基于Protobuf数据模型数据对象,从而生成报文响应消息,由于YANG数据模型和Protobuf数据模型具有对应的数据结构,因此YANG数据模型所具有的特性也可以在Protobuf数据模型中体现,进而在管理设备通过基于YANG数据模型的报文请求消息对网络设备进行配置管理时,可以充分发挥YANG数据模型的灵活、高效的优点,实现例如复合条件查询等复杂操作指令,提高配置管理的效率和灵活性。同时,由于避免了管理设备与网络设备进行报文传输过程中,不同报文数据格式之间的转换,提高了报文传输的效率,降低了网络设备响应的延迟。
在一种可能的设计中,所述处理器,还用于:
根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,其中,所述映射文件用于指示所述子对象与所述数据值组合之间的转换关系,所述数据值组合为基于Protobuf数据模型的数据表达;根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象,其中,所述第一模型为基于Protobuf数据模型的文件。
本申请,通过预设的映射文件和预设的第一模型文件,将使用不同配置管理模型的内存对象转换为基于Protobuf数据模型的数据对象,相当于对存储配置数据的内存对象进行了预处理和缓存,使后续管理设备对网络设备进行配置管理时,可以通过报文请求消息直接确定数据对象,并将数据对象直接作为报文响应消息直接返回管理设备,报文交互的过程中无需进行数据格式的转换,提高了报文交互的效率和灵活性。
在一种可能的设计中,映射文件中包括一种或多种内存对象的转换信息,每一种内存对象的转换信息中包括对象标识和子对象信息;其中,子对象信息中包括一个或多个子对象的表征信息,表征信息中包括第一路径和格式属性;第一路径用于指示第二模型文件中的与子对象对应的节点,与子对象对应的节点具有数据值,所述第二模型文件为基于YANG数据模型的文件,所述第二模型文件包括N个节点,N个节点中每M个节点与每一报文请求消息对应;格式属性用于指示基于Protobuf数据模型的数据表达方式;N、M为大于等于1的整数,M小于等于N。
本申请,通过映射文件中设置的一种或多种内存对象的转换信息,实现了内存对象至数据对象的转换,通过在转换信息内设置对象标识和子对象信息,使内存对象能够对应更多配置数据的类型,实现了对内存对象对应的配置数据的进一步细化,提高了网络设备配置管理的灵活性。
在一种可能的设计中,每一种内存对象的转换信息中还包括第二路径;其中,第二路径用于指示所述第二模型文件中的与内存对象对应的节点。
本申请,通过在转换信息中增加第二路径,以实现对第二模型文件中的与内存对象对应的节点的定位,实现了对内存对象对应的配置数据的进一步细化,提高了网络设备配置管理的灵活性。
在一种可能的设计中,所述处理器在用于根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合时,具体用于:
根据所述第一路径,确定与每一子对象对应的节点,并读取与每一子对象对应的节点中的数据值;根据每一子对象的格式属性,与每一子对象对应的节点中的数据值,转换为每一数据值组合。
本申请,根据第一路径和格式属性,确定子对象对应的节点的数值及数据格式,格式属性可以根据具体的需求进行设置,因此,使内存对象能够对应更多配置数据的类型,提高了网络设备配置管理的灵活性。
在一种可能的设计中,所述处理器在用于根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象时,具体用于:
根据所述第一模型文件,生成各Protobuf对象,其中,所述Protobuf对象中包括所述对象标识和基于Protobuf的属性定义;将所述每一数据值组合,赋值给每一Protobuf对象,得到每一所述数据对象。
本申请,通过生成Protobuf对象并利用数据值组合给Protobuf对象赋值,实现了从内存对象至数据对象的数据模型的转换,由于生成数据对象及给数据对象赋值的过程无需借助设备的北向接口,在设备初始化后即可完成,因此,提高了管理设备与网络设备进行报文交互的效率和灵活性。
在一种可能的设计中,所述处理器,还用于:
获取所述第二模型文件;根据预设的映射关系,将所述第二模型文件转换为所述第一模型文件,其中,所述映射关系用于指示所述第二模型文件中的属性定义与所述第一模型文件中的属性定义之间的映射关系。
本申请,根据预设的映射关系将第二模型文件转换为所述第一模型文件,实现了不同模型文件之间的转换,由于生成数据对象及给数据对象赋值的过程无需借助设备的北向接口,在设备初始化后即可完成,因此,提高了管理设备与网络设备进行报文交互的效率和灵活性。
在一种可能的设计中,所述属性定义包括以下的一种或多种:声明定义、类型定义和补充定义;其中,所述补充定义包括以下的一种或多种:键定义、名字空间定义、名字定义、小数位数定义。
本申请,通过属性定义和补充定义,使Protobuf数据模型能够完全实现YANG数据模型的特性,进而实现了基于YANG数据模型收发报文的管理设备与基于Protobuf数据模型存储数据的网络设备之间的报文交互,并且,由于属性定义和补充定义可根据需要进行定义,提高了使用灵活性。
第三方面,本申请提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面任一项所述的方法。
第四方面,本申请提供一种计算机程序,包括程序代码,当计算机运行所述计算机程序时,所述程序代码执行如上第一方面任一项所述的方法。
附图说明
图1为本申请实施例提供的一种网络架构示意图;
图2为本申请实施例提供的一种应用场景示意图一;
图3为本申请实施例提供的一种应用场景示意图二;
图4为本申请实施例提供的一种报文处理方法的流程示意图;
图5为本申请实施例提供的另一种报文处理方法的流程示意图;
图6为本申请实施例提供的内存对象的转换示意图;
图7为本申请实施例提供的又一种报文处理方法的流程示意图;
图8为本申请实施例提供的一种报文处理装置的示意性框图;
图9为本申请实施例提供的另一种报文处理装置的示意性框图;
图10为本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
本申请实施例应用于组成SDN的网络装置中、网络设备中、网络系统中,或者可以执行本申请实施例的任意系统中,以下对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。需要说明的是,当本申请实施例的方案应用于网络系统中,或者可以执行本申请实施例的任意系统中时,网络装置、网络设备的名称可能发生变化,但这并不影响本申请实施例方案的实施。
1)、网络设备,是指用于网络数据传输的设备,例如交换机、路由器等。
2)、NETCONF,是一种基于可扩展标记语言(Extensible Markup Language,XML)的网络配置管理协议,NETCONF提供一套管理网络设备的机制,用户可以使用这套机制增加、修改、删除网络设备的配置,获取网络设备的配置和状态信息。NETCONF采用的是客户端/服务器模式(Client/Server,C/S),在基于NETCONF的配置管理模型中,Client对应管理设备,Server对应网络设备,通过基于NETCONF的配置管理模型,可能实现管理设备与网络设备之间的数据交换。
NETCONF内部为4层结构,分别为安全传输层(Secure Transport Layer)、消息层(Message Layer)、操作层(Operation Layer)和内容层(Content Layer)。
其中,安全传输层用于规定安全加密的通信协议并进行数据传输。
消息层用于实现Client和Server之间的消息收发。
操作层用于在消息层的基础上,实现Client对Server的具体指令操作,例如查询、编辑、复制、删除等。
3)、内容层,用于定义具体的协议内容。内容层是NETCONF中最重要的一层,NETCONF中的内容层是开放的,即NETCONF本身未对内容层指定具体的数据结构,而是通过又一个下一代(Yet Another Next Generation,YANG)建模语言对数据结构进行建模,从而定义NETCONF协议内容层具体的内容。因此,用户可以根据需求,建立YANG数据模型,实现对位于服务器侧的网络设备进行管理。在需要对NETCONF进行扩展和修改时,可以通过对YANG数据模型进行修改而实现,因此,基于NETCONF的配置管理模型具有较好的可扩展性和管理效率。
4)、Protobuf(Protocol Buffers),是一种高效的结构化数据存储方式,可以用于对数据进行序列化,即将数据结构或对象转换成能够被存储和传输(例如网络传输)的格式,具有跨平台、高效、扩展性好等众多优点。通过Protobuf,可以实现数据结构的建模和转换。
5)、“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
6)、“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
需要指出的是,本申请实施例中涉及的名词或术语可以相互参考,不再赘述。
图1为本申请实施例提供的一种网络架构示意图。如图1所示的网络架构包括:管理设备11,网络设备12、网络设备13和网络设备14,管理设备11与网络设备12、网络设备13和网络设备14共同组成网络,管理设备11通过NETCONF协议对网络设备12、网络设备13和网络设备14进行配置管理。其中,网络设备12和网络设备13是基于YANG数据模型的配置管理模型,网络设备14为基于非YANG数据模型的配置管理模型,例如,基于CLI的配置管理模型。
图2为本申请实施例提供的一种应用场景示意图一。如图2所示,在图1所示的网络架构下,管理设备11向网络设备12和网络设备13发送用于表征交互指令的报文请求消息,由于网络设备12和网络设备13均是基于YANG数据模型的配置管理模型,因此,网络设备12和网络设备13可以直接识别并响应报文请求消息,并将报文响应消息返回至管理设备11,完成管理设备11与网络设备12和网络设备13的数据交互过程。
图3为本申请实施例提供的一种应用场景示意图二。如图3所示,在图1所示的网络架构下,管理设备11向网络设备14发送用于表征交互指令的报文请求消息,由于络设备14是基于非YANG数据模型的配置管理模型,因此,网络设备14无法直接识别并响应报文请求消息,需要在首先对报文请求消息进行解析,以执行对应的交互指令,执行完成后,将响应结果再次进行转换为符合YANG数据模型的数据,并作为报文响应消息返回至管理设备11,完成管理设备11与网络设备14的数据交互过程。
在图3所示实施例提供的应用场景中,由于网络设备的配置管理模型与管理设备的配置管理模型不匹配,因此,需要对管理设备与网络设备数据交互过程中的数据和指令进行转换,由于YANG数据模型的配置管理模型使用更加灵活,在将基于YANG数据模型的配置管理模型中的操作指令转换为基于非YANG数据模型的配置管理模型中的操作指令时,部分复杂操作指令无法实现。例如,基于YANG数据模型的配置管理模型中的操作指令为“查询所有类型为10GE而且状态为up的接口的描述信息”,由于基于CLI的配置管理模型中的操作指令集都是固定的,因此无法实现上述的操作指令,造成了配置管理效率低,使用灵活性低的问题。
同时,在对网络设备进行查询、复制等会产生大数据量的响应结果的操作时,由于需要将响应结果转换为符合YANG数据模型的数据才能返回管理设备,而该编译过程会消耗大量计算时间,因此造成了响应延迟高的问题。
图4为本申请实施例提供的一种报文处理方法的流程示意图,示例性地,本实施例提供的报文处理方法应用于网络设备,如图4所示,该方法包括:
S101、接收来自管理设备的报文请求消息,其中,报文请求消息为基于YANG数据模型的文本信息。
示例性地,管理设备可以为网络管理设备,例如网络管理服务器、网络管理终端等,网络管理设备中安装有网管软件,用户可以通过网管软件对处于同一网络内的网络设备进行配置管理,例如配置数据查询、配置数据修改、配置数据复制、配置数据删除等。管理设备还可以为控制器设备或起到控制器作用的其他设备,能够运行控制器程序并起到对同一网络内的网络设备进行配置管理的作用,此处不对管理设备的具体形式进行限定。
示例性地,网络设备可以为交换机、路由器或其他接入网络设备。管理设备与网络设备之间通过基于YANG数据模型的NETCONF协议进行数据的交换。
当管理设备需要对网络设备进行配置管理时,会向网络设备发送基于报文请求消息,报文请求消息用于表征具体的配置管理指令和内容,例如,查询接口类型、修改接口名称等。网络设备能够接收报文请求消息,并按照报文请求消息所表征的配置管理指令和内容进行响应。
示例性地,报文请求消息中包括指令信息和与指令信息对应的内容信息,例如,报文请求消息用于表征一条修改接口名称的指令,将接口名称eth1为eth0。其中,报文请求消息中的指令信息为修改接口,内容信息为eth1和eth2。当然,可以理解的是,此处修改接口名称的报文请求消息的实现方式为示例性,还可以通过其他多种方式,此处不做限定。
报文请求消息是基于YANG数据模型的文本信息,例如XML文件,或者对象简谱(JavaScript Object Notation,JSON)文件,或者其他符合特定规范的用于存储和表示数据和信息的数据交换格式,此处不做具体限定。
S102、根据预存的数据集合,确定与报文请求消息对应的数据对象,其中,数据集合中包括一个或多个数据对象,数据对象为基于Protobuf数据模型的数据。
示例性地,预存的数据集合可以包括状态数据和配置数据两类,其中,状态数据可以为网络设备的固有属性数据和当前运行的状态数据等,例如,端口的类型、端口的状态等。状态数据仅能够被查询。配置数据可以为由用户通过某种方式配置到网络设备上的数据,例如,端口的名称、端口的描述。配置数据又可以存在多个子数据集合,每个子数据集合例如可以为一个数据库。例如,<running/>数据库可以用于保存当前已经生效的配置数据;<candidate/>数据库用于保存可以提交为生效的配置数据;<startup/>数据库用于保存启动时的配置数据。状态数据和配置数据的总和可以统称为数据集合。
数据对象为数据集合的基本单元,例如,端口的类型、端口的状态、端口的名称、端口的描述等。不同的数据对象,可以对应状态数据,也可以对应配置数据。根据报文请求消息所具体表征的配置管理指令和内容,可以确定对应的数据对象。例如,报文请求消息所表征的配置管理指令和内容为,查询A端口的端口类型,则该报文请求消息所对应的数据对象A为端口的端口类型;再例如,报文请求消息所表征的配置管理指令和内容为,查询查询所有类型为10GE而且状态为up的接口的描述信息,则该报文请求消息所对应的数据对象A为类型为10GE而且状态为up的接口的描述信息。
数据对象是基于Protobuf数据模型的数据。其中,Protobuf数据模型与YANG数据模型具有映射关系,Protobuf数据模型为预先设置的用于存储数据集合的数据模型,可以实现YANG数据模型的部分或全部特征。
具体地,Protobuf作为一种高效的结构化数据的序列化方法,能够根据具体的需求,构建Protobuf数据模型,从而使原始数据能够按照Protobuf数据模型进行组织,形成基于Protobuf数据模型的数据。
为了实现Protobuf数据模型与YANG数据模型之间的模型匹配,需要预先根据YANG数据模型的特征,建立Protobuf数据模型与YANG数据模型之间的映射关系。更加具体地,YANG提供了一些基础的数据结构,例如,module、container、leaf,这些基础的数据结构构成了YANG数据模型的数据架构。在建立Protobuf数据模型与YANG数据模型之间的映射关系时,可以利用Protobuf提供的数据结构去映射YANG数据模型的数据结构。例如:将Protobuf提供的package与YANG提供的module声明为映射;将Protobuf提供的message与YANG提供的container声明为映射;将Protobuf提供的field与YANG提供的leaf声明为映射。Protobuf数据模型与YANG数据模型之间具体的映射方式,可以根据需求进行具体的设置,此处不做限制。
根据Protobuf数据模型与YANG数据模型之间的映射,可以使基于Protobuf数据模型的数据对象,与基于YANG数据模型的报文请求消息之间形成对应的数据模型,进而实现确定与报文请求消息对应的数据对象。
S103、将与报文请求消息对应的数据对象,确定为报文响应消息,并向管理设备发送报文响应消息。
确定与报文请求消息对应的数据对象后,由于数据对象基于Protobuf数据模型的数据格式与报文响应消息基于YANG数据模型的数据格式是对应的,因此,可以将数据对象直接作为报文响应消息向管理设备发送,实现对管理设备发送的报文请求消息的响应,进而实现管理设备与网络设备之间的数据交互过程。
示例性地,数据对象和报文响应消息可以为XML文件或其他符合特定规范的用于存储和表示数据和信息的数据交换格式。
下面以一个具体的使用场景对本实施例提供的报文处理方法进行说明。
管理设备为网络管理设备,网络管理设备和网络设备处于同一网络内,网络管理设备根据基于YANG数据模型的NETCONF协议对网络设备发送报文请求消息,该报文请求消息表征了对端口A的端口类型进行查询的指令。网络设备接收网络管理设备发送的报文请求消息,网络设备内存储有基于Protobuf数据模型的数据集合,数据集合中包括多个数据对象。由于Protobuf数据模型与YANG数据模型的特性统一,因此,网络设备可以根据基于YANG数据模型的报文请求消息,直接确定对应的基于Protobuf数据模型的数据对象,并将该基于Protobuf数据模型的数据对象,以XML文件的形式,返回网络管理设备,避免了网络管理设备和网络设备数据交互过程中,不同数据格式之间的转换过程。
本实施例中,通过接收来自管理设备的报文请求消息,其中,报文请求消息为基于YANG数据模型的文本信息;根据预存的数据集合,确定与报文请求消息对应的数据对象,其中,数据集合中包括一个或多个数据对象,数据对象为基于Protobuf数据模型的数据;将与报文请求消息对应的数据对象,确定为报文响应消息,并向管理设备发送报文响应消息。由于YANG数据模型和Protobuf数据模型具有对应的数据结构,因此YANG数据模型所具有的特性也可以在Protobuf数据模型中体现,进而在管理设备通过基于YANG数据模型的报文请求消息对网络设备进行配置管理时,可以充分发挥YANG数据模型的灵活、高效的优点,实现例如复合条件查询等复杂操作指令,提高配置管理的效率和灵活性。同时,由于避免了管理设备与网络设备进行报文传输过程中,不同报文数据格式之间的转换,提高了报文传输的效率,降低了网络设备响应的延迟。
图5为本申请实施例提供的另一种报文处理方法的流程示意图,如图5所示,该方法包括:
S201、根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,其中,映射文件用于指示子对象与数据值组合之间的转换关系,数据值组合为基于Protobuf数据模型的数据表达。
示例性的,内存对象是指网络设备运行后,在内存中以特定数据格式存在的数据。每一种内存对象分别为包括一组数据,用于表征不同的配置数据,例如,端口速率。内存对象中包括一个或多个子对象,子对象用于表征更加详细的配置数据。例如,内存对象PORT_SPEED为端口速率,对于网络设备而言,通常具有多个不同的端口速率,例如,第一端口速率,第二端口速率。其中第一端口速率,第二端口速率即为内存对象的子对象。多个子对象的集合,构成了对应一种数据对象的内存对象。
数据值组合为基于Protobuf数据模型的数据表达,即符合Protobuf数据模型的数据,根据预存的映射文件,可以将内存对象中的每一子对象,转换为符合Protobuf数据模型的数据值组合,进而实现将内存对象转换为符合Protobuf数据模型的数据。
图6为本申请实施例提供的内存对象的转换示意图,如图6所示,图6示出了步骤S201中将内存对象中的每一子对象转换为每一数据值组合的过程,由于内存对象的具体数据模型,是由网络设备决定的,使用不同配置管理模型的网络设备,其存储配置数据的内存对象的数据模型是不同的,通过特定的映射关系,可以将内存对象转化为统一的符合Protobuf数据模型的数据,Protobuf数据模型与YANG数据模型相对应。该特定的映射关系可以通过预存的映射文件获得。
S202、根据预存的第一模型文件和每一数据值组合,生成每一数据对象,其中,第一模型文件为基于Protobuf数据模型的文件。
具体地,第一模型文件为Protobuf数据模型的描述文件,根据第一模型文件,可以确定Protobuf数据模型的具体数据结构,且Protobuf数据模型与YANG数据模型具有映射关系。根据第一数据值组合表征的具体内容,例如第一端口速率为1000;第二端口速率为1200;第三端口速率为1500,对应生成符合Protobuf数据模型的表征第一端口速率、第二端口速率、第二端口速率的数据对象,并将具体的数据值1000、1200、1500分别赋给表征端口速率的数据对象中的第一端口速率、第二端口速率、第二端口速率,实现生成每一内存对象对应的数据对象的目的,即完成了不同数据结构的内存对象至基于Protobuf数据模型数据对象的转换。
S203、接收来自管理设备的报文请求消息,其中,报文请求消息为基于YANG数据模型的文本信息。
示例性地,本步骤可以参见图4所示的步骤S101,不再赘述。
S204、根据预存的数据集合,确定与报文请求消息对应的数据对象,其中,数据集合中包括一个或多个数据对象,数据对象为基于Protobuf数据模型的数据。
示例性地,本步骤可以参见图4所示的步骤S102,不再赘述。
S205、将与报文请求消息对应的数据对象,确定为报文响应消息,并向管理设备发送报文响应消息。
示例性地,本步骤可以参见图4所示的步骤S103,不再赘述。
下面以一个具体的使用场景对本实施例提供的报文处理方法进行说明。
管理设备为网络管理设备,网络管理设备和网络设备处于同一网络内。网络设备开启后,网络设备根据预设的映射文件和预设的第一模型文件,将内存中运行的内存对象转换为基于Protobuf数据模型的数据对象,即并进行缓存。该Protobuf数据模型与YANG数据模型在数据结构上统一,功能上相对应。可选地,该过程可以发生在网络设备开启后的初始化阶段,或者其他触发条件下,此处不做具体限定。
网络管理设备根据基于YANG数据模型的NETCONF协议对网络设备发送报文请求消息,该报文请求消息表征了对端口A的端口类型进行查询的指令。网络设备接收网络管理设备发送的报文请求消息,网络设备内缓存有基于Protobuf数据模型的数据集合,数据集合中包括多个数据对象。由于Protobuf数据模型与YANG数据模型的特性统一,因此,网络设备可以根据基于YANG数据模型的报文请求消息,直接确定对应的基于Protobuf数据模型的数据对象,并将该基于Protobuf数据模型的数据对象,以XML文件的形式,返回网络管理设备,避免了网络管理设备和网络设备数据交互过程中,不同数据格式之间的转换过程。
本实施例中,通过根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,其中,映射文件用于指示子对象与数据值组合之间的转换关系,数据值组合为基于Protobuf数据模型的数据表达;根据预存的第一模型文件和每一数据值组合,生成每一数据对象,其中,第一模型文件为基于Protobuf数据模型的文件;接收来自管理设备的报文请求消息并进行响应。由于在接收来自管理设备的报文请求消息并进行响应之前,将网络设备内的内存对象转换为了基于Protobuf数据模型的数据对象,而基于Protobuf数据模型的数据对象与基于YANG数据模型的报文请求消息的数据结构具有对应关系,因此,网络设备根据报文请求消息可以对数据对象进行访问,避免了网络设备在接收和响应报文请求消息时,需要先对报文请求消息和报文响应消息进行转化的问题,提高了网络设备配置管理的效率和灵活性,降低了网络设备的响应延迟。
图7为本申请实施例提供的又一种报文处理方法的流程示意图,如图7所示,该方法包括:
S301、根据预设的映射文件,确定第一路径和格式属性。
映射文件中包括一种或多种内存对象的转换信息,转换信息可以视为一组信息集合,用于实现内存对象至基于Protobuf数据模型的数据对象的转换。内存对象内包括子对象,每一种内存对象的转换信息中包括对象标识和子对象信息。对象标识为表征内存对象的唯一性标识。例如,一个对象标识为WDMPORT_OXUCNSPEED,根据此对象标识,可以唯一的确定一个描述端口速率的内存对象。子对象信息与子对象相对应,用于描述子对象的具体实现方式,例如,子对象的值如何表示。根据由对象标识和子对象信息构成的转换信息,可以实现内存对象至基于Protobuf数据模型的数据对象的转换。
子对象信息中包括一个或多个子对象的表征信息,表征信息中包括第一路径和格式属性;第一路径用于指示第二模型文件中的与子对象对应的节点,与子对象对应的节点具有数据值,第二模型文件为基于YANG数据模型的文件,第二模型文件包括N个节点,N个节点中每M个节点与每一报文请求消息对应;格式属性用于指示基于Protobuf数据模型的数据表达方式;N、M为大于等于1的整数,M小于等于N。
可选地,每一种内存对象的转换信息中还包括第二路径;其中,第二路径用于指示第二模型文件中的与内存对象对应的节点。
下面为本申请实施例提供的一种映射文件的数据结构的示意性代码。
TransValue{}为一种内存对象的转换信息,通过转换信息TransValue{}可以实现内存对象至数据对象的转换。
其中,path:为第二路径,用于指示第二模型文件中的与内存对象对应的节点。
Id:为对象标识,每一个转换信息TransValue{}内有一个全局唯一的对象标识id,用于区别不同的内存对象对应的转换信息。
keys:{}为子对象信息,子对象信息keys:{}中,包括参数path和参数format,其中,path为第一路径,用于指示YANG模型文件中的与子对象对应的节点,由于YANG模型中叶子节点的操作非常灵活,可以实现例如复合指令等操作,因此,通过参数path映射向具体YANG模型的叶子节点,使keys:{}所属的转换信息对应的数据对象,也可以实现相应的操作;参数format为格式数据,用于对keys:{}具体的数据格式进行定义,可以根据具体的需求进行设定,其实现方式为本领域常用技术手段,此处不再赘述。
format:{}为格式属性,用于指示基于Protobuf数据模型的数据表达方式,例如,带宽速率的单位是兆还是千兆。
S302、根据第一路径,确定与每一子对象对应的节点,并读取与每一子对象对应的节点中的数据值。
示例性地,第一路径为一个具体的节点地址,根据第一路径,可以直接确定子对象对应的节点位置,进而可以读取位于节点处的子对象的数据值。因此,根据多个第一路径,分别进行处理,可以分别获得每一子对象对应的节点中的数据值。
S303、根据每一子对象的格式属性,与每一子对象对应的节点中的数据值,转换为每一数据值组合。
获取数据值后,再根据具体的格式属性,将每一子对象对应的节点中的数据值组织为每一组数据值组合。
可选地,在步骤S303之后还包括:
S3031、获取第二模型文件。
S3032、根据预设的映射关系,将第二模型文件转换为第一模型文件,其中,映射关系用于指示第二模型文件中的属性定义与第一模型文件中的属性定义之间的映射关系。
具体地,第二模型文件为基于YANG数据模型的文件,例如为文本类文件。由于Protobuf与YANG之间本身存在一定的相似性,通过预设的映射关系,可以实现第二模型与第一模型文件之间的转换,使第一模型文件能够实现与第二模型文件相同的功能和数据结构。
可以理解的是,步骤S3031和步骤S3032可以设置在S304之前的任何位置执行。
S304、根据第一模型文件,生成各Protobuf对象,其中,Protobuf对象中包括对象标识和基于Protobuf的属性定义。
具体地,第一模型文件为Protobuf数据模型的描述文件,例如为文本类文件,根据第一模型文件,可以确定Protobuf数据模型的具体数据结构。根据第一模型文件生成各Protobuf对象的方式例如为,获取第一模型文件中声明的数据结构,并利用编译器数据结构进行编译,从而得到各Protobuf对象,可选地,对象标识与转换信息中的对象标识是一致的,对象标识为表征内存对象的以及数据对象的唯一性标识,不同Protobuf对象具有不同的对象标识。该对象标识可以是预设的,并可以根据具体需要进行更改,也可以是与网络设备的硬件参数绑定可不能更改的,此处不对对象标识的具体实现方式进行限定。基于Protobuf的属性定义是指Protobuf对象所具有的具体的Protobuf数据模型的特征,每个Protobuf对象之间的属性定义可能相同,也可能不同。可选地,属性定义包括以下的一种或多种:声明定义、类型定义和补充定义。其中,补充定义包括以下的一种或多种:键定义、名字空间定义、名字定义、小数位数定义。
S305、将每一数据值组合,赋值给每一Protobuf对象,得到每一数据对象。
根据对象标识,能够确定每一数据值组合和每一Protobuf对象的映射关系,将每一数据值组合的值对应的赋值给Protobuf对象,得到相应的数据对象。数据对象是基于Protobuf数据模型的,Protobuf数据模型与YANG数据模型在数据结构上相统一,在功能上相对应。
S306、接收来自管理设备的报文请求消息,其中,报文请求消息为基于YANG数据模型的文本信息。
示例性地,本步骤可以参见图4所示的步骤S101,不再赘述。
S307、根据预存的数据集合,确定与报文请求消息对应的数据对象,其中,数据集合中包括一个或多个数据对象,数据对象为基于Protobuf数据模型的数据。
示例性地,本步骤可以参见图4所示的步骤S102,不再赘述。
S308、将与报文请求消息对应的数据对象,确定为报文响应消息,并向管理设备发送报文响应消息。
示例性地,本步骤可以参见图4所示的步骤S102,不再赘述。
本实施例,通过映射文件中设置的一种或多种内存对象的转换信息,实现了内存对象至数据对象的转换,由于在转换信息内设置对象标识和子对象信息,使内存对象能够对应更多配置数据的类型,实现了对内存对象对应的配置数据的进一步细化,提高了网络设备配置管理的灵活性。
上文中详细描述了根据本申请实施例的报文处理方法,下面将描述本申请实施例的报文处理装置。
在一个示例中,图8为本申请实施例提供的一种报文处理装置的示意性框图。本申请实施例的装置8可以是上述方法实施例中的网络设备,也可以是网络设备内的一个或多个芯片。该装置可以用于执行上述方法实施例中的网络设备的部分或全部功能。该装置可以包括下述模块。
接收模块91,用于接收来自管理设备的报文请求消息,其中,报文请求消息为基于YANG数据模型的文本信息。
确定模块92,用于根据预存的数据集合,确定与报文请求消息对应的数据对象,其中,数据集合中包括一个或多个数据对象,数据对象为基于Protobuf数据模型的数据。
发送模块93,用于将与报文请求消息对应的数据对象,确定为报文响应消息,并向管理设备发送报文响应消息。
其中,接收模块91可以执行图4所示方法的步骤S101,或者可以执行图5所示方法的步骤S203;或者可以执行图7所示方法的步骤S306;确定模块92可以执行图4所示方法的步骤S102,或者可以执行图5所示方法的步骤S204;或者可以执行图7所示方法的步骤S307;发送模块93可以执行图4所示方法的步骤S103,或者可以执行图5所示方法的步骤S205;或者可以执行图7所示方法的步骤S308。
图8所示实施例的报文处理装置可用于执行上述方法中图4所示实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在另一个示例中,图9为本申请实施例提供的另一种报文处理装置的示意性框图。在图9所示装置的基础上,如图9所示,该报文处理装置9中,还包括:
生成模块101,用于根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,其中,映射文件用于指示子对象与数据值组合之间的转换关系,数据值组合为基于Protobuf数据模型的数据表达;根据预存的第一模型文件和每一数据值组合,生成每一数据对象,其中,第一模型文件为基于Protobuf数据模型的文件。其中生成模块101可以执行图5所示方法的步骤S201-S202,其实现原理和技术效果类似,此处不再赘述。
可选地,生成模块101,还用于根据预设的映射文件,确定第一路径和格式属性。映射文件中包括一种或多种内存对象的转换信息,映射文件中包括一种或多种内存对象的转换信息,每一种内存对象的转换信息中包括对象标识和子对象信息;其中,子对象信息中包括一个或多个子对象的表征信息,表征信息中包括第一路径和格式属性;第一路径用于指示第二模型文件中的与子对象对应的节点,与子对象对应的节点具有数据值,第二模型文件为基于YANG数据模型的文件,第二模型文件包括N个节点,N个节点中每M个节点与每一报文请求消息对应;格式属性用于指示基于Protobuf数据模型的数据表达方式;N、M为大于等于1的整数,M小于等于N。可选地,每一种内存对象的转换信息中还包括第二路径;其中,第二路径用于指示第二模型文件中的与内存对象对应的节点。此时,生成模块101可以执行图7所示方法的步骤S301,其实现原理和技术效果类似,此处不再赘述。
可选地,生成模块101在根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合时,具体用于:
根据第一路径,确定与每一子对象对应的节点,并读取与每一子对象对应的节点中的数据值;根据每一子对象的格式属性,与每一子对象对应的节点中的数据值,转换为每一数据值组合。此时,生成模块102可以执行图7所示方法的步骤S302-S303,其实现原理和技术效果类似,此处不再赘述。
可选地,生成模块101在根据预存的第一模型文件和每一数据值组合,生成每一数据对象时,具体用于:
根据第一模型文件,生成各Protobuf对象,其中,Protobuf对象中包括对象标识和基于Protobuf的属性定义;将每一数据值组合,赋值给每一Protobuf对象,得到每一数据对象。可选地,属性定义包括以下的一种或多种:声明定义、类型定义和补充定义;其中,补充定义包括以下的一种或多种:键定义、名字空间定义、名字定义、小数位数定义。此时,生成模块101可以执行图7所示方法的步骤S304-S305,其实现原理和技术效果类似,此处不再赘述。
转换模块102,用于获取第二模型文件,根据预设的映射关系,将第二模型文件转换为第一模型文件,其中,映射关系用于指示第二模型文件中的属性定义与第一模型文件中的属性定义之间的映射关系。此时,转换模块102可以执行图7所示方法的步骤S3031-S3032,其实现原理和技术效果类似,此处不再赘述。
并且,本实施例的实施不依赖于图8所示的实施例是否实施,本实施例可以独立实施。
图10为本申请实施例提供的一种网络设备的结构示意图。如图10所示,该网络设备包括处理器111、接收器112和发送器113。
接收器112,用于接收来自管理设备的报文请求消息,其中,报文请求消息为基于可扩展标记语言XML的消息。此时,接收器112可以执行图4所示方法的步骤S101,或者可以执行图5所示方法的步骤S203;或者可以执行图7所示方法的步骤S306。
处理器111,用于根据预存的数据集合,确定与报文请求消息对应的数据对象,其中,数据集合中包括一个或多个数据对象,数据对象为基于Protobuf数据模型的数据;将与报文请求消息对应的数据对象,确定为报文响应消息。此时,处理器111可以执行图4所示方法的步骤S102,或者可以执行图5所示方法的步骤S204;或者可以执行图7所示方法的步骤S307。
发送器113,用于向管理设备发送报文响应消息,其中,报文响应消息为基于XML的消息。此时,发送器113可以执行图4所示方法的步骤S103,或者可以执行图5所示方法的步骤S205;或者可以执行图7所示方法的步骤S308。
可选地,处理器111,还用于根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,其中,映射文件用于指示子对象与数据值组合之间的转换关系,数据值组合为基于Protobuf数据模型的数据表达。此时,处理器111可以执行图5所示方法的步骤S201。
可选地,处理器111,还用于根据预存的第一模型文件和每一数据值组合,生成每一数据对象,其中,第一模型为基于Protobuf数据模型的文件。此时,处理器111可以执行图5所示方法的步骤S202。
可选地,处理器111,还用于根据预设的映射文件,确定第一路径和格式属性。映射文件中包括一种或多种内存对象的转换信息,每一种内存对象的转换信息中包括对象标识和子对象信息。
其中,子对象信息中包括一个或多个子对象的表征信息,表征信息中包括第一路径和格式属性;第一路径用于指示第二模型文件中的与子对象对应的节点,与子对象对应的节点具有数据值,第二模型文件为基于YANG数据模型的文件,第二模型文件包括N个节点,N个节点中每M个节点与每一报文请求消息对应;格式属性用于指示基于Protobuf数据模型的数据表达方式;N、M为大于等于1的整数,M小于等于N。此时,处理器111可以执行图7所示方法的步骤S301。
可选地,每一种内存对象的转换信息中还包括第二路径;其中,第二路径用于指示第二模型文件中的与内存对象对应的节点。
可选地,处理器111在用于根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合时,具体用于:
根据第一路径,确定与每一子对象对应的节点,并读取与每一子对象对应的节点中的数据值。此时,处理器111可以执行图7所示方法的步骤S302。
根据每一子对象的格式属性,与每一子对象对应的节点中的数据值,转换为每一数据值组合。此时,处理器111可以执行图7所示方法的步骤S303。
可选地,处理器111在用于根据预存的第一模型文件和每一数据值组合,生成每一数据对象时,具体用于:
根据第一模型文件,生成各Protobuf对象,其中,Protobuf对象中包括对象标识和基于Protobuf的属性定义。此时,处理器111可以执行图7所示方法的步骤S303。
将每一数据值组合,赋值给每一Protobuf对象,得到每一数据对象。此时,处理器111可以执行图7所示方法的步骤S304。
可选地,处理器111,还用于:
获取第二模型文件。此时,处理器111可以执行图7所示方法的步骤S3031。
根据预设的映射关系,将第二模型文件转换为第一模型文件,其中,映射关系用于指示第二模型文件中的属性定义与第一模型文件中的属性定义之间的映射关系。此时,处理器111可以执行图7所示方法的步骤S3032。
可选地,属性定义包括以下的一种或多种:声明定义、类型定义和补充定义。
其中,补充定义包括以下的一种或多种:键定义、名字空间定义、名字定义、小数位数定义。
处理器111可用于执行上述方法实施例中网络设备的处理过程。
可选的,网络设备还可以包括存储器114,存储器114用于存储网络设备的程序代码和数据。
在本申请实施例中,上述各实施例之间可以相互参考和借鉴,相同或相似的步骤以及名词均不再一一赘述。
其中,处理器111也可以为控制器,图10中表示为“控制器/处理器111”。接收器112和发送器113用于支持网络设备与上述实施例中的管理设备之间收发信息,以及支持网络设备与其他网络设备之间进行无线电通信。可选的,处理器111执行各种用于与管理设备通信的功能。
此外,网络设备还可以包括通信接口115。通信接口115用于支持网络设备与其他网络实体进行通信。
处理器111例如中央处理器(central processing unit,CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路,或,一个或多个微处理器,或,一个或者多个现场可编程门阵列等。存储器111可以是一个存储器,也可以是多个存储元件的统称。
本申请实施例,还提供了一种计算机可读存储介质,包括了指令,当指令在计算机上运行时,计算机可以执行图4-图7所提供的方法。
本申请实施例,还提供了一种计算机程序,包括程序代码,当计算机运行计算机程序时,程序代码执行执行图4-图7所提供的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种报文处理方法,其特征在于,所述方法应用于网络设备,所述方法包括:
接收来自管理设备的报文请求消息,其中,所述报文请求消息为基于YANG数据模型的文本信息;
根据预存的数据集合,确定与所述报文请求消息对应的数据对象,其中,所述数据集合中包括一个或多个数据对象,所述数据对象为基于Protobuf数据模型的数据;
将与所述报文请求消息对应的数据对象,确定为报文响应消息,并向所述管理设备发送所述报文响应消息。
2.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,其中,所述映射文件用于指示所述子对象与所述数据值组合之间的转换关系,所述数据值组合为基于Protobuf数据模型的数据表达;
根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象,其中,所述第一模型文件为基于Protobuf数据模型的文件。
3.根据权利要求2所述的方法,其特征在于,映射文件中包括一种或多种内存对象的转换信息,每一种内存对象的转换信息中包括对象标识和子对象信息;
其中,子对象信息中包括一个或多个子对象的表征信息,表征信息中包括第一路径和格式属性;第一路径用于指示第二模型文件中的与子对象对应的节点,与子对象对应的节点具有数据值,所述第二模型文件为基于YANG数据模型的文件,所述第二模型文件包括N个节点,N个节点中每M个节点与每一报文请求消息对应;格式属性用于指示基于Protobuf数据模型的数据表达方式;N、M为大于等于1的整数,M小于等于N。
4.根据权利要求3所述的方法,其特征在于,每一种内存对象的转换信息中还包括第二路径;其中,第二路径用于指示所述第二模型文件中的与内存对象对应的节点。
5.根据权利要求3所述的方法,其特征在于,根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,包括:
根据所述第一路径,确定与每一子对象对应的节点,并读取与每一子对象对应的节点中的数据值;
根据每一子对象的格式属性,与每一子对象对应的节点中的数据值,转换为每一数据值组合。
6.根据权利要求3-5任一项所述的方法,其特征在于,根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象,包括:
根据所述第一模型文件,生成各Protobuf对象,其中,所述Protobuf对象中包括所述对象标识和基于Protobuf的属性定义;
将所述每一数据值组合,赋值给每一Protobuf对象,得到每一所述数据对象。
7.根据权利要求3-5任一项所述的方法,其特征在于,所述方法,还包括:
获取所述第二模型文件;
根据预设的映射关系,将所述第二模型文件转换为所述第一模型文件,其中,所述映射关系用于指示所述第二模型文件中的属性定义与所述第一模型文件中的属性定义之间的映射关系。
8.根据权利要求7所述的方法,其特征在于,所述属性定义包括以下的一种或多种:声明定义、类型定义和补充定义;
其中,所述补充定义包括以下的一种或多种:键定义、名字空间定义、名字定义、小数位数定义。
9.一种网络设备,其特征在于,所述网络设备包括:处理器、接收器和发送器;
所述接收器,用于接收来自管理设备的报文请求消息,其中,所述报文请求消息为基于可扩展标记语言XML的消息;
所述处理器,用于根据预存的数据集合,确定与所述报文请求消息对应的数据对象,其中,所述数据集合中包括一个或多个数据对象,所述数据对象为基于Protobuf数据模型的数据;将与所述报文请求消息对应的数据对象,确定为报文响应消息;
所述发送器,用于向所述管理设备发送所述报文响应消息,其中,所述报文响应消息为基于XML的消息。
10.根据权利要求9所述的网络设备,其特征在于,所述处理器,还用于:
根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合,其中,所述映射文件用于指示所述子对象与所述数据值组合之间的转换关系,所述数据值组合为基于Protobuf数据模型的数据表达;
根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象,其中,所述第一模型为基于Protobuf数据模型的文件。
11.根据权利要求10所述的网络设备,其特征在于,映射文件中包括一种或多种内存对象的转换信息,每一种内存对象的转换信息中包括对象标识和子对象信息;
其中,子对象信息中包括一个或多个子对象的表征信息,表征信息中包括第一路径和格式属性;第一路径用于指示第二模型文件中的与子对象对应的节点,与子对象对应的节点具有数据值,所述第二模型文件为基于YANG数据模型的文件,所述第二模型文件包括N个节点,N个节点中每M个节点与每一报文请求消息对应;格式属性用于指示基于Protobuf数据模型的数据表达方式;N、M为大于等于1的整数,M小于等于N。
12.根据权利要求11所述的网络设备,其特征在于,每一种内存对象的转换信息中还包括第二路径;其中,第二路径用于指示所述第二模型文件中的与内存对象对应的节点。
13.根据权利要求11所述的网络设备,其特征在于,所述处理器在用于根据预存的映射文件,将每一种内存对象中的每一子对象,转换为每一数据值组合时,具体用于:
根据所述第一路径,确定与每一子对象对应的节点,并读取与每一子对象对应的节点中的数据值;
根据每一子对象的格式属性,与每一子对象对应的节点中的数据值,转换为每一数据值组合。
14.根据权利要求11-13任一项所述的网络设备,其特征在于,所述处理器在用于根据预存的第一模型文件和所述每一数据值组合,生成每一所述数据对象时,具体用于:
根据所述第一模型文件,生成各Protobuf对象,其中,所述Protobuf对象中包括所述对象标识和基于Protobuf的属性定义;
将所述每一数据值组合,赋值给每一Protobuf对象,得到每一所述数据对象。
15.根据权利要求11-13任一项所述的网络设备,其特征在于,所述处理器,还用于:
获取所述第二模型文件;
根据预设的映射关系,将所述第二模型文件转换为所述第一模型文件,其中,所述映射关系用于指示所述第二模型文件中的属性定义与所述第一模型文件中的属性定义之间的映射关系。
16.根据权利要求15所述的网络设备,其特征在于,所述属性定义包括以下的一种或多种:声明定义、类型定义和补充定义;
其中,所述补充定义包括以下的一种或多种:键定义、名字空间定义、名字定义、小数位数定义。
17.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010159272.1A CN113381870B (zh) | 2020-03-09 | 2020-03-09 | 报文处理方法和设备 |
PCT/CN2021/078975 WO2021179977A1 (zh) | 2020-03-09 | 2021-03-04 | 报文处理方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010159272.1A CN113381870B (zh) | 2020-03-09 | 2020-03-09 | 报文处理方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113381870A CN113381870A (zh) | 2021-09-10 |
CN113381870B true CN113381870B (zh) | 2023-01-06 |
Family
ID=77569438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010159272.1A Active CN113381870B (zh) | 2020-03-09 | 2020-03-09 | 报文处理方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113381870B (zh) |
WO (1) | WO2021179977A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024021045A1 (en) * | 2022-07-29 | 2024-02-01 | Huawei Technologies Co., Ltd. | System and method for improving efficiency of yang based configuration of devices |
CN115643314B (zh) * | 2022-10-21 | 2024-02-23 | 中电金信软件有限公司 | 一种系统交替的信息确认方法及系统 |
CN117251144B (zh) * | 2023-11-20 | 2024-03-29 | 北京友友天宇系统技术有限公司 | 一种基于主题的数据对象访问与发布方法及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138771A (zh) * | 2015-08-25 | 2015-12-09 | 国网江西省电力公司鹰潭供电分公司 | 基于电力调度自动化规则引擎的数据建模工具 |
CN107872337A (zh) * | 2016-09-26 | 2018-04-03 | 中国电信股份有限公司 | 信息转换方法、装置和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8838653B2 (en) * | 2010-11-01 | 2014-09-16 | Cisco Technology, Inc. | Translating an object-oriented data model to a YANG data model |
EP3804225A1 (en) * | 2018-06-06 | 2021-04-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for merging of yang configuration and state data in model-driven applications |
CN109951315B (zh) * | 2019-02-14 | 2022-02-22 | 烽火通信科技股份有限公司 | 一种实现yang模型到内部模型映射的方法及系统 |
CN110474794B (zh) * | 2019-07-10 | 2021-04-27 | 烽火通信科技股份有限公司 | 一种sdn架构的信息转换方法和系统 |
-
2020
- 2020-03-09 CN CN202010159272.1A patent/CN113381870B/zh active Active
-
2021
- 2021-03-04 WO PCT/CN2021/078975 patent/WO2021179977A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138771A (zh) * | 2015-08-25 | 2015-12-09 | 国网江西省电力公司鹰潭供电分公司 | 基于电力调度自动化规则引擎的数据建模工具 |
CN107872337A (zh) * | 2016-09-26 | 2018-04-03 | 中国电信股份有限公司 | 信息转换方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113381870A (zh) | 2021-09-10 |
WO2021179977A1 (zh) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113381870B (zh) | 报文处理方法和设备 | |
US10834013B2 (en) | Network slice management | |
WO2020062959A1 (zh) | 配置数据的方法及装置 | |
WO2021218144A1 (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN110324169A (zh) | 一种接口管理的方法和装置 | |
CN111753166A (zh) | 用于传送动态系统状态的查询代理 | |
Shafer | An architecture for network management using netconf and yang | |
US20070288512A1 (en) | Resource management program, resource management process, and resource management apparatus | |
US6233730B1 (en) | Revision compatibility between programs | |
CN114244654B (zh) | 一种url的转发方法、装置、设备及计算机存储介质 | |
US11552868B1 (en) | Collect and forward | |
US9129035B2 (en) | Systems, methods, and apparatus for accessing object representations of data sets | |
US8880578B2 (en) | Hardware independent simple network management protocol based on a generic data collection scheme | |
KR20180058458A (ko) | Tosca 기반의 정보 모델을 이용하는 가상화 네트워크 기능 관리 방법, 가상 네트워크 기능 관리자, 및 이를 이용한 네트워크 기능 가상화 시스템 | |
US11936523B2 (en) | Incremental network intent provisioning | |
US7734640B2 (en) | Resource discovery and enumeration in meta-data driven instrumentation | |
CN116155978A (zh) | 多注册中心适配方法、装置、电子设备及存储介质 | |
US11706156B2 (en) | Method and system for changing resource state, terminal, and storage medium | |
US11711262B2 (en) | Server to support client data models from heterogeneous data sources | |
US7562084B2 (en) | System and method for mapping between instrumentation and information model | |
TWI540861B (zh) | 管理系統與管理方法 | |
CN111988179B (zh) | 一种yang模型管理系统、方法和存储介质 | |
KR20150123074A (ko) | 데이터 분산 서비스에서의 기능 모듈 모듈화 방법 및 모듈화 장치 | |
CN115118569B (zh) | 请求处理方法、装置、网管设备及可读存储介质 | |
US20240007876A1 (en) | Restoration of a network slice |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |