1 memory-efficient 5d packet classification at 40 gbps authors: ioannis papaefstathiou, and vassilis...

Post on 20-Dec-2015

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Memory-Efficient 5D Packet Classification At 40 Gbps

Authors: Ioannis Papaefstathiou, and Vassilis Papaefstathiou

Publisher: IEEE INFOCOM 2007

Presenter: Yu-Tso Chen

Date: July, 09, 2008

2

Outline

• Introduction

• BSPC Design

• Simulation Results

3

Introduction

• Should support the current state-of-art networking speeds – (i.e. OC-768 at 40Gpbs)– Should not be prohibitively expensive

• Decomposing multi-field classification rules into internal single-field rules– Combined using multi-level Bloom filters

• B2PC uses the BOS single field searching scheme[11]

4

BSPC Design

• Observations– Filter sets’ sizes are small

• Ranging from tens of filters to less than 5000

– Protocol field is restricted to a small set of values• TCP, UDP, and commonly used wildcards (covering

more 95%)

– Filter specify a limited number of unique transport port range

5

BSPC Design

• Observations (cont.)– The number of single field filters matching a given

packet is typically five or less– The number of single field values is significantly

less than the number of overall filters

6

Overall Architecture of B2PC

TableII type

12bit flowID

BLH1-4

HSH_TBLindex

IP_BLH1-2

PR_BLH1-2

TreeBitmap 256-entry directly index

7

Hash Function

BLH1 = (SIP>>4) xor REV(DIP>>2) xor (SPO<<4) xor(DPO>>3) xor (PRO<<3)BLH2 = SIP xor (DIP<<6) xor (SPO>>2) xor REV(DPO) xor PROBLH3 = (SIP<<3) xor REV(DIP) xor REV(SPO) xorDPO xor (PRO<<6)BLH4 = REV(SIP) xor (DIP<<3) xor (SPO>>3) xor(DPO<<1) xor (PRO>>2)

HSH_TBLindex = (BLH1,00) xor (00,BLH2>>4) xor(00,BLH3) xor (00,REV(BLH4))

IP_BLH1 = { SIP(6:11) xor DIP(0:5) , SIP(0:5) xor DIP(6:11) }IP_BLH2 = { SIP(0:5) xor DIP(6:11) , SIP(6:11) xor DIP(0:5) }PR_BLH1 = SPO xor (DPO<<2)PR_BLH2 = (SPO<<2) xor REV(DPO)

8

Internally Represented Filters

• In order to reduce the memory we take advantage of the fact that many rules share the same field values.

• Side-effect of ID sharing scheme is that a certain internal-ID cannot be deleted unless all the rules employing it are deleted.– Keep a reference count for each internal ID– We need 4K 12-bit counters for each field– Total we need 5 x 4096 12-bit counters

9

Example Filter Set

10

Internal Representation of The Example Filter Set

11

Combining Results

• Number of matching prefixes and the associated IDs– Prefix-based at most 33 matches each– Port fields may provide at most 17 matches– Protocol at most 2 matches

• Match on the value itself or the wildcard

12

Incoming Packet Header Fields

Decreasing length order

Real-world less than five

Totalperm= 3*2*1*3*2 = 36

13

Set Membership Queries with Bloom Filters

• How to identify that a permutation belongs to the given set of rules– Sequential access to the rule table is slow

– Efficiently represent a given ruleset and support quick set membership queries is need

• The main advantage of Bloom Filters– Easily be implemented in hardware while supporting set-m

embership queries at high rates

• Disadvantage of bloom filters– False-positive error

14

Set Membership Queries with Bloom Filters (cont.)

• Parameters of bloom filters– Bit vector is 214 bits wide– The optimal number of hashing functions that set

this vector is 4– Theoretical false positive probability of 6.2%

• Efficiently support incremental updates– Counting Bloom Filters

15

Flow ID Resolving

• A match in a set-membership query we should first determine whether it is a false positive

• To locate the FlowID we use HSH_TBL of 16k entries

• Have the FlowID we access the RULE_TBL, and compare the stored IDs with the IDs of the current permutation– All IDs match, we have found the final result

16

Improving the Efficiency of Set Membership Query

• To avoid these useless queries we have used two additional Bloom Filters

• If they both provide a match then we query the “Main” Bloom Filter

17

Parallel Bloom Filter Queries

18

Number of References in Bloom Filters

19

Observed False Positives Rate

20

Hash Table Collisions (HSH_TBLindex)

21

B2PC Components Memory Requirements

36-bit wide memory word

22

Total Number of Average Memory Accesses in B2PC

23

Worst Case Network Performance of B2PC (40 Bytes packets)

24

Summary of Classification Schemes

25

Bloom Filter

26

Mask

27

Number of Memory Access in P2BC Data Structures

28

B2PC Silicon Cost

top related