IP Library Granted Patent US 8,793,399
Granted Patent B1
US 8,793,399 · App. 12/536,336 · Granted Jul 29, 2014

Method and system for accelerating network packet processing

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 8,793,399
App. No.
12/536,336
Granted
Jul 29, 2014
Kind
B1
Abstract

Method and System for processing network information is provided. The system includes a computing system having a processor for executing instructions for an application module that generates an input/output (“I/O”) request for transmitting and receiving network information to and from the network device; a storage driver for receiving the I/O request from the application module; a network protocol stack for executing a network protocol layer for processing network related information; and an accelerator module that interfaces with the storage driver and the network protocol stack for accelerating processing of Internet Small Computer System Interface (iSCSI) protocol data units (PDUs).

Claims (42)

1. A system for processing network information, comprising:

a computing system operationally coupled to a network device for transmitting and receiving network information, the computing system having a memory and a processor for executing instructions for:

an application module executed out of the memory that generates an input/output (“I/O”) request for transmitting and receiving network information to and from the network device;

a storage driver executed out of the memory for receiving the I/O request from the application module;

a network protocol stack executed out of the memory for executing a network protocol layer for processing network related information; and

an accelerator module executed out of the memory that interfaces with the storage driver and the network protocol stack for accelerating processing of Internet Small Computer System Interface (iSCSI) protocol data units (PDUs); and

an adapter without a TCP/IP offload engine operationally coupled to the computing system and configured to assist the accelerator module for performing certain functions for processing the iSCSI PDUs that are received and transmitted by the adapter;

wherein when an iSCSI PDU is received by the adapter, then the adapter forwards the iSCSI PDU to an adapter driver that is executed by the processor and strips network headers from the received iSCSI PDU, the network protocol stack executed by the processor performs network protocol processing, and simultaneously the adapter determines cyclic redundancy code (CRC) for a header of the iSCSI PDU, uses the determined CRC to verify if CRC associated with the header of the received iSCSI PDU is valid, determines a CRC for a payload of the received iSCSI PDU and notifies the accelerator module when the CRC associated with the header of the received PDU is valid or invalid for further processing the received iSCSI PDU; and

wherein when an iSCSI PDU is transmitted by the adapter, then the accelerator module: builds an iSCSI header, computes CRC for the header, attaches the computed CRC to the iSCSI header and sends the iSCSI PDU to the adapter that only computes CRC for a payload of the iSCSI PDU, before transmitting the iSCSI PDU.

2. The system of claim 1 , wherein the accelerator module performs direct data placement (DDP) related processing for placing the received iSCSI PDU to an assigned location in a computing system memory.

3. The system of claim 1 , wherein the processor also executes instructions for an iSCSI application that interfaces with the accelerator module and the network protocol stack for processing the iSCSI PDUs.

4. The system of claim 1 , wherein the network protocol stack is a transmission control protocol/Internet Protocol (TCP/IP) stack.

5. The system of claim 1 , wherein the adapter notifies the accelerator module after verifying if the CRC associated with the header of the received iSCSI PDU is valid.

6. The system of claim 1 , wherein the adapter notifies the accelerator module if the CRC for the payload of the received iSCSI PDU is valid.

7. The system of claim 1 , wherein the adapter is operationally coupled to the computing system via a PCI-Express connection.

8. The system of claim 1 , wherein adapter processor executing firmware code interfaces with the accelerator module.

9. A system for processing network information, comprising:

a computing system operationally coupled to a network device, the computing system having a memory and a processor for executing instructions for:

an application module executed out of the memory that generates an input/output (“I/O”) request for receiving network information from a network device;

a storage driver executed out of the memory for receiving the I/O request from the application module;

a network protocol stack executed out of the memory for executing a network protocol layer for processing network related information; and

an accelerator module executed out of the memory that interfaces with the storage driver and the network protocol stack for accelerating processing of a received Internet Small Computer System Interface (iSCSI) protocol data unit (PDU); and

an adapter without a TCP/IP offload engine operationally coupled to the computing system and configured to assist the accelerator module for performing certain functions for processing the iSCSI PDU received by the adapter;

wherein the adapter forwards the iSCSI PDU to an adapter driver executed by the processor, which strips network headers from the received iSCSI PDU, the network protocol stack executed by the processor performs network protocol processing and simultaneously the adapter determines cyclic redundancy code (CRC) for a header of the iSCSI PDU, uses the determined CRC to verify if CRC associated with the iSCSI PDU is valid, notifies the accelerator module after verifying if the CRC associated with the header of the received iSCSI PDU is valid and determines a CRC for a payload of the iSCSI PDU and then notifies the accelerator module if the CRC for the payload of the received iSCSI PDU is valid or invalid for further processing the received iSCSI PDU.

10. The system of claim 9 , wherein the accelerator module performs direct data placement (DDP) related processing for placing the received iSCSI PDU to an assigned location in a computing system memory.

11. The system of claim 9 , wherein the processor executes instructions for an iSCSI application that interfaces with the accelerator module and the network protocol stack for processing the iSCSI PDUs.

12. The system of claim 9 , wherein the network protocol stack is a transmission control protocol/Internet Protocol (TCP/IP) stack.

13. The system of claim 9 , wherein the adapter is operationally coupled to the computing system via a PCI-Express connection.

14. The system of claim 9 , wherein adapter processor executing firmware code interfaces with the accelerator module.

15. A system for processing network information, comprising:

a computing system operationally coupled to a network device, the computing system having a memory and a processor for executing instructions for:

an application module executed out of the memory that generates an input/output (“I/O”) request for transmitting network information to a network device;

a storage driver executed out of the memory for receiving the I/O request from the application module;

a network protocol stack executed out of the memory for executing a network protocol layer for processing network related information; and

an accelerator module executed out of the memory that interfaces with the storage driver and the network protocol stack for accelerating processing of an Internet Small Computer System Interface (iSCSI) protocol data unit (PDU); and

an adapter without a TCP/IP offload engine operationally coupled to the computing system and configured to assist the accelerator module for performing certain functions for processing the iSCSI PDU that transmitted by the adapter;

wherein when the iSCSI PDU is received by the adapter, then the adapter forwards the iSCSI PDU to an adapter driver that is executed by the processor and strips network headers from the received iSCSI PDU, the network protocol stack executed by the processor performs network protocol processing, and simultaneously the adapter determines cyclic redundancy code (CRC) for a header of the iSCSI PDU, uses the determined CRC to verify if CRC associated with the header of the received iSCSI PDU is valid, determines a CRC for a payload of the received iSCSI PDU and notifies the accelerator module when the CRC associated with the header of the received PDU is valid or invalid for further processing the received iSCSI PDU; and

wherein the accelerator module: builds an iSCSI header for the iSCSI PDU, computes CRC for the iSCSI header, attaches the computed CRC to the iSCSI header and sends the iSCSI PDU to the adapter before transmitting the iSCSI PDU.

16. The system of claim 15 , wherein the processor executes instructions for an iSCSI application that interfaces with the accelerator module and the network protocol stack for processing the iSCSI PDU.

17. The system of claim 15 , wherein the network protocol stack is a transmission control protocol/Internet Protocol (TCP/IP) stack.

18. The system of claim 15 , wherein the adapter is operationally coupled to the computing system via a PCI-Express connection.

19. The system of claim 15 , wherein adapter processor executing firmware code interfaces with the accelerator module.

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 5, 2009
From: RAJAGOPAL, MURALI; ALSTON, JERALD K.; ANAND, SANJAYA; KLEMIN, BRUCE A.
To: QLOGIC, CORPORATION
Reel/Frame 023058/0919 →