IP Library Granted Patent US 7,848,331
Granted Patent B2
US 7,848,331 · App. 11/490,745 · Granted Dec 7, 2010

Multi-level packet classification

Assignee: Oracle America, Inc.
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,848,331
App. No.
11/490,745
Granted
Dec 7, 2010
Kind
B2
Abstract

A method for processing a packet that includes receiving the packet where the packet comprises a header, and traversing a flow table comprising a plurality of flow table entries (FTEs) for each FTE encountered during the traversal, obtaining a packet matching function associated with the FTE, applying the packet matching function associated with the FTE to the header to determine whether the packet matches the FTE, if the packet matches the FTE, send the packet to one selected from the group consisting of one of a plurality of receive rings (RRs) and a first sub-flow table, where the first sub-flow table is associated with the FTE, stopping the traversal of the flow table, and if the packet does not match the FTE continue the traversal of the flow table.

Claims (31)

1. A network interface card (NIC), comprising: a plurality of receive rings (RRs); a flow table comprising a plurality of flow table entries (FTEs); a first sub-flow table comprising a first plurality of sub-flow table entries (SFTEs); wherein the NIC is configured to:

receive the packet wherein the packet comprises a header; and traverse the flow table;

for each FTE encountered during the traversal:

obtain a packet matching function associated with the FTE;

apply the packet matching function associated with the FTE to the header to determine whether the packet matches the FTE;

if the packet matches the FTE:

send the packet to one selected from a group consisting of one of the plurality of receive rings (RRs) associated with the FTE and the first sub-flow table, wherein the first sub-flow table is associated with the FTE; and

stop the traversal of the flow table; and

if the packet does not match the FTE:

continue the traversal of the flow table.

2. The network interface card of claim 1 , wherein

if the packet matches the FTE and is sent to the first sub-flow table: traversing the first sub-flow table; for each SFTE encountered during the traversal:

obtaining a packet matching function associated with the SFTE;

applying the packet matching function associated with the SFTE to the header to determine whether the packet matches the SFTE;

if the packet matches the SFTE:

sending the packet to one selected from the group consisting of one of the plurality of RRs associated with the SFTE and a second sub-flow table, wherein the second sub-flow table is associated with the SFTE;

stopping the traversal of the first sub-flow table; and

if the packet does not match the SFTE:

continuing the traversal of the first sub-flow table.

3. The network interface card of claim 1 , wherein if the packet matches the FTE and is sent to one of the plurality of RRs the network interface card is further configured to:

obtain an acceptor function and a target cookie from the FTE, wherein the target cookie specifies a virtual network interface card (VNIC) associated with the one of the plurality of RRs;

send the packet, the acceptor function, and the target cookie to the one of the plurality of RRs;

issue an interrupt, after receiving the packet; and

execute, after issuing the interrupt, the acceptor function using the target cookie and packet as arguments, wherein execution of the acceptor function sends the packet to the VNIC,

wherein the VNIC is located on a host operatively connected to the network interface card.

4. The network interface card of claim 1 , wherein if the packet matches the FTE and is sent to one of the plurality of RRs, the network interface card is further configured to:

send the packet to the one of the plurality of RRs;

execute an acceptor function, wherein execution of the acceptor function sends the packet to the VNIC and wherein the acceptor function is obtained from a virtual serialization queue associated the VNIC,

wherein the VNIC is located on a host operatively connected to the network interface card.

5. The network interface card of claim 1 , wherein each FTE comprises a flow description defining a criterion, wherein the criterion is used by the packet matching function associated with the FTE to determine whether the packet is associated with the FTE.

6. The network interface card of claim 5 , wherein the criterion is at least one selected from a group consisting of a level two (L 2 ) routing criterion, a level three (L 3 ) routing criterion, and a level four (L 4 ) routing criterion.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0556 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2006
From: BELGAIED, KAIS; DROUX, NICOLAS G.; TRIPATHI, SUNAY
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018088/0899 →
Continuity (1)
Related Publication 20080019360A1 · Jan 24, 2008