張 燕 光 資訊工程學系 Dept. of Computer Science & Information Engineering,

Slides:



Advertisements
Similar presentations
IP Router Architectures. Outline Basic IP Router Functionalities IP Router Architectures.
Advertisements

A Search Memory Substrate for High Throughput and Low Power Packet Processing Sangyeun Cho, Michel Hanna and Rami Melhem Dept. of Computer Science University.
August 17, 2000 Hot Interconnects 8 Devavrat Shah and Pankaj Gupta
Router/Classifier/Firewall Tables Set of rules—(F,A)  F is a filter Source and destination addresses. Port number and protocol. Time of day.  A is an.
Internet Routers
1 IP-Lookup and Packet Classification Advanced Algorithms & Data Structures Lecture Theme 08 – Part I Prof. Dr. Th. Ottmann Summer Semester 2006.
A Scalable and Reconfigurable Search Memory Substrate for High Throughput Packet Processing Sangyeun Cho and Rami Melhem Dept. of Computer Science University.
Network Algorithms, Lecture 4: Longest Matching Prefix Lookups George Varghese.
An On-Chip IP Address Lookup Algorithm Author: Xuehong Sun and Yiqiang Q. Zhao Publisher: IEEE TRANSACTIONS ON COMPUTERS, 2005 Presenter: Yu Hao, Tseng.
1 An Efficient, Hardware-based Multi-Hash Scheme for High Speed IP Lookup Hot Interconnects 2008 Socrates Demetriades, Michel Hanna, Sangyeun Cho and Rami.
© 2009 Cisco Systems, Inc. All rights reserved. SWITCH v1.0—4-1 Implementing Inter-VLAN Routing Deploying Multilayer Switching with Cisco Express Forwarding.
M. Waldvogel, G. Varghese, J. Turner, B. Plattner Presenter: Shulin You UNIVERSITY OF MASSACHUSETTS, AMHERST – Department of Electrical and Computer Engineering.
IP Routing Lookups Scalable High Speed IP Routing Lookups.
Digital Search Trees & Binary Tries Analog of radix sort to searching. Keys are binary bit strings.  Fixed length – 0110, 0010, 1010,  Variable.
IP Address Lookup for Internet Routers Using Balanced Binary Search with Prefix Vector Author: Hyesook Lim, Hyeong-gee Kim, Changhoon Publisher: IEEE TRANSACTIONS.
Power Efficient IP Lookup with Supernode Caching Lu Peng, Wencheng Lu*, and Lide Duan Dept. of Electrical & Computer Engineering Louisiana State University.
CSIE NCKU High-performance router architecture 高效能路由器的架構與設計.
Efficient IP-Address Lookup with a Shared Forwarding Table for Multiple Virtual Routers Author: Jing Fu, Jennifer Rexford Publisher: ACM CoNEXT 2008 Presenter:
Scalable IPv6 Lookup/Update Design for High-Throughput Routers Authors: Chung-Ho Chen, Chao-Hsien Hsu, Chen -Chieh Wang Presenter: Yi-Sheng, Lin ( 林意勝.
CS 268: Lectures 13/14 (Route Lookup and Packet Classification) Ion Stoica April 1/3, 2002.
Efficient Multidimensional Packet Classification with Fast Updates Author: Yeim-Kuan Chang Publisher: IEEE TRANSACTIONS ON COMPUTERS, VOL. 58, NO. 4, APRIL.
1 Geometric Solutions for the IP-Lookup and Packet Classification Problem (Lecture 12: The IP-LookUp & Packet Classification Problem, Part II) Advanced.
1 A Fast IP Lookup Scheme for Longest-Matching Prefix Authors: Lih-Chyau Wuu, Shou-Yu Pin Reporter: Chen-Nien Tsai.
Two stage packet classification using most specific filter matching and transport level sharing Authors: M.E. Kounavis *,A. Kumar,R. Yavatkar,H. Vin Presenter:
Basic Data Structures for IP lookups and Packet Classification
IP-Lookup and Packet Classification Computational Geometry, WS 2007/08 Lecture 14 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für.
Fast binary and multiway prefix searches for pachet forwarding Author: Yeim-Kuan Chang Publisher: COMPUTER NETWORKS, Volume 51, Issue 3, pp , February.
Address Lookup in IP Routers. 2 Routing Table Lookup Routing Decision Forwarding Decision Forwarding Decision Routing Table Routing Table Routing Table.
1 Efficient packet classification using TCAMs Authors: Derek Pao, Yiu Keung Li and Peng Zhou Publisher: Computer Networks 2006 Present: Chen-Yu Lin Date:
Courtesy: Nick McKeown, Stanford More on IP and Packet Forwarding Tahir Azim.
PARALLEL TABLE LOOKUP FOR NEXT GENERATION INTERNET
Packet Classification Using Multi-Iteration RFC Author: Chun-Hui Tsai, Hung-Mao Chu, Pi-Chung Wang Publisher: COMPSACW, 2013 IEEE 37th Annual (Computer.
LayeredTrees: Most Specific Prefix based Pipelined Design for On-Chip IP Address Lookups Author: Yeim-Kuau Chang, Fang-Chen Kuo, Han-Jhen Guo and Cheng-Chien.
Multi-Field Range Encoding for Packet Classification in TCAM Author: Yeim-Kuan Chang, Chun-I Lee and Cheng-Chien Su Publisher: INFOCOM 2011 Presenter:
Compact Trie Forest: Scalable architecture for IP Lookup on FPGAs Author: O˘guzhan Erdem, Aydin Carus and Hoang Le Publisher: ReConFig 2012 Presenter:
IP Address Lookup Masoud Sabaei Assistant professor
1 Power-Efficient TCAM Partitioning for IP Lookups with Incremental Updates Author: Yeim-Kuan Chang Publisher: ICOIN 2005 Presenter: Po Ting Huang Date:
1 Fast packet classification for two-dimensional conflict-free filters Department of Computer Science and Information Engineering National Cheng Kung University,
Memory-Efficient IPv4/v6 Lookup on FPGAs Using Distance-Bounded Path Compression Author: Hoang Le, Weirong Jiang and Viktor K. Prasanna Publisher: IEEE.
CS 740: Advanced Computer Networks IP Lookup and classification Supplemental material 02/05/2007.
Author: Haoyu Song, Murali Kodialam, Fang Hao and T.V. Lakshman Publisher/Conf. : IEEE International Conference on Network Protocols (ICNP), 2009 Speaker:
Memory-Efficient and Scalable Virtual Routers Using FPGA Department of Computer Science and Information Engineering, National Cheng Kung University, Tainan,
Updating Designed for Fast IP Lookup Author : Natasa Maksic, Zoran Chicha and Aleksandra Smiljani´c Conference: IEEE High Performance Switching and Routing.
1 A quick tutorial on IP Router design Optics and Routing Seminar October 10 th, 2000 Nick McKeown
Parallel tree search: An algorithmic approach for multi- field packet classification Authors: Derek Pao and Cutson Liu. Publisher: Computer communications.
Packet Switch Architectures The following are (sometimes modified and rearranged slides) from an ACM Sigcomm 99 Tutorial by Nick McKeown and Balaji Prabhakar,
Packet Classification Using Multidimensional Cutting Sumeet Singh (UCSD) Florin Baboescu (UCSD) George Varghese (UCSD) Jia Wang (AT&T Labs-Research) Reviewed.
Packet Classification Using Dynamically Generated Decision Trees
IP Routing table compaction and sampling schemes to enhance TCAM cache performance Author: Ruirui Guo a, Jose G. Delgado-Frias Publisher: Journal of Systems.
A NOVEL LEVEL-BASED IPV6 ROUTING LOOKUP ALGORITHM Author: Xiaohong Huang, Xiaoyu Zhao, Guofeng Zhao, Wenjian Jiang, Dongqu Zheng, Qiong Sun and Yan Ma.
1 IP Routing table compaction and sampling schemes to enhance TCAM cache performance Author: Ruirui Guo, Jose G. Delgado-Frias Publisher: Journal of Systems.
1 Basic Data Structures for IP lookups and Packet Classification.
Hierarchical packet classification using a Bloom filter and rule-priority tries Source : Computer Communications Authors : A. G. Alagu Priya 、 Hyesook.
DESIGN AND IMPLEMENTATION OF DYNAMIC ROUTING TABLES Author: Yeim-Kuan Chang and Dung-Jiun Lin Publisher/Conf.: The graduation paper of CIAL master student,
SCALAR PREFIX SEARCH: A NEW ROUTE LOOKUP ALGORITHM FOR NEXT GENERATION INTERNET Author: Mohammad Behdadfar, Hossein Saidi, Hamid Alaei and Babak Samari.
1 LayeredTrees: Most Specific Prefix based Pipelined Design for On-Chip IP Address Lookups 張 燕 光 資訊工程學系 Dept. of Computer Science & Information Engineering,
Scalable Multi-match Packet Classification Using TCAM and SRAM Author: Yu-Chieh Cheng, Pi-Chung Wang Publisher: IEEE Transactions on Computers (2015) Presenter:
Exploiting Graphics Processors for High-performance IP Lookup in Software Routers Jin Zhao, Xinya Zhang, Xin Wang, Yangdong Deng, Xiaoming Fu IEEE INFOCOM.
IP Routers – internal view
2018/11/19 Source Routing with Protocol-oblivious Forwarding to Enable Efficient e-Health Data Transfer Author: Shengru Li, Daoyun Hu, Wenjian Fang and.
Parallel Processing Priority Trie-based IP Lookup Approach
Binary Prefix Search Author: Yeim-Kuan Chang
Scalable Multi-Match Packet Classification Using TCAM and SRAM
High-performance router/switch architecture 高效能路由器/交換器的 架構與設計
A Hybrid IP Lookup Architecture with Fast Updates
A SRAM-based Architecture for Trie-based IP Lookup Using FPGA
Authors: Ding-Yuan Lee, Ching-Che Wang, An-Yeu Wu Publisher: 2019 VLSI
Towards TCAM-based Scalable Virtual Routers
Packet Classification Using Binary Content Addressable Memory
Presentation transcript:

LayeredTrees: Most Specific Prefix based Pipelined Design for On-Chip IP Address Lookups 張 燕 光 資訊工程學系 Dept. of Computer Science & Information Engineering, 國立成功大學 National Cheng Kung University

Outline Introduction IP lookup review (1-D packet classification) Data structures for IP lookups Binary prefix search Layered search trees Parallel and Pipelined search engine Conclusion 成功大學資訊工程系 CIAL 實驗室

Internet: Mesh of Routers The Internet Core Edge Router Campus Area Network 成功大學資訊工程系 CIAL 實驗室

RFC 1812: Requirements for IPv4 Routers Must perform an IP datagram forwarding decision, called forwarding, routing lookup, IP lookup, longest prefix match Must send the datagram out to the appropriate interface (called switching) 成功大學資訊工程系 CIAL 實驗室

Slow-path: control plane Router Design Model Slow-path: control plane RISC processor On-Chip SRAM Ingress Egress Transmit Unit Receive Unit Search Engine Fast-path: data plane 成功大學資訊工程系 CIAL 實驗室

Unicast destination address based lookup Lookup in an IP Router HEADER Dstn Addr Forwarding Engine Next Hop Next Hop Computation Forwarding Table Dstn-prefix Next Hop ---- ---- ---- ---- Incoming Packet ---- ---- Unicast destination address based lookup 成功大學資訊工程系 CIAL 實驗室

AS 6447 BGP Table Data last updated at Wed, 23 Nov 2011 15:12:48 GMT IPv4 BGP Reports     AS131072 APNIC R&D 385,044     AS6447 Route-Views.Oregon-ix.net 396,386  IPv6 BGP Reports     AS131072 APNIC R&D 7,616     AS6447 Route-Views.Oregon-ix.net 7,581 成功大學資訊工程系 CIAL 實驗室

Routing table example 1.5.0.0/16 1.9.0.0/16 1.9.2.0/24 1.9.4.0/22 1.9.12.0/24 1.11.0.0/21 1.11.8.0/21 1.11.16.0/21 1.11.24.0/21 1.11.32.0/21 1.11.40.0/21 1.11.48.0/21 1.11.56.0/21 1.11.64.0/21 1.11.72.0/21 1.11.80.0/21 1.11.88.0/21 1.11.128.0/17 1.12.0.0/14 1.12.0.0/24 1.12.1.0/24 1.21.0.0/16 1.22.0.0/23 1.22.4.0/23 1.22.6.0/23 1.22.8.0/23 1.22.12.0/23 1.22.14.0/23 1.22.16.0/23 1.22.18.0/23 成功大學資訊工程系 CIAL 實驗室

AS6447:UOREGON-IX - University of Oregon 成功大學資訊工程系 CIAL 實驗室

Router A memory hungry search application Router speed depends on the number of memory accesses for each lookup operation, i.e., on the speed of memory IPv6 is four times wider than IPv4 addresses Negative Impact: 4 x number of memory accesses if CPU is 32 bits IPv6 routers is four times slower than IPv4 routers? Not really, but possible Pipeline design may be a good solution 成功大學資訊工程系 CIAL 實驗室

Example Forwarding Table Prefix Next-hop P1 111* H1 P2 10* H2 P3 1010* H3 P4 10101 H4 Longest prefix match(LPM), not exact match Properties: prefixes are either disjoint or enclosing (one completely covers another) Prefix enclosure makes (1) sorting prefixes and (2) binary searching prefixes difficult. So, trie based schemes emerge naturally 成功大學資訊工程系 CIAL 實驗室

Basic Data Structures for IP lookups 成功大學資訊工程系 CIAL 實驗室

Prefix properties Disjoint prefixes: Prefix enclosure: Two prefixes are said to be disjoint if they do not share any address. Prefix enclosure: A = bn-1…bj…bi* and B = bn-1…bj* and j > i. Prefix A is enclosed by B (B  A) since the IP address space covered by A is a subset of that covered by B, where  is the enclosure operator. A special case of overlapping. Prefix comparison The inequality 0 < * < 1 is used to compare two prefixes in the ternary representation of prefixes. 成功大學資訊工程系 CIAL 實驗室

Prefix properties The most specific prefixes (MSP): The prefixes that do not cover any others. Disjoint, so can be put in an array for binary search Grouping prefixes in layers based on MSP. 6-7 layers for IPv4 tables 5 4 1 2 3 4 1 2 3 3 1 2 1 2 1 成功大學資訊工程系 CIAL 實驗室

Prefix Enclosure property Database (year-month) AS6447 (2000-4) (2002-4) (2005-4) number of prefixes 79,530 124,798 163,535 Level-1 prefixes 73,891(92.9%) 114,745 (91.9%) 150,245 (91.9%) Level-2 prefixes 4,874 (6.1%) 8,496 (6.8%) 11,135 (6.8%) Level-3 prefixes 642 (0.8%) 1,290 (1%) 1,775 (1.1%) Level-4 prefixes 104 (0.1%) 235 (0.2%) 329 (0.2%) Level-5 prefixes 17 29 45 Level-6 prefixes 2 3 6 成功大學資訊工程系 CIAL 實驗室

Prefix Enclosure property Layer distribution layer 0 佔絕大部分 (90 %) → 大多數 match 在 layer 0 成功大學資訊工程系 CIAL 實驗室 16

Prefix properties Number Prefix length 成功大學資訊工程系 CIAL 實驗室

Prefix Forwarding table example Prefix Next-hop P1 111* H1 P2 10* H2 1010* H3 P4 10101 H4 P1 is disjoint from the other three prefixes. P2  P3  P4 Longest prefix match(LPM), not exact match enclosure makes (1) sorting prefixes and (2) binary searching prefixes difficult 成功大學資訊工程系 CIAL 實驗室

Example Forwarding Table Prefix Next-hop P1 111* H1 P2 10* H2 P3 1010* H3 P4 10101 H4 Longest prefix match(LPM), not exact match Prefix enclosure makes (1) sorting prefixes and (2) binary searching prefixes difficult. So, trie based schemes emerge naturally 成功大學資訊工程系 CIAL 實驗室

Prefix Length format: bn-1…b0/l (l is prefix length) In IPv4, d3.d2.d1.d0/l , 140.116.82.36/24 . Mask format: bn-1…b0/mn-1…m0 (prefix length is l) mj = 1 for all n – 1  j  n – l, and mj =0 otherwise. d3.d2.d1.d0/ m3.m2.m1.m0, 140.116.82.36/1...100000000 Ternary format: bn-1…bn-l+1*…* (prefix length is l) bj = 0 or 1 for n – 1  j  n – l. If tk is *, then tj must also be * for all j < k. A single don’t care bit can be used to denote a series of don’t care bits, e.g., 1* denotes 1**** in the 5-bit address space. 140.0.0.0/8 = 10001100* 成功大學資訊工程系 CIAL 實驗室

Prefix (n+1)-bit format: bn-1…bn-l10…0 (l is prefix len) for the prefix bn-1…bn-l* of length l in ternary format, there is one trailing ‘1’ followed by n – l 0’s. or (n+1)-bit format: bn-1…bn-l01…1 for the prefix bn-1…bn-l* of length l in ternary format, there is one trailing ‘0’ followed by n – l 1’s. 成功大學資訊工程系 CIAL 實驗室

5-bit Prefixes: bn-1…bn-l10…0 ***** 0**** 00*** 11*** 1 * * * 1 * 1 * 1 * 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6-bit binary address space 000000 is not used 成功大學資訊工程系 CIAL 實驗室

5-bit Prefixes: bn-1…bn-l01…1 ***** 0**** 00*** 11*** 1 * * * 1 * 1 * 1 * 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6-bit binary address space 111111 is not used 成功大學資訊工程系 CIAL 實驗室

Binary Trie (Radix Trie) Trie node Lookup 10111 A next-hop-ptr (if prefix) 1 B left-ptr right-ptr P1 111* H1 P2 10* H2 P3 1010* H3 P4 10101 H4 1 C Add P5=1110* I P5 D P2 1 1 F E P1 G P3 1 H P4 成功大學資訊工程系 CIAL 實驗室

Binary Trie: Leaf Pushing 111* H1 P2 10* H2 P3 1010* H3 P4 10101 H4 P5 1110 H5 P2 P2 P5 P1 Disjoint, but duplication P3 P4 成功大學資訊工程系 CIAL 實驗室

Binomial spanning tree 1110 1111 1100 2 1 0000 3 1000 0000 3 1000 2 1100 1 1110 1111 A 4-cube and its corresponding binomial spanning tree. 成功大學資訊工程系 CIAL 實驗室

Perfect code: Hamming code (7, 4) 7-cube example: 0000000 1000000 0100000 0010000 0001000 0000100 0000010 0000001 = 7-cube 24(16) one-level binomial spanning trees 成功大學資訊工程系 CIAL 實驗室

Perfect code: Hamming code (7, 4) 1 1 0 1 1 0 0 1 0 0 0 1 1 0 H7 = 0 1 0 0 1 0 1 1 0 1 1 0 1 0 G7 = 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 (a) Parity-check and generator matrices of Hamming code (7, 4). Syndrome ErrorPattern Inner product Transpose 000 0000-000 001 0000-001 010 0000-010 011 0010-000 100 0000-100 101 0100-000 110 1000-000 111 0001-000 r = received code Syndrome s = (s2 s1 s0) = r.H7T Corrected code = r + ErrorPattern[s] (c) Decoding table 成功大學資訊工程系 CIAL 實驗室

Perfect code: Hamming code (7, 4) Generate 16 Codewords: u.G7 u Codeword 0000 0000-000 0001 0001-111 0010 0010-011 0011 0011-100 0100 0100-101 0101 0101-010 0110 0110-110 0111 0111-001 1000 1000-110 1001 1001-001 1010 1010-101 1011 1011-010 1100 1100-011 1101 1101-100 1110 1110-000 1111 1111-111 7-bit address space (7-cube) 成功大學資訊工程系 CIAL 實驗室

Perfect code: Golay code (23, 12) 212 3-level binomial spanning trees C(23,0)+C(23, 1)+C(23,2)+C(23,3) = 1 + 23 + 23*22/2 +3*22*21/(3*2) = 24 + 23*11 + 23*11*7 = 24 + 253*8 = 24 + 2024 = 2048 = 211 成功大學資訊工程系 CIAL 實驗室

Ranges Why ranges? Prefixes can also be represented by ranges. The source/destination port fields of rule tables for packet classification are ranges. Prefixes are special cases of ranges. Prefix bn-1…bn-l* of length l is the range of addresses from bn-1…bn-l0…0 to bn-1…bn-l1…0, denoted as [bn-1…bn-l0…0, bn-1…bn-l1…0]. Overlapping: Two ranges are overlapping if they are not disjoint. Partially overlapping: Two ranges are partially overlapping if they are neither disjoint nor enclosing. 成功大學資訊工程系 CIAL 實驗室

Elementary Intervals for Ranges Definition: Let the set of k elementary intervals constructed from a set R of ranges in the address space of 0 … N – 1 be X = {Xi | Xi = [ei, fi], for i = 1 to k}. X must satisfy the following: e1 = 0 and fk = N – 1, fi = ei+1 – 1 for i = 1 to k – 1, all addresses in Xi are covered by the same subset of R (called the range matching set of Xi) denoted by EIi, and EIi  EIi+1, for i = 1 to k – 1. 成功大學資訊工程系 CIAL 實驗室

Elementary Intervals for Ranges Graphical view P1 [0 , 15] P2 [16, 31] P3 [4 , 7] P4 [32, 63] P5 [22, 23] P6 [48, 63] P7 [48, 51] P8 [55, 55] P9 [32, 39] EI1 {P1} X1 [0, 3] EI2 {P1,P3} X2 [4, 7] EI3 {P1} X3 [8, 15] EI4 {P2} X4 [16, 21] EI5 {P2,P5} X5 [22, 23] EI6 {P2} X6 [24, 31] P1 P2 P3 P5 EI7 {P4,P9} X7 [32, 39] EI8 {P4} X8 [40, 47] EI9 {P4,P6,P7} X9 [48, 51] EI10 {P4,P6} X10 [52, 54] EI11 {P4,P6,P8} X11 [55, 55] EI12 {P4,P6} X12 [56, 63] P4 P6 P9 P7 P8 成功大學資訊工程系 CIAL 實驗室

Elementary Intervals for Ranges ID Prefix Range Minus-1 Traditional start finish start finish P1 000000/2 [0, 15] - 15 0 15 P2 010000/2 [16, 31] 15 31 16 31 P3 000100/4 [4, 7] 3 7 4 7 P4 100000/1 [32, 63] 31 - 32 63 P5 010110/5 [22, 23] 21 23 22 23 P6 110000/2 [48, 63] 47 - 48 63 P7 110000/4 [48, 51] 47 51 48 51 P8 110111/6 [55, 55] 54 55 55 55 P9 100000/3 [32, 39] 31 39 32 39 成功大學資訊工程系 CIAL 實驗室

Conclusions Layered Tree for dynamic routing table On-chip memory Parallel and Pipeline architecture Achieve the throughput of 120 Gbps 成功大學資訊工程系 CIAL 實驗室