PERFORMING A MULTI-STAGE LOOKUP TO CLASSIFY PACKETS
0 Assignments
0 Petitions
Accused Products
Abstract
Some embodiments provide a method for a forwarding element that forwards packets. The method receives a packet. The method performs a first stage lookup of a hash table for a first hash of a first set of header fields and un-wildcards bits of a wildcard mask that corresponds to the first set of header fields. If a matching hash is found in the first stage lookup, the method performs a second stage lookup of the hash table for a second hash of a second set of header fields and un-wildcards bits of the wildcard mask that corresponds to the second set of header fields. The method identifies a matching rule for the packet. The method generates a flow based on the matching rule and the wildcard mask, wherein the flow is used to process each other packets that match each bit which is un-wildcarded.
-
Citations
40 Claims
-
1-20. -20. (canceled)
-
21. A method for generating a cached rule for processing packets, the method comprising:
-
receiving a packet comprising a set of header fields; defining a wildcard mask for the packet, wherein the wildcard mask is initially set as entirely wildcarded; for each of a plurality of header fields over which a set of rules match, until either (i) lookups are performed for all of the header fields in the plurality of header fields or (ii) a lookup for a header field does not identify a matching rule; performing a lookup for the header field; and un-wildcarding the corresponding header field of the wildcard mask; generating a rule for processing subsequent packets based on a matching rule and the un-wildcarded header fields of the wildcard mask. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. A non-transitory machine readable medium storing a program that when executed by at least one processing unit generates a cached rule for processing packets, the program comprising sets of instructions for:
-
receiving a packet comprising a set of header fields; defining a wildcard mask for the packet, wherein the wildcard mask is initially set as entirely wildcarded; for each of a plurality of header fields over which a set of rules match, until either (i) lookups are performed for all of the header fields in the plurality of header fields or (ii) a lookup for a header field does not identify a matching rule; performing a lookup for the header field; and un-wildcarding the corresponding header field of the wildcard mask; generating a rule for processing subsequent packets based on a matching rule and the un-wildcarded header fields of the wildcard mask. - View Dependent Claims (29, 30, 31, 32, 33, 34)
-
-
35. An electronic device comprising:
-
at least one processing unit; and a storage, which stores a program that when executed by the at least one processing unit generates a cached rule for processing packets, the program comprising sets of instructions for; receiving a packet comprising a set of header fields; defining a wildcard mask for the packet, wherein the wildcard mask is initially set as entirely wildcarded; for each of a plurality of header fields over which a set of rules match, until either (i) lookups are performed for all of the header fields in the plurality of header fields or (ii) a lookup for a header field does not identify a matching rule; performing a lookup for the header field; and un-wildcarding the corresponding header field of the wildcard mask; generating a rule for processing subsequent packets based on a matching rule and the un-wildcarded header fields of the wildcard mask. - View Dependent Claims (36, 37, 38, 39, 40)
-
Specification