Survey and Proposal on Binary Search Algorithms for Longest Prefix Match Author: Hyesook Lim, Member, IEEE, and Nara Lee, Student Member, IEEE Publisher:

Slides:



Advertisements
Similar presentations
February 12, 2007 WALCOM '2007 1/22 DiskTrie: An Efficient Data Structure Using Flash Memory for Mobile Devices N. M. Mosharaf Kabir Chowdhury Md. Mostofa.
Advertisements

Internet Routers
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.
A Fast and Memory Efficient Dynamic IP Lookup Algorithm Based on B-Tree Author:Yeim-Kuan Chang and Yung-Chieh Lin Publisher: 2009 International Conference.
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.
Hybrid Data Structure for IP Lookup in Virtual Routers Using FPGAs Authors: Oĝuzhan Erdem, Hoang Le, Viktor K. Prasanna, Cüneyt F. Bazlamaçcı Publisher:
A Ternary Unification Framework for Optimizing TCAM-Based Packet Classification Systems Author: Eric Norige, Alex X. Liu, and Eric Torng Publisher: ANCS.
Data Compressor---Huffman Encoding and Decoding. Huffman Encoding Compression Typically, in files and messages, Each character requires 1 byte or 8 bits.
A Classified Multi-Suffix Trie for IP Lookup and Update Author: Sun-Yuan Hsieh, Ying-Chi Yang Publisher: IEEE TC Presenter: Jia-Wei Yo Date: 2011/10/12.
Digital Search Trees & Binary Tries Analog of radix sort to searching. Keys are binary bit strings.  Fixed length – 0110, 0010, 1010,  Variable.
An Efficient IP Address Lookup Algorithm Using a Priority Trie Authors: Hyesook Lim and Ju Hyoung Mun Presenter: Yi-Sheng, Lin ( 林意勝 ) Date: Mar. 11, 2008.
1 Author: Ioannis Sourdis, Sri Harsha Katamaneni Publisher: IEEE ASAP,2011 Presenter: Jia-Wei Yo Date: 2011/11/16 Longest prefix Match and Updates in Range.
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.
1 Multi-Prefix Trie: a New Data Structure for Designing Dynamic Router-Tables Author: Sun-Yuan Hsieh Member, IEEE, Yi-Ling Huang, and Ying- Chi Yang Publisher:
1 Scalable high-throughput SRAM-based architecture for IP-lookup using FPGA Author: Hoang Le; Weirong Jiang; Prasanna, V.K.; Publisher: FPL Field.
Digital Search Trees & Binary Tries Analog of radix sort to searching. Keys are binary bit strings.  Fixed length – 0110, 0010, 1010,  Variable.
Efficient Multidimensional Packet Classification with Fast Updates Author: Yeim-Kuan Chang Publisher: IEEE TRANSACTIONS ON COMPUTERS, VOL. 58, NO. 4, APRIL.
Parallel-Search Trie-based Scheme for Fast IP Lookup
Study of IP address lookup Schemes
1 A Fast IP Lookup Scheme for Longest-Matching Prefix Authors: Lih-Chyau Wuu, Shou-Yu Pin Reporter: Chen-Nien Tsai.
An Efficient IP Lookup Architecture with Fast Update Using Single-Match TCAMs Author: Jinsoo Kim, Junghwan Kim Publisher: WWIC 2008 Presenter: Chen-Yu.
1 HEXA: Compact Data Structures or Faster Packet Processing Author: Sailesh Kumar, Jonathan Turner, Patrick Crowley, Michael Mitzenmacher. Publisher: ICNP.
Univ. of TehranAdv. topics in Computer Network1 Advanced topics in Computer Networks University of Tehran Dept. of EE and Computer Engineering By: Dr.
Chapter 9 contd. Binary Search Trees Anshuman Razdan Div of Computing Studies
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:
PARALLEL TABLE LOOKUP FOR NEXT GENERATION INTERNET
IP Address Lookup Masoud Sabaei Assistant professor
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.
High-Speed Packet Classification Using Binary Search on Length Authors: Hyesook Lim and Ju Hyoung Mun Presenter: Yi-Sheng, Lin ( 林意勝 ) Date: Jan. 14, 2008.
B + -Trees Same structure as B-trees. Dictionary pairs are in leaves only. Leaves form a doubly-linked list. Remaining nodes have following structure:
Multiprefix Trie: A New Data Structure for Designing Dynamic Router-Tables Author: Sun-Yuan Hsieh, Senior Member, IEEE, Yi-Ling Huang, and Ying-Chi Yang.
On Adding Bloom Filters to Longest Prefix Matching Algorithms
1 Power-Efficient TCAM Partitioning for IP Lookups with Incremental Updates Author: Yeim-Kuan Chang Publisher: ICOIN 2005 Presenter: Po Ting Huang Date:
Scalable High Speed IP Routing Lookups Scalable High Speed IP Routing Lookups Authors: M. Waldvogel, G. Varghese, J. Turner, B. Plattner Presenter: Zhqi.
PARALLEL-SEARCH TRIE- BASED SCHEME FOR FAST IP LOOKUP Author: Roberto Rojas-Cessa, Lakshmi Ramesh, Ziqian Dong, Lin Cai Nirwan Ansari Publisher: IEEE GLOBECOM.
Sets of Digital Data CSCI 2720 Fall 2005 Kraemer.
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.
Foundation of Computing Systems
Binary Search Trees (BST)
Author: Haoyu Song, Murali Kodialam, Fang Hao and T.V. Lakshman Publisher/Conf. : IEEE International Conference on Network Protocols (ICNP), 2009 Speaker:
Updating Designed for Fast IP Lookup Author : Natasa Maksic, Zoran Chicha and Aleksandra Smiljani´c Conference: IEEE High Performance Switching and Routing.
Parallel tree search: An algorithmic approach for multi- field packet classification Authors: Derek Pao and Cutson Liu. Publisher: Computer communications.
Evaluating and Optimizing IP Lookup on Many Core Processors Author: Peng He, Hongtao Guan, Gaogang Xie and Kav´e Salamatian Publisher: International Conference.
A NOVEL LEVEL-BASED IPV6 ROUTING LOOKUP ALGORITHM Author: Xiaohong Huang, Xiaoyu Zhao, Guofeng Zhao, Wenjian Jiang, Dongqu Zheng, Qiong Sun and Yan Ma.
Hierarchical packet classification using a Bloom filter and rule-priority tries Source : Computer Communications Authors : A. G. Alagu Priya 、 Hyesook.
Author : Masanori Bando and H. Jonathan Chao Publisher : INFOCOM, 2010 Presenter : Jo-Ning Yu Date : 2011/02/16.
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.
Tries 07/28/16 11:04 Text Compression
IP Routers – internal view
AN ON-CHIP IP ADDRESS LOOKUP ALGORITHM
Mark Redekopp David Kempe
ITEC 2620M Introduction to Data Structures
Digital Search Trees & Binary Tries
Tree data structure.
Patricia Practical Algorithm To Retrieve Information Coded In Alphanumeric. Compressed binary trie. All nodes are of the same data type (binary tries use.
Tree data structure.
Parallel Processing Priority Trie-based IP Lookup Approach
Binary Prefix Search Author: Yeim-Kuan Chang
Digital Search Trees & Binary Tries
A Small and Fast IP Forwarding Table Using Hashing
Scalable Multi-Match Packet Classification Using TCAM and SRAM
A Trie Merging Approach with Incremental Updates for Virtual Routers
Towards TCAM-based Scalable Virtual Routers
Presentation transcript:

Survey and Proposal on Binary Search Algorithms for Longest Prefix Match Author: Hyesook Lim, Member, IEEE, and Nara Lee, Student Member, IEEE Publisher: IEEE COMMUNICATIONS SURVEYS & TUTORIALS Presenter: Yu Hao, Tzeng Date: 2012/10/03 1

Outline Introdution Trie-based Algorithms Algorithms Performing Binary Search on Prefix Values Algorithms Performing Binary Search on Prefix Lengths Performance Conclusion 2

Introdution Describe various IP address lookup algorithms and compare the characteristics. Use a consistent example set to describe the data structure and the search procedure of each algorithm Evaluate each algorithm in terms of the minimum, worst-case, and average-case number of memory accesses, as well as memory requirements 3

Trie-based Algorithms Binary Trie (B-Trie) Path-Compressed Trie (PC-Trie) Priority Trie (P-Trie) 4

Trie-based Algorithms (Cont.) Binary Trie (B-Trie) Path-Compressed Trie (PC-Trie) Priority Trie (P-Trie) 5

Trie-based Algorithms (Cont.) Binary Trie (B-Trie) No.Prefix P000* P1010* P21* P * P41101* P5111* P611111* P P0 P2 P5 P4 P3 P6 6

Trie-based Algorithms (Cont.) Binary Trie (B-Trie) No.Prefix validLeft pointRight pointOutput port P2 31--P P P P P P3 P P0 P2 P5 P4 P3 P6 7

Trie-based Algorithms (Cont.) Binary Trie (B-Trie) Example Input : Path : 0 -> 2 -> 5 -> 7 -> 9 -> 11 -> NULL Best matching prefix (BMP) : P2 -> P4 P P0 P2 P5 P4 P3 P6 8

Trie-based Algorithms (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High 9

Trie-based Algorithms (Cont.) Binary Trie (B-Trie) Path-Compressed Trie (PC-Trie) Priority Trie (P-Trie) 10

Trie-based Algorithms (Cont.) Path-Compressed Trie (PC-Trie) Use skip values to remove single-child empty internal nodes Remove a child pointer by converting the sub-trie of each node into a full trie P P0 P2 P5 P4 P3 P6 P P0 P2 P5P4 P3 P6 Skip 1 11

Trie-based Algorithms (Cont.) Path-Compressed Trie (PC-Trie) P P0 P2 P5P4 P3 P6 Skip 1 No. Prefix valid Skip value StringLength Next Point Output port 000* * *15P *2-P *3-P * *49P *311P *6-P *5-P6 12

Trie-based Algorithms (Cont.) Path-Compressed Trie (PC-Trie) References [7] P P0 P2 P5 P4 P3 P P0 4 P1 7 P3 8 P6 2 P2 6 P5 5 P No.Prefix P000* P1010* P21* P * P41101* P5111* P611111* 13

Trie-based Algorithms (Cont.) Path-Compressed Trie (PC-Trie) References [7] P0 4 P1 7 P3 8 P6 2 P2 6 P5 5 P No. Prefix valid Bit number String Left point Right point Output port 001* * *56P *--P *--P *7-P *-8P *--P *--P6 14

Trie-based Algorithms (Cont.) Path-Compressed Trie (PC-Trie) References [7] Example Input : Path : 0 -> 2 -> 5 -> 7 BMP : P2 -> P P0 4 P1 7 P3 8 P6 2 P2 6 P5 5 P No. Prefix valid Bit number String Left point Right point Output port 001* * *56P *--P *--P *7-P *-8P *--P *--P6 15

Trie-based Algorithms (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low 16

Trie-based Algorithms (Cont.) Binary Trie (B-Trie) Path-Compressed Trie (PC-Trie) Priority Trie (P-Trie) 17

Trie-based Algorithms (Cont.) Priority Trie (P-Trie) relocate the longest prefix belonging to the sub-trie of each empty internal node into the empty node to remove empty internal nodes in the binary trie P P0 P2 P5 P4 P3 P P0 P2 P5 P3 P1 P6 P4 18

Trie-based Algorithms (Cont.) Priority Trie (P-Trie) P0 P2 P5 P3 P1 P6 P4 No. Priority / Ordinary PrefixLengthLeft pointRight point Output port *612P *33-P1 201*1-4P2 3000*2--P *556P *4--P *3--P5 19

Trie-based Algorithms (Cont.) Priority Trie (P-Trie) Example Input : Path : 0 -> 2 -> 4 -> 5 BMP : P2 -> P P0 P2 P5 P3 P1 P6 P4 No.Prefix P000* P1010* P21* P * P41101* P5111* P611111* 20

Trie-based Algorithms (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low 21

Algorithms Performing Binary Search on Prefix Values Binary Search on Range (BSR) Binary Search Tree (BST) Weighted Binary Search Tree (WBST) Binary Search Tree with Prefix Vector (BST-PV) Binary Search Tree with Switch Pointer (BST-SP) 22

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search on Range (BSR) Binary Search Tree (BST) Weighted Binary Search Tree (WBST) Binary Search Tree with Prefix Vector (BST-PV) Binary Search Tree with Switch Pointer (BST-SP) 23

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search on Range (BSR) No.Prefix P000* P1010* P21* P * P41101* P5111* P611111* 24

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search on Range (BSR) ValueBMP (equivalence)BMP (greater-than) P P0P P P P P3P P4P P P6- 25

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search on Range (BSR) Example Input : BMP : P4 ValueBMP (equivalence)BMP (greater-than) P P0P P P P P3P P4P P P6- 26

Algorithms Performing Binary Search on Prefix Values (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low 27

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search on Range (BSR) Binary Search Tree (BST) Weighted Binary Search Tree (WBST) Binary Search Tree with Prefix Vector (BST-PV) Binary Search Tree with Switch Pointer (BST-SP) 28

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree (BST) P2 P5 P1 P0 P4 P3 P6 No.Prefix P000* P1010* P21* P * P41101* P5111* P611111* 29

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree (BST) P2 P5 P1 P0 P4 P3 P6 No.PrefixLengthLeft pointerRight PointerOutput port 0010*312P1 100*2--P0 21*1-3P *445P *6--P3 5111*3-6P *5--P6 30

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree (BST) Example Input : Path : 0 -> 2 -> 3 -> 4 BMP : P2 -> P P2 P5 P1 P0 P4 P3 P6 No.Prefix P000* P1010* P21* P * P41101* P5111* P611111* 31

Algorithms Performing Binary Search on Prefix Values (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low BSTVery highHigh May or may not be low 32

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search on Range (BSR) Binary Search Tree (BST) Weighted Binary Search Tree (WBST) Binary Search Tree with Prefix Vector (BST-PV) Binary Search Tree with Switch Pointer (BST-SP) 33

Algorithms Performing Binary Search on Prefix Values (Cont.) Weighted Binary Search Tree (WBST) Define the weight of a prefix, as the number of enclosed prefixes plus 1 PrefixWeight P01 P11 P25 34

Algorithms Performing Binary Search on Prefix Values (Cont.) Weighted Binary Search Tree (WBST) No.PrefixLengthLeft pointerRight PointerOutput port 01*112P2 100*2-3P *445P4 3010*3--P *6--P3 5111*3-6P *5--P6 P P4 P2 P0 P1P3 P6 35

Algorithms Performing Binary Search on Prefix Values (Cont.) Weighted Binary Search Tree (WBST) Example Input : Path : 0 -> 2 -> 4 Output port : P2 -> P4 No.Prefix P000* P1010* P21* P * P41101* P5111* P611111* P P4 P2 P0 P1P3 P6 36

Algorithms Performing Binary Search on Prefix Values (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low BSTVery highHigh May or may not be low WBSTVery highHighMay or may not be low 37

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search on Range (BSR) Binary Search Tree (BST) Weighted Binary Search Tree (WBST) Binary Search Tree with Prefix Vector (BST-PV) Binary Search Tree with Switch Pointer (BST-SP) 38

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree with Prefix Vector (BST-PV) prefix vectors are constructed for each leaf prefix of the binary trie the leaf prefixes with a prefix vector are sorted in ascending order P P0 P2 P5 P4 P3 P6 PrefixLengthPrefix vector 00*2-P *3--P *6P2--P4-P *5P2-P5-P6- 39

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree with Prefix Vector (BST-PV) prefix vectors are constructed for each leaf prefix of the binary trie the leaf prefixes with a prefix vector are sorted in ascending order PrefixLengthPrefix vector 00*2-P *3--P *6P2--P4-P *5P2-P5-P6- 40

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree with Prefix Vector (BST-PV) Example Input : Path : 0 -> 1 BMP : P4 No.Prefix P000* P1010* P21* P * P41101* P5111* P611111*

Algorithms Performing Binary Search on Prefix Values (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low BSTVery highHigh May or may not be low WBSTVery highHighMay or may not be low BST-PVVery highLowVery low 42

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search on Range (BSR) Binary Search Tree (BST) Weighted Binary Search Tree (WBST) Binary Search Tree with Prefix Vector (BST-PV) Binary Search Tree with Switch Pointer (BST-SP) 43

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree with Switch Pointer (BST-SP) P P0 P2 P5 P4 P3 P6 No.Prefix P000* P1010* P21* P * P41101* P5111* P611111* P P5 P3 P1 P2 P4P0 44

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree with Switch Pointer (BST-SP) No.Prefix P000* P1010* P21* P * P41101* P5111* P611111* P P5 P3 P1 P2 P4P0 No.PrefixLength Output port Switch pointer Enclosure length 000*1P *3P1-0 21*1P *6P *4P *3P *5P653 45

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree with Switch Pointer (BST-SP) Search Best matching prefix (BMP) Best matching length (BML) Current matching enclosure length (CMEL) Switch pointer (SP) 46

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree with Switch Pointer (BST-SP) Example I Input : Statu #BMPBMLCMELSP 0Wildcard P2144 P P5 P3 P1 P2 P4P0 No.PrefixLength Output port Switch pointer Enclosure length 000*1P *3P1-0 21*1P *6P *4P *3P *5P653 47

Algorithms Performing Binary Search on Prefix Values (Cont.) Binary Search Tree with Switch Pointer (BST-SP) Example II Input : Statu #BMPBMLCMELSP 0Wildcard P5324 P P5 P3 P1 P2 P4P0 No.PrefixLength Output port Switch pointer Enclosure length 000*1P *3P1-0 21*1P *6P *4P *3P *5P653 48

Algorithms Performing Binary Search on Prefix Values (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low BSTVery highHigh May or may not be low WBSTVery highHighMay or may not be low BST-PVVery highLowVery low BST-SPVery highHighMay or may not be low 49

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) Binary Search on Length in a Leaf-Pushed Trie (L-BSL) logW-Elevator Algorithm (logW-E) Binary Search on Lengths in Multiple Tries (BSL-MT) 50

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) Binary Search on Length in a Leaf-Pushed Trie (L-BSL) logW-Elevator Algorithm (logW-E) Binary Search on Lengths in Multiple Tries (BSL-MT) 51

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) M P P0 P2 P5 P4 P3 P6 M BMP = P2 M BMP = P

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) M P P0 P2 P5 P4 P3 P6 M BMP = P2 M BMP = P Level 3 Prefix / InternalNodeMarkerPrefix / pre-computed BMP 10100P P P5 53

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) M P P0 P2 P5 P4 P3 P6 M BMP = P2 M BMP = P Level 1 Prefix / InternalNodeMarkerPrefix / pre-computed BMP P2 54

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) M P P0 P2 P5 P4 P3 P6 M BMP = P2 M BMP = P Level 5 Prefix / InternalNodeMarkerPrefix / pre-computed BMP P P6 55

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) M P P0 P2 P5 P4 P3 P6 M BMP = P2 M BMP = P Level 2 Prefix / InternalNodeMarkerPrefix / pre-computed BMP 1000P

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) M P P0 P2 P5 P4 P3 P6 M BMP = P2 M BMP = P Level 4 Prefix / InternalNodeMarkerPrefix / pre-computed BMP P

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) M P P0 P2 P5 P4 P3 P6 M BMP = P2 M BMP = P Level 6 Prefix / InternalNodeMarkerPrefix / pre-computed BMP P3 58

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) Example Input : Path : 3 -> 5 -> 6 BMP : P2 -> P4 Level 3 Prefix / InternalNodeMarkerPrefix / pre-computed BMP 10100P P P5 Level 5 Prefix / InternalNodeMarkerPrefix / pre-computed BMP P P6 Level 6 Prefix / InternalNodeMarkerPrefix / pre-computed BMP P

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low BSTVery highHigh May or may not be low WBSTVery highHighMay or may not be low BST-PVVery highLowVery low BST-SPVery highHighMay or may not be low W-BSLVery highVery lowLow 60

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) Binary Search on Length in a Leaf-Pushed Trie (L-BSL) logW-Elevator Algorithm (logW-E) Binary Search on Lengths in Multiple Tries (BSL-MT) 61

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Binary Search on Length in a Leaf-Pushed Trie (L-BSL) 62

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Binary Search on Length in a Leaf-Pushed Trie (L-BSL) 63

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Binary Search on Length in a Leaf-Pushed Trie (L-BSL) Example Input : Path : 3 -> 5 -> 6 BMP : P4 Level 3 Prefix / InternalNodePrefix 1010P Level 5 Prefix / InternalNodePrefix P P P6 Level 6 Prefix / InternalNodePrefix P P3 64

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low BSTVery highHigh May or may not be low WBSTVery highHighMay or may not be low BST-PVVery highLowVery low BST-SPVery highHighMay or may not be low W-BSLVery highVery lowLow L-BSLVery highVery lowLow 65

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) Binary Search on Length in a Leaf-Pushed Trie (L-BSL) logW-Elevator Algorithm (logW-E) Binary Search on Lengths in Multiple Tries (BSL-MT) 66

Algorithms Performing Binary Search on Prefix Lengths (Cont.) logW-Elevator Algorithm (logW-E) This algorithm constructs multiple kth-level tries for k = W/2, W/4, · · ·, 2 required to perform a binary search on levels, in addition to a PATRICIA trie. P P0 P2 P5 P4 P3 P6 67

Algorithms Performing Binary Search on Prefix Lengths (Cont.) logW-Elevator Algorithm (logW-E) Example I Input :

Algorithms Performing Binary Search on Prefix Lengths (Cont.) logW-Elevator Algorithm (logW-E) Example II Input :

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low BSTVery highHigh May or may not be low WBSTVery highHighMay or may not be low BST-PVVery highLowVery low BST-SPVery highHighMay or may not be low W-BSLVery highVery lowLow L-BSLVery highVery lowLow logW-EHighVery lowLow 70

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Waldvogels Binary Search on Length (W-BSL) Binary Search on Length in a Leaf-Pushed Trie (L-BSL) logW-Elevator Algorithm (logW-E) Binary Search on Lengths in Multiple Tries (BSL-MT) 71

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Binary Search on Lengths in Multiple Tries (BSL-MT) P P0 P2 P5 P4 P3 P6 72

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Binary Search on Lengths in Multiple Tries (BSL-MT) 73

Algorithms Performing Binary Search on Prefix Lengths (Cont.) Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low BSTVery highHigh May or may not be low WBSTVery highHighMay or may not be low BST-PVVery highLowVery low BST-SPVery highHighMay or may not be low W-BSLVery highVery lowLow L-BSLVery highVery lowLow logW-EHighVery lowLow BSL-MTVery lowLow in average, high in worst caseMay or may not be low 74

Performance 75

Performance (Cont.) 76

Performance (Cont.) 77

Performance (Cont.) 78

Conclusion Algorithms Complexity to provide incremental update Search performance degradation when applied to large routing date Search performance degradation when applied to IPv6 B-TrieVery low High PC-TrieMedium Low P-TrieLow Very low BSRVery highVery low BSTVery highHigh May or may not be low WBSTVery highHighMay or may not be low BST-PVVery highLowVery low BST-SPVery highHighMay or may not be low W-BSLVery highVery lowLow L-BSLVery highVery lowLow logW-EHighVery lowLow BSL-MTVery lowLow in average, high in worst caseMay or may not be low 79