+ All Categories
Home > Documents > Tuple pruning using bloom filters for packet classification

Tuple pruning using bloom filters for packet classification

Date post: 01-Jan-2016
Category:
Upload: wendy-rivers
View: 26 times
Download: 3 times
Share this document with a friend
Description:
Tuple pruning using bloom filters for packet classification. Publisher : IEEE MICRO Author : Hyesook Lim , So Yeon Kim Presenter : Yu-Hsiang Wang Date : 2010/09/29. Outline. Introduction Background : tuple space pruning (TSP) TSP using bloom filter Performance evaluation. - PowerPoint PPT Presentation
Popular Tags:
13
Tuple pruning using Tuple pruning using bloom filters bloom filters for packet for packet classification classification Publisher : IEEE MICRO Author : Hyesook Lim , So Yeon Kim Presenter : Yu-Hsiang Wang Date : 2010/09/29
Transcript
Page 1: Tuple pruning using bloom filters for packet classification

Tuple pruning using bloom Tuple pruning using bloom filtersfiltersfor packet classificationfor packet classification

Publisher : IEEE MICRO Author : Hyesook Lim , So Yeon KimPresenter : Yu-Hsiang WangDate : 2010/09/29

Page 2: Tuple pruning using bloom filters for packet classification

OutlineOutlineIntroductionBackground : tuple space pruning

(TSP)TSP using bloom filterPerformance evaluation

Page 3: Tuple pruning using bloom filters for packet classification

IntroductionIntroductionMany packet classification algorithms, such

as tuple space pruning, perform a separate lookup on each field to narrow the search space.

These algorithms cause off-chip memory accesses for both the individual field lookups and the final combined lookup.

replace with on-chip Bloom filters to reduce unnecessary off-chip memory accesses

Page 4: Tuple pruning using bloom filters for packet classification

Background (TSP 1/2)Background (TSP 1/2)

Rule tuple

R1 (00*, 00*)

(2 , 2)

R2 (0* , 01*)

(1 , 2)

R3 (1* , 0* )

(1 , 1)

R4 (00*, 0* )

(2 , 1)

R5 (0* ,1* )

(1 , 1)

R6 (* ,1* )

(0 , 1)

Tuple space : simple rule classificationTuple space index : source / destination

prefix length

Tuple Entries

(0 , 1) R6

(1 , 1) R3,R5

(1 , 2) R2

(2 , 1) R4

(2 , 2) R1

T(0,0)

T(0,1)R6

T(0,2)

T(0,3)

T(1,0)

T(1,1)R3,R5

T(1,2)R2

T(1,3)

T(2,0)

T(2,1)R4

T(2,2)R1

T(2,3)

T(3,0)

T(3,1)

T(3,2)

T(3,3)

Regard as a 2-dimension space

Page 5: Tuple pruning using bloom filters for packet classification

Background (TSP 2/2)Background (TSP 2/2)Pruning table : distinct source/destination prefixes

R1 (00* ,* ) T(2,0)

R2 (1* ,00* ) T(1,2)

R3 (01* , 100*) T(2,3)

R4 (101* ,100* ) T(3,3)

R5 (101* ,11* ) T(3,2)

R6 (1* , * ) T(1,0)

Incoming packet (0100,1001)

Dimension 1 lookup : T(2,3) Dimension 2 lookup : T(1,0), T(2,0) ,T(2,3), T(3,3)intersected tuples : T(2,3)

Pruning tableDimension1 Dimension2

00* T(2,0)

* T(1,0)T(2,0)

1* T(1,0)T(1,2)

00* T(1,2)

01* T(2,3)

100* T(2,3)T(3,3)

101* T(3,2)T(3,3)

11* T(1,3)

Page 6: Tuple pruning using bloom filters for packet classification

TSP using bloom filter TSP using bloom filter (1/5)(1/5)Replace pruning table (off chip) with

bloom filters(on chip).Tuple bloom filters for tuple

Bloom filter

Page 7: Tuple pruning using bloom filters for packet classification

TSP using bloom filter TSP using bloom filter (2/5)(2/5) 3 bloom filters with cyclic redundancy check(CRC) –8

generator Pt : rule set composed of source and destination prefix

pairs.

Pt = { R1(00* ,*) , R2(1*,00*) , R3(01*,100*) , R4 (101*,100*) ,

R5 (101*,11*) , R6 (1*, *) } Pruning sets : distinct source/destination prefixes

P1 = { 00* , 1* ,01* ,101* } , P2 = { * ,00* ,100* ,11* }

Record distinct lengths : Lt = { (2,0) , (1,2) , (2,3) , (3,3) , (3,2) , (1,0) }

L1 = { 1 , 2 , 3 }

L2 = { 0 , 2 , 3 }

Page 8: Tuple pruning using bloom filters for packet classification

TSP using bloom filter TSP using bloom filter (3/5)(3/5)

Prefix -> CRC-8 generator -> CRC code Choose indices from CRC code -> Set the correspond

bits to 1

CRC-8 GENERATOR11111100 at initial

00 00111111

1,7

Source bloom filter

Page 9: Tuple pruning using bloom filters for packet classification

TSP using bloom filter TSP using bloom filter (4/5)(4/5)

Hash table entry

Page 10: Tuple pruning using bloom filters for packet classification

TSP using bloom filter TSP using bloom filter (5/5)(5/5)Incoming packet (0100 ,1001)

Dimension 1 lookup : { * , 0* , 01*, 010* ,0100} L1={ 1 , 2 , 3 }

Dimension 2 lookup : { * , 1* , 10*, 100* ,1001} L2= { 0 , 2 , 3 }

Intersected list : { (2,0) , (2,2) , (2,3) , (3,0) , (3,2) , (3,3) }

Lt { (2,0) , (1,2) , (2,3) , (3,3) , (3,2) , (1,0) }

Page 11: Tuple pruning using bloom filters for packet classification

Performance evaluationPerformance evaluation : smallest multiple of 2 which is equal to or greater than n(P)

Source, destination filter size are increased by a factor. 4 , 8 ,16, 32 [n(P1)], 4, 8 ,16, 32 [n(P2)] , tuple filter size is fixed at 4[n(Pt)]

Page 12: Tuple pruning using bloom filters for packet classification

Performance evaluationPerformance evaluation Source, destination filter size are fixed at 4[n(P1)], 4[n(P2)] ,

tuple filter size is increased by a factor . 1,2,….,32[n(Pt)]

The simulation result in using bloom filters with sizes 8[n(P1)], 8[n(P2)],8[n(Pt)] in performance.

Page 13: Tuple pruning using bloom filters for packet classification

Performance evaluationPerformance evaluation

Average 7~40 memory accesses per packet, each take 20 nanoseconds.

=>140~800ns per packet =>1.25~7.14 million packets per second


Recommended