IP Library Granted Patent US 7,274,698
Granted Patent B2
US 7,274,698 · App. 10/234,267 · Granted Sep 25, 2007

Multilevel parser for conditional flow detection in a network device

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,274,698
App. No.
10/234,267
Granted
Sep 25, 2007
Kind
B2
Abstract

A process of filtering packet data in a network device is disclosed. A descriptor table is accessed to obtain a first descriptor and a first field is extracted from a packet based on the first descriptor. An action table is accessed based on a value of the first field of the packet. Then an action from the action table is executed when a valid bit from the action table for the action is set or an action from a miss action table is executed when a valid bit from the action table for the action is not set.

Claims (99)

1. A process of filtering packet data in a network device, said process comprising:

accessing a descriptor table to obtain a first descriptor;

extracting a first field from a packet based on the first descriptor, wherein the first field is used to identify the descriptor to be used to extract a second field of the packet;

accessing an action table based on a value of the first field of the packet;

executing an action from said action table when a valid bit from said action table for said action is set; and

executing a miss action from a miss action table when a valid bit from said action table for said action is not set.

2. A process as recited in claim 1 , wherein said step of accessing a descriptor table to obtain a first descriptor comprises accessing a descriptor table to obtain a first descriptor and an offset and said step of extracting a first field from a packet based on the first descriptor comprises extracting a first field from a packet by accessing a section of the packet set by the first descriptor and offset by the offset.

3. A process as recited in claim 1 , wherein said process is performed for each row of the descriptor table.

4. A process as recited in claim 1 , wherein said step of extracting a first field from a packet based on the first descriptor comprises extracting a first field from a packet header of the packet based on the first descriptor.

5. A process as recited in claim 1 , further comprising:

checking a mode associated with said first descriptor; and

determining at least one next step based on said mode.

6. A process as recited in claim 5 , wherein said at least one next step comprising:

indexing into the action table based on said value of said first field of the packet.

7. A process as recited in claim 5 , wherein said at least one next step comprising:

hashing into a value table using said value of said first field of the packet; and

obtaining an action table index from said value table for use with the action table.

8. A process as recited in claim 5 , wherein said at least one next step comprising:

hashing into a value table using said value of said first field of the packet;

obtaining a second descriptor field index from said value table;

indexing into a second descriptor table using the second descriptor field index to obtain a second descriptor;

extracting a second field from the packet based on the second descriptor; and

accessing said action table using a value of said second field as an index into said action table.

9. A process as recited in claim 5 , wherein said at least one next step comprising:

indexing into a second descriptor table based on said value of said first field to obtain a second descriptor;

extracting a second field from the packet based on the second descriptor

hashing into a value table using said value of said second field of the packet; and

obtaining an action table index from said value table for use with the action table.

10. A method of handling data packets in a network device, said method comprising:

receiving a packet at a port interface;

reading at least one portion of said packet;

filtering said at least one portion according to the filtering process recited in claim 1 ; and

discarding, forwarding, or modifying the packet based upon the filtering process.

11. A packet filter for a network device, said filter comprising:

first accessing means for accessing a descriptor table to obtain a first descriptor;

first extracting means for extracting a first field from a packet based on the first descriptor and for identifying the descriptor to be used to extract a second field of the packet;

second accessing means for accessing an action table based on a value of the first field of the packet;

first executing means for executing an action from said action table when a valid bit from said action table for said action is set; and

second executing means for executing a miss action from a miss action table when a valid bit from said action table for said action is not set.

12. A packet filter for a network device as recited in claim 11 , wherein said first accessing means comprises third accessing means for accessing a descriptor table to obtain a first descriptor and an offset and said first extracting means comprises third extracting means for extracting a first field from a packet by accessing a section of the packet set by the first descriptor and offset by the offset.

13. A packet filter for a network device as recited in claim 11 , wherein said first accessing means is configured to access each row of the descriptor table.

14. A packet filter for a network device as recited in claim 11 , wherein said first extracting means comprises third extracting means for extracting a first field from a packet header of the packet based on the first descriptor.

15. A packet filter for a network device as recited in claim 11 , further comprising:

checking means for checking a mode associated with said first descriptor; and

determining means for determining what additional elements of the packet filter are utilized based on said mode.

16. A packet filter for a network device as recited in claim 15 , wherein said filter further comprises:

indexing means for indexing into the action table based on said value of said first field of the packet.

17. A packet filter for a network device as recited in claim 15 , wherein said filter further comprises:

hashing means for hashing into a value table using said value of said first field of the packet; and

obtaining means for obtaining an action table index from said value table for use with the action table.

18. A packet filter for a network device as recited in claim 15 , wherein said filter further comprises:

hashing means for hashing into a value table using said value of said first field of the packet;

obtaining means for obtaining a second descriptor field index from said value table;

indexing means for indexing into a second descriptor table using the second descriptor field index to obtain a second descriptor;

extracting means for extracting a second field from the packet based on the second descriptor; and

third accessing means for accessing said action table using a value of said second field as an index into said action table.

19. A packet filter for a network device as recited in claim 15 , wherein said filter further comprises:

indexing means for indexing into a second descriptor table based on said value of said first field to obtain a second descriptor;

extracting means for extracting a second field from the packet based on the second descriptor

hashing means for hashing into a value table using said value of said second field of the packet; and

obtaining means for obtaining an action table index from said value table for use with the action table.

20. A network device, said device comprising:

receiving means for receiving a packet at a port interface;

reading means for reading at least one portion of said packet;

a packet filter as recited in claim 11 ; and

means for discarding, forwarding, or modifying the packet based upon a result from the packet filter.

21. A packet filter for a network device, said filter comprising:

a first retriever for accessing a descriptor table to obtain a first descriptor;

a first extractor for extracting a first field from a packet based on the first descriptor and for identifying the descriptor to be used to extract a second field of the packet;

a second retriever means for accessing an action table based on a value of the first field of the packet;

a first executor for executing an action from said action table when a valid bit from said action table for said action is set; and

a second executor for executing a miss action from a miss action table when a valid bit from said action table for said action is not set.

22. A packet filter for a network device as recited in claim 21 , wherein said first retriever comprises a third retriever for accessing a descriptor table to obtain a first descriptor and an offset and said first extractor comprises a third extractor for extracting a first field from a packet by accessing a section of the packet set by the first descriptor and offset by the offset.

23. A packet filter for a network device as recited in claim 21 , wherein said first retriever is configured to access each row of the descriptor table.

24. A packet filter for a network device as recited in claim 21 , wherein said first extractor comprises a third extractor for extracting a first field from a packet header of the packet based on the first descriptor.

25. A packet filter for a network device as recited in claim 21 , further comprising:

a checker for checking a mode associated with said first descriptor; and

a chooser for determining what additional elements of the packet filter are utilized based on said mode.

26. A packet filter for a network device as recited in claim 25 , wherein said filter further comprises:

an indexer for indexing into the action table based on said value of said first field of the packet.

27. A packet filter for a network device as recited in claim 25 , wherein said filter further comprises:

a hashing retriever for hashing into a value table using said value of said first field of the packet; and

a selector for obtaining an action table index from said value table for use with the action table.

28. A packet filter for a network device as recited in claim 25 , wherein said filter further comprises:

a hashing retriever for hashing into a value table using said value of said first field of the packet;

a selector for obtaining a second descriptor field index from said value table;

an indexer for indexing into a second descriptor table using the second descriptor field index to obtain a second descriptor;

an extractor for extracting a second field from the packet based on the second descriptor; and

a third retriever for accessing said action table using a value of said second field as an index into said action table.

29. A packet filter for a network device as recited in claim 25 , wherein said filter further comprises:

an indexer for indexing into a second descriptor table based on said value of said first field to obtain a second descriptor;

an extractor for extracting a second field from the packet based on the second descriptor

a hashing retriever for hashing into a value table using said value of said second field of the packet; and

a selector for obtaining an action table index from said value table for use with the action table.

30. A network device, said device comprising:

a receiver for receiving a packet at a port interface;

a reader for reading at least one portion of said packet;

a packet filter as recited in claim 21 ; and

a decider for discarding, forwarding, or modifying the packet based upon a result from the packet filter.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0097. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048555/0510 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0097 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2002
From: SHANKAR, LAXMAN; AMBE, SHEKHAR
To: BROADCOM CORPORATION
Reel/Frame 013264/0536 →