practical multi-tuple packet classification using dynamic discrete bit selection
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
1
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 - 2012Presenter : Chai-Yi ChuDate : 2012/11/14
2
Introduction Related Work Algorithm Evaluation
Outline
3
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
Introduction
4
Two major types of packet classification algorithm◦ Searching space partition
partition the searching space into smaller subspaces Ex. RFC, HSM
Related Work
5
◦Ruleset partition cut the large ruleset into smaller ones Ex. HiCuts, HyperCuts
6
Utilize dynamic heuristics to split the ruleset efficiently
Combine different data structures to optimize both time and space performance
Algorithm
7
Terminology◦ E-Bits
some bits will partition the ruleset more “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 i is an E-Bit, otherwise V[i] = 0.
0 1 0 1
8
◦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
9
Preparation Phase◦ 1. E-Bits selection◦ 2. M-Vector generation◦ 3. D-Table construction
10
1. E-Bits selection◦ Two problems
E-Bits choosing Length optimization
◦ Solutions Judging Function(J-Function) Performance Function(P-Function)
11
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
12
P-Function◦ To decide the number of E-Bits.
to optimize the length of . M-Vector
13
2. M-Vector generation◦Built with the process of E-Bits choosing and length
optimization Fast-Growth Intelli-Swap(I-Swap)
14
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].
15
16
Classification Phase
V
H
T
17
Complexity Analysis◦ ruleset R consists of N rules, and n E-Bits are selected.◦ Time complexity is ◦ Storage complexity is
18
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,
19
IA based Implementation
Evaluation
20
◦Memory storage usage
21
◦ Scalability The ratio of Memory Per Rule (MPR)
22
Multi-core NP Implementation◦Cavium OCTEON CN5860, ACL10K
23
FPGA based Implementation◦Xilinx Virte-5 FPGA(XC5VSX240T), 2048 Kb of Block RAM
24