{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T18:34:36Z","timestamp":1777487676394,"version":"3.51.4"},"reference-count":28,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2023,1,1]],"date-time":"2023-01-01T00:00:00Z","timestamp":1672531200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100000780","name":"European Union","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100000780","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGCOMM Comput. Commun. Rev."],"published-print":{"date-parts":[[2023,1]]},"abstract":"<jats:p>Telecommunication operators are massively moving their network functions in small data centers at the edge of the network, which are becoming increasingly common. However, the high performance provided by commonly used technologies for data plane processing such as DPDK, based on kernel-bypass primitives, comes at the cost of rigid resource partitioning. This is unsuitable for edge data centers, in which efficiency demands both general-purpose applications and data-plane telco workloads to be executed on the same (shared) physical machines. In this respect, eBPF\/XDP looks a more appealing solution, thanks to its capability to process packets in the kernel, achieving a higher level of integration with non-data plane applications albeit with lower performance than DPDK. In this paper we leverage the recent introduction of AF_XDP, an XDP-based technology that allows to efficiently steer packets in user space, to provide a thorough comparison of user space vs in-kernel packet processing in typical scenarios of a data center at the edge of the network. Our results provide useful insights on how to select and combine these technologies in order to improve overall throughput and optimize resource usage.<\/jats:p>","DOI":"10.1145\/3594255.3594257","type":"journal-article","created":{"date-parts":[[2023,4,21]],"date-time":"2023-04-21T02:09:41Z","timestamp":1682042981000},"page":"14-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":26,"title":["Comparing User Space and In-Kernel Packet Processing for Edge Data Centers"],"prefix":"10.1145","volume":"53","author":[{"given":"Federico","family":"Parola","sequence":"first","affiliation":[{"name":"Politecnico di Torino, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Roberto","family":"Procopio","sequence":"additional","affiliation":[{"name":"TIM S.p.A., Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Roberto","family":"Querio","sequence":"additional","affiliation":[{"name":"TIM S.p.A., Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Fulvio","family":"Risso","sequence":"additional","affiliation":[{"name":"Politecnico di Torino, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2023,4,20]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/NFV-SDN50289.2020.9289867"},{"key":"e_1_2_1_2_1","unstructured":"Jesper Dangaard Brouer. 2022. bpf-examples - AF_XDP-interaction. Online. https:\/\/github.com\/xdp-project\/bpf-examples\/tree\/master\/AF_XDP-interaction  Jesper Dangaard Brouer. 2022. bpf-examples - AF_XDP-interaction. Online. https:\/\/github.com\/xdp-project\/bpf-examples\/tree\/master\/AF_XDP-interaction"},{"key":"e_1_2_1_3_1","unstructured":"Jesper Dangaard Brouer. 2022. XDP-hints: XDP gaining access to HW offload hints via BTF. Online. https:\/\/lwn.net\/Articles\/907658\/  Jesper Dangaard Brouer. 2022. XDP-hints: XDP gaining access to HW offload hints via BTF. Online. https:\/\/lwn.net\/Articles\/907658\/"},{"key":"e_1_2_1_4_1","unstructured":"Jonathan Corbet. 2009. Receive packet steering. Online. https:\/\/lwn.net\/Articles\/362339\/  Jonathan Corbet. 2009. Receive packet steering. Online. https:\/\/lwn.net\/Articles\/362339\/"},{"key":"e_1_2_1_5_1","unstructured":"Jonathan Corbet. 2018. AF_XDP. Online. https:\/\/lwn.net\/Articles\/750845\/  Jonathan Corbet. 2018. AF_XDP. Online. https:\/\/lwn.net\/Articles\/750845\/"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.23919\/CNSM52442.2021.9615553"},{"key":"e_1_2_1_7_1","unstructured":"Jake Edge. 2010. Receive flow steering. Online. https:\/\/lwn.net\/Articles\/382428\/  Jake Edge. 2010. Receive flow steering. Online. https:\/\/lwn.net\/Articles\/382428\/"},{"key":"e_1_2_1_8_1","volume-title":"2020 USENIX Annual Technical Conference (USENIX ATC 20)","author":"Farshin Alireza","year":"2020","unstructured":"Alireza Farshin , Amir Roozbeh , Gerald Q. Maguire Jr ., and Dejan Kosti\u0107 . 2020 . Reexamining Direct Cache Access to Optimize I\/O Intensive Applications for Multi-hundred-gigabit Networks . In 2020 USENIX Annual Technical Conference (USENIX ATC 20) . USENIX Association, Berkeley, CA, USA, 673--689. https:\/\/www.usenix.org\/conference\/atc20\/presentation\/farshin Alireza Farshin, Amir Roozbeh, Gerald Q. Maguire Jr., and Dejan Kosti\u0107. 2020. Reexamining Direct Cache Access to Optimize I\/O Intensive Applications for Multi-hundred-gigabit Networks. In 2020 USENIX Annual Technical Conference (USENIX ATC 20). USENIX Association, Berkeley, CA, USA, 673--689. https:\/\/www.usenix.org\/conference\/atc20\/presentation\/farshin"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/1012889.1012894"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/NETSOFT.2019.8806651"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3281411.3281443"},{"key":"e_1_2_1_12_1","volume-title":"11th USENIX Symposium on Networked Systems Design and Implementation (NSDI 14)","author":"Jeong EunYoung","year":"2014","unstructured":"EunYoung Jeong , Shinae Wood , Muhammad Jamshed , Haewon Jeong , Sunghwan Ihm , Dongsu Han , and KyoungSoo Park . 2014 . mTCP: a Highly Scalable User-level TCP Stack for Multicore Systems . In 11th USENIX Symposium on Networked Systems Design and Implementation (NSDI 14) . USENIX Association, Seattle, WA, 489--502. https:\/\/www.usenix.org\/conference\/nsdi14\/technical-sessions\/presentation\/jeong EunYoung Jeong, Shinae Wood, Muhammad Jamshed, Haewon Jeong, Sunghwan Ihm, Dongsu Han, and KyoungSoo Park. 2014. mTCP: a Highly Scalable User-level TCP Stack for Multicore Systems. In 11th USENIX Symposium on Networked Systems Design and Implementation (NSDI 14). USENIX Association, Seattle, WA, 489--502. https:\/\/www.usenix.org\/conference\/nsdi14\/technical-sessions\/presentation\/jeong"},{"key":"e_1_2_1_13_1","unstructured":"Magnus Karlsson. 2019. add need_wakeup flag to the AF_XDP rings. Online. https:\/\/patchwork.ozlabs.org\/cover\/1115314  Magnus Karlsson. 2019. add need_wakeup flag to the AF_XDP rings. Online. https:\/\/patchwork.ozlabs.org\/cover\/1115314"},{"key":"e_1_2_1_14_1","volume-title":"Linux Plumbers Conference. Linux foundation","author":"Karlsson Magnus","year":"2018","unstructured":"Magnus Karlsson and Bj\u00f6rn T\u00f6pel . 2018 . The path to DPDK speeds for AF XDP . In Linux Plumbers Conference. Linux foundation , San Francisco, California, 9 pages. Magnus Karlsson and Bj\u00f6rn T\u00f6pel. 2018. The path to DPDK speeds for AF XDP. In Linux Plumbers Conference. Linux foundation, San Francisco, California, 9 pages."},{"key":"e_1_2_1_15_1","unstructured":"Jeffrey T Kirsher. 2017. i40e\/i40evf: Use build_skb to build frames. Online. https:\/\/patchwork.ozlabs.org\/patch\/748562  Jeffrey T Kirsher. 2017. i40e\/i40evf: Use build_skb to build frames. Online. https:\/\/patchwork.ozlabs.org\/patch\/748562"},{"key":"e_1_2_1_16_1","unstructured":"Linux kernel documentation. 2022. Scaling in the Linux Networking Stack. Online. https:\/\/www.kernel.org\/doc\/Documentation\/networking\/scaling.txt  Linux kernel documentation. 2022. Scaling in the Linux Networking Stack. Online. https:\/\/www.kernel.org\/doc\/Documentation\/networking\/scaling.txt"},{"key":"e_1_2_1_17_1","unstructured":"Paul McKenney. 2007. What is RCU Fundamentally? Online. https:\/\/lwn.net\/Articles\/262464\/  Paul McKenney. 2007. What is RCU Fundamentally? Online. https:\/\/lwn.net\/Articles\/262464\/"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPSR.2018.8850758"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/NetSoft51509.2021.9492571"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2168836.2168870"},{"key":"e_1_2_1_21_1","unstructured":"Clayne B Robison. 2017. How to Set Up Intel\u00ae Ethernet Flow Director. Online. https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/articles\/training\/setting-up-intel-ethernet-flow-director.html  Clayne B Robison. 2017. How to Set Up Intel \u00ae Ethernet Flow Director. Online. https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/articles\/training\/setting-up-intel-ethernet-flow-director.html"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3485983.3493349"},{"key":"e_1_2_1_23_1","unstructured":"William Tu. 2018. AF_XDP support for veth. Online. https:\/\/patchwork.ozlabs.org\/cover\/1015775\/  William Tu. 2018. AF_XDP support for veth. Online. https:\/\/patchwork.ozlabs.org\/cover\/1015775\/"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3452296.3472914"},{"key":"e_1_2_1_25_1","unstructured":"Bj\u00f6rn T\u00f6pel. 2018. AF_XDP zero-copy support. Online. https:\/\/lwn.net\/Articles\/754659\/  Bj\u00f6rn T\u00f6pel. 2018. AF_XDP zero-copy support. Online. https:\/\/lwn.net\/Articles\/754659\/"},{"key":"e_1_2_1_26_1","unstructured":"Bj\u00f6rn T\u00f6pel. 2020. Introduce preferred busy-polling. Online. https:\/\/lwn.net\/Articles\/836250\/  Bj\u00f6rn T\u00f6pel. 2020. Introduce preferred busy-polling. Online. https:\/\/lwn.net\/Articles\/836250\/"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/TNSM.2020.3000255"},{"key":"e_1_2_1_28_1","volume-title":"NFV Performance Profiling on Multi-core Servers. In 2020 IFIP Networking Conference (Networking). IEEE, IEEE","author":"Zheng Peng","year":"2020","unstructured":"Peng Zheng , Wendi Feng , Arvind Narayanan , and Zhi-Li Zhang . 2020 . NFV Performance Profiling on Multi-core Servers. In 2020 IFIP Networking Conference (Networking). IEEE, IEEE , New York, NY, USA, 91--99. Peng Zheng, Wendi Feng, Arvind Narayanan, and Zhi-Li Zhang. 2020. NFV Performance Profiling on Multi-core Servers. In 2020 IFIP Networking Conference (Networking). IEEE, IEEE, New York, NY, USA, 91--99."}],"container-title":["ACM SIGCOMM Computer Communication Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3594255.3594257","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3594255.3594257","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:38:11Z","timestamp":1750178291000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3594255.3594257"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,1]]},"references-count":28,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2023,1]]}},"alternative-id":["10.1145\/3594255.3594257"],"URL":"https:\/\/doi.org\/10.1145\/3594255.3594257","relation":{},"ISSN":["0146-4833"],"issn-type":[{"value":"0146-4833","type":"print"}],"subject":[],"published":{"date-parts":[[2023,1]]},"assertion":[{"value":"2023-04-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}