System and method for implementing LAN within shared I/O subsystem
First Claim
1. A shared I/O subsystem for providing network protocol management for a plurality of computer systems comprising:
- a plurality of I/O interfaces, each of the I/O interfaces operatively coupling one or more of the computer systems to the shared I/O subsystem;
the plurality of computer systems including a plurality of initiating servers that initiate I/O requests;
an I/O management link operatively interconnecting the I/O interfaces; and
a link layer switch communicatively coupled to each of the I/O interfaces, where the link layer switch receives a data packet from one of the I/O interfaces and directs the data packet to one or more of the other ones of the I/O interfaces;
wherein the I/O interfaces form a local area network within the shared I/O subsystem; and
at least one of the I/O interfaces includes;
(a) a plurality of virtual ports where each virtual port is operationally coupled to a virtual network interface card (NIC) via a virtual I/O bus, where the virtual NIC is executed by a computer system coupled to the I/O interface;
(b) a target channel adapter (TCA) that communicates with a host channel adapter (HCA) of the computer system;
(c) a switching function that uses a forwarding table for routing inbound packets received from a network and destined for one or more of the plurality of computer systems and for routing outbound packets originating from one or more of the plurality of computer systems destined for a network device or a virtual port of an I/O interface; and
(d) a shared physical NIC that is shared by the plurality of virtual NICs of the plurality of computer systems to send and receive network packets via a network link where the virtual NIC on an initiating server allows the initiating server to communicate via the shared physical NIC as if the shared physical NIC was dedicated only to the initiating server;
wherein the virtual NIC receives an outbound packet from a software stack that is executed above the virtual NIC stack in a computer system from among the plurality of computer systems and the virtual NIC;
(a) encapsulates the outbound packet into a combination of send/receive and remote direct memory access (RDMA) operations that forms the virtual I/O bus between each virtual port and the virtual NIC; and
(b) sends the encapsulated operations to the HCA and the HCA then sends the encapsulated operations to the TCA; and
the encapsulated send/receive and RDMA operations are reassembled into an outgoing packet by the virtual port associated with the virtual NIC; and
the virtual port forwards the outgoing packet to the switching function for delivery to another virtual port or to the shared NIC for delivery to another network device.
5 Assignments
0 Petitions
Accused Products
Abstract
A shared I/O subsystem for providing network protocol management for a plurality of computer systems. The shared I/O subsystem includes a plurality of I/O interfaces where each of the I/O interfaces operatively couples one of the computer systems to the shared I/O subsystem. The shared I/O subsystem also includes an I/O management link that operatively interconnects the I/O interfaces, and a link layer switch that communicatively couples to each of the I/O interfaces. The link layer switch receives a data packet from one of the I/O interfaces and directs the data packet to one or more of the other ones of the I/O interfaces. The I/O interfaces may form a local area network within the shared I/O subsystem.
100 Citations
22 Claims
-
1. A shared I/O subsystem for providing network protocol management for a plurality of computer systems comprising:
-
a plurality of I/O interfaces, each of the I/O interfaces operatively coupling one or more of the computer systems to the shared I/O subsystem;
the plurality of computer systems including a plurality of initiating servers that initiate I/O requests;an I/O management link operatively interconnecting the I/O interfaces; and a link layer switch communicatively coupled to each of the I/O interfaces, where the link layer switch receives a data packet from one of the I/O interfaces and directs the data packet to one or more of the other ones of the I/O interfaces;
wherein the I/O interfaces form a local area network within the shared I/O subsystem; andat least one of the I/O interfaces includes;
(a) a plurality of virtual ports where each virtual port is operationally coupled to a virtual network interface card (NIC) via a virtual I/O bus, where the virtual NIC is executed by a computer system coupled to the I/O interface;
(b) a target channel adapter (TCA) that communicates with a host channel adapter (HCA) of the computer system;
(c) a switching function that uses a forwarding table for routing inbound packets received from a network and destined for one or more of the plurality of computer systems and for routing outbound packets originating from one or more of the plurality of computer systems destined for a network device or a virtual port of an I/O interface; and
(d) a shared physical NIC that is shared by the plurality of virtual NICs of the plurality of computer systems to send and receive network packets via a network link where the virtual NIC on an initiating server allows the initiating server to communicate via the shared physical NIC as if the shared physical NIC was dedicated only to the initiating server;
wherein the virtual NIC receives an outbound packet from a software stack that is executed above the virtual NIC stack in a computer system from among the plurality of computer systems and the virtual NIC;
(a) encapsulates the outbound packet into a combination of send/receive and remote direct memory access (RDMA) operations that forms the virtual I/O bus between each virtual port and the virtual NIC; and
(b) sends the encapsulated operations to the HCA and the HCA then sends the encapsulated operations to the TCA; and
the encapsulated send/receive and RDMA operations are reassembled into an outgoing packet by the virtual port associated with the virtual NIC; and
the virtual port forwards the outgoing packet to the switching function for delivery to another virtual port or to the shared NIC for delivery to another network device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A shared input/output (I/O) subsystem for providing network protocol management for a plurality of computer systems, comprising:
-
an I/O interface unit from among a plurality of I/O interface units, operationally coupled to one or more computer systems from among the plurality of computer systems via an I/O link;
the I/O interface unit comprising;a plurality of virtual ports where each virtual port is operationally coupled to a virtual network interface card (NIC) via a virtual I/O bus and the virtual NIC is executed by each of the computer system coupled to the I/O interface unit; a target channel adapter (TCA) that communicates with a host channel adapter (HCA) of each of the computer system coupled to the I/O interface unit via the I/O link and a fabric; a switching function that uses a forwarding table for routing inbound packets received from a network and destined for one or more of the plurality of computer systems; and
for routing outbound packets originating from one or more of the plurality of computer systems destined for a network device or a virtual port of an I/O interface unit; anda shared physical NIC that is shared by a plurality of virtual NICs executed by the plurality of computer systems to send and receive network packets via a network link;
where a virtual NIC in a computer system allows the computer system to communicate via the shared physical NIC as if the shared physical NIC was dedicated only to the computer system;wherein a virtual NIC of a computer system coupled to the I/O interface unit (a) receives an outbound packet from a software application executed by the computer system;
(b) encapsulates the outbound packet into a combination of send/receive and remote direct memory access (RDMA) operations that forms a virtual I/O bus between a virtual port and the virtual NIC; and
(c) sends the encapsulated operations to the HCA; and
the HCA then sends the encapsulated operations to the TCA; and
the encapsulated send/receive and RDMA operations are reassembled into an outgoing packet by the virtual port associated with the virtual NIC; and
the virtual port forwards the outgoing packet to the switching function for delivery to another virtual port or to the shared NIC for delivery to another network device. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A method for a shared input/output (I/O) subsystem for providing network protocol management for a plurality of computer systems coupled to one of a plurality of I/O interface units, comprising:
-
receiving an outbound packet initiated by an initiating computer system from among one of the plurality of computer systems; and
a virtual network interface card (NIC) executed in the initiating computer system receives the outbound packet;encapsulating the outbound packet into a combination of send/receive and remote direct memory access (RDMA) based operations, wherein the virtual NIC encapsulates the operations and delivers the encapsulated operations to a host channel adapter (HCA) that communicates with a target channel adapter (TCA) in one of the I/O interface units via an I/O link; reassembling the outbound packet from the encapsulated operations, wherein a virtual port in the I/O interface unit reassembles the outbound packet and delivers the outbound packet to a switching function; and delivering the outbound packet to another virtual port of an I/O interface unit or to a shared physical NIC that is linked to a network using a network link;
wherein the shared physical NIC is shared by a plurality of virtual NICs executed in each of the plurality of computer systems to send and receive network packets via the network link and the virtual NIC on each given initiating computer system allows the initiating computer system to communicate via the shared physical NIC as if the shared physical NIC was dedicated only to said initiating computer system. - View Dependent Claims (20, 21, 22)
-
Specification