Patent ID: 9680738
Date: 2017-06-13
CPC Classifications: H04L

Claim:
1. A non-transitory machine readable medium storing a program that when executed by at least one processing unit forwards packets, the program comprising sets of instructions for: receiving a packet; defining a wildcard mask comprising a plurality of bits, each bit in the wildcard mask (i) corresponding to a bit in a header of the packet and (ii) initially set as a wildcard bit; modifying the wildcard mask while traversing a tree structure by tracing a first set of bits of the packet header through the tree structure and un-wildcarding the corresponding set of bits from the wildcard mask, the tree structure comprising sets of values for comparing to one or more bits of the packet header, each set of values corresponding to a rule for matching the first set of bits of the packet header; comparing a second set of bits of the packet header to corresponding sets of bits of a set of rules to identify a matching rule for the second set of bits of the packet header; and generating a flow entry comprising a set of un-wildcarded bits, the flow entry generated based on the matching rule and the modified wildcard mask, wherein the flow entry is used to process other packets that match each un-wildcarded bit of the flow entry.