{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,26]],"date-time":"2025-09-26T00:11:58Z","timestamp":1758845518033,"version":"3.41.0"},"reference-count":25,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2017,9,11]],"date-time":"2017-09-11T00:00:00Z","timestamp":1505088000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGOPS Oper. Syst. Rev."],"published-print":{"date-parts":[[2017,9,11]]},"abstract":"<jats:p>The virtual switch is the cornerstone of the today's virtualized data center. As all traffic to and from virtual machines or containers must pass through a vSwitch, it is the ideal location for network configuration and policy enforcement.<\/jats:p>\n          <jats:p>The bulk of Open vSwitch functionality is platform-agnostic and portable. However the datapath, which touches every packet, is unique to each supported platform. Maintaining each datapath requires duplicated effort and the result has been inconsistent support of features across platforms. Even on a single platform, the features supported by a particular kernel version can vary. Further, datapath functionality must be broadly useful which prevents having application-specific features in the fast path.<\/jats:p>\n          <jats:p>eBPF, extended Berkeley Packet Filter, enables userspace applications to customize and extend the Linux kernel's functionality. It provides flexible platform abstractions for network functions, and is being ported to a variety of platforms. This paper describes the design, implementation, and evaluation of an eBPF-based extensible OVS datapath. The eBPF OVS datapath delivers the equivalent functionality of the existing OVS kernel datapath, while significantly reducing development pain points around maintainability and extensibility. We demonstrate that these benefits don't necessarily have a trade off in regards to performance, with the eBPFbased datapath showing negligible overhead compared to the existing kernel datapath.<\/jats:p>","DOI":"10.1145\/3139645.3139657","type":"journal-article","created":{"date-parts":[[2017,9,12]],"date-time":"2017-09-12T18:56:39Z","timestamp":1505242599000},"page":"72-77","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":22,"title":["Building an Extensible Open vSwitch Datapath"],"prefix":"10.1145","volume":"51","author":[{"given":"Cheng-Chun","family":"Tu","sequence":"first","affiliation":[{"name":"VMware"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Joe","family":"Stringer","sequence":"additional","affiliation":[{"name":"VMware"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Justin","family":"Pettit","sequence":"additional","affiliation":[{"name":"VMware"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,9,11]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"IO Visor Project. https:\/\/www.iovisor.org\/ 2016.  IO Visor Project. https:\/\/www.iovisor.org\/ 2016."},{"volume-title":"ACM SIGCOMM CCR","year":"2016","author":"Ahmed Zaafar","key":"e_1_2_1_2_1"},{"key":"e_1_2_1_3_1","unstructured":"BCC Authors. BCC - tools for bpf-based linux io analysis networking monitoring and more. https:\/\/github.com\/iovisor\/bcc 2016.  BCC Authors. BCC - tools for bpf-based linux io analysis networking monitoring and more. https:\/\/github.com\/iovisor\/bcc 2016."},{"key":"e_1_2_1_4_1","unstructured":"Cilium Authors. BPF and XDP for containers. https:\/\/github.com\/cilium\/cilium 2016.  Cilium Authors. BPF and XDP for containers. https:\/\/github.com\/cilium\/cilium 2016."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/316194.316214"},{"volume-title":"Linux kernel, commit b2197755b263.","year":"2015","author":"Sowa Starovoitov","key":"e_1_2_1_6_1"},{"volume-title":"Linux kernel, commit 555c8a8623a3.","year":"2016","author":"Borkmann D.","key":"e_1_2_1_7_1"},{"volume-title":"Linux kernel, commit 36bbef52c7eb.","year":"2016","author":"Borkmann D.","key":"e_1_2_1_8_1"},{"volume-title":"Linux kernel, commit bd570ff970a5.","year":"2016","author":"Borkmann D.","key":"e_1_2_1_9_1"},{"key":"e_1_2_1_10_1","unstructured":"Daniel Borkmann. Advanced programmability and recent updates with tc's cls bpf. NetDev 1.2 2016.  Daniel Borkmann. Advanced programmability and recent updates with tc's cls bpf. NetDev 1.2 2016."},{"key":"e_1_2_1_11_1","unstructured":"Daniel Borkmann. On getting tc classifier fully programmable with cls bpf. NetDev 1.1 2016.  Daniel Borkmann. On getting tc classifier fully programmable with cls bpf. NetDev 1.1 2016."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2656877.2656890"},{"key":"e_1_2_1_13_1","unstructured":"Jonathan Corbet. Extending extended bpf. https:\/\/lwn.net\/Articles\/603983\/ 2014.  Jonathan Corbet. Extending extended bpf. https:\/\/lwn.net\/Articles\/603983\/ 2014."},{"volume-title":"ACM SIGCOMM","year":"2015","author":"Kim Changhoon","key":"e_1_2_1_14_1"},{"volume-title":"USENIX winter","year":"1993","author":"McCanne Steven","key":"e_1_2_1_15_1"},{"first-page":"175","volume-title":"Ottawa Linux Symposium Conference Proceedings","author":"McKenney Paul E.","key":"e_1_2_1_16_1"},{"volume-title":"ACM SIGOPS Operating Systems Review","year":"2017","author":"Pettit Justin","key":"e_1_2_1_17_1"},{"volume-title":"Proceedings of Netdev 0.1","year":"2015","author":"P\u00edrko Ji\u0159\u00ed","key":"e_1_2_1_18_1"},{"volume-title":"OVS Fall Conference","year":"2016","author":"Risso Fulvio","key":"e_1_2_1_19_1"},{"key":"e_1_2_1_20_1","unstructured":"Jamal Hadi Salim. Linux traffic control classifier-action subsystem architecture.  Jamal Hadi Salim. Linux traffic control classifier-action subsystem architecture."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2934872.2934886"},{"volume-title":"Linux kernel, commit 622582786c9e.","year":"2014","author":"Starovoitov A.","key":"e_1_2_1_22_1"},{"volume-title":"Linux kernel, commit 04fd61ab36ec.","year":"2015","author":"Starovoitov A.","key":"e_1_2_1_23_1"},{"volume-title":"Linux kernel, commit 969bf05eb3ce.","year":"2016","author":"Starovoitov A.","key":"e_1_2_1_24_1"},{"key":"e_1_2_1_25_1","first-page":"33","volume-title":"11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14)","author":"Wang Xi","year":"2014"}],"container-title":["ACM SIGOPS Operating Systems Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3139645.3139657","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3139645.3139657","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:30:39Z","timestamp":1750217439000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3139645.3139657"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,9,11]]},"references-count":25,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2017,9,11]]}},"alternative-id":["10.1145\/3139645.3139657"],"URL":"https:\/\/doi.org\/10.1145\/3139645.3139657","relation":{},"ISSN":["0163-5980"],"issn-type":[{"type":"print","value":"0163-5980"}],"subject":[],"published":{"date-parts":[[2017,9,11]]},"assertion":[{"value":"2017-09-11","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}