Patent ID: 7515612
Filing Date: 2009-04-07
Classification: H04L

Abstract:
1. A method for transmitting Internet Protocol (IP) datagrams from a host system via a hardware offload engine that is used for completely offloading transmission control protocol (TCP)/IP protocol stack processing from the host system, comprising: (a)creating an input/output control block (“IOCB”) with a plurality of host memory addresses for a memory location within a host memory storing host data for transmission and a host memory address of a network control block (“NCB”), the NCB being used for building network protocol headers, (b) sending the IOCB to the hardware offload engine; wherein the host sends the IOCB to an outbound processor of the hardware offload engine; (c) accessing the NCB stored at the host memory; wherein the outbound processor of the hardware offload engine reads the NCB from host memory using the IOCB; (d) creating an IP header and media access control (MAC) level protocol header for a single IP packet, if a datagram can fit into the single IP packet; wherein the outbound processor, and not the host system, builds the IP and MAC header based on NCB fields; (e) transmitting the datagram from step (d); wherein the hardware offload engine transmits the datagram as a single IP packet; (f) if a datagram size is greater than a certain size, then generating a plurality of IP packets for transmitting the datagram, where each IP packet is a fragmented IP datagram; wherein the outbound processor of the hardware offload engine generates the plurality of IP packets, sets an IP packet length field in a last of the plurality of IP packets, such that the IP packet length field in the last IP packet is different from a IP packet length field value in the other plurality of IP packets; and (g) setting a flag in each fragmented IP datagram for indicating which fragmented IP datagram is transmitted by the hardware offload engine.