USRE41397E1 - Method and apparatus for network interface card load balancing and port aggregation - Google Patents
Method and apparatus for network interface card load balancing and port aggregation Download PDFInfo
- Publication number
- USRE41397E1 USRE41397E1 US10/704,464 US70446403A USRE41397E US RE41397 E1 USRE41397 E1 US RE41397E1 US 70446403 A US70446403 A US 70446403A US RE41397 E USRE41397 E US RE41397E
- Authority
- US
- United States
- Prior art keywords
- ports
- port
- network
- interface card
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Definitions
- This invention relates generally to computer networks, and more particularly to software drivers used for controlling network interface cards.
- NICs network interface cards
- PCI Bus computer's interface bus
- a computer's NIC enables communication over a single computer network, such as a Local Area Network (LAN), which may include a multitude of switches and network devices.
- LAN Local Area Network
- remote hosts are capable of communicating with other similarly connected remote hosts or to a server computer system.
- remote hosts are able to, for example, request data from a server computer system, and the server computer system is able to transfer the requested data to the requesting host over the network.
- many NICs are now capable of communicating over more than one network. In this manner, data stored on one server computer system may be accessed by hosts coupled to different networks (e.g., different LANs).
- FIG. 1 is a graphical illustration of a server computer system 20 having a NIC 30 that is coupled to more than one local area network.
- NIC 30 is a single card having four ports, where each of the four ports is connected to a different network.
- NIC 30 is connected to a LAN-1 10 , a LAN-2 12 , a LAN-3 14 and a LAN-4 16 , that enables an increased number of users to access data stored on server computer system 20 .
- each port of NIC 30 is capable of processing received (Rx) data (and requests for data) from remote hosts in addition to transmitting (Tx) data to remote hosts connected to one of the LANs shown in FIG. 1 .
- Another traditional way of connecting server computer system 20 to multiple networks is to install a plurality of single port NICs (one for each network) to the interface bus of the server computer system 20 .
- each port of each NIC is capable of performing receive and transmit functions over its dedicated NIC.
- NIC 30 is responsible for providing the communication path between a multitude of remote hosts, the loading experienced by NICs installed on a server computer system 20 are far greater than the typical loads experienced by NICs installed on the individual remote hosts.
- server computer system 20 typically receives a few short requests from the remote hosts and then responds by transmitting out a great deal of data to the requesting hosts.
- NIC 30 is only able to transmit out to each network at a fixed bandwidth (e.g., about 10 Mbps/100 Mbps), the server computer system 20 will unfortunately be tied up responding to data transmit request for extended periods of time.
- NICs access to server computer system 20 may be completely blocked-off to an entire network whenever one port fails to operate properly.
- port P 1 fails, all hosts connected to LAN-1 10 will be prevented from accessing data stored on server computer system 20 .
- port failures are common, and are typically caused by network overloads, NIC software driver bugs, NIC link interface failures, and NIC hardware failures. In any event, when a failure occurs, a large number of users attempting to access or transfer data between the server computer system 20 will be unable to accomplish their networking task.
- NIC port e.g., port P 1
- server computer system 20 is typically shut down to all network traffic (i.e., LANs 10 , 12 , 14 , and 16 ) while network technicians trouble shoot and fix the NIC port failure.
- network repairs may disable a network for several hours or even days.
- NIC port failures are also common in large corporations such as, banks, hotel chains, and airlines that critically depend on real-time access to data stored on a central server computer. Consequently, NIC port failures are commonly to blame for significant yearly losses in revenue as well as lower customer satisfaction.
- NICs network interface card(s)
- NIC software drivers to intelligently detect port failures and automatically redistribute data transfer loads over functioning NIC ports.
- the present invention fills these needs by providing methods and apparatus for increasing throughput in a load balancing manner over a multi-port NIC.
- Each port of the multi-port NIC preferably has its own link to the network, hub, or switch, which enables the multi-port NIC to reconfigure automatically to recover from a port failure.
- the multi-port NIC driven by a smart NIC driver preferably reconfigures the multi-port driver by redistributing the load (both transmit and receive) over the remaining active ports. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
- a process for driving a network interface card 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. In a preferred embodiment, 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.
- a method for transmitting and receiving data over a network from a server computer system includes connecting a plurality of ports between the server computer system and the network for communicating with a plurality of remote hosts coupled to the network. Transmitting a load of data through the plurality of ports to the plurality of remote hosts. Detecting a failure in one of the plurality of ports during a transmit to a selected one of the plurality of remote hosts. The method further includes redistributing the load of data assigned to the failed one of the plurality of ports to an available port of the plurality of ports. Preferably, data is received through one of the plurality of ports designated as a primary receiving port.
- a computer readable media containing program instructions for driving a network interface card.
- the computer readable media includes program instructions for monitoring a status of a plurality of ports connected between a computer and a network.
- the computer readable media further includes program instructions for periodically updating the port resolution table after a predetermined time-out.
- the at least one remote host is assigned host parameters identifying a media access control address of the at least one remote host, a number assigned to the selected one of the plurality of ports, and a timer.
- a computer readable media containing program instructions for driving a network interface card.
- the computer readable media includes program instructions for monitoring a status of a plurality of ports connected between a computer and a network. Program instructions for detecting a failure in one of the plurality of ports connected to the network. Program instructions for 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 computer readable media further includes program instructions for receiving data over one of the plurality of ports designated as a primary receiving port.
- an apparatus for driving a network interface card includes means for monitoring a status of a plurality of ports connected between a computer and a network. Means for detecting a failure in one of the plurality of ports connected to the network. Means for 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 apparatus further includes means for receiving data over one of the plurality of ports designated as a primary receiving port.
- the embodiments of the present invention provide a multi-port network interface card having a plurality of ports connected to a single network, and a smart network interface driver for controlling the functions of the multi-port card and interactions with existing server operating systems.
- a smart network interface driver for controlling the functions of the multi-port card and interactions with existing server operating systems.
- FIG. 1 is a graphical illustration of a server computer system including a network interface card (NIC) coupled to more than one local area network.
- NIC network interface card
- FIG. 2 is a pictorial diagram of a server computer system having multi-port NICs connected to a plurality of networks in accordance with one embodiment of the present invention.
- FIG. 3 shows a more detailed diagram of a multi-port NIC connected to a network in accordance with one embodiment of the present invention.
- FIG. 4 shows a table containing status, function, ports, MAC addresses, and source addresses of the exemplary network connections illustrated in FIG. 3 in accordance with one embodiment of the present invention.
- FIG. 5A is an overview flowchart diagram illustrating the method operations associated with implementing a multi-port NIC in accordance with one embodiment of the present invention.
- FIGS. 5B through 5D illustrate exemplary graphical user interfaces (GUI) for set-up and configuration of the multi-port NIC in accordance with one embodiment of the present invention.
- GUI graphical user interfaces
- FIG. 6 is a more detailed flowchart diagram of the initialization performed by a smart NIC driver in accordance with one embodiment of the present invention.
- FIG. 7A illustrates the method operations associated with performing transmits (Tx) through the various ports of the multi-port NIC in accordance with one embodiment of the present invention.
- FIGS. 7B and 7C illustrate a port resolution table (PRT) timing routine performed in accordance with one embodiment of the present invention.
- PRT port resolution table
- FIG. 8 illustrates the method operations performed in selecting a new port when a current port is inactive or is not currently listed in the PRT table in accordance with one embodiment of the present invention.
- FIG. 9 is a flowchart diagram of the method operations performed in conducting the port resolution table timer routine in accordance with one embodiment of the present invention.
- FIG. 10 is a flowchart diagram illustrating the method operations associated with performing a link check timer (LCT) routine in accordance with one embodiment of the present invention.
- LCT link check timer
- FIG. 11 is a block diagram of an exemplary computer system for carrying out the processing according to the invention.
- An invention is described for methods and apparatus for increasing throughput in a load balancing manner over a multi-port NIC.
- the present invention also provides a smart NIC driver for managing loads over the multi-port NIC and redistributing loads over active ports when failures occur with a given port of the multi-port NIC.
- numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
- the multi-port NIC is well suited for server computer systems that are required to transfer large amounts of data over a network in response to numerous short data requests.
- the multi-port NIC of the present invention has each of its ports linked to the network, hub, or switch, and each port acts as an independent NIC having an associated bandwidth.
- the multi-port NIC of the present invention is capable of simultaneously transmitting data over each of the ports to a particular remote host located within a network with an aggregated bandwidth.
- the total aggregated bandwidth can be 400 Mbps, or higher for NICs with additional ports.
- the smart NIC driver that controls the operability of the multi-port NIC will automatically redistribute the load over the remaining ports that remain active.
- FIG. 2 is a pictorial diagram of a server computer system 120 being connected to a plurality of networks 110 a- 110 n in accordance with one embodiment of the present invention.
- Server computer system 120 has a random access memory (RAM) block 122 that has loaded therein an operating system 124 and a smart NIC driver 126 .
- operating system 124 can be any suitable operating system including, Unix, DOS, Microsoft Windows 95, Microsoft Windows NT, Netware, Macintosh OS, etc.
- RAM block 122 is shown in communication with a PCI bus 128 , which is also used to couple one or more multi-port NICs 130 .
- one multi-port NIC 130 is used to connect to a distinct network (e.g., LAN).
- a distinct network e.g., LAN
- the present invention uses a “single” instance of the smart NIC driver 126 to control each port of the multi-port NIC 130 .
- the operating system 124 is capable of interfacing with the smart NIC driver 126 to control the multiple ports of a multi-port NIC 130 in a manner that is transparent to the operating system 124 . That is, although smart NIC driver 126 is controlling multiple ports to a single network, its interface with existing operating systems will be essentially identical to software drivers used to conventionally control data flow through a single port. Therefore, the smart NIC driver 126 is seamlessly able to communicate with any of the well established network protocols controlled by operating system 124 , including TCP/IP, Netware and NetBEUI.
- one multi-port NIC 130 is shown having ports P 1 , P 2 , P 3 and P 4 connected to a Network-A 110 a, that may have a multitude of hosts 132 connected to hubs, switches and routers within Network-A 110 a.
- server 120 is capable of being networked to a number of separate networks by coupling associated multi-port NICs 130 to the PCI bus 128 .
- ports are shown associated with each multi-port NIC 130 , it should be understood that any number of ports may be added to suit the throughput needs of a particular system.
- the transmit (Tx) throughput is aggregated by the number of ports in the multi-port NIC 130 .
- the multi-port NIC 130 may include 12 internal independent NIC cards that make up 12 associated ports.
- the multi-port NIC 130 may include “3” 4-port cards to produce a combined number of 12 associated ports.
- each of the described ports should be understood to have the capabilities of an independent NIC.
- multi-port NIC 130 can function to transmit about 1,200 Mbps (about 1.2 gigabits) by including 12 ports, each having data transfer rates of 100 Mbps.
- FIG. 3 shows a more detailed diagram of a multi-port NIC 130 connected to a network 110 in accordance with one embodiment of the present invention.
- multi-port NIC 130 has ports P 1 , P 2 , P 3 , and P 4 connected to node inputs on a switch 140 located within network 110 .
- each port of Multi-port NIC 130 has an associated Ethernet media access control (MAC) address assigned to each port.
- MAC Ethernet media access control
- switch 140 will know which port of multi-port NIC 130 transmitted the data to switch 140 by inspecting the source address “SA” of any received packet.
- SA source address
- switch 140 will be able to ascertain the MAC address of each of those respective ports transferring data to network 110 .
- switch 140 To manage packet switching, switch 140 typically creates routing tables and stores packet data in queues before routing the data to its destination, which may be any one or more Hosts 132 a through 132 n, that may be connected to switch 140 of network 110 . Although only one switch has been illustrated for ease of description, it should be understood that typical networks include a multitude of network devices interconnecting a plurality of hosts through many hubs, switches, repeaters, bridges and routers.
- FIG. 4 shows a table containing status, function, ports, MAC addresses, and source addresses of the exemplary network connections illustrated in FIG. 3 in accordance with one embodiment of the present invention.
- port P 1 is designated as a primary receiving (Rx) port as well as a transmitting (Tx 1 ) port, while ports P 2 , P 3 and P 4 are designated as transmit ports Tx 2 , Tx 3 and Tx 4 , respectively.
- Rx primary receiving
- Tx 1 transmitting
- ports P 2 , P 3 and P 4 are designated as transmit ports Tx 2 , Tx 3 and Tx 4 , respectively.
- SA source address
- each one of the ports P 1 , P 2 , P 3 , and P 4 may transmit data through switch 140 at the same time in a load balanced manner which advantageously enables multi-port NIC 130 to increase its transmit throughput.
- ports P 1 , P 2 and P 4 are currently transmitting packets through switch 140 of network 110 , and when a new transmit request is received for a new host (currently not in the PRT table) by multi-port NIC 130 , the smart NIC driver 126 of FIG. 2 will examine each of the transmit ports Tx 1 , Tx 2 , Tx 3 and Tx 4 .
- the smart NIC driver 126 will determine weather any port is currently free (i.e., not transmitting data), and then assign the new transmit request to the next free port, chosen in a round robin manner. In this example, port P 3 is free, and therefore smart NIC driver 126 will assign the new data transmit request to port P 3 . On the other hand, if no free port remained, the smart NIC driver 126 would be configured to assign the new packet transmit request to the least busiest port (i.e., the port having the lightest load) currently transmitting to network 110 .
- port P 1 is preferably designated as the primary receive (Rx) port assigned all receiving tasks of packet data coming from Hosts 132 a through 132 n shown connected to network 110 . Because NICs resident in server computers are typically requested to transmit out substantially more data than it is required to receive, only one port is actually necessary for efficiently performing the receive functions of multi-port NIC 130 . However, if port P 1 fails for any reason, smart NIC driver 126 will automatically re-assign the receive (Rx) tasks to the next active port (in a round robin orientation) of multi-port NIC 130 . Once assigned to the next active port, the port that is now assigned with the receiving task will also be assigned the Ethernet MAC address of port P 1 . In this manner, all upper layer protocols will continue sending data to the same destination address “DA” associated with the Ethernet MAC address of P 1 .
- Rx the primary receive
- the port newly assigned with the receiving Rx functions will also transmit (Tx) using the source address “SA” of the primary.
- SA source address
- the smart NIC driver 126 is set to perform a link check timer (LCT) routine for determining the status of all ports of the multi-port NIC 130 .
- the smart NIC driver 126 During the LCT routine, if the primary Rx comes up (i.e., returns to an active state) from the its failed state, the smart NIC driver 126 will perform logical operations to ascertain whether it is proper to re-assign the receiving tasks to the primary Rx port P 1 . In any event, the smart NIC driver 126 is well suited to detect failures in any of the multiple ports (including the primary Rx port), and then perform load balancing to re-assign the load to the remaining active ports of the multi-port NIC 130 .
- any one of the transmit ports e.g., port P 3 fails at any point during a transmission
- the load assigned to port P 3 will be redistributed in a round robin manner to the next active and free port of multi-port NIC 130 .
- the load of port P 3 will be assigned to the least busiest of the remaining ports, thereby enabling efficient load balancing over the remaining active ports.
- FIG. 5A is an overview flowchart diagram illustrating the method operations associated with implementing a multi-port NIC 130 in accordance with one embodiment of the present invention.
- the method begins at an operation 502 where a multi-port NIC 130 is connected to a network as shown in FIG. 3 .
- a multi-port NIC 130 is a 4-port card
- each port of multi-port NIC 130 will be connected to a node of the network 110 , which may include a switch 140 , a hub, a bridge, a router, a repeater or other network interconnection device.
- multi-port NIC 130 is preferably installed to a PCI bus 128 of a server computer system 120 or other network device requiring the ability to transmit at increased load balancing throughput while ensuring superior fail-over resiliency in case one or more ports fail to operate properly.
- a multi-port NIC 130 configuration panel is called up in the form of a graphical user interface (GUI).
- GUI graphical user interface
- the method then proceeds to an operation 506 where port configuration is performed for each port in the multi-port NIC 130 to ascertain the bandwidth (e.g., 10 Mbps, 100 Mbps, etc.) of each port.
- a port configuration GUI 520 is shown having an available network port window 524 listing all ports that may be connected to the multi-port NIC 130 .
- the ports displayed in available network ports window 524 are provided from an operating system registry which holds all available network ports that have been previously installed.
- connection type for the available network ports is set to “auto detect default connection” which is configured to ascertain the type of connection associated with each of the particular ports.
- connection types window 522 may be modified through the drop-down list box to make an appropriate change.
- the apply icon button is preferably selected to implement the newly entered connection types.
- the method proceeds to an operation 508 where grouping of selected configured ports is performed to attain desired load balancing for the groups.
- grouping of selected configured ports is performed to attain desired load balancing for the groups.
- FIG. 5 C a port aggregation GUI 530 is presented to the user as shown in FIG. 5 C.
- the user is able to create groups by selecting ports from the available network ports list 534 and then adding and removing ports through buttons 542 .
- the selected port when a port is selected from the available port list 534 and the ADD button 542 a is clicked, the selected port will be shifted to a group ports list 536 .
- ports may also be removed from the group ports list 536 by clicking remove button 542 b after a port is selected from the group ports list 536 .
- the user may name that group in a groups window 540 , where a link check time-out is provided.
- the link check time-out is used to check the activity of the selected ports during operation.
- the LCT time is set to 10 seconds, however, the LCT timer may be set to any number of seconds between about 1 second and about 20 seconds.
- a port aggregation window 540 of FIG. 5D is provided to graphically display whether any of the ports within a particular group is active or inactive.
- window 544 illustrates that Group 1 (having ports P 1 , P 2 and P 3 ) has port P 2 544 a in an inactive state, which is indicated by a cross-out icon, or may be indicated by any other graphical indicator signaling inactivity.
- port P 1 and port P 3 are shown currently active.
- the user may simply select the icon of a particular port, e.g., port P 3 , and data for the number of bytes received per second and the number of bytes transmitted per second, are displayed to the user in status window 546 .
- the method proceeds to an operation 510 where the smart NIC driver 126 initializes the ports and groups selected by the user through the graphical user interfaces. Once smart NIC driver 126 has completed its initialization task, the method may proceed to an operation 512 where the multi-port NIC 130 transmits and receives over the network through the control of the smart NIC driver 126 .
- the install and set-up of load balancing for the multi-port NIC 130 may be conducted through the above described GUIs loaded in a Windows based machine.
- FIG. 6 is a more detailed flowchart diagram of operation 510 of FIG. 5 in accordance with one embodiment of the present invention.
- the initialization of the ports and the groups begins at an operation 602 where the smart NIC driver 126 reads the operating system registry entries for each port and initializes the ports. For example, the ports configured for each group in FIG. 5C are initialized to ascertain the connection types for the associated ports.
- the initialization also includes the transmission of a packet by the transmitting ports other than the primary Rx (i.e., Tx 2 , Tx 3 and Tx 4 ) to the primary Rx port in order to verify that the transmitting ports are indeed connected to one network.
- the primary Rx i.e., Tx 2 , Tx 3 and Tx 4
- the Rx port would not receive the transmitted packet sent by Tx 2 .
- the smart NIC driver 126 would known during the initialization process that port P 2 is not connected to network A 110 a, and therefore the smart NIC driver 126 will not send packets through port P 2 .
- the method proceeds to an operation 604 where the smart NIC driver 126 creates registry groups from the registry values associated with the groups configured through the graphical user interfaces.
- the method proceeds to an operation 606 where the smart NIC driver 126 initializes the configuration values and start time-out values associated with the multi-port NIC 130 .
- the start time-out values include a port resolution table (PRT) timer and a link check timer (LCT).
- the PRT time is used to march through a PRT table and remove entries for those hosts that are not in use for a predetermined period of time
- the LCT timer is used to monitor the activity of all ports for another predetermined period of time. As such, these timers assist in efficient load balancing among active ports of the multi-port NIC 130 .
- FIG. 7A illustrates the method operations associated with performing transmits (Tx) through the various ports of the multi-port NIC 130 in accordance with one embodiment of the present invention.
- the method begins at an operation 702 where the multi-port NIC 130 receives a request from an upper layer to transmit packets to a networked remote host.
- the application layer which may be a Ping application, an FTP application, or a Telnet application that communicates with the smart NIC driver 126 that enables communication with the multi-port NIC 130 (to perform the desired transmit requests).
- the method then proceeds to an operation 704 where the destination Ethernet media access control (MAC) address is retrieved from packets that are to be transmitted over the network.
- MAC media access control
- FIG. 7B illustrates a port resolution table (PRT) in accordance with one embodiment of the present invention.
- PRT table is essentially a lookup table that lists hosts that may be connected to a port of the multi-port NIC 130 at a certain point in time.
- the smart NIC driver 126 will examine the 6th byte of the destination address “DA” to obtain an index number to an array of 255 entries in the port resolution table (PRT).
- the examination of the 6th byte of the destination address “DA” of the packet to be transmitted returns, for example, a number 3, then the entire destination address “DA” of the packet being transmitted is compared to the MAC destination address of any hosts linked to the entry indexed in the PRT table.
- the entire destination address “DA” of the packet being transmitted is compared to the MAC destination address of any hosts linked to the entry indexed in the PRT table.
- only one Host C 132 c is linked to index number 3, and therefore the comparison of the DA of the packet being sent and the MAC destination address of Host C 132 c should match up.
- the comparison is done for those multiple hosts that are doubly linked.
- destination and source addresses are typically 6 bytes long
- comparison are preferably performed based on 8 bytes (two words) at one time to improve processing efficiency. That is, additional zero values are added to the 6 bytes of the SA and DA to ensure that comparisons are based on two words. It should be appreciated that this lookup table comparison technique is well suited to reduce the amount of processing required by the CPU of the computer containing the multi-port NIC 130 , thereby reducing the number of possible CPU interrupts.
- the first available port P 1 will be selected in a round robin selection technique.
- Host C 132 c (being linked to index number 3 of the PRT table) has an associated parameters box 750 identifying port P 1 as the selected port, a timer set to “1,” indicating current transmission, a HOST C MAC destination address of Host C 132 c, a pointer to index number 3 at one end, and a pointer to null at the other end.
- the pointer to null indicates that there are no other hosts sharing the same 6th byte of their MAC destination addresses.
- Host A 132 a and Host B 132 b do share the same 6th byte of their MAC destination address and therefore, are coupled in a doubly-linked manner, where a parameters box 752 of Host A 132 a points to index 70 at one end, and points to Host B at the other end.
- a parameters box 754 of Host B 132 b points to Host A 132 a at one end and points to null at the other end.
- the second packet transfer performed by Multi-port NIC 130 was designated for Host A 132 a, and the next succeeding data transfer was directed for Host B 132 b. Because port assignment is carried out in a round robin technique, ports P 2 and P 3 will be assigned to Host A 132 a and Host B 132 b, respectively.
- the smart NIC 126 will select the next available port, which is port P 4 as shown in a parameters box 756 associated with Host N 132 n. It should be understood that data transfers may be performed simultaneously through each of the transmit ports and therefore, are shown having a number “1” in the timers of parameter boxes 750 , 752 , 754 , and 756 .
- a PRT timer routine is controlled by the smart NIC driver 126 which scans all indices of the PRT table and associated connected hosts to determine whether they are or are not actively transmitting data. In an initial scan, if the timer is currently set to “1,” then the timer will be changed to “0” if the port is inactive.
- the smart NIC 126 After a predetermined time-out, the smart NIC 126 will again scan all indices (i.e., from 0 to 255) of the PRT table and associated hosts, and again change all timers that are currently set to “1,” to “0.” However, if the timer is already set to “0,” the smart NIC driver 126 will remove the connection to that remote host, and thereby make the port assigned to that host free.
- all indices i.e., from 0 to 255
- the smart NIC driver 126 will remove the connection to that remote host, and thereby make the port assigned to that host free.
- the method will proceed to a decision operation 708 where it is determined if the port for the Ethernet MAC address is active. For example, if the host is inactive due to a link failure or port failure, it will be considered in-active in operation 708 .
- FIG. 7B if data is to be transmitted to a particular remote host having an associated Ethernet MAC address, and a port was previously assigned to transmit to that remote host, all future packets destined for that remote host will preferably be queued up for transmission through that port.
- a connection exists in Host C 132 c through port P 1 all data targeted for Host C will continue to pass through port P 1 until a failure occurs.
- the method will proceed to an operation 710 where a new port is selected for transmission to a desired remote host. Once a new port is selected from the remaining active ports (or least busiest) in a round robin technique, the method will proceed to an operation 712 where the packet(s) are transmitted over the port to the desired Ethernet MAC address of the recipient host.
- FIG. 8 illustrates the method operations performed in selecting a new port as described in operation 710 of FIG. 7A in accordance with one embodiment of the present invention.
- This method begins at an operation 802 where selection of a new port is performed by proceeding to the next active port in a round robin orientation. For example, if multi-port NIC 130 is a 4-port card and selection begins at port P 1 , then the next port in a round robin orientation will be port P 2 , then port P 3 , then port P 4 and then back to port P 1 .
- the method proceeds to a decision operation 804 where it is determined if the next port in the round robin orientation is free.
- the port is free if it is currently not transmitting packet data to a remote host, and if it is not indexed to the PRT table of FIG. 7 A. If the next port is free, then the method will proceed to an operation 808 where the free active port is selected for transmission.
- the method will proceed to an operation 806 where it is determined whether all ports have been checked and been determined to have been busy. If all ports have been not been checked and been determined to have been busy, the method will proceed back to operation 802 where the method proceeds to select the next active port in a round robin orientation. Once the next active port is selected, the method will again proceed to decision operation 804 where it is determined if this next port is free. If it is again determined to not have been free, then the method will again proceed to decision operation 806 where it is again determined whether all ports have been checked and are busy.
- the method will proceed from operation 806 to operation 810 , where the least busiest port is selected for transmission. Once the least busiest port has been selected for transmission, the method returns to operation 712 of FIG. 7 A. In a like manner, if one port was ascertained to be free in operation 808 , that port would be selected and the method would proceed to operation 712 of FIG. 7 A. In sum, the selection of a new port is performed in a load balancing manner that first determines whether there are any free ports that may be used for transmission, and if there are no free ports, the method will proceed to select the least busiest port for transmission.
- FIG. 9 is a flowchart diagram of the method operations performed in conducting a port resolution table (PRT) timer routine in accordance with one embodiment of the present invention.
- PRT port resolution table
- the method will then proceed to the next entry in the PRT table.
- the next entry is entry number 2, which again does not satisfy the condition of operation 904 , therefore, the method will again proceed to operation 902 where the method moves to entry number 3.
- entry number 3 it is determined in decision operation 904 that there is a host associated with the current PRT table entry.
- the method proceeds to a decision operation 906 where it is determined whether the time of the parameters box 750 is currently set to “0.” In this example, the timer is currently shown set to “1,” and therefore the method proceeds to operation 910 where the PRT timer is re-set to “0” as shown in parameters box 750 a.
- the method would proceed to operation 908 , where the host entry would be deleted from the PRT table as shown in FIG. 7 C.
- the removal of Host C 132 c from the PRT table essentially means that port P 1 was idle for at least a predetermined PRT timer delay time-out.
- the PRT timer delay (TIMEOUT) is calibrated for performance optimization to a time of between about 1 ⁇ 4 second and 1 second, and most preferably about 1 ⁇ 2 second. Of source, these preferred optimizations may vary depending on network loading as well as other factors.
- Host C 132 c entry is removed from the PRT table as shown in FIG. 7C , the method will proceed to an operation 912 where it is determined whether there is a pointer to a next doubly linked host. As shown in FIG. 7B , the parameters box 752 of host C 132 c do not point to a next doubly linked host, and therefore the method will proceed to an operation 914 . In operation 914 it is determined whether all of the 255 entries have already been analyzed. Because in this example all 255 entries have not yet been analyzed, the method will proceed back up to operation 902 where the method proceeds to the next PRT table entry.
- the method will continue looping through operations 904 and 902 until a host is associated with a current PRT table entry.
- the next PRT table entry having a host associated with it is entry number 70 as shown in FIG. 7 B.
- the method will proceed to decision operation 912 where it is determined if there is a pointer to a next doubly linked host. Because Host B 132 b is doubly linked to Host A 132 a, the method will proceed back to operation 906 where it is determined if the timer of the parameters box 754 is set to “0.” Because the timer is currently set to “1,” the method will proceed to operation 910 where the timer is set to “0.” On the other hand, if the timer had been set to 0 as shown in parameters box 754 a, the method would have proceeded to operation 908 where the host would be deleted from the PRT table as shown in FIG. 7 C.
- FIG. 10 is a flowchart diagram illustrating the method operations associated with performing a link check timer (LCT) routine in accordance with one embodiment of the present invention.
- the link check timer routine begins at an operation 1002 where all ports of the multi-port NIC 130 are scanned to determine their status. By way of example, each port is examined to ascertain whether it is active or inactive. Once all ports have been scanned to determine their status in operation 1002 , the method proceeds to a decision operation 1004 where it is determined whether the primary Rx port is active. As mentioned in FIG. 4 above, port P 1 is preferably designated as the primary Rx port, which is assigned with all receiving tasks while it is active.
- the method will proceed to a decision operation 1010 where it is determined if the primary Rx port is functioning as the receiver.
- the primary Rx port had previously failed for any reason, the receiving tasks would have been assigned to the next available active port.
- the method will proceed to an operation 1016 where the LCT timer is re-started.
- the method would proceed to an operation 1014 where the primary Rx port would be designated as the receiver, because it was determined in operation 1004 that the primary Rx port was active. Then, once the primary port Rx is designated as the receiver, the method would proceed to operation 1016 where the LCT timer would be restarted. Referring back to operation 1004 , if it is determined that the primary Rx port is not active, then the method would proceed to a decision operation 1006 .
- decision operation 1006 it is determined whether the primary Rx port is currently designated as the receiver.
- the primary Rx port was functioning as the receiver, and then failed to operate properly (i.e., not active) in operation 1004 , then the receiving tasks would have to be assigned to another port. Therefore, if the primary Rx port is currently the receiver and it is no longer active, the method would proceed to an operation 1012 , where the next active port (selected in a round robin orientation) would be designated as the receiver. On the other hand, if it was determined in operation 1006 that the primary Rx port was not the receiver, the method would proceed to a decision operation 1008 where it is determined if the port designated as the receiver is active.
- the method would proceed to operation 1012 where the next active port would be designated as a receiver.
- the method would proceed to operation 1016 where the LCT timer would be re-started as described above.
- the LCT time-out is preferably set by the user to be between about 1 second and about 10 seconds, and most preferably, about 2 seconds.
- these LCT time-out parameters may be modified outside the preferred times to fit well within networks of varying load requirements.
- Tables A through D below illustrate the re-assignment of receiver functions to the active ports when the port assigned the receiving functions fails to operate due to software errors, hardware errors, network over-loading errors, or a combination thereof.
- table A below all ports are currently active, and the primary Rx port P 1 is assigned all receiving functions. As such, each port will have its own MAC address, and transmits will be performed with their own source addresses attached to the packet.
- port P 1 fails for any reason, the smart NIC driver 126 will look to the next active port, and assign the receiving functions to that port.
- port P 2 is now the receiver. As mentioned above, because port P 2 is now the receiver, it will be assigned the MAC address of port P 1 , and when port P 2 transmits out, it will transmit packets with the source address SA- 1 of port P 1 .
- the smart NIC driver 126 will designate the next active port as the receiver. As shown in Table C below, the next active port is port P 3 . Because port P 3 is now the receiver, it will be assigned the MAC address of the primary Rx port P 1 , and any transmits performed from port P 3 will have the source address SA- 1 .
- the smart NIC driver 126 will proceed to decision operation 1004 where it will be determined that the primary Rx port P 1 is again active as shown in Table D below. As such, the primary Rx port will be once again designated as the receiver as described in operation 1014 , after it is determined that the primary Rx port was not the receiver in operation 1010 , and shown in Table C above.
- the present invention may be implemented using any type of integrated circuit logic or software driven computer-implemented operations.
- a hardware description language (HDL) based design and synthesis program may be used to design the silicon-level circuitry necessary to appropriately perform the data and control operations in accordance with one embodiment of the present invention.
- a VHDL® hardware description language available from IEEE of New York, N.Y. may be used to design an appropriate silicon-level layout.
- another layout tool may include a hardware description language “Verilog®” tool available from Cadence Design Systems, Inc. of Santa Clara, Calif.
- the invention may also employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. Further, the manipulations performed are often referred to in terms, such as producing, identifying, determining, or comparing.
- the invention also relates to a device or an apparatus for performing these operations.
- the apparatus may be specially constructed for the required purposes, or it may be a general purpose computer selectively activated or configured by a computer program stored in the computer.
- various general purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
- An exemplary structure for the invention is described below.
- FIG. 11 is a block diagram of an exemplary computer system 1100 for carrying out the processing according to the invention.
- the computer system 1100 includes a digital computer 1102 , a display screen (or monitor) 1104 , a printer 1106 , a floppy disk drive 1108 , a hard disk drive 1110 , a network interface 1112 , and a keyboard 1114 .
- the digital computer 1102 includes a microprocessor 1116 , a memory bus 1118 , random access memory (RAM) 1120 , read only memory (ROM) 1122 , a peripheral bus 1124 , and a keyboard controller 1126 .
- RAM random access memory
- ROM read only memory
- the digital computer 1100 can be a personal computer (such as an IBM compatible personal computer, a Macintosh computer or Macintosh compatible computer), a workstation computer (such as a Sun Microsystems or Hewlett-Packard workstation), or some other type of computer.
- a personal computer such as an IBM compatible personal computer, a Macintosh computer or Macintosh compatible computer
- a workstation computer such as a Sun Microsystems or Hewlett-Packard workstation
- some other type of computer such as a Sun Microsystems or Hewlett-Packard workstation
- the microprocessor 1116 is a general purpose digital processor which controls the operation of the computer system 1100 .
- the microprocessor 1116 can be a single-chip processor or can be implemented with multiple components. Using instructions retrieved from memory, the microprocessor 1116 controls the reception and manipulation of input data and the output and display of data on output devices. According to the invention, a particular function of microprocessor 1116 is to assist in the port aggregation and load balancing tasks controlled by smart NIC driver 126 of multi-port NIC 130 .
- the memory bus 1118 is used by the microprocessor 1116 to access the RAM 1120 and the ROM 1122 .
- the RAM 1120 is used by the microprocessor 1116 as a general storage area and as scratch-pad memory, and can also be used to store input data and processed data.
- the ROM 1122 can be used to store instructions or program code followed by the microprocessor 1116 as well as other data.
- the peripheral bus 1124 is used to access the input, output, and storage devices used by the digital computer 1102 .
- these devices include the display screen 1104 , the printer device 1106 , the floppy disk drive 1108 , the hard disk drive 1110 , and the network interface 1112 .
- the keyboard controller 1126 is used to receive input from keyboard 1114 and send decoded symbols for each pressed key to microprocessor 116 over bus 1128 .
- the display screen 1104 is an output device that displays images of data provided by the microprocessor 1116 via the peripheral bus 1124 or provided by other components in the computer system 1100 .
- the printer device 1106 when operating as a printer provides an image on a sheet of paper or a similar surface. Other output devices such as a plotter, typesetter, etc. can be used in place of, or in addition to, the printer device 1106 .
- the floppy disk driver 1108 and the hard disk drive 1110 can be used to store various types of data.
- the floppy disk drive 1108 facilitates transporting such data to other computer systems, and hard disk drive 1110 permits fast access to large amounts of stored data.
- the microprocessor 1116 together with an operating system operate to execute computer code and produce and use data.
- the computer code and data may reside on the RAM 1120 , the ROM 1122 , or the hard disk drive 1110 .
- the computer code and data could also reside on a removable program medium and loaded or installed onto the computer system 1100 when needed.
- Removable program mediums include, for example, CD-ROM, PC-CARD, floppy disk and magnetic tape.
- the network interface 1112 is used to send and receive data over a network connected to other computer systems.
- An interface card or similar device and appropriate software implemented by the microprocessor 1116 can be used to connect the computer system 1100 to an existing network and transfer data according to standard protocols.
- the keyboard 1114 is used by a user to input commands and other instructions to the computer system 1100 .
- Other types of user input devices can also be used in conjunction with the present invention.
- pointing devices such as a computer mouse, a track ball, a stylus, or a tablet can be used to manipulate a pointer on a screen of a general-purpose computer.
- the invention can also be embodied as computer readable code on a computer readable medium.
- the computer readable medium is any data storage device that can store data which can be thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, magnetic tape, optical data storage devices. The examples listed in the prior sentence are examples of computer readable storage media.
- the computer readable medium can also be distributed over a network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Human Computer Interaction (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
TABLE A | ||||
MAC | Source | |||
Ports | Address | Address | ||
Port P1 (Active) (Primary Rx) | MAC-1 | SA-1 | ||
* Receiver | ||||
Port P2 (Active) | MAC-2 | SA-2 | ||
Port P3 (Active) | MAC-3 | SA-3 | ||
Port P4 (Active) | MAC-4 | SA-4 | ||
TABLE B | ||||
MAC | Source | |||
Ports | Address | Address | ||
Port P1 (Down) (Primary Rx) | MAC-1 | SA-1 | ||
Port P2 (Down) | MAC-1 | SA-1 | ||
* Receiver | ||||
Port P3 (Active) | MAC-3 | SA-3 | ||
Port P4 (Active) | MAC-4 | SA-4 | ||
TABLE C | ||||
MAC | Source | |||
Ports | Address | Address | ||
Port P1 (Down) (Primary Rx) | MAC-1 | SA-1 | ||
Port P2 (Down) | MAC-2 | SA-2 | ||
Port P3 (Active) | MAC-1 | SA-1 | ||
* Receiver | ||||
Port P4 (Active) | MAC-4 | SA-4 | ||
TABLE D | ||||
MAC | Source | |||
Ports | Address | Address | ||
Port P1 (Active) (Primary Rx) | MAC-1 | SA-1 | ||
* Receiver | ||||
Port P2 (Down) | MAC-2 | SA-2 | ||
Port P3 (Active) | MAC-3 | SA-3 | ||
Port P4 (Active) | MAC-4 | SA-4 | ||
Claims (36)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/704,464 USRE41397E1 (en) | 1997-06-30 | 2003-10-22 | Method and apparatus for network interface card load balancing and port aggregation |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/884,794 US6393483B1 (en) | 1997-06-30 | 1997-06-30 | Method and apparatus for network interface card load balancing and port aggregation |
US10/704,464 USRE41397E1 (en) | 1997-06-30 | 2003-10-22 | Method and apparatus for network interface card load balancing and port aggregation |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/884,794 Reissue US6393483B1 (en) | 1997-06-30 | 1997-06-30 | Method and apparatus for network interface card load balancing and port aggregation |
Publications (1)
Publication Number | Publication Date |
---|---|
USRE41397E1 true USRE41397E1 (en) | 2010-06-22 |
Family
ID=25385412
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/884,794 Ceased US6393483B1 (en) | 1997-06-30 | 1997-06-30 | Method and apparatus for network interface card load balancing and port aggregation |
US10/704,464 Expired - Lifetime USRE41397E1 (en) | 1997-06-30 | 2003-10-22 | Method and apparatus for network interface card load balancing and port aggregation |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/884,794 Ceased US6393483B1 (en) | 1997-06-30 | 1997-06-30 | Method and apparatus for network interface card load balancing and port aggregation |
Country Status (1)
Country | Link |
---|---|
US (2) | US6393483B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050281191A1 (en) * | 2004-06-17 | 2005-12-22 | Mcgee Michael S | Monitoring path connectivity between teamed network resources of a computer system and a core network |
US20120117366A1 (en) * | 2010-11-10 | 2012-05-10 | Inventec Corporation | Method for controlling multi-port network interface card |
US20140016470A1 (en) * | 2011-04-06 | 2014-01-16 | Hangzhou H3C Technologies Co., Ltd. | Method for traffic load balancing |
US10156991B2 (en) | 2015-10-19 | 2018-12-18 | International Business Machines Corporation | User interface for host port assignment |
Families Citing this family (170)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345041B1 (en) * | 1996-10-24 | 2002-02-05 | Hewlett-Packard Company | Method and apparatus for automatic load-balancing on multisegment devices |
US6393483B1 (en) * | 1997-06-30 | 2002-05-21 | Adaptec, Inc. | Method and apparatus for network interface card load balancing and port aggregation |
US6504851B1 (en) * | 1997-11-21 | 2003-01-07 | International Business Machines Corporation | Dynamic detection of LAN network protocol |
US6359879B1 (en) * | 1998-04-24 | 2002-03-19 | Avici Systems | Composite trunking |
US6507863B2 (en) * | 1999-01-27 | 2003-01-14 | International Business Machines Corporation | Dynamic multicast routing facility for a distributed computing environment |
US6952401B1 (en) * | 1999-03-17 | 2005-10-04 | Broadcom Corporation | Method for load balancing in a network switch |
US6567377B1 (en) * | 1999-03-18 | 2003-05-20 | 3Com Corporation | High performance load balancing of outbound internet protocol traffic over multiple network interface cards |
US6560630B1 (en) * | 1999-03-18 | 2003-05-06 | 3Com Corporation | Receive load balancing and fail over with multiple network interface cards |
US6668317B1 (en) * | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US6427196B1 (en) * | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6606704B1 (en) * | 1999-08-31 | 2003-08-12 | Intel Corporation | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode |
US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
US7546444B1 (en) | 1999-09-01 | 2009-06-09 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US7177952B1 (en) * | 1999-10-01 | 2007-02-13 | Nortel Networks Limited | Method and system for switching between two network access technologies without interrupting active network applications |
US7734744B1 (en) * | 1999-11-09 | 2010-06-08 | Cisco Technology, Inc. | System for communicating management information and method of operation |
US6711159B1 (en) * | 1999-12-15 | 2004-03-23 | 3Com Corporation | Load balancing among media gateways |
US6799202B1 (en) * | 1999-12-16 | 2004-09-28 | Hachiro Kawaii | Federated operating system for a server |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6646991B1 (en) * | 1999-12-22 | 2003-11-11 | Intel Corporation | Multi-link extensions and bundle skew management |
US6687840B1 (en) | 2000-04-21 | 2004-02-03 | Intel Corporation | Multi-link extensions and bundle skew management |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6631430B1 (en) * | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
US6625654B1 (en) * | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6307789B1 (en) * | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6584522B1 (en) * | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
US6976095B1 (en) * | 1999-12-30 | 2005-12-13 | Intel Corporation | Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch |
US6631462B1 (en) * | 2000-01-05 | 2003-10-07 | Intel Corporation | Memory shared between processing threads |
US6760781B1 (en) * | 2000-02-16 | 2004-07-06 | 3Com Corporation | Intelligent packet transmission engine |
US6868062B1 (en) * | 2000-03-28 | 2005-03-15 | Intel Corporation | Managing data traffic on multiple ports |
US6701449B1 (en) * | 2000-04-20 | 2004-03-02 | Ciprico, Inc. | Method and apparatus for monitoring and analyzing network appliance status information |
US6701462B1 (en) * | 2000-05-19 | 2004-03-02 | Rockwell Automation Technologies, Inc. | Situational aware output configuration and execution |
US6601186B1 (en) * | 2000-05-20 | 2003-07-29 | Equipe Communications Corporation | Independent restoration of control plane and data plane functions |
US6742134B1 (en) * | 2000-05-20 | 2004-05-25 | Equipe Communications Corporation | Maintaining a local backup for data plane processes |
US6874011B1 (en) * | 2000-07-31 | 2005-03-29 | Cisco Technology, Inc. | Scalable IP-based notification architecture for unified messaging |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US7016484B2 (en) * | 2000-10-13 | 2006-03-21 | Verizon Corporate Services Group Inc. | System and method for effecting inside plant load balancing in a telecommunications system |
US7743125B1 (en) * | 2000-11-09 | 2010-06-22 | General Electric Company | Computer multiple communications port unit |
US7222255B1 (en) * | 2001-02-28 | 2007-05-22 | 3Com Corporation | System and method for network performance testing |
US6728848B2 (en) * | 2001-06-11 | 2004-04-27 | Hitachi, Ltd. | Method and system for backing up storage system data |
US7146524B2 (en) | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US7685126B2 (en) * | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
TW576061B (en) * | 2001-08-13 | 2004-02-11 | Via Tech Inc | Device and method for load balancing of packet switching |
US20030035408A1 (en) * | 2001-08-17 | 2003-02-20 | Hebert James E. | Redundant communication adapter system for connecting a client to an FDDI network |
US6868476B2 (en) * | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
CA2459286C (en) * | 2001-09-04 | 2010-07-20 | Rumi Sheryar Gonda | Method for supporting sdh/sonet aps on ethernet |
US20030053465A1 (en) * | 2001-09-20 | 2003-03-20 | Sanjeevan Sivalingham | System and method for traffic interface scalability in a network packet core function |
US7126952B2 (en) * | 2001-09-28 | 2006-10-24 | Intel Corporation | Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method |
US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US6934951B2 (en) * | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US20030217185A1 (en) * | 2002-03-29 | 2003-11-20 | Anshuman Thakur | Method and apparatus for reducing interrupts in a high-speed ethernet media access controller (MAC) by interrupt canceling |
US7356608B2 (en) * | 2002-05-06 | 2008-04-08 | Qlogic, Corporation | System and method for implementing LAN within shared I/O subsystem |
US7328284B2 (en) * | 2002-05-06 | 2008-02-05 | Qlogic, Corporation | Dynamic configuration of network data flow using a shared I/O subsystem |
US7447778B2 (en) * | 2002-05-06 | 2008-11-04 | Qlogic, Corporation | System and method for a shared I/O subsystem |
US7404012B2 (en) * | 2002-05-06 | 2008-07-22 | Qlogic, Corporation | System and method for dynamic link aggregation in a shared I/O subsystem |
US7307948B2 (en) * | 2002-10-21 | 2007-12-11 | Emulex Design & Manufacturing Corporation | System with multiple path fail over, fail back and load balancing |
JP4464279B2 (en) * | 2002-11-14 | 2010-05-19 | アイシロン・システムズ・インコーポレーテッド | System and method for file striping in a distributed file system |
US8122120B1 (en) * | 2002-12-16 | 2012-02-21 | Unisys Corporation | Failover and failback using a universal multi-path driver for storage devices |
US7114096B2 (en) * | 2003-04-02 | 2006-09-26 | International Business Machines Corporation | State recovery and failover of intelligent network adapters |
US7519916B1 (en) * | 2003-06-16 | 2009-04-14 | Microsoft Corporation | Methods for tailoring a bandwidth profile for an operating environment |
JP4210168B2 (en) * | 2003-07-09 | 2009-01-14 | 株式会社エヌ・ティ・ティ・ドコモ | Mobile terminal, control device, home agent, and packet communication method |
US7506074B2 (en) * | 2003-08-08 | 2009-03-17 | Intel Corporation | Method, system, and program for processing a packet to transmit on a network in a host system including a plurality of network adaptors having multiple ports |
US20050138427A1 (en) * | 2003-12-23 | 2005-06-23 | International Business Machines Corp. | Automatic virus fix using UUID based scheduling |
US7213099B2 (en) * | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
US7356046B2 (en) * | 2004-02-09 | 2008-04-08 | Metretek, Inc. | Method and apparatus for remotely monitoring and controlling devices |
US20050215128A1 (en) * | 2004-03-10 | 2005-09-29 | Intel Corporation | Remote device probing for failure detection |
WO2005107192A1 (en) * | 2004-04-28 | 2005-11-10 | Thomson Licensing | System and method for enhancing network quality of service |
US9264384B1 (en) * | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
US8441935B2 (en) * | 2004-08-09 | 2013-05-14 | Jds Uniphase Corporation | Method and apparatus to distribute signaling data for parallel analysis |
US7698415B1 (en) * | 2004-10-27 | 2010-04-13 | Sprint Communications Company L.P. | Networked port-inventory system and method |
US8238350B2 (en) * | 2004-10-29 | 2012-08-07 | Emc Corporation | Message batching with checkpoints systems and methods |
US8055711B2 (en) | 2004-10-29 | 2011-11-08 | Emc Corporation | Non-blocking commit protocol systems and methods |
US8051425B2 (en) | 2004-10-29 | 2011-11-01 | Emc Corporation | Distributed system with asynchronous execution systems and methods |
US7551615B2 (en) * | 2004-12-29 | 2009-06-23 | Intel Corporation | Method for packet encapsulation and redirection of data packets |
WO2006080066A1 (en) * | 2005-01-27 | 2006-08-03 | Fujitsu Limited | Path route calculation device, method, and program |
US7505401B2 (en) * | 2005-01-31 | 2009-03-17 | International Business Machines Corporation | Method, apparatus and program storage device for providing mutual failover and load-balancing between interfaces in a network |
US7460470B2 (en) * | 2005-03-18 | 2008-12-02 | Hewlett-Packard Development Company, L.P. | Systems and methods of priority failover determination |
US20060227703A1 (en) * | 2005-04-08 | 2006-10-12 | Wen-Chi Hung | Operating method for dynamic physical network layer monitoring |
US20070002826A1 (en) * | 2005-06-29 | 2007-01-04 | Bennett Matthew J | System implementing shared interface for network link aggregation and system management |
US9813283B2 (en) | 2005-08-09 | 2017-11-07 | Oracle International Corporation | Efficient data transfer between servers and remote peripherals |
US7551572B2 (en) | 2005-10-21 | 2009-06-23 | Isilon Systems, Inc. | Systems and methods for providing variable protection |
US7788303B2 (en) | 2005-10-21 | 2010-08-31 | Isilon Systems, Inc. | Systems and methods for distributed system scanning |
US7917474B2 (en) | 2005-10-21 | 2011-03-29 | Isilon Systems, Inc. | Systems and methods for accessing and updating distributed data |
US7797283B2 (en) | 2005-10-21 | 2010-09-14 | Isilon Systems, Inc. | Systems and methods for maintaining distributed data |
US7685334B2 (en) * | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Method for efficient communication between a host library controller and a medium changer library |
KR100762689B1 (en) * | 2005-12-08 | 2007-10-01 | 삼성에스디아이 주식회사 | Portable Display Device |
US7848261B2 (en) * | 2006-02-17 | 2010-12-07 | Isilon Systems, Inc. | Systems and methods for providing a quiescing protocol |
US20070214233A1 (en) * | 2006-03-07 | 2007-09-13 | Daryl Cromer | System and method for implementing a hypervisor for server emulation |
US7756898B2 (en) | 2006-03-31 | 2010-07-13 | Isilon Systems, Inc. | Systems and methods for notifying listeners of events |
US8539056B2 (en) * | 2006-08-02 | 2013-09-17 | Emc Corporation | Systems and methods for configuring multiple network interfaces |
US7734184B2 (en) * | 2006-08-04 | 2010-06-08 | Finisar Corporation | Optical transceiver module having an active linear optoelectronic device |
US7882071B2 (en) | 2006-08-18 | 2011-02-01 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7680842B2 (en) * | 2006-08-18 | 2010-03-16 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7899800B2 (en) | 2006-08-18 | 2011-03-01 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US7680836B2 (en) * | 2006-08-18 | 2010-03-16 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7752402B2 (en) * | 2006-08-18 | 2010-07-06 | Isilon Systems, Inc. | Systems and methods for allowing incremental journaling |
US7953704B2 (en) * | 2006-08-18 | 2011-05-31 | Emc Corporation | Systems and methods for a snapshot of data |
US7590652B2 (en) | 2006-08-18 | 2009-09-15 | Isilon Systems, Inc. | Systems and methods of reverse lookup |
US7822932B2 (en) * | 2006-08-18 | 2010-10-26 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US7676691B2 (en) | 2006-08-18 | 2010-03-09 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US7710862B2 (en) * | 2006-08-30 | 2010-05-04 | Hewlett-Packard Development Company, L.P. | Method and system of assigning media access control (MAC) addresses across teamed communication ports |
US8031632B2 (en) * | 2006-08-30 | 2011-10-04 | Hewlett-Packard Development Company, L.P. | Method and system of implementing virtual local area networks (VLANS) with teamed communication ports |
US7831681B1 (en) | 2006-09-29 | 2010-11-09 | Symantec Operating Corporation | Flexibly provisioning and accessing storage resources using virtual worldwide names |
US20080140805A1 (en) * | 2006-10-05 | 2008-06-12 | Holt John M | Multiple network connections for multiple computers |
US20080130652A1 (en) * | 2006-10-05 | 2008-06-05 | Holt John M | Multiple communication networks for multiple computers |
US8355316B1 (en) | 2009-12-16 | 2013-01-15 | Sprint Communications Company L.P. | End-to-end network monitoring |
US20080155191A1 (en) * | 2006-12-21 | 2008-06-26 | Anderson Robert J | Systems and methods for providing heterogeneous storage systems |
US8286029B2 (en) | 2006-12-21 | 2012-10-09 | Emc Corporation | Systems and methods for managing unavailable storage devices |
US7593938B2 (en) * | 2006-12-22 | 2009-09-22 | Isilon Systems, Inc. | Systems and methods of directory entry encodings |
US7509448B2 (en) * | 2007-01-05 | 2009-03-24 | Isilon Systems, Inc. | Systems and methods for managing semantic locks |
US7778157B1 (en) * | 2007-03-30 | 2010-08-17 | Symantec Operating Corporation | Port identifier management for path failover in cluster environments |
US7900015B2 (en) | 2007-04-13 | 2011-03-01 | Isilon Systems, Inc. | Systems and methods of quota accounting |
US7779048B2 (en) | 2007-04-13 | 2010-08-17 | Isilon Systems, Inc. | Systems and methods of providing possible value ranges |
US8966080B2 (en) | 2007-04-13 | 2015-02-24 | Emc Corporation | Systems and methods of managing resource utilization on a threaded computer system |
US20080267060A1 (en) * | 2007-04-26 | 2008-10-30 | International Business Machines Corporation | Method, system and computer program product for providing high speed fault tracing within a blade center system |
US8289878B1 (en) | 2007-05-09 | 2012-10-16 | Sprint Communications Company L.P. | Virtual link mapping |
US8300647B2 (en) * | 2007-05-18 | 2012-10-30 | Nvidia Corporation | Intelligent load balancing and failover of network traffic |
US7966289B2 (en) | 2007-08-21 | 2011-06-21 | Emc Corporation | Systems and methods for reading objects in a file system |
US7949692B2 (en) * | 2007-08-21 | 2011-05-24 | Emc Corporation | Systems and methods for portals into snapshot data |
US7882068B2 (en) * | 2007-08-21 | 2011-02-01 | Isilon Systems, Inc. | Systems and methods for adaptive copy on write |
EP2220849B1 (en) * | 2007-12-12 | 2019-03-13 | Nokia Technologies Oy | Address assignment protocol |
US7949636B2 (en) | 2008-03-27 | 2011-05-24 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US7953709B2 (en) | 2008-03-27 | 2011-05-31 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US7870345B2 (en) | 2008-03-27 | 2011-01-11 | Isilon Systems, Inc. | Systems and methods for managing stalled storage devices |
US7984324B2 (en) * | 2008-03-27 | 2011-07-19 | Emc Corporation | Systems and methods for managing stalled storage devices |
CN101562553A (en) * | 2008-04-18 | 2009-10-21 | 鸿富锦精密工业(深圳)有限公司 | Bridge set and network bridging method thereof |
JP4811489B2 (en) * | 2009-03-27 | 2011-11-09 | 日本電気株式会社 | Server system, collective server device, and MAC address management method |
US8301762B1 (en) * | 2009-06-08 | 2012-10-30 | Sprint Communications Company L.P. | Service grouping for network reporting |
US9973446B2 (en) | 2009-08-20 | 2018-05-15 | Oracle International Corporation | Remote shared server peripherals over an Ethernet network for resource virtualization |
US8458323B1 (en) | 2009-08-24 | 2013-06-04 | Sprint Communications Company L.P. | Associating problem tickets based on an integrated network and customer database |
CN102208987A (en) * | 2010-03-29 | 2011-10-05 | 鸿富锦精密工业(深圳)有限公司 | Mainboard management controller network configuration system and method |
US8644146B1 (en) | 2010-08-02 | 2014-02-04 | Sprint Communications Company L.P. | Enabling user defined network change leveraging as-built data |
US9331963B2 (en) | 2010-09-24 | 2016-05-03 | Oracle International Corporation | Wireless host I/O using virtualized I/O controllers |
TWI449368B (en) * | 2010-12-20 | 2014-08-11 | Inventec Corp | Method for controlling multi-port network interface card |
US9305029B1 (en) | 2011-11-25 | 2016-04-05 | Sprint Communications Company L.P. | Inventory centric knowledge management |
CN102833591B (en) * | 2012-08-09 | 2015-08-12 | 中兴通讯股份有限公司 | The unbroken method of order program service and device in interactive Web TV system |
US9083550B2 (en) | 2012-10-29 | 2015-07-14 | Oracle International Corporation | Network virtualization over infiniband |
US20140173157A1 (en) * | 2012-12-14 | 2014-06-19 | Microsoft Corporation | Computing enclosure backplane with flexible network support |
US11425579B2 (en) * | 2013-07-09 | 2022-08-23 | Commscope Technologies Llc | Signal distribution interface |
US8976666B2 (en) * | 2013-07-25 | 2015-03-10 | Iboss, Inc. | Load balancing network adapter |
US9369375B2 (en) | 2013-12-10 | 2016-06-14 | Red Hat, Inc. | Link-layer level link aggregation autoconfiguration |
US9998359B2 (en) * | 2013-12-18 | 2018-06-12 | Mellanox Technologies, Ltd. | Simultaneous operation of remote management and link aggregation |
US10148746B2 (en) | 2014-01-28 | 2018-12-04 | Mellanox Technologies, Ltd. | Multi-host network interface controller with host management |
US10592223B2 (en) * | 2014-04-30 | 2020-03-17 | Micro Focus Llc | Using a single deployer agent to deploy a plurality of programs on a server |
EP3162000A4 (en) * | 2014-06-27 | 2017-07-19 | Telefonaktiebolaget LM Ericsson (publ) | Method for trx installation in bsc |
US10855551B2 (en) * | 2014-12-31 | 2020-12-01 | Dell Products L.P. | Multi-port selection and configuration |
US10402765B1 (en) | 2015-02-17 | 2019-09-03 | Sprint Communications Company L.P. | Analysis for network management using customer provided information |
US9729440B2 (en) | 2015-02-22 | 2017-08-08 | Mellanox Technologies, Ltd. | Differentiating among multiple management control instances using IP addresses |
US9985820B2 (en) | 2015-02-22 | 2018-05-29 | Mellanox Technologies, Ltd. | Differentiating among multiple management control instances using addresses |
US10581637B2 (en) * | 2016-03-01 | 2020-03-03 | Paypal, Inc. | Computational node adaptive correction system |
US10733135B2 (en) * | 2017-04-03 | 2020-08-04 | Futurewei Technologies, Inc. | Universal serial bus network switch |
US20190044809A1 (en) | 2017-08-30 | 2019-02-07 | Intel Corporation | Technologies for managing a flexible host interface of a network interface controller |
FR3072233B1 (en) | 2017-10-10 | 2020-11-27 | Bull Sas | PROCESS FOR GENERATING REQUESTS FOR THE SEGMENTATION OF THE SURVEILLANCE OF AN INTERCONNECTION NETWORK AND ASSOCIATED EQUIPMENT |
CN108023829B (en) * | 2017-11-14 | 2021-04-23 | 东软集团股份有限公司 | Message processing method and device, storage medium and electronic equipment |
US11121941B1 (en) | 2020-03-12 | 2021-09-14 | Cisco Technology, Inc. | Monitoring communications to identify performance degradation |
CN111404829B (en) * | 2020-04-17 | 2024-02-27 | 杭州迪普科技股份有限公司 | Port aggregation method, device, equipment and storage medium |
US11962518B2 (en) | 2020-06-02 | 2024-04-16 | VMware LLC | Hardware acceleration techniques using flow selection |
US12046578B2 (en) | 2020-06-26 | 2024-07-23 | Intel Corporation | Stacked die network interface controller circuitry |
US10997106B1 (en) | 2020-09-22 | 2021-05-04 | Pensando Sytems Inc. | Inter-smartNIC virtual-link for control and datapath connectivity |
US11736566B2 (en) | 2020-09-28 | 2023-08-22 | Vmware, Inc. | Using a NIC as a network accelerator to allow VM access to an external storage via a PF module, bus, and VF module |
US11606310B2 (en) | 2020-09-28 | 2023-03-14 | Vmware, Inc. | Flow processing offload using virtual port identifiers |
US12021759B2 (en) | 2020-09-28 | 2024-06-25 | VMware LLC | Packet processing with hardware offload units |
US11875172B2 (en) | 2020-09-28 | 2024-01-16 | VMware LLC | Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC |
US20220351326A1 (en) * | 2021-07-06 | 2022-11-03 | Intel Corporation | Direct memory writes by network interface of a graphics processing unit |
WO2023121720A1 (en) * | 2021-12-22 | 2023-06-29 | Vmware, Inc. | Teaming of smart nics |
US11995024B2 (en) | 2021-12-22 | 2024-05-28 | VMware LLC | State sharing between smart NICs |
US11863376B2 (en) | 2021-12-22 | 2024-01-02 | Vmware, Inc. | Smart NIC leader election |
US11928062B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Accelerating data message classification with smart NICs |
US11928367B2 (en) | 2022-06-21 | 2024-03-12 | VMware LLC | Logical memory addressing for network devices |
US11899594B2 (en) | 2022-06-21 | 2024-02-13 | VMware LLC | Maintenance of data message classification cache on smart NIC |
Citations (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4658396A (en) * | 1985-03-11 | 1987-04-14 | Barden Robert A | Redundancy arrangement for a local area network |
US4694487A (en) * | 1985-02-07 | 1987-09-15 | American Telephone And Telegraph Company, At&T Bell Laboratories | Controlling multi-fort hunt groups in a distributed control switching system |
US4847837A (en) * | 1986-11-07 | 1989-07-11 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Local area network with fault-checking, priorities and redundant backup |
US5179550A (en) * | 1991-03-07 | 1993-01-12 | Loral Aerospace Corp. | System and method for controlling a multi-point matrix switch |
US5239537A (en) * | 1990-10-17 | 1993-08-24 | Nec Corporation | Packet-switched network having alternate virtual paths |
US5289458A (en) * | 1992-03-30 | 1994-02-22 | Intel Corporation | Apparatus for accomplishing autoport selection |
US5329520A (en) * | 1992-07-17 | 1994-07-12 | Alcatel Network Systems, Inc. | High-speed facility protection in a digital telecommunications system |
US5335227A (en) * | 1990-12-20 | 1994-08-02 | International Business Machines Corporation | Serial network topology and recognfiguration generator |
US5361250A (en) * | 1993-01-28 | 1994-11-01 | Synoptics Communications, Inc. | Apparatus and method of token ring beacon station removal for a communication network |
US5390188A (en) * | 1993-08-02 | 1995-02-14 | Synoptics | Method and apparatus for measuring and monitoring the performance within a ring communication network |
US5410535A (en) * | 1992-07-02 | 1995-04-25 | Digital Equipment Corporation | Automatic selection of an interface for ethernet stations |
US5430726A (en) * | 1991-01-18 | 1995-07-04 | Moorwood; Charles A. | Repeater interface controller with a shared data bus |
US5448559A (en) * | 1993-05-07 | 1995-09-05 | Roke Manor Research Limited | ATM communication system with interrogation of output port servers for available handing capacity |
US5450403A (en) * | 1993-03-02 | 1995-09-12 | The Furukawa Electric Co., Ltd. | Method and apparatus for multiplex transmission |
US5459714A (en) * | 1993-02-22 | 1995-10-17 | Advanced Micro Devices, Inc. | Enhanced port activity monitor for an integrated multiport repeater |
US5479608A (en) * | 1992-07-17 | 1995-12-26 | Alcatel Network Systems, Inc. | Group facility protection in a digital telecommunications system |
US5490252A (en) * | 1992-09-30 | 1996-02-06 | Bay Networks Group, Inc. | System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing |
US5526492A (en) * | 1991-02-27 | 1996-06-11 | Kabushiki Kaisha Toshiba | System having arbitrary master computer for selecting server and switching server to another server when selected processor malfunctions based upon priority order in connection request |
US5586121A (en) * | 1995-04-21 | 1996-12-17 | Hybrid Networks, Inc. | Asymmetric hybrid access system and method |
US5596723A (en) * | 1994-06-23 | 1997-01-21 | Dell Usa, Lp | Method and apparatus for automatically detecting the available network services in a network system |
US5598536A (en) * | 1994-08-09 | 1997-01-28 | Shiva Corporation | Apparatus and method for providing remote users with the same unique IP address upon each network access |
US5603029A (en) * | 1995-06-07 | 1997-02-11 | International Business Machines Corporation | System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available |
US5606559A (en) * | 1995-08-11 | 1997-02-25 | International Business Machines Corporation | System and method for an efficient ATM adapter/device driver interface |
US5606664A (en) * | 1990-05-21 | 1997-02-25 | Bay Networks, Inc. | Apparatus and method for automatically determining the topology of a local area network |
US5646936A (en) * | 1995-06-22 | 1997-07-08 | Mci Corporation | Knowledge based path set up and spare capacity assignment for distributed network restoration |
US5666488A (en) * | 1994-11-22 | 1997-09-09 | Lucent Technologies Inc. | Port expansion network and method for lAN hubs |
US5708779A (en) * | 1994-07-29 | 1998-01-13 | International Business Machines Corporation | Multimedia system and method of controlling data transfer between a host system and a network adapter using a DMA engine |
US5710549A (en) * | 1994-09-30 | 1998-01-20 | Tandem Computers Incorporated | Routing arbitration for shared resources |
US5734811A (en) * | 1996-06-26 | 1998-03-31 | Mci Corporation | Segment substitution/swap for network restoration pre-plans |
US5742761A (en) * | 1991-03-29 | 1998-04-21 | International Business Machines Corporation | Apparatus for adapting message protocols for a switch network and a bus |
US5742587A (en) * | 1997-02-28 | 1998-04-21 | Lanart Corporation | Load balancing port switching hub |
US5754552A (en) * | 1995-07-12 | 1998-05-19 | Compaq Computer Corporation | Automatic communication protocol detection system and method for network systems |
US5764895A (en) * | 1995-01-11 | 1998-06-09 | Sony Corporation | Method and apparatus for directing data packets in a local area network device having a plurality of ports interconnected by a high-speed communication bus |
US5790554A (en) * | 1995-10-04 | 1998-08-04 | Bay Networks, Inc. | Method and apparatus for processing data packets in a network |
US5793746A (en) * | 1996-04-29 | 1998-08-11 | International Business Machines Corporation | Fault-tolerant multichannel multiplexer ring configuration |
US5822300A (en) * | 1996-04-02 | 1998-10-13 | Compaq Computer Corporation | Congestion management scheme |
US5828569A (en) * | 1995-01-23 | 1998-10-27 | Tandem Computers, Inc. | Method and apparatus for maintaining network connections across a voluntary process switchover |
US5828879A (en) * | 1994-12-22 | 1998-10-27 | Fore Systems, Inc. | Method and a scheduler for controlling when a server provides service to an entity |
US5838681A (en) * | 1996-01-24 | 1998-11-17 | Bonomi; Flavio | Dynamic allocation of port bandwidth in high speed packet-switched digital switching systems |
US5982744A (en) * | 1997-08-14 | 1999-11-09 | Alcatel Usa Sourcing, L.P. | High density unit shelf and method |
US6009077A (en) * | 1997-04-08 | 1999-12-28 | University Of Massachusetts | Flow admission control for a router |
US6047323A (en) * | 1995-10-19 | 2000-04-04 | Hewlett-Packard Company | Creation and migration of distributed streams in clusters of networked computers |
US6067619A (en) * | 1998-09-24 | 2000-05-23 | Hewlett-Packard Company | Apparatus and method for configuring a computer networking device |
US6163543A (en) * | 1997-07-30 | 2000-12-19 | Cisco Technology, Inc. | Port aggregation protocol |
US6381218B1 (en) * | 1998-09-11 | 2002-04-30 | Compaq Computer Corporation | Network controller system that uses directed heartbeat packets |
US6393483B1 (en) * | 1997-06-30 | 2002-05-21 | Adaptec, Inc. | Method and apparatus for network interface card load balancing and port aggregation |
US6535491B2 (en) * | 1997-12-24 | 2003-03-18 | Cisco Technology, Inc. | Method and apparatus for rapidly reconfiguring computer networks using a spanning tree algorithm |
US6628649B1 (en) * | 1999-10-29 | 2003-09-30 | Cisco Technology, Inc. | Apparatus and methods providing redundant routing in a switched network device |
US6665733B1 (en) * | 1996-12-30 | 2003-12-16 | Hewlett-Packard Development Company, L.P. | Network communication device including bonded ports for increased bandwidth |
US6681261B2 (en) * | 1991-08-13 | 2004-01-20 | Storage Technology Corporation | Programmable matrix switch |
US6711171B1 (en) * | 1995-11-15 | 2004-03-23 | Enterasys Networks, Inc. | Distributed connection-oriented services for switched communications networks |
US6757297B1 (en) * | 1999-01-05 | 2004-06-29 | Ciena Corporation | Method and apparatus for dynamic configuration and checking of network connections via out-of-band monitoring |
US6763438B2 (en) * | 2000-04-18 | 2004-07-13 | Hitachi, Ltd. | Load balancing storage system |
US6789118B1 (en) * | 1999-02-23 | 2004-09-07 | Alcatel | Multi-service network switch with policy based routing |
-
1997
- 1997-06-30 US US08/884,794 patent/US6393483B1/en not_active Ceased
-
2003
- 2003-10-22 US US10/704,464 patent/USRE41397E1/en not_active Expired - Lifetime
Patent Citations (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4694487A (en) * | 1985-02-07 | 1987-09-15 | American Telephone And Telegraph Company, At&T Bell Laboratories | Controlling multi-fort hunt groups in a distributed control switching system |
US4658396A (en) * | 1985-03-11 | 1987-04-14 | Barden Robert A | Redundancy arrangement for a local area network |
US4847837A (en) * | 1986-11-07 | 1989-07-11 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Local area network with fault-checking, priorities and redundant backup |
US5606664A (en) * | 1990-05-21 | 1997-02-25 | Bay Networks, Inc. | Apparatus and method for automatically determining the topology of a local area network |
US5239537A (en) * | 1990-10-17 | 1993-08-24 | Nec Corporation | Packet-switched network having alternate virtual paths |
US5335227A (en) * | 1990-12-20 | 1994-08-02 | International Business Machines Corporation | Serial network topology and recognfiguration generator |
US5430726A (en) * | 1991-01-18 | 1995-07-04 | Moorwood; Charles A. | Repeater interface controller with a shared data bus |
US5526492A (en) * | 1991-02-27 | 1996-06-11 | Kabushiki Kaisha Toshiba | System having arbitrary master computer for selecting server and switching server to another server when selected processor malfunctions based upon priority order in connection request |
US5179550A (en) * | 1991-03-07 | 1993-01-12 | Loral Aerospace Corp. | System and method for controlling a multi-point matrix switch |
US5742761A (en) * | 1991-03-29 | 1998-04-21 | International Business Machines Corporation | Apparatus for adapting message protocols for a switch network and a bus |
US6681261B2 (en) * | 1991-08-13 | 2004-01-20 | Storage Technology Corporation | Programmable matrix switch |
US5289458A (en) * | 1992-03-30 | 1994-02-22 | Intel Corporation | Apparatus for accomplishing autoport selection |
US5410535A (en) * | 1992-07-02 | 1995-04-25 | Digital Equipment Corporation | Automatic selection of an interface for ethernet stations |
US5329520A (en) * | 1992-07-17 | 1994-07-12 | Alcatel Network Systems, Inc. | High-speed facility protection in a digital telecommunications system |
US5479608A (en) * | 1992-07-17 | 1995-12-26 | Alcatel Network Systems, Inc. | Group facility protection in a digital telecommunications system |
US5490252A (en) * | 1992-09-30 | 1996-02-06 | Bay Networks Group, Inc. | System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing |
US5361250A (en) * | 1993-01-28 | 1994-11-01 | Synoptics Communications, Inc. | Apparatus and method of token ring beacon station removal for a communication network |
US5459714A (en) * | 1993-02-22 | 1995-10-17 | Advanced Micro Devices, Inc. | Enhanced port activity monitor for an integrated multiport repeater |
US5450403A (en) * | 1993-03-02 | 1995-09-12 | The Furukawa Electric Co., Ltd. | Method and apparatus for multiplex transmission |
US5448559A (en) * | 1993-05-07 | 1995-09-05 | Roke Manor Research Limited | ATM communication system with interrogation of output port servers for available handing capacity |
US5390188A (en) * | 1993-08-02 | 1995-02-14 | Synoptics | Method and apparatus for measuring and monitoring the performance within a ring communication network |
US5596723A (en) * | 1994-06-23 | 1997-01-21 | Dell Usa, Lp | Method and apparatus for automatically detecting the available network services in a network system |
US5708779A (en) * | 1994-07-29 | 1998-01-13 | International Business Machines Corporation | Multimedia system and method of controlling data transfer between a host system and a network adapter using a DMA engine |
US5598536A (en) * | 1994-08-09 | 1997-01-28 | Shiva Corporation | Apparatus and method for providing remote users with the same unique IP address upon each network access |
US5710549A (en) * | 1994-09-30 | 1998-01-20 | Tandem Computers Incorporated | Routing arbitration for shared resources |
US5666488A (en) * | 1994-11-22 | 1997-09-09 | Lucent Technologies Inc. | Port expansion network and method for lAN hubs |
US5828879A (en) * | 1994-12-22 | 1998-10-27 | Fore Systems, Inc. | Method and a scheduler for controlling when a server provides service to an entity |
US5764895A (en) * | 1995-01-11 | 1998-06-09 | Sony Corporation | Method and apparatus for directing data packets in a local area network device having a plurality of ports interconnected by a high-speed communication bus |
US5828569A (en) * | 1995-01-23 | 1998-10-27 | Tandem Computers, Inc. | Method and apparatus for maintaining network connections across a voluntary process switchover |
US5586121A (en) * | 1995-04-21 | 1996-12-17 | Hybrid Networks, Inc. | Asymmetric hybrid access system and method |
US5603029A (en) * | 1995-06-07 | 1997-02-11 | International Business Machines Corporation | System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available |
US5646936A (en) * | 1995-06-22 | 1997-07-08 | Mci Corporation | Knowledge based path set up and spare capacity assignment for distributed network restoration |
US5754552A (en) * | 1995-07-12 | 1998-05-19 | Compaq Computer Corporation | Automatic communication protocol detection system and method for network systems |
US5606559A (en) * | 1995-08-11 | 1997-02-25 | International Business Machines Corporation | System and method for an efficient ATM adapter/device driver interface |
US5790554A (en) * | 1995-10-04 | 1998-08-04 | Bay Networks, Inc. | Method and apparatus for processing data packets in a network |
US6047323A (en) * | 1995-10-19 | 2000-04-04 | Hewlett-Packard Company | Creation and migration of distributed streams in clusters of networked computers |
US6711171B1 (en) * | 1995-11-15 | 2004-03-23 | Enterasys Networks, Inc. | Distributed connection-oriented services for switched communications networks |
US5838681A (en) * | 1996-01-24 | 1998-11-17 | Bonomi; Flavio | Dynamic allocation of port bandwidth in high speed packet-switched digital switching systems |
US5822300A (en) * | 1996-04-02 | 1998-10-13 | Compaq Computer Corporation | Congestion management scheme |
US5793746A (en) * | 1996-04-29 | 1998-08-11 | International Business Machines Corporation | Fault-tolerant multichannel multiplexer ring configuration |
US5734811A (en) * | 1996-06-26 | 1998-03-31 | Mci Corporation | Segment substitution/swap for network restoration pre-plans |
US6665733B1 (en) * | 1996-12-30 | 2003-12-16 | Hewlett-Packard Development Company, L.P. | Network communication device including bonded ports for increased bandwidth |
US5742587A (en) * | 1997-02-28 | 1998-04-21 | Lanart Corporation | Load balancing port switching hub |
US6009077A (en) * | 1997-04-08 | 1999-12-28 | University Of Massachusetts | Flow admission control for a router |
US6393483B1 (en) * | 1997-06-30 | 2002-05-21 | Adaptec, Inc. | Method and apparatus for network interface card load balancing and port aggregation |
US6163543A (en) * | 1997-07-30 | 2000-12-19 | Cisco Technology, Inc. | Port aggregation protocol |
US5982744A (en) * | 1997-08-14 | 1999-11-09 | Alcatel Usa Sourcing, L.P. | High density unit shelf and method |
US6535491B2 (en) * | 1997-12-24 | 2003-03-18 | Cisco Technology, Inc. | Method and apparatus for rapidly reconfiguring computer networks using a spanning tree algorithm |
US6381218B1 (en) * | 1998-09-11 | 2002-04-30 | Compaq Computer Corporation | Network controller system that uses directed heartbeat packets |
US6067619A (en) * | 1998-09-24 | 2000-05-23 | Hewlett-Packard Company | Apparatus and method for configuring a computer networking device |
US6757297B1 (en) * | 1999-01-05 | 2004-06-29 | Ciena Corporation | Method and apparatus for dynamic configuration and checking of network connections via out-of-band monitoring |
US6789118B1 (en) * | 1999-02-23 | 2004-09-07 | Alcatel | Multi-service network switch with policy based routing |
US6628649B1 (en) * | 1999-10-29 | 2003-09-30 | Cisco Technology, Inc. | Apparatus and methods providing redundant routing in a switched network device |
US6763438B2 (en) * | 2000-04-18 | 2004-07-13 | Hitachi, Ltd. | Load balancing storage system |
Non-Patent Citations (4)
Title |
---|
3COM Core Builder 5000 Distributed Management Module Commands Guide, May 1997. * |
3COM CoreBuilder 5000 Etherflex Module User Guide, May 1997. * |
3COM, Core Builder 5000 Distributed Management Module User Guide, May 1997. * |
Matrox, Matrox 100 Multiport NIC, pp. 1-3, 1998. * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050281191A1 (en) * | 2004-06-17 | 2005-12-22 | Mcgee Michael S | Monitoring path connectivity between teamed network resources of a computer system and a core network |
US9491084B2 (en) * | 2004-06-17 | 2016-11-08 | Hewlett Packard Enterprise Development Lp | Monitoring path connectivity between teamed network resources of a computer system and a core network |
US20120117366A1 (en) * | 2010-11-10 | 2012-05-10 | Inventec Corporation | Method for controlling multi-port network interface card |
US8412919B2 (en) * | 2010-11-10 | 2013-04-02 | Inventec Corporation | Method for controlling multi-port network interface card |
US20140016470A1 (en) * | 2011-04-06 | 2014-01-16 | Hangzhou H3C Technologies Co., Ltd. | Method for traffic load balancing |
US9614768B2 (en) * | 2011-04-06 | 2017-04-04 | Hewlett Packard Enterprise Development Lp | Method for traffic load balancing |
US10156991B2 (en) | 2015-10-19 | 2018-12-18 | International Business Machines Corporation | User interface for host port assignment |
US10809917B2 (en) | 2015-10-19 | 2020-10-20 | International Business Machines Corporation | User interface for host port assignment |
Also Published As
Publication number | Publication date |
---|---|
US6393483B1 (en) | 2002-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE41397E1 (en) | Method and apparatus for network interface card load balancing and port aggregation | |
US7996583B2 (en) | Multiple context single logic virtual host channel adapter supporting multiple transport protocols | |
US7783788B1 (en) | Virtual input/output server | |
US6272113B1 (en) | Network controller system that uses multicast heartbeat packets | |
EP1399829B1 (en) | End node partitioning using local identifiers | |
US6253334B1 (en) | Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses | |
US8291148B1 (en) | Resource virtualization switch | |
US6381218B1 (en) | Network controller system that uses directed heartbeat packets | |
US8489778B2 (en) | Method and apparatus for using a single multi-function adapter with different operating systems | |
US7460470B2 (en) | Systems and methods of priority failover determination | |
US8560631B2 (en) | Storage system | |
US6229538B1 (en) | Port-centric graphic representations of network controllers | |
US5918021A (en) | System and method for dynamic distribution of data packets through multiple channels | |
JP4343760B2 (en) | Network protocol processor | |
US7275175B2 (en) | Method and apparatus for high-speed network adapter failover | |
US6747984B1 (en) | Method and apparatus for transmitting Data | |
US5710908A (en) | Adaptive network protocol independent interface | |
US7865633B2 (en) | Multiple context single logic virtual host channel adapter | |
US7133929B1 (en) | System and method for providing detailed path information to clients | |
US20080059686A1 (en) | Multiple context single logic virtual host channel adapter supporting multiple transport protocols | |
US20090147677A1 (en) | System, method, and apparatus for load-balancing to a plurality of ports | |
US8650323B2 (en) | Managing multi-step retry reinitialization protocol flows | |
US7649892B2 (en) | Method and system of network communication receive load balancing | |
JPH11275125A (en) | Lan management system for power system supervisory and control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CC | Certificate of correction | ||
AS | Assignment |
Owner name: EMULEX DESIGN & MANUFACTURING CORPORATION, CALIFOR Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ADPT CORPORATION;REEL/FRAME:025137/0525 Effective date: 20100707 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: EMULEX CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EMULEX DESIGN AND MANUFACTURING CORPORATION;REEL/FRAME:032087/0842 Effective date: 20131205 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EMULEX CORPORATION;REEL/FRAME:036942/0213 Effective date: 20150831 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001 Effective date: 20160201 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001 Effective date: 20170119 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001 Effective date: 20170119 |