240 likes | 343 Views
Practical Multi-tuple Packet Classification using Dynamic Discrete Bit Selection. Authors : Baohua Yang, Jeffrey Fong, Weirong Jiang, Yibo Xue , and Jun Li. Publisher : IEEE TRANSACTIONS ON COMPUTERS - 2012 Presenter : Chai-Yi Chu Date : 2012/11/14. Outline. Introduction
E N D
Practical Multi-tuple Packet Classification using Dynamic Discrete Bit Selection Authors:BaohuaYang, Jeffrey Fong,WeirongJiang,YiboXue,and Jun Li. Publisher:IEEE TRANSACTIONS ON COMPUTERS-2012 Presenter : Chai-Yi Chu Date : 2012/11/14
Outline • Introduction • Related Work • Algorithm • Evaluation
Introduction • Dynamic Discrete Bit Selection • Packet classification algorithm • 64-byte Ethernet packet and 10K ACL ruleset • 10 Gbps on Cavium OCTEON CN5860 multi-core network processor • 135 Gbps on Xilinx Virtex-5 FPGA
Related Work • Two major types of packet classification algorithm • Searching space partition • partition the searching space into smaller subspaces • Ex. RFC, HSM
Ruleset partition • cut the large ruleset into smaller ones • Ex. HiCuts, HyperCuts
Algorithm • Utilize dynamic heuristics to split the ruleset efficiently • Combine different data structures to optimize both time and space performance
Terminology • E-Bits • some bits will partition the rulesetmore “effectively”. • To partition ruleset into smaller sub-rulesets. • M-Vector • Definition 3.1 (M-Vector): A M-Vector V is a bit vector that satisfies: V[i] = 1 only if bit iis an E-Bit, otherwise V[i] = 0.
D-Table • Dynamic Indexing Table T. • For n bits, T consists of cells, where each cell stores a pointer respectively. • S-Block • memory blocks that are pointed by T’s cell. • Each S-Block stores a subset of the ruleset R. • Rules are stored orderly from high to low by priority. D-Table S-Block
Preparation Phase • 1. E-Bits selection • 2. M-Vector generation • 3. D-Table construction
1. E-Bits selection • Two problems • E-Bits choosing • Length optimization • Solutions • Judging Function(J-Function) • Performance Function(P-Function)
J-Function • To judge which bits are E-Bits • minimizing the maximum size of all subsets • E-Bits set • minimizing the size of sub searching space
P-Function • To decide the number of E-Bits. • to optimize the length of . • M-Vector
2. M-Vector generation • Built with the process of E-Bits choosing and length optimization • Fast-Growth • Intelli-Swap(I-Swap)
3. D-Table construction • Set up T with length , each cell T[i] stores a pointer to an empty S-Block. • Use V to mask r at the E-Bits positions, which results in a bit-string i of length n. • Insert r into the bottom of the S-Block pointed by T[i].
Classification Phase H V T
Complexity Analysis • rulesetR consists of N rules, and n E-Bits are selected. • Time complexity is • Storage complexity is
Suppose the length of the D-Table is . • The length of the largest S-Blocks is L. • Time complexity is , • Storage complexity is • The size ratio between the subsets and the original ruleset is ρ. • Then the size of the partitioned subsets will be ρ · N. Thus with n E-Bits,
Evaluation • IA based Implementation
Scalability • The ratio of Memory Per Rule (MPR)
Multi-core NP Implementation • Cavium OCTEON CN5860, ACL10K
FPGA based Implementation • Xilinx Virte-5 FPGA(XC5VSX240T), 2048 Kb of Block RAM