IP Library Granted Patent US 7,830,919
Granted Patent B1
US 7,830,919 · App. 12/389,308 · Granted Nov 9, 2010

Method and system for processing network data packets

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,830,919
App. No.
12/389,308
Granted
Nov 9, 2010
Kind
B1
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.

Claims (8)

1. A hardware engine for offloading transmission control protocol (TCP)/Internet Protocol (IP) processing from a software stack at a host system, comprising:

a TCP Table manager that interfaces with (a) an outbound TCP processor for processing TCP packets sent by the host system, (b) an inbound TCP processor for processing TCP packets received from a network device, (c) an inbound processor for processing non-TCP network packets received from a network device, and (d) an outbound processor for processing non-TCP packets sent by the host system, where the TCP Table Manager maintains timer functions for all TCP connections at any given time in the hardware engine and maintains a linked list of network control blocks for processing network data sent by the hardware engine and received by the hardware engine, wherein the hardware engine completely offloads execution of a TCP/IP protocol stack in hardware from a host system that executes the TCP/IP protocol stack in software, wherein the TCP Table Manager includes a command processor that arbitrates between a plurality of command sources and translates a received command to an output action(s) to other TCP Table Manager components.

2. A hardware engine for offloading transmission control protocol (TCP)/Internet Protocol (IP) processing from a software stack at a host system, comprising:

a TCP Table manager that interfaces with (a) an outbound TCP processor for processing TCP packets sent by the host system, (b) an inbound TCP processor for processing TCP packets received from a network device, (c) an inbound processor for processing non-TCP network packets received from a network device, and (d) an outbound processor for processing non-TCP packets sent by the host system, where the TCP Table Manager maintains timer functions for all TCP connections at any given time in the hardware engine and maintains a linked list of network control blocks for processing network data sent by the hardware engine and received by the hardware engine, wherein the hardware engine completely offloads execution of a TCP/IP protocol stack in hardware from a host system that executes the TCP/IP protocol stack in software, wherein the TCP Table Manager includes a command processor that arbitrates between a plurality of command sources and translates a received command to an output action(s) to other TCP Table Manager components, wherein the TCP table manager's command processor co-ordinates inbound and outbound channel access to network control blocks.

3. A hardware engine for offloading transmission control protocol (TCP)/Internet Protocol (IP) processing from a software stack at a host system, comprising:

a TCP Table manager that interfaces with (a) an outbound TCP processor for processing TCP packets sent by the host system, (b) an inbound TCP processor for processing TCP packets received from a network device, (c) an inbound processor for processing non-TCP network packets received from a network device, and (d) an outbound processor for processing non-TCP packets sent by the host system, where the TCP Table Manager maintains timer functions for all TCP connections at any given time in the hardware engine and maintains a linked list of network control blocks for processing network data sent by the hardware engine and received by the hardware engine, wherein the hardware engine completely offloads execution of a TCP/IP protocol stack in hardware from a host system that executes the TCP/IP protocol stack in software, wherein the TCP table manager includes a timer list manager that maintains timer functions for all TCP connections that are handled by the hardware engine, and wherein the timer list manager maintains a persist timer, an idle timer, a delayed acknowledgement (ACK) timer and a retransmit timer for each TCP connection.

4. A hardware engine for offloading transmission control protocol (TCP)/Internet Protocol (IP) processing from a software stack at a host system, comprising:

a TCP Table manager that interfaces with (a) an outbound TCP processor for processing TCP packets sent by the host system, (b) an inbound TCP processor for processing TCP packets received from a network device, (c) an inbound processor for processing non-TCP network packets received from a network device, and (d) an outbound processor for processing non-TCP packets sent by the host system, where the TCP Table Manager maintains timer functions for all TCP connections at any given time in the hardware engine and maintains a linked list of network control blocks for processing network data sent by the hardware engine and received by the hardware engine, wherein the hardware engine completely offloads execution of a TCP/IP protocol stack in hardware from a host system that executes the TCP/IP protocol stack in software, wherein the TCP table manager maintains an outbound request list to signal if a network control block is ready for transmit processing by the outbound TCP processor due to a timer event.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2010
From: THOMPSON, MICHAEL I.
To: QLOGIC CORPORATION
Reel/Frame 024880/0965 →