网口配置处理方法、装置、电子设备和存储介质与流程

专利2023-03-02  96



1.本技术涉及数据处理领域,具体而言,涉及一种网口配置处理方法、装置、电子设备和存储介质。


背景技术:

2.随着当前应用丰富多样及移动终端的普及,对网络安全及通信设备的性能要求越来越高,性能的高低直接影响设备的稳定性和功能的完善性,dpdk作为一种数据平面开发工具集,以其设计优势有效提升网络数据包的处理性能而被广泛应用到各种网络设备开发中,但传统pcie网卡普遍使用单网口通过单pcie物理通道跟cpu连接的设计方式,当网口速率较低时还能满足,但当网口速率比较高时,一个网口跟cpu之间只有一个pcie通道的物理带宽将成为网口性能提升的瓶颈。


技术实现要素:

3.本技术实施例的目的在于提供一种网口配置处理方法、装置、电子设备和存储介质,用以克服网口的硬件带宽瓶颈,进而提高网口的带宽,从而提高网口的性能。
4.第一方面,本发明提供一种网口配置处理方法,所述方法包括:
5.扫描用于将网口接收的目标报文传输至cpu的fpga卡;
6.初始化所述fpga卡与所述cpu之间的pcie通道,其中,对所述fpga卡的第一个所述pcie通道执行向上注册及初始化第一个所述pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个所述pcie通道注册的网口;
7.当检测到所述上层应用模扫描到第一个所述pcie通道注册的网口时,基于所述从pcie通道的接收队列挂在第一个所述pcie通道下,以扩展第一个所述pcie通道的接收队列;
8.初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文;
9.初始化所述fpga卡,其中,对从pcie通道对应的fpga phy模块进行复位解复位。
10.在本技术第一方面中,通过扫描用于将网口接收的目标报文传输至cpu的fpga卡,进而能够初始化所述fpga卡与所述cpu之间的pcie通道,其中,对所述fpga卡的第一个所述pcie通道执行向上注册及初始化第一个所述pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个所述pcie通道注册的网口,另一方面,当检测到所述上层应用模扫描到第一个所述pcie通道注册的网口时,通过基于所述从pcie通道的接收队列挂在第一个所述pcie通道下,能够扩展第一个所述pcie通道的接收队列,进而通过初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,能够使得经所述从pcie通道的接收队列上传的报文,和
经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,最后,通过初始化所述fpga卡,能够对从pcie通道对应的fpga phy模块进行复位解复位。
11.与现有技术相比,现有技术是一个网口仅通过一个pcie通道将其接收到报文发送给cpu,因此其带宽受限,然而本技术能够利用两个或两个以上的个pcie通道将网口接收到报文发送给cpu,从而能够提高网口的带宽,从而提高网口的性能。
12.在本技术第一方面中,作为一种可选的实施方式,所述初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,包括:
13.基于rx_queue_setup指令或rx_init指令初始化所述第一个所述pcie通道的接收队列信息;
14.基于rx_queue_setup指令或rx_init指令初始化所述从pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。
15.在本可选的实施方式中,基于rx_queue_setup指令或rx_init指令能够初始化所述第一个所述pcie通道的接收队列信息,并且基于rx_queue_setup指令或rx_init指令能够初始化所述从pcie通道的接收队列信息,进而通过接收队列信息的初始化,能够使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。
16.在本技术第一方面中,作为一种可选的实施方式,所述基于rx_queue_setup指令或rx_init指令初始化所述从pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,包括:
17.将与所述从pcie通道的接收队列操作相关的硬件信息保存在所述从pcie通道的接收队列信息中;
18.将与所述从pcie通道的接收队列操作无相关的软件信息配置为与第一个所述pcie通道的软件信息相同并保存在所述从pcie通道的接收队列信息中,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。
19.在本可选的实施方式中,通过将与所述从pcie通道的接收队列操作相关的硬件信息保存在所述从pcie通道的接收队列信息中,和将与所述从pcie通道的接收队列操作无相关的软件信息配置为与第一个所述pcie通道的软件信息相同并保存在所述从pcie通道的接收队列信息中,能够使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。
20.在可选的实施方式中,所述基于rx_queue_setup指令或rx_init指令初始化所述从pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,还包括:
21.获取所述自定义变量的空间地址,将所述自定义变量的空间地址保存在所述从pcie通道的接收队列信息中。
22.第二方面,本发明提供一种网口配置处理装置,所述装置包括:
23.扫描模块,用于扫描用于将网口接收的目标报文传输至cpu的fpga卡;
24.第一初始化模块,用于初始化所述fpga卡与所述cpu之间的pcie通道,其中,对所述fpga卡的第一个所述pcie通道执行向上注册及初始化第一个所述pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个所述pcie通道注册的网口;
25.扩展模块,用于当检测到所述上层应用模扫描到第一个所述pcie通道注册的网口时,基于所述从pcie通道的接收队列挂在第一个所述pcie通道下,以扩展第一个所述pcie通道的接收队列;
26.第二初始化模块,用于初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文;
27.第三初始化模块,用于初始化所述fpga卡,其中,对从pcie通道对应的fpga phy模块进行复位解复位。
28.在本技术第一方面中,通过扫描用于将网口接收的目标报文传输至cpu的fpga卡,进而能够初始化所述fpga卡与所述cpu之间的pcie通道,其中,对所述fpga卡的第一个所述pcie通道执行向上注册及初始化第一个所述pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个所述pcie通道注册的网口,另一方面,当检测到所述上层应用模扫描到第一个所述pcie通道注册的网口时,通过基于所述从pcie通道的接收队列挂在第一个所述pcie通道下,能够扩展第一个所述pcie通道的接收队列,进而通过初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,能够使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,最后,通过初始化所述fpga卡,能够对从pcie通道对应的fpga phy模块进行复位解复位。
29.与现有技术相比,现有技术是一个网口仅通过一个pcie通道将其接收到报文发送给cpu,因此其带宽受限,然而本技术能够利用两个或两个以上的个pcie通道将网口接收到报文发送给cpu,从而能够提高网口的带宽。
30.在本技术第二方面中,作为一种可选的实施方式,所述第二初始化模块,包括:
31.第一初始化子模块,用于基于rx_queue_setup指令或rx_init指令初始化所述第一个所述pcie通道的接收队列信息;
32.第二初始化子模块,用于基于rx_queue_setup指令或rx_init指令初始化所述从pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。
33.在本可选的实施方式中,基于rx_queue_setup指令或rx_init指令能够初始化所述第一个所述pcie通道的接收队列信息,并且基于rx_queue_setup指令或rx_init指令能
够初始化所述从pcie通道的接收队列信息,进而通过接收队列信息的初始化,能够使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。
34.在本技术第二方面中,作为一种可选的实施方式,所述第二初始化子模块,包括:
35.第一保存模块,用于将与所述从pcie通道的接收队列操作相关的硬件信息保存在所述从pcie通道的接收队列信息中;
36.第二保存模块,用于将与所述从pcie通道的接收队列操作无相关的软件信息配置为与第一个所述pcie通道的软件信息相同并保存在所述从pcie通道的接收队列信息中,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。
37.在本可选的实施方式中,通过将与所述从pcie通道的接收队列操作相关的硬件信息保存在所述从pcie通道的接收队列信息中,和将与所述从pcie通道的接收队列操作无相关的软件信息配置为与第一个所述pcie通道的软件信息相同并保存在所述从pcie通道的接收队列信息中,能够使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。
38.在本技术第二方面中,作为一种可选的实施方式,所述第二初始化子模块,还包括:
39.第三保存模块,用于获取所述自定义变量的空间地址,将所述自定义变量的空间地址保存在所述从pcie通道的接收队列信息中。
40.第三方面,本发明提供一种电子设备,包括:
41.处理器;以及
42.存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行如前述实施方式任一项所述的网口配置处理方法。
43.本技术第三方面的电子设备通过执行网口配置处理方法,能够扫描用于将网口接收的目标报文传输至cpu的fpga卡,进而能够初始化所述fpga卡与所述cpu之间的pcie通道,其中,对所述fpga卡的第一个所述pcie通道执行向上注册及初始化第一个所述pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个所述pcie通道注册的网口,另一方面,当检测到所述上层应用模扫描到第一个所述pcie通道注册的网口时,通过基于所述从pcie通道的接收队列挂在第一个所述pcie通道下,能够扩展第一个所述pcie通道的接收队列,进而通过初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,能够使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,最后,通过初始化所述fpga卡,能够对从pcie通道对应的fpga phy模块进行复位解复位。
44.与现有技术相比,现有技术是一个网口仅通过一个pcie通道将其接收到报文发送给cpu,因此其带宽受限,然而本技术能够利用两个或两个以上的个pcie通道将网口接收到报文发送给cpu,从而能够提高网口的带宽。
45.第四方面,本发明提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如前述实施方式任一项所述的网口配置处理方法。
46.本技术第四方面的存储介质通过执行网口配置处理方法,能够扫描用于将网口接收的目标报文传输至cpu的fpga卡,进而能够初始化所述fpga卡与所述cpu之间的pcie通道,其中,对所述fpga卡的第一个所述pcie通道执行向上注册及初始化第一个所述pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个所述pcie通道注册的网口,另一方面,当检测到所述上层应用模扫描到第一个所述pcie通道注册的网口时,通过基于所述从pcie通道的接收队列挂在第一个所述pcie通道下,能够扩展第一个所述pcie通道的接收队列,进而通过初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,能够使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,最后,通过初始化所述fpga卡,能够对从pcie通道对应的fpga phy模块进行复位解复位。
47.与现有技术相比,现有技术是一个网口仅通过一个pcie通道将其接收到报文发送给cpu,因此其带宽受限,然而本技术能够利用两个或两个以上的个pcie通道将网口接收到报文发送给cpu,从而能够提高网口的带宽。
附图说明
48.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
49.图1是本技术实施例公开的一种网口配置处理方法的流程示意图;
50.图2是本技术实施例公开的一种网口报文通过多pcie上送物理框架图
51.图3是本技术实施例公开的一种网口配置处理装置的结构示意图;
52.图4是本技术实施例公开的一种电子设备的结构示意图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
54.实施例一
55.请参阅图1,图1是本技术实施例公开的一种网口配置处理方法的流程示意图,如图1所示,本技术实施例的方法包括以下步骤:
56.101、扫描用于将网口接收的目标报文传输至cpu的fpga卡;
57.102、初始化fpga卡与cpu之间的pcie通道,其中,对fpga卡的第一个pcie通道执行向上注册及初始化第一个pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个pcie通道注册的网口;
58.103、当检测到上层应用模扫描到第一个pcie通道注册的网口时,基于从pcie通道的接收队列挂在第一个pcie通道下,以扩展第一个pcie通道的接收队列;
59.104、初始化从pcie通道的接收队列信息和第一个pcie通道的接收队列信息,以使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文;
60.105、初始化fpga卡,其中,对从pcie通道对应的fpga phy模块进行复位解复位。
61.在本技术实施例中,cpu(central processing uni)是指中央处理器,例如,cpu可以amd系列的中央处理器。
62.在本技术实施例中,网口是指网络接口,例如,网口可以是网卡上的接口硬件,其中,外部计算机向本地计算机发送的报文,经过网卡上的接口硬件可被网卡传输至本地计算机的cpu,使得本地计算机的cpu对该报文进行处理。
63.在本技术实施例中,fpga(field programmable gate array)是指现场可编程逻辑门阵列,进一步地,fpga卡是指通过fpga芯片实现标准网卡收发包功能并定制特定功能的卡,在本技术实施例中,fpga卡可充当网卡。
64.在本技术实施例中,pcie是指一种高速串行计算机扩展总线标准,而pcie通道是指采用高速串行计算机扩展总线标准进行通信的通信通道。
65.在本技术实施例中,针对步骤101,如图2所示,图2是本技术实施例公开的一种网口报文通过多pcie上送物理框架图。如图2所示,网口通过fpga与cpu之间的pcie1通道和pcie2通道,可将报文传输至cpu。
66.在本技术实施例中,针对步骤101,扫描用于将网口接收的目标报文传输至cpu的fpga卡的一种具体方式是:
67.基于dpdk(data plane development kit,数据面软件开发套件),扫描用于将网口接收的目标报文传输至cpu的fpga卡。
68.在本技术实施例中,针对步骤102,为了能够初始化fpga卡与cpu之间的pcie通道,本技术实施例的方法还包括以下步骤:
69.扫描fpga卡的fpga卡与cpu之间的pcie通道,其中,每扫描到一个pcie通道执行步骤102;初始化fpga卡与cpu之间的pcie通道操作。
70.在本技术实施例中,fpga卡与cpu之间的pcie通道至少包括2个pcie通道,例如,可以是2个,也可以是3个,进一步地,多个pcie通道可依次被扫描到,其中,最先扫描到的pcie通道为第一个pcie通道,而在第一个pcie通道之后扫描得到的pcie通道为从pcie通道。
71.在本技术实施例中,针对步骤102,对fpga卡的第一个pcie通道执行向上注册是指将第一个pcie通道注册到上层应用模块,用于告知上层应用模块第一个pcie通道与哪个网口关联,其中,由于从pcie通道对应的网口保存在自定义变量中,而没有注册到上层应用模块,因此上层应用模扫描注册的网口时只能扫描到第一个pcie通道注册的网口,实现多个pcie只出一个网口的目的。
72.在本技术实施例中,针对步骤102,对fpga卡的第一个pcie通道执行向上注册的一种具体方式为;
73.基于dpdk对fpga卡的第一个pcie通道执行向上注册。
74.在本技术实施例中,初始化第一个pcie通道对应的网口的一种具体方式为:
75.基于dpdk对初始化第一个pcie通道对应的网口。
76.在本技术实施例中,针对步骤103,当检测到上层应用模扫描到第一个pcie通道注册的网口时,通过调用dpdk统一的获取网口硬件信息接口dev_infos_get,进而能够在获取网口硬件信息接口dev_infos_get中对接收队列数量做特殊处理,即基于从pcie通道的接收队列挂在第一个pcie通道下,以扩展第一个pcie通道的接收队列。
77.在本技术实施例中,针对步骤103,由于只有第一个pcie通道向上注册了网口,所以为了使得从pcie通道的接收队列能够用于传输数据,从pcie通道对应的接收队列也要挂在注册的这个网口上,即扩展第一个pcie通道的接收队列。例如,假设第一个pcie通道对应有16个接收队列,从pcie通道有16个接收队列,通过将从pcie通道的接收队列挂在第一个pcie通道下,从而第一个pcie通道的接收队列经扩展后,总接收队列为16*2,其中,如果从pcie通道的数量为3,则总接收队列为16*3,以此类推。
78.在本技术实施例中,通过扫描用于将网口接收的目标报文传输至cpu的fpga卡,进而能够初始化fpga卡与cpu之间的pcie通道,其中,对fpga卡的第一个pcie通道执行向上注册及初始化第一个pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个pcie通道注册的网口,另一方面,当检测到上层应用模扫描到第一个pcie通道注册的网口时,通过基于从pcie通道的接收队列挂在第一个pcie通道下,能够扩展第一个pcie通道的接收队列,进而通过初始化从pcie通道的接收队列信息和第一个pcie通道的接收队列信息,能够使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文,最后,通过初始化fpga卡,能够对从pcie通道对应的fpga phy模块进行复位解复位。
79.与现有技术相比,现有技术是一个网口仅通过一个pcie通道将其接收到报文发送给cpu,因此其带宽受限,然而本技术能够利用两个或两个以上的个pcie通道将网口接收到报文发送给cpu,从而能够提高网口的带宽。
80.在本技术实施例中,作为一种可选的实施方式,步骤104:初始化从pcie通道的接收队列信息和第一个pcie通道的接收队列信息,以使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文,包括:
81.基于rx_queue_setup指令或rx_init指令初始化第一个pcie通道的接收队列信息;
82.基于rx_queue_setup指令或rx_init指令初始化从pcie通道的接收队列信息,以使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文。
83.在本可续的实施方式中,rx_queue_setup指令或rx_init指令为dpdk提供的指令,其详细介绍请参阅现有技术。
84.在本可选的实施方式中,基于rx_queue_setup指令或rx_init指令能够初始化第一个pcie通道的接收队列信息,并且基于rx_queue_setup指令或rx_init指令能够初始化从pcie通道的接收队列信息,进而通过接收队列信息的初始化,能够使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文。
85.在本技术实施例中,作为一种可选的实施方式,基于rx_queue_setup指令或rx_init指令初始化从pcie通道的接收队列信息,以使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文,包括:
86.将与从pcie通道的接收队列操作相关的硬件信息保存在从pcie通道的接收队列信息中;
87.将与从pcie通道的接收队列操作无相关的软件信息配置为与第一个pcie通道的软件信息相同并保存在从pcie通道的接收队列信息中,以使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文。
88.在本可续的实施方式中,与从pcie通道的接收队列操作相关的硬件信息包括队列描述符基址、队列描述符索引。
89.在本可续的实施方式中,与从pcie通道的接收队列操作无相关的软件信息可以是网口id(port_id)。
90.在本可选的实施方式中,作为一个示例,按一个pcie通道有16个接收队列算,如果fpga卡跟cpu之间有两个pcie通道,第一个pcie通道注册的网口对应的接收队列数量应该为16*2=32,其中前16个接收队列为第一个pcie通道上的接收队列,之后的16个接收队列为第二个pcie通道(从pcie通道)的队列,因此跟pcie通道相关的硬件信息,比如队列描述符基址、队列描述符索引等,前16个接收队列rxq的接收队列信息保存的都是第一个pcie通道对应的寄存器地址,之后的16个接收队列rxq的接收队列信息保存的都是第二个pcie通道对应的寄存器地址;而前16个接收队列rxq的接收队列信息中的软件相关信息和后16个接收队列rxq的接收队列信息中的软件相关信息一样,这样当系统在处理后16个接收队列rxq从第二个pcie通道收到的报文时,才能把报文当做第一个pcie通道注册的网口收到的报文上送给上层处理。
91.由此可见,通过将与从pcie通道的接收队列操作相关的硬件信息保存在从pcie通道的接收队列信息中,和将与从pcie通道的接收队列操作无相关的软件信息配置为与第一个pcie通道的软件信息相同并保存在从pcie通道的接收队列信息中,能够使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文。
92.在可选的实施方式中,基于rx_queue_setup指令或rx_init指令初始化从pcie通道的接收队列信息,以使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文,还包括以下子步骤:
93.获取自定义变量的空间地址,将自定义变量的空间地址保存在从pcie通道的接收队列信息中。
94.在本技术实施例中,针对步骤105:由于从pcie通道由于没有向上层注册网口,所以上层无法通过对其网口执行up操作,本技术实施例通过对从pcie通道的fpga phy模块进行复位解复位操作,能够起到up操作类似的作用。
95.本实例基于全自主国产化应用检测产品,阐述使用本发明提出的一种多个pcie上送的一个网口报文的软件处理方法,有效扩展网卡接口硬件带宽瓶颈,而实现接口性能的提升。
96.下面描述结合本技术实施例的网口配置处理方法的网口上传报文的过程,具体地:
97.1.系统启动,默认配置参数为31核收包,绑定收包核到宿主机的2~32核,4g大页内存,设置dpdk_init为true(以dpdk方式收包),物理网卡的收包队列,默认设置32个。
98.2.通过物理网卡,将用户的流量导入到具体产品的上层应用模块。
99.3.报文到达网卡,网卡的dma模块通过提前设置的rss,将报文hash到物理网卡的32个队列上。
100.4.dpdk通过在物理网卡的32个队列上进行收包,并根据配置的安全服务链的规则进行流表匹配。
101.5.流表匹配动作成功之后,报文将会转发到pcie通道的接收队列,系统针对该fpga卡支持配置一系列的安全流量分配规则,默认使用五元组分配方式,其中,规则支持得选项有,三元组;五元组;基于该配置,可以将流量负载均衡到不同的pcie通道上。
102.6.报文在分流到不同的pcie上之后,经过本技术实施例所述的方法就可以把fpga卡接口上的报文收到软件,然后上送到上层应用模块进行不同的协议处理,最终,以网口采用pcie 2.0为例,其只有一个pcie通道,其物理带宽最大只有4.0gb/s,如果有两个pcie通道,物理带宽最大可以达到4.0gb/s*2=8.0gb/s。
103.需要说明的是,本技术实施例的方法可应用在防火墙、入侵检测等产品中。
104.实施例二
105.请参阅图3,图3是本技术实施例公开的一种网口配置处理装置的结构示意图,如图3所示,本技术实施例的装置包括以下功能模块:
106.扫描模块201,用于扫描用于将网口接收的目标报文传输至cpu的fpga卡;
107.第一初始化模块202,用于初始化fpga卡与cpu之间的pcie通道,其中,对fpga卡的第一个pcie通道执行向上注册及初始化第一个pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个pcie通道注册的网口;
108.扩展模块203,用于当检测到上层应用模扫描到第一个pcie通道注册的网口时,基于从pcie通道的接收队列挂在第一个pcie通道下,以扩展第一个pcie通道的接收队列;
109.第二初始化模块204,用于初始化从pcie通道的接收队列信息和第一个pcie通道的接收队列信息,以使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文;
110.第三初始化模块205,用于初始化fpga卡,其中,对从pcie通道对应的fpga phy模块进行复位解复位。
111.在本技术实施例中,通过扫描用于将网口接收的目标报文传输至cpu的fpga卡,进而能够初始化fpga卡与cpu之间的pcie通道,其中,对fpga卡的第一个pcie通道执行向上注册及初始化第一个pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个pcie通道注册的网口,另一方面,当检测到上层应用模扫描到第一个pcie通道注册的网口时,通过基于从pcie通道的接收队列挂在第一个pcie通道下,能够扩展第一个pcie通道的接收队列,进而通过初始化从pcie通道的接收队列信息和第一个pcie通道的接收队列信息,能够使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文,最后,通过初始化fpga卡,能够对从pcie通道对应的fpga phy模块
进行复位解复位。
112.与现有技术相比,现有技术是一个网口仅通过一个pcie通道将其接收到报文发送给cpu,因此其带宽受限,然而本技术能够利用两个或两个以上的个pcie通道将网口接收到报文发送给cpu,从而能够提高网口的带宽。
113.在本技术实施例中,作为一种可选的实施方式,第二初始化模块,包括:
114.第一初始化子模块,用于基于rx_queue_setup指令或rx_init指令初始化第一个pcie通道的接收队列信息;
115.第二初始化子模块,用于基于rx_queue_setup指令或rx_init指令初始化从pcie通道的接收队列信息,以使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文。
116.在本可选的实施方式中,基于rx_queue_setup指令或rx_init指令能够初始化第一个pcie通道的接收队列信息,并且基于rx_queue_setup指令或rx_init指令能够初始化从pcie通道的接收队列信息,进而通过接收队列信息的初始化,能够使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文。
117.在本技术实施例中,作为一种可选的实施方式,第二初始化子模块,包括:
118.第一保存模块,用于将与从pcie通道的接收队列操作相关的硬件信息保存在从pcie通道的接收队列信息中;
119.第二保存模块,用于将与从pcie通道的接收队列操作无相关的软件信息配置为与第一个pcie通道的软件信息相同并保存在从pcie通道的接收队列信息中,以使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文。
120.在本可选的实施方式中,通过将与从pcie通道的接收队列操作相关的硬件信息保存在从pcie通道的接收队列信息中,和将与从pcie通道的接收队列操作无相关的软件信息配置为与第一个pcie通道的软件信息相同并保存在从pcie通道的接收队列信息中,能够使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文。
121.在本技术实施例中,作为一种可选的实施方式,第二初始化子模块,还包括:
122.第三保存模块,用于获取自定义变量的空间地址,将自定义变量的空间地址保存在从pcie通道的接收队列信息中。
123.实施例三
124.请参阅图4,图4是本技术实施例公开的一种电子设备的结构示意图,如图4所示,本技术实施例的电子设备包括:
125.处理器301;以及
126.存储器302,配置用于存储机器可读指令,指令在由处理器301执行时,执行如前述实施方式任一项的网口配置处理方法。
127.本技术实施例的电子设备通过执行网口配置处理方法,能够扫描用于将网口接收的目标报文传输至cpu的fpga卡,进而能够初始化fpga卡与cpu之间的pcie通道,其中,对fpga卡的第一个pcie通道执行向上注册及初始化第一个pcie通道对应的网口,和将从pcie
通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个pcie通道注册的网口,另一方面,当检测到上层应用模扫描到第一个pcie通道注册的网口时,通过基于从pcie通道的接收队列挂在第一个pcie通道下,能够扩展第一个pcie通道的接收队列,进而通过初始化从pcie通道的接收队列信息和第一个pcie通道的接收队列信息,能够使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文,最后,通过初始化fpga卡,能够对从pcie通道对应的fpga phy模块进行复位解复位。
128.与现有技术相比,现有技术是一个网口仅通过一个pcie通道将其接收到报文发送给cpu,因此其带宽受限,然而本技术实施例能够利用两个或两个以上的个pcie通道将网口接收到报文发送给cpu,从而能够提高网口的带宽。
129.实施例四
130.本技术实施例提供一种存储介质,存储介质存储有计算机程序,计算机程序被处理器执行如前述实施方式任一项的网口配置处理方法。
131.本技术实施例的存储介质通过执行网口配置处理方法,能够扫描用于将网口接收的目标报文传输至cpu的fpga卡,进而能够初始化fpga卡与cpu之间的pcie通道,其中,对fpga卡的第一个pcie通道执行向上注册及初始化第一个pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个pcie通道注册的网口,另一方面,当检测到上层应用模扫描到第一个pcie通道注册的网口时,通过基于从pcie通道的接收队列挂在第一个pcie通道下,能够扩展第一个pcie通道的接收队列,进而通过初始化从pcie通道的接收队列信息和第一个pcie通道的接收队列信息,能够使得经从pcie通道的接收队列上传的报文,和经第一个pcie通道的接收队列上传的报文被识别为第一个pcie通道注册的网口上传的报文,最后,通过初始化fpga卡,能够对从pcie通道对应的fpga phy模块进行复位解复位。
132.与现有技术相比,现有技术是一个网口仅通过一个pcie通道将其接收到报文发送给cpu,因此其带宽受限,然而本技术实施例能够利用两个或两个以上的个pcie通道将网口接收到报文发送给cpu,从而能够提高网口的带宽。
133.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
134.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
135.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
136.需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使
用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
137.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
138.以上仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:
1.一种网口配置处理方法,其特征在于,所述方法包括:扫描用于将网口接收的目标报文传输至cpu的fpga卡;初始化所述fpga卡与所述cpu之间的pcie通道,其中,对所述fpga卡的第一个所述pcie通道执行向上注册及初始化第一个所述pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个所述pcie通道注册的网口;当检测到所述上层应用模扫描到第一个所述pcie通道注册的网口时,基于所述从pcie通道的接收队列挂在第一个所述pcie通道下,以扩展第一个所述pcie通道的接收队列;初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文;初始化所述fpga卡,其中,对从pcie通道对应的fpga phy模块进行复位解复位。2.如权利要求1所述的方法,其特征在于,所述初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,包括:基于rx_queue_setup指令或rx_init指令初始化所述第一个所述pcie通道的接收队列信息;基于rx_queue_setup指令或rx_init指令初始化所述从pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。3.如权利要求2所述的方法,其特征在于,所述基于rx_queue_setup指令或rx_init指令初始化所述从pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,包括:将与所述从pcie通道的接收队列操作相关的硬件信息保存在所述从pcie通道的接收队列信息中;将与所述从pcie通道的接收队列操作无相关的软件信息配置为与第一个所述pcie通道的软件信息相同并保存在所述从pcie通道的接收队列信息中,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。4.如权利要求3所述的方法,其特征在于,所述基于rx_queue_setup指令或rx_init指令初始化所述从pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文,还包括:获取所述自定义变量的空间地址,将所述自定义变量的空间地址保存在所述从pcie通道的接收队列信息中。5.一种网口配置处理装置,其特征在于,所述装置包括:扫描模块,用于扫描用于将网口接收的目标报文传输至cpu的fpga卡;
第一初始化模块,用于初始化所述fpga卡与所述cpu之间的pcie通道,其中,对所述fpga卡的第一个所述pcie通道执行向上注册及初始化第一个所述pcie通道对应的网口,和将从pcie通道对应的网口保存在自定义变量中,以使得上层应用模扫描注册的网口时只能扫描到第一个所述pcie通道注册的网口;扩展模块,用于当检测到所述上层应用模扫描到第一个所述pcie通道注册的网口时,基于所述从pcie通道的接收队列挂在第一个所述pcie通道下,以扩展第一个所述pcie通道的接收队列;第二初始化模块,用于初始化所述从pcie通道的接收队列信息和第一个所述pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文;第三初始化模块,用于初始化所述fpga卡,其中,对从pcie通道对应的fpga phy模块进行复位解复位。6.如权利要求1所述的装置,其特征在于,所述第二初始化模块,包括:第一初始化子模块,用于基于rx_queue_setup指令或rx_init指令初始化所述第一个所述pcie通道的接收队列信息;第二初始化子模块,用于基于rx_queue_setup指令或rx_init指令初始化所述从pcie通道的接收队列信息,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。7.如权利要求6所述的方法,其特征在于,所述第二初始化子模块,包括:第一保存模块,用于将与所述从pcie通道的接收队列操作相关的硬件信息保存在所述从pcie通道的接收队列信息中;第二保存模块,用于将与所述从pcie通道的接收队列操作无相关的软件信息配置为与第一个所述pcie通道的软件信息相同并保存在所述从pcie通道的接收队列信息中,以使得经所述从pcie通道的接收队列上传的报文,和经第一个所述pcie通道的接收队列上传的报文被识别为第一个所述pcie通道注册的网口上传的报文。8.如权利要求7所述的装置,其特征在于,所述第二初始化子模块,还包括:第三保存模块,用于获取所述自定义变量的空间地址,将所述自定义变量的空间地址保存在所述从pcie通道的接收队列信息中。9.一种电子设备,其特征在于,包括:处理器;以及存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行如权利要求1-4任一项所述的网口配置处理方法。10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如权利要求1-4任一项所述的网口配置处理方法。

技术总结
本申请提供一种网口配置处理方法、装置、电子设备和存储介质,其中,网口配置处理方法包括:扫描用于将网口接收的目标报文传输至CPU的FPGA卡;初始化FPGA卡与CPU之间的PC I e通道,其中,对FPGA卡的第一个PC I e通道执行向上注册及初始化第一个PC I e通道对应的网口,和将从PC I e通道对应的网口保存在自定义变量中;当检测到上层应用模扫描到第一个PC I e通道注册的网口时,基于从PC I e通道的接收队列挂在第一个PC I e通道下;初始化从PC I e通道的接收队列信息和第一个PC I e通道的接收队列信息;初始化FPGA卡等步骤。本申请能够克服网口的硬件带宽瓶颈,进而提高网口的带宽,从而提高网口的性能。从而提高网口的性能。从而提高网口的性能。


技术研发人员:余建明
受保护的技术使用者:北京天融信科技有限公司 北京天融信软件有限公司
技术研发日:2022.07.25
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-1605.html

最新回复(0)