一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

提高报文转发性能的方法与流程

2022-06-05 16:06:27 来源:中国专利 TAG:


1.本发明涉及一种提高vxlanoveripsec转发性能的方法,尤其涉及一种借用硬件提高vxlanoveripsec报文转发性能的方法。


背景技术:

2.虚拟扩展局域网(virtual extensible local area network,vxlan)是一种网络虚拟化技术,可以改进大型云计算在部署时的扩展问题,是对虚拟局域网的一种扩展。具体而言,vxlan是一种隧道技术,能在三层网络的基础上建立二层以太网络隧道,从而实现跨地域的二层互连,该技术广泛运用于大规模云计算数据中心的虚拟化网络中。互联网安全协议(internet protocol security,ipsec)是另一种隧道技术,能在三层网络的基础上建立三层网络隧道,并通过对报文内容进行加密来保证通信的安全性和完整性。
3.vxlan技术可在家庭/企业网关与云计算数据中心之间实现跨地二层互连,并使用ipsec加密通信报文的应用场景。其中,通过vxlan技术并使用ipsec加密通信报文,在下文中将以术语vxlanoveripsec表示。
4.传统网关设备的中央处理器(central processing unit,cpu)一般运行linux操作系统,linux内核能够支持vxlanoveripsec的功能。但是,传统网关设备在同时需求vxlan和ipsec的应用场景下,只能通过其cpu中的linux内核对报文进行软转发。由于cpu处理能力有限,无法高性能转发vxlanoveripsec报文。此外也会占用大量cpu的处理能力。
5.因此,确实有必要提供一种更为灵活且通用的提高vxlanoveripsec转发性能的方法。


技术实现要素:

6.有鉴于此,本发明旨在提供一种提高vxlanoveripsec转发性能的方法,该方法将cpu的linux内核中对vxlan封装和解封装的处理转移到cpu的报文收发驱动程序中,并结合网关内部的转发硬件,优化vxlanoveripsec在内核中的处理流程,以减少转发报文所占用的cpu资源,因此可大幅提升报文的转发性能。
7.根据本发明的一种观点,提出一种提高报文转发性能的方法,其特征在于,包括加封装步骤集,加封装步骤集具有学习前报文路径,并包括以下步骤:
8.步骤s11:入口端口接收报文,并发送至驱动模块;
9.步骤s12:驱动模块处理报文,并发送至内核协议栈;
10.步骤s13:内核协议栈处理报文,并发送至vxlan模块;
11.步骤s14:vxlan模块处理报文,并发送至出口端口,其中,vxlan模块学习对报文的处理行为,并将学习结果保存到所述驱动模块,使所述驱动模块形成学习后驱动模块;及
12.步骤s15:出口端口接收报文。
13.可选地,或优选地,所述方法的加封装步骤集还具有学习后报文路径,并包括以下步骤:
14.步骤s16:入口端口接收报文,并发送至转发硬件;
15.步骤s17:转发硬件转发报文至所述学习后驱动模块;
16.步骤s18:所述学习后驱动模块处理报文,并发送至出口端口;及
17.步骤s19:出口端口接收报文。
18.可选地,或优选地,所述方法适用于配合linux内核处理,所述linux内核包括所述vxlan模块。
19.可选地,或优选地,所述方法可还包括前置步骤s10:在所述linux内核的vxlan模块中插入hook函数。
20.可选地,或优选地,所述方法在步骤s12中还包括:
21.判断式t11:判断vxlan模块是否进行加封装;若判断结果为是,则进到判断式t12,若判断结果为否,则进到步骤s13;
22.判断式t12:判断所述驱动模块是否存在相应的vxlan模块加封装处理行为;若判断结果为是,则在vxlan模块处理报文后,直接转发给转发硬件;若判断结果为否,则进行步骤s140:vxlan模块发送报文。
23.可选地,或优选地,所述方法在步骤s14前还包括:
24.判断式t13:判断报文的处理行为是否由所述驱动模块调用;若判断结果为是,则进行步骤s14,若判断结果为否,则进行步骤s121:建立硬件转发规则。
25.根据本发明的另一种观点,提出一种提高报文转发性能的方法,其特征在于,包括解封装步骤集,解封装步骤集具有学习前报文路径,并包括以下步骤:
26.步骤s21:入口端口接收报文,并发送至驱动模块;
27.步骤s22:驱动模块处理报文,并发送至vxlan模块;
28.步骤s23:vxlan处理报文,并发送至内核协议栈,其中,vxlan模块学习对报文的处理行为,并将学习结果保存到所述驱动模块,使所述驱动模块形成学习后驱动模块;
29.步骤s24:内核协议栈处理报文,并发送至出口端口;及
30.步骤s25:出口端口接收报文。
31.可选地,或优选地,所述方法的解封装步骤集还具有学习后报文路径,并包括以下步骤:
32.步骤s26:入口端口接收报文,并发送至转发硬件;
33.步骤s27:转发硬件转发报文至所述学习后驱动模块;
34.步骤s28:所述学习后驱动模块处理报文,并发送至出口端口;及
35.步骤s29:出口端口接收报文。
36.可选地,或优选地,所述方法适用于配合linux内核处理,所述linux内核包括所述vxlan模块。
37.可选地,或优选地,所述方法还包括前置步骤s20:在所述linux内核的vxlan模块中插入hook函数。
38.可选地,或优选地,所述方法在步骤s22中还包括:
39.判断式t21:判断vxlan模块是否进行解封装;若判断结果为是,则进到判断式t22,若判断结果为否,则进到步骤s24;
40.判断式t22:判断所述驱动模块是否存在相应的vxlan模块解封装处理行为;若判
断结果为是,则在vxlan模块处理报文后,直接转发给转发硬件;若判断结果为否,则进行步骤s230:vxlan模块接收报文。
41.可选地,或优选地,所述方法的步骤s23前还包括:
42.判断式t23:判断报文的处理行为是否由所述驱动模块调用;若判断结果为是,则进行步骤s23,若判断结果为否,则进行步骤s221:建立硬件转发规则。
43.下文将配合附图并详细说明,使本发明的其他目的、优点、及新颖特征更明显。
附图说明
44.图1示出本发明的一个实施例的加封装报文处理流程;
45.图2a示出本发明一个实施例的加封装步骤集的学习前报文处理路径;
46.图2b示出本发明一个实施例的加封装步骤集的学习后报文处理路径;
47.图3示出本发明的一个实施例的加封装报文处理优化流程;
48.图4示出本发明的一个实施例的解封装报文处理流程;
49.图5a示出本发明一个实施例的解封装步骤集的学习前报文处理路径;
50.图5b示出本发明一个实施例的解封装步骤集的学习后报文处理路径;
51.图6示出本发明的一个实施例的解封装报文处理优化流程。
52.符号说明:
53.s10~s29、s121、s140、s141、s221、s230
ꢀꢀꢀ
步骤
54.t11~t23
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
判断式
具体实施方式
55.以下提供本发明的不同实施例。这些实施例是用于说明本发明的技术内容,而非用于限制本发明的权利范围。可对本发明的特征进行修饰、变化、组合、分离、置换、或转用,而实现其他实施例。
56.在本发明中,所谓的“系统”、“设备”、“装置”、“模块”、或“单元”等用语,是指一电子组件或由多个电子组件所组成的一数字电路、一模拟电路、或其他更广义的电路,且除了特别指明者之外,它们不必然有阶层或从属关系。
57.此外,本发明的方法、或其中的步骤或手段可以任何所需及适合方式来实现。例如,它们可实现于硬件或软件。除了特别指明者之外,本发明的多种功能性组件、层级及手段可包括一处理器、一控制器、一功能性单元、一电路、一程序逻辑、或一微处理器的设置等,可操作成执行该些功能。可能存在一专用的硬件组件及/或可编程硬件组件,可组态成以所需及适合方式来操作。
58.本发明提供一种提高vxlanoveripsec转发性能的方法,在以下实施例中将分别介绍加封装步骤集及解封装步骤集。嵌入式系统,例如linux,可既执行加封装步骤集也执行解封装步骤集,但也可只执行加封装步骤集,或只执行解封装步骤集。
59.(加封装步骤集)
60.(转发硬件模块结合驱动模块)
61.图1示出本发明的一个实施例的加封装报文处理流程。本发明的一个实施例的加封装报文处理流程包括学习前报文路径及学习后报文路径。所谓的学习是指由vxlan模块
来学习对报文的处理行为。
62.具体而言,本发明在linux内核vxlan模块中插入hook函数,使vxlan模块得以学习对报文的处理行为,并将学习结果转移到驱动模块中,再结合转发硬件以建立硬件转发规则。没有学习过的报文通过学习前报文路径,vxlan模块就会学习对所述报文的处理行为,然后形成学习后报文路径。
63.后续报文如果与学习过的报文是以相同方式来转发,则可直接转往学习后报文路径。在学习后报文路径中,报文通过转发硬件发送到驱动模块后,直接对报文进行vxlan模块的相关处理并转发出去。
64.(加封装处理流程)
65.图2a示出本发明一个实施例的加封装步骤集的学习前报文处理路径。加封装步骤集的学习前报文处理路径包括以下步骤:
66.步骤s11:入口端口接收报文,并发送至驱动模块;
67.步骤s12:驱动模块处理报文,并发送至内核协议栈;
68.步骤s13:内核协议栈处理报文,并发送至vxlan模块;
69.步骤s14:vxlan模块处理报文,并发送至出口端口,其中,vxlan模块学习对报文的处理行为,并将学习结果保存到所述驱动模块,使所述驱动模块形成学习后驱动模块;及
70.步骤s15:出口端口接收报文,最后通过例如pkt文件的形式转发到硬件。
71.图2b示出本发明一个实施例的加封装步骤集的学习后报文处理路径。加封装步骤集的学习后报文处理流程包括以下步骤:
72.步骤s16:入口端口接收报文,并发送至转发硬件;
73.步骤s17:转发硬件转发报文至所述学习后驱动模块;
74.步骤s18:所述学习后驱动模块处理报文,并发送至出口端口;及
75.步骤s19:出口端口接收报文,最后通过例如pkt文件的形式转发到硬件。
76.(内核vxlan模块和驱动模块中对加封装的优化)
77.图3示出本发明的一个实施例的加封装报文处理优化流程。本发明的加封装报文处理优化流程主要包括三个判断式。
78.判断式t11:判断vxlan模块是否进行加封装;
79.判断式t12:判断驱动模块是否存在相应的vxlan模块加封装处理行为;及
80.判断式t13:判断报文的处理行为是否由所述驱动模块调用。
81.加封装报文处理优化流程步骤如下:
82.步骤s11:入口端口接收报文,并发送至驱动模块;
83.步骤s12:驱动模块处理报文,并发送至内核协议栈;
84.在步骤s12中可包括判断式t11及判断式t12:
85.判断式t11:判断vxlan模块是否进行加封装;若判断结果为是,则进到判断式t12,若判断结果为否,则进到步骤s13;
86.判断式t12:判断所述驱动模块是否存在相应的vxlan模块加封装处理行为;若判断结果为是,则在vxlan模块处理报文后,直接转发给转发硬件;若判断结果为否,则进行步骤s140:vxlan模块发送报文;
87.步骤s13:内核协议栈处理报文,并发送至vxlan模块;
88.判断式t13:判断报文的处理行为是否由所述驱动模块调用;若判断结果为是,则进行步骤s14,若判断结果为否,则进行步骤s121:建立硬件转发规则;
89.步骤s14:vxlan模块处理报文,并发送至出口端口,其中,vxlan模块学习对报文的处理行为,并将学习结果保存到所述驱动模块,使所述驱动模块形成学习后驱动模块;
90.其中,步骤s14还包括子步骤s141:vxlan模块发送报文是通过ip协议栈发送并保存vxlan模块处理到驱动模块。
91.接着下方将说明本发明的提高vxlanoveripsec转发性能的方法中的解封装步骤集。
92.(解封装步骤集)
93.(转发硬件模块结合驱动模块)
94.图4示出本发明的一个实施例的解封装报文处理流程。本发明的一个实施例的报文处理流程分为学习前报文路径及学习后报文路径。所谓学习是指由vxlan来学习对报文的处理行为。
95.具体而言,本发明在linux内核vxlan模块中插入hook函数,使vxlan模块得以学习对报文的处理行为,并将学习结果转移到驱动模块中,再结合转发硬件以建立硬件转发规则。没有学习过的报文通过学习前报文路径,vxlan模块就会学习对所述报文的处理行为,然后形成学习后报文路径。
96.后续报文如果与学习过的报文是以相同方式来转发,则可直接转往学习后报文路径。在学习后报文路径中,报文通过转发硬件发送到驱动模块后,直接对报文进行vxlan的相关处理并转发出去。
97.(解封装处理流程)
98.图5a示出本发明一个实施例的解封装步骤集的学习前报文处理路径。解封装步骤集的学习前报文处理路径包括以下步骤:
99.步骤s21:入口端口接收报文,并发送至驱动模块;
100.步骤s22:驱动模块处理报文,并发送至vxlan模块;
101.步骤s23:vxlan处理报文,并发送至内核协议栈,其中,vxlan模块学习对报文的处理行为,并将学习结果保存到所述驱动模块,使所述驱动模块形成学习后驱动模块;
102.步骤s24:内核协议栈处理报文,并发送至出口端口;及
103.步骤s25:出口端口接收报文,最后通过例如pkt文件的形式转发到硬件。
104.图5b示出本发明一个实施例的解封装步骤集的学习后报文处理路径。解封装步骤集的学习前报文处理路径包括以下步骤:
105.学习后报文处理流程包括以下步骤:
106.步骤s26:入口端口接收报文,并发送至转发硬件;
107.步骤s27:转发硬件转发报文至所述学习后驱动模块;
108.步骤s28:所述学习后驱动模块处理报文,并发送至出口端口;及
109.步骤s29:出口端口接收报文,最后通过例如pkt文件的形式转发到硬件。
110.(内核vxlan模块和驱动模块中对解封装的优化)
111.图6示出本发明的一个实施例的解封装报文处理优化流程。本发明的解封装报文处理优化流程主要包括三个判断式。
112.判断式t21:判断vxlan模块是否进行解封装;
113.判断式t22:判断所述驱动模块是否存在相应的vxlan模块解封装处理行为;及
114.判断式t23:判断报文的处理行为是否由所述驱动模块调用。
115.解封装报文处理优化流程步骤如下:
116.步骤s21:入口端口接收报文,并发送至驱动模块;
117.步骤s22:驱动模块处理报文,并发送至vxlan模块;
118.在步骤s22中可包括判断式t21及判断式t22:
119.判断式t21:判断vxlan模块是否进行解封装;若判断结果为是,则进到判断式t22,若判断结果为否,则进到步骤s24;
120.判断式t22:判断所述驱动模块是否存在相应的vxlan模块解封装处理行为;若判断结果为是,则在vxlan模块处理报文后,直接转发给转发硬件;若判断结果为否,则进行步骤s230:vxlan模块接收报文;
121.步骤s24:内核协议栈处理报文,并发送至出口端口;
122.判断式t23:判断报文的处理行为是否由所述驱动模块调用;若判断结果为是,则进行步骤s23,若判断结果为否,则进行步骤s221:建立硬件转发规则;
123.步骤s23:vxlan处理报文,并发送至内核协议栈,其中,vxlan模块学习对报文的处理行为,并将学习结果保存到所述驱动模块,使所述驱动模块形成学习后驱动模块。
124.综上所述,本发明提供了一种提高vxlanoveripsec转发性能的方法,适用于linux系统,所述方法采用vxlan模块学习对报文的处理并保存到驱动模块,并结合转发硬件及建立转发规则以提高vxlanoveripsec转发性能。
125.尽管本发明已通过多个实施例来说明,应理解的是,只要不背离本发明的精神及权利要求书所主张的范围,可作出许多其他可能的修饰及变化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献