Method and apparatus for network interface card load balancing and port aggregation
First Claim
1. A process for driving a network interface card, comprising:
- providing a multi-port network interface card on a computer, the multi-port network interface card having at least three ports for connecting the computer to a network, the at least three ports being capable of transmitting data from the computer to the network as transmit ports at the same time to a remote host at an aggregated bandwidth of the at least three ports, a selected port from the at least three ports being capable of receiving data from the network as a primary receiving port, wherein the multi-port network interface card is configured to transmit new data over a selected transmit port while transmitting other data over the other transmit ports at the same time so as to improve load balancing of data from the computer;
initializing each of the at least three ports, the initializing further including, ascertaining the connection type for the ports, and scanning the indices of a lookup table to determine if the ports are active;
creating registry groups by selecting ports from the at least three ports;
defining start time-out values to assist in the efficient load balancing of active ports;
monitoring a status of the at least three ports between the computer and the network;
detecting a failure in one of the at least three ports that connect the computer to the network;
upon detecting the failure in one of the ports, re-assigning data to be transmitted over the failed one of the at least three ports to an active port of the at least three ports, the active port being selected in a round robin technique such that data transfer load is automatically redistributed over active ports; and
receiving data over one of the at least three ports designated as the primary receiving port.
7 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a process for driving a network interface card. The process includes monitoring the status of a plurality of ports connected between a computer and a network. Detecting a failure in one of the plurality of ports connected to the network. Re-assigning data transmitted over the failed one of the plurality of ports to an active port of the plurality of ports selected in a round robin technique. The process further including receiving data over one of the plurality of ports designated as a primary receiving port. Preferably, when the failed one of the plurality of ports is the primary receiving port, the receiving tasks are assigned to a next active port selected in a round robin technique.
329 Citations
35 Claims
-
1. A process for driving a network interface card, comprising:
-
providing a multi-port network interface card on a computer, the multi-port network interface card having at least three ports for connecting the computer to a network, the at least three ports being capable of transmitting data from the computer to the network as transmit ports at the same time to a remote host at an aggregated bandwidth of the at least three ports, a selected port from the at least three ports being capable of receiving data from the network as a primary receiving port, wherein the multi-port network interface card is configured to transmit new data over a selected transmit port while transmitting other data over the other transmit ports at the same time so as to improve load balancing of data from the computer;
initializing each of the at least three ports, the initializing further including, ascertaining the connection type for the ports, and scanning the indices of a lookup table to determine if the ports are active;
creating registry groups by selecting ports from the at least three ports;
defining start time-out values to assist in the efficient load balancing of active ports;
monitoring a status of the at least three ports between the computer and the network;
detecting a failure in one of the at least three ports that connect the computer to the network;
upon detecting the failure in one of the ports, re-assigning data to be transmitted over the failed one of the at least three ports to an active port of the at least three ports, the active port being selected in a round robin technique such that data transfer load is automatically redistributed over active ports; and
receiving data over one of the at least three ports designated as the primary receiving port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
examining the at least three ports to determine whether any one of the at least three ports is free, if one or more ports are determined to be free, assigning data transfer to a next free port selected in a round robin manner; and
if no ports are determined to be free, assigning data transfer to a least busiest port among the more than two ports.
-
-
5. A process for driving a network interface card as recited in claim 4, wherein the load balanced configuration produces an increase in throughput between the computer and the network.
-
6. A process for driving a network interface card as recited in claim 3, wherein when the next active port transmits data, the transmitted data is tagged with the media access control address of the primary receiving port.
-
7. A process for driving a network interface card as recited in claim 1, further comprising:
-
scanning the plurality of ports to ascertain whether each of the at least three ports is active;
determining whether the primary port is active based on the scanning;
determining that the primary port is not active;
determining that the primary port is assigned the receiving; and
assigning a next active port of the plurality of ports with the receiving.
-
-
8. A process for driving a network interface card as recited in claim 7, wherein the scanning the at least three ports to ascertain whether each of the at least three ports is active is periodically performed through a link check timer routine.
-
9. A process for driving a network interface card as recited in claim 8, wherein the link check timer routine has a time-out interval of between about 1 second and about 10 seconds.
-
10. A process for driving a network interface card as recited in claim 3, wherein the network interface card is configured through a graphical user interface, the configuration comprising:
-
performing a port configuration to assign a bandwidth to each of the at least three ports;
performing a grouping of selected ones of the at least three ports to attain a group of load balanced transmission ports; and
initializing the configured ports and the group of load balanced transmission ports.
-
-
11. A process for driving a network interface card as recited in claim 10, wherein the graphical user interface includes a ports configuration window for listing each of the at least three ports, and a configuration pull down window for manually assigning bandwidths or auto detecting a default connection of selected ones of the at least three ports listed in the ports configuration window.
-
12. A process for driving a network interface card as recited in claim 10, wherein the graphical user interface includes a port aggregation window for performing the grouping of selected ones of the at least three ports, and a status window for displaying an activity of each of the at least three ports assigned to selected groups of load balanced transmission ports.
-
13. A method for transmitting and receiving data over a network from a server computer system, comprising:
-
providing a multi-port network interface card on the server computer system, the multi-port network interface card having at least three ports for connecting the server computer system to a network, the at least three ports being capable of transmitting data from the computer as transmit ports at the same time to a remote host at an aggregated bandwidth of the at least three ports, a selected port from the at least three ports being capable of receiving data from the network as a primary receiving port, wherein the multi-port network interface card is configured to transmit new data over a selected transmit port while transmitting other data over the other transmit ports at the same time so as to improve load balancing of data from the computer to the network;
connecting the server computer system with the network through the at least three ports for communicating with a plurality of remote hosts coupled to the network;
transmitting a load of data from the server computer system through the at least three ports to the plurality of remote hosts, the transmitting further including, retrieving a destination address from the load of data, and determining whether the destination address is listed in a lookup table;
detecting, by the server computer system, a failure in one of the at least three ports during a transmit to a selected one of the plurality of remote hosts; and
redistributing, by the server computer system, the load of data assigned to the failed one of the at least three ports to an available port of the plurality of ports, the redistributing further including, determining if the available port is free by referring to the lookup table. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
receiving data through one of the at least three ports designated as a primary receiving port.
-
-
15. A method for transmitting and receiving data over a network from a server computer system as recited in claim 14, wherein when the primary receiving port fails, the method further comprises:
receiving data through a next active port of the at least three ports selected in a round robin orientation.
-
16. A method for transmitting and receiving data over a network from a server computer system as recited in claim 15, wherein when the next active port of the at least three ports is selected in response to a failure in the primary receiving port, wherein a port address of the primary receiving port is assigned to the next active port.
-
17. A method for transmitting and receiving data over a network from a server computer system as recited in claim 16, wherein when a data packet is transmitted through the next active port, the data packet will transmit with the port address of the primary receiving port.
-
18. A method for transmitting and receiving data over a network from a server computer system as recited in claim 17, wherein when the server computer receives data, the data is addressed to the port address of the primary receiving port when the primary receiving port is active as well as when the primary port is inactive, and the next active port is receiving.
-
19. A method for transmitting and receiving data over a network from a server computer system as recited in claim 13, further comprising:
-
monitoring activity of a plurality of links connecting the plurality of ports to selected ones of the plurality of remote hosts;
detecting a failure in one of the plurality of links;
redistributing the load of data assigned to one of the at least three ports connected to the failed one of the plurality of links to an available port of the at least three ports, such that the available port is connected to an active one of the plurality of links.
-
-
20. A method for transmitting and receiving data over a network from a server computer system as recited in claim 13, wherein the available port is a free port that is not currently transmitting.
-
21. A method for transmitting and receiving data over a network from a server computer system as recited in claim 20, wherein each of the at least three ports including the available port is currently transmitting;
- and
selecting a least busy port of the at least three ports after detecting the failure in one of the at least three ports.
- and
-
22. A computer readable media containing program instructions for driving a multi-port network interface card having at least three ports for connecting a computer system to a network, the computer readable media comprising:
-
program instructions for monitoring a status of the at least three ports of the multi-port network card that connects the computer to the network, the at least three ports being capable of transmitting data from the computer to the network as transmit ports at the same time to a remote host at an aggregated bandwidth of the at least three ports, a selected port from the at least three ports being capable of receiving data from the network as a primary receiving port, wherein the multi-port network interface card is configured to transmit new data over a selected transmit port while transmitting other data over the other transmit ports at the same time so as to improve load balancing of data from the computer to the network;
program instructions for building a port resolution table indexing connections to at least one remote host that is communicating through a selected one of the at least three ports, the building further including instructions for, determining whether a host is associated with the port resolution table by referring to a timer parameter;
program instructions for periodically updating the port resolution table after a predetermined time-out; and
program instructions for performing a link check timer routine, the performing further including instructions for, determining if a receiver port of the at least three ports is active. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29)
program instructions for removing the port resolution table index for the at least one remote host when the timer is already set to the logical zero and a pass is made through the port resolution table.
-
-
27. A computer readable media containing program instructions for driving a network interface card as recited in claim 23, wherein the when more than one remote host is indexed to a same port resolution table entry, the more than one remote hosts are doubly linked to the same port resolution table entry.
-
28. A computer readable media containing program instructions for driving a network interface card as recited in claim 27, wherein the host parameters includes pointers for the doubly linked remote hosts.
-
29. A computer readable media containing program instructions for driving a network interface card as recited in claim 22, wherein the predetermined time-out is between about ¼
- second and about 1 second.
-
30. A computer readable media containing program instructions for driving a network interface card having at least three ports for connecting a computer system to a network, comprising:
-
program instructions for monitoring a status of the at least three ports of the network interface card connected between the computer and the network, the at least three ports being capable of transmitting data from the computer to the network as transmit ports at the same time to a remote host at an aggregated bandwidth of the at least three ports, a selected port from the at least three ports being capable of receiving data from the network as a primary receiving port, wherein the multi-port network interface card is configured to transmit new data over a selected transmit port while transmitting other data over the other transmit ports at the same time so as to improve load balancing of data from the computer to the network;
program instructions for initializing each of the at least three ports, the initializing further including instructions for, ascertaining the connection type for the ports, and scanning the indices of a lookup table to determine if the ports are active;
program instructions for detecting a failure in one of the at least three ports that connect the computer system to the network;
program instructions for re-assigning data transmitted over the failed one of the at least three ports to an active port of the at least three ports selected in a round robin technique such that data transfer load is automatically redistributed over active ports; and
program instructions for receiving data over one of the at least three ports designated as a primary receiving port. - View Dependent Claims (31, 32)
-
-
33. An apparatus for driving a network interface card having at least three ports for connecting a computer system to a network, the apparatus comprising:
-
means for monitoring the status of the at least three ports connected between the computer and the network, the at least three ports being capable of transmitting data from the computer to the network as transmit ports at the same time to a remote host at an aggregated bandwidth of the at least three ports, a selected port from the at least three ports being capable of receiving data from the network as a primary receiving port, wherein the multi-port network interface card is configured to transmit new data over a selected transmit port while transmitting other data over the other transmit ports at the same time so as to improve load balancing of data from the computer to the network;
means for initializing each of the at least three ports, the initializing means further including, means for ascertaining the connection type for the ports, and means for scanning the indices of a lookup table to determine if the ports are active;
means for detecting a failure in one of the at least three ports connected to the network;
means for re-assigning data transmitted over the failed one of the at least three ports to an active port of the at least three ports selected in a round robin technique such that data transfer load is automatically redistributed over active ports; and
means for receiving data over one of the at least three ports designated as a primary receiving port. - View Dependent Claims (34, 35)
-
Specification