报文转发方法及终端设备、计算机存储介质技术

技术编号:28429443 阅读:19 留言:0更新日期:2021-05-11 18:38
本申请涉及报文转发技术领域,公开了报文转发方法及终端设备、计算机存储介质。该方法包括:利用FPGA和/或物理网口接收数据报文,并将数据报文发送至DPDK模块;其中,FPGA接收的数据报文通过PCIE驱动发送至DPDK模块;利用DPDK模块将数据报文进行解析,并根据解析结果将数据报文发送至物理网口或FPGA;利用物理网口或FPGA将数据报文进行转发。通过上述方式,能够解决非网口使用DPDK做网络报文转发的问题,提高报文转发设备的性能、通用性以及灵活性。

【技术实现步骤摘要】
报文转发方法及终端设备、计算机存储介质
本申请涉及报文转发
,特别是涉及一种报文转发方法及终端设备、计算机存储介质。
技术介绍
目前在市场上对于DPDK(DataPlaneDevelopmentKit,数据平面开发套件)的使用都是针对物理网口,应用于网络报文转发的场景,提高转发效率降低硬件成本,对于非网口的场景暂时还没有。目前在相关技术上,对于DPDK做报文转发的场景,两侧都是物理网口,网络报文从一个物理网口进,经过DPDK转发后从另外一个物理网口出去,两个物理网口都被DPDK接管。
技术实现思路
为了解决上述问题,本申请提供报文转发方法及终端设备、计算机存储介质,能够解决非网口使用DPDK做网络报文转发的问题,提高报文转发设备的性能、通用性以及灵活性。本申请采用的一种技术方案是提供一种报文转发方法,该方法包括:利用FPGA和/或物理网口接收数据报文,并将数据报文发送至DPDK模块;其中,FPGA接收的数据报文通过PCIE驱动发送至DPDK模块;利用DPDK模块将数据报文进行解析,并根据解析结果将数据报文发送至物理网口或FPGA;利用物理网口或FPGA将数据报文进行转发。其中,DPDK模块包括数据分发模块;利用FPGA和/或物理网口接收数据报文,并将数据报文发送至DPDK模块,包括:利用FPGA和/或物理网口接收数据报文,并将数据报文发送数据分发模块。其中,DPDK模块包括报文处理模块;利用FPGA和/或物理网口接收数据报文,并将数据报文发送数据分发模块之后,包括:利用数据分发模块确认数据报文的转发端口,基于转发端口将数据报文发送至报文处理模块。其中,利用DPDK模块将数据报文进行解析,并根据解析结果将数据报文发送至物理网口或FPGA,包括:利用报文处理模块对数据报文进行解析,并根据解析结果将数据报文发送至物理网口或FPGA。其中,利用DPDK模块将数据报文进行解析,并根据解析结果将数据报文发送至物理网口或FPGA,包括:利用DPDK模块通过KNI模块将数据报文发送至内核态协议栈,以使内核态协议栈基于数据报文确认转发端口;基于转发端口将数据报文发送至物理网口或FPGA。其中,利用DPDK模块通过KNI模块将数据报文发送至内核态协议栈,还包括:利用KNI模块将数据报文进行格式转换;在转换后将数据报文发送至内核态协议栈。其中,KNI模块包括用户态KNI模块和内核态KNI模块;利用DPDK模块通过KNI模块将数据报文发送至内核态协议栈,还包括:在用户态KNI模块和内核态KNI模块之间使用队列的方式,将数据报文的指针发送至内核态协议栈。其中,利用FPGA和/或物理网口接收数据报文,并将数据报文发送至DPDK模块之前,包括:利用UIO技术将PCIE驱动映射至用户态,并基于PCIE驱动虚拟出网口。本申请采用的另一种技术方案是提供一种终端设备,该终端设备包括处理器以及与处理器连接的存储器;存储器用于存储程序数据,处理器用于执行程序数据,以实现如上述技术方案中提供的任一方法。本申请采用的另一种技术方案是提供一种计算机存储介质,该计算机存储介质用于存储程序数据,程序数据在被处理器执行时,用于实现如上述技术方案中提供的任一方法。本申请的有益效果是:区别于现有技术的情况,本申请的一种报文转发方法,该方法包括:利用FPGA接收数据报文,并通过PCIE驱动将数据报文发送至DPDK模块;DPDK模块将数据报文进行解析,并根据解析结果将数据报文通过PCIE驱动发送至FPGA;利用FPGA将数据报文进行转发。通过上述方式,利用DPDK模块收发来自物理网口和/或FPGA通过PCIE驱动虚拟出的网口的数据报文,能够解决非网口使用DPDK做网络报文转发的问题,提高报文转发设备的性能、通用性以及灵活性。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:图1是本申请提供的报文转发方法一实施例的流程示意图;图2是本申请提供的报文转发方法另一实施例的流程示意图;图3是本申请提供的终端设备一实施例的结构示意图;图4是本申请提供的计算机存储介质一实施例的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。参阅图1,图1是本申请提供的报文转发方法一实施例的流程示意图,该方法包括:步骤11:利用FPGA和/或物理网口接收数据报文,并将数据报文发送至DPDK模块。其中,FPGA接收的数据报文通过PCIE驱动发送至DPDK模块。在本实施例中,报文转发设备可以是网络设备,如交换机、路由器等。不同于现有技术,本实施例中报文转发设备没有网络接口。报文转发设备包括FPGA、PCIE总线、网口以及DPDK模块。FPGA通过PCIE驱动与DPDK模块实现跨协议通信。FPGA可以包括多个输入接口、多个缓存模块和多个输出接口。当FPGA中的任一数据接口接收到数据报文时,可以先将数据报文存在相应的缓存模块中,然后将数据报文的包头进行处理,组成数据包描述符。然后通过PCIE驱动将数据包描述符发送至DPDK模块。步骤12:利用DPDK模块将数据报文进行解析,并根据解析结果将数据报文发送至物理网口或FPGA。在一些实施例中,DPDK中采用纯轮询模式进行数据包收发,所有的收发包有关的中断在物理端口(本实施例的FPGA或物理网口)初始化的时候都会关闭。物理端口上的每一个收包队列,都会有一个对应的由收包描述符组成的软件队列来进行硬件和软件的交互。DPDK驱动程序负责初始化好每一个收包描述符,其中包含把包缓冲内存块的物理地址填充到收包描述符对应的位置,并把对应的收包成功标志复位,通知FPGA把收到的包进行填充。FPGA将收到的包一一填充到对应的收包描述符表示的缓冲内存块中,将必要信息填充到收包描述符内,标记好收包成功标志。若一个缓冲区内存块大小不够存放一个完整数据包时,可能需要多个收包描述符来处理一个包。针对每一个收包队列,DPDK都会有一个对应的软件线本文档来自技高网...

【技术保护点】
1.一种报文转发方法,其特征在于,所述方法包括:/n利用FPGA和/或物理网口接收数据报文,并将所述数据报文发送至DPDK模块;其中,所述FPGA接收的数据报文通过PCIE驱动发送至所述DPDK模块;/n利用所述DPDK模块将所述数据报文进行解析,并根据解析结果将所述数据报文发送至所述物理网口或所述FPGA;/n利用所述物理网口或所述FPGA将所述数据报文进行转发。/n

【技术特征摘要】
1.一种报文转发方法,其特征在于,所述方法包括:
利用FPGA和/或物理网口接收数据报文,并将所述数据报文发送至DPDK模块;其中,所述FPGA接收的数据报文通过PCIE驱动发送至所述DPDK模块;
利用所述DPDK模块将所述数据报文进行解析,并根据解析结果将所述数据报文发送至所述物理网口或所述FPGA;
利用所述物理网口或所述FPGA将所述数据报文进行转发。


2.根据权利要求1所述的方法,其特征在于,
所述DPDK模块包括数据分发模块;
所述利用FPGA和/或物理网口接收数据报文,并将所述数据报文发送至DPDK模块,包括:
利用FPGA和/或物理网口接收数据报文,并将所述数据报文发送所述数据分发模块。


3.根据权利要求2所述的方法,其特征在于,
所述DPDK模块包括报文处理模块;
所述利用FPGA和/或物理网口接收数据报文,并将所述数据报文发送所述数据分发模块之后,包括:
利用所述数据分发模块确认所述数据报文的转发端口,基于所述转发端口将所述数据报文发送至所述报文处理模块。


4.根据权利要求3所述的方法,其特征在于,
所述利用所述DPDK模块将所述数据报文进行解析,并根据解析结果将所述数据报文发送至所述物理网口或所述FPGA,包括:
利用所述报文处理模块对所述数据报文进行解析,并根据解析结果将所述数据报文发送至所述物理网口或所述FPGA。


5.根据权利要求1所述的方法,其特征在于,
所述利用所述DPDK模块将所述数据报文进行解析,并根据解析结果将所述数据报文发送至所述物...

【专利技术属性】
技术研发人员:祝国强曾崇陈海燕
申请(专利权)人:深圳市中网信安技术有限公司
类型:发明
国别省市:广东;44

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

1