Packet Classification Using Dynamically Generated Decision Trees

Similar documents
Implementation of Boundary Cutting Algorithm Using Packet Classification

Performance Improvement of Hardware-Based Packet Classification Algorithm

Design of a High Speed FPGA-Based Classifier for Efficient Packet Classification

Selective Boundary Cutting For Packet Classification SOUMYA. K 1, CHANDRA SEKHAR. M 2

Tree-Based Minimization of TCAM Entries for Packet Classification

Performance Evaluation and Improvement of Algorithmic Approaches for Packet Classification

HybridCuts: A Scheme Combining Decomposition and Cutting for Packet Classification

Scalable Packet Classification on FPGA

Grid of Segment Trees for Packet Classification

Multi-Field Range Encoding for Packet Classification in TCAM

EffiCuts: Optimizing Packet Classification for Memory and Throughput

TOWARDS EFFECTIVE PACKET CLASSIFICATION

Packet Classification using Rule Caching

MULTI-MATCH PACKET CLASSIFICATION BASED ON DISTRIBUTED HASHTABLE

Towards Effective Packet Classification. J. Li, Y. Qi, and B. Xu Network Security Lab RIIT, Tsinghua University Dec, 2005

DESIGN AND IMPLEMENTATION OF OPTIMIZED PACKET CLASSIFIER

Efficient TCAM Encoding Schemes for Packet Classification using Gray Code

Toward Predictable Performance in Decision Tree based Packet Classification Algorithms

Multi-core Implementation of Decomposition-based Packet Classification Algorithms 1

AN EFFICIENT HYBRID ALGORITHM FOR MULTIDIMENSIONAL PACKET CLASSIFICATION

Scalable Packet Classification for IPv6 by Using Limited TCAMs

Real Time Packet Classification and Analysis based on Bloom Filter for Longest Prefix Matching

A Scalable Approach for Packet Classification Using Rule-Base Partition

PC-DUOS: Fast TCAM Lookup and Update for Packet Classifiers

Three Different Designs for Packet Classification

Packet Classification Algorithm Based on Geometric Tree by using Recursive Dimensional Cutting (DimCut)

SINCE the ever increasing dependency on the Internet, there

DBS: A Bit-level Heuristic Packet Classification Algorithm for High Speed Network

ABC: Adaptive Binary Cuttings for Multidimensional Packet Classification

Efficient Packet Classification using Splay Tree Models

Performance Evaluation of Cutting Algorithms for the Packet Classification in Next Generation Networks

Problem Statement. Algorithm MinDPQ (contd.) Algorithm MinDPQ. Summary of Algorithm MinDPQ. Algorithm MinDPQ: Experimental Results.

Data Structures for Packet Classification

Priority Area-based Quad-Tree Packet Classification Algorithm and Its Mathematical Framework

ECE697AA Lecture 21. Packet Classification

Packet Classification Using Standard Access Control List

Dynamic Routing Tables Using Simple Balanced. Search Trees

Packet Classification: From Theory to Practice

Fast Packet Classification Algorithms

National Chiao Tung University, HsinChu, Taiwan

Hashing Round-down Prefixes for Rapid Packet Classification

An Ultra High Throughput and Memory Efficient Pipeline Architecture for Multi-Match Packet Classification without TCAMs

An Efficient TCAM Update Scheme for Packet Classification

Packet classification using diagonal-based tuple space search q

Survey and Taxonomy of Packet Classification Techniques

A STUDY & COMPARATIVE EVALUATION OF PACKET CLASSIFICATION ALGORITHMS

Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA

PACKET classification enables network routers to provide

Packet Classification Algorithms: From Theory to Practice

TUPLE PRUNING USING BLOOM FILTERS FOR PACKET CLASSIFICATION

Multi-dimensional Packet Classification on FPGA: 100 Gbps and Beyond

Computer Networks 56 (2012) Contents lists available at SciVerse ScienceDirect. Computer Networks

Multi-Field Range Encoding for Packet Classification in TCAM

High-Performance Packet Classification on GPU

Hardware Assisted Recursive Packet Classification Module for IPv6 etworks ABSTRACT

Packet Classification Algorithms: A Survey

SSA: A Power and Memory Efficient Scheme to Multi-Match Packet Classification. Fang Yu, T.V. Lakshman, Martin Austin Motoyama, Randy H.

ClassBench: A Packet Classification Benchmark. By: Mehdi Sabzevari

Network Verification Using Atomic Predicates (S. S. Lam) 3/28/2017 1

A Configurable Packet Classification Architecture for Software- Defined Networking

Meta-algorithms for Software-based Packet Classification

Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA

HNPC: Hardware Network Packet Classifier for High Speed Intrusion Detection Systems

A Multi Gigabit FPGA-based 5-tuple classification system

Rule Caching for Packet Classification Support

Scalable IP Routing Lookup in Next Generation Network

ERFC: An Enhanced Recursive Flow Classification Algorithm

Fast Packet Classification Using Bloom filters

Trees in the List: Accelerating List-based Packet Classification Through Controlled Rule Set Expansion

A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup

Scalable Packet Classification using Distributed Crossproducting of Field Labels

PACKET classification is an enabling function for a variety

Memory-Efficient 5D Packet Classification At 40 Gbps

All-Match Based Complete Redundancy Removal for Packet Classifiers in TCAMs

CS 268: Route Lookup and Packet Classification

Efficient Multi-Match Packet Classification with TCAM

Parallel-Search Trie-based Scheme for Fast IP Lookup

Hierarchical Intelligent Cuttings: A Dynamic Multi-dimensional Packet Classification Algorithm

ITTC High-Performance Networking The University of Kansas EECS 881 Packet Switch I/O Processing

Scalable Packet Classification on FPGA

CAB: A Reactive Wildcard Rule Caching System for Software-Defined Networks

Routing Lookup Algorithm for IPv6 using Hash Tables

Towards System-level Optimization for High Performance Unified Threat Management

Forwarding and Routers : Computer Networking. Original IP Route Lookup. Outline

Survey on Multi Field Packet Classification Techniques

Recursive Flow Classification: An Algorithm for Packet Classification on Multiple Fields

ECE697AA Lecture 20. Forwarding Tables

EVERY Internet router today can forward entering Internet

Trie-Based Policy Representations for Network Firewalls

Scalable Packet Classification using Distributed Crossproducting of Field Labels

Packet Classification. George Varghese

Proceedings of the UGC Sponsored National Conference on Advanced Networking and Applications, 27 th March 2015

Frugal IP Lookup Based on a Parallel Search

A Sorted Partitioning Approach to High-speed and Fast-update OpenFlow Classification

Leveraging Parallelism for Multi-dimensional Packet Classification on Software Routers

Review on Tries for IPv6 Lookups

Bitmap Intersection Lookup (BIL) : A Packet Classification s Algorithm with Rules Updating

FPGA Based Packet Classification Using Multi-Pipeline Architecture

Binary Search Schemes for Fast IP Lookups

The Encoding Complexity of Network Coding

Transcription:

1 Packet Classification Using Dynamically Generated Decision Trees Yu-Chieh Cheng, Pi-Chung Wang Abstract Binary Search on Levels (BSOL) is a decision-tree algorithm for packet classification with superior speed performance. However, the most decision-tree-based algorithms, like BSOL, may suffer from a memory explosion problem caused by filter replications. In this work, we improve the storage performance of BSOL by employing a scheme, replication control. Our scheme dynamically generates multiple decision trees to eliminate filter replications in BSOL. The experimental results show that the new scheme achieves better performance than the existing decision-tree-based algorithms. Index Terms Packet Classification, Firewalls, QoS, Packet Forwarding 1 INTRODUCTION Packet classification is a process employed by Internet routers to classify packets into network flows based on multiple fields of packet headers specified in predefined filters. The filters for packet classification consist of a set of fields and an action. Each field, in turn, corresponds to one field of packet headers. The value in each field could be a variable-length prefix, range, explicit value or wildcard. The most common fields include a source/destination IP address prefix, a source/destination port range of the transport protocol and a protocol type in a packet header. Formally, we define a filter F with d fields as F = (f 1,f 2,...,f d ). While performing packet classification, a packet header P is said to match a particular filter F if for all i, the i th field of the header satisfies f i. Each action has a cost that defines its priority among the actions of the matching filters, and the classifier only applies to the least-cost action from the matching filters. The actions of packet classification are used to fulfill many services such as firewall packet filtering and quality of services [1]. Both hardware and software based solutions have been proposed to improve the performance of packet classification. Hardware proposals usually use parallel lookups to accelerate the search procedure, but hardware resources, such as ternary content addressable memory (TCAM) devices, may limit the size of supported filter sets [2]. Algorithmic improvement is necessary to improve the scalability of hardware schemes [3] [5]. The authors are with the Department of Computer Science and Engineering, National Chung Hsing University, Taichung, Taiwan 42, ROC. E-mail: pcwang@cs.nchu.edu.tw Software algorithms have better scalability; however, their data structures for storing filters significantly affect the performance. Decision tree has been regarded as an efficient data structure for packet classification. The existing decision-tree algorithms, including Hi- Cuts [6], Modular Packet Classification [7], HyperCuts [8] and CubeCuts [9], proposed different approaches to partition a set of filters. For example, HiCuts selects one field to divide address space into equal partitions and HyperCuts may use more than one field for space partitioning. CubeCuts separates one hyperrectangle space from the rest. The filters occupying more than one space partition are replicated. As a result, the cut rules for space partitioning affect the degree of filter replications. To alleviate filter replication, both BSOL [1] and Effi- Cuts [11] employ multiple decision trees to store filters. BSOL constructs a specialized decision tree which can apply an algorithm, binary search on prefix lengths [12], to improve the search performance. The time complexity of BSOL is O(log W ), where W is the total number of bits of all inspected fields in a packet header. Because BSOL may suffer from the filter replication problem, a refinement, namely, is presented to store filters in two decision trees in a static manner. However, the static filter arrangement may not perform well for some filter sets. EffiCuts [11] generates multiple decision trees according to the wildcard distribution of filters. In the worst case, 15 decision trees are generated to result in poor search performance. Selective tree merging is then proposed to dynamically merge two trees which meet some constraints. Since at most two trees can be merged, the search performance of EffiCuts may suffer from accessing more than five decision trees. In this work, we propose an enhanced scheme based on BSOL by employing a replication control scheme to alleviate memory overhead of BSOL without performance penalty. Unlike previous schemes which generate multiple decision trees based on wildcards or short prefixes, our scheme dynamically generates new decision trees according to the degree of filter replication. The experimental results show that the memory requirement is reduced with the same speed performance as compared to BSOL. Our scheme also achieves better speed performance and memory requirement than EffiCuts. The rest of the paper is organized as follows. Section Digital Object Indentifier 1.119/TC.213.227 18-934/13/$31. 213 IEEE

2 describes the scheme of BSOL. Then, we point out the problem of BSOL in storage performance and present our scheme to alleviate the problem in Section 3. We also present a refinement to further improve the performance. In Section 4, we present the experimental results by comparing the memory requirements and accesses with those of and other existing decision-tree algorithms. Finally, Section 5 provides a summary of the current work. 2 BINARY SEARCH ON LEVELS We generate multiple decision trees based on BSOL due to its superior speed performance. In this section, we briefly describe the algorithm of BSOL. We divide the construction of BSOL into two parts: decision tree construction and hash building. Assume that each filter has d fields, and each field can be an arbitrary range. Each filter can be treated as a hyper-rectangle in a d-dimensional address space, where each side is equal to the corresponding range. BSOL generates a binary decision tree. In the decision tree, each node is associated with a space, where the root corresponds to the whole d-dimensional space. The space of a node is equally shared by its two child nodes. Both child nodes have one side which corresponds to upper or lower half of a selected dimension of their parent node. In a decision tree, each node has a filter list where each filter in the list overlaps the space of the node. Initially, all filters are associated with the root node of the decision tree. While the number of filters in a node is greater than a predefined bucket size, two child nodes are generated. The filters in the parent node are inserted into a child node according to whether their space overlaps the space of the child node. If a filter overlaps both child nodes, it will be inserted into both nodes to activate filter replication, which is the main reason of memory expansion for a decisiontree algorithm. To minimize the number of replicated filters, it is necessary to properly select the dimension for dividing the space of a node. Each cut rule of BSOL minimizes the number of replicated filters. BSOL also constraints the same cut rule when applying on nodes with the same tree height. This restriction is designed for storing the same-height nodes in a hash table. We use an example with twelve five-field filters (F to F 11 in Table 1) to explain the procedure of generating a BSOL decision tree, where each leaf node can store up to four filters. As shown in Fig. 1, initially, all filters are listed in a root node (dark-gray node). Next, a cut rule is generated to partition the rules in the root node into two groups. A cut rule using field f 5 is produced, because it does not incur any filter replication. Next, field f 2 is used as the cut rule for the second-level nodes, because only two rules, F 1 and F 11, are replicated. Node space partitioning stops when all leaf nodes (as designated as bolded nodes) have less than or equal to four filters. After completing the BSOL decision tree, there are 23 rules stored in leaf nodes (i.e. a replication ratio of 1.9). TABLE 1 An Example with Twelve Filters on Five Fields. [8] Filter f 1 f 2 f 3 f 4 f 5 Action F 111 [1 : 1] UDP act F 1 111 [1 : 1] [1 : 1] UDP act F 2 1 [1 : 1] TCP act 1 F 3 1 [1 : 1] TCP act 2 F 4 1 [1 : 1] [11 : 11] TCP act 1 F 5 111 [1 : 1] [1 : 1] UDP act F 6 111 [1 : 1] [1 : 1] UDP act F 7 1 TCP act 2 F 8 1 TCP act 2 F 9 [1 : 1] UDP act F 1 UDP act 3 F 11 TCP act 4 F -F 11 F,F 1,F 5,F 6,F 9,F 1 F 2,F 3,F 4,F 7,F 8,F 11 F 9,F 1 F,F 1,F 5,F 6,F 1 f 2: * f 2: 1* f 2: * f 2: 1* F 8,F 11 F 2,F 3,F 4,F 7,F 11 f 1: * f 1: 1* f 1: * f 1: 1* F,F 1,F 5,F 6,F 1 F 1 F 2,F 3,F 4,F 7,F 11 F 11 f 2: 1* f 2: 11* f 2: 1* f 2: 11* F 1 F,F 1,F 5,F 6,F 1 F 2,F 3,F 4,F 7,F 11 F 7,F 11 f 4: * f 4: 1* f 4: * f 4: 1* F,F 5,F 1 F,F 1,F 6,F 1 F 3,F 7,F 11 F 2,F 4,F 7,F 11 Fig. 1. Decision Tree of BSOL. (Bucket Size: 4) After constructing a decision tree, the nodes with the same tree height are specified by the same-length prefixes due to the restriction of BSOL cut rules. Accordingly, a set of hash tables is generated to store the leaf nodes, where each hash table corresponds to a height of the decision tree with leaf nodes. For the example in Fig. 1, four hash tables are generated. The markers are then inserted into the hash tables for enabling a binary search procedure [12]. To perform packet classification, the binary search procedure upon the hash tables is performed to yield the matching leaf node, without traversing a decision tree from root to leaf nodes. All filters in the leaf node are compared to determine the matching filter. By making use of hash tables, the search performance of BSOL mainly ties to the bucket size. 3 REPLICATION CONTROL A proper field selection for space partitioning can alleviate the phenomenon of filter replication for most filters. However, there are still a few filters with more than one wildcard that cannot avoid replication. For small filter sets, filter replication is acceptable since their decision trees are usually short. In a high decision tree, the number of replicated filters is usually unacceptable. As a result, a single decision tree may not be scalable for large filter sets. In [1], the authors present by dividing the filter set into two subsets. A subset stores the filters whose length of source IP address prefix is

less than five. The remaining filters are stored in another subset. Each subset has a decision tree for storing its filters. The source IP address is selected since there are usually the most wildcards or short prefixes. In some cases, the approach of can significantly reduce memory requirement. However, it lacks of flexibility and may lead to worse results for some cases. Hence, we propose a new scheme, replication control, to solve the filter replication problem and a refinement to further improve the search performance. Replication control adjusts the filters stored in a decision tree by utilizing the information of filter replication during tree construction. Let n be the number of original filters to be stored in a decision tree. Filter replication ratio threshold, rrthresh, is defined to limit the number of replicated filters, where rrthresh n is the maximum allowable number of filters in a decision tree (i.e., the total number of filters including replicated filters after completing tree construction must be less than or equal to rrthresh n). Initially, we employ the BSOL procedure to construct a decision tree. For each filter, we track the tree level where its first filter replication takes place, referred to as replication level. When a set of nodes is partitioned in the same tree level, the filter replication number is also counted. If the total number of the stored filters in a decision tree is greater than the upper bound, the filters with the smallest replication level are removed from the decision tree. The procedure of tree construction proceeds for other filters. If the number of stored decision tree is once again higher than the filter threshold, then the above procedure of removing filters repeats until the decision tree is completed. We choose filters with the smallest replication level since these filters usually occupy the largest space. Filters removed from the decision tree are inserted into a new decision tree to repeat the above steps. If another set of filters is removed in the construction procedure, the third decision tree is constructed and so on. Finally, we may have multiple decision trees according to the characteristics of the original filters. Because our scheme may lead to more decision trees to degrade the search performance, there is a tradeoff between storage efficiency and speed performance. We also note that filter removal may reduce the number of filters in the buckets and degrade the storage efficiency. If a constructed tree is too high to search, we need to reconstruct the decision tree to improve the storage efficiency. Since we have removed the filters which may cause severe replication, the tree reconstruction can achieve a better storage efficiency. We use previous example to illustrate the differences between and. For both schemes, the bucket size is reduced to two. Let us consider the decision trees of first. Because f 1 cannot be used to distinguish any filters, filters are categorized into two subsets based on the criteria whether their f 1 values are wildcards. The decision trees corresponding to both filter subsets are depicted in Fig. 2, where the number of filters stored in both decision trees is reduced to 17. F -F 7 f5: UDP f5: TCP f1: * f1: * f 2: 1* f 2: 1* f2: 11* f 2: 1* f2: 11* F,F 1,F 5,F 6 F 7 F 2,F 3,F 4,F 7 f 4: * f 4: 1* f4: * f4: 1* F,F 5 F,F 1,F 6 F 3,F 7 F 2,F 4,F 7 f3: * f3: 1* f3: * f3: 1* F 1 F,F 6 F 7 F 2,F 4,F 7 f4: 1* F 2,F 7 F 4,F 7 f4: 11* F 8 -F 11 F 9,F 1 F 8,F 11 Fig. 2. Decision Trees of. (Bucket Size: 2) F -F 11 F,F 1,F 5,F 6,F 9,F 1 F 2,F 3,F 4,F 7,F 8,F 11 F 9,F 1 F,F 1,F 5,F 6,F 1 f 2: * f 2: 1* f 2: * f 2: 1* f 1: * f 1: * F 8,F 11 F 2,F 3,F 4,F 7,F 11 f 2: 11* f 2: 1* f 2: 11* F 7 f 4: * f 4: 1* f 4: * f 4: 1* F,F 5 F,F 1,F 6 F 2,F 4 F 3 F,F 7,F 1,F 11 F,F 1 F 7,F 11 Fig. 3. Decision Trees of. (Bucket Size: 2) Next, the decision trees based on the procedure of replication control are shown in Fig. 3. The rrthresh value is set to one so that any filters causing replication in a decision tree are removed to the next decision tree. Initially, all filters are stored in the root node of the first decision tree to start constructing a BSOL decision tree. In the second level, both F 1 and F 11 cause replication so that they are removed from the decision tree. Similarly, the replication level of F 7 is the fourth level and that of F is the fifth level. The filters removed from the first decision tree are denoted by bold fonts. They are stored in the root of the second decision tree for construction. There is no filter replication in both BSOL decision trees with replication control. The replication control scheme adaptively removes filters to alleviate the storage expansion; thus, it can accommodate different types of filter sets to achieve better storage efficiency.

Using multiple decision trees to store filters would degrade the search performance since one linear search is performed for each decision tree. We make a refinement to improve the search performance by halving the bucket size of the second and later decision trees. Baboescu et al. have observed that in real-world classifiers, the maximum number of filters whose source and destination IP address fields match a packet is less than 2 [13]. Accordingly, the bucket size of BSOL is set to 2. A larger bucket size may have less filter replication and less tree height, but the cost of linear search in a bucket increases. Since we have divided the original filters into multiple sets, the number of filters in the second or later decision trees that match any packet may decrease. Thus, it is reasonable to decrease bucket size to lower the cost of linear search. Although the tree height would increase with a smaller bucket size, we observed that the number of filters in the second or later decision trees are usually relatively small. Furthermore, we use binary search to access the decision tree in the search procedure, and the increase of tree height is less influent than the increase of bucket size. As a result, the total search cost is still decreased with lower-cost linear searches. 4 PERFORMANCE EVALUATION We evaluate the performance of our scheme,, with several filter sets generated by ClassBench [14]. ClassBench provides twelve seeds to generate different types of filter sets. For each seed, 16K filters with five fields, two IP address prefixes, two port ranges and a protocol number, are generated. The performance metrics include the required memory in kilobytes (KB) and the number of memory accesses for a packet classification in the worst case. The value of rrthresh is fixed to two to maintain the memory consumption. Fig. 4 shows memory requirements of and our scheme. For most filter sets, our scheme consumes less memory than does. may need significantly more memory than for some filter sets due to the lack of flexibility for generating more than two decision trees. In these filter sets, wildcard appears in the fields other than source IP address field to result in a significant increment of filter replication. Since can dynamically store replicated filters in a new decision tree, it features relatively consistent memory requirements. Fig. 5 shows the number of memory accesses per lookup in the worst case for and. The results indicate that even with the storage reduction, the speed performance using our scheme is similar to that of for most cases. There are few cases that our scheme is slower than. This is due to a tradeoff between storage and speed performance, where our scheme generates more decision trees to result in less memory requirements for these cases (fw1, fw3, fw4, and fw5). Nevertheless, benefits from the tradeoff to improve feasibility by moderating memory consumption and providing comparable speed performance. Memory (KB) 18 16 14 12 1 8 6 4 2 225MB Fig. 4. Storage Performance for 16K-filter Sets. Number of Memory Accesses 4 35 3 25 2 15 1 5 Fig. 5. Speed Performance for 16K-filter Sets. We further use ClassBench to generate 64K-filter sets to test the scalability of our scheme. As shown in Fig. 6, may suffer from divergent storage requirements for large filter sets. allows memory consumption to be linearly proportional to the number of filters. Moreover, the speed performance can be maintained at the same level as 16K-filter sets, as shown in Fig. 7. We use three 1K filter sets in [11] to compare BSOL- RC with several decision tree algorithms. Table 2 shows both speed and storage performance of four decisiontree algorithms, including HyperCuts, EffiCuts,, and our scheme. The result shows that the algorithms with multiple decision trees have much better storage performance than HyperCuts, which only has one decision tree. While the multiple-decision-tree algorithms improve storage performance, the search performance might degrade as a tradeoff for storage efficiency. For example, EffiCuts significantly reduces memory requirement from HyperCuts for ACL and FW, but also requires extra memory accesses. For IPC, however, both speed and storage performance is improved by EffiCuts simultaneously because HyperCuts generates a high decision tree. avoids the problem of high decision tree by using the technique of binary search on prefix lengths [12]; thus, usually has better speed performance than EffiCuts. The storage efficiency of would

TABLE 2 Performance Comparisons of the Existing Decision-Tree Algorithms with 1K Filter Sets. HyperCuts EffiCuts Filter Memory Memory Memory Memory Memory Memory Memory Memory Set accesses requirement accesses requirement accesses requirement accesses requirement ACL 1K 37 184 MB 83 5.3 MB 25 19.1 MB 2 3.2 MB FW 1K 48 2433 MB 53 3.7 MB 24 9.4 MB 25 2.1 MB IPC 1K 24 575 MB 17 5.5 MB 17 1.9 MB 14 2.3 MB 45 4 35 N/A ers. In sum, can promote storage efficiency while maintaining comparable or better speed performance than the prominent decision-tree algorithms. Memory (KB) 3 25 2 15 1 5 Fig. 6. Storage Performance for 64K-filter Sets. Number of Memory Accesses 4 35 3 25 2 15 1 5 N/A Fig. 7. Speed Performance for 64K-filter Sets. degrade due to two limitations. First, to construct a decision tree for applying binary search, must limit the nodes at the same level equally partitioned by the same field. Second, always generates two decision trees. As a result, may consume more storage than EffiCuts. could reduce the memory requirement by employing replication control. By removing the filters which cannot be properly categorized, the height of the resulted decision tree is significantly decreased as well as the number of markers. The speed performance also benefits from a shorter decision tree. also outperforms EffiCuts in both storage and speed performance. EffiCuts uses decision trees that must be traversed from the root node; thus, the intermediate nodes are stored and accessed in the search procedure. Although stores extra markers, it reduces the tree height to minimize the number of mark- 5 CONCLUSIONS In this work, a new algorithm for packet classification,, is presented. While the BSOL algorithm generates fixed number of decision trees, the new algorithm generates decision trees according to the number of replicated filters. By controlling the number of replicated filters, both memory consumption and height of a decision tree can be manipulated. As a result, both space and speed performance can be improved. The experimental results show that can reduce more than 5% memory consumption from for some filter sets. For large filter sets, the storage saving of is more significant. In brief, has a performance advantage over the existing decision tree algorithms. REFERENCES [1] P. Gupta and N. McKeown, Algorithms for packet classification, IEEE Network, vol. 15, no. 2, pp. 24 32, 21. [2] D. E. Taylor, Survey and taxonomy of packet classification techniques, ACM Computing Survey, vol. 37, no. 3, pp. 238 275, 25. [3] R. Cohen and D. Raz, Simple efficient tcam based range classification, in Proc. IEEE INFOCOM 21, pp. 1 5. [4] R. Wei, X. Yang, and H. J. Chao, Block permutations in boolean space to minimize tcam for packet classification, in Proc. IEEE INFOCOM 212, pp. 2561 2565. [5] Y.-K. Chang, C.-I. Lee, and C.-C. Su, Multi-field range encoding for packet classification in tcam, in Proc. IEEE INFOCOM 211, pp. 196 2. [6] P. Gupta and N. McKeown, Classifying packets with hierarchical intelligent cuttings, IEEE Micro, vol. 2, no. 1, pp. 34 41, 2. [7] T. Y. C. Woo, A modular approach to packet classification: Algorithms and results, in Proc. IEEE INFOCOM, vol. 3, pp. 1213 1222. [8] S. Singh, F. Baboescu, G. Varghese, and J. Wang, Packet classification using multidimensional cutting, in Proc. ACM SIG- COMM 23, pp. 213 224. [9] Y.-K. Chang and Y.-H. Wang, Cubecuts: A novel cutting scheme for packet classification, in Proc. IEEE WAINA 212, pp. 274 279. [1] H. Lu and S. Sahni, O(logw) multidimensional packet classification, IEEE/ACM Transactions on Networking, vol. 15, no. 2, pp. 462 472, 27. [11] B. Vamanan, G. Voskuilen, and T. N. Vijaykumar, Efficuts: optimizing packet classification for memory and throughput, in Proc. ACM SIGCOMM 21, pp. 27 218. [12] M. Waldvogel, G. Varghese, J. Turner, and B. Plattner, Scalable high speed ip routing lookups, in Proc. ACM SIGCOMM 97, September, pp. 25 36. [13] F. Baboescu, S. Singh, and G. Varghese, Packet classification for core routers: Is there an alternative to cams? in Proc. IEEE INFOCOM 3, pp. 53 63. [14] D. E. Taylor and J. S. Turner, Classbench: a packet classification benchmark, in Proc. IEEE INFOCOM 5, pp. 268 279.