Patent ID: 7451197
Filing Date: 2008-11-11
Classification: H04L

Abstract:
1. A method, comprising: receiving a network communication request at an offload application, wherein the offload application interfaces with a first network stack implemented in an operating system and a second network stack implemented in a hardware device; determining if the network communication request can be processed by the second network stack; and if the network communication request can be processed by the second network stack, then offloading the network communication request for processing to the hardware device, wherein the first and second network stacks comprise an Internet address family and the TCP protocol implemented over an IP network layer, wherein the offload application offloads the network communication request to the second network stack in at least one protocol that is unsupported by the first network stack, and wherein a single stack behavior is maintained by the first and second network stacks to applications and network management utilities, wherein the offload application includes a plurality of offload protocol drivers, wherein a first protocol driver of the plurality of offload protocol drivers is a TCP/IP offload protocol driver, and a second protocol driver of the plurality of offload protocol drivers is a socket direct offload protocol driver, wherein the socket direct offload protocol driver allows for remote direct memory access (RDMA) that is not supported by the first network stack, wherein the network communication request is processed faster in the second network stack when compared to the first network stack, and wherein the network communication request is for session setup and connection control, wherein the first network stack in an operating system network stack, wherein the hardware device is a network interface card, the method further comprising: (i) configuring a host with a list of those offload protocol drivers that need to be loaded on startup, and loading an offload protocol switch, an offload device manager, and the offload protocol drivers along with the operating system network stack at system startup; (ii) registering the offload protocol switch with a socket driver as handling the Internet address family, wherein any socket based requests for the Internet address family are forwarded to the offload protocol switch by the socket driver, and registering the offload device manager with the operating system network stack for all network events, wherein the offload protocol drivers are registered with the offload protocol switch; (iii) discovering, by the operating system, the network interface card and loading an appropriate hardware driver configured for the network interface card, and configuring the network interface card to function with no protocol offloading enabled; (iv) registering the hardware driver with the offload device manager providing hardware dispatch table information, and loading transport offload drivers for the network interface card; and (v) registering the transport offload drivers with the offload device manager specifying the hardware adapter type supported, wherein the hardware driver dispatch table information is obtained from the offload device manager, wherein the transport offload drivers register each supported IP interfaces with the offload protocol driver, and registering by the offload protocol drivers the supported IP interfaces with the offload protocol switch.