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 symposium Presenter: Yu-Ping Chiang Date: 2008/11/5
Outline Related Work Naive Crossproduct Algorithm Multi-subset Crossproduct Algorithm Nested Level Tuple Space Search (NLTSS) NLT Merging and Crossproduct (NLTMC) Performance Memory Requirement Throughput
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 Algorithm Multi-subset Crossproduct Algorithm Nested Level Tuple Space Search (NLTSS) NLT Merging and Crossproduct (NLTMC) Performance Memory Requirement Throughput
Nested Level Tuple Space Search Definition: Nested Level: # of marked ancestors of a marked node. Always assume root is marked
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
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 Algorithm Multi-subset Crossproduct Algorithm Nested Level Tuple Space Search (NLTSS) NLT Merging and Crossproduct (NLTMC) Performance Memory Requirement Throughput
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 Algorithm Multi-subset Crossproduct Algorithm Nested Level Tuple Space Search (NLTSS) NLT Merging and Crossproduct (NLTMC) Performance Memory Requirement Throughput
On-chip bits per rule: . For NLTSS, Off-chip bits per item: . For NLTSS, Average memory consumption NLTSS: 32 bytes NLTMCL: 45 bytes Memory Requirement
Throughput Pipeline 1st stage: LPM 2nd stage: rule lookup. .. Clock rate LPM stage,144 bits/rule, Burst length: 72 bits Rule lookup stage