报文发送方法及装置与流程

文档序号:20038546发布日期:2020-02-28 11:37阅读:367来源:国知局
报文发送方法及装置与流程
本申请涉及云上网络(openvswitch,ovs)或(elasticvolumeservice,evs)领域,尤其涉及报文发送方法及装置。
背景技术
:云上网络系统中,通常,一个主机上运行多个虚拟机。使用网络流表可以加快网络响应速度,通常情况下网络流表的创建、刷新、查找由主机中的中央处理器(centralprocessingunit,cpu)处理,然而,由于网络流表的刷新、查找都比较频繁,且流表数据量巨大,因此会造成网络流表的刷新、查找都会消耗大量的cpu资源。目前,针对网络流表的刷新、查找会消耗大量的cpu资源的问题,引入了异构系统级芯片(systemonchip,soc)卸载方案。soc卸载方案下的云上网络系统如图1所示,该云上网络系统包括:两个cpu(如cpu0和cpu1),soc,总线设备(如i/o通道、内存、显卡、声卡、硬盘控制器、硬盘等)和网卡等。这些器件(或设备)之间的连接关系如图1所示。该卸载方案的设计思路是将x16的网卡物理的划分成2个x8接口。一个x8接口用于soc创建、刷新、查找网络流表,从而降低cpu资源的消耗。另一个x8接口用于cpu的报文传输。但是,此方案中,原本x16带宽的网卡最终只能使用x8的带宽用于cpu的报文传输,这会导致连接至cpu的虚拟机的io性能变差,从而导致用户体验差。技术实现要素:本申请的实施例提供报文发送方法及装置,有助于提高云上网络系统中客户端虚拟机的io性能。为达到上述目的,本申请的实施例采用如下技术方案:第一方面,提供一种报文发送方法,应用于云上网络系统,该云上网络系统包含n个中央处理器cpu、片上系统soc、网卡和带宽分配装置,该带宽分配装置分别连接n个cpu、soc和网卡;该带宽分配装置包括:n个cpu缓存和soc缓存;一个cpu缓存用于缓存一个cpu发送给带宽分配装置的报文,soc缓存用于缓存soc发送给该带宽分配装置的报文;n是正整数;该方法包括:带宽分配装置获取n个cpu缓存和soc缓存中的报文存储情况;如果该报文存储情况包括n个cpu缓存中的m个cpu缓存中均存储有报文,且soc缓存中存储有报文,则该带宽分配装置发送m个cpu缓存中存储的报文至网卡;当m个cpu缓存中存储的报文都发送完之后,再发送该soc缓存中存储的报文至该网卡;其中,1≤m≤n,m是整数;如果报文存储情况包括n个cpu缓存中的m个cpu缓存中均存储有报文,但soc缓存中没有存储报文,则带宽分配装置发送m个cpu缓存中存储的报文至网卡。这样,带宽分配装置可以优先保证cpu缓存中存储的报文被发送至网卡,避免了由于soc占用网卡带宽而致使cpu的虚拟机i/o性能差的问题。在一种可能的设计中,该带宽分配装置发送m个cpu缓存中存储的报文至网卡包括:该带宽分配装置采用第m概率发送该m个cpu缓存中的第m个cpu缓存中存储的报文至该网卡,其中,1≤m≤m;m是整数;第1概率到第m概率之和为1。其中,第m概率是m个cpu缓存中的第m个cpu缓存的概率,第m个cpu缓存的概率是在一次带宽分配装置发送报文的过程中第m个cpu缓存中存储的报文被发送的概率。任意两个cpu缓存的概率可以相同或不同。任意一个cpu缓存的概率可以是用户配置或者soc指示的。在一种实现方式中,任意一个cpu缓存的概率由用户预先配置在带宽分配装置中。在另一种实现方式中,soc提前将用户预先配置的任意一个cpu缓存的概率发送给带宽分配装置。可选的,对于每个cpu缓存来说,其概率配置好之后是可以修改的,如soc可以根据用户的指示修改该cpu缓存的概率,并下发修改后的该cpu缓存的概率给带宽分配装置。这样,就可以按照实际需求设置cpu缓存的概率,使得cpu缓存中存储的报文可以优先被发送至网卡。提升cpu的虚拟机的i/o性能。在另一种可能的设计中,带宽分配装置采用第m概率发送m个cpu缓存中的第m个cpu缓存中存储的报文至该网卡,包括:该带宽分配装置根据选择算法,从该m个cpu缓存中存储有未发送的报文的cpu缓存中选择一个cpu缓存作为目标cpu缓存,并发送该目标cpu缓存中的报文,直至将该m个cpu缓存中的报文发送完;其中,该选择算法是使得发送该第m个cpu缓存中存储的报文的概率为该第m概率的选择算法。该选择算法可以是基于权重和优先级的仲裁算法。这样,使用特定概率发送cpu缓存中存储的报文,能够保障各个cpu缓存中存储的数据都能被按照特定概率发送至网卡,提升了cpu的虚拟机的i/o性能。在另一种可能的设计中,带宽分配装置预存有m个cpu中的第一cpu的多个资源中每个资源的第一cpu域属性信息与soc域属性信息之间的对应关系;其中,每个资源指soc分配给第一cpu的虚拟资源或物理资源,该属性信息包括地址或总线设备功能标识bdf;该方法还包括:该带宽分配装置根据多个资源中每个资源的第一cpu域属性信息与soc域属性信息之间的对应关系,确定与第一报文中携带的第一cpu域中的属性信息对应的soc域中的属性信息;其中,第一报文是第一cpu缓存中的任意一个报文;将第一报文中携带的第一cpu域的属性信息替换为与第一报文中携带的第一cpu域的属性信息对应的soc域中的属性信息,得到第二报文;该带宽分配装置发送m个cpu缓存中存储的报文至网卡包括:该带宽分配装置发送第二报文至网卡。这样,可以在cpu缓存与soc缓存共享一个网卡时,解决网卡虚拟资源和物理资源的地址冲突,cpu缓存与soc缓存共享一个网卡,提升了cpu的虚拟机的i/o性能。在另一种可能的设计中报文发送方法还包括:该带宽分配装置接收soc发送的第一资源的soc域的属性信息,其中该第一资源包括分配给第一cpu的虚拟资源或物理资源;该带宽分配装置接收第一cpu发送的第一资源的第一cpu域的属性信息;该带宽分配装置建立第一资源的soc域的属性信息与该第一资源的第一cpu域的属性信息之间的对应关系。这样,可以在cpu缓存与soc缓存共享一个网卡时,解决网卡虚拟资源和物理资源的地址冲突,并将cpu域的属性信息与soc域的属性信息联系起来,cpu缓存与soc缓存共享一个网卡,提升了cpu的虚拟机的i/o性能。在另一种可能的设计中,该方法还包括:如果报文存储情况包括n个cpu缓存中的每个cpu缓存中都没有存储报文,且soc缓存中存储有报文时,则发送该soc缓存中存储的报文至网卡。这样,soc可以在cpu缓存没有存储报文的情况下使用网卡发送报文,实现流表的创建、刷新和查找等动作。提高了网卡的使用效率。第二方面,提供了一种报文发送方法,应用于云上网络系统,该云上网络系统包含n个中央处理器cpu、片上系统soc、网卡和带宽分配装置,该带宽分配装置分别连接该n个cpu、该soc和该网卡;该带宽分配装置包括:n个cpu缓存和soc缓存;一个cpu缓存用于缓存一个cpu发送给该带宽分配装置的报文,该soc缓存用于缓存该soc发送给该带宽分配装置的报文;该n是正整数;该方法包括:该soc枚举该网卡上的虚拟资源和物理资源;并获取该虚拟资源的属性信息和该物理资源的属性信息;该属性信息包括soc域的地址或soc域的总线设备功能标识bdf;该soc发送该虚拟资源和该物理资源的属性信息至该带宽分配装置;其中,该物理资源的属性信息用于该带宽分配装置建立该物理资源在soc域的属性信息与该物理资源在cpu域的属性信息之间的对应关系;该虚拟资源用于该带宽分配装置建立该虚拟资源在soc域的属性信息与该虚拟资源在cpu域的属性信息之间的对应关系;该对应关系用于该带宽分配装置将cpu发送的报文发送至该网卡。这样,soc不但能够进行资源的分配,而且实现了网卡资源被cpu和soc共享。这有助于提升cpu上虚拟机的i/o性能。第三方面,提供了一种带宽分配装置,该带宽分配装置可用于执行上述第一方面的任一种可能的设计提供的任一种方法,示例的,该带宽分配装置可以是芯片或设备等。在一种可能的设计中,可以根据上述第一方面或第一方面的任一种可能的设计提供的方法对该装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理块中。在一种可能的设计中,该装置可以包括处理器、存储器和收发器。收发器可以用于报文的接收和发送。存储器用于存储计算机程序。处理器用于调用该计算机程序,以执行第一方面和第一方面的任一种可能的设计提供的任一种方法。该收发器可以是芯片上的引脚或一块电路。第四方面,提供了一种片上系统soc,该片上系统可用于执行上述第二方面的任一种可能的设计提供的任一种方法。第五方面,提供了一种计算机可读存储介质,如计算机非瞬态的可读存储介质。其上储存有计算机程序(或指令),当该计算机程序(或指令)在计算机上运行时,使得该计算机执行上述第一方面或第一方面的任一种可能的设计提供的任一种方法。第六方面,提供了一种计算机可读存储介质,如计算机非瞬态的可读存储介质。其上储存有计算机程序(或指令),当该计算机程序(或指令)在计算机上运行时,使得该计算机执行上述第二方面或第二方面的任一种可能的设计提供的任一种方法。第七方面,提供了一种计算机程序产品,当其在计算机上运行时,使得第一方面或第一方面的任一种可能的设计提供的任一种方法被执行。第八方面,提供了一种计算机程序产品,当其在计算机上运行时,使得第二方面或第二方面的任一种可能的设计提供的任一种方法被执行。第九方面,提供了一种云上网络系统,包括:多个cpu、soc和带宽分配装置,该带宽分配装置可以是上述第三方面提供的任意一种带宽分配装置,soc可以是第四方面提供的片上系统。第十方面,一种芯片,包括处理器和接口,该处理器用于调用存储器中存储的代码,以执行上述第一方面的任一种可能的设计提供的任一种方法;或者执行上述第二方面的任一种可能的设计提供的任一种方法。在一种可能的设计中,可以根据上述第二方面提供的方法对该芯片进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理块中。在一种可能的设计中,该芯片可以包括处理器、存储器和收发器。收发器可以用于报文的接收和发送。存储器用于存储计算机程序。处理器用于调用该计算机程序,以执行第二方面提供的任一种方法。该收发器可以是芯片上的引脚或一块电路。可以理解的是,上述提供的任一种带宽分配装置、计算机存储介质或计算机程序产品等均可以应用于上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。附图说明图1为本申请
背景技术
中异构soc网络系统结构示意图;图2为本申请实施例提供的技术方案所适用的一种云上网络系统的架构示意图;图3为本申请实施例提供的技术方案所适用的一种带宽分配装置的结构示意图;图4为本申请实施例提供的技术方案所适用的一种云上网络系统中的资源分配方法的交互示意图;图5为本申请实施例提供的技术方案所适用的一种云上网络系统中的报文发送方法的交互示意图;图6为本申请实施例提供的技术方案所适用的一种云上网络系统中的带宽分配装置智能分配网卡带宽的一种报文发送方法示意图;图7为本申请实施例提供的一种带宽分配装置的结构示意图;图8为本申请实施例提供的一种片上系统soc的结构示意图。具体实施方式在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。在本申请实施例中,“至少一个”是指一个或多个。“多个”是指两个或两个以上。在本申请实施例中,“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。如图2所示,为本申请实施例提供的一种云上网络系统的架构示意图。图2所示的云上网络系统包括基板管理控制器(baseboardmanagementcontroller,bmc)100,一个或多个cpu101(图2中是以包括cpu0和cpu1为例进行说明的),soc102,带宽分配装置103,以及网卡104等。基板管理控制器100,可用于云上网络系统状态监视、启动、重启、重新供电、断电等底板控制。cpu101,可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。每个cpu101上可以部署一个或多个虚拟机。soc102,可以指一个或多个设备、有专用目标的集成电路、和/或用于处理数据(例如计算机程序指令)的处理核。soc102可以用于soc上电后对虚拟资源和物理资源进行枚举,并将枚举到的虚拟资源和物理资源分配给云上网络系统中的各cpu和soc本身。作为一个示例,soc102还可以用于创建、刷新、查找网络流表等。带宽分配装置103用于在云上网络系统启动配置过程中接收soc发送的分配给每个cpu的虚拟资源和物理资源的属性信息,生成虚拟资源和物理资源的镜像文件。并且,还用于在网络系统启动配置过程结束之后,获取各cpu缓存和soc缓存中的报文存储情况,并根据报文存储情况发送报文至网卡。可选的,带宽分配装置103还用于建立分配各cpu的资源在各自cpu域下的资源(包括虚拟资源和物理资源)的属性信息与该资源在soc域下的属性信息的对应关系;以及,在云上网络系统启动配置完成之后,分别接收各cpu和soc发送的报文至相应的cpu缓存和soc缓存,将来自cpu的报文中携带的cpu域的属性信息替换为soc域的属性信息等。网卡104,可以为网络接口板又称为通信适配器或网络适配器(networkadapter)或网络接口卡(networkinterfacecard,nic),是一个半自治单元,包括存储器和处理器。通过总线与带宽分配装置103相连接。需要说明的是,在soc卸载方案下的云上网络系统中,由于soc102查询流表的报文处理中匹配步骤多延时大,相对于cpu101的报文处理较慢且与cpu101访问网卡的路径不同,因此,在本申请的实施例中,可以认为cpu101通过快速路径访问网卡,soc102通过慢速路径访问网卡,例如,网络流表的查找流程包括如下步骤:soc102从网卡接收客户端虚拟机发送的报文,并解析该报文的头部信息,生成上送消息,该上送消息中包含该报文的头部信息;然后根据该上送消息中携带的报文头部信息查找网络流表,找到该报文的精确流表即该报文精确的转发路径,将该精确流表存储至自身的网络流表中并按照该精确流表转发该报文。随后,若soc接收到与此报文具有相同头部信息的报文,则直接查找自身存储的网络流表中的该精确流表,并按照该精确流表转发报文,以提高报文的处理速度。如图3所示,为本申请实施例提供的一种带宽分配装置103的结构示意图。该带宽分配装置103可以用于执行本申请实施例提供的带宽分配方法,该带宽分配装置103可以包括至少一个处理器201,通信线路202,存储器203,通信接口204以及路由器205。处理器201可以是一个微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本申请方案程序执行的集成电路。通信线路202可包括一通路,在上述组件(如至少一个处理器201,通信线路202,存储器203以及路由器205)之间传送信息。存储器203可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器203可以是独立存在,通过通信线路202与处理器201相连接。存储器203也可以和处理器201集成在一起。本申请实施例提供的存储器203通常可以具有非易失性。其中,存储器203用于存储执行本申请方案的计算机指令,并由处理器201来控制执行。处理器201用于执行存储器203中存储的计算机指令,从而实现本申请下述实施例提供的方法。存储器203中为来源不同的报文划分了不同的缓存,示例性的,来源为cpu0的报文存储在cpu0缓存,来源为cpu1的报文存储在cpu1缓存,来源为soc的报文存储在soc缓存。通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如广域网(wideareanetwork,wan),局域网(localareanetworks,lan)等。路由器205,是一个包括一个上行端口和两个下行端口的迷你路由器,可以用于链路的扩展,通过通信线路202与路由器205相连接,以实现报文路由功能,支持基于地址和基于bdf两种路由方式。可选的,本申请实施例中的计算机指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。在具体实现中,作为一种实施例,带宽分配装置103可以包括多个处理器,这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。本申请中的云上网络系统在报文发送之前,需要先完成启动配置过程。如图4所示,为本申请实施例提供的一种云上网络系统的启动配置过程的流程示意图。示例性的,本实施例可以应用于图2所示的系统架构,本实施例中的soc、cpu0、cpu1、带宽分配装置和网卡可以分别对应于图2中的soc102、cpu0、cpu1、带宽分配装置103和网卡104。图4所示的方法可以包括以下步骤:s201:基板管理控制器接收用户指令。s202:基板管理控制器根据用户的指令发送指示消息至soc,该指示消息用于指示soc启动并枚举。s203:soc根据该指示消息启动并枚举,然后获取枚举到的虚拟资源的属性信息和物理资源的属性信息。具体的,soc根据该指示信息启动,并在启动之后枚举云上网络系统中的虚拟资源(如所有虚拟资源),枚举云上网络系统中的物理资源(如所有物理资源)。具体的,枚举的过程可以包括:soc读取该soc中的基地址寄存器(baseaddressregister,bar)的容量并统一编址,读取虚拟资源和物理资源并对读取的虚拟资源和物理资源进行配置等一系列动作。本申请对此枚举过程不作限定。每一个虚拟资源或物理资源配置完成之后都有一个唯一标识符与之对应,这个标识符可以是bdf,bdf是总线设备功能标识。每一个虚拟资源或物理资源都有一个唯一的地址与之对应,该地址可以是总线地址,根据地址总线的位数不同该总线地址可以是64位、32位或者48位等。在一个示例中,为了描述方便,以下对枚举到的虚拟资源和物理资源进行编号,其中,vf表示虚拟资源,pf表示物理资源。soc枚举到的虚拟资源和物理资源如下表1所示:表1需要说明的是,每个vf对应的pf是固定的,表1中同一行的pf和vf之间具有对应关系。表1中仅罗列了一个示例中soc枚举到的物理资源和虚拟资源,例如,soc枚举到的物理资源为pf0,与该物理资源pf0对应的虚拟资源包括:vf01,vf02,vf03,vf04,vf05,vf06,vf07,vf08。表2至表6与此类似,下文不再赘述。可以理解的是,如图1所示的系统架构中,也存在soc枚举,但是此步骤中,soc枚举与如图1所示的架构中的soc枚举的内容不同,本申请中soc枚举网卡的所有虚拟资源和物理资源,而
背景技术
中soc只枚举物理划分给soc的虚拟资源和物理资源。在一个示例中,虚拟资源的属性信息包括该虚拟资源的bdf,物理资源的属性信息包括物理资源的bdf。在另一个示例中,虚拟资源的属性信息包括该虚拟资源的地址,物理资源的属性信息包括物理资源的地址。在另一个示例中,虚拟资源的属性信息包括该虚拟资源的bdf和地址,物理资源的属性信息包括该物理资源的bdf和地址。下文中的具体示例均是以此处的最后一个示例为例进行说明的。s204:soc分别给cpu(如云上网络系统中的每个cpu)和soc分配枚举到的虚拟资源和物理资源。本申请实施例对s204的具体实现方式不进行限定。在一种实现方式中,soc根据规则(例如,平均分配规则)给每个cpu和soc分配枚举到的虚拟资源和物理资源。这样,可以实现云上网络系统的自动化运维。在另一种实现方式中,soc可以包括用于管理虚拟资源和物理资源的应用,该应用可以接收用户指令,该指令用于为每个cpu和soc分配虚拟资源和物理资源;soc可以基于该应用所接收到的指令,给每个和soc分配枚举到的虚拟资源和物理资源。比如,直接按照该指令所指示的分配方案或按照对该指令所指示的分配方案进行调整后的方案,给每个cpu和soc分配枚举到的虚拟资源和物理资源。soc分配给每个cpu的资源(包括虚拟资源和/或物理资源)的总量可以相同或不同。soc分配给自身和任一cpu的资源(包括虚拟资源和/或物理资源)的总量可以相同或不同。同一资源(包括虚拟资源或物理资源)通常只能被分配给soc和每个cpu的其中之一。下文中均是以soc分配给每个cpu资源的总量是相同的为例进行说明的。以下,以云上网络系统中的cpu为cpu0和cpu1为例,对soc分配资源进行说明:基于表1,soc为cpu0分配的虚拟资源和物理资源可以如下表2所示:表2基于表1,soc为cpu1分配的虚拟资源和物理资源可以如下表3所示:表3基于表1,soc为soc自身分配的虚拟资源和物理资源可以如下表4所示:表4s205:soc将分配给cpu(如每个cpu)的虚拟资源的属性信息和物理资源的属性信息发送给带宽分配装置。s206:带宽分配装置根据接收到的分配给cpu(如每个cpu)的虚拟资源的属性信息,生成该cpu的虚拟资源的镜像文件(即镜像虚拟资源),虚拟资源的镜像文件包括该虚拟资源挂载在哪个物理资源上,虚拟资源的标识信息等。根据接收到的分配给该cpu的物理资源的属性信息,生成该cpu的物理资源的镜像文件(即镜像物理资源),物理资源的镜像文件包括该物理资源上挂载有哪些虚拟资源,该物理资源的标识信息等。需要说明的是,对于每个cpu来说,带宽分配装置所生成的该cpu的镜像虚拟资源和镜像物理资源通常需要重新进行编号。并且,为不同cpu的镜像虚拟资源和镜像物理资源的编号可以相同或不同。以下进行举例说明:基于表2,带宽分配装置生成的cpu0的镜像虚拟资源和镜像物理资源可以如表5所示:表5基于表3,带宽分配装置生成的cpu1的镜像虚拟资源和镜像物理资源可以如表6所示:表6s207:带宽分配装置发送用于通知镜像文件生成完毕的通知消息至soc。s208:soc发送消息至基板控制器,该消息用于通知基板管理控制器soc启动且枚举完毕。至此,soc的启动配置过程完成。s209:基板管理控制器接收到soc发送的该通知消息后,发送指示消息至cpu(如每个cpu),该指示消息用于指示该cpu启动并枚举。s210:cpu(如每个cpu)根据该指示消息的指示启动并枚举。具体的,cpu根据该指示信息启动,并在启动之后枚举soc分配给该cpu的虚拟资源(如所有虚拟资源),枚举soc分配给该cpu的物理资源(如所有物理资源)。具体的,cpu枚举的过程可以包括:cpu读取该cpu的基地址寄存器的容量并统一编址,读取带宽分配装置生成的该cpu的镜像虚拟资源和镜像物理资源,并对读取的镜像虚拟资源和镜像物理资源进行配置等一系列动作。本申请对此枚举过程不作限定。对于任意一个cpu来说,配置完成之后,会为该cpu的镜像虚拟资源和镜像物理资源分配该cpu域中的地址和该cpu域中的bdf,以下简称cpu域地址和cpu域bdf。配置完成后,cpu的镜像虚拟资源的属性信息可以包括该镜像虚拟资源的该cpu域地址和该cpu域bdf;cpu的镜像物理资源的属性信息可以包括该镜像物理资源的该cpu域地址和该cpu域bdf。s211:对于每一个cpu来说,将该cpu枚举完成后的镜像虚拟资源的属性信息和镜像物理资源的属性信息发送给带宽分配装置。s212:对于每个cpu来说,带宽分配装置根据该cpu的虚拟资源的属性信息和该虚拟资源所生成的镜像虚拟资源的属性信息,以及该cpu的物理资源的属性信息和该物理资源所生成的镜像物理资源的属性信息,建立属性信息映射关系。以云上网络系统包括cpu0和cpu1为例,带宽分配装置可以根据cpu0的虚拟资源的属性信息和cpu0的镜像虚拟资源的属性信息,以及cpu0的物理资源的属性信息和cpu0的镜像物理资源的属性信息建立第一属性信息映射关系;并根据cpu1的虚拟资源的属性信息和cpu1的镜像虚拟资源的属性信息,以及cpu1的物理资源的属性信息和cpu1的镜像物理资源的属性信息建立第二属性信息映射关系。其中,本申请实施例对属性信息映射关系(如第一属性信息映射关系和第二属性信息映射关系)的具体体现形式不进行限定,例如,可以是表格、公式或ifelse语句等形式。下文中均以该映射关系体现为映射表为例进行说明。该情况下,第一属性信息映射关系可以被标记为第一属性信息映射表,第二属性信息映射关系可以被标记为第二属性信息映射表。第一属性信息映射表,为cpu0域的属性信息与soc域的属性信息的对应关系表。例如:假设一个虚拟资源在cpu0域中的标识为vf01,该虚拟资源在cpu0域中的属性信息为(bdf3,address3),该虚拟资源在soc域中的标识为vf21,该虚拟资源在soc域中的属性信息为(bdf23,address23);那么在第一属性信息映射表中bdf3与bdf23一一对应,address3与address23一一对应。第二属性信息映射表,为cpu1域的属性信息与soc域的属性信息的对应关系表。例如:一个虚拟资源在cpu1域中的标识为cf01,该虚拟资源在cpu1域中的属性信息为(bdf3,address3),该虚拟资源在soc域的标识为vf51;该虚拟资源在soc域中的属性信息为(bdf53,address53);那么在第二属性信息映射表中bdf3与bdf53一一对应,address3与address53一一对应。基于s203中的示例,第一属性信息映射表中的部分物理资源和虚拟资源的属性对应关系可以如下表7所示:表7cpu0域bdfsoc域bdfcpu0域地址soc域地址bdf0(pf0)bdf02(pf2)address0(pf0)address02(pf2)bdf1(pf1)bdf13(pf3)address1(pf1)address13(pf3)bdf2(pf2)bdf24(pf4)address2(pf2)address24(pf4)bdf3(vf01)bdf23(vf21)address3(vf01)address23(vf21)其中,表7中的“bdf0(pf0)、bdf02(pf2)、address0(pf0)和address02(pf2)”分别表示:物理资源pf0在cpu0域的bdf为bdf0,该物理资源在cpu0域的地址为address0,该物理资源pf0在soc域中的标识为pf2;该物理资源在soc域中的bdf为bdf02,该物理资源在soc域中的地址为address02。其他示例不再一一列举。基于s203中的示例,第二属性信息映射表中的部分物理资源和虚拟资源的对应关系可以如下表8所示:表8cpu0域bdfsoc域bdfcpu0域地址soc域地址bdf0(pf0)bdf05(pf5)address0(pf0)address05(pf5)bdf1(pf1)bdf16(pf6)address1(pf1)address16(pf6)bdf2(pf2)bdf27(pf7)address2(pf2)address27(pf7)bdf3(vf01)bdf33(vf31)address3(vf01)address33(vf31)可以理解的是,在本申请实施例提供的技术方案中,由于cpu0、cpu1和soc共享一个网卡。cpu(如cpu0和cpu1)枚举时读取的是镜像虚拟资源和镜像物理资源,配置的也是镜像虚拟资源和镜像物理资源,在cpu(如cpu0和cpu1)枚举后该cpu的镜像虚拟资源的属性信息与真实的该虚拟资源的属性信息不一样,且在cpu枚举后的物理资源的属性信息与真实的该物理资源的属性信息也不一样。soc枚举的时候直接枚举网卡的所有虚拟资源和物理资源,soc枚举虚拟资源得到的属性信息是真实的该虚拟资源的属性信息,且soc枚举物理资源得到的属性信息是真实的该物理资源的属性信息。一般情况下,报文中会携带指示该报文要发送到的目的地的属性信息。当cpu0或者cpu1发送报文时,该报文中携带的属性信息是镜像虚拟资源的属性信息或镜像物理资源的属性信息。而镜像虚拟资源和镜像物理资源都在带宽分配装置中,因此,并不能使报文发送到真实的目的地,而是发送到带宽分配装置。示例性的,cpu0发送的报文中携带的属性信息为cpu0域bdf或cpu0域地址。因此,需要分别建立第一属性信息映射表和第二属性信息映射表,以进行cpu报文中携带的属性信息的转换。需要说明的是,以上是以云上网络系统包含两个cpu和一个soc为例进行说明的,在实际应用的过程中,可以云上网络系统可以只包含一个cpu,也可以包含两个以上cpu,soc可以根据云上网络系统具体包含的cpu对枚举到的虚拟资源和物理资源进行分配。带宽分配装置根据分配的虚拟资源和物理资源的属性信息为每个cpu建立镜像虚拟资源文件和镜像物理资源文件,并为每个cpu建立分配给该cpu的虚拟资源与soc中虚拟资源的属性信息的映射关系,建立分配给该cpu的物理资源与soc中物理资源的属性信息的映射关系。以上报文发送方法的前置步骤。当云上网络系统完成了如s201至s212的启动配置过程后,云上网络系统中就可以支持部署虚拟机。需要说明的是,云上网络系统中的每个cpu(如cpu0或cpu1)上都可以分别部署一个或多个虚拟机,也可以在一个cpu上部署虚拟机,也可以在多个cpu上部署虚拟机,实际应用的时候根据需要进行虚拟机的部署。本申请对此不进行限定,图5以cpu0和cpu1都部署了多个虚拟机为例进行报文的发送。本申请进行报文发送的方法可以包括以下步骤:s301:每个cpu(如cpu0或cpu1)和soc分别接收用户的指令。具体的,当每个cpu(如cpu0或cpu1)上部署的虚拟机中的任意一个虚拟机接收到用户指令时,部署该虚拟机的cpu都会接收到该指令。s302:每个cpu(如cpu0或cpu1)和soc根据该用户指令发送报文至带宽分配装置。需要说明的是,每个cpu(如cpu0或cpu1)和soc发送报文至带宽分配装置可以是并行进行的。当然本申请实施例不限于此。发送的报文可以是pcie报文。另外需要说明的是,对于云上网络系统中的soc和每个cpu来说,当具有报文发送需求时,将该报文发送至带宽分配装置。上述s301~s302仅为一个示例,其不对本申请实施例中带宽分配装置接收报文的具体实现方式构成限定。并且,在实际实现时,在一个时间段内,可能存在云上网络系统中的soc和所有cpu中的一个或多个具有报文发送需求,也可能存在云上网络系统中的soc和所有cpu均没有报文发送需求。s303:带宽分配装置分别接收来自每个cpu(如cpu0或cpu1)和soc发送的报文,并将所接收到的报文存储至对应的缓存。示例性的,带宽分配装置接收cpu0发送的报文,并将该报文存储至cpu0缓存;带宽分配装置接收cpu1发送的报文,并将该报文存储至cpu1缓存;带宽分配装置接收soc发送的报文,并将该报文存储至soc缓存。s304:对于cpu缓存(如cpu0缓存或cpu1缓存)中的报文来说,带宽分配装置根据报文存储的缓存不同查找不同的属性信息映射关系,以将该报文中携带的属性信息中的cpu域(包括cpu0域或cpu1域)的属性信息替换为属性信息映射关系中该cpu域的属性信息对应的soc域的属性信息,从而得到新报文。其中,当该报文中携带的属性信息为cpu域地址时,将该cpu域地址替换为soc域地址;当该报文中携带的属性信息为cpu域bdf时,将该cpu域bdf替换为soc域bdf。示例性的,对于cpu0缓存中存储的报文来说,带宽分配装置在第一属性信息映射关系中查找该报文头域中携带的属性信息对应的soc域下的属性信息,并将该报文头域中的属性信息替换为所查找到的soc域下的属性信息,以得到新报文。对于cpu1缓存中存储的报文来说,带宽分配装置在第二属性信息映射关系中查该报文头域中携带的属性信息对应的soc域下的属性信息,并将该报文头域中的属性信息替换为所查找到的soc域下的属性信息,以得到新报文。具体的,cpu缓存(包括cpu0域和cpu1域)中存储的报文可以是mem报文,io报文,cfg报文和msg报文中的一种或多种。需要说明的是,s304可以在s303中将报文存入缓存之前执行,也可以在报文存入缓存之后执行,本申请对此不做限定。s305:带宽分配装置获取每个cpu缓存(如cpu0缓存和cpu1缓存)和soc缓存中的报文存储情况。可选的,带宽分配装置周期性判断每个cpu缓存(如cpu0缓存和cpu1缓存)和soc缓存中是否存储有未发送的报文,并根据每个cpu缓存(如cpu0缓存和cpu1缓存)和soc缓存中的判断结果获取报文存储情况。其中,未发送的报文指已经完成步骤s304中的属性信息替换的报文且没有发送到网卡的报文。下文中的未发送的报文也是指同样的意思。以云上网络系统中包括的cpu为cpu0和cpu1为例,报文存储情况可以包括:情况1:cpu0缓存存储有未发送的报文、cpu1缓存存储有未发送的报文、soc缓存存储有未发送的报文;情况2:cpu0缓存存储有未发送的报文、cpu1缓存存储有未发送的报文、soc缓存没有存储未发送的报文;情况3:cpu0缓存存储有未发送的报文、cpu1缓存没有未发送的存储报文、soc缓存没有存储未发送的报文;情况4:cpu0缓存没有存储未发送的报文、cpu1缓存没有存储未发送的报文、soc缓存没有存储未发送的报文;情况5:cpu0缓存存储有未发送的报文、cpu1缓存没有存储未发送的报文、soc缓存存储有未发送的报文;情况6:cpu0缓存没有存储未发送的报文、cpu1缓存存储有未发送的报文、soc缓存存储有未发送的报文;情况7:cpu0缓存没有存储未发送的报文、cpu1缓存存储有未发送的报文、soc缓存没有存储未发送的报文;情况8:cpu0缓存没有存储未发送的报文、cpu1缓存没有存储未发送的报文、soc缓存存储有未发送的报文。可扩展的,以云上网络系统中包括n个cpu为例,报文存储情况可以包括以下情况一至情况四:情况一、云上网络系统中的n个cpu缓存中的m个cpu缓存中均存储有报文,且soc缓存中存储有报文其中,1≤m≤n,m和n是整数。例如,上述情况1、5、6。情况二、云上网络系统中的n个cpu缓存中的m个cpu缓存中均存储有报文,但soc缓存中没有存储报文。例如,上述情况2、3、7。情况三、云上网络系统中的n个cpu缓存中的每个cpu缓存中都没有存储报文,且soc缓存中存储有报文。例如,上述情况8。情况四、云上网络系统中的soc缓存,以及n个cpu缓存中的每个cpu缓存中都没有存储报文。例如,上述情况4。以云上网络系统中的cpu为cpu0和cpu1为例,如果cpu0缓存的概率配置为任意一个百分数p,其中,0≤p≤1,那么,cpu1缓存的概率为1-p。cpu0缓存的概率和cpu1缓存的概率可以相等也可以不相等。示例的,当二者不相等时,cpu0缓存的概率和cpu1缓存的概率可以分别为60%和40%等。s306:带宽分配装置基于获取的每个cpu缓存(如:cpu0缓存或cpu1缓存)和soc缓存中的报文存储情况,发送报文(具体可以是未发送的报文)至网卡。具体的:一、当报文存储情况为上述情况一时,带宽分配装置优先发送该m个cpu缓存中存储的报文,m个cpu缓存中存储的报文都发送完之后,再发送soc缓存中存储的报文。可选的,当m≥2时,带宽分配装置发送该m个cpu缓存中存储的报文可以包括:获取该m个cpu中的每个cpu缓存的概率;采用第m概率发送m个cpu缓存中的第m个cpu缓存中存储的报文,其中,1≤m≤m;m是整数。第m概率是第m个cpu缓存的概率,且第一概率到第m概率之和为1。其中,cpu缓存的概率,是指带宽分配装置在一次报文的发送过程中,发送该cpu缓存中存储的报文的概率。任意两个cpu缓存的概率可以相同或不同。任意一个cpu缓存的概率可以是用户配置或者soc指示的。在一种实现方式中,任意一个cpu缓存的概率由用户预先配置在带宽分配装置中。在另一种实现方式中,soc提前将用户预先配置的任意一个cpu缓存的概率发送给带宽分配装置。可选的,对于每个cpu缓存来说,其概率配置好之后是可以修改的,如soc可以根据用户的指示修改该cpu缓存的概率,并下发修改后的该cpu缓存的概率给带宽分配装置。本申请实施例对带宽分配装置如何根据该m个cpu缓存中每个cpu缓存的概率发送该m个cpu缓存中的报文的具体实现方式不进行限定。例如:在一种实现方式中,带宽分配装置根据选择算法,从该m个cpu缓存中存储有未发送的报文的cpu缓存中选择一个cpu缓存作为目标cpu缓存,并发送所述目标cpu缓存中的一个报文;以此类推,直至将该m个cpu缓存中的报文发送完;其中,该选择算法是使得发送第m个cpu缓存中存储的报文的概率为第m概率的选择算法。例如,该选择算法可以是基于权重或者优先级的仲裁算法等。为了方便描述,以云上网络系统中的cpu为cpu0和cpu1为例,当获取的报文存储情况是上述情况1时,以cpu0缓存和cpu1缓存的概率均为50%为例,对随机数选择算法进行说明:假设cpu0缓存的概率为50%,对应的取值范围为[1,50];cpu1缓存的概率为50%,对应的取值范围为[51,100];带宽分配装置一个随机数,该随机数是1~100中的任意一个整数。当该随机数属于[1,50]时,将cpu0作为目标cou缓存;当该随机数属于[51,100]时,将cpu1作为目标cpu缓存。然后,发送目标cpu缓存中存储的a个报文。其中,a是大于或等于1的整数。依此类推,直至发送完该m个cpu缓存中所存储的所有报文为止。可以理解的是,当cpu0缓存的概率与cpu1缓存的概率不相等时,这两个cpu缓存对应的取值范围不均分;例如,当cpu0缓存的概率和cpu1缓存的概率分别为60%和40%时,若以生成的随机数的范围仍是1~100中的整数,则cpu0缓存所对应的取值范围可以是[1,60]中的整数;cpu1缓存所对应的取值范围可以是[61,100]中的整数。其他示例不再一一列举。并且,可扩展地,该方法也可以适用于三个或三个以上cpu缓存的场景。另外,以当获取的报文存储情况是上述情况1,且cpu0缓存和cpu1缓存的概率均为50%为例:可选的,在一个周期内,带宽分配装置n次发送cpu0缓存中存储的报文至网卡,n次发送cpu1缓存中存储的报文至网卡。依此类推,直至发送完该m个cpu缓存中所存储的所有报文为止。其中,n为正整数。在一个示例中,连续m次发送cpu0缓存中存储的报文至网卡之后,连续m次发送cpu1缓存中存储的报文至网卡,依次类推,直至发送完该m个cpu缓存中所存储的所有报文为止。m为大于等于2的整数,且小于一个阈值。可以理解的是,一个周期的时间越长,在整个周期内带宽分配装置发送cpu0缓存中存储的报文至网卡的概率越接近于50%;带宽分配装置发送cpu1缓存中存储的报文至网卡的概率也越接近于50%。在另一个示例中,顺序循环发送cpu0和cpu1缓存中存储的报文至网卡,前后两个报文分别来自不同的cpu缓存。例如,前一次发送cpu0缓存中存储的报文,那么接下来则发送cpu1缓存中存储的报文,再接下来发送cpu0缓存中存储的报文,再发送cpu1缓存中存储的报文,以此类推,直至cpu0缓存和cpu1缓存中存储的报文都发送完毕。需要说明的是,如果一个cpu缓存的概率是a,则在一个周期内,带宽分配装置发送该cpu缓存中存储的报文的时间占整个周期的百分比是a。0≤a≤1。可选的,当m=1时,带宽分配装置发送该m个cpu缓存中存储的报文可以包括:直接发送该cpu缓存中存储的报文。该情况下,带宽分配装置发送该cpu缓存中报文的概率是100%。例如,当获取的报文存储情况是情况5时,带宽分配装置采用100%的概率发送cpu0缓存中存储的报文至网卡,直至cpu0缓存中存储的所有报文发送完成后,带宽分配装置采用100%的概率发送soc缓存中存储的报文至网卡。又如,当获取的报文存储情况是情况6时,带宽分配装置采用100%的概率发送cpu1缓存中存储的报文至网卡,直至cpu1缓存中存储的所有报文发送完成后,带宽分配装置采用100%的概率发送soc缓存中存储的报文至网卡。需要说明的是,如果在一个周期的一半时间内cpu0缓存中不存在报文时,则发送soc缓存中存储的报文至网卡,那么,整个周期中发送cpu0缓存中存储的报文的时间占整个周期的50%。如果在一个周期内cpu0缓存中都存储有报文时,则cpu0缓存中存储的报文有100%的概率被发送至网卡。本申请保护优先发送cpu(包括cpu0和cpu1)缓存中存储的报文。对于带宽分配装置来说各个cpu会被公平对待。以上例子中只是本申请中可能遇到的一部分情况,其他由于各个缓存(包括cpu缓存和soc缓存)中的数据量本身造成的一个周期内带宽分配装置发送cpu缓存中存储的报文的时间占整个周期的百分比的不同,都在本申请的保护范围之内。二,当报文存储情况为上述情况二时,带宽分配装置发送该m个cpu缓存中存储的报文。可选的,当m≥2时,带宽分配装置可以使用如情况一中m≥2时同样的方式发送m个cpu缓存中存储的报文。可选的,当m=1时,带宽分配装置采用100%的概率发送存储有报文的cpu缓存中存储的报文。例如,当获取的报文存储情况是情况3时,带宽分配装置采用100%的概率发送cpu0缓存中存储的报文。又如,当获取的报文存储情况是情况7时,带宽分配装置采用100%的概率发送cpu1缓存中存储的报文。三,当报文存储情况为上述情况三时,带宽分配装置采用100%的概率发送soc缓存中存储的报文。四,当报文存储情况为上述情况四时,带宽分配装置不发送报文。例如,上述情况4。本实施例中的步骤s305-s306带宽分配装置根据获取的cpu0缓存、cpu1缓存和soc缓存中的报文存储情况管理报文发送的具体流程,以及使用此方法发送报文时cpu0和cpu1可以达到的峰值带宽情况如图6中所示,其中,峰值带宽表示单位时间内cpu能发送的报文数量的最大值。图6中以网卡带宽总量为×16为例。其中,当获取的报文存储情况是情况1或2时,cpu0和cpu1能使用的峰值带宽分别为×8。当获取的报文存储情况是情况3、7、8中的任意一种时,cpu0和cpu1能使用的峰值带宽分别为×16。当获取的报文存储情况是情况5或6时,cpu0和cpu1能使用的峰值带宽分别为×16。上文中均以优先发送cpu缓存中存储的报文为例,实际使用时,也可以根据需要,综合为cpu缓存中存储的报文和soc缓存中存储的报文分配概率值。综合分配时,假设分配给各个cpu缓存中存储的报文的概率之和为q,则分配给soc缓存中存储的报文的概率就为1-q,且0≤q≤1。如果获取的报文存储情况为上述情况一时,带宽分配装置按照概率发送该m个cpu缓存中存储的报文和soc缓存中存储的报文。可选的,当m≥2时,带宽分配装置发送该m个cpu缓存中存储的报文和soc缓存中存储的报文可以包括:获取该m个cpu中的每个cpu缓存的概率和soc缓存的概率;采用第m概率发送m个cpu缓存中的第m个cpu缓存中存储的报文,其中,1≤m≤m;m是整数。第m概率是第m个cpu缓存的概率,且第一概率到第m概率之和为q。例如:为cpu缓存中存储的报文分配的概率之和为80%,为soc分配的概率为20%。同样的,任意一个cpu缓存的概率和soc缓存的概率可以是用户配置或者soc指示的。在一种实现方式中,任意一个cpu缓存的概率和soc缓存的概率由用户预先配置在带宽分配装置中。在另一种实现方式中,soc提前将用户预先配置的任意一个cpu缓存的概率和soc缓存的概率发送给带宽分配装置。可选的,对于每个cpu缓存来说,其概率配置好之后是可以修改的,如soc可以根据用户的指示修改该cpu缓存的概率,并下发修改后的该cpu缓存的概率给带宽分配装置。上文实施例中由于加入了带宽分配装置,由各个cpu和soc发出的报文都统一发送至带宽分配装置的对应缓存。再由带宽分配装置根据各个缓存中的报文存储情况发送各个缓存中存储的报文,以达到动态智能分割网卡的物理带宽的效果,这有助于提高了i/o性能,从而提高了用户体验。示例性的,soc可以用来执行网络流表的创建、刷新、查找。因此,本申请实施例提供的技术方案,有助于在解决网络流表的创建、刷新、查找消耗cpu资源大的问题的同时,提高i/o性能,从而提高了用户体验。上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。本申请实施例可以根据上述方法示例对带宽分配装置进行功能模块的分配,例如可以对应各个功能分配各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的分配是示意性的,仅仅为一种逻辑功能分配,实际实现时可以有另外的划分方式。如图7所示,为本申请实施例提供的一种带宽分配装置的结构示意图。该带宽分配装置103可以用于执行上文中任意一个实施例(如图4~图6所示的任一实施例)中带宽分配装置所执行的功能。带宽分配装置103可以包括:存储模块1030、处理模块1031和收发模块1032。其中,存储模块1030分别与处理模块1031和收发模块1032相连;收发模块1032,用于实现报文的路由;该模块支持基于地址路由和基于bdf路由两种路由方式,soc发送给网卡的config_read或config_write报文都需要经过该收发模块,网卡回响应给soc的完成报文也需要经过该收发模块。存储模块1030,包括n个中央处理器cpu缓存和片上系统soc缓存;一个cpu缓存用于缓存一个cpu发送给带宽分配装置的报文,soc缓存用于缓存soc发送给带宽分配装置的报文;n是正整数;处理模块1031,用于获取n个cpu缓存和soc缓存中的报文存储情况;结合图5,处理模块1031可以用于执行s304-s305。收发模块1032,用于如果报文存储情况包括n个cpu缓存中的m个cpu缓存中均存储有报文,且soc缓存中存储有报文,则发送m个cpu缓存中存储的报文至网卡;当m个cpu缓存中存储的报文都发送完之后,再发送soc缓存中存储的报文至网卡;其中,1≤m≤n,m是整数;或者,如果报文存储情况包括n个cpu缓存中的m个cpu缓存中均存储有报文,但soc缓存中没有存储报文,则发送m个cpu缓存中存储的报文至网卡。例如,结合图5,收发模块1032可以用于执行s306的发送步骤。可选的,当m大于等于2时收发模块1032具体用于:采用第m概率发送m个cpu缓存中的第m个cpu缓存中存储的报文至网卡,其中,1≤m≤m;m是整数;第一概率到第m概率之和为1。例如,结合图6,收发模块1032可以用于执行s306的发送步骤。可选的,处理模块1031具体用于根据选择算法,从m个cpu缓存中存储有未发送的报文的cpu缓存中选择一个cpu缓存作为目标cpu缓存,收发模块1032用于发送目标cpu缓存中的报文,直至将m个cpu缓存中的报文发送完;其中,选择算法是使得发送第m个cpu缓存中存储的报文的概率为第m概率的选择算法。例如,结合图6,收发模块1032可以用于执行s306的发送步骤。可选的,存储模块1030用于存储m个cpu中的第一cpu的多个资源中每个资源的第一cpu域属性信息与soc域属性信息之间的对应关系;其中,资源为soc分配给第一cpu的虚拟资源或物理资源,属性信息包括地址或总线设备功能标识bdf。处理模块1031具体用于根据多个资源中每个资源的第一cpu域属性信息与soc域属性信息之间的对应关系,确定与第一报文中携带的第一cpu域中的属性信息对应的soc域中的属性信息;其中,第一报文是第一cpu缓存中的任意一个报文;并将第一报文中携带的第一cpu域的属性信息替换为与第一报文中携带的第一cpu域的属性信息对应的soc域中的属性信息,得到第二报文。例如,结合图5,处理模块1031可以用于执行s304。收发模块1032用于发送m个cpu缓存中存储的报文至网卡包括:收发模块1032用于发送第二报文至网卡。例如,结合图6,收发模块1032可以用于执行s306的发送步骤。可选的,收发模块1032用于接收soc发送的第一资源的soc域的属性信息,其中第一资源包括分配给第一cpu的虚拟资源或物理资源。收发模块1032用于接收第一cpu发送的第一资源的第一cpu域的属性信息。例如,结合图4,收发模块1032可以用于执行s211中的接收步骤。处理模块1031用于建立第一资源的soc域的属性信息与第一资源的第一cpu域的属性信息之间的对应关系。例如,结合图4,处理模块1031可以用于执行s206和s212。可选的,如果报文存储情况包括n个cpu缓存中的每个cpu缓存中都没有存储报文,且soc缓存中存储有报文时,则收发模块1032用于发送soc缓存中存储的报文至网卡。例如,结合图6,收发模块1032可以用于执行s306中的情况8。在一个示例中,参见图3,上述收发模块1032和处理模块1031均可以由图3中的处理器201调用存储器203中存储的计算机程序实现。收发模块1032可以包含图3中的路由器205和通信接口204,其中,路由器205可以是一个虚拟交换机或虚拟网络交换机(virtualswitch,vswitch)或者迷你交换机,该路由器205的结构可以为一个上行口两个下行口的1up-2dp结构。关于上述可选方式的具体描述参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种带宽分配装置103的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。如图8所示,为本申请实施例提供的一种片上系统soc的结构示意图。该片上系统soc80可以用于执行上文中任意一个实施例(如图4~图5所示的任一实施例)中soc所执行的功能。片上系统soc80可以包括:处理模块801、存储模块802和收发模块803。其中,存储模块802分别与处理模块801和收发模块803相连。处理模块801,用于枚举网卡上的虚拟资源和物理资源;并获取该虚拟资源的属性信息和该物理资源的属性信息;该属性信息包括soc域的地址或soc域的总线设备功能标识bdf。收发模块803,用于发送虚拟资源和物理资源的属性信息至带宽分配装置;其中,物理资源的属性信息用于带宽分配装置建立该物理资源在soc域的属性信息与该物理资源在cpu域的属性信息之间的对应关系;虚拟资源用于该带宽分配装置建立虚拟资源在soc域的属性信息与该虚拟资源在cpu域的属性信息之间的对应关系。报文的发送和接收。例如,结合图4,处理模块801可以用于执行s203至s204。收发模块803可以用于执行s202和s207中的接收步骤,执行s205中的发送步骤。结合图5,收发模块803可以用于执行s301中接收步骤和s302中的发送步骤。可选的,处理模块801还用于流表的创建、刷新和查找。关于上述可选方式的具体描述参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种片上系统soc80的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。需要说明的是,上文中所描述的处理器可以通过硬件来实现也可以通过软件来实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。该存储器可以集成在处理器中,也可以位于处理器之外,独立存在。本申请实施例还提供了一种网络带宽处理系统,包括上文中提供的cpu和上文中提供的soc和带宽分配装置和网卡。关于带宽分配装置所执行的步骤可以参考上文,此处不再赘述。本申请实施例还提供了一种芯片。该芯片中集成了用于实现上述带宽分配装置或soc的功能的电路和一个或者多个接口。可选的,该芯片支持的功能可以包括基于图4图5所述的实施例中的处理动作,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(applicationspecificintegratedcircuit,asic)、微处理器(digitalsignalprocessor,dsp),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。应注意,本申请实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。尽管结合具体特征及其实施例对本申请进行了描述,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1