IP Library Granted Patent US 8,798,047
Granted Patent B1
US 8,798,047 · App. 13/220,249 · Granted Aug 5, 2014

Methods and systems for processing network information

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,798,047
App. No.
13/220,249
Granted
Aug 5, 2014
Kind
B1
Abstract

The present embodiments support both tunneling and offload functionality for tunneled packet having a tunnel header, the tunnel header encapsulating a packet, the packet having a packet header and a payload. When a tunneled packet is received at a network device, an offset value for the packet header is determined by comparing the tunnel header to a plurality of entries stored at a data structure maintained by the network device. The offset value is used for pre-processing the packet, and an offload module of the network device performs an offload function.

Claims (40)

1. A machine implemented method, comprising:

receiving a tunneled packet at a network device, the tunneled packet having a tunnel header, the tunnel header encapsulating a packet, the packet having a packet header and a payload;

determining an offset value for the packet header by comparing the tunnel header to a plurality of entries stored at a data structure maintained by the network device, wherein the data structure is used for obtaining the offset value associated with the tunnel header;

if the tunnel header matches one of the stored tunnel header entries, providing a pointer corresponding to the matched tunnel header entry, wherein the pointer points to the offset value that is equal to a packet offset of the tunneled packet;

sending, by a loopback module of the network device, the tunneled packet to a header parser of the network device with the offset value;

parsing, by the loopback module, the packet header;

using the offset value for pre-processing the packet; and

a hardware based offload module performing an offload function.

2. The method of claim 1 , wherein the network device is an adapter configured to handle network traffic.

3. The method of claim 1 , wherein the network device is an adapter configured to handle storage traffic.

4. The method of claim 1 , wherein the network device is an adapter configured to handle both network and storage traffic.

5. The method of claim 1 , wherein an access module compares the tunnel header with the plurality of entries to determine the offset.

6. A network device coupled to a computing system, the network device comprising:

a hardware based offload system having a header parser for receiving a tunneled packet, the tunneled packet having a tunnel header, the tunnel header encapsulating a packet having a packet header and a payload;

an access module for determining an offset value for the packet header by comparing the tunnel header to a plurality of entries stored at a data structure maintained at the network device, wherein the data structure is used for obtaining the offset value associated with the tunnel header; wherein the header parser uses the offset value for pre-processing the packet; and

an access module for determining an offset value for the packet header by comparing the tunnel header to a plurality of entries stored at a data structure maintained at the network device, wherein the data structure is used for obtaining the offset value associated with the tunnel header, wherein if the tunnel header matches one of the stored tunnel header entries, a pointer is provided corresponding to the matched tunnel header entry, wherein the pointer points to the offset value that is equal to a packet offset of the tunneled packet; wherein the header parser uses the offset value for pre-processing the packet; a loopback module of the network device for sending the tunneled packet to the header parser with the offset value and for parsing the packet header; and

an offload module for performing an offload function.

7. The network device of claim 6 , wherein the network device is an adapter configured to handle network traffic.

8. The network device of claim 6 , wherein the network device is an adapter configured to handle storage traffic.

9. The network device of claim 6 , wherein the network device is an adapter configured to handle both network and storage traffic.

10. A system, comprising:

a computing system interfacing with a network device, the network device comprising:

a hardware based offload system having a header parser for receiving a tunneled packet at a network device, the tunneled packet having a tunnel header, the tunnel header encapsulating a packet having a packet header and a payload;

an access module for determining an offset value for the packet header by comparing the tunnel header to a plurality of entries stored at a data structure maintained at the network device, wherein the data structure is used for obtaining the offset value associated with the tunnel header, wherein if the tunnel header matches one of the stored tunnel header entries, a pointer is provided corresponding to the matched tunnel header entry, wherein the pointer points to the offset value that is equal to a packet offset of the tunneled packet; wherein the header parser uses the offset value for pre-processing the packet;

a loopback module of the network device for sending the tunneled packet to the header parser with the offset value and for parsing the packet header; and

an offload module for performing an offload function.

11. The system of claim 10 , wherein the network device is an adapter configured to handle network traffic.

12. The system of claim 10 , wherein the network device is an adapter configured to handle storage traffic.

13. The system of claim 10 , wherein the network device is an adapter configured to handle both network and storage traffic.

14. A machine implemented method, comprising:

receiving a tunneled packet at a network device;

comparing, by an access module of the network device, a tunnel header of the received packet with a plurality of tunnel header entries stored at a data structure accessible to the network device, wherein the data structure is used for obtaining an offset value associated with the tunnel header;

if the tunnel header matches one of the stored tunnel header entries, providing a pointer corresponding to the matched tunnel header entry, wherein the pointer points to the offset value that is equal to a packet offset of the tunneled packet;

sending, by a loopback module of the network device, the tunneled packet to a header parser of the network device with the offset value;

parsing, by the loopback module, the packet header;

determining, by a checksum offload module of the network device, a checksum for the tunneled packet; and

performing, by an offload module of the network device, an offload function.

15. The method of claim 14 , wherein the network device is an adapter configured to handle network traffic.

16. The method of claim 14 , wherein the network device is an adapter configured to handle storage traffic.

17. The method of claim 14 , wherein the network device is an adapter configured to handle both network and storage traffic.

Assignments (6)
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 →