skip to main content
10.1145/2934872.2934886acmconferencesArticle/Chapter ViewAbstractPublication PagescommConference Proceedingsconference-collections
research-article
Public Access

PISCES: A Programmable, Protocol-Independent Software Switch

Published:22 August 2016Publication History

ABSTRACT

Hypervisors use software switches to steer packets to and from virtual machines (VMs). These switches frequently need upgrading and customization—to support new protocol headers or encapsulations for tunneling and overlays, to improve measurement and debugging features, and even to add middlebox-like functions. Software switches are typically based on a large body of code, including kernel code, and changing the switch is a formidable undertaking requiring domain mastery of network protocol design and developing, testing, and maintaining a large, complex codebase. Changing how a software switch forwards packets should not require intimate knowledge of its implementation. Instead, it should be possible to specify how packets are processed and forwarded in a high-level domain-specific language (DSL) such as P4, and compiled to run on a software switch. We present PISCES, a software switch derived from Open vSwitch (OVS), a hard-wired hypervisor switch, whose behavior is customized using P4. PISCES is not hard-wired to specific protocols; this independence makes it easy to add new features. We also show how the compiler can analyze the high-level specification to optimize forwarding performance. Our evaluation shows that PISCES performs comparably to OVS and that PISCES programs are about 40 times shorter than equivalent changes to OVS source code.

References

  1. 1.P4 program for OVS, June 2015. https://github.com/blp/ovs-reviews/blob/p4-workshop/tests/ovs.p4.Google ScholarGoogle Scholar
  2. 2.P4-vSwitch. https://github.com/P4-vSwitch, 2016.Google ScholarGoogle Scholar
  3. 3.A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley Longman Publishing Co., Inc., 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.M. Alizadeh, T. Edsall, S. Dharmapurikar, R. Vaidyanathan, K. Chu, A. Fingerhut, V. T. Lam, F. Matus, R. Pan, N. Yadav, and G. Varghese. CONGA: Distributed Congestion-aware Load Balancing for Datacenters. In ACM SIGCOMM, pages 503–514, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.D. G. Andersen, H. Balakrishnan, N. Feamster, T. Koponen, D. Moon, and S. Shenker. Accountable Internet Protocol (AIP). In ACM SIGCOMM, pages 339–350, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.M. B. Anwer, M. Motiwala, M. b. Tariq, and N. Feamster. SwitchBlade: A Platform for Rapid Deployment of Network Protocols on Programmable Hardware. In ACM SIGCOMM, pages 183–194, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.G. Back. DataScript: A Specification and Scripting Language for Binary Data. In ACM SIGPLAN/SIGSOFT, pages 66–77. Springer-Verlag, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.W. Bai, L. Chen, K. Chen, D. Han, C. Tian, and H. Wang. Information-agnostic Flow Scheduling for Commodity Data Centers. In 12th USENIX Conference on Networked Systems Design and Implementation (NSDI), pages 455–468, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.A. Bianco, R. Birke, L. Giraudo, and M. Palacin. OpenFlow Switching: Data Plane Performance. In IEEE International Conference on Communications (ICC), pages 1–5, 2010.Google ScholarGoogle Scholar
  10. 10.P. Bosshart, D. Daly, G. Gibb, M. Izzard, N. McKeown, J. Rexford, C. Schlesinger, D. Talayco, A. Vahdat, G. Varghese, and D. Walker. P4: Programming Protocol-independent Packet Processors. ACM SIGCOMM Computer Communication Review (CCR), 44(3):87–95, July 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.P. Bosshart, G. Gibb, H.-S. Kim, G. Varghese, N. McKeown, M. Izzard, F. Mujica, and M. Horowitz. Forwarding Metamorphosis: Fast Programmable Match-action Processing in Hardware for SDN. In ACM SIGCOMM, pages 99–110, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.G. Brebner. Programmable Hardware for Software Defined Networks. In IEEE European Conference on Optical Communication (ECOC), pages 1–3, 2015.Google ScholarGoogle Scholar
  13. 13.D. Coleman, D. Ash, B. Lowther, and P. Oman. Using Metrics to Evaluate Software System Maintainability. IEEE Computer, 27(8):44–49, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.J. Corbet. BPF: The Universal In-kernel Virtual Machine. Linux Weekly News, Eklektix Inc, 2014.Google ScholarGoogle Scholar
  15. 15.J. Corbet. Extending BPF. Linux Weekly News, Eklektix Inc, 2014.Google ScholarGoogle Scholar
  16. 16.B. Davie and J. Gross. A Stateless Transport Tunneling Protocol for Network Virtualization (STT). Internet-Draft draft-davie-stt-08, Internet Engineering Task Force, Apr. 2016. Work in Progress.Google ScholarGoogle Scholar
  17. 17.M. Dillon and T. Winters. Network Functions Virtualization in Home Networks. Technical report, Open Networking Foundation, 2015. https://www.opennetworking.org/images/stories/downloads/sdn-resources/IEEE-papers/network-func-virt-in-home-networks.pdf.Google ScholarGoogle Scholar
  18. 18.M. Dobrescu, N. Egi, K. Argyraki, B.-G. Chun, K. Fall, G. Iannaccone, A. Knies, M. Manesh, and S. Ratnasamy. RouteBricks: Exploiting Parallelism to Scale Software Routers. In ACM SIGOPS 22nd Symposium on Operating Systems Principles (SOSP), pages 15–28, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.N. Dukkipati, G. Gibb, N. McKeown, and J. Zhu. Building a RCP (Rate Control Protocol) Test Network. In 15th IEEE Symposium on High-Performance Interconnects (HOTI), pages 91–98, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.P. Emmerich, S. Gallenmüller, D. Raumer, F. Wohlfart, and G. Carle. MoonGen: A Scriptable High-Speed Packet Generator. In ACM Internet Measurement Conference (IMC), pages 275–287, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.P. Emmerich, D. Raumer, F. Wohlfart, and G. Carle. Performance Characteristics of Virtual Switching. In IEEE International Conference on Cloud Networking (CloudNet), pages 120–125, 2014.Google ScholarGoogle Scholar
  22. 22.D. Farinacci, S. P. Hanks, D. Meyer, and P. S. Traina. Generic Routing Encapsulation (GRE). RFC 2784, Mar. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.K. Fisher and R. Gruber. PADS: A Domain-specific Language for Processing Ad Hoc Data. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 295–304, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.N. Foster, R. Harrison, M. J. Freedman, C. Monsanto, J. Rexford, A. Story, and D. Walker. Frenetic: A Network Programming Language. In 16th ACM SIGPLAN International Conference on Functional Programming (ICFP), pages 279–291, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.T. M. Gil and M. Poletto. MULTOPS: A Data-structure for Bandwidth Attack Detection. In 10th Conference on USENIX Security Symposium, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26.A. Greenberg, J. R. Hamilton, N. Jain, S. Kandula, C. Kim, P. Lahiri, D. A. Maltz, P. Patel, and S. Sengupta. VL2: A Scalable and Flexible Data Center Network. In ACM SIGCOMM, pages 51–62, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27.J. Gross. Tunnel: Add support for matching on OAM packets. Git commit 94872594b79d in ovs-github, May 2014.Google ScholarGoogle Scholar
  28. 28.J. Gross. Tunneling: Allow matching and setting tunnel `OAM' flag. Git commit b666962be3b2 in ovs-github, July 2015.Google ScholarGoogle Scholar
  29. 29.J. Gross and I. Ganga. Geneve: Generic Network Virtualization Encapsulation. Internet-Draft draft-ietf-nvo3-geneve-01, Internet Engineering Task Force, Jan. 2016. Work in Progress.Google ScholarGoogle Scholar
  30. 30.S. Han, K. Jang, A. Panda, S. Palkar, D. Han, and S. Ratnasamy. SoftNIC: A Software NIC to Augment Hardware. Technical Report UCB/EECS-2015-155, EECS Department, University of California, Berkeley, May 2015.Google ScholarGoogle Scholar
  31. 31.S. Han, K. Jang, K. Park, and S. Moon. PacketShader: A GPU-accelerated Software Router. In ACM SIGCOMM, pages 195–206, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 32.N. Heirbaut and T. Van Der Storm. Two implementation techniques for domain specific languages compared: OMeta/JS vs. JavaScript. Master's thesis, Universiteit van Amsterdam, 2009.Google ScholarGoogle Scholar
  33. 33.D. Hiebert. Ctags User Commands Version 5.8-1. Exuberant Ctags.Google ScholarGoogle Scholar
  34. 34.Intel. DPDK: Data Plane Development Kit. http://dpdk.org, 2013.Google ScholarGoogle Scholar
  35. 35.Intel. DPDK: Data Plane Development Kit - Programmer's Guide, 2013. http://dpdk.org/doc/guides/prog_guide/index.html.Google ScholarGoogle Scholar
  36. 36.L. Jose, L. Yan, G. Varghese, and N. McKeown. Compiling Packet Programs to Reconfigurable Switches. In 12th USENIX Symposium on Networked Systems Design and Implementation (NSDI), pages 103–115, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 37.S. H. Kan. Metrics and Models in Software Quality Engineering. Addison-Wesley Longman Publishing Co., Inc., 2nd edition, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. 38.C. Kaner et al. Software engineering metrics: What do they measure and how do we know? In IEEE METRICS. Citeseer, 2004.Google ScholarGoogle Scholar
  39. 39.D. Katabi, M. Handley, and C. Rohrs. Congestion Control for High Bandwidth-delay Product Networks. In ACM SIGCOMM, pages 89–102, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 40.N. Katta, M. Hira, C. Kim, A. Sivaraman, and J. Rexford. HULA: Scalable Load Balancing Using Programmable Data Planes. In 2nd ACM SIGCOMM Symposium on Software Defined Networking Research (SOSR), 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. 41.C. Kim. Programming the Network Dataplane in P4, 2016. http://netseminar.stanford.edu/03_31_16.html.Google ScholarGoogle Scholar
  42. 42.C. Kim, P. Bhide, E. Doe, H. Holbrook, A. Ghanwani, D. Daly, M. Hira, and B. Davie. In-band Network Telemetry (INT), 2016. http://p4.org/wp-content/uploads/fixed/INT/INT-current-spec.pdf.Google ScholarGoogle Scholar
  43. 43.C. Kim, A. Sivaraman, N. Katta, A. Bas, A. Dixit, and L. J. Wobker. In-band Network Telemetry via Programmable Dataplanes. In ACM SIGCOMM, 2015. Demo Session.Google ScholarGoogle Scholar
  44. 44.E. Kohler, R. Morris, B. Chen, J. Jannotti, and M. F. Kaashoek. The Click Modular Router. ACM Transaction on Computer Systems (TOCS), 18(3):263–297, Aug. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. 45.C. Lameter. NUMA (Non-Uniform Memory Access): An Overview. ACM Queue, 11(7):40, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. 46.Linux Kernel Archives. http://kernel.org, 1997.Google ScholarGoogle Scholar
  47. 47.M. Mahalingam, T. Sridhar, M. Bursell, L. Kreeger, C. Wright, K. Duda, P. Agarwal, and D. Dutt. Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks. RFC 7348, Oct. 2015.Google ScholarGoogle Scholar
  48. 48.P. J. McCann and S. Chandra. Packet Types: Abstract Specification of Network Protocol Messages. In ACM SIGCOMM, pages 321–333, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. 49.S. McCanne and V. Jacobson. The BSD Packet Filter: A New Architecture for User-level Packet Capture. In USENIX, pages 2–2, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. 50.N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner. OpenFlow: Enabling Innovation in Campus Networks. ACM SIGCOMM Computer Communication Review (CCR), 38(2):69–74, Mar. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. 51.Network Working Group. RFC 1624: Computation of the Internet Checksum via Incremental Update, May 1994.Google ScholarGoogle Scholar
  52. 52.P. Oman and J. Hagemeister. Metrics for assessing a software system's maintainability. In Conference on Software Maintenance, pages 337–344, 1992.Google ScholarGoogle ScholarCross RefCross Ref
  53. 53.Open vSwitch. https://github.com/openvswitch/ovs, October 2015.Google ScholarGoogle Scholar
  54. 54.R. Pagh and F. F. Rodler. Cuckoo hashing. Elsevier Journal of Algorithms, 51(2):122–144, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. 55.I. Pepelnjak. Packet Forwarding in Amazon VPC, December 2013. http://blog.ipspace.net/2013/12/packet-forwarding-in-amazon-vpc.html.Google ScholarGoogle Scholar
  56. 56.B. Pfaff. P4 Parsing in Open vSwitch, June 2015. P4 Workshop, http://p4workshop2015.sched.org/event/3ZQF.Google ScholarGoogle Scholar
  57. 57.B. Pfaff, J. Pettit, T. Koponen, E. J. Jackson, A. Zhou, J. Rajahalme, J. Gross, A. Wang, J. Stringer, P. Shelar, K. Amidon, and M. Casado. The Design and Implementation of Open vSwitch. In 12th USENIX Conference on Networked Systems Design and Implementation (NSDI), pages 117–130, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. 58.S. Previdi et al. SPRING Problem Statement and Requirements. IETF, June 2015. https://datatracker.ietf.org/doc/draft-ietf-spring-problem-statement.Google ScholarGoogle Scholar
  59. 59.Proxmox Virtual Environment. https://www.proxmox.com/en/proxmox-ve.Google ScholarGoogle Scholar
  60. 60.P. Quinn and U. Elzur. Network Service Header. Internet-Draft draft-ietf-sfc-nsh-04, Internet Engineering Task Force, Mar. 2016. Work in Progress.Google ScholarGoogle Scholar
  61. 61.J. Rajahalme. TCP flags matching support. Git commit dc235f7fbcff in ovs-github, October 2013.Google ScholarGoogle Scholar
  62. 62.J. Reich, C. Monsanto, N. Foster, J. Rexford, and D. Walker. Modular SDN Programming with Pyretic. USENIX ;login:, 38(5):128–134, 2013.Google ScholarGoogle Scholar
  63. 63.T. Rinta-Aho, M. Karlstedt, and M. P. Desai. The Click2NetFPGA Toolchain. In USENIX Annual Technical Conference (ATC), pages 7–7, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. 64.L. Rizzo. Netmap: A Novel Framework for Fast Packet I/O. In USENIX Annual Technical Conference (ATC), pages 101–112, June 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. 65.M. Shahbaz and N. Feamster. The Case for an Intermediate Representation for Programmable Data Planes. In 1st ACM SIGCOMM Symposium on Software Defined Networking Research (SOSR), pages 31–36, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. 66.N. Shelly, E. J. Jackson, T. Koponen, N. McKeown, and J. Rajahalme. Flow Caching for High Entropy Packet Fields. In 34th ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking (HotSDN), pages 151–156, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. 67.M. Smith and L. Kreeger. VXLAN Group Policy Option. Internet-Draft draft-smith-vxlan-group-policy-02, Internet Engineering Task Force, Apr. 2016. Work in Progress.Google ScholarGoogle Scholar
  68. 68.H. Song. Protocol-oblivious Forwarding: Unleash the Power of SDN Through a Future-proof Forwarding Plane. In 2nd ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking (HotSDN), pages 127–132, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. 69.V. Srinivasan, S. Suri, and G. Varghese. Packet Classification Using Tuple Space Search. In ACM SIGCOMM, pages 135–146, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. 70.J. Stringer. datapath: Allow matching on conntrack label. Git commit 038e34abaa31 in ovs-github, December 2012.Google ScholarGoogle Scholar
  71. 71.J. Stringer. Add connection tracking label support. Git commit 9daf23484fb1 in ovs-github, October 2013.Google ScholarGoogle Scholar
  72. 72.M. Varvello, R. Laufer, F. Zhang, and T. Lakshman. Multi-Layer Packet Classification with Graphics Processing Units. In 10th ACM International on Conference on Emerging Networking Experiments and Technologies (CoNEXT), pages 109–120, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. 73.Y.-S. Wang and P. Garg. NVGRE: Network Virtualization Using Generic Routing Encapsulation. RFC 7637, Oct. 2015.Google ScholarGoogle Scholar
  74. 74.D. Zhou, B. Fan, H. Lim, M. Kaminsky, and D. G. Andersen. Scalable, High Performance Ethernet Forwarding with CuckooSwitch. In 9th ACM Conference on Emerging Networking Experiments and Technologies (CoNEXT), pages 97–108, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  1. PISCES: A Programmable, Protocol-Independent Software Switch

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      SIGCOMM '16: Proceedings of the 2016 ACM SIGCOMM Conference
      August 2016
      645 pages
      ISBN:9781450341936
      DOI:10.1145/2934872

      Copyright © 2016 ACM

      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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 22 August 2016

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      SIGCOMM '16 Paper Acceptance Rate39of231submissions,17%Overall Acceptance Rate554of3,547submissions,16%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader