Yotam Harchol The Hebrew University of Jerusalem, Israel

Slides:



Advertisements
Similar presentations
Liron Schiff * (TAU) Joint work with Yehuda Afek, Anat Bremler-Barr (TAU) (IDC) Recursive Design of Hardware Priority Queues Supported by European Research.
Advertisements

Compressing Forwarding Tables Ori Rottenstreich (Technion, Israel) Joint work with Marat Radan, Yuval Cassuto, Isaac Keslassy (Technion, Israel) Carmi.
A Search Memory Substrate for High Throughput and Low Power Packet Processing Sangyeun Cho, Michel Hanna and Rami Melhem Dept. of Computer Science University.
A Scalable and Reconfigurable Search Memory Substrate for High Throughput Packet Processing Sangyeun Cho and Rami Melhem Dept. of Computer Science University.
Fast Firewall Implementation for Software and Hardware-based Routers Lili Qiu, Microsoft Research George Varghese, UCSD Subhash Suri, UCSB 9 th International.
Bio Michel Hanna M.S. in E.E., Cairo University, Egypt B.S. in E.E., Cairo University at Fayoum, Egypt Currently is a Ph.D. Student in Computer Engineering.
Searching on Multi-Dimensional Data
Outline Introduction Related work on packet classification Grouper Performance Empirical Evaluation Conclusions.
A Ternary Unification Framework for Optimizing TCAM-Based Packet Classification Systems Author: Eric Norige, Alex X. Liu, and Eric Torng Publisher: ANCS.
1 TCAM Razor: A Systematic Approach Towards Minimizing Packet Classifiers in TCAMs Department of Computer Science and Information Engineering National.
On the Code Length of TCAM Coding Schemes Ori Rottenstreich (Technion, Israel) Joint work with Isaac Keslassy (Technion, Israel) 1.
Efficient Multi-match Packet Classification with TCAM Fang Yu Randy H. Katz EECS Department, UC Berkeley {fyu,
Worst-Case TCAM Rule Expansion Ori Rottenstreich (Technion, Israel) Joint work with Isaac Keslassy (Technion, Israel)
1 Energy Efficient Multi-match Packet Classification with TCAM Fang Yu
Efficient Multidimensional Packet Classification with Fast Updates Author: Yeim-Kuan Chang Publisher: IEEE TRANSACTIONS ON COMPUTERS, VOL. 58, NO. 4, APRIL.
Performance Evaluation of IPv6 Packet Classification with Caching Author: Kai-Yuan Ho, Yaw-Chung Chen Publisher: ChinaCom 2008 Presenter: Chen-Yu Chaug.
Efficient Multi-Match Packet Classification with TCAM Fang Yu
Study of IP address lookup Schemes
張 燕 光 資訊工程學系 Dept. of Computer Science & Information Engineering,
PEDS: Parallel Error Detection Scheme for TCAM Devices David Hay, Politecnico di Torino Joint work with Anat Bremler Barr (IDC), Danny Hendler (BGU) and.
Two stage packet classification using most specific filter matching and transport level sharing Authors: M.E. Kounavis *,A. Kumar,R. Yavatkar,H. Vin Presenter:
SSA: A Power and Memory Efficient Scheme to Multi-Match Packet Classification Fang Yu 1 T. V. Lakshman 2 Martin Austin Motoyama 1 Randy H. Katz 1 1 EECS.
Algorithms for Advanced Packet Classification with TCAMs Karthik Lakshminarayanan UC Berkeley Joint work with Anand Rangarajan and Srinivasan Venkatachary.
A High Throughput String Matching Architecture for Intrusion Detection and Prevention Lin Tan U of Illinois, Urbana Champaign Tim Sherwood UC, Santa Barbara.
Worst-Case TCAM Rule Expansion Ori Rottenstreich (Technion, Israel) Joint work with Isaac Keslassy (Technion, Israel)
Existing Range Encoding Schemes Presenter: Kai-Yang, Liu Date: 2011/11/23.
1 Efficient packet classification using TCAMs Authors: Derek Pao, Yiu Keung Li and Peng Zhou Publisher: Computer Networks 2006 Present: Chen-Yu Lin Date:
ECE 526 – Network Processing Systems Design Network Processor Architecture and Scalability Chapter 13,14: D. E. Comer.
PEDS: Parallel Error Detection Scheme for TCAM Devices David Hay, Politecnico di Torino Joint work with Anat Bremler Barr (IDC, Israel), Danny Hendler.
CoPTUA: Consistent Policy Table Update Algorithm for TCAM without Locking Zhijun Wang, Hao Che, Mohan Kumar, Senior Member, IEEE, and Sajal K. Das.
Layered Interval Codes for TCAM-based Classification David Hay, Politecnico di Torino Joint work with Anat Bremler-Barr (IDC), Danny Hendler (BGU) and.
Timothy Whelan Supervisor: Mr Barry Irwin Security and Networks Research Group Department of Computer Science Rhodes University Hardware based packet filtering.
ORange: Multi Field OpenFlow based Range Classifier Liron Schiff Tel Aviv University Yehuda Afek Tel Aviv University Anat Bremler-Barr Inter Disciplinary.
Wire Speed Packet Classification Without TCAMs ACM SIGMETRICS 2007 Qunfeng Dong (University of Wisconsin-Madison) Suman Banerjee (University of Wisconsin-Madison)
Packet Classifiers In Ternary CAMs Can Be Smaller Qunfeng Dong (University of Wisconsin-Madison) Suman Banerjee (University of Wisconsin-Madison) Jia Wang.
Palette: Distributing Tables in Software-Defined Networks Yossi Kanizo (Technion, Israel) Joint work with Isaac Keslassy (Technion, Israel) and David Hay.
Multi-Field Range Encoding for Packet Classification in TCAM Author: Yeim-Kuan Chang, Chun-I Lee and Cheng-Chien Su Publisher: INFOCOM 2011 Presenter:
Applied Research Laboratory Edward W. Spitznagel 24 October Packet Classification using Extended TCAMs Edward W. Spitznagel, Jonathan S. Turner,
1. Outline Introduction Related work on packet classification Grouper Performance Analysis Empirical Evaluation Conclusions 2/42.
1 Space-Efficient TCAM-based Classification Using Gray Coding Anat Bremler – Barr Interdisciplianry Center Danny Hendler Ben-Gurion University Infocom.
On Finding an Optimal TCAM Encoding Scheme for Packet Classification Ori Rottenstreich (Technion, Israel) Joint work with Isaac Keslassy (Technion, Israel)
1 Power-Efficient TCAM Partitioning for IP Lookups with Incremental Updates Author: Yeim-Kuan Chang Publisher: ICOIN 2005 Presenter: Po Ting Huang Date:
A Smart Pre-Classifier to Reduce Power Consumption of TCAMs for Multi-dimensional Packet Classification Yadi Ma, Suman Banerjee University of Wisconsin-Madison.
CS 740: Advanced Computer Networks IP Lookup and classification Supplemental material 02/05/2007.
A Scalable Architecture For High-Throughput Regular-Expression Pattern Matching Yao Song 11/05/2015.
1 Bit Weaving: A Non-Prefix Approach to Compressing Packet Classifiers in TCAMs Author: Chad R. Meiners, Alex X. Liu, and Eric Torng Publisher: IEEE/ACM.
Packet Classification Using Multidimensional Cutting Sumeet Singh (UCSD) Florin Baboescu (UCSD) George Varghese (UCSD) Jia Wang (AT&T Labs-Research) Reviewed.
1 Space-Efficient TCAM-based Classification Using Gray Coding Authors: Anat Bremler-Barr and Danny Hendler Publisher: IEEE INFOCOM 2007 Present: Chen-Yu.
Hierarchical packet classification using a Bloom filter and rule-priority tries Source : Computer Communications Authors : A. G. Alagu Priya 、 Hyesook.
DRES: Dynamic Range Encoding Scheme for TCAM Coprocessors 2008 YU-ANTL Lab Seminar June 11, 2008 JeongKi Park Advanced Networking Technology Lab. (YU-ANTL)
BUFFALO: Bloom Filter Forwarding Architecture for Large Organizations Minlan Yu Princeton University Joint work with Alex Fabrikant,
Scalable Multi-match Packet Classification Using TCAM and SRAM Author: Yu-Chieh Cheng, Pi-Chung Wang Publisher: IEEE Transactions on Computers (2015) Presenter:
Author Name Security and Networks Research Group Department of Computer Science Rhodes University SNRG SLIDE TEMPLATE.
Classifier Representation in LCS
Tries 07/28/16 11:04 Text Compression
The Variable-Increment Counting Bloom Filter
Alternative Representations for Artificial Immune Systems
Toward Advocacy-Free Evaluation of Packet Classification Algorithms
Load Balancing Memcached Traffic Using SDN
Transport Layer Systems Packet Classification
Implementing an OpenFlow Switch on the NetFPGA platform
Fast Reroute in P4: Keep Calm and Enjoy Programmability
Packet Classification Using Coarse-Grained Tuple Spaces
EE 122: Lecture 7 Ion Stoica September 18, 2001.
Scalable Multi-Match Packet Classification Using TCAM and SRAM
High-performance router/switch architecture 高效能路由器/交換器的 架構與設計
Yotam Harchol The Hebrew University of Jerusalem, Israel
Worst-Case TCAM Rule Expansion
Authors: Ding-Yuan Lee, Ching-Che Wang, An-Yeu Wu Publisher: 2019 VLSI
Packet Classification Using Binary Content Addressable Memory
Presentation transcript:

Encoding Short Ranges in TCAM Without Expansion: Efficient Algorithm and Applications Yotam Harchol The Hebrew University of Jerusalem, Israel Joint work with: Anat Bremler-Barr David Hay Yacov Hel-Or IDC Herzliya, Israel Hebrew University, ACM SPAA 2016 This research was supported by the European Research Council under the European Union’s Seventh Framework Programme (FP7/2007-2013)/ERC Grant agreement no 259085.

TCAM – Ternary Content Addressable Memory TCAM is an associative memory module Useful for parallel multidimensional prefix lookup Each entry may consist of 0, 1, and * bits Widely used in high-speed networking devices What about ranges? (e.g., port numbers) Example: 2-dimensional IP lookup: Source IP Dest. IP P1 P2 Drop P3 SRAM 011101001110001011 00110****110001*** 0111*****1100010** 00*******110****** 01*******11000**** TCAM 1 2 3 4 5

Range Encoding in Binary Representation Can ternary encode only certain intervals Or we need more than one entry (expansion) Exponential space blow-up when using multiple range fields 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 00** 011* 100* 0*** 01** ???? ???? 0101 011* 100* 1010

Encoding Short Ranges Ranges of arbitrary length – infeasible without expansion Ranges with bounded length – feasible! Useful for: Short TCP/UDP ranges (>60% of the ranges in real life) QoS mechanisms (IP ToS/DSCP) Packet size classification (by categories) Timestamps and counters IP spoofing detection (using IP TTL) SDX – AS numbering Also useful for applications outside the networking domain

Range Encoding on TCAM: Two Approaches Database-independent encoding: [Lakshminarayanan et al., 2005; Bremler Barr et al., 2007] fenc([x, y]) = *1**1001**10 **1*10**101* *1**100***1* Easy to update Lower bound for w-bits field without expansion: 2w-1 bits per range [Lakshminarayanan et al., 2005] Database-dependent encoding: [Liu, 2002; Van Lunteren & Engbersen, 2003; Chang & Su, 2007; Che et al., 2008; Bremler Barr et al., 2009; Rottenstreich & Keslassy, 2010; Rottenstreich et al., 2013; Kogan et al., 2014] DB fenc( , [x, y]) = *1**100*10 **1*10*01* Compact codes Both schemes require expansion for a feasible code length

RENÉ – Range Encoding with No Expansion Encoding function for short ranges: fenc([x, y]) = *1**1001**10 Database independent - easy to update No row expansion Near-optimal TCAM space usage Useful for packet classification applications Useful for high dimensional nearest neighbor search

Binary-Reflected Gray Code (BRGC) Build recursively by reflecting binary code: 1 0000 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000 1 000 001 2 011 3 010 4 110 5 111 6 101 7 100 1 00 01 2 11 3 10 1 Hamming distance between each two adjacent points = 1

Range Encoding with Binary-Reflected Gray Code With ternary BRGC we can encode some of the ranges of length h=2k (k∈N) What about other (red) ranges? 00** 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000 01** 11** 10** 0*1* *10* 1*1* *00* *00**

Layers Layer: a set of disjoint consecutive ranges Two (blue) layers can be encoded with a BRGC-based ternary word Other (red) layers need more bits Wait with the k-1 bits. Not here. Also don’t color bits in gray Not necessarily a power of 2 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000 00** 01** 11** 10** 0*1* *10* 1*1* *00* *00**

Cover Ranges Cover range of R: the smallest blue range that fully contains R In red layers: No two consecutive ranges in the same layer are fully contained in a cover range Given the cover range, one bit is enough to differentiate ranges in the same layer Take a red interval from previous slide with its extra bit Show it’s the only one with this bit value in the cover 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000 R 1 0*** cover(R)

Single Bit Range Index Red ranges require different encoding Add one bit for each red layer Bit value alternates between ranges in the same layer Bits of other red layers are set to * For blue layers, these bits are always * Only one red layer and one bit One bit is enough because I know where I am to some extent 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000 ** 0* 1* 0* 1* ** *1 *0 *1 *0

Encoding Scheme for Ranges Encoding of a single range of length h=2k is: Value encoding is now: Blue ranges: BRGC(R) Red ranges: BRGC(cover(R)) Ternary BRGC Bit of L1 . . . Lh/2-1 w bits h-2 bits Lh-1 Lh/2+1 BRGC Bit of L1 . . . Lh/2-1 w bits h-2 bits Lh-1 Lh/2+1

Toy Example

Optimization For ranges of length h=2k k-1 LSBs of the BRGC part are always * Code can be shorten to w-log(h)+h-1 bits 0000|00 1 0001|10 2 0011|10 3 0010|11 4 0110|11 5 0111|01 6 0101|01 7 0100|00 8 1100|00 9 1101|10 10 1111|10 11 1110|11 12 1010|11 13 1011|01 14 1001|01 15 1000|00 00**|** 01**|** 11**|** 10**|** 0***|1* *1**|0* 1***|1* *0**|0* 0*1*|** *10*|** 1*1*|** *00*|** 0***|*1 *1**|*0 1***|*1 *0**|*0 0000|00 1 0001|10 2 0011|10 3 0010|11 4 0110|11 5 0111|01 6 0101|01 7 0100|00 8 1100|00 9 1101|10 10 1111|10 11 1110|11 12 1010|11 13 1011|01 14 1001|01 15 1000|00 00**|** 01**|** 11**|** 10**|** 0***|1* *1**|0* 1***|1* *0**|0* 0*1*|** *10*|** 1*1*|** *00*|** 0***|*1 *1**|*0 1***|*1 *0**|*0

Encoding Multiple Range Lengths For ranges of length 3, intersect two ranges of length 4: 00*|** 000|00 1 000|10 2 001|10 3 001|11 4 011|11 5 011|01 6 010|01 7 010|00 8 110|00 9 110|10 10 111|10 11 111|11 12 101|11 13 101|01 14 100|01 15 100|00 01*|** 11*|** 10*|** 0**|1* *1*|0* 1**|1* 0*1|** *10|** 1*1|** 0**|*1 *1*|*0 1**|*1 *0*|0* *00|** *0*|*0 We present the conjunction operator Π: For two ranges R1, R2: tcode(v) ≈ tcode(R1) Π tcode(R2) if and only if v∈R1 ∩ R2 (also: tcode(R1) Π tcode(R2) = ⊥  R1 ∩ R2 = ∅) (⊥ means ‘undefined’, and if ai Π bi = ⊥ then a Π b = ⊥) Remove gray bits away 4 7 01*|** 5 8 *1*|0* 5 7 01*|** Π *1*|0* = 01*|0*

TCAM bits used per range field Theoretical Bound TCAM bits used per range field (log2 scale) Maximal range length (log2 scale) For w=16

The Nearest Neighbor Search Problem Input: - A set of data points - A query point (or a series of those) (points are in a discrete space) Output: Data point closest to the query point The Curse of Dimensionality: Hard problem for high dimensions (even over 10 or so)

The Nearest Neighbor Search Problem Encode cubes on data points Given a query point, single TCAM lookup returns the smallest cube that contains it No TCAM entry expansion in high dimension Add legend Bullets Data Query

The Nearest Neighbor Search Problem Or instead, save TCAM space Encode cubes on the query point Query TCAM with growing cubes Find first data point to match Goal – small space expansion, one TCAM lookup OR Multiple queries, less entries Data Query

Experiment on a Real TCAM Currently - no evaluation board for TCAM Instead, we used a commodity network switch with a TCAM Switch has 48 ports of 1Gbps each (1.5 Million packet per second) TCAM is 192 bits wide First cut the ternary string into dimensions Then ignore it and cut by header fields d-Dimensional Cube Representation: 00*1**001***011***01*1**00*1**00*1**00****0***1*0****1 1st dimension Src. MAC 2nd dimension Dest. MAC 3rd dimension Src. IP 4th dimension 5th dimension Dest. IP 6th dimension 7th dimension OpenFlow flow_mod Single port: 1.5 Million Queries Per Second! Queries as packets OpenFlow Counters

fenc([x, y]) = Conclusions Encoding function for short ranges: *1**1001**10 Database independent - easy to update No row expansion Near-optimal TCAM space usage Useful for packet classification applications Useful for high dimensional nearest neighbor search

Questions? Thank you.