180 likes | 364 Views
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.
E N D
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.
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
0 1 1 1 1 1 2 1 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):
Nested Level Tuple Space Search • 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.
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
Memory Requirement • On-chip bits per rule: • . • For NLTSS, • Off-chip bits per item: • . • For NLTSS, • Average memory consumption • NLTSS: 32 bytes • NLTMCL: 45 bytes
Throughput • Pipeline • 1st stage: LPM • 2nd stage: rule lookup • . • . • . • . Clock rate Rule lookup stage LPM stage,144 bits/rule, Burst length: 72 bits