Means for allowing two or more network interface controller cards to appear as one card to an operating system
First Claim
1. An apparatus for transferring data between at least one transport protocol stack and a plurality of network adaptors coupled to a computer network that supports recovery from network adapter and connection failure, comprising:
- a first interface bound to the at least one transport protocol stack;
a second interface bound to the plurality of network adapters; and
a mechanism coupled to the first interface and the second interface that receives a first MAC-level packet from a transport protocol stack through the first interface, and forwards the first packet through the second interface to a network adapter in the plurality of network adapters; and
a mechanism coupled to the first interface and the second interface that receives a second packet from a network adapter in the plurality of network adapters through the second interface and forwards the second packet through the first interface to a transport protocol stack.
7 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a method and an apparatus for allowing a plurality of network interface controllers (NICs) to appear as a single NIC to an operating system. This method and apparatus is realized externally to the NIC driver software, and thus does not require NIC drivers to be modified. The present invention also operates independently of operating system, NIC driver software, NIC drivers and NIC hardware. Consequently, the present invention is compatible with a wide range of operating systems and NICs. One embodiment of the present invention operates at the MAC level and lower, thus avoiding the complexity of providing software support for higher layer protocols. However, providing support at the MAC level and lower makes it difficult to perform inbound load sharing. This is because protocols such as IPX use addresses and packet headers to direct reply packets. Hence, return traffic is directed back to the originating NIC regardless of whether the originating NIC is heavy loaded or not. However, 60% to 80% of all traffic on a server is outbound because workstations typically read files from a server in a direction that is outbound from the server. Hence, load sharing for outbound traffic will significantly improve overall system performance even if it is not possible for inbound traffic.
-
Citations
24 Claims
-
1. An apparatus for transferring data between at least one transport protocol stack and a plurality of network adaptors coupled to a computer network that supports recovery from network adapter and connection failure, comprising:
-
a first interface bound to the at least one transport protocol stack;
a second interface bound to the plurality of network adapters; and
a mechanism coupled to the first interface and the second interface that receives a first MAC-level packet from a transport protocol stack through the first interface, and forwards the first packet through the second interface to a network adapter in the plurality of network adapters; and
a mechanism coupled to the first interface and the second interface that receives a second packet from a network adapter in the plurality of network adapters through the second interface and forwards the second packet through the first interface to a transport protocol stack. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
the first interface presents a virtual adapter for binding to at least one protocol stack; and
the second interface presents a virtual transport protocol stack for binding to a network adapter in the plurality of network adapters.
-
-
6. The apparatus of claim 1, wherein all adapters in the plurality of adapters bound to the second interface are configured to the same physical address.
-
7. The apparatus of claim 1, wherein the apparatus is implemented at the MAC layer and below.
-
8. The apparatus of claim 1, wherein the apparatus can function as a prescan protocol stack for examining packets flowing between protocol stacks and drivers.
-
9. The apparatus of claim 1, including a mechanism that detects a failed network adapter in the plurality of network adapters in an operating system-independent manner.
-
10. The apparatus of claim 1, including a mechanism that detects a failed network adapter in the plurality of network adapters in a manner that is independent of network adapter hardware.
-
11. A method for supporting recovery from network adapter and connection failure, the method operating in a system including at least one transport protocol stack, and a plurality of network adapters coupled to a network, the method comprising:
-
receiving a first MAC-level packet from a transport protocol stack in the at least one transport protocol stack;
forwarding the first MAC-level packet to a network adapter in the plurality of network adapters;
receiving a second packet from a network adapter in the plurality of network adapters; and
forwarding the packet to a transport protocol stack. - View Dependent Claims (12, 13, 14, 15, 16)
attempting to detect a failed primary network adapter in the plurality of network adapters; and
if a failed primary network adapter is detected, rerouting packets to a secondary network adapter in the plurality of network adapters.
-
-
13. The method of claim 11, including:
-
attempting to detect a failed network adapter in the plurality of network adapters; and
if a failed primary network adapter is detected, rerouting packets to another network adapter in the plurality of network adapters.
-
-
14. The method of claim 11, wherein the forwarding of the first MAC-level packet to a network adapter in the plurality of network adapters, includes:
performing load sharing by selectively routing packets to network adapters in the plurality of network adapters.
-
15. The method of claim 11, including:
detecting a failed network adapter in the plurality of network adapters in an operating system-independent manner.
-
16. The method of claim 11, including:
detecting a failed network adapter in the plurality of network adapters in a manner that is independent of network adapter hardware.
-
17. A method for detecting failure of network adapters in a plurality of network adapters, the plurality of network adapters coupled to a server and including a primary adapter coupled to a plurality of secondary adapters, the primary and secondary adapters being coupled to a network, the method comprising:
-
sending a packet from the server through the primary adapter across the network to a secondary adapter in the plurality of secondary adapters;
attempting to receive the packet at the server from the secondary adapter; and
if the packet is received by the secondary adapter, determining that the secondary adapter is receiving packets properly. - View Dependent Claims (18, 19, 20, 21, 22)
sending a packet from the server through a secondary adapter in the plurality of secondary adapters to the primary adapter;
attempting to receive the packet at the server from the primary adapter; and
if the packet is received by the server from the primary adapter, determining that the primary adapter is receiving packets properly.
-
-
19. The method of claim 17, including:
-
if packets sent by the primary adapter are not received by the at least one secondary adapter, and if packets sent by the secondary adapter are not received by the primary adapter, concluding that the primary adapter has failed; and
converting a secondary adapter in the plurality of secondary adapters into a replacement primary adapter.
-
-
20. The method of claim 17, including:
-
receiving a packet from an adapter in the plurality of adapters from a remote host coupled to the network; and
determining on the basis of the received packet that the adapter is receiving packets properly.
-
-
21. The method of claim 17, including the step of swapping a failed adapter with a replacement adapter.
-
22. The method of claim 17, including the step of hot-swapping a failed adapter with a replacement adapter.
-
23. A method for detecting failure of network adapters in a plurality of network adapters, the plurality of network adapters being coupled to a server and including a primary adapter and a plurality of secondary adapters, the primary and plurality of secondary adapters being coupled to a network, the method comprising:
-
sending a packet from the server through the primary adapter across the network to at least one secondary adapter in the plurality of secondary adapters;
attempting to receive the packet from the at least one secondary adapter;
sending a packet from the server through a secondary adapter in the plurality of secondary adapters to the primary adapter;
attempting to receive the packet from the primary adapter;
if packets sent by the primary adapter are not received by the at least one secondary adapter, and if packets sent by the secondary adapter are not received by the primary adapter, concluding that the primary adapter has failed; and
converting a secondary adapter in the plurality of secondary adapters into a replacement primary adapter.
-
-
24. A method for load sharing traffic across a plurality of network interface controllers, comprising:
-
receiving a MAC-level packet;
selecting a network interface controller in the plurality of network interface controllers that is less loaded than other network interface controllers in the plurality of network interface controllers; and
sending the MAC-level packet to the network interface controller.
-
Specification