PACKET FLOW CLASSIFICATION
First Claim
1. A computing device for packet flow classification, the computing device comprising:
- a memory to store a hash table including a plurality of hash table buckets, each hash table bucket mapping a plurality of keys to corresponding traffic flows;
a flow classification module to perform packet flow classification on received data packets, the packet flow classification comprising a plurality of sequential classification stages, wherein fetch classification operations and non-fetch classification operations are performed in each classification stage, and wherein the fetch classification operations include to (i) prefetch a key of a first received data packet based on a set of packet fields of the first received data packet for use during a subsequent classification stage, (ii) prefetch a hash table bucket from the hash table based on a key signature of the prefetched key for use during another subsequent classification stage, and (iii) prefetch a traffic flow to be applied to the first received data packet based on the prefetched hash table bucket and the prefetched key; and
an execution interlacing module to handle processing of received data packets such that a fetch classification operation is performed by the flow classification module on the first received data packet while a non-fetch classification operation is performed by the flow classification module on a second received data packet.
1 Assignment
0 Petitions
Accused Products
Abstract
Technologies for packet flow classification on a computing device include a hash table including a plurality of hash table buckets in which each hash table bucket maps a plurality of keys to corresponding traffic flows. The computing device performs packet flow classification on received data packets, where the packet flow classification includes a plurality of sequential classification stages and fetch classification operations and non-fetch classification operations are performed in each classification stage. The fetch classification operations include to prefetch a key of a first received data packet based on a set of packet fields of the first received data packet for use during a subsequent classification stage, prefetch a hash table bucket from the hash table based on a key signature of the prefetched key for use during another subsequent classification stage, and prefetch a traffic flow to be applied to the first received data packet based on the prefetched hash table bucket and the prefetched key. The computing device handles processing of received data packets such that a fetch classification operation is performed by the flow classification module on the first received data packet while a non-fetch classification operation is performed by the flow classification module on a second received data packet.
48 Citations
25 Claims
-
1. A computing device for packet flow classification, the computing device comprising:
-
a memory to store a hash table including a plurality of hash table buckets, each hash table bucket mapping a plurality of keys to corresponding traffic flows; a flow classification module to perform packet flow classification on received data packets, the packet flow classification comprising a plurality of sequential classification stages, wherein fetch classification operations and non-fetch classification operations are performed in each classification stage, and wherein the fetch classification operations include to (i) prefetch a key of a first received data packet based on a set of packet fields of the first received data packet for use during a subsequent classification stage, (ii) prefetch a hash table bucket from the hash table based on a key signature of the prefetched key for use during another subsequent classification stage, and (iii) prefetch a traffic flow to be applied to the first received data packet based on the prefetched hash table bucket and the prefetched key; and an execution interlacing module to handle processing of received data packets such that a fetch classification operation is performed by the flow classification module on the first received data packet while a non-fetch classification operation is performed by the flow classification module on a second received data packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. One or more machine-readable storage media comprising a plurality of instructions stored thereon that, in response to execution by a computing device, cause the computing device to:
perform packet flow classification on received data packets, the packet flow classification comprising a plurality of sequential classification stages, wherein fetch classification operations and non-fetch classification operations are performed in each classification stage, and wherein to perform the packet flow classification comprises to; prefetch a key of a first received data packet based on a set of packet fields of the first received data packet for use during a subsequent stage of packet flow classification while a non-fetch classification operation is performed on another received data packet; prefetch a hash table bucket based on a key signature of the prefetched key for use during another subsequent classification stage while a non-fetch classification operation is performed on another received data packet, the hash table bucket being prefetched from a plurality of hash table buckets of a hash table, and each hash table bucket mapping a plurality of keys to corresponding traffic flows; and prefetch a traffic flow to be applied to the first received data packet based on the prefetched hash table bucket and the prefetched key. - View Dependent Claims (17, 18, 19, 20)
-
21. A method for classifying data packet flow by a computing device, the method comprising:
performing packet flow classification on received data packets, the packet flow classification comprising a plurality of sequential classification stages, wherein fetch classification operations and non-fetch classification operations are performed in each classification stage, and wherein performing the packet flow classification comprises; prefetching, by the computing device, a key of a first received data packet based on a set of packet fields of the first received data packet for use during a subsequent stage of packet flow classification while a non-fetch classification operation is performed on another received data packet; prefetching, by the computing device, a hash table bucket based on a key signature of the prefetched key for use during another subsequent classification stage while a non-fetch classification operation is performed on another received data packet, the hash table bucket being prefetched from a plurality of hash table buckets of a hash table, and each hash table bucket mapping a plurality of keys to corresponding traffic flows; and prefetching, by the computing device, a traffic flow to be applied to the first received data packet based on the prefetched hash table bucket and the prefetched key. - View Dependent Claims (22, 23, 24, 25)
Specification