TCP/IP offload engine virtualization system and methods
First Claim
1. A virtual computer system implementing architectural support for the use of one or more TCP/IP offload engines (TOE) by the guest computer systems hosted on the virtual computer system, each of the guest computer systems including a guest operating system and each guest operating system including a network stack, said virtual computer system comprising:
- a) a host platform including a central processing unit, system memory, a plurality of network interface controllers (NICs), and a plurality of TOEs, wherein said plurality of NICs and said plurality of TOEs is coupleable to one or more physical communications network links;
b) a plurality of guest computer system components wherein each guest computer system component includes an offload selection switch provided in the corresponding guest operating system and a first virtual context component, wherein each offload selection switch selectively establishes network connections for applications in each corresponding guest computer system with the corresponding first virtual context component or the network stack; and
c) a virtual computer system kernel including a plurality of second virtual context components having a first defined correspondence with said first virtual context components, a network hardware abstraction layer, and a plurality of TOE drivers having a second defined correspondence with said plurality of TOEs, each second virtual context component defined to select and establish a route to a TOE driver for servicing a request for a communications session, wherein a virtual TOE device is implemented as a pair of one of the first virtual context components and one of the second virtual context components, wherein said first and second virtual context components interoperate to maintain virtual associations of the communications sessions established through said first and second virtual context components, wherein said virtual associations include requested and resolved associations and where said requested and resolved associations include the ports and IP addresses that define the communications session.
2 Assignments
0 Petitions
Accused Products
Abstract
A virtual computer system enabling dynamic, aggregated use of multiple TCP/IP offload engines (TOEs) by the set of guest computer systems hosted on the virtual computer system. Each of the guest computer systems includes an offload selection switch and the associated virtual machine monitor includes a first virtual context component. Second virtual context components are associated with a set of TCP/IP stacks and TOEs and interoperate with the first virtual context components to establish a virtual routing of network connections between the offload selection switches and the TOEs. The virtual context mapping retains the initially requested network connection information as well as the resolved virtual network connection established, thereby allowing the initial network connection request to be internally reapplied as required to accommodate dynamic changes in the network protocol parameters of the TOEs.
-
Citations
21 Claims
-
1. A virtual computer system implementing architectural support for the use of one or more TCP/IP offload engines (TOE) by the guest computer systems hosted on the virtual computer system, each of the guest computer systems including a guest operating system and each guest operating system including a network stack, said virtual computer system comprising:
-
a) a host platform including a central processing unit, system memory, a plurality of network interface controllers (NICs), and a plurality of TOEs, wherein said plurality of NICs and said plurality of TOEs is coupleable to one or more physical communications network links; b) a plurality of guest computer system components wherein each guest computer system component includes an offload selection switch provided in the corresponding guest operating system and a first virtual context component, wherein each offload selection switch selectively establishes network connections for applications in each corresponding guest computer system with the corresponding first virtual context component or the network stack; and c) a virtual computer system kernel including a plurality of second virtual context components having a first defined correspondence with said first virtual context components, a network hardware abstraction layer, and a plurality of TOE drivers having a second defined correspondence with said plurality of TOEs, each second virtual context component defined to select and establish a route to a TOE driver for servicing a request for a communications session, wherein a virtual TOE device is implemented as a pair of one of the first virtual context components and one of the second virtual context components, wherein said first and second virtual context components interoperate to maintain virtual associations of the communications sessions established through said first and second virtual context components, wherein said virtual associations include requested and resolved associations and where said requested and resolved associations include the ports and IP addresses that define the communications session. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of enabling shared use of one or more TCP/IP offload engines (TOE) by a plurality of guest computer systems hosted on a virtual computer system, each of the guest computer systems including a guest operating system and each guest operating system including a network stack, said method comprising the steps of:
-
providing an offload selection switch and a first component layer in each of the plurality of guest computer systems hosted on the virtual computer system, wherein each offload selection switch selectively establishes network connections for applications in each guest computer system with the corresponding first component layer or the network stack; providing a second component layer on said virtual computer system, wherein an instance of said second component layer is associated with a TOE driver linked to a corresponding TOE coupled to said virtual computer system; and wherein said first component layers receive information sets defining requested sessions; wherein, for a given requested session, the corresponding first component layer communicates with a selected one of said second component layers to determine for said given requested session a virtual session; and wherein said selected second component layer communicates through an associated TOE driver to establish a network session conforming to said virtual session. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A virtual computer system enabling aggregated use of one or more TCP/IP offload engines (TOE) by a plurality of guest computer systems hosted on the virtual computer system, each of the guest computer systems including a guest operating system and each guest operating system including a network stack, said virtual computer system comprising:
-
a) a host platform including a central processing unit, system memory, a plurality of network interface controllers (NICs), and a plurality of TOEs, wherein said plurality of NICs and said plurality of TOEs is coupleable to one or more physical communications network links; b) a plurality of guest computer system components wherein each guest computer system component includes an offload selection switch provided in the corresponding guest operating system; c) a plurality of virtual machine monitors coupled respectively to said plurality of guest computer system components, each of said plurality of virtual machine monitors including a first virtual context component coupled to a respective one of said offload selection switches to selectively establish network connections for applications in the corresponding guest computer system with the corresponding first virtual context component or the network stack, wherein said first virtual context components maintain a mapping between application network request contexts specific to corresponding ones of said plurality of guest computer system components and virtual network request contexts corresponding to said plurality of TOEs; and d) a virtual computer system kernel including a plurality of network stacks and TOE engine drivers coupled respectively to said plurality of TOEs, a plurality of second virtual context components having a defined correspondence with said plurality of TOEs, wherein said plurality of second virtual context components is coupled to and interoperative with said plurality of virtual machine monitors to determine said mapping. - View Dependent Claims (18, 19, 20)
-
-
21. A virtual computer system implementing architectural support for the use of one or more TCP/IP offload engines (TOE) by the guest computer systems hosted on the virtual computer system, each of the guest computer systems including a guest operating system and each guest operating system including a network stack, said virtual computer system comprising:
-
a) a host platform including a plurality of network interface controllers (NICs) and a plurality of TOE engines, wherein said plurality of NICs and said plurality of TOEs is coupleable to one or more physical communications network links; b) a plurality of guest computer system components wherein each guest computer system component includes an offload selection switch provided in the corresponding guest operating system and a first virtual context component, wherein each offload selection switch selectively establishes network connections for applications in each corresponding guest computer system with the corresponding first virtual context component or the network stack; and c) a virtual computer system kernel including a plurality of second virtual context components and a plurality of TOE drivers in communication with said plurality of TOEs, each second virtual context component defined to select and establish a route to a TOE driver for servicing a request for a communications session, wherein a virtual TOE device is implemented as a pair of one of the first virtual context components and one of the second virtual context components.
-
Specification