一种网络设备能力开放编程方法及系统与流程

文档序号:34584331发布日期:2023-06-28 15:04阅读:30来源:国知局
一种网络设备能力开放编程方法及系统与流程

本发明涉及网络通信,尤其涉及一种网络设备能力开放编程方法及系统。


背景技术:

1、传统网络不支持可编程,导致新型网络协议、网络应用、网络业务的研究、开发和部署缓慢,近年来sdn(software defined network)软件定义网络是网络通信研究的热门领域。sdn最开始提出控制平面和数据平面分离思想,采用openflow协议实现控制平面的可编程。但openflow协议不支持数据平面可编程,同时协议可扩展性差,新增一种协议类型或字段需要对openflow进行扩展。目前网络领域最新提出了p4编程语言以及目标和协议无关的p4runtime协议,实现了网络的数据平面和控制平面的可编程和协议灵活可扩展。

2、p4(programming protocol-independent packet processors)和p4runtime虽然能完美的实现软件定义网络,但目前仍处于实验研究阶段,工程应用进展缓慢。目前网络芯片很多都不支持p4,国产芯片更是不支持p4,只能采购国外芯片进行科研实验。虽然目前完全支持可编程的芯片比较少,但其实现在很多网络芯片是支持部分功网络能可编程的,只是各个芯片厂家提供的可编程方式和可编程接口不一样,没形成统一标准。而用户的业务需求是多样性的,某些业务只需要部分网络功能可编程就能实现,不需要网络设备所有功能都要完全支持可编程。同时p4只针对网络芯片进行软件定义,而网络设备还包含cpu、内存、存储、网络芯片、fpga及其它异构芯片,目前缺少对网络设备统一的异构编程方式。

3、因此,现有技术还有待改进和提高。


技术实现思路

1、本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种网络设备能力开放编程方法及系统,旨在解决现有技术中网络芯片各厂家提供的可编程方式和可编程接口不一样,没形成统一标准,无法满足用户多样性的可编程需求,缺少对网络设备统一的异构编程方式的问题。

2、为了解决上述技术问题,本发明所采用的技术方案如下:

3、第一方面,本发明提供一种网络设备能力开放编程方法,其中,所述方法包括:

4、采用能力级描述方式对网络设备支持与开放的计算、存储、网络及其它异构资源进行描述;

5、通过统一编程方式对网络设备计算、存储、网络及其它异构资源进行异构统一编程,开发网络应用程序;

6、采用统一运行框架对所述网络应用程序进行加载、解析和运行。

7、在一种实现方式中,所述统一运行框架包括runtime client和runtime server解析运行框架两个部分,runtime server集成在网络设备中,为网络设备提供程序解析、适配和运行;runtime client集成在控制器中,为网络应用/服务提供统一编程接口;runtimeclient和runtime server通过rpc远程过程调用协议进行交互。

8、在一种实现方式中,所述runtime client包括接口层和协议层,所述runtimeserver包括协议层、解释层和适配层;

9、所述接口层用于向上给网络应用/服务提供统一编程接口,所述解析层用于实现对编程指令的解析;所述适配层用于实现对指令的适配。

10、在一种实现方式中,所述采用能力级描述方式对网络设备支持与开放的计算、存储、网络及其它异构资源进行描述,包括:

11、采用yaml标记语言对所述网络设备支持与开放的计算、存储、网络及其它异构资源进行描述,以对所述网络设备支持和开发的可编程功能的参数、规格、说明以及api接口进行标记;

12、所述能力级描述以文件方式存储在网络设备中,在runtime client与runtimeserver首次握手通信时读取所述网络设备的能力级描述文件,以使得用户或开发者根据能力级描述文件中的能力级描述对网络设备进行编程,开发网络应用/服务程序。

13、在一种实现方式中,所述可编程功能包括:设备基础功能、缓存功能、寄存器功能、存储功能、网络功能、cpu以及其它功能。

14、在一种实现方式中,所述通过统一编程方式对网络设备计算、存储、网络及其它异构资源进行异构统一编程,开发网络应用程序,包括:

15、对于内存功能的操作,对所述网络设备在能力级描述中内存的能力描述进行编程处理,得到支持数字、字符串、列表、字典类型的读写的代码程序;

16、对于寄存器功能的操作,对所述网络设备在能力级描述中寄存器的名称、大小、读写属性的能力描述进行编程处理,得到可对寄存器功能进行读写操作的代码程序;

17、对于存储功能的操作,对所述网络设备在能力级描述中文件存储、块存储、对象存储的能力描述进行编程处理,得到可对文件存储、块存储、对象存储进行创建、读、写、关闭和删除操作的代码程序。

18、在一种实现方式中,所述通过统一编程方式对网络设备计算、存储、网络及其它异构资源进行异构统一编程,开发网络应用程序,还包括:

19、对于网络功能的操作,对所述网络设备在能力级描述中报文结构、报文收发以及流表结构的能力描述进行编程处理,得到可对报文结构、报文收发以及流表结构进行定义和流表的读、写、删除操作的代码程序;

20、对于cpu功能的操作,对所述网络设备在能力级描述中自定义函数的能力描述进行编程处理,得到可进行函数内支持运算、分支、循环及调用操作的代码程序。

21、第二方面,本发明实施例还提供一种网络设备能力开放编程系统,其中,所述系统包括由网络控制器与网络设备组成的统一框架,所述系统包括:

22、能力级描述模块,用于采用能力级描述方式对网络设备支持与开放的计算、存储、网络及其它异构资源进行描述;

23、代码编程模块,用于通过统一编程方式对网络设备计算、存储、网络及其它异构资源进行异构统一编程,开发网络应用程序;

24、程序运行模块,用于采用统一运行框架对所述网络应用程序进行加载、解析和运行。

25、在一种实现方式中,所述统一运行框架包括runtime client和runtime server解析运行框架两个部分,runtime server集成在网络设备中,为网络设备提供程序解析、适配和运行;runtime client集成在控制器中,为网络应用/服务提供统一编程接口;runtimeclient和runtime server通过rpc远程过程调用协议进行交互。

26、在一种实现方式中,所述runtime client包括接口层和协议层,所述runtimeserver包括协议层、解释层和适配层;

27、所述接口层用于向上给网络应用/服务提供统一编程接口,所述解析层用于实现对编程指令的解析;所述适配层用于实现对指令的适配。

28、在一种实现方式中,所述能力级描述模块,包括:

29、描述单元,用于采用yaml标记语言对所述网络设备支持与开放的计算、存储、网络及其它异构资源进行描述,以对所述网络设备支持和开发的可编程功能的参数、规格、说明以及api接口进行标记;

30、存储单元,用于所述能力级描述以文件方式存储在网络设备中,在runtimeclient与runtime server首次握手通信时读取所述网络设备的能力级描述文件,以使得用户或开发者根据能力级描述文件中的能力级描述对网络设备进行编程,开发网络应用/服务程序。

31、在一种实现方式中,所述可编程功能包括:设备基础功能、缓存功能、寄存器功能、存储功能、网络功能、cpu以及其它功能。

32、在一种实现方式中,所述代码编程模块,包括:

33、第一编程模块,用于对于内存功能的操作,对所述网络设备在能力级描述中内存的能力描述进行编程处理,得到支持数字、字符串、列表、字典类型的读写的代码程序;

34、第二编程模块,用于对于寄存器功能的操作,对所述网络设备在能力级描述中寄存器的名称、大小、读写属性的能力描述进行编程处理,得到可对寄存器功能进行读写操作的代码程序;

35、第三编程模块,用于对于存储功能的操作,对所述网络设备在能力级描述中文件存储、块存储、对象存储的能力描述进行编程处理,得到可对文件存储、块存储、对象存储进行创建、读、写、关闭和删除操作的代码程序。

36、在一种实现方式中,所述代码编程模块,包括:

37、第四编码模块,用于对于网络功能的操作,对所述网络设备在能力级描述中报文结构、报文收发以及流表结构的能力描述进行编程处理,得到可对报文结构、报文收发以及流表结构进行定义和流表的读、写、删除操作的代码程序;

38、第五编码模块,用于对于cpu功能的操作,对所述网络设备在能力级描述中自定义函数的能力描述进行编程处理,得到可进行函数内支持运算、分支、循环及调用操作的代码程序。

39、有益效果:与现有技术相比,本发明提供了一种网络设备能力开放编程方法,所述方法包括:采用能力级描述方式对网络设备支持与开放的计算、存储、网络及其它异构资源进行描述;通过统一编程方式对网络设备计算、存储、网络及其它异构资源进行异构统一编程,开发网络应用程序;采用统一运行框架对所述网络应用程序进行加载、解析和运行。本发明可实现将网络设备支持的可编程能力开放给用户,并支持计算、存储、网络及其它异构资源的抽象描述及异构统一编程。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1