CN105450522A - 用于在虚拟机之间路由服务链流分组的技术 - Google Patents

用于在虚拟机之间路由服务链流分组的技术 Download PDF

Info

Publication number
CN105450522A
CN105450522A CN201510527818.3A CN201510527818A CN105450522A CN 105450522 A CN105450522 A CN 105450522A CN 201510527818 A CN201510527818 A CN 201510527818A CN 105450522 A CN105450522 A CN 105450522A
Authority
CN
China
Prior art keywords
stream
grouping
virtual switch
service
service chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510527818.3A
Other languages
English (en)
Other versions
CN105450522B (zh
Inventor
M·D·格雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN105450522A publication Critical patent/CN105450522A/zh
Application granted granted Critical
Publication of CN105450522B publication Critical patent/CN105450522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

各示例可以包括具有能够支持主机操作系统和多个虚拟机(VM)的多核处理器的主机计算平台。支持可以包括能够独立地支持各个VM的多核处理器的处理元件或核。各个VM能够执行用来处理服务链流的各分组的独立的应用。在一些示例中,用于在各个VM之间路由服务链流的分组的技术可以包括在各个VM之间分发至少一些交换逻辑。

Description

用于在虚拟机之间路由服务链流分组的技术
技术领域
在此描述的各示例通常涉及路由分组以供虚拟机上执行的应用来处理。
背景技术
可以包括与客户机计算设备耦合的网络服务器的计算平台不断增加,它们被安排为支持或主控(多个)虚拟机(VM),这些虚拟机允许多个操作系统和/或应用被执行在包括一个或多个多核处理器的单个计算平台上。多核处理器的诸个处理元件或核能够支持多个VM。每一个VM能够独立地执行至少一个应用。在一些示例中,网络服务器可以被安排为提供一组网络服务,例如负载均衡器、防火墙或入侵检测系统。在一些情况中,这组网络服务可以被称为服务链。能够独立地执行应用的VM可以被安排为处理根据服务链流从客户机接收的网络分组。
被安排为在VM之间对服务链流的诸个分组进行路由的软件虚拟交换机正在变得日益普遍。当前的虚拟交换技术,例如包括2014年3月公布的OpenFlow交换机规范1.3.4版和/或这种标准的后续版本的一种或多种行业标准或规范所描述的那些技术,可以依赖于在主机操作系统上运行或执行的一个虚拟交换机应用来在VM之间交换服务链流的分组。在网络功能虚拟化(NFV)部署中,多个线程可以专用于虚拟交换。可以把这些线程关联到多核处理器的多个核,然后,这些核主要地或完全地用于在VM之间交换服务链流的分组。
附图说明
图1阐释示例第一系统。
图2阐释示例第二系统。
图3阐释示例共享存储器网格。
图4阐释第一装置的示例框图。
图5阐释第一逻辑流的示例。
图6阐释第一存储介质的示例。
图7阐释第二装置的示例框图。
图8阐释第二逻辑流的示例。
图9阐释第二存储介质的示例。
图10阐释示例计算平台。
具体实施方式
如在本公开内容中所设想的,NFV部署可以导致多核处理器的多个物理核被专用于在VM之间交换服务链流的分组。至少出于两个方面的原因,专用的多个物理核会带来问题。首先,在多个核专用于软件虚拟交换机时,这些核可以变成瓶颈,在NFV部署中典型的高分组率下尤其如此。潜在的瓶颈会限制把服务链扩展为包括附加的服务的可能性。在峰值分组流量周期期间,瓶颈可以引起不可接受的交换延迟时间和/或吞吐量,且因而可以限制服务链中的链接以便避免不可接受的交换延迟时间或性能。第二,由虚拟交换机所接收的服务链流的每一分组都需要被分类。对分类的这种需要可以使得虚拟交换机在路由服务链流的各分组时更加成为瓶颈。例如,由五个不同的VM所执行的应用所服务的示例服务链流会具有穿过五个不同的VM以供由应用处理的分组。穿过五个不同的VM可以引起服务链流也穿过虚拟交换机六次。
已经做出一些尝试来限制形成瓶颈的软件虚拟交换机的影响,例如允许跨越核自由调度各线程、若干线程共享核或允许创建新线程。然而,由于与线程调度相关联的开销,性能可能受到损害。限制影响的另一选项可以是在固定路径中把多个VM串联在一起。这种选项将消除对虚拟交换机的需要,但也将消除了控制服务链流穿过VM的路径的能力。这可能减少可以看到与给定服务链相关联的服务类型和工作量的起伏的可能动态环境中的灵活性。针对这些挑战,需要在此描述的各示例。
根据一些第一示例,用于在VM之间可以路由服务链流分组的技术包括在多核处理器的第一处理元件所支持的主机操作系统处接收配置虚拟交换机的请求,所述虚拟交换机被用来在分别由多核处理器的各个第二和第三处理元件支持的第一和第二VM之间路由服务链流的各分组。对于这些第一示例,配置虚拟交换机可以包括生成全局流表,以便指示服务流的各分组遵循的路线,以供由第一和第二VM执行的诸个单独应用来处理。配置虚拟交换机也可以包括把全局流表划分成第一和第二流表,以供在由诸个单独应用分别处理之后分别由第一和第二VM用来路由服务链流的各分组。配置虚拟交换机也可以包括向第一和第二VM指示第一和第二流表。然后,可以仅向请求者提供全局流表,以便指示虚拟交换机的配置。
在一些第二示例中,用于在VM之间路由服务链流分组的技术可以包括在多核处理器的第一处理元件所支持的第一VM处接收要由第一VM执行的第一应用处理的服务链流的分组。这些技术也可以包括访问在多个流表当中的第一流表,第一流表供第一VM用来在由第一应用进行服务链处理之后路由分组。技术也可以包括确定把额外服务链处理的分组路由到多核处理器的第二处理元件所支持的第二VM。这些技术也可以包括向第二VM发送消息,所述消息包括到在第一和第二VM之间共享的存储器中的第一位置的第一引用,以供第二VM接收由第二VM执行的第二应用进行的额外服务链处理的分组。
图1阐释示例第一系统。在一些示例中,如图1中所示出,第一示例系统包括系统100。系统100包括具有包括多个处理元件(PE)/核112-1到112-n的多核处理器110的主机计算平台105,其中“n”是大于1的任何正整数。根据一些示例,PE/核112-1到112-n能够独立地支持诸个虚拟机VM或者被安排为独立地支持诸个虚拟机VM,这些VM在图1被示出为VM1到VMm,其中m=n–1。而且,每一PE/核能够支持主机操作系统(O/S)(例如PE/核112-1)。每一VM可以被安排为具有可以执行或运行一个或多个应用的虚拟中央处理单元(VCPU)(例如,VM1-VMm)。
根据一些示例,VM可以是机器的软件实现,例如可以类似于物理机器执行程序或应用的计算机。VM可以被分成两个示例类,这可以基于用途以及与真实机器的对应程度。第一示例类可以是系统VM。系统VM可以提供支持执行完整O/S的完整系统平台。系统VM可以仿真现有的体系结构,且可以为以下目的而构建:在真实硬件不能使用(例如,在早已过时的平台上执行)的实例中提供平台以便运行程序/应用,或拥有多个虚拟机实例以便更有效地使用计算资源。系统VM也可以基于被称为容器的技术,该技术允许被称为“容器”的多个隔离的用户空间实例,这些容器虚拟化了服务器,使得从用户或客户机的观点来看是作为真实服务器出现的。第二示例类可以是进程VM。进程VM可以被设计为运行单个程序/应用和/或支持单个进程。
在一些示例中,如图1中所示出,主机计算平台105可以经由通过网络140路由的网络(NW)通信信道142耦合到客户机150。外部网络接口111能够经由网络通信信道142接收网络分组,以便最终由PE/核112-2到112-n所支持的VM1到VMm执行的一个或多个应用处理。例如,存储器120可以被安排为在接收之后和/或在VM1到VMm执行的一个或多个应用处理之后至少临时地保存这些分组的至少一部分。根据一些示例,主机计算平台105可以位于被安排为向诸如客户机150之类的客户机提供网络服务的数据中心或服务器群中。
在一些示例中,如图1中所示出,网络管理器160可以经由通过网络170路由的内部网络通信信道172耦合到主机计算平台105。根据一些示例,内部网络通信信道172可以通过在计算平台105处的内部网络接口耦合到PE/核,PE/核被安排为支持主机O/S。例如,如图1中所示出,PE/核112-1可以支持主机O/S且可以通过内部网络接口113耦合到内部NW通信信道172。
如下面更多描述的,诸如网络管理器160之类的网络管理器可以发送配置虚拟交换机的请求,所述虚拟交换机被用来在VM(例如,VM1到VMm)之间路由服务链流的各分组,例如服务链流130。可以经由诸如内部网络通信信道172之类的内部网络通信信道发送该请求,且由诸如PE/核112-1之类的多核处理器110的PE/核所支持的主机O/S接收该请求。可以通过诸如内部网络接口113之类的内部网络接口接收该请求。而且,可以在主机O/S和执行应用以便处理服务链流130的分组的每一VM之间建立诸如VSwitch控制路径115之类的虚拟交换机(VSwitch)控制路径。
根据一些示例,如下面更多描述的,被用来路由服务链流的各分组的虚拟交换机的配置可以包括在VM之间分发虚拟交换逻辑,该虚拟交换逻辑允许在由该VM独立地执行的应用进行了服务链处理之后路由服务链流的分组。虚拟交换逻辑的分发可以包括生成全局流表,且然后把全局流表划分成独立的流表,以供由各个VM用来在VM所执行的应用分别处理之后路由服务链流的分组。对于这些示例,请求者(例如,网络管理器160)可以仅看到全局流表或拥有对全局流表的访问权。同时,执行应用以便处理服务链流的分组的VM可以仅看到从全局流表划分的它们各自的流表或拥有对它们各自的流表的访问权。
在一些示例中,服务链流可以用于电子邮件服务链、流送视频服务链、流送音频服务链、服务提供商服务链、网络存储服务链、社交网络服务链或网络安全服务链。各示例不限于仅这些类型的服务链,设想其他类型。而且,对于这些示例,由多核处理器的PE/核所支持的VM分别执行的应用可以均被安排为处理服务链流的分组。取决于服务链的类型,每一应用可以处理分组以执行具体的网络服务。例如,电子邮件服务链可以包括诸如防病毒、垃圾邮件检测或钓鱼检测之类的网络服务。例如,服务提供商服务链可以包括用户深层分组检测(deeppacketinspection)或流量建模的网络服务。
图2阐释示例第二系统。如图2中所示出,示例第二系统包括系统200。在一些示例中,系统200可以包括PE/核212-1到212-n,它们可以是类似于图1中所示出的多核处理器110的多核处理器的部分。对于这些示例,如图2中所示出,PE/核212-1支持主机O/S,而PE/核212-2到212-n支持被标识为VM1到VMm的虚拟机VM。VM1到VMm能够执行各自的应用(App)0到q,其中“q”是大于5的任何正整数。
根据一些示例,网络管理器260可以包括供用户经由一请求来配置虚拟交换机的装置(例如,带有显示器的键盘/触摸屏幕),该请求被发送给PE/核212-1所支持的主机O/S并由其处理。该请求可以是把虚拟交换机配置为在VMVM1到VMm之间路由服务链流230的分组以供各个App(0)到App(q)处理。对于这些示例,配置虚拟交换机可以包括生成全局流表240,全局流表向用户或请求者指示服务流的各分组可以遵循的路线,以供由各个VMVM1到VMm执行的应用App(0)到App(q)处理。配置虚拟交换机也可以包括把全局流表240划分成用于VM1到VMm中的每一VM的独立的流表,且然后把这些独立的流表指示给各个VM:VM1到VMm。由于每一VM能够执行虚拟交换逻辑的至少一部分,避免把主机O/S和/或PE/核212-1资源花费在交换上是可能的。这种避免交换可以释放PE/核资源。
在一些示例中,如图中所示出2,虚拟交换机(VSwitch)控制路径115可以把主机O/S与执行各个应用App(0)到App(q)的VMVM1到VMm耦合起来。对于这些示例,主机O/S和/或PE/核212-1的逻辑和/或特征能够经由VSwitch控制路径115指示独立的流表。例如,指示可以包括提供被安排为保存从全局流表240划分的各个流表的存储器220中的存储器地址范围。对于这些示例,通过提供个体流表以供由VM1到VMm使用,每一VM能够执行虚拟交换逻辑的至少一部分,以便在被配置为执行处理服务链流230的分组的应用的VM之间路由这些分组。
根据一些示例,每一VM的流表可以包括源地址信息(例如,源介质访问控制(MAC)地址),以便指示可以接收服务链流230的分组的位置。每一VM的流表也可以指示目的地地址信息(例如,目的地MAC地址),以便指示在由具体的VM执行的应用处理之后把服务链流230的分组路由到的位置。
图3阐释示例共享存储器网格300。如图3中所示出,共享存储器网格300示出耦合在一起以便形成共享存储器网格300的PE/核212-2到212-n。根据一些示例,共享存储器网格300可以包括共享存储器环(例如,动态随机存取存储器(DRAM)),该共享存储器环能够允许在VM1到VMm当中的每一VM接收服务链的分组,例如图2中所示出的服务链230的那些分组。对于这些示例,可以以零副本方式接收各分组。例如,在PE/核212-2处的App(0)的处理之后,VM1可以包括首先使用VM1的流表来把消息发送给VM2(目的地VM)的逻辑和/或特征,该消息指示在App(0)的处理之后已经存储了服务链流230的一个或多个分组的共享存储器中的位置。由于提供共享存储器的位置的指示而不是把一个或多个分组复制到被指派给由VM2执行的App(1)的缓冲器或存储器,可以由VM2以零副本方式接收一个或多个分组。
图4阐释第一装置的示例框图。如图4中所示出,第一装置包括装置400。尽管图4中所示出的装置400具有以某种拓扑的有限数量的元素,但应明白,根据给定实现的期望,装置400可以包括以替代拓扑的更多或更少的元素。
装置400可以受到电路420的支持,电路420可以是在主机计算平台处维护的多核处理器的PE/核。电路420可以被安排为支持能够执行实现模块或组件422-a的一个或多个软件或固件的VM422。值得注意的是,在此所使用的“a”和“b”和“c”和类似指示符预期是表示任何正整数的变量。因而,例如,如果一种实现设定值a=4,那么,组件422-a的软件或固件的全集可以包括组件422-1、422-2、422-3或422-4。在本上下文中不限制所呈现的示例,且贯穿全文使用的不同的变量可以表示相同或不同的整数值。
根据一些示例,电路420可以是多核处理器的PE/核,该多核处理器可以来自各种可商购的处理器中的任何,包括而不限于处理器;应用、嵌入式和安全处理器;处理器;IBM和Cell处理器;Core(2)Corei3、Corei5、Corei7、Xeon处理器;以及类似处理器。
根据一些示例,装置400可以包括接收组件422-1。接收组件422-1可以由电路420所支持的VM422执行。对于这些示例,接收组件422-1可以接收要由也由VM执行的应用处理的服务链流的分组。例如,分组可以被包括在(多个)分组415中。接收组件422-1可以经由使用消息410中所包括的第一消息来接收分组,该消息具有到与至少临时存储要由VM执行的应用处理的分组的至少部分的其他VM共享的存储器中的第一位置的第一引用。
根据一些示例,装置400可以包括访问组件422-2。访问组件422-2可以由电路420所支持的VM422执行。对于这些示例,访问组件422-2可以访问在多个流表当中的流表,以便在由VM执行的应用处理之后路由分组。所述多个流表可以是从全局流表划分以供由各个的VM使用的独立的流表,以便路由服务链流的分组。流表可以由流表425-b中的访问组件422-2保存(例如,在查找表(LUT)中)。
在一些示例中,已经经由配置消息405中所包括的第二消息传输要访问的流表。对于这些示例,在虚拟交换机的配置之后,访问组件422-2已经从由不同的VM执行的O/S接收第二消息。虚拟交换机的配置已经把交换逻辑的一部分分发给VM,以便在该VM和至少一个其他VM之间路由服务链流的分组。
根据一些示例,装置400可以包括路由组件422-3。路由组件422-3可以由电路420所支持的VM422执行。对于这些示例,路由组件422-3可以使用在流表425-b中保存的流表来在服务链处理之后把分组路由到包括电路420的多核处理器的另一PE/核所支持的另一VM。其他VM可以运行可执行额外服务链处理的另一应用。
在一些示例中,装置400可以包括引用组件422-4。引用组件422-4可以由电路420所支持的VM422执行。对于这些示例,引用组件422-4可以把第三消息发送给其他VM,该消息包括到在VM和其他VM之间共享的存储器中的第二位置的第二引用。然后,其他VM可以使用第二位置来从存储器接收分组且允许其他应用执行额外服务链处理。消息430可以包括发送给其他VM的第三消息,该消息包括到第二位置的第二引用。
在此包括的是表示用于执行所公开的体系结构的各新颖方面的示例方法的一组逻辑流。尽管出于简化解释的目的,把在此示出的一种或多种方法示出和描述为一系列动作,但本领域中的技术人员将理解和明白,各方法不受各动作的顺序限制。根据其的一些动作可以按与在此示出和描述的其他动作不同的顺序发生和/或与其并发地发生。例如,本领域中的技术人员将理解和明白,一种方法可以备选地被表示成一系列相互联系的状态或事件,例如用状态图表示。此外,对于新颖的实现,并不要求方法中所阐释的所有动作。
逻辑流可以以软件、固件和/或硬件实现。在软件和固件实施方式中,逻辑流可以由存储在诸如光、磁或半导体存储之类的至少一个非暂态计算机可读介质或机器可读介质上的计算机可执行指令实现。各实施方式不限于此上下文。
图5阐释第一逻辑流的示例。如图5中所示出的,第一逻辑流包括逻辑流500。逻辑流500可以是表示诸如装置400之类的在此描述的一个或多个逻辑、特征或设备执行的操作中的一些或全部。更具体地,逻辑流500可以至少由接收组件422-1、访问组件422-2、路由组件422-3或引用组件422-4实现。
根据一些示例,逻辑流500在框502可以在多核处理器的第一PE/核(例如,电路420)所支持的第一VM处接收要由第一VM执行的第一应用处理的服务链流的分组。对于这些示例,接收组件422-1可以接收该分组。
在一些示例中,逻辑流500在框504可以访问在多个流表当中的第一流表,第一流表供第一VM用来在由第一应用进行服务链处理之后路由分组。对于这些示例,访问组件422-2可以访问第一流表。
根据一些示例,逻辑流500在框506可以确定把额外服务链处理的分组路由到多核处理器的第二处理元件所支持的第二VM。对于这些示例,路由组件422-3可以使用第一流表来确定路由分组以供进行额外服务链处理的第二VM。
根据一些示例,逻辑流500在框508可以向第二VM发送消息,该消息包括到在第一和第二VM之间共享的存储器中的第一位置的第一引用,以供第二VM接收由第二VM执行的第二应用所进行的额外服务链处理的分组。对于这些示例,引用组件422-4可以把消息发送给第二VM或引起该发送。
图6阐释第一存储介质的示例。如图6中所示出,第一存储介质包括存储介质600。存储介质600可以包括制造产品。在一些示例中,存储介质600可以包括任何非暂态计算机可读介质或机器可读介质,例如光、磁或半导体存储。存储介质600可以存储各种类型的计算机可执行指令,例如实现逻辑流500的指令。计算机可读或机器可读的存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除的存储器,可写或可重写存储器等等。计算机可执行指令的示例可以包括任何合适的类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等等。在本上下文中不限制这些示例。
图7阐释第二装置的示例框图。如图7中所示出,第一装置包括装置700。尽管图7中所示出的装置700具有以某种拓扑的有限数量的元素,但应明白,根据给定实现的期望,装置700可以包括以替代的拓扑的更多或更少的元素。
装置700可以包括电路720,电路720可以是在主机计算平台处维护的多核处理器的PE/核。电路720可以被安排为支持能够执行实现模块或组件722-a的一个或多个软件或固件的主机O/S722。值得注意的是,在此所使用的“a”和“b”和“c”以及类似指示符旨在表示任何正整数的变量。因而,例如,如果一种实现设定值a=2,那么,组件722-a的软件或固件的全集可以包括组件722-1或722-2。在本上下文中不限制所呈现的示例,且贯穿全文所使用的不同变量可以表示相同的或不同的整数值。
在一些示例中,电路720可以是来自各种可商购的处理器中的任何的多核处理器的PE/核,包括但不限于上面针对装置400所提到的处理器。
根据一些示例,装置700可以包括配置组件722-1。配置组件722-1可以由电路720所支持的主机O/S722执行。对于这些示例,配置组件722-1可以接收配置虚拟交换机的请求,所述虚拟交换机被用来在两个VM之间路由服务链流的各分组,例如在所述多个VM当中的第一和第二VM之间。这些第一和第二VM可以是由多核处理器的其他电路(例如,其他PE/核)独立支持。配置请求705中可以包括该请求。
在一些示例中,配置组件722-1可以配置通过首先生成全局流表来虚拟交换机,以便指示服务流的各分组遵循的路线,以供由处理由第一和第二VM执行的诸个单独应用处理。可以在全局流表724-a处或者与全局流表724-a一起(例如,在LUT中)保存该全局流表。然后,配置组件722-1可以把全局流表划分成第一和第二流表,以供在由诸个单独应用分别处理之后分别由第一和第二VM用来路由服务链流的各分组。对于这些示例,可以在VM流表725-b中或者与VM流表725-b一起保存第一和第二流表(例如,在LUT中)。然后,通过把独立的配置消息中的各自的存储器范围发送给第一和第二VM,配置组件722-1可以向第一和第二VM指示第一和第二流表。这些独立的配置消息可以被包括在(多个)配置消息710中。
根据一些示例,装置700可以包括指示组件722-2。指示组件722-2可以由电路720所支持的主机O/S722执行。对于这些示例,访问组件722-2可以仅把全局流表提供给请求者,以便指示虚拟交换机的配置。例如,指示组件722-2可以发送全局流表724-a中所保存的全局流表的副本,或允许请求者拥有对全局流表724-a中所保存的全局流表的已存储版本的访问权。全局流表的副本或访问全局流表的信息可以被包括在配置响应消息715中。
在此包括的是表示用于执行所公开的体系结构的各新颖方面的示例方法的一组逻辑流。尽管出于简化解释的目的,把在此示出的一种或多种方法示出和描述为一系列动作,但本领域中的技术人员将理解和明白,各方法不受各动作的顺序限制。一些动作可以按与在此示出和描述的其他动作不同的顺序发生和/或与它们并发地发生。例如,本领域中的技术人员将理解和明白,一种方法可以备选地例如在状态图中表示成一系列相互联系的状态或事件。此外,对于各新颖实现,并不要求方法中所阐释的所有动作。
图8阐释第二逻辑流的示例。如图8中所示出,第一逻辑流包括逻辑流800。逻辑流800可以是表示由在此描述的一个或多个逻辑、特征或设备例如装置700执行的操作中的一些或全部。更具体地,逻辑流800可以至少由配置组件722-1或指示组件422-2实现。
根据一些示例,逻辑流800在框802可以在多核处理器的第一PE/核(例如电路720)所支持的主机O/S处接收配置虚拟交换机的请求,所述虚拟交换机被用来在分别由多核处理器的各个第二和第三处理元件支持的第一和第二VM之间路由服务链流的各分组。对于这些示例,配置组件722-1可以接收该请求。
在一些示例中,用于配置交换机的逻辑流800可以包括逻辑流800在框804生成全局流表,以便指示服务流的各分组遵循的路线,以供由第一和第二VM执行的诸个单独应用处理。在框806,配置交换机也可以包括把全局流表划分成第一和第二流表,以供在由诸个单独应用分别处理之后分别由第一和第二VM用来路由服务链流的各分组。在框808,配置交换机也可以包括向第一和第二VM指示第一和第二流表。对于这些示例,配置组件722-1可以如上面针对框804到808所描述的配置虚拟交换机。
根据一些示例,在框810,逻辑流800可以仅把全局流表提供给请求者,以便指示虚拟交换机的配置。对于这些示例,指示组件722-2可以把全局流表提供给请求者。
图9阐释第二存储介质的示例。如图9中所示出,第一存储介质包括存储介质900。存储介质900可以包括一种制造产品。在一些示例中,存储介质900可以包括任何非暂态计算机可读介质或机器可读介质,例如光、磁或半导体存储。存储介质900可以存储各种类型的计算机可执行指令,例如实现逻辑流800的指令。计算机可的或机器可读的存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不非可擦除存储器、可写或可重写的存储器等等。计算机可执行指令的示例可以包括任何合适的类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等等。本上下文中不限制各示例。
图10阐释示例计算平台1000。在一些示例中,如图10中所示出,计算平台1000可以包括处理组件1040、其他平台组件或通信接口1060。根据一些示例,计算平台1000可以在主机计算平台中实现,例如图1中所示出的主机计算平台105。
根据一些示例,处理组件1040可以执行装置400/700和/或存储介质600/900的处理操作或逻辑。处理组件1040可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如、晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、设备驱动器、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件界面、应用程序界面(API)、指令集、计算代码、计算机代码、代码片段、计算机代码片段、字、值、符号或其任何组合。根据给定实现的期望,判断是否使用硬件元件和/或软件元件来实现示例可以根据任何数量的因素而改变,例如期望的计算速率,功率水平、耐热性、处理循环预算、输入数据率、输出数据率、存储器资源、数据总线速度和其他设计或性能约束。
在一些示例中,其他平台组件1050可以包括普通计算元件,例如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、计时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件(例如数字显示器)、电源等等。存储器单元的示例可以包括而非限制以一个或多个高速存储器单元的形式的各种类型的计算机可读的和机器可读的存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍-数据-率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、诸如铁电聚合物存储器之类的聚合物存储器、奥氏存储器、相变或铁电存储器、硅-氧化物-氮-氧化物-硅(SONOS)存储器、磁或光卡、诸如独立磁盘冗余阵列(RAID)驱动器之类的设备的阵列、固态存储器设备(例如USB存储器)、固态驱动器(SSD)和适用于存储信息的任何其他类型的存储介质。
在一些示例中,通信接口1060可以包括支持通信接口的逻辑和/或特征。对于这些示例,通信接口1060可以包括根据各种通信协议或标准操作以便在直接或网络通信链路上通信的一个或多个通信接口。可以经由使用在一个或多个行业标准(包括后代和变种)例如与PCIe规范相关联的那些中描述的通信协议或标准发生直接通信。可以经由使用通信协议或标准例如在IEEE颁布的一个或多个以太网标准中所描述的那些发生网络通信。例如,一个这样的以太网标准可以包括IEEE802.3。也可以根据一个或多个OpenFlow规范例如OpenFlow交换机规范发生网络通信。
如上所述,可以在主机计算平台中实现计算平台1000。相应地,根据服务器或客户机计算设备的适当期望,在计算平台1000的各种实施方式中可以包括或省略在此描述的计算平台1000的功能和/或特定配置。
可以使用分立电路、专用集成电路(ASICs)、逻辑门和/或单个芯片体系结构的任何组合来实现计算平台1000的组件和特征。进一步,在适当期望的场合,可以使用微型控制器、可编程逻辑阵列和/或微处理器或前述的任何组合来实现计算平台1000的特征。应注意,在此可以把硬件、固件和/或软件元件共同地或个别地称为“逻辑”或“电路。”
应明白,图10的框图中所示出的示例性计算平台1000可以表示多种潜在实现的一个功能描述示例。相应地,附图中所叙述的框功能的分割、省略或包括不能引申出在各实施方式中将必定分割、省略或包括用于实现这些函数的硬件组件、电路、软件和/或元素。
至少一个示例的一个或多个方面可以由存储在至少一种机器可读介质上的表示在处理器内的各种逻辑的表示性指令实现,在由机器、计算设备或系统读取时,所述逻辑引起机器、计算设备或系统制造执行在此描述的技术的逻辑。这样的表示被称为“IP核”,可以被存储在有形的、机器可读的介质中,且被提供给各种消费者或制造设施,以便加载到实际上制作逻辑或处理器的制造机器中。
可以使用硬件元件、软件元件或两者的组合来实现各种示例。在一些示例中,硬件元件可以包括设备、组件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等等。在一些示例中,软件元件可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件界面、应用程序界面(API)、指令集、计算代码、计算机代码、代码片段、计算机代码片段、字、值、符号或其任何组合。根据给定实现的期望,判断是否使用硬件元件和/或软件元件来实现示例可以根据任何数量的因素而改变,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
一些示例可以包括制造产品或至少一个计算机可读介质。计算机可读介质可以包括存储逻辑的非暂态存储介质。在一些示例中,非暂态存储介质可以包括能够存储电子数据的一种或多种类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除的存储器、可写或可重写的存储器等等。在一些示例中,逻辑可以包括各种软件元件,例如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件界面、API、指令集、计算代码、计算机代码、代码片段、计算机代码片段、字、值、符号或其任何组合。
根据一些示例,计算机可读介质可以包括存储或保存指令的非暂态存储介质,在由机器、计算设备或系统执行时,所述指令引起机器、计算设备或系统执行根据所描述的示例的方法和/或操作。各指令可以包括任何合适类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等等。可以根据预定义的计算机语言、方式或语法实现各指令,用于指示机器、计算设备或系统执行特定功能。可以使用任何合适的高级、低级、面向对象、可视、编译和/或解释编程语言来实现各指令。
可以使用短语“在一个示例中”或“一个示例”以及它们的派生词来描述一些示例。这些术语意指结合该示例的具体的特征、结构或特性被包括在至少一个示例中。在说明书d各种场所出现短语“在一个示例中”并不必定都是指相同的示例。
可以使用表达式“耦合”和“连接”以及它们的派生词来描述一些示例。这些术语并不必定预期用作彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或更多个元素彼此处于直接物理或电气接触。然而,术语“耦合”也可以意指两个或更多个元素彼此不处于直接接触,但是仍统统操作或相互交互。
下列示例涉及在此公开的技术的附加示例。
示例1.一种示例装置可以包括具有支持第一VM的第一处理元件和支持第二VM的第二处理元件的多核处理器。所述装置也可以包括接收组件,其供由所述第一VM执行,以便接收要由第一应用处理的服务链流的分组,所述第一应用也由所述第一VM执行。所述装置也可以包括访问组件,其供由所述第一VM执行,以便访问在多个流表当中的第一流表。所述装置也可以包括路由组件,其供由所述第一VM执行,以便在由所述第一应用进行服务链处理之后使用所述第一流表来把所述分组路由到所述第二VM以供由所述第二VM执行的第二应用进行额外服务链处理。所述装置也可以包括引用组件,其供由所述第一VM执行,以便向所述第二VM发送消息,该消息包括到在所述第一和第二VM之间共享的存储器中的第一位置的第一引用,以供所述第二VM接收所述分组。
示例2.如示例1所述的装置,所述接收组件可以通过接收第二消息来从第三VM接收所述分组,所述第二消息包括到在所述第一、第二和第三VM之间共享的所述存储器中的第二位置的第二引用。
示例3.如示例2所述的装置,所述第一位置和所述第二位置可以是用于在所述第一、第二和第三VM之间共享的所述存储器的相同的存储器地址。
示例4.如示例2所述的装置,在所述第一、第二和第三VM之间共享的所述存储器可以包括产生共享存储器网格的共享存储器环,所述共享存储器网格能够允许所述第一、第二和第三VM以零副本方式接收服务链处理的所述分组。
示例5.如示例1所述的装置,所述服务链流可以用于电子邮件服务链、流送视频服务链、流送音频服务链、服务提供商服务链、网络存储服务链、社交网络服务链或网络安全服务链。
示例6.如示例1所述的装置,所述多个流表可以被安排为作为单个流表向已经请求虚拟交换机的配置用户指示,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
示例7.如示例6所述的装置,所述第一流表可以来自基于所述虚拟交换机的配置被指派给所述第一VM的所述多个流表当中,所述虚拟交换机把交换逻辑的一部分分发给所述第一VM,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
示例8.如示例7所述的装置,所述多核处理器的第四处理元件可以支持具有虚拟交换机控制路径的主机操作系统,以便把交换逻辑的所述部分的分发传输给所述第一VM,以便配置所述虚拟交换机。
示例9.如示例1所述的装置也可以包括耦合到所述电路以便呈现用户界面视图的数字显示器。
示例10.一种示例方法可以包括在多核处理器的第一处理元件所支持的第一VM处接收要由所述第一VM执行的第一应用处理的服务链流的分组。所述方法也可以包括访问在多个流表当中的第一流表。所述第一流表可以是供所述第一VM用来在由所述第一应用进行服务链处理之后路由所述分组。所述方法也可以包括确定把额外服务链处理的所述分组路由到所述多核处理器的第二处理元件所支持的第二VM。所述方法也可以包括向所述第二VM发送消息,所述消息包括到在所述第一和第二VM之间共享的存储器中的第一位置的第一引用,以供所述第二VM接收由所述第二VM执行的第二应用进行的所述额外服务链处理的所述分组。
示例11.如示例10所述的方法也可以包括通过接收第二消息来从第三VM接收所述分组,所述第二消息包括到在所述第一、第二和第三VM之间共享的所述存储器中的第二位置的第二引用。
示例12.如示例11所述的方法,所述第一位置和所述第二位置可以是用于在所述第一、第二和第三VM之间共享的所述存储器的相同的存储器地址。
示例13.如示例11所述的方法,在所述第一、第二和第三VM之间共享的所述存储器可以包括产生共享存储器网格的共享存储器环,所述共享存储器网格能够允许所述第一、第二和第三VM接收所述分组以便以零副本方式处理。
示例14.如示例10所述的方法,所述服务链流可以用于电子邮件服务链、流送视频服务链、流送音频服务链、服务提供商服务链、网络存储服务链、社交网络服务链或网络安全服务链。
示例15.如示例10所述的方法,可以把所述多个流表作为单个流表向已经请求虚拟交换机的配置的用户指示,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
示例16.如示例15所述的方法,基于所述虚拟交换机的配置,所述第一流表可以来自被指派给所述第一VM的所述多个流表当中,所述虚拟交换机把交换逻辑的一部分分发给所述第一VM,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
示例17.如示例16所述的方法,所述多核处理器的第四处理元件可以支持具有虚拟交换机控制路径的主机操作系统,以便把交换逻辑的所述部分的分发传输给所述第一VM,以便配置所述虚拟交换机。
示例18.至少一种机器可读介质可以包括多个指令,响应于在具有能够支持多个VM的多核处理器的主机计算平台处由系统执行,所述指令可以引起所述系统执行根据示例10到17中的任何一项的方法。
示例19.一种设备可以包括用于执行根据示例10到17中的任何一项的方法的装置。
示例20.至少一种机器可读介质的示例可以包括多个指令,响应于由多核处理器的第一处理元件所支持的第一VM执行,所述指令可以引起所述第一VM接收要由多核处理器的第一处理元件所支持的所述第一VM执行的第一应用处理的服务链流的分组。所述各指令也可以引起所述第一VM访问在多个流表当中的第一流表。所述各指令也可以引起所述第一VM在由所述第一应用进行服务链处理之后使用所述第一流表来把所述分组路由到所述多核处理器的第二处理元件所支持的第二VM,以供由所述第二VM执行的第二应用进行额外服务链处理。所述各指令也可以引起所述第一VM向所述第二VM发送消息,该消息包括到在所述第一和第二VM之间共享的存储器中的第一位置的第一引用,以供所述第二VM接收所述分组。
示例21.如示例20所述的至少一种机器可读介质,所述各指令也可以引起所述第一VM通过接收第二消息来从第三VM接收所述分组,所述第二消息包括到在所述第一、第二和第三VM之间共享的所述存储器中的第二位置的第二引用。
示例22.如示例21所述的至少一种机器可读介质,所述第一位置和所述第二位置可以是用于在所述第一、第二和第三VM之间共享的所述存储器的相同的存储器地址。
示例23.如示例21所述的至少一种机器可读介质,在所述第一、第二和第三VM之间共享的所述存储器可以包括产生共享存储器网格的共享存储器环,所述共享存储器网格能够允许所述第一、第二和第三VM以零副本方式接收服务链处理的所述分组。
示例24.如示例20所述的至少一种机器可读介质,所述服务链流可以用于电子邮件服务链、流送视频服务链、流送音频服务链、服务提供商服务链、网络存储服务链、社交网络服务链或网络安全服务链。
示例25.如示例20所述的至少一种机器可读介质,所述多个流表可以被安排为作为单个流表向已经请求虚拟交换机的配置用户指示,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
示例26.如示例25所述的至少一种机器可读介质,基于所述虚拟交换机的配置,所述第一流表可以来自被指派给所述第一VM的所述多个流表当中,所述虚拟交换机把交换逻辑的一部分分发给所述第一VM,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
示例27.如示例26所述的至少一种机器可读介质,所述多核处理器的第四处理元件可以支持具有虚拟交换机控制路径的主机操作系统,以便把交换逻辑的所述部分的分发传输给所述第一VM,以便配置所述虚拟交换机。
示例28.一种示例装置可以包括具有支持主机操作系统的第一处理元件的多核处理器。所述装置也可以包括配置组件,其由所述主机操作系统执行,以便接收配置虚拟交换机的请求,所述虚拟交换机被用来在分别由所述多核处理器的各个第二和第三处理元件支持的第一和第二VM之间路由服务链流的各分组。配置所述虚拟交换机可以包括所述配置组件生成全局流表,以便指示所述服务流的所述各分组遵循的路线,以供由所述第一和第二VM执行的诸个单独应用处理。配置所述虚拟交换机也可以包括所述配置组件把所述全局流表划分成第一和第二流表,以供分别由所述第一和第二VM用来在由所述诸个单独应用分别处理之后路由所述服务链流的所述各分组。配置所述虚拟交换机也可以包括所述配置组件向所述第一和第二VM指示所述第一和第二流表。所述装置也可以包括指示组件,其供由主机操作系统执行,以仅把所述全局流表提供给所述请求者,以便指示所述虚拟交换机的配置。
示例29.如示例28所述的装置,所述主机操作系统可以具有到所述第一和第二VM的虚拟交换机控制路径,以便向所述第一和第二VM指示所述第一和第二流表。
示例30.如示例28所述的装置,所述全局流表可以被安排为保存在第一存储器中。对于这一示例,所述配置组件向所述第一VM指示所述第一流表可以包括所述配置组件提供保存所述第一流表的所述第一存储器的第一存储器地址范围。所述指示组件向所述第二VM指示所述第二流表可以包括所述指示组件提供保存所述第二流表的所述存储器的第二存储器地址范围。
示例31.如示例30所述的装置,所述第一VM和所述第二VM能够以零副本方式路由所述服务流的所述各分组,所述零副本方式包括所述第一VM向所述第二VM发送消息,所述消息包括到在所述第一和第二VM之间共享的第二存储器中的位置的引用,所述引用允许所述第一VM无需复制就路由所述各分组。
示例32.如示例31所述的装置,所述第二存储器可以包括产生共享存储器网格的共享存储器环。
示例33.如示例28所述的装置,所述服务链流可以用于电子邮件服务链、流送视频服务链、流送音频服务链、服务提供商服务链、网络存储服务链、社交网络服务链或网络安全服务链。
示例34.如示例28所述的装置也可以包括耦合到所述处理器电路以便呈现用户界面视图的数字显示器。
示例35.一种示例方法可以包括在多核处理器的第一处理元件所支持的主机操作系统处接收配置虚拟交换机的请求,所述虚拟交换机被用来在分别由所述多核处理器的各个第二和第三处理元件支持的第一和第二VM之间路由服务链流的各分组。配置所述虚拟交换机可以包括生成全局流表,以便指示所述服务流的所述各分组遵循的路线,以供由所述第一和第二VM执行的诸个单独应用处理。配置所述虚拟交换机也可以包括把所述全局流表划分成第一和第二流表,以供分别由所述第一和第二VM用来在由所述诸个单独应用分别处理之后路由所述服务链流的所述各分组。配置所述虚拟交换机也可以包括向所述第一和第二VM指示所述第一和第二流表。所述方法也可以包括仅把所述全局流表提供给所述请求者,以便指示所述虚拟交换机的配置。
示例36.如示例35所述的方法,所述主机操作系统可以具有到所述第一和第二VM的虚拟交换机控制路径,以便向所述第一和第二VM指示所述第一和第二流表。
示例37.如示例35所述的方法,所述全局流表可以被安排为保存在第一存储器中。对于这一示例,向所述第一VM指示所述第一流表可以包括提供保存所述第一流表的所述第一存储器的第一存储器地址范围。而且,向所述第二VM指示所述第二流表可以包括提供保存所述第二流表的所述存储器的第二存储器地址范围。
示例38.如示例37所述的方法,所述第一VM和所述第二VM能够以零副本方式路由所述服务流的所述各分组,所述零副本方式包括所述第一VM向所述第二VM发送消息,所述消息包括到在所述第一和第二VM之间共享的第二存储器中的位置的引用,所述引用允许所述第一VM无需复制就路由所述各分组。
示例39.如示例38所述的方法,所述第二存储器包括产生共享存储器网格的共享存储器环。
示例40.如示例35所述的方法,所述服务链流可以用于电子邮件服务链、流送视频服务链、流送音频服务链、服务提供商服务链、网络存储服务链、社交网络服务链或网络安全服务链。
示例41.至少一种机器可读介质的示例可以包括多个指令,响应于在具有能够支持主机操作系统和多个VM的多核处理器的主机计算平台处由系统执行,所述指令可以引起所述系统执行根据示例35到40中的任何一项的方法。
示例42.一种示例装置可以包括用于执行根据示例35到40中的任何一项的方法。
示例43.至少一种机器可读介质的示例可以包括多个指令,响应于由多核处理器的第一处理元件所支持的主机操作系统执行,所述指令可以引起所述主机操作系统接收配置虚拟交换机的请求,所述虚拟交换机被用来在分别由所述多核处理器的各个第二和第三处理元件支持的第一和第二VM之间路由服务链流的各分组。对于这一示例,配置所述虚拟交换机可以包括所述各指令引起所述操作系统生成全局流表,以便指示所述服务流的所述各分组遵循的路线,以供由所述第一和第二VM执行的诸个单独应用处理。配置所述虚拟交换机也可以包括所述各指令引起所述操作系统把所述全局流表划分成第一和第二流表,以供分别由所述第一和第二VM用来在由所述诸个单独应用分别处理之后路由所述服务链流的所述各分组。配置所述虚拟交换机也可以包括所述各指令引起所述操作系统向所述第一和第二VM指示所述第一和第二流表。所述各指令也可以引起所述主机操作系统以仅把所述全局流表提供给所述请求者,以便指示所述虚拟交换机的配置。
示例44.如示例43所述的至少一种机器可读介质,所述主机操作系统可以具有到所述第一和第二VM的虚拟交换机控制路径。所述各指令还可以引起所述主机操作系统穿过所述虚拟控制路径向所述第一和第二VM指示所述第一和第二流表。
示例45.如示例43所述的至少一种机器可读介质,所述全局流表可以被安排为保存在第一存储器中。所述各指令还可以引起所述主机操作系统通过提供保存所述第一流表的所述第一存储器的第一存储器地址范围向所述第一VM指示所述第一流表,并且通过提供保存所述第二流表的所述存储器的第二存储器地址范围向所述第二VM指示所述第二流表。
示例46.如示例45所述的至少一种机器可读介质,所述第一VM和所述第二VM能够以零副本方式路由所述服务流的所述各分组,所述零副本方式包括所述第一VM向所述第二VM发送消息,所述消息包括到在所述第一和第二VM之间共享的第二存储器中的位置的引用,所述引用允许所述第一VM无需复制就路由所述各分组。
示例47.如示例46所述的至少一种机器可读介质,所述第二存储器可以包括产生共享存储器网格的共享存储器环。
示例48.如示例43所述的至少一种机器可读介质,所述服务链流可以用于电子邮件服务链、流送视频服务链、流送音频服务链、服务提供商服务链、网络存储服务链、社交网络服务链或网络安全服务链。
强调所提供的本公开内容的摘要遵守37C.F.R.1.72(b)节,37C.F.R.1.72(b)节要求摘要允许读者快速地判明技术公开内容的本质。以它将不被用来解释或限制权利要求的范围或含义的理解来提交它。另外,在前述的具体实施方式中,可以看见,出于简化本公开内容的目的在单个示例中把各种特征分组在一起。本公开内容的这种方法不应被解释成反映所要求保护的示例要求比每一权利中明确叙述的更多的特征的意图。相反,如下列的权利要求反映的,本发明主题在于少于单个公开的示例的全部特征。因而,下列权利要求据此合并到具体实施方式中,且每一权利要求自身作为单独的示例。在所附权利要求中,术语“包括(including)”和“其中”分别被用作各个术语“包含(comprising)”和“其特征在于”的平易英语同义词。此外,术语“第一”、“第二”、“第三”等等仅用作标签,且不旨在对它们的对象强加数字要求。
尽管已经用结构特征和/或方法动作专用的语言描述了本主题,但应理解,在所附权利要求中界定的本主题并不必定限于以上所描述的特定特征或动作。相反,以上所描述的特定特征和动作是作为实现权利要求的示例形式而公开的。

Claims (25)

1.一种设备,包括:
多核处理器,具有支持第一虚拟机(VM)的第一处理元件和支持第二VM的第二处理元件;
接收组件,由所述第一VM执行,以便接收要由第一应用来处理的服务链流的分组,所述第一应用也由所述第一VM执行;
访问组件,由所述第一VM执行,以便访问在多个流表当中的第一流表;
路由组件,由所述第一VM执行,以便在由所述第一应用进行服务链处理之后使用所述第一流表来把所述分组路由到所述第二VM,以由所述第二VM执行的第二应用进行额外服务链处理;以及
引用组件,由所述第一VM执行,以便向所述第二VM发送消息,所述消息包括到在所述第一和第二VM之间共享的存储器中的第一位置的第一引用,以供所述第二VM接收所述分组。
2.如权利要求1所述的设备,所述接收组件通过接收第二消息来从第三VM接收所述分组,所述第二消息包括到在所述第一、第二和第三VM之间共享的所述存储器中的第二位置的第二引用。
3.如权利要求2所述的设备,所述第一位置和所述第二位置是在所述第一、第二和第三VM之间共享的所述存储器的相同的存储器地址。
4.如权利要求2所述的设备,在所述第一、第二和第三VM之间共享的所述存储器包括产生共享存储器网格的共享存储器环,所述共享存储器网格能够允许所述第一、第二和第三VM以零副本方式接收服务链处理的所述分组。
5.如权利要求1所述的设备,所述服务链流用于电子邮件服务链、流送视频服务链、流送音频服务链、服务提供商服务链、网络存储服务链、社交网络服务链或网络安全服务链。
6.如权利要求1所述的设备,所述多个流表被安排为作为单个流表向用户指示,所述用户已经请求虚拟交换机的配置,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
7.如权利要求6所述的设备,基于所述虚拟交换机的配置,把在所述多个流表当中的所述第一流表指派给所述第一VM,所述虚拟交换机把交换逻辑的一部分分发给所述第一VM,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
8.如权利要求7所述的设备,所述多核处理器的第四处理元件支持具有虚拟交换机控制路径的主机操作系统,以便把交换逻辑的所述部分的分发传输给所述第一VM,以便配置所述虚拟交换机。
9.一种方法,包括:
在由多核处理器的第一处理元件所支持的第一虚拟机(VM)处接收服务链流的分组,所述服务链流的分组要由所述第一VM执行的第一应用来处理;
访问在多个流表当中的第一流表,所述第一流表供所述第一VM用来在由所述第一应用进行服务链处理之后路由所述分组;
确定把额外服务链处理的所述分组路由到所述多核处理器的第二处理元件所支持的第二VM;以及
向所述第二VM发送消息,所述消息包括到在所述第一和第二VM之间共享的存储器中的第一位置的第一引用,以供所述第二VM接收由所述第二VM执行的第二应用进行的所述额外服务链处理的所述分组。
10.如权利要求9所述的方法,包括通过接收第二消息来从第三VM接收所述分组,所述第二消息包括到在所述第一、第二和第三VM之间共享的所述存储器中的第二位置的第二引用。
11.如权利要求10所述的方法,所述第一位置和所述第二位置是在所述第一、第二和第三VM之间共享的所述存储器的相同的存储器地址。
12.如权利要求11所述的方法,作为单个流表向用户指出所述多个流表,所述用户已经请求虚拟交换机的配置,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
13.如权利要求12所述的方法,基于所述虚拟交换机的配置,把在所述多个流表当中的所述第一流表指派给所述第一VM,所述虚拟交换机把交换逻辑的一部分分发给所述第一VM,以便至少在所述第一和第二VM之间路由所述服务链流的各分组。
14.如权利要求13所述的方法,包括所述多核处理器的第四处理元件支持具有虚拟交换机控制路径的主机操作系统,以便把交换逻辑的所述部分的分发传输给所述第一VM,以便配置所述虚拟交换机。
15.至少一种机器可读介质,包括多个指令,响应于在具有能够支持多个虚拟机(VM)的多核处理器的主机计算平台处由系统执行,所述各指令引起所述系统执行根据权利要求9到14中的任何一项所述的方法。
16.一种设备,包括:
多核处理器,具有支持主机操作系统的第一处理元件;
配置组件,由所述主机操作系统执行,以便接收配置虚拟交换机的请求,所述虚拟交换机被用来在第一和第二虚拟机(VM)之间路由服务链流的各分组,所述第一和第二虚拟机(VM)分别由所述多核处理器的各个第二和第三处理元件支持,配置所述虚拟交换机包括所述配置组件进行以下:
生成全局流表,以便指示所述服务流的所述各分组遵循的路线,以供由所述第一和第二VM执行的诸个单独应用来处理;
把所述全局流表划分成第一和第二流表,以供分别由所述第一和第二VM用来在由所述诸个单独应用分别处理之后路由所述服务链流的所述各分组;以及
向所述第一和第二VM指示所述第一和第二流表;
以及
指示组件,由主机操作系统执行,以便仅把所述全局流表提供给所述请求者,以便指示所述虚拟交换机的配置。
17.如权利要求16所述的设备,所述主机操作系统具有到所述第一和第二VM的虚拟交换机控制路径,以便向所述第一和第二VM指示所述第一和第二流表。
18.如权利要求16所述的设备,所述全局流表被安排为保存在第一存储器中,所述配置组件向所述第一VM指示所述第一流表包括所述配置组件提供保存所述第一流表的所述第一存储器的第一存储器地址范围,所述指示组件向所述第二VM指示所述第二流表包括所述指示组件提供保存所述第二流表的所述存储器的第二存储器地址范围。
19.如权利要求18所述的设备,所述第一VM和所述第二VM能够以零副本方式路由所述服务流的所述各分组,所述零副本方式包括所述第一VM向所述第二VM发送消息,所述消息包括到在所述第一和第二VM之间共享的第二存储器中的位置的引用,所述引用允许所述第一VM无需复制就路由所述各分组。
20.如权利要求16所述的设备,所述服务链流用于电子邮件服务链、流送视频服务链、流送音频服务链、服务提供商服务链、网络存储服务链、社交网络服务链或网络安全服务链。
21.一种方法,包括:
在多核处理器的第一处理元件所支持的主机操作系统处接收配置虚拟交换机的请求,所述虚拟交换机被用来在第一和第二虚拟机(VM)之间路由服务链流的各分组,所述第一和第二虚拟机(VM)分别由所述多核处理器的各个第二和第三处理元件支持,配置所述虚拟交换机包括:
生成全局流表,以便指示所述服务流的所述各分组遵循的路线,以由所述第一和第二VM执行的诸个单独应用来处理;
把所述全局流表划分成第一和第二流表,以分别由所述第一和第二VM用来在由所述诸个单独应用分别处理之后路由所述服务链流的所述各分组;以及
向所述第一和第二VM指示所述第一和第二流表;
以及
仅把所述全局流表提供给所述请求者,以便指示所述虚拟交换机的配置。
22.如权利要求21所述的方法,所述主机操作系统具有到所述第一和第二VM的虚拟交换机控制路径,以便向所述第一和第二VM指示所述第一和第二流表。
23.如权利要求21所述的方法,所述全局流表被安排为保存在第一存储器中,向所述第一VM指示所述第一流表包括提供保存所述第一流表的所述第一存储器的第一存储器地址范围,向所述第二VM指示所述第二流表包括提供保存所述第二流表的所述存储器的第二存储器地址范围。
24.至少一种机器可读介质,包括多个指令,响应于在具有能够支持主机操作系统和多个虚拟机(VM)的多核处理器的主机计算平台由系统执行,所述指令引起所述系统执行根据权利要求21到23中的任何一项所述的方法。
25.一种设备,包括用于执行根据权利要求21到23中的任何一项所述的方法的装置。
CN201510527818.3A 2014-09-24 2015-08-25 用于在虚拟机之间路由服务链流分组的方法、设备及介质 Active CN105450522B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/494,912 US9459903B2 (en) 2014-09-24 2014-09-24 Techniques for routing service chain flow packets between virtual machines
US14/494,912 2014-09-24

Publications (2)

Publication Number Publication Date
CN105450522A true CN105450522A (zh) 2016-03-30
CN105450522B CN105450522B (zh) 2019-01-11

Family

ID=54011548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510527818.3A Active CN105450522B (zh) 2014-09-24 2015-08-25 用于在虚拟机之间路由服务链流分组的方法、设备及介质

Country Status (5)

Country Link
US (2) US9459903B2 (zh)
EP (1) EP3001616B1 (zh)
JP (1) JP6022650B2 (zh)
KR (1) KR101775227B1 (zh)
CN (1) CN105450522B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789542A (zh) * 2017-03-03 2017-05-31 清华大学 一种云数据中心安全服务链的实现方法
CN111868687A (zh) * 2018-03-20 2020-10-30 三菱电机株式会社 信息处理装置、方法及程序

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9893995B1 (en) * 2014-09-25 2018-02-13 Cisco Technology, Inc. Systems, methods, and apparatus for implementing agents in service appliances
US9979704B2 (en) * 2014-12-17 2018-05-22 Cisco Technology, Inc. End-to-end security for virtual private service chains
US9794193B2 (en) * 2015-01-30 2017-10-17 Gigamon Inc. Software defined visibility fabric
US10250562B1 (en) 2015-03-31 2019-04-02 Juniper Networks, Inc. Route signaling driven service management
US9985875B1 (en) 2015-03-31 2018-05-29 Juniper Networks, Inc. Route signalling based resilient application overlay network
US9819507B1 (en) * 2015-05-12 2017-11-14 Mbit Wireless, Inc. Mobile broadband management over plurality of media
US9826030B1 (en) 2015-06-04 2017-11-21 Amazon Technologies, Inc. Placement of volume partition replica pairs
US9826041B1 (en) * 2015-06-04 2017-11-21 Amazon Technologies, Inc. Relative placement of volume partitions
JP2017041846A (ja) * 2015-08-21 2017-02-23 富士通株式会社 管理装置、制御装置、および、通信システム
US11082515B2 (en) * 2015-09-26 2021-08-03 Intel Corporation Technologies for offloading data object replication and service function chain management
US10067780B2 (en) * 2015-10-06 2018-09-04 Cisco Technology, Inc. Performance-based public cloud selection for a hybrid cloud environment
US9992649B1 (en) 2016-08-23 2018-06-05 Mbit Wireless, Inc. Mobile broadband management
US10523692B2 (en) * 2016-04-08 2019-12-31 Samsung Electronics Co., Ltd. Load balancing method and apparatus in intrusion detection system
EP3264711B1 (en) * 2016-06-28 2018-09-19 Virtual Open Systems Virtual switch for multi-compartment mixed critical network communications
JP6727394B2 (ja) 2016-07-07 2020-07-22 コンヴィーダ ワイヤレス, エルエルシー マシンツーマシンサービス層通信におけるメッセージ再標的化
KR102224379B1 (ko) * 2016-10-07 2021-03-08 콘비다 와이어리스, 엘엘씨 일반적 상호연동 및 확장성을 위한 서비스 계층 리소스 관리
US10541927B2 (en) * 2016-12-29 2020-01-21 Google Llc System and method for hardware-independent RDMA
US10848430B2 (en) 2016-12-30 2020-11-24 Intel Corporation Flexible packet processing
WO2018174759A1 (en) * 2017-03-23 2018-09-27 Telefonaktiebolaget Lm Ericsson (Publ) Apparatuses, methods, computer programs and computer program products for service function chaining
KR102014725B1 (ko) * 2017-11-22 2019-08-27 건국대학교 산학협력단 매니코어 기반 코어 파티셔닝 장치 및 방법, 이를 저장하는 기록매체
US10958572B2 (en) * 2017-12-13 2021-03-23 Cisco Technology, Inc. Directing packets to service chain associated with user plane anchor
US10681091B2 (en) 2018-07-31 2020-06-09 Juniper Networks, Inc. N:1 stateful application gateway redundancy model
US11411843B2 (en) * 2019-08-14 2022-08-09 Verizon Patent And Licensing Inc. Method and system for packet inspection in virtual network service chains
US11394786B2 (en) 2019-11-18 2022-07-19 Red Hat, Inc. Zero-copy forwarding for network function virtualization
US10877822B1 (en) * 2019-12-16 2020-12-29 Vmware, Inc. Zero-copy packet transmission between virtualized computing instances
CN111343107B (zh) * 2020-01-22 2022-03-04 苏州盛科通信股份有限公司 信息处理方法、以太网交换芯片以及存储介质
US11567791B2 (en) * 2020-06-26 2023-01-31 Intel Corporation Technology for moving data between virtual machines without copies

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070243934A1 (en) * 2006-04-13 2007-10-18 Igt Remote content management and resource sharing on a gaming machine and method of implementing same
CN102055667A (zh) * 2009-11-04 2011-05-11 丛林网络公司 配置虚拟网络交换机的方法和设备
US20120284513A1 (en) * 2011-05-02 2012-11-08 Gface Gmbh Render service for remote access to applications
CN102938721A (zh) * 2004-02-13 2013-02-20 英特尔公司 用于动态地可扩展的虚拟交换机的装置和方法
US20140153575A1 (en) * 2009-04-27 2014-06-05 Lsi Corporation Packet data processor in a communications processor architecture

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060619B1 (en) * 2003-11-07 2011-11-15 Symantec Operating Corporation Direct connections to a plurality of storage object replicas in a computer network
CN101819564B (zh) * 2009-02-26 2013-04-17 国际商业机器公司 协助在虚拟机之间进行通信的方法和装置
JP2012155600A (ja) * 2011-01-27 2012-08-16 Fujitsu Ltd 情報処理装置、制御方法、および制御プログラム
US9191327B2 (en) 2011-02-10 2015-11-17 Varmour Networks, Inc. Distributed service processing of network gateways using virtual machines
JP6010906B2 (ja) * 2011-12-27 2016-10-19 富士通株式会社 コンピュータネットワークシステム、構成管理方法、構成管理プログラム、記録媒体
JP2013242644A (ja) * 2012-05-18 2013-12-05 Panasonic Corp 仮想計算機システム、制御方法、およびプログラム
US9092269B2 (en) * 2012-06-21 2015-07-28 Microsoft Technology Licensing, Llc Offloading virtual machine flows to physical queues
US20140376555A1 (en) * 2013-06-24 2014-12-25 Electronics And Telecommunications Research Institute Network function virtualization method and apparatus using the same
US10261814B2 (en) * 2014-06-23 2019-04-16 Intel Corporation Local service chaining with virtual machines and virtualized containers in software defined networking

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102938721A (zh) * 2004-02-13 2013-02-20 英特尔公司 用于动态地可扩展的虚拟交换机的装置和方法
US20070243934A1 (en) * 2006-04-13 2007-10-18 Igt Remote content management and resource sharing on a gaming machine and method of implementing same
US20140153575A1 (en) * 2009-04-27 2014-06-05 Lsi Corporation Packet data processor in a communications processor architecture
CN102055667A (zh) * 2009-11-04 2011-05-11 丛林网络公司 配置虚拟网络交换机的方法和设备
US20120284513A1 (en) * 2011-05-02 2012-11-08 Gface Gmbh Render service for remote access to applications

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789542A (zh) * 2017-03-03 2017-05-31 清华大学 一种云数据中心安全服务链的实现方法
CN106789542B (zh) * 2017-03-03 2019-08-09 清华大学 一种云数据中心安全服务链的实现方法
CN111868687A (zh) * 2018-03-20 2020-10-30 三菱电机株式会社 信息处理装置、方法及程序
CN111868687B (zh) * 2018-03-20 2021-09-17 三菱电机株式会社 信息处理装置、方法及程序

Also Published As

Publication number Publication date
EP3001616A3 (en) 2016-06-29
CN105450522B (zh) 2019-01-11
KR20160035972A (ko) 2016-04-01
US20160085577A1 (en) 2016-03-24
US9459903B2 (en) 2016-10-04
KR101775227B1 (ko) 2017-09-05
JP2016072963A (ja) 2016-05-09
JP6022650B2 (ja) 2016-11-09
US10331468B2 (en) 2019-06-25
EP3001616A2 (en) 2016-03-30
US20170185440A1 (en) 2017-06-29
EP3001616B1 (en) 2019-11-13

Similar Documents

Publication Publication Date Title
CN105450522A (zh) 用于在虚拟机之间路由服务链流分组的技术
US10896064B2 (en) Coordinated, topology-aware CPU-GPU-memory scheduling for containerized workloads
CN109565523B (zh) 用于结构上的解聚的存储级存储器的机制
EP3706394B1 (en) Writes to multiple memory destinations
Grandison et al. Towards a formal definition of a computing cloud
US20160179582A1 (en) Techniques to dynamically allocate resources for local service chains of configurable computing resources
CN103942087A (zh) 虚拟机热迁移方法及相关装置和集群系统
US9569383B2 (en) Method of handling network traffic through optimization of receive side scaling
CN104270416A (zh) 负载均衡控制方法及管理节点
US10338813B2 (en) Storage controller and using method therefor
US9460009B1 (en) Logical unit creation in data storage system
CN111328392A (zh) 部分供应的虚拟机的部署
EP3238102A1 (en) Techniques to generate a graph model for cloud infrastructure elements
US20190094926A1 (en) Multi-criteria power management scheme for pooled accelerator architectures
WO2015041636A1 (en) Virtual machine switching based on processor power states
US20150150004A1 (en) Determining virtual machine placement
US10176002B2 (en) Quiesce handling in multithreaded environments
US9774540B2 (en) Packet drop based dynamic receive priority for network devices
US11301278B2 (en) Packet handling based on multiprocessor architecture configuration
US20190042936A1 (en) Techniques to manage training or trained models for deep learning applications
EP2620876A1 (en) Method and apparatus for data processing, pci-e bus system and server
CN106663039B (zh) 利用虚拟处理代理的流处理方法和系统
US10467156B1 (en) System and method of improving efficiency in parallel data processing of a RAID array
US9594707B2 (en) Data input/output (I/O) handling for computer network communications links
CN108196945A (zh) 一种核间通信方法、装置和虚拟化设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant