skip to main content
article

SDNRacer: concurrency analysis for software-defined networks

Published:02 June 2016Publication History
Skip Abstract Section

Abstract

Concurrency violations are an important source of bugs in Software-Defined Networks (SDN), often leading to policy or invariant violations. Unfortunately, concurrency violations are also notoriously difficult to avoid, detect and debug. This paper presents a novel approach and a tool, SDNRacer, for detecting concurrency violations of SDNs. Our approach is enabled by three key ingredients: (i) a precise happens- before model for SDNs that captures when events can happen concurrently; (ii) a set of sound, domain-specific filters that reduce reported violations by orders of magnitude, and; (iii) a sound and complete dynamic analyzer, based on the above, that can ensure the network is free of harmful errors such as data races and per-packet incoherence. We evaluated SDNRacer on several real-world OpenFlow controllers, running both reactive and proactive applications in large networks. We show that SDNRacer is practically effective: it quickly pinpoints harmful concurrency violations without overwhelming the user with false positives.

References

  1. OpenFlow Switch Specification. Version 1.0.0. https://www.opennetworking.org/images/ stories/downloads/sdn-resources/ onf-specifications/openflow/ openflow-spec-v1.0.0.pdf.Google ScholarGoogle Scholar
  2. Open vSwitch. Production Quality, Multilayer Open Virtual Switch. http://openvswitch.org/.Google ScholarGoogle Scholar
  3. Anduo, W. Zhou, B. Godfrey, and M. Caesar. Software-Defined Networks as Databases. In Presented as part of the Open Networking Summit 2014 (ONS 2014), Santa Clara, CA, 2014. USENIX. URL https: //www.usenix.org/conference/ons2014/ technical-sessions/presentation/wang.Google ScholarGoogle Scholar
  4. T. Ball, N. Bjørner, A. Gember, S. Itzhaky, A. Karbyshev, M. Sagiv, M. Schapira, and A. Valadarsky. VeriCon: Towards Verifying Controller Programs in Software-defined Networks. In ACM PLDI ’14. doi: 10.1145/2594291.2594317. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. Beckett, X. K. Zou, S. Zhang, S. Malik, J. Rexford, and D. Walker. An Assertion Language for Debugging SDN Applications. In Proceedings of the Third Workshop on Hot Topics in Software Defined Networking, HotSDN ’14. ACM. doi: 10.1145/2620728.2620743. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. P. Berde, M. Gerola, J. Hart, Y. Higuchi, M. Kobayashi, T. Koide, B. Lantz, B. O’Connor, P. Radoslavov, W. Snow, and G. Parulkar. ONOS: Towards an Open, Distributed SDN OS. In Proceedings of the Third Workshop on Hot Topics in Software Defined Networking, HotSDN ’14. ACM. doi: 10.1145/2620728.2620744. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Big Switch Networks, Inc. Floodlight Circuit Pusher Application. https://github.com/floodlight/ floodlight/tree/v0.91/apps/circuitpusher, 2013.Google ScholarGoogle Scholar
  8. Big Switch Networks, Inc. Floodlight Firewall. https://github.com/floodlight/ floodlight/tree/v0.91/src/main/java/net/ floodlightcontroller/firewall, 2013.Google ScholarGoogle Scholar
  9. Big Switch Networks, Inc. Floodlight Forwarding Application. https://github.com/floodlight/ floodlight/blob/v0.91/src/main/java/ net/floodlightcontroller/forwarding/ Forwarding.java, 2013.Google ScholarGoogle Scholar
  10. Big Switch Networks, Inc. Floodlight Learning Switch. https://github.com/floodlight/ floodlight/tree/v0.91/src/main/java/net/ floodlightcontroller/learningswitch, 2013.Google ScholarGoogle Scholar
  11. Big Switch Networks, Inc. Floodlight Load-Balancer Application. https://github.com/floodlight/ floodlight/tree/v0.91/src/main/java/net/ floodlightcontroller/loadbalancer, 2013.Google ScholarGoogle Scholar
  12. M. Canini, D. Venzano, P. Pereˇs´ıni, D. Kosti´c, and J. Rexford. A NICE Way to Test OpenFlow Applications. In USENIX NSDI ’12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. A. T. Clements, M. F. Kaashoek, N. Zeldovich, R. T. Morris, and E. Kohler. The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors. In ACM SOSP ’13. doi: 10.1145/2517349.2522712. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Dimitrov, V. Raychev, M. Vechev, and E. Koskinen. Commutativity Race Detection. In ACM PLDI ’14. doi: 10. 1145/2594291.2594322. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C. Flanagan and S. N. Freund. FastTrack: Efficient and Precise Dynamic Race Detection. In ACM PLDI ’09. doi: 10. 1145/1542476.1542490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Floodlight. Floodlight Open SDN Controller. http:// projectfloodlight.org/floodlight.Google ScholarGoogle Scholar
  17. N. Foster, R. Harrison, M. J. Freedman, C. Monsanto, J. Rexford, A. Story, and D. Walker. Frenetic: A Network Programming Language. In ACM ICFP ’11. doi: 10.1145/ 2034773.2034812. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Guha, M. Reitblatt, and N. Foster. Machine-verified Network Controllers. In ACM PLDI ’13. doi: 10.1145/ 2491956.2462178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Jain, A. Kumar, S. Mandal, J. Ong, L. Poutievski, A. Singh, S. Venkata, J. Wanderer, J. Zhou, M. Zhu, J. Zolla, U. Hölzle, S. Stuart, and A. Vahdat. B4: Experience with a Globallydeployed Software Defined WAN. In ACM SIGCOMM ’13. doi: 10.1145/2486001.2486019. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. P. Kazemian, M. Chang, H. Zeng, G. Varghese, N. McKeown, and S. Whyte. Real Time Network Policy Checking Using Header Space Analysis. In USENIX NSDI ’13,. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. P. Kazemian, G. Varghese, and N. McKeown. Header Space Analysis: Static Checking for Networks. In USENIX NSDI ’12,. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Khurshid, W. Zhou, M. Caesar, and P. B. Godfrey. Veriflow: Verifying Network-wide Invariants in Real Time. SIGCOMM Comput. Commun. Rev., 42(4), Sept. 2012. doi: 10. 1145/2377677.2377766. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M. Ku´zniar, P. Pereˇs´ıni, and D. Kosti´c. What You Need to Know About SDN Flow Tables. In International Conference on Passive and Active Measurement, PAM ’15. Springer International Publishing. doi: 10.1007/ 978-3-319-15509-8_26.Google ScholarGoogle Scholar
  24. L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7), 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. doi: 10.1145/359545.359563.Google ScholarGoogle Scholar
  26. R. Mahajan and R. Wattenhofer. On Consistent Updates in Software Defined Networks. In Proceedings of the Twelfth ACM Workshop on Hot Topics in Networks, HotNets-XII, 2013. doi: 10.1145/2535771.2535791. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. H. Mai, A. Khurshid, R. Agarwal, M. Caesar, P. B. Godfrey, and S. T. King. Debugging the Data Plane with Anteater. In ACM SIGCOMM ’11. doi: 10.1145/ 2018436.2018470. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. R. Majumdar, S. D. Tetali, and Z. Wang. Kuai: A Model Checker for Software-defined Networks. In Proceedings of the 14th Conference on Formal Methods in Computer-Aided Design, FMCAD ’14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. J. Mccauley. POX: A Python-based OpenFlow Controller. https://github.com/noxrepo/pox.Google ScholarGoogle Scholar
  30. J. McCauley. POX Angler Forwarding Application. https://github.com/noxrepo/pox/blob/ angler/pox/forwarding/l2_multi.py, 2012.Google ScholarGoogle Scholar
  31. J. McCauley. POX EEL Forwarding Application. https://github.com/noxrepo/pox/blob/eel/ pox/forwarding/l2_multi.py, 2015.Google ScholarGoogle Scholar
  32. J. McCauley. POX EEL L2 Learning Switch. https://github.com/noxrepo/pox/blob/eel/ pox/forwarding/l2_learning.py, 2015.Google ScholarGoogle Scholar
  33. J. Miserez, P. Bielik, A. El-Hassany, L. Vanbever, and M. Vechev. SDNRacer: Detecting Concurrency Violations in Software-defined Networks. In Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research, in ACM SOSR ’15. doi: 10.1145/2774993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 2775004.Google ScholarGoogle Scholar
  35. C. Monsanto, N. Foster, R. Harrison, and D. Walker. A Compiler and Run-time System for Network Programming Languages. In ACM POPL ’12. doi: 10.1145/2103656. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 2103685.Google ScholarGoogle Scholar
  37. T. Nelson, A. D. Ferguson, M. J. G. Scheer, and S. Krishnamurthi. Tierless Programming and Reasoning for Softwaredefined Networks. In USENIX NSDI ’14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Open Networking Laboratory. ONOS (Open Network Operating System): Forwarding Application. https://github.com/opennetworkinglab/ onos/tree/onos-1.2/apps/fwd, 2015.Google ScholarGoogle Scholar
  39. V. Raychev, M. Vechev, and M. Sridharan. Effective Race Detection for Event-driven Programs. In ACM OOPSLA ’13. doi: 10.1145/2509136.2509538. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. M. Reitblatt, N. Foster, J. Rexford, C. Schlesinger, and D. Walker. Abstractions for Network Update. In ACM SIGCOMM ’12. doi: 10.1145/2342356.2342427. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. C. Rotsos, N. Sarrar, S. Uhlig, R. Sherwood, and A. W. Moore. OFLOPS: An Open Framework for Openflow Switch Evaluation. In International Conference on Passive and Active Measurement, PAM’12. Springer-Verlag. doi: 10.1007/ 978-3-642-28537-0_9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. C. Scott, A. Wundsam, B. Raghavan, A. Panda, A. Or, J. Lai, E. Huang, Z. Liu, A. El-Hassany, S. Whitlock, H. Acharya, K. Zarifis, and S. Shenker. Troubleshooting Blackbox SDN Control Software with Minimal Causal Sequences. In ACM SIGCOMM ’14. doi: 10.1145/2619239.2626304. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. SDNRacer: concurrency analysis for software-defined networks

                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

                Full Access

                • Published in

                  cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 51, Issue 6
                  PLDI '16
                  June 2016
                  726 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/2980983
                  • Editor:
                  • Andy Gill
                  Issue’s Table of Contents
                  • cover image ACM Conferences
                    PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation
                    June 2016
                    726 pages
                    ISBN:9781450342612
                    DOI:10.1145/2908080
                    • General Chair:
                    • Chandra Krintz,
                    • Program Chair:
                    • Emery Berger

                  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: 2 June 2016

                  Check for updates

                  Qualifiers

                  • article

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader