Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3503222.3507769acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

Domain specific run time optimization for software data planes

Published: 22 February 2022 Publication History
  • Get Citation Alerts
  • Abstract

    State-of-the-art approaches to design, develop and optimize software packet-processing programs are based on static compilation: the compiler's input is a description of the forwarding plane semantics and the output is a binary that can accommodate any control plane configuration or input traffic.
    In this paper, we demonstrate that tracking control plane actions and packet-level traffic dynamics at run time opens up new opportunities for code specialization. We present Morpheus, a system working alongside static compilers that continuously optimizes the targeted networking code. We introduce a number of new techniques, from static code analysis to adaptive code instrumentation, and we implement a toolbox of domain specific optimizations that are not restricted to a specific data plane framework or programming language. We apply Morpheus to several eBPF and DPDK programs including Katran, Facebook's production-grade load balancer. We compare Morpheus against state-of-the-art optimization frameworks and show that it can bring up to 2x throughput improvement, while halving the 99th percentile latency.

    References

    [1]
    2021. Intel Data Direct I/O Technology. https://www.intel.co.uk/content/www/uk/en/io/data-direct-i-o-technology.html [Online; accessed 12-August-2021].
    [2]
    2021. Linux AF_XDP. https://www.kernel.org/doc/html/latest/networking/af_xdp.html [Online; accessed 12-August-2021].
    [3]
    2021. LLVM Alias Analysis. https://llvm.org/docs/AliasAnalysis.html [Online; accessed 12-August-2021].
    [4]
    2021. LLVM MemorySSA. https://llvm.org/docs/MemorySSA.html [Online; accessed 12-August-2021].
    [5]
    2022. CloudLab. https://cloudlab.us/ [Online; accessed 26-January-2022].
    [6]
    Anubhavnidhi Abhashkumar, Jeongkeun Lee, Jean Tourrilhes, Sujata Banerjee, Wenfei Wu, Joon-Myung Kang, and Aditya Akella. 2017. P5: Policy-Driven Optimization of P4 Pipeline. In Proceedings of the Symposium on SDN Research (SOSR ’17). Association for Computing Machinery, New York, NY, USA. 136–142. isbn:9781450349475 https://doi.org/10.1145/3050220.3050235
    [7]
    Omid Alipourfard and Minlan Yu. 2018. Decoupling Algorithms and Optimizations in Network Functions. In Proceedings of the 17th ACM Workshop on Hot Topics in Networks (HotNets ’18). Association for Computing Machinery, New York, NY, USA. 71–77. isbn:9781450361200 https://doi.org/10.1145/3286062.3286073
    [8]
    Joel Auslander, Matthai Philipose, Craig Chambers, Susan J. Eggers, and Brian N. Bershad. 1996. Fast, Effective Dynamic Compilation. In Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation (PLDI ’96). Association for Computing Machinery, New York, NY, USA. 149–159. https://doi.org/10.1145/231379.231409
    [9]
    GCC Authors. 2016. AutoFDO tutorial. https://gcc.gnu.org/wiki/AutoFDO/Tutorial [Online; accessed 07-August-2021].
    [10]
    Istio Authors. 2020. Istio - Connect, secure, control, and observe services. https://istio.io/ [Online; accessed 07-August-2021].
    [11]
    Vasanth Bala, Evelyn Duesterwald, and Sanjeev Banerjia. 2000. Dynamo: A Transparent Dynamic Optimization System. In Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation (PLDI ’00). Association for Computing Machinery, New York, NY, USA. 1–12. isbn:1581131992 https://doi.org/10.1145/349299.349303
    [12]
    Hitesh Ballani, Paolo Costa, Christos Gkantsidis, Matthew P. Grosvenor, Thomas Karagiannis, Lazaros Koromilas, and Greg O’Shea. 2015. Enabling End-Host Network Functions. In Proceedings of the 2015 ACM Conference on Special Interest Group on Data Communication (SIGCOMM ’15). Association for Computing Machinery, New York, NY, USA. 493–507. isbn:9781450335423 https://doi.org/10.1145/2785956.2787493
    [13]
    Sorav Bansal and Alex Aiken. 2006. Automatic Generation of Peephole Superoptimizers. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XII). Association for Computing Machinery, New York, NY, USA. 394–403. isbn:1595934510 https://doi.org/10.1145/1168857.1168906
    [14]
    Tom Barbette, Cyril Soldani, and Laurent Mathy. 2015. Fast Userspace Packet Processing. In Proceedings of the Eleventh ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS ’15). IEEE Computer Society, USA. 5–16. isbn:9781467366328 https://doi.org/10.1109/ANCS.2015.7110116
    [15]
    Tom Barbette, Chen Tang, Haoran Yao, Dejan Kostić, Gerald Q. Maguire Jr., Panagiotis Papadimitratos, and Marco Chiesa. 2020. A High-Speed Load-Balancer Design with Guaranteed Per-Connection-Consistency. In 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20). USENIX Association, Santa Clara, CA. 667–683. isbn:978-1-939133-13-7 https://doi.org/10.5555/3388242.3388291
    [16]
    Ankit Bhardwaj, Atul Shree, V. Bhargav Reddy, and Sorav Bansal. 2017. A Preliminary Performance Model for Optimizing Software Packet Processing Pipelines. In Proceedings of the 8th Asia-Pacific Workshop on Systems (APSys ’17). Association for Computing Machinery, New York, NY, USA. Article 26, 7 pages. isbn:9781450351973 https://doi.org/10.1145/3124680.3124747
    [17]
    Scott Bradner. 1991. Benchmarking Terminology for Network Interconnection Devices. RFC Editor, 1–12. https://www.rfc-editor.org/rfc/rfc1242.txt
    [18]
    Scott Bradner and Jim McQuaid. 1999. Benchmarking Methodology for Network Interconnect Devices. RFC Editor. http://www.rfc-editor.org/rfc/rfc2544.txt
    [19]
    Anat Bremler-Barr, Yotam Harchol, and David Hay. 2016. OpenBox: A Software-Defined Framework for Developing, Deploying, and Managing Network Functions. In Proceedings of the 2016 ACM SIGCOMM Conference (SIGCOMM ’16). Association for Computing Machinery, New York, NY, USA. 511–524. isbn:9781450341936 https://doi.org/10.1145/2934872.2934875
    [20]
    Derek Bruening, Timothy Garnett, and Saman Amarasinghe. 2003. An Infrastructure for Adaptive Dynamic Optimization. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization (CGO ’03). IEEE Computer Society, USA. 265–275. isbn:076951913X https://dl.acm.org/doi/10.5555/776261.776290
    [21]
    CAIDA. 2019. The CAIDA Anonymized Internet Traces Data Access. https://www.caida.org/catalog/datasets/passive_dataset_download/ [Online; accessed 26-January-2022].
    [22]
    CAIDA. 2019. The CAIDA UCSD Anonymized Internet Traces. http://www.caida.org/data/passive/passive_dataset.xml [Online; accessed 07-August-2021].
    [23]
    Dehao Chen, David Xinliang Li, and Tipp Moseley. 2016. AutoFDO: Automatic Feedback-Directed Optimization for Warehouse-Scale Applications. In Proceedings of the 2016 International Symposium on Code Generation and Optimization (CGO ’16). Association for Computing Machinery, New York, NY, USA. 12–23. isbn:9781450337786 https://doi.org/10.1145/2854038.2854044
    [24]
    Yishen Chen, Charith Mendis, Michael Carbin, and Saman Amarasinghe. 2021. VeGen: A Vectorizer Generator for SIMD and Beyond. Association for Computing Machinery, New York, NY, USA. 902–914. isbn:9781450383172 https://doi.org/10.1145/3445814.3446692
    [25]
    Sean Choi, Xiang Long, Muhammad Shahbaz, Skip Booth, Andy Keep, John Marshall, and Changhoon Kim. 2017. PVPP: A Programmable Vector Packet Processor. In Proceedings of the Symposium on SDN Research (SOSR ’17). Association for Computing Machinery, New York, NY, USA. 197–198. isbn:9781450349475 https://doi.org/10.1145/3050220.3060609
    [26]
    Sean Choi, Xiang Long, Muhammad Shahbaz, Skip Booth, Andy Keep, John Marshall, and Changhoon Kim. 2017. The Case for a Flexible Low-Level Backend for Software Data Planes. In Proceedings of the First Asia-Pacific Workshop on Networking (APNet’17). Association for Computing Machinery, New York, NY, USA. 71–77. isbn:9781450352444 https://doi.org/10.1145/3106989.3107000
    [27]
    Wikipedia contributors. 2018. Perf (linux). https://en.wikipedia.org/wiki/Perf_(Linux) [Online; accessed 07-August-2021].
    [28]
    Wikipedia contributors. 2020. Dtrace. https://en.wikipedia.org/wiki/DTrace [Online; accessed 07-August-2021].
    [29]
    Intel Corporation. 2020. Pin - A Dynamic Binary Instrumentation Tool. https://software.intel.com/content/www/us/en/develop/articles/pin-a-dynamic-binary-instrumentation-tool.html [Online; accessed 07-August-2021].
    [30]
    Timothy Cramer, Richard Friedman, Terrence Miller, David Seberger, Robert Wilson, and Mario Wolczko. 1997. Compiling Java Just in Time. IEEE Micro, 17, 3 (1997), may, 36–43. issn:0272-1732 https://doi.org/10.1109/40.591653
    [31]
    Bangwen Deng, Wenfei Wu, and Linhai Song. 2020. Redundant Logic Elimination in Network Functions. In Proceedings of the Symposium on SDN Research (SOSR ’20). Association for Computing Machinery, New York, NY, USA. 34–40. isbn:9781450371018 https://doi.org/10.1145/3373360.3380832
    [32]
    DPDK. 2018. Pktgen Traffic Generator Using DPDK. http://dpdk.org/git/apps/pktgen-dpdk [Online; accessed 07-August-2021].
    [33]
    DPDK. 2021. L3 Forwarding with Access Control Sample Application. https://doc.dpdk.org/guides/sample_app_ug/l3_forward_access_ctrl.html [Online; accessed 07-August-2021].
    [34]
    Paul Emmerich, Sebastian Gallenmüller, Daniel Raumer, Florian Wohlfart, and Georg Carle. 2015. MoonGen: A Scriptable High-Speed Packet Generator. IMC ’15. Association for Computing Machinery, New York, NY, USA. 275–287. isbn:9781450338486 https://doi.org/10.1145/2815675.2815692
    [35]
    Cristian Estan and George Varghese. 2002. New Directions in Traffic Measurement and Accounting. In Proceedings of the 2002 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications (SIGCOMM ’02). Association for Computing Machinery, New York, NY, USA. 323–336. isbn:158113570X https://doi.org/10.1145/633025.633056
    [36]
    Alireza Farshin, Tom Barbette, Amir Roozbeh, Gerald Q. Maguire Jr., and Dejan Kostić. 2021. PacketMill: Toward per-Core 100-Gbps Networking. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2021). Association for Computing Machinery, New York, NY, USA. 1–17. isbn:9781450383172 https://doi.org/10.1145/3445814.3446724
    [37]
    A. Feldman and S. Muthukrishnan. 2000. Tradeoffs for packet classification. In Proceedings IEEE INFOCOM 2000. Conference on Computer Communications. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies (Cat. No.00CH37064). 3, 1193–1202 vol.3. https://doi.org/10.1109/INFCOM.2000.832493
    [38]
    Linux Foundation. 2020. Vector Packet Processing (VPP) platform. https://wiki.fd.io/view/VPP [Online; accessed 07-August-2021].
    [39]
    Open Information Security Foundation. 2020. Suricata - Intrusion Detection System. https://suricata-ids.org/ [Online; accessed 07-August-2021].
    [40]
    Andreas Gal, Brendan Eich, Mike Shaver, David Anderson, David Mandelin, Mohammad R. Haghighat, Blake Kaplan, Graydon Hoare, Boris Zbarsky, Jason Orendorff, Jesse Ruderman, Edwin W. Smith, Rick Reitmaier, Michael Bebenita, Mason Chang, and Michael Franz. 2009. Trace-Based Just-in-Time Type Specialization for Dynamic Languages. In Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’09). 465–478. https://doi.org/10.1145/1542476.1542528
    [41]
    GNU Project. [n.d.]. GNU Compiler Collection. https://gcc.gnu.org/ [Online; accessed 07-August-2021].
    [42]
    Susan L. Graham, Peter B. Kessler, and Marshall K. Mckusick. 1982. Gprof: A Call Graph Execution Profiler. In Proceedings of the 1982 SIGPLAN Symposium on Compiler Construction (SIGPLAN ’82). Association for Computing Machinery, New York, NY, USA. 120–126. isbn:0897910745 https://doi.org/10.1145/800230.806987
    [43]
    Jong Hun Han, Prashanth Mundkur, Charalampos Rotsos, Gianni Antichi, Nirav Dave, Andrew W. Moore, and Peter G. Neumann. 2015. Blueswitch: enabling provably consistent configuration of network switches. In 2015 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS). 17–27. https://doi.org/10.1109/ANCS.2015.7110117
    [44]
    Sangjin Han, Keon Jang, Aurojit Panda, Shoumik Palkar, Dongsu Han, and Sylvia Ratnasamy. 2015. SoftNIC: A software NIC to augment hardware.
    [45]
    Urs Hölzle and David Ungar. 1994. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. In Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation (PLDI ’94). Association for Computing Machinery, New York, NY, USA. 326–336. isbn:089791662X https://doi.org/10.1145/178243.178478
    [46]
    Christian Hopps. 2019. Katran: A high performance layer 4 load balancer. https://github.com/facebookincubator/katran
    [47]
    Google Inc. 2019. Kubernetes: Production-Grade Container Orchestration. https://kubernetes.io. [Online; accessed 07-August-2021].
    [48]
    Google Inc. 2019. Propeller: Profile Guided Optimizing Large Scale LLVM-based Relinker. https://github.com/google/llvm-propeller [Online; accessed 07-August-2021].
    [49]
    Rishabh Iyer, Luis Pedrosa, Arseniy Zaostrovnykh, Solal Pirelli, Katerina Argyraki, and George Candea. 2019. Performance Contracts for Software Network Functions. In 16th $USENIX$ Symposium on Networked Systems Design and Implementation ($NSDI$ 19). USENIX Association, 517–530. isbn:978-1-931971-49-2
    [50]
    Joab Jackson. 2019. Kubernetes Long Road to Dual IPv4/IPv6 Support. https://thenewstack.io/it-takes-a-community-kubernetes-long-road-to-dual-ipv4-ipv6-support [Online; accessed 07-August-2021].
    [51]
    Rajeev Joshi, Greg Nelson, and Keith Randall. 2002. Denali: A Goal-Directed Superoptimizer. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (PLDI ’02). Association for Computing Machinery, New York, NY, USA. 304–314. isbn:1581134630 https://doi.org/10.1145/512529.512566
    [52]
    Georgios P. Katsikas, Tom Barbette, Dejan Kostić, Rebecca Steinert, and Gerald Q. Maguire Jr. 2018. Metron: NFV Service Chains at the True Speed of the Underlying Hardware. In 15th USENIX Symposium on Networked Systems Design and Implementation (NSDI 18). USENIX Association, Renton, WA. 171–186. isbn:978-1-939133-01-4 https://dl.acm.org/doi/10.5555/3307441.3307457
    [53]
    Georgios P. Katsikas, Marcel Enguehard, Maciej Kuźniar, Gerald Q. Maguire Jr, and Dejan Kostić. 2016. SNF: synthesizing high performance NFV service chains. PeerJ Computer Science, 2 (2016), Nov., e98. issn:2376-5992 https://doi.org/10.7717/peerj-cs.98
    [54]
    Peyman Kazemian, George Varghese, and Nick McKeown. 2012. Header Space Analysis: Static Checking for Networks. In 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI 12). USENIX Association, San Jose, CA. 113–126. isbn:978-931971-92-8 https://dl.acm.org/doi/10.5555/2228298.2228311
    [55]
    James Kempf, Bengt Johansson, Sten Pettersson, Harald Luning, and Tord Nilsson. 2012. Moving the Mobile Evolved Packet Core to the Cloud. In Proceedings of the 2012 IEEE 8th International Conference on Wireless and Mobile Computing, Networking and Communications (WiMob) (WIMOB ’12). IEEE Computer Society, USA. 784–791. isbn:9781467314299 https://doi.org/10.1109/WiMOB.2012.6379165
    [56]
    Tanvir Ahmed Khan, Ian Neal, Gilles Pokam, Barzan Mozafari, and Baris Kasikci. 2021. DMon: Efficient Detection and Correction of Data Locality Problems Using Selective Profiling. In 15th USENIX Symposium on Operating Systems Design and Implementation (OSDI 21). USENIX Association, 163–181. isbn:978-1-939133-22-9 https://www.usenix.org/conference/osdi21/presentation/khan
    [57]
    André Kohn, Viktor Leis, and Thomas Neumann. 2018. Adaptive Execution of Compiled Queries. In 2018 IEEE 34th International Conference on Data Engineering (ICDE). 197–208. https://doi.org/10.1109/ICDE.2018.00027
    [58]
    Mirja Kuehlewind and Brian Trammell. 2021. Manageability of the QUIC Transport Protocol.
    [59]
    Chris Lattner and Vikram Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization (CGO ’04). IEEE Computer Society, USA. 75. isbn:0769521029 https://doi.org/10.1109/CGO.2004.1281665
    [60]
    John Levon and Philippe Elie. 2004. Oprofile: A system profiler for linux. https://oprofile.sourceforge.io/news/ [Online; accessed 07-August-2021].
    [61]
    Leonardo Linguaglossa, Stanislav Lange, Salvatore Pontarelli, Gábor Rétvári, Dario Rossi, Thomas Zinner, Roberto Bifulco, Michael Jarschel, and Giuseppe Bianchi. 2019. Survey of Performance Acceleration Techniques for Network Function Virtualization. Proc. IEEE, 107, 4 (2019), 746–764. https://doi.org/10.1109/JPROC.2019.2896848
    [62]
    Guyue Liu, Yuxin Ren, Mykola Yurchenko, K. K. Ramakrishnan, and Timothy Wood. 2018. Microboxes: High Performance NFV with Customizable, Asynchronous TCP Stacks and Dynamic Subscriptions. SIGCOMM ’18. Association for Computing Machinery, New York, NY, USA. 504–517. isbn:9781450355674 https://doi.org/10.1145/3230543.3230563
    [63]
    Antonis Manousis, Rahul Anand Sharma, Vyas Sekar, and Justine Sherry. 2020. Contention-Aware Performance Prediction For Virtualized Network Functions. In Proceedings of the Annual Conference of the ACM Special Interest Group on Data Communication on the Applications, Technologies, Architectures, and Protocols for Computer Communication (SIGCOMM ’20). Association for Computing Machinery, New York, NY, USA. 270–282. isbn:9781450379557 https://doi.org/10.1145/3387514.3405868
    [64]
    Joao Martins, Mohamed Ahmed, Costin Raiciu, Vladimir Olteanu, Michio Honda, Roberto Bifulco, and Felipe Huici. 2014. ClickOS and the Art of Network Function Virtualization. In Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation (NSDI’14). USENIX Association, USA. 459–473. isbn:9781931971096 https://dl.acm.org/doi/10.5555/2616448.2616491
    [65]
    Sebastiano Miano. 2021. Morpheus: Domain Specific Run Time Optimization for Software Data Planes - Artifact for ASPLOS’22. https://doi.org/10.5281/zenodo.5830832
    [66]
    Sebastiano Miano. 2021. Polycube (Morpheus branch). https://github.com/Morpheus-compiler/polycube/tree/morpheus
    [67]
    Sebastiano Miano, Matteo Bertrone, Fulvio Risso, Mauricio Vásquez Bernal, Yunsong Lu, and Jianwen Pi. 2019. Securing Linux with a Faster and Scalable Iptables. SIGCOMM Comput. Commun. Rev., 49, 3 (2019), Nov., 2–17. issn:0146-4833 https://doi.org/10.1145/3371927.3371929
    [68]
    S. Miano, M. Bertrone, F. Risso, M. V. Bernal, Y. Lu, J. Pi, and A. Shaikh. 2019. A Service-Agnostic Software Framework for Fast and Efficient in-Kernel Network Services. In 2019 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS). 1–9. https://doi.org/10.1109/ANCS.2019.8901880
    [69]
    Sebastiano Miano, Matteo Bertrone, Fulvio Risso, Massimo Tumolo, and Mauricio Vásquez Bernal. 2018. Creating Complex Network Services with eBPF: Experience and Lessons Learned. In 2018 IEEE 19th International Conference on High Performance Switching and Routing (HPSR). 1–8. https://doi.org/10.1109/HPSR.2018.8850758
    [70]
    S. Miano, F. Risso, M. V. Bernal, M. Bertrone, and Y. Lu. 2021. A Framework for eBPF-based Network Functions in an Era of Microservices. IEEE Transactions on Network and Service Management, 1–1. https://doi.org/10.1109/TNSM.2021.3055676
    [71]
    László Molnár, Gergely Pongrácz, Gábor Enyedi, Zoltán Lajos Kis, Levente Csikor, Ferenc Juhász, Attila Kőrösi, and Gábor Rétvári. 2016. Dataplane Specialization for High-Performance OpenFlow Software Switching. In Proceedings of the 2016 ACM SIGCOMM Conference (SIGCOMM ’16). Association for Computing Machinery, New York, NY, USA. 539–552. isbn:9781450341936 https://doi.org/10.1145/2934872.2934887
    [72]
    Manasij Mukherjee, Pranav Kant, Zhengyang Liu, and John Regehr. 2020. Dataflow-Based Pruning for Speeding up Superoptimization. Proc. ACM Program. Lang., 4, OOPSLA (2020), Article 177, Nov., 24 pages. https://doi.org/10.1145/3428245
    [73]
    Vladimir Olteanu, Alexandru Agache, Andrei Voinescu, and Costin Raiciu. 2018. Stateless Datacenter Load-balancing with Beamer. In 15th USENIX Symposium on Networked Systems Design and Implementation (NSDI 18). USENIX Association, Renton, WA. 125–139. isbn:978-1-939133-01-4 https://dl.acm.org/doi/10.5555/3307441.3307453
    [74]
    OpenStack Authors. 2020. OpenStack. https://www.openstack.org/ [Online; accessed 07-August-2021].
    [75]
    Oracle. 2021. Java HotSpot VM Options. https://www.oracle.com/java/technologies/javase/vmoptions-jsp.html [Online; accessed 12-August-2021].
    [76]
    2018. The Open Virtual Network architecture: Tunnel Encapsulations. http://www.openvswitch.org/support/dist-docs/ovn-architecture.7.html [Online; accessed 07-August-2021].
    [77]
    Maksim Panchenko, Rafael Auler, Bill Nell, and Guilherme Ottoni. 2019. BOLT: A Practical Binary Optimizer for Data Centers and Beyond. In Proceedings of the 2019 IEEE/ACM International Symposium on Code Generation and Optimization (CGO 2019). IEEE Press, 2–14. isbn:9781728114361 https://dl.acm.org/doi/10.5555/3314872.3314876
    [78]
    Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, and Scott Shenker. 2016. NetBricks: Taking the V out of NFV. In Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation (OSDI’16). USENIX Association, USA. 203–216. isbn:9781931971331 https://www.usenix.org/conference/osdi16/technical-sessions/presentation/panda
    [79]
    Luis Pedrosa, Rishabh Iyer, Arseniy Zaostrovnykh, Jonas Fietz, and Katerina Argyraki. 2018. Automated Synthesis of Adversarial Workloads for Network Functions. In Proceedings of the 2018 Conference of the ACM Special Interest Group on Data Communication (SIGCOMM ’18). Association for Computing Machinery, New York, NY, USA. 372–385. isbn:9781450355674 https://doi.org/10.1145/3230543.3230573
    [80]
    Phitchaya Mangpo Phothilimthana, Aditya Thakur, Rastislav Bodik, and Dinakar Dhurjati. 2016. Scaling up Superoptimization. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’16). Association for Computing Machinery, New York, NY, USA. 297–310. isbn:9781450340915 https://doi.org/10.1145/2872362.2872387
    [81]
    Felix Rath, Johannes Krude, Jan Rüth, Daniel Schemmel, Oliver Hohlfeld, Jó Á. Bitsch, and Klaus Wehrle. 2017. SymPerf: Predicting Network Function Performance. In Proceedings of the SIGCOMM Posters and Demos (SIGCOMM Posters and Demos ’17). Association for Computing Machinery, New York, NY, USA. 34–36. isbn:9781450350570 https://doi.org/10.1145/3123878.3131977
    [82]
    Gábor Rétvári, László Molnár, Gábor Enyedi, and Gergely Pongrácz. 2017. Dynamic Compilation and Optimization of Packet Processing Programs. ACM SIGCOMM NetPL.
    [83]
    Jonathan Ribas. 2019. DPDK burst replay tool. https://github.com/FraudBuster/dpdk-burst-replay [Online; accessed 07-August-2021].
    [84]
    Luigi Rizzo. 2012. Netmap: A Novel Framework for Fast Packet I/O. In Proceedings of the 2012 USENIX Conference on Annual Technical Conference (USENIX ATC’12). USENIX Association, USA. 9. https://dl.acm.org/doi/10.5555/2342821.2342830
    [85]
    Raimondas Sasnauskas, Yang Chen, Peter Collingbourne, Jeroen Ketema, Jubi Taneja, and John Regehr. 2017. Souper: A Synthesizing Superoptimizer. arxiv:1711.04422
    [86]
    Vyas Sekar, Norbert Egi, Sylvia Ratnasamy, Michael K. Reiter, and Guangyu Shi. 2012. Design and Implementation of a Consolidated Middlebox Architecture. In Presented as part of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI 12). USENIX, San Jose, CA. 323–336. isbn:978-931971-92-8 https://www.usenix.org/conference/nsdi12/technical-sessions/presentation/sekar
    [87]
    Muhammad Shahbaz and Nick Feamster. 2015. The Case for an Intermediate Representation for Programmable Data Planes. In Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research (SOSR ’15). Association for Computing Machinery, New York, NY, USA. Article 3, 6 pages. isbn:9781450334518 https://doi.org/10.1145/2774993.2775000
    [88]
    Muhammad Shahbaz and Nick Feamster. 2015. The Case for an Intermediate Representation for Programmable Data Planes. In Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research (SOSR ’15). Association for Computing Machinery, New York, NY, USA. Article 3, 6 pages. isbn:9781450334518 https://doi.org/10.1145/2774993.2775000
    [89]
    Sourcefire. 2020. Snort - Network Intrusion Detection & Prevention System. https://www.snort.org/ [Online; accessed 07-August-2021].
    [90]
    StackOverflow. 2011. What can cause my code to run slower when the server JIT is activated? https://stackoverflow.com/questions/2923989/what-can-cause-my-code-to-run-slower-when-the-server-jit-is-activated
    [91]
    Chen Sun, Jun Bi, Zhilong Zheng, Heng Yu, and Hongxin Hu. 2017. NFP: Enabling Network Function Parallelism in NFV. In Proceedings of the Conference of the ACM Special Interest Group on Data Communication (SIGCOMM ’17). Association for Computing Machinery, New York, NY, USA. 43–56. isbn:9781450346535 https://doi.org/10.1145/3098822.3098826
    [92]
    David E Taylor and Jonathan S Turner. [n.d.]. Classbench Filter Set & Trace Generator. https://www.arl.wustl.edu/classbench/
    [93]
    David E Taylor and Jonathan S Turner. 2007. Classbench: A packet classification benchmark. IEEE/ACM transactions on networking, 15, 3 (2007), 499–511. https://doi.org/10.1109/TNET.2007.893156
    [94]
    Patrick Wintermeyer, Maria Apostolaki, Alexander Dietmüller, and Laurent Vanbever. 2020. P2GO: P4 Profile-Guided Optimizations. In Hot Topics in Networks (HotNets). ACM.
    [95]
    Jonathan Worthington. 2018. Eliminating unrequired guards. https://6guts.wordpress.com/2018/09/29/eliminating-unrequired-guards/ [Online; accessed 12-August-2021].
    [96]
    David Wragg. 2020. Unimog - Cloudflare’s edge load balancer. https://blog.cloudflare.com/unimog-cloudflares-edge-load-balancer/
    [97]
    Mathieu Xhonneux, Fabien Duchene, and Olivier Bonaventure. 2018. Leveraging EBPF for Programmable Network Functions with IPv6 Segment Routing. In Proceedings of the 14th International Conference on Emerging Networking EXperiments and Technologies (CoNEXT ’18). Association for Computing Machinery, New York, NY, USA. 67–72. isbn:9781450360807 https://doi.org/10.1145/3281411.3281426
    [98]
    Yonghong Song. 2019. bpf: adding map batch processing support. https://lwn.net/Articles/797808/ [Online; accessed 12-August-2021].
    [99]
    Yifan Yuan, Mohammad Alian, Yipeng Wang, Ren Wang, Ilia Kurakin, Charlie Tai, and Nam Sung Kim. 2021. Don’t Forget the I/O When Allocating Your LLC. In Proceedings of the 48th Annual International Symposium on Computer Architecture (ISCA ’21). IEEE Press, 112–125. isbn:9781450390866 https://doi.org/10.1109/ISCA52012.2021.00018
    [100]
    Rui Zhang, Saumya Debray, and Richard T. Snodgrass. 2012. Micro-Specialization: Dynamic Code Specialization of Database Management Systems. In Proceedings of the Tenth International Symposium on Code Generation and Optimization (CGO ’12). Association for Computing Machinery, New York, NY, USA. 63–73. isbn:9781450312066 https://doi.org/10.1145/2259016.2259025

    Cited By

    View all
    • (2024)Morpheus: A Run Time Compiler and Optimizer for Software Data PlanesIEEE/ACM Transactions on Networking10.1109/TNET.2023.334628632:3(2269-2284)Online publication date: 1-Jun-2024
    • (2024)One Automaton to Rule Them All: Beyond Multiple Regular Expressions Execution2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)10.1109/CGO57630.2024.10444810(193-206)Online publication date: 2-Mar-2024
    • (2024)Accelerating network analytics with an on-NIC streaming engineComputer Networks: The International Journal of Computer and Telecommunications Networking10.1016/j.comnet.2024.110231241:COnline publication date: 25-Jun-2024
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASPLOS '22: Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
    February 2022
    1164 pages
    ISBN:9781450392051
    DOI:10.1145/3503222
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 22 February 2022

    Permissions

    Request permissions for this article.

    Check for updates

    Badges

    Author Tags

    1. DPDK
    2. Data Plane Compilation
    3. LLVM
    4. XDP
    5. eBPF

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    ASPLOS '22

    Acceptance Rates

    Overall Acceptance Rate 535 of 2,713 submissions, 20%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)191
    • Downloads (Last 6 weeks)20
    Reflects downloads up to 12 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Morpheus: A Run Time Compiler and Optimizer for Software Data PlanesIEEE/ACM Transactions on Networking10.1109/TNET.2023.334628632:3(2269-2284)Online publication date: 1-Jun-2024
    • (2024)One Automaton to Rule Them All: Beyond Multiple Regular Expressions Execution2024 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)10.1109/CGO57630.2024.10444810(193-206)Online publication date: 2-Mar-2024
    • (2024)Accelerating network analytics with an on-NIC streaming engineComputer Networks: The International Journal of Computer and Telecommunications Networking10.1016/j.comnet.2024.110231241:COnline publication date: 25-Jun-2024
    • (2023)Galette: a Lightweight XDP Dataplane on your Raspberry Pi2023 IFIP Networking Conference (IFIP Networking)10.23919/IFIPNetworking57963.2023.10186412(1-9)Online publication date: 12-Jun-2023
    • (2023)Disaggregate Applications Along End-Host Data-PathProceedings of the on CoNEXT Student Workshop 202310.1145/3630202.3630230(27-28)Online publication date: 8-Dec-2023
    • (2023)Fast In-kernel Traffic Sketching in eBPFACM SIGCOMM Computer Communication Review10.1145/3594255.359425653:1(3-13)Online publication date: 20-Apr-2023
    • (2023)Automatic Kernel Offload Using BPFProceedings of the 19th Workshop on Hot Topics in Operating Systems10.1145/3593856.3595888(143-149)Online publication date: 22-Jun-2023
    • (2022)A novel programmable software datapath for software-defined networkingProceedings of the 18th International Conference on emerging Networking EXperiments and Technologies10.1145/3555050.3569117(245-260)Online publication date: 30-Nov-2022

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media