IP Library Granted Patent US 7,535,907
Granted Patent B2
US 7,535,907 · App. 11/218,727 · Granted May 19, 2009

TCP engine

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,535,907
App. No.
11/218,727
Granted
May 19, 2009
Kind
B2
Abstract

A network transport layer accelerator accelerates processing of packets so that packets can be forwarded at wire-speed. To accelerate processing of packets, the accelerator performs pre-processing on a network transport layer header encapsulated in a packet for a connection and performs in-line network transport layer checksum insertion prior to transmitting a packet. A timer unit in the accelerator schedules processing of the received packets. The accelerator also includes a free pool allocator which manages buffers for storing the received packets and a packet order unit which synchronizes processing of received packets for a same connection.

Claims (31)

1. An accelerator for accelerating packet processing for packets transferred over a network using a connection oriented protocol comprising:

a packet processing unit configured to perform pre-processing on a transport layer network protocol header encapsulated in a received packet for a connection, allocate a work queue entry for the received packet, and store data extracted from the transport layer network protocol header in the work queue entry and tag information defining how the work queue entry is synchronized and ordered;

a packet order unit configured to synchronize and order processing of the work queue entry based on the associated tag information; and

a timer unit configured to schedule processing of the work queue entries by at least one processor.

2. The accelerator of claim 1 , wherein the transport layer network protocol is Transmission Control Protocol.

3. The accelerator of claim 2 , further comprising a fetch and add unit for maintaining statistical information of the Transmission Control Protocol.

4. The accelerator of claim 1 , wherein the transport layer network protocol is User Datagram Protocol.

5. The accelerator of claim 1 , wherein the packet processing unit performs inline network transport layer checksum insertion for the processed packet prior to transmitting the processed packet over the network.

6. The accelerator of claim 1 further including a free pool allocator configured to manage a pool of free buffers for storing the received packets, each pool of free buffers having an assigned priority and a programmable number of buffers available in the free pool allocator.

7. The accelerator of claim 6 , wherein each pool of free buffers is expandable through the use of buffers in a memory accessible by the free pool allocator.

8. The accelerator of claim 1 , wherein the timer unit includes a plurality of queues, each queue assigned for scheduling received packets to be processed by one of a plurality of processors.

9. A method for accelerating processing of packets transferred over a network using a connection oriented network protocol, comprising:

performing pre-processing on a transport layer network protocol header encapsulated in a received packet for a connection;

allocating a work queue entry for the received packet;

storing data extracted from the transport layer network protocol header in the work queue entry for processing the received packet and tag information for defining how the work queue entry is synchronized and ordered;

synchronizing and ordering processing of the work queue entry based on the associated tag information; and

scheduling processing of the work queue entries by at least one processor.

10. The method of claim 9 , wherein the transport layer network protocol is the Transmission Control Protocol.

11. The method of claim 9 , wherein the transport layer network protocol is the User Datagram Protocol.

12. The method of claim 9 further comprising:

performing inline network transport layer checksum insertion for the processed packet prior to transmitting the processed packet over the network.

13. The method of claim 9 further including managing a pool of free buffers for storing the received packets, the pool of free buffers has an assigned priority and a programmable number of buffers in a free pool allocator.

14. The method of claim 13 , wherein the pool of free buffers is expandable through the use of buffers accessible by the free pool allocator.

15. The method of claim 9 , wherein scheduling comprises:

assigning one of a plurality of queues for scheduling received packets to be processed by one of a plurality of processors.

16. An accelerator for accelerating packet processing for packets transferred over a network using a connection oriented protocol, comprising:

means for performing pre-processing on a transport layer network protocol header encapsulated in a received packet for a connection;

means for allocating a work queue entry for the received packet;

mean for storing data extracted from the transport layer network protocol header in the work queue entry for use by the processor for processing the received packet and tag information for defining how the work queue entry is synchronized and ordered;

means for synchronizing and ordering processing of the work queue entry based on the associated tag information; and

means for scheduling processing of the work queue entries by at least one processor.

Assignments (8)
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 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
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 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
MERGER Recorded Jul 21, 2011
From: CAVIUM NETWORKS, INC.
To: CAVIUM, INC.
Reel/Frame 026632/0672 →
MERGER Recorded Mar 14, 2007
From: CAVIUM NETWORKS, A CALIFORNIA CORPORATION
To: CAVIUM NETWORKS, INC., A DELAWARE CORPORATION
Reel/Frame 019014/0174 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2005
From: HUSSAIN, MUHAMMAD R.; BADR, IMRAN; MASOOD, FAISAL; DICKINSON, PHILIP H.; KESSLER, RICHARD E.; KATZ, DANIEL A.; BERTONE, MICHAEL S.; SANZONE, ROBERT A.; HUMMEL, THOMAS F.; BOUCHARD, GREGG A.
To: CAVIUM NETWORKS
Reel/Frame 016997/0231 →