IP Library Granted Patent US 9,001,828
Granted Patent B2
US 9,001,828 · App. 13/052,336 · Granted Apr 7, 2015

Method and apparatus for pre-classifying packets

Inventors: Håkan Zeffer (Enskede, SE); Jakob Cärlstrom (Uppsala, SE); Pär Westlund (Stockholm, SE); Johan Bäck (Lindingö, SE); Ronny Nilsson (Stockholm, SE)
Assignee: Marvell World Trade Ltd.
H04L47/2441
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 9,001,828
App. No.
13/052,336
Granted
Apr 7, 2015
Kind
B2
Abstract

The disclosed embodiments relate to a system that provides an intelligent port infrastructure for communication network devices. This is accomplished by incorporating a highly configurable pre-classifier module into the port infrastructure. This pre-classifier makes it possible to realign packet data to add a configurable number of bytes to the front of the packet, and also to select interesting data from incoming packets for further analysis. The selected data is sent into a configurable classification engine, which generates instructions that specify how to determine associated packet attributes. The packet attributes are then generated based on the instructions, and are forwarded along with the packet to downstream processing units.

Claims (82)

1. A method for processing a packet, comprising:

receiving a packet from an input port;

selecting data from one or more locations in the packet;

performing a classification operation based on the selected data to generate a classification result including instructions specifying how to generate attributes for the packet;

using the instructions from the classification result to generate attributes for the packet; and

forwarding the attributes along with the packet to facilitate subsequent packet-processing operations,

wherein performing the classification operation additionally involves using a channel number associated with the packet and a programmable identifier associated with the input port to perform the classification,

wherein the channel number and the programmable identifier are received from the input port, and

wherein at least one of the channel number and the programmable identifier are configurable on a per port basis.

2. The method of claim 1 , wherein receiving the packet involves aligning the packet to add a configurable number of bytes to the front of the packet.

3. The method of claim 2 , wherein the configurable number of bytes is determined based at least partly on the input port.

4. The method of claim 1 , wherein selecting the data from one or more locations in the packet involves selecting the data from a set of locations associated with the input port.

5. The method of claim 1 , further comprising adjusting a packet base pointer based on the classification, wherein the packet base pointer accompanies the packet and points to a specific header in the packet.

6. The method of claim 1 , wherein performing the classification operation involves performing a lookup in a lookup structure based on the selected data for the packet.

7. The method of claim 6 , wherein the lookup structure is a ternary content-addressable memory (TCAM).

8. The method of claim 6 , wherein generating the attributes involves combining one or more of the following:

data from the classification result;

data from the packet; and

information forwarded from the input port.

9. The method of claim 8 , wherein combining the data from the classification result with the data from the packet or the information from the input port reduces a requisite size of the lookup structure.

10. The method of claim 1 , wherein the attributes for the packet include one or more of the following:

a mapping type;

a packet type;

a color;

a class of service;

a destination queue identifier;

a number of copies;

a mirror enable;

a mirror queue identifier; and

a packet base pointer.

11. A system for processing a packet, comprising:

an input configured to receive a packet from an input port;

a data selection mechanism configured to select data from one or more locations in the packet;

a classification mechanism configured to perform a classification operation based on the selected data to generate a classification result including instructions specifying how to generate attributes for the packet;

an attribute-generation mechanism configured to use the instructions from the classification result to generate attributes for the packet; and

an output configured to forward the attributes along with the packet to facilitate subsequent packet-processing operations,

wherein performing the classification operation additionally involves using a channel number associated with the packet and a programmable identifier associated with the input port to perform the classification,

wherein the channel number and the programmable identifier are received from the input port, and

wherein at least one of the channel number and the programmable identifier are configurable on a per port basis.

12. The system of claim 11 , wherein receiving the packet involves aligning the packet to add a configurable number of bytes to the front of the packet.

13. The system of claim 12 , wherein the configurable number of bytes is determined based at least partly on the input port.

14. The system of claim 11 , wherein selecting the data from one or more locations in the packet involves selecting the data from a set of locations associated with the input port.

15. The system of claim 11 , further comprising adjusting a packet base pointer based on the classification, wherein the packet base pointer accompanies the packet and points to a specific header in the packet.

16. The system of claim 11 , wherein performing the classification operation involves performing a lookup in a lookup structure based on the selected data for the packet.

17. The system of claim 16 , wherein the lookup structure is a ternary content-addressable memory (TCAM).

18. The system of claim 16 , wherein generating the attributes involves combining one or more of the following:

data from the classification result;

data from the packet; and

information forwarded from the input port.

19. The system of claim 18 , wherein combining the data from the classification result with the data from the packet or the information from the input port reduces a requisite size of the lookup structure.

20. The system of claim 11 , wherein the attributes for the packet include one or more of the following:

a mapping type;

a packet type;

a color;

a class of service;

a destination queue identifier;

a number of copies;

a mirror enable;

a mirror queue identifier; and

a packet base pointer.

21. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for processing a packet, the method comprising:

receiving a packet from an input port;

selecting data from one or more locations in the packet;

performing a classification operation based on the selected data to generate a classification result including instructions specifying how to generate attributes for the packet;

using the instructions from the classification result to generate attributes for the packet; and

forwarding the attributes along with the packet to facilitate subsequent packet-processing operations,

wherein performing the classification operation additionally involves using a channel number associated with the packet and a programmable identifier associated with the input port to perform the classification,

wherein the channel number and the programmable identifier are received from the input port, and

wherein at least one of the channel number and the programmable identifier are configurable on a per port basis.

22. The computer-readable storage medium of claim 21 , wherein receiving the packet involves aligning the packet to add a configurable number of bytes to the front of the packet.

23. The computer-readable storage medium of claim 21 , wherein performing the classification operation involves performing a lookup in a lookup structure based on the selected data for the packet.

24. The computer-readable storage medium of claim 23 , wherein the lookup structure is a ternary content-addressable memory (TCAM).

25. The computer-readable storage medium of claim 21 , wherein generating the attributes involves combining one or more of the following:

data from the classification result;

data from the packet; and

information forwarded from the input port.

26. The method of claim 1 , wherein the channel number and the programmable identifier are configurable on the per port basis.

27. The system of claim 11 , wherein the channel number and the programmable identifier are configurable on the per port basis.

28. The computer-readable storage medium of claim 21 , wherein the channel number and the programmable identifier are configurable on the per port basis.

29. The method of claim 1 , wherein selecting the data from the one or more locations in the packet includes user selection of up to nine two-byte pieces of data from anywhere within the first 256 bytes of the packet.

30. The system of claim 11 , wherein selecting the data from the one or more locations in the packet includes user selection of up to nine two-byte pieces of data from anywhere within the first 256 bytes of the packet.

31. The computer-readable storage medium of claim 21 , wherein selecting the data from the one or more locations in the packet includes user selection of up to nine two-byte pieces of data from anywhere within the first 256 bytes of the packet.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2012
From: MARVELL INTERNATIONAL LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 028460/0197 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2012
From: MARVELL TECHNOLOGY SWEDEN AB
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 028036/0226 →
CHANGE OF NAME Recorded Apr 10, 2012
From: XELERATED NEWCO AB
To: MARVELL TECHNOLOGY SWEDEN AB
Reel/Frame 028031/0105 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2011
From: XELERATED AB
To: XELERATED NEWCO AB
Reel/Frame 027387/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2011
From: ZEFFER, HAKAN; CARLSTROM, JAKOB; WESTLUND, PAR; BACK, JOHAN; NILSSON, RONNY
To: XELERATED AB
Reel/Frame 027314/0900 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2011
From: ZEFFER, HAKAN; CARLSTROM, JAKOB; WESTLUND, PAR; BACK, JOHAN; NILSSON, RONNY
To: XELERATED AB
Reel/Frame 026189/0428 →
Continuity (1)
Related Publication 20120243538A1 · Sep 27, 2012