Method and apparatus for network interface card load balancing and port aggregation
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 .
Claims
exact text as granted — not AI-modified1. A process method for driving a network interface card, comprising:
providing a multi-port network interface card on a stand- alone computer, the multi-port network interface card having at least three ports for connecting the stand- alone computer to a one network, the at least three ports being capable of transmitting data from the stand- alone computer to the network as transmit ports at the same time to a remote host attached to the network 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 stand- alone 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 stand- alone computer and the network;
detecting a failure in one of the at least three ports that connect the stand- alone 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 in a manner 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.
2. A process method for driving a network interface card as recited in claim 1 , wherein when the failed one of the at least three ports is the primary receiving port and wherein the receiving is assigned to a selected next active port selected in a round robin technique .
3. A process method for driving a network interface card as recited in claim 2 , wherein the selected next active port selected in the round robin technique is assigned a media access control address of the primary receiving port.
4. A process method for driving a network interface card as recited in claim 3 , wherein the network interface card transmits the new data in a load balanced manner over the at least three ports by:
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 method for driving a network interface card as recited in claim 4 , wherein the load-balanced configuration produces an increase in throughput between the stand- alone computer and the network.
6. A process method 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 method 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 as the receiving port; and
assigning a next active port of the plurality of ports with as the receiving port.
8. A process method 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 method 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 method 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 method 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 method 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 cad 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.
14. A method for transmitting and receiving data over a network from a server computer system as recited in claim 13 , further comprising:
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.
22. A computer readable storage media containing program instructions for driving a multi-port network interface card having at least three ports for connecting a stand- alone computer system to a one 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 stand- alone computer system to the network as transmit ports at the same time to a remote host attached to the network 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 stand- alone computer system to the network;
program instructions for building a port resolution table indexing connections to at least one remote host attached to the network that is communicating through a selected one of the at least three ports, the building further including instructions for,
determining whether a host attached to the network 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.
23. A computer readable storage media containing program instructions for driving a network interface card as recited in claim 22 , wherein the at least one remote host attached to the network is assigned host parameters identifying a media access control address of the at least one remote host attached to the network, a number assigned to the selected one of the at least three ports, and a timer.
24. A computer readable storage media containing program instructions for driving a network interface card as recited in claim 22 , wherein the timer is set to a logical one when communication is active through the selected one of the at least three ports.
25. A computer readable storage media containing program instructions for driving a network interface card as recited in claim 23 , wherein the timer is set to a logical zero when communication is not active through the selected one of the at least three ports after the predetermined time-out.
26. A computer readable storage media containing program instructions for driving a network interface card as recited in claim 23 , further comprising:
program instructions for removing the port resolution table index for the at least one remote host attached to the network when the timer is already set to the logical zero and a pass is made through the port resolution table.
27. A computer readable storage media containing program instructions for driving a network interface card as recited in claim 23 , wherein the when more than one remote host attached to the network 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 storage 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 attached to the network.
29. A computer readable storage 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 storage media containing program instructions for driving a network interface card having at least three ports for connecting a stand- alone computer system to a one network, comprising:
program instructions for monitoring a status of the at least three ports of the network interface card connected between the stand- alone computer system and the network, the at least three ports being capable of transmitting data from the stand- alone computer system to the network as transmit ports at the same time to a remote host attached to the network 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 stand- alone computer system 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 stand- alone 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.
31. A computer readable storage media containing program instructions for driving a network interface card as recited in claim 30 , wherein when the failed one of the at least three ports is the primary receiving port, the receiving is assigned to a next active port selected in a round robin technique .
32. A computer readable storage media containing program instructions for driving a network interface card as recited in claim 31 , wherein the next active port selected in the round robin technique is assigned a media access control address of the primary receiving port.
33. An apparatus for driving comprising:
a network interface card having at least three ports for connecting a stand- alone computer system to a one network, the apparatus comprising: ;
an apparatus for driving the network interface card, comprising:
means for monitoring the status of the at least three ports connected between the stand- alone computer system and the network, the at least three ports being capable of transmitting data from the stand- alone computer system to the network as transmit ports at the same time to a remote host attached to the network 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 stand- alone computer system 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 determining which of 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 one of the at least three ports that has been determined to be active, 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.
34. An apparatus for driving a network interface card as recited in claim 33 , wherein when the failed one of the at least three ports is the primary receiving port, the receiving is assigned to a next active port selected in a round robin technique .
35. An apparatus for driving a network interface card as recited in claim 34 , wherein the next active port selected in the round robin technique is assigned a media access control address of the primary receiving port.
36. The apparatus for in claim 33 , wherein the means for determining which of the at least three ports are active further includes a means for scanning the indices of a lookup table to determine if the ports are active.Join the waitlist — get patent alerts
Track USRE41397E — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.