Packet filters provide rules for classifying packets based on header
fields. High speed packet classification has received much study. However,
the twin problems of fast updates and fast conflict detection have not
received much attention. A conflict occurs when two classifiers overlap,
potentially creating ambiguity for packets that match both filters. For
example, if Rule 1 specifies that all packets going to CNN be rate
controlled and Rule 2 specifies that all packets coming from Walmart be given
high priority, the rules conflict for traffic from Walmart to CNN.
There has been prior work on efficient conflict detection for two dimensional
classifiers. However, the best known algorithm for conflict detection
for general classifiers is the naive O(N^2) algorithm of comparing each pair of
rules for a conflict. In this paper, we describe an efficient and
scalable conflict detection algorithm for the general case that is
significantly faster. For example, for a database of 20,000 rules, our
algorithm is 40 times faster than the naive implementation. Even without
considering conflicts, our algorithm also provides a packet classifier
with fast updates and fast lookups that can be used for stateful packet
filtering.
Pre-2018 CSE ID: CS2002-0718