{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,25]],"date-time":"2025-10-25T14:17:35Z","timestamp":1761401855432,"version":"3.41.0"},"reference-count":33,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2017,1,17]],"date-time":"2017-01-17T00:00:00Z","timestamp":1484611200000},"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":["SIGCOMM Comput. Commun. Rev."],"published-print":{"date-parts":[[2017,1,17]]},"abstract":"<jats:p>Software-defined networking (SDN) is a well-known example of a research idea that has been reduced to practice in numerous settings. Network virtualization has been successfully developed commercially using SDN techniques. This paper describes our experience in developing production-ready, multi-vendor implementations of a complex network virtualization system. Having struggled with a traditional network protocol approach (based on OpenFlow) to achieving interoperability among vendors, we adopted a new approach. We focused first on defining the control information content and then used a generic database protocol to synchronize state between the elements. Within less than nine months of starting the design, we had achieved basic interoperability between our network virtualization controller and the hardware switches of six vendors. This was a qualitative improvement on our decidedly mixed experience using OpenFlow. We found a number of benefits to the database approach, such as speed of implementation, greater hardware diversity, the ability to abstract away implementation details of the hardware, clarified state consistency model, and extensibility of the overall system.<\/jats:p>","DOI":"10.1145\/3041027.3041030","type":"journal-article","created":{"date-parts":[[2017,1,18]],"date-time":"2017-01-18T13:13:59Z","timestamp":1484745239000},"page":"15-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":30,"title":["A Database Approach to SDN Control Plane Design"],"prefix":"10.1145","volume":"47","author":[{"given":"Bruce","family":"Davie","sequence":"first","affiliation":[{"name":"VMware"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Teemu","family":"Koponen","sequence":"additional","affiliation":[{"name":"Styra"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Justin","family":"Pettit","sequence":"additional","affiliation":[{"name":"VMware"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ben","family":"Pfaff","sequence":"additional","affiliation":[{"name":"VMware"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Martin","family":"Casado","sequence":"additional","affiliation":[{"name":"VMware"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Natasha","family":"Gude","sequence":"additional","affiliation":[{"name":"Facebook"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Amar","family":"Padmanabhan","sequence":"additional","affiliation":[{"name":"Facebook"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tim","family":"Petty","sequence":"additional","affiliation":[{"name":"VMware"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Kenneth","family":"Duda","sequence":"additional","affiliation":[{"name":"Arista Networks"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Anupam","family":"Chanda","sequence":"additional","affiliation":[{"name":"VMware"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,1,17]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"A. Andreyev. Introducing data center fabric the next-generation facebook data center network. https:\/\/code.facebook.com\/posts\/360346274145943\/introducing-data-center-fabric-the-next-generation-facebook-data-center-network\/ Nov. 2014.  A. Andreyev. Introducing data center fabric the next-generation facebook data center network. https:\/\/code.facebook.com\/posts\/360346274145943\/introducing-data-center-fabric-the-next-generation-facebook-data-center-network\/ Nov. 2014."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2656877.2656890"},{"volume-title":"Proc. CoNEXT","year":"2010","author":"Chen X.","key":"e_1_2_1_3_1"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1672308.1672321"},{"volume-title":"Proc. of NSDI","year":"2012","author":"Dobrescu M.","key":"e_1_2_1_5_1"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629578"},{"volume-title":"IETF","year":"2011","author":"Enns R.","key":"e_1_2_1_7_1"},{"key":"e_1_2_1_8_1","unstructured":"Google. Protocol Buffers. https:\/\/developers.google.com\/protocol-buffers\/.  Google. Protocol Buffers. https:\/\/developers.google.com\/protocol-buffers\/."},{"key":"e_1_2_1_9_1","first-page":"38","author":"Gude N.","year":"2008","journal-title":"NOX: Towards an Operating System for Networks. SIGCOMM CCR"},{"volume-title":"IETF","year":"2002","author":"Harrington D.","key":"e_1_2_1_10_1"},{"key":"e_1_2_1_11_1","unstructured":"Intel. Intel Data Plane Development Kit (Intel DPDK): Programmer's Guide October 2013.  Intel. Intel Data Plane Development Kit (Intel DPDK): Programmer's Guide October 2013."},{"volume-title":"IETF","year":"2010","author":"Katz D.","key":"e_1_2_1_12_1"},{"volume-title":"Proc. of NSDI","year":"2014","author":"Koponen T.","key":"e_1_2_1_13_1"},{"volume-title":"Proc. of OSDI","year":"2010","author":"Koponen T.","key":"e_1_2_1_14_1"},{"volume-title":"IETF","year":"2014","author":"Lasserre M.","key":"e_1_2_1_15_1"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1592761.1592785"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1080091.1080126"},{"volume-title":"IETF","year":"2014","author":"Mahalingam M.","key":"e_1_2_1_18_1"},{"volume-title":"IETF","year":"2003","author":"Moy J.","key":"e_1_2_1_19_1"},{"key":"e_1_2_1_20_1","unstructured":"Open vSwitch - An Open Virtual Switch. http:\/\/www.openvswitch.org September 2016.  Open vSwitch - An Open Virtual Switch. http:\/\/www.openvswitch.org September 2016."},{"key":"e_1_2_1_21_1","unstructured":"Open vSwitch version 2.6. https:\/\/github.com\/openvswitch\/ovs\/tree\/branch-2.6 November 2016.  Open vSwitch version 2.6. https:\/\/github.com\/openvswitch\/ovs\/tree\/branch-2.6 November 2016."},{"key":"e_1_2_1_22_1","unstructured":"OpenFlow. http:\/\/www.opennetworking.org\/sdn-resources\/onf-specifications\/openflow January 2014.  OpenFlow. http:\/\/www.opennetworking.org\/sdn-resources\/onf-specifications\/openflow January 2014."},{"key":"e_1_2_1_23_1","unstructured":"OpenStack - Open Source Software for Creating Private and Public Clouds. http:\/\/www.openstack.org September 2016.  OpenStack - Open Source Software for Creating Private and Public Clouds. http:\/\/www.openstack.org September 2016."},{"key":"e_1_2_1_24_1","unstructured":"ovn-architecture--Open Virtual Network architecture. http:\/\/openvswitch.org\/support\/dist-docs\/ovn-architecture.7.html.  ovn-architecture--Open Virtual Network architecture. http:\/\/openvswitch.org\/support\/dist-docs\/ovn-architecture.7.html."},{"volume-title":"IETF","year":"2013","author":"Pfaff B.","key":"e_1_2_1_25_1"},{"volume-title":"Proc. of NSDI","year":"2015","author":"Pfaff B.","key":"e_1_2_1_26_1"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2342356.2342427"},{"key":"e_1_2_1_28_1","first-page":"4271","volume":"4","author":"Rekhter Y.","year":"2006","journal-title":"A Border Gateway Protocol"},{"volume-title":"IETF","year":"2007","author":"Sangli S.","key":"e_1_2_1_29_1"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2785956.2787508"},{"key":"e_1_2_1_31_1","first-page":"0401","author":"Slee M.","year":"2007","journal-title":"Thrift: Scalable Cross-Language Services Implementation. http:\/\/thrift.apache.org\/static\/files\/thrift-"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2619239.2626298"},{"key":"e_1_2_1_33_1","unstructured":"Hardware VTEP Database Schema. http:\/\/openvswitch.org\/support\/dist-docs\/vtep.5.pdf.  Hardware VTEP Database Schema. http:\/\/openvswitch.org\/support\/dist-docs\/vtep.5.pdf."}],"container-title":["ACM SIGCOMM Computer Communication Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3041027.3041030","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3041027.3041030","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:03:31Z","timestamp":1750215811000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3041027.3041030"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,1,17]]},"references-count":33,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2017,1,17]]}},"alternative-id":["10.1145\/3041027.3041030"],"URL":"https:\/\/doi.org\/10.1145\/3041027.3041030","relation":{},"ISSN":["0146-4833"],"issn-type":[{"type":"print","value":"0146-4833"}],"subject":[],"published":{"date-parts":[[2017,1,17]]},"assertion":[{"value":"2017-01-17","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}