System and method for dynamic link aggregation in a shared I/O subsystem
First Claim
1. A shared I/O subsystem for a plurality of computer systems comprising:
- a plurality of physical I/O interfaces;
a plurality of virtual I/O interfaces, wherein each of the computer systems is communicatively coupled to one or more of the virtual I/O interfaces;
a forwarding function having a forwarding table that logically arranges the shared I/O subsystem into one or more logical LAN switches, wherein each of the logical LAN switches communicatively couples one or more of the virtual I/O interfaces to at least one of the physical I/O interfaces;
wherein, for each of the logical LAN switches, the forwarding function receives a data packet from any one from the group of the physical I/O interfaces and the virtual I/O interfaces, and directs the data packet to at least one from the group of the physical I/O interfaces and the virtual I/O interfaces; and
wherein two or more of the physical I/O interfaces are aggregated to form a single logical I/O interface by selectively altering entries in the forwarding table without reconfiguring the computer systems, and based on a destination address of a network packet, the forwarding function selects one or more of the physical I/O interfaces to deliver the network packet to a destination.
5 Assignments
0 Petitions
Accused Products
Abstract
A shared I/O subsystem for a plurality of computer systems. The shared I/O subsystem includes a plurality of physical I/O interfaces and a plurality of virtual I/O interfaces where each of the computer systems is communicatively coupled to one or more of the virtual I/O interfaces. The shared I/O subsystem also includes a forwarding function having a forwarding table that logically arranges the shared I/O subsystem into one or more logical LAN switches. Each of the logical LAN switches communicatively couples one or more of the virtual I/O interfaces to at least one of the physical I/O interfaces. For each of the logical LAN switches, the forwarding function receives a data packet from any one from the group of the physical I/O interfaces and the virtual I/O interfaces, and directs the data packet to at least one from the group of the physical I/O interfaces and the virtual I/O interfaces. Two or more of the physical I/O interfaces may be aggregated to form a logical I/O interface by selectively altering entries in the forwarding table without reconfiguring the computer systems.
118 Citations
25 Claims
-
1. A shared I/O subsystem for a plurality of computer systems comprising:
-
a plurality of physical I/O interfaces; a plurality of virtual I/O interfaces, wherein each of the computer systems is communicatively coupled to one or more of the virtual I/O interfaces; a forwarding function having a forwarding table that logically arranges the shared I/O subsystem into one or more logical LAN switches, wherein each of the logical LAN switches communicatively couples one or more of the virtual I/O interfaces to at least one of the physical I/O interfaces; wherein, for each of the logical LAN switches, the forwarding function receives a data packet from any one from the group of the physical I/O interfaces and the virtual I/O interfaces, and directs the data packet to at least one from the group of the physical I/O interfaces and the virtual I/O interfaces; and wherein two or more of the physical I/O interfaces are aggregated to form a single logical I/O interface by selectively altering entries in the forwarding table without reconfiguring the computer systems, and based on a destination address of a network packet, the forwarding function selects one or more of the physical I/O interfaces to deliver the network packet to a destination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. In a shared I/O subsystem comprising
a plurality of physical I/O interfaces for a plurality of computer systems, a plurality of virtual I/O interfaces, and a forwarding function having a forwarding table, a method comprising: -
communicatively coupling each of the computer systems to one or more of the virtual I/O interfaces; logically arranging, with the forwarding table, the shared I/O subsystem into one or more logical LAN switches, wherein each of the logical LAN switches communicatively couples one or more of the virtual I/O interfaces to at least one of the physical I/O interfaces, and wherein, for each of the logical LAN switches, the forwarding function receives a data packet from any one from the group of the physical I/O interfaces and the virtual I/O interfaces, and directs the data packet to at least one from the group of the physical I/O interfaces and the virtual I/O interfaces; and aggregating two or more of the physical I/O interfaces to form a single logical I/O interface by selectively altering entries in the forwarding table without reconfiguring the computer systems and based on a destination address of a network packet, the following function selects one or more of the physical I/O interfaces to deliver the network packet to a destination.
-
-
22. A shared I/O subsystem comprising
a plurality of physical I/O interfaces for a plurality of computer systems, a plurality of virtual I/O interfaces, and a forwarding function having a forwarding table, comprising: -
means for communicatively coupling each of the computer systems to one or more of the virtual I/O interfaces; means for logically arranging, with the forwarding table, the shared I/O subsystem into one or more logical LAN switches, wherein each of the logical LAN switches communicatively couples one or more of the virtual I/O interfaces to at least one of the physical I/O interfaces, and wherein, for each of the logical LAN switches, the forwarding function receives a data packet from any one from the group of the physical I/O interfaces and the virtual I/O interfaces, and directs the data packet to at least one from the group of the physical I/O interfaces and the virtual I/O interfaces; and means for aggregating two or more of the physical I/O interfaces to form a single logical I/O interface by selectively altering entries in the forwarding table without reconfiguring the computer systems and based on a destination address of a network packet, selecting one or more of the physical I/O interfaces to deliver the network packet to a destination. - View Dependent Claims (25)
-
-
23. A shared I/O subsystem for a plurality of computer systems, comprising:
-
at least one virtual I/O controller that is shared by a plurality of virtual network interface cards (NICs), the virtual NICs executed at each of the plurality of computer systems; and
each virtual NIC connects to a virtual port via a virtual bus;an address cache maintained by the virtual I/O controller so that each virtual NIC maintains a unique network address; an aggregate switching function that uses a forwarding table for moving of I/O packets between a plurality of virtual ports and to a plurality of network devices; and an aggregate function that presents a plurality of physical links to the aggregate switching function as a single aggregated link to transfer network packets to the plurality of network devices; wherein an outbound packet from one of the plurality of computer systems originates in a protocol stack executed above the virtual NIC and the virtual NIC transfers the outbound packet to a virtual port, and the virtual port delivers the packet to the aggregate switching function that uses the forwarding table to determine whether the outbound packet is to be delivered to another virtual port or to the aggregate function for delivery to one of the network devices; and
if the packet is destined for the aggregate function, then the aggregate function selects a link from the plurality of physical links to deliver the outbound packet to one or more of the network devices. - View Dependent Claims (24)
-
Specification