本申请提供一种报文转发方法及装置,其中该方法适用于NFV设备的NUMA节点,NUMA节点包括一个转发组,该转发组包括接收核和转发核,该方法包括:接收核从入接口读取报文,该入接口是接收核所在的转发组对应的接口;接收核将读取的报文发送至转发组中的转发核;转发核将报文发送至对应的出接口。本申请减少了跨内存访问的出现,提高了系统吞吐能力。
【技术实现步骤摘要】
一种报文转发方法及装置
本申请涉及网络技术,特别涉及一种报文转发方法及装置。
技术介绍
为了避免传统的SMP(SymmetricMulti-Processing,对称多处理)系统中所有处理器通过共享系统总线访问同一内存的冲突问题,当前的NFV(NetworkFunctionVirtualization,网络功能虚拟化)设备可以采用一种NUMA(Non-UniformMemoryArchitecture,非统一内存架构)模式。NUMA是一种分布式存储器访问方式,在NUMA架构中可以包括多个NUMA节点,即NUMA-NODE,每个节点被分配本地存储器空间即本地内存。每个NUMA节点包括多个处理核,在NUMA架构中这些处理核被划分为控制核、接收核和转发核,并且转发核分布于多个NUMA节点内,接收核可以将报文转发至任何一个NUMA节点中的转发核。接收核接收报文时,使用该接收核所在的NUMA节点的本地内存,但是,当接收核将报文转发至另一个NUMA节点中的转发核时,转发核对报文的读取将进行对非本地内存的访问,即跨内存访问,这样将会增大开销、降低转发效率。随着NUMA节点数量的增加,跨内存访问的出现概率也相应变大,严重降低NFV设备的吞吐性能。
技术实现思路
本申请提供一种报文转发方法及装置,以在NUMA模式下减少跨内存访问的出现,提高系统吞吐能力。具体地,本申请是通过如下技术方案实现的:第一方面,提供一种报文转发方法,该方法适用于NFV设备的NUMA节点,所述NUMA节点包括一个转发组,所述转发组包括接收核和转发核,所述方法包括:所述接收核从入接口读取报文,所述入接口是所述接收核所在的所述转发组对应的接口;所述接收核将读取的所述报文发送至所述转发组中的转发核;所述转发核将所述报文发送至对应的出接口。在一个例子中,在所述接收核从入接口读取报文之前,还包括:所述NFV设备中的首个处理核,为NUMA节点创建转发组,所述转发组包括所述NUMA节点的所有处理核;所述首个处理核将所述转发组中的处理核配置为控制核、接收核或转发核;所述首个处理核为所述转发组配置对应的接口。在一个例子中,所述首个处理核将所述转发组中的处理核配置为控制核、接收核或转发核,包括:所述首个处理核将自身配置为控制核;若所述转发组不包括所述控制核,则所述控制核按照预设规则选择至少一个处理核配置为接收核,并将剩余的处理核均配置为转发核;若所述转发组包括所述控制核,则所述控制核按照预设规则将所述转发组中除自身以外的至少一个处理核配置为接收核,并将剩余的处理核均配置为转发核。在一个例子中,所述为所述转发组配置对应的接口,包括:所述控制核识别网卡所在的所述NUMA节点,将所述网卡的接口分配至所述NUMA节点对应的转发组。在一个例子中,所述为所述转发组配置对应的接口,包括:所述控制核根据接口配置命令将接口分配至指定的所述转发组。第二方面,提供一种报文转发装置,包括:接收核,用于从入接口读取报文,所述入接口是所述接收核所在的转发组对应的接口,并将读取的所述报文发送至所述转发组中的转发核,NFV设备的一个NUMA节点包括一个所述转发组;转发核,用于将所述报文发送至对应的出接口。在一个例子中,所述装置还包括:控制核,所述控制核为所述NFV设备的首个处理核,所述控制核用于:为所述NUMA节点创建所述转发组,所述转发组包括所述NUMA节点的所有处理核;将所述转发组中的处理核配置为控制核、接收核或转发核;为所述转发组配置对应的接口。在一个例子中,所述控制核用于:将自身配置为控制核;若所述转发组不包括所述控制核,则按照预设规则选择至少一个处理核配置为接收核,并将剩余的处理核均配置为转发核;若所述转发组包括所述控制核,则按照预设规则将所述转发组中除自身以外的至少一个处理核配置为接收核,并将剩余的处理核均配置为转发核。在一个例子中,所述控制核,用于识别网卡所在的NUMA节点,将所述网卡的接口分配至所述NUMA节点对应的转发组。在一个例子中,所述控制核,用于根据接口配置命令将接口分配至指定的所述转发组。本申请实施例的报文转发方法及装置,通过分别为每个NUMA节点创建一个转发组,使得在一个NUMA节点内既包括接收核又包括转发核,并且,接收核在将报文向转发核发送时,选择同在一个转发组的转发核发送,这样接收核和转发核都可以利用所在NUMA节点的本地内存进行处理,减少了跨内存访问的出现,提高了系统吞吐能力。附图说明图1是现有技术中的NUMA系统架构图;图2是本申请一个例子中的NFV设备的结构示意图;图3是本申请一个例子中的一种报文转发方法的流程图。具体实施方式NUMA是一种分布式存储器访问模式,在该NUMA架构中,可以包括多个NUMA节点,即NUMA-NODE,每个节点被分配有本地内存,以使得节点在处理数据时使用本地内存,提高处理速度。由于NUMA模式相对于传统的SMP模式,能有效的减少访问冲突,较为广泛的应用于NFV设备、特别是各种服务器上。图1示例了NUMA模式的系统结构,如图1所示,示例了两个NUMA节点,包括NUMA-NODE11和NUMA-NODE12。每个NUMA节点都有自己的本地内存,例如,NUMA-NODE11的本地内存13,NUMA-NODE12的本地内存14。在每个NUMA节点中,包括多个处理核15,即core。如图1所示,示例了分布在上述两个NUMA节点周边的八个NIC(NetworkInterfaceCard,网卡),分别为NIC1至NIC8,这些NIC都可以与NUMA节点连接,NIC接收的网络报文可以通过其连接的NUMA节点进行转发。图1还示例了通过NUMA节点中的接收核和转发核配合完成的报文转发路径,例如,一条转发路径是,Data-Rx0读取网卡NIC2接收到的报文,并将报文发送至Data-Fwd7,再由Data-Fwd7将报文发送至NIC8转发出去。又例如,另一条转发路径是,Data-Rx1读取网卡NIC3接收到的报文,并将报文发送至Data-Fwd1,再由Data-Fwd1将报文发送至NIC6转发出去。图1示例的是一种传统方式中的NUMA架构中的处理核角色分布,可以看到,两个接收核Data-Rx0和Data-Rx1都位于NUMA-NODE11中,其他的处理核都是转发核,部分转发核分布在NUMA-NODE11,部分转发核分布在NUMA-NODE12。并且,各个处理核的地位是平等的,例如,九个转发核Data-Fwd0至Data-Fwd8是平等地位的转发核,对于接收核Data-Rx0或Data-Rx1接收到的报文,可以发送至Data-Fwd0至Data-Fwd8中的任何一个。例如,NUMA-NODE11上的Data-Rx0从NIC2中接收到报文后,可以将报文发送至给NUMA-NODE12上的Data-Fwd7处理,而Data-Fwd7与Data-Rx0并不位于同一个NUMA节点。这种方式的问题是,当Data-Rx0接收报文时,Data-Rx0使用本地内存将报文的数据存储在NUMA-NODE11的本地内存13中,而当将报文向Data-Fwd7转发时,Data-Fwd7将报文从本地内存13中取走,使用的不是Data-Fwd7所在的NUMA-NOD本文档来自技高网...
【技术保护点】
一种报文转发方法,该方法适用于NFV设备的NUMA节点,其特征在于,所述NUMA节点包括一个转发组,所述转发组包括接收核和转发核,所述方法包括:所述接收核从入接口读取报文,所述入接口是所述接收核所在的所述转发组对应的接口;所述接收核将读取的所述报文发送至所述转发组中的转发核;所述转发核将所述报文发送至对应的出接口。
【技术特征摘要】
1.一种报文转发方法,该方法适用于NFV设备的NUMA节点,其特征在于,所述NUMA节点包括一个转发组,所述转发组包括接收核和转发核,所述方法包括:所述接收核从入接口读取报文,所述入接口是所述接收核所在的所述转发组对应的接口;所述接收核将读取的所述报文发送至所述转发组中的转发核;所述转发核将所述报文发送至对应的出接口。2.根据权利要求1所述的方法,其特征在于,在所述接收核从入接口读取报文之前,还包括:所述NFV设备中的首个处理核,为所述NUMA节点创建所述转发组,所述转发组包括所述NUMA节点的所有处理核;所述首个处理核将所述转发组中的处理核配置为控制核、接收核或转发核;所述首个处理核为所述转发组配置对应的接口。3.根据权利要求2所述的方法,其特征在于,所述首个处理核将所述转发组中的处理核配置为控制核、接收核或转发核,包括:所述首个处理核将自身配置为控制核;若所述转发组不包括所述控制核,则所述控制核按照预设规则选择至少一个处理核配置为接收核,并将剩余的处理核均配置为转发核;若所述转发组包括所述控制核,则所述控制核按照预设规则将所述转发组中除自身以外的至少一个处理核配置为接收核,并将剩余的处理核均配置为转发核。4.根据权利要求3所述的方法,其特征在于,所述为所述转发组配置对应的接口,包括:所述控制核识别网卡所在的所述NUMA节点,将所述网卡的接口分配至所述NUMA节点对应的转发组。5.根据权...
【专利技术属性】
技术研发人员:柳佳佳,
申请(专利权)人:新华三技术有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。