1 / 24

Practical Multi-tuple Packet Classification using Dynamic Discrete Bit Selection

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

scott
Download Presentation

Practical Multi-tuple Packet Classification using Dynamic Discrete Bit Selection

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Outline • Introduction • Related Work • Algorithm • Evaluation

  3. 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

  4. Related Work • Two major types of packet classification algorithm • Searching space partition • partition the searching space into smaller subspaces • Ex. RFC, HSM

  5. Ruleset partition • cut the large ruleset into smaller ones • Ex. HiCuts, HyperCuts

  6. Algorithm • Utilize dynamic heuristics to split the ruleset efficiently • Combine different data structures to optimize both time and space performance

  7. 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.

  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. Classification Phase H V T

  16. Complexity Analysis • rulesetR consists of N rules, and n E-Bits are selected. • Time complexity is • Storage complexity is

  17. 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,

  18. Evaluation • IA based Implementation

  19. Memory storage usage

  20. Scalability • The ratio of Memory Per Rule (MPR)

  21. Multi-core NP Implementation • Cavium OCTEON CN5860, ACL10K

  22. FPGA based Implementation • Xilinx Virte-5 FPGA(XC5VSX240T), 2048 Kb of Block RAM

More Related