Abstract
As a kernel function in network routers, packet classification requires the incoming packet headers to be checked against a set of predefined rules. There are two trends for packet classification: (1) to examine a large number of packet header fields, and (2) to use software-based solutions on multi-core general purpose processors and virtual machines. Although packet classification has been widely studied, most existing solutions on multi-core systems target the classic 5-field packet classification; it is not easy to scale up their performance with respect to the number of packet header fields. In this work, we present a decomposition-based packet classification approach; it supports large rule sets consisting of a large number of packet header fields. In our approach, range-tree and hashing are used to search the fields of the input packet header in parallel. The partial results from all the fields are represented in rule ID sets; they are merged efficiently to produce the final match result. We implement our approach and evaluate its performance with respect to overall throughput and processing latency for rule set size varying from 1 to 32 K. Experimental results on state-of-the-art 16-core platforms show that, an overall throughput of 48 million packets per second and a processing latency of 2,000 ns per packet can be achieved for a 32 K rule set.
Similar content being viewed by others
Notes
Strictly speaking, OpenFlow table lookup is designed at the packet flow level; if we assume each packet flow consists of many packets, the actual throughput in MPPS or Gbps achieved in this work is quite high. To make fair claims, we view each packet flow as a large packet in a broad sense.
Note the search phase in our approach is identical to the search phase in the BV approach. The impact of \(q^{(k)}\) on the performance is similar with respect to various merging techniques.
Saturating SIP and DIP fields is too pessimistic for many-field packet classification, since a saturated SIP or DIP field has \(N\) unique IP prefixes.
This is not a fair metric, since processing multiple packets in parallel does not necessarily reduce the processing latency for each single packet.
In decision-tree-based approaches, for a \(K\)-field rule set, each cut in one field can result in \(2^K\) new rules in the worst case.
References
OpenFlow Switch Specification V1.3.1, https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.3.1
Taylor, D.E.: Survey and taxonomy of packet classification techniques. ACM Comput. Surv. 37(3), 238–275 (2005)
Lakshminarayanan, K., Rangarajan, A., Venkatachary, S.: Algorithms for advanced packet classification with ternary CAMs. In Proceedings of the ACM SIGCOMM (pp. 193–204) (2005)
Baboescu, F., Singh, S., Varghese, G.: Packet classification for core routers: is there an alternative to CAMs? In: Proceedings of the IEEE INFOCOM, vol. 1, pp. 53–63 (2003)
Nikitakis, A., Papaefstathiou, I.: A memory-efficient FPGA-based classification engine. In: Proceedings of IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM), pp. 802–807 (2008)
Ganegedara, T., Prasanna, V.K.: StrideBV: single chip 400G+ packet classification. In: 13th IEEE International Conference on High Performance Switching and Routing (HPSR), pp. 1–6 (2012)
Jiang, W., Prasanna, V.K.: Scalable packet classification on FPGA. IEEE Trans. VLSI Syst. 20(9), 1668–1680 (2012)
Dharmapurikar, S., Song, H., Turner, J., Lockwood, J.: Fast packet classification using bloom filters. In: ACM/IEEE Symposium on Architecture for Networking and Communications Systems (ANCS), pp. 61–70 (2006)
Koponen, T.: Software is the future of networking. In: Proceedings of the 8th ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS), pp. 135–136 (2012)
Luo, Y., Cascon, P., Murray, E., Ortega, J.: Accelerating OpenFlow switching with network processors. In: Proceedings of the 2009 Symposium on Architectures for Networking and Communications Systems (ANCS), pp. 70–71 (2009)
AMD Multi-Core Processors, http://www.computerpoweruser.com/articles/archive/c0604/29c04/29c04
Intel Multi-Core Processors, http://www.cse.ohio-state.edu/~ panda/775/slides/intel_quad_core_06
Gupta, P., McKeown, N.: Algorithms for packet classification. IEEE Netw. 15(2), 24–32 (2001)
Song, H., Lockwood, J.W.: Efficient packet classification for network intrusion detection using FPGA. In: Proceedings of the 13th International Symposium on Field Programmable Gate Arrays (FPGA), pp. 238–245 (2005)
Brebner, G.: Softly defined networking. In: Proceedings of the 8th ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS), pp. 1–2 (2012)
Warkhede, P., Suri, S., Varghese, G.: Multiway range trees: scalable IP lookup with fast updates. Comput. Netw. 44(3), 289–303 (2004)
Zhong, P.: An IPv6 address lookup algorithm based on recursive balanced multi-way range trees with efficient search and update. In: Proceedings of the International Conference on Computer Science and Service System (CSSS), pp. 2059–2063 (2011)
Pagh, R., Rodler, F.F.: Cuckoo Hashing. Springer, Berlin (2001)
Lakshman, T.V., Stiliadis, D.: High-speed policy-based packet forwarding using efficient multi-dimensional range matching. In: Proceedings of the ACM SIGCOMM, pp. 203–214 (1998)
Zhou, S., Qu, Y.R., Prasanna, V.K.: Multi-core implementation of decomposition-based packet classification algorithms. In: Proceedings of the 12th International Conference on Parallel Computing Technologies (PaCT), pp. 105–119 (2013)
Taylor, D.E., Turner, J.S.: Scalable packet classification using distributed crossproducing of field labels. In: Proceedings of the IEEE INFOCOM, pp. 269–280 (2005)
Qu, Y.R., Zhou, S., Prasanna, V.K.: Scalable many-field packet classification on multi-core processors. In: Proceedings of the 25th International Symp. on Computer Architecture and High Performance Computing (SBAC-PAD), pp. 33–40 (2013)
Gupta, P., McKeown, N.: Classifying packets with hierarchical intelligent cuttings. IEEE Micro 20(1), 34–41 (2000)
Singh, S., Baboescu, F., Varghese, G., Wang, J.: Packet classification using multidimensional cutting. In: Proceedings of the ACM SIGCOMM, pp. 213–224 (2003)
Pong, F., Tzeng, N.-F., Tzeng, N.-F.: HaRP: rapid packet classification via hashing round-down prefixes. IEEE Trans. Parallel Distrib. Syst. 22(7), 1105–1119 (2011)
Ma, Y., Banerjee, S., Lu, S., Estan, C.: Leveraging parallelism for multi-dimensional packet classification on software routers. SIGMETRICS Perform. Eval. Rev. 38(1), 227–238 (2010)
Pus, V., Korenek, J., Korenek, J.: Fast and scalable packet classification using perfect hash functions. In: Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays (FPGA), pp. 229–236 (2009)
Qu, Y.R., Zhou, S., Prasanna, V.K.: High-performance architecture for dynamically updatable packet classification on FPGA. In: Proceedings of the 9th ACM/IEEE Symposim on Architectures for Networking and Communications Systems (ANCS), pp. 125–136 (2013)
Author information
Authors and Affiliations
Corresponding author
Additional information
Supported by U.S. National Science Foundation under Grant ACI-1339756.
Rights and permissions
About this article
Cite this article
Qu, Y.R., Zhou, S. & Prasanna, V.K. A Decomposition-Based Approach for Scalable Many-Field Packet Classification on Multi-core Processors. Int J Parallel Prog 43, 965–987 (2015). https://doi.org/10.1007/s10766-014-0325-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-014-0325-6