Fast Packet Classification Using Bloom filters
Author: Sarang Dharmapurikar, Haoyu Song, Jonathan Turner, John Lockwood
Publisher: Architecture for networking and communications systems, Proceedings of the 2006 ACM/IEEE symposiumPresenter: Yu-Ping ChiangDate: 2008/11/5
Outline Related Work
Naive Crossproduct AlgorithmMulti-subset Crossproduct Algorithm
Nested Level Tuple Space Search (NLTSS) NLT Merging and Crossproduct (NLTMC) Performance
Memory RequirementThroughput
Naive Crossproduct Algorithm Pseudo rule
A match for a prefix also match it’s shorter prefix. Too much overhead.
Naive Crossproduct Algorithm
Multi-subset Crossproduct Algo.
Outline Related Work
Naive Crossproduct AlgorithmMulti-subset Crossproduct Algorithm
Nested Level Tuple Space Search (NLTSS) NLT Merging and Crossproduct (NLTMC) Performance
Memory RequirementThroughput
Nested Level Tuple Space Search Definition:
Nested Level: # of marked ancestors of a marked node. Always assume root is marked.
1
21 1
0
111
Nested Level Tuple Space Search Definition:
Nested Level Trie: remove unmarked nodes connecting marked node to nearest ancestor
Nested Level Tuple Space Search Definition:
Nested Level Tuple (NLT):
Do not need crossproduct rules. Number of NLTs is number of subsets.
Nested Level Tuple Space Search
Nested Level Tuple Space Search Definition:
NLT bitmap Set if prefix or it’s sub-prefix belongs to a rule
contained in this NLT.
PL/NL bit-map 32 bits Set at a position indicates that the prefix of
corresponding length is in the rule set.
Nested Level Tuple Space Search
Outline Related Work
Naive Crossproduct AlgorithmMulti-subset Crossproduct Algorithm
Nested Level Tuple Space Search (NLTSS) NLT Merging and Crossproduct (NLTMC) Performance
Memory RequirementThroughput
NLT Merging and Crossproduct
Bounded set numbers Algorithm
Sort NLTs by the number of rules in them. Pick most dense g NLTs. (g is limit # of subsets.) Merge remaining NTL (rules) with one of fixed g NTLs.
Choose “closest” NLT Ex: distance of [4,3,1,2,1] and [4,1,0,2,1]
= |3-1| + |1-0| = 3
If there’s a pseudo-rule threshold, try to insert rule.
If exceeds threshold, don’t insert it.
Outline Related Work
Naive Crossproduct AlgorithmMulti-subset Crossproduct Algorithm
Nested Level Tuple Space Search (NLTSS) NLT Merging and Crossproduct (NLTMC) Performance
Memory RequirementThroughput
On-chip bits per rule: .For NLTSS,
Off-chip bits per item: .For NLTSS,
Average memory consumptionNLTSS: 32 bytesNLTMCL: 45 bytes
Memory Requirement
8#
##640
rules
prefixesrulesm g
8#
#144#
rule
bprefixesrulem gf
1g
1g
Throughput Pipeline
1st stage: LPM 2nd stage: rule lookup
.
. .
.
ondpacketsp
Rlpm
sec/4,2max
10300 6
7272gNLTMCNLTSSlpm borb
Clock rate
LPM stage,144 bits/rule,Burst length: 72 bits
Rule lookup stage
bitsgWbNLTSS 363622
bitsgbgNLTMC 3636634