Method and system for processing network data packets
First Claim
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.
7 Assignments
0 Petitions
Accused Products
Abstract
A method for processing IP datagrams using an outbound processing state machine in an outbound processor, wherein the IP datagrams are generated by a host system is provided. The method includes, creating an IOCB with plural host memory addresses that define host data to be sent and a host memory address of a network control block (“NCB”) used to build network protocol headers, wherein the host sends the IOCB to the outbound processor. The outbound processor reads the NCB from host memory and creates an IP and MAC level protocol header(s) for a data packet(s) used to send the IP data. If a datagram fits into an IP packet, the outbound processor builds headers to send the datagram and then uses the plural host memory addresses defining the host data to read the data from the host, places the data into the packet and sends the packet.
-
Citations
6 Claims
-
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. - View Dependent Claims (2)
-
-
3. A method for transmitting transmission control protocol (TCP) packets from a host system via a hardware offload engine that is used for 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 outbound TCP 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 the host memory to a local memory for the hardware offload engine;(d) verifying if a TCP window is open;
wherein the outbound processor verifies if the TCP window is open;(e) building a TCP header from the NCB stored at the local memory;
wherein the outbound processor builds the TCP header which includes setting a source port number, a destination port number, a TCP sequence number, a flag to indicate a type of packet, a field whose value shows a TCP header length, and a field whose value indicates a TCP window size;(f) sending the outbound TCP data to an outbound Internet Protocol processor (OIP) of the hardware offload engine for processing;
where while the outbound TCP data is being sent, the outbound processor determines a TCP checksum for the outbound TCP data; and(g) sending the outbound TCP data. - View Dependent Claims (4)
-
-
5. A method for processing a TCP data transmit request after a closed TCP window is reopened based on receiving an acknowledgement (ACK) packet, comprising:
-
reading a network control block (NCB) into a local memory;
wherein a host system creates the NCB at a host system memory after a TCP connection is established, and the NCB is copied to a local memory at a hardware offload engine that is used for completely offloading TCP/Internet Protocol (IP) protocol stack execution from the host system; and
wherein an outbound processor in the hardware offload engine copies the NCB from the host system memory to the local memory;reading a delayed request input/output control block (IOCB) linked to the NCB;
wherein the delayed request occurs after the TCP connection with the closed TCP window receives an ACK packet;verifying if the closed TCP window is open; building headers for transmitting TCP packets;
wherein the outbound processor for the hardware offload engine builds the headers using information from the NCB; and
sending data using the outbound processor built headers. - View Dependent Claims (6)
-
Specification