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

SNAP: Stateful Network-Wide Abstractions for Packet Processing

Published: 22 August 2016 Publication History

Abstract

Early programming languages for software-defined networking (SDN) were built on top of the simple match-action paradigm offered by OpenFlow 1.0. However, emerging hardware and software switches offer much more sophisticated support for persistent state in the data plane, without involving a central controller. Nevertheless, managing stateful, distributed systems efficiently and correctly is known to be one of the most challenging programming problems. To simplify this new SDN problem, we introduce SNAP.
SNAP offers a simpler "centralized" stateful programming model, by allowing programmers to develop programs on top of one big switch rather than many. These programs may contain reads and writes to global, persistent arrays, and as a result, programmers can implement a broad range of applications, from stateful firewalls to fine-grained traffic monitoring. The SNAP compiler relieves programmers of having to worry about how to distribute, place, and optimize access to these stateful arrays by doing it all for them. More specifically, the compiler discovers read/write dependencies between arrays and translates one-big-switch programs into an efficient internal representation based on a novel variant of binary decision diagrams. This internal representation is used to construct a mixed-integer linear program, which jointly optimizes the placement of state and the routing of traffic across the underlying physical topology. We have implemented a prototype compiler and applied it to about 20 SNAP programs over various topologies to demonstrate our techniques' scalability.

Supplementary Material

MP4 File (p29.mp4)

References

[1]
S. Akers. Binary decision diagrams. IEEE Transactions on Computers, C-27(6):509–516, 1978.
[2]
C. J. Anderson, N. Foster, A. Guha, J.-B. Jeannin, D. Kozen, C. Schlesinger, and D. Walker. NetKAT: Semantic foundations for networks. In POPL, 2014.
[3]
B. Anwer, T. Benson, N. Feamster, and D. Levin. Programming slick network functions. In SOSR, 2015.
[4]
G. Bianchi, M. Bonola, A. Capone, and C. Cascone. OpenState: Programming platform-independent stateful OpenFlow applications inside the switch. ACM SIGCOMM Computer Communication Review, 44(2):44–51, 2014.
[5]
K. Borders, J. Springer, and M. Burnside. Chimera: A declarative language for streaming network traffic analysis. In USENIX Security Symposium, 2012.
[6]
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, 44(3):87–95, 2014.
[7]
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 SIGCOMM, 2013.
[8]
S. K. Fayaz, Y. Tobioka, V. Sekar, and M. Bailey. Bohatei: Flexible and elastic ddos defense. In USENIX Security Symposium, 2015.
[9]
S. K. Fayazbakhsh, L. Chiang, V. Sekar, M. Yu, and J. C. Mogul. Enforcing network-wide policies in the presence of dynamic middlebox actions using flowtags. In NSDI, 2014.
[10]
N. Foster, R. Harrison, M. J. Freedman, C. Monsanto, J. Rexford, A. Story, and D. Walker. Frenetic: A network programming language. In ICFP, 2011.
[11]
A. Gember, R. Grandl, A. Anand, T. Benson, and A. Akella. Stratos: Virtual middleboxes as first-class entities. UW-Madison TR1771, 2012.
[12]
A. Gember-Jacobson and A. Akella. Improving the safety, scalability, and efficiency of network function state transfers. In HotMiddlebox, 2015.
[13]
A. Gember-Jacobson, R. Viswanathan, C. Prakash, R. Grandl, J. Khalid, S. Das, and A. Akella. OpenNF: Enabling innovation in network function control. In SIGCOMM, 2014.
[14]
N. Gude, T. Koponen, J. Pettit, B. Pfaff, M. Casado, N. McKeown, and S. Shenker. NOX: Towards an operating system for networks. ACM SIGCOMM Computer Communications Review, 38(3), 2008.
[15]
Gurobi optimizer. http://www.gurobi.com. Accessed: June 2016.
[16]
S. Jain, A. Kumar, S. Mandal, J. Ong, L. Poutievski, A. Singh, S. Venkata, J. Wanderer, J. Zhou, M. Zhu, et al. B4: Experience with a globally-deployed software defined WAN. In ACM SIGCOMM Computer Communication Review, volume 43, pages 3–14. ACM, 2013.
[17]
H. Kim, J. Reich, A. Gupta, M. Shahbaz, N. Feamster, and R. Clark. Kinetic: Verifiable dynamic network control. In NSDI, 2015.
[18]
J. McClurg, H. Hojjat, N. Foster, and P. Cerný. Event-driven network programming. In PLDI, 2016.
[19]
C. Monsanto, N. Foster, R. Harrison, and D. Walker. A compiler and run-time system for network programming languages. In POPL, 2012.
[20]
C. Monsanto, J. Reich, N. Foster, J. Rexford, and D. Walker. Composing software defined networks. In NSDI, 2013.
[21]
M. Moshref, A. Bhargava, A. Gupta, M. Yu, and R. Govindan. Flow-level state transition as a new switch primitive for SDN. In HotSDN, 2014.
[22]
A. Nucci, A. Sridharan, and N. Taft. The problem of synthetically generating IP traffic matrices: Initial recommendations. ACM SIGCOMM Computer Communication Review, 35(3):19–32, 2005.
[23]
OpenNFP. http://open-nfp.org. Accessed: June 2016.
[24]
A. Panda, O. Lahav, K. J. Argyraki, M. Sagiv, and S. Shenker. Verifying isolation properties in the presence of middleboxes. CoRR, abs/1409.7687, 2014.
[25]
B. Pfaff, J. Pettit, T. Koponen, E. 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 NSDI, 2015.
[26]
C. Prakash, J. Lee, Y. Turner, J.-M. Kang, A. Akella, S. Banerjee, C. Clark, Y. Ma, P. Sharma, and Y. Zhang. PGA: Using graphs to express and automatically reconcile network policies. In SIGCOMM, 2015.
[27]
Pypy. http://pypy.org. Accessed: September 2015.
[28]
Z. A. Qazi, C.-C. Tu, L. Chiang, R. Miao, V. Sekar, and M. Yu. Simple-fying middlebox policy enforcement using sdn. In SIGCOMM, 2013.
[29]
B. Quoitin, V. Van den Schrieck, P. François, and O. Bonaventure. IGen: Generation of router-level Internet topologies through network design heuristics. In International Teletraffic Congress, pages 1–8. IEEE, 2009.
[30]
S. Rajagopalan, D. Williams, H. Jamjoom, and A. Warfield. Split/Merge: System support for elastic execution in virtual middleboxes. In NSDI, 2013.
[31]
M. Roughan. Simplifying the synthesis of Internet traffic matrices. ACM SIGCOMM Computer Communication Review, 35(5):93–96, 2005.
[32]
M. Shahbaz and N. Feamster. The case for an intermediate representation for programmable data planes. In SOSR, 2015.
[33]
A. Sivaraman, M. Budiu, A. Cheung, C. Kim, S. Licking, G. Varghese, H. Balakrishnan, M. Alizadeh, and N. McKeown. Packet transactions: High-level programming for line-rate switches. In SIGCOMM, 2016.
[34]
A. Sivaraman, S. Subramanian, A. Agrawal, S. Chole, S.-T. Chuang, T. Edsall, M. Alizadeh, S. Katti, N. McKeown, and H. Balakrishnan. Programmable packet scheduling. In SIGCOMM, 2016.
[35]
S. Smolka, S. A. Eliopoulos, N. Foster, and A. Guha. A fast compiler for NetKAT. In ICFP, 2015.
[36]
Snort. http://www.snort.org.
[37]
Snort blog. http://blog.snort.org. Accessed: June 2016.
[38]
H. Song. Protocol-oblivious forwarding: Unleash the power of SDN through a future-proof forwarding plane. In HotSDN, 2013.
[39]
R. Soulé, S. Basu, P. J. Marandi, F. Pedone, R. Kleinberg, E. G. Sirer, and N. Foster. Merlin: A language for provisioning network resources. In CoNEXT, 2014.
[40]
N. Spring, R. Mahajan, D. Wetherall, and T. Anderson. Measuring ISP topologies with Rocketfuel. IEEE/ACM Transactions on Networking, 12(1):2–16, 2004.
[41]
M. Suchara, D. Xu, R. Doverspike, D. Johnson, and J. Rexford. Network architecture for joint failure recovery and traffic engineering. In SIGMETRICS, 2011.
[42]
SNAP: Stateful network-wide abstractions for packet processing, technical report. http://www.cs.princeton.edu/ arashloo/SNAP.pdf, 2016.
[43]
R. Teixeira, N. Duffield, J. Rexford, and M. Roughan. Traffic matrix reloaded: Impact of routing changes. In Passive and Active Network Measurement, pages 251–264. Springer, 2005.
[44]
A. Voellmy, J. Wang, Y. R. Yang, B. Ford, and P. Hudak. Maple: Simplifying SDN programming using algorithmic policies. In SIGCOMM, 2013.
[45]
Y. Yuan, R. Alur, and B. T. Loo. NetEgg: Programming network policies by examples. In HotNets, 2014.

Cited By

View all
  • (2025)Urban Green Space in Formation Extraction Based on High Resolution Image in Dalian CityOpen Journal of Natural Science10.12677/ojns.2025.13100913:01(86-95)Online publication date: 2025
  • (2025) Monte: SFCs Migration Scheme in the Distributed Programmable Data Plane IEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2025.353246736:4(633-644)Online publication date: Apr-2025
  • (2025)AQC: Achieving Precise Bandwidth Allocation with Augmented Queues for Credit-Based Proactive Congestion ControlAlgorithms and Architectures for Parallel Processing10.1007/978-981-96-1542-1_10(163-182)Online publication date: 15-Feb-2025
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 August 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Network Programming Language
  2. One Big Switch
  3. Optimization
  4. SNAP
  5. Software Defined Networks
  6. Stateful Packet Processing

Qualifiers

  • Research-article

Funding Sources

Conference

SIGCOMM '16
Sponsor:
SIGCOMM '16: ACM SIGCOMM 2016 Conference
August 22 - 26, 2016
Florianopolis, Brazil

Acceptance Rates

SIGCOMM '16 Paper Acceptance Rate 39 of 231 submissions, 17%;
Overall Acceptance Rate 462 of 3,389 submissions, 14%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)252
  • Downloads (Last 6 weeks)32
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Urban Green Space in Formation Extraction Based on High Resolution Image in Dalian CityOpen Journal of Natural Science10.12677/ojns.2025.13100913:01(86-95)Online publication date: 2025
  • (2025) Monte: SFCs Migration Scheme in the Distributed Programmable Data Plane IEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2025.353246736:4(633-644)Online publication date: Apr-2025
  • (2025)AQC: Achieving Precise Bandwidth Allocation with Augmented Queues for Credit-Based Proactive Congestion ControlAlgorithms and Architectures for Parallel Processing10.1007/978-981-96-1542-1_10(163-182)Online publication date: 15-Feb-2025
  • (2024)Eagle: Toward Scalable and Near-Optimal Network-Wide Sketch Deployment in Network MeasurementProceedings of the ACM SIGCOMM 2024 Conference10.1145/3651890.3672244(291-310)Online publication date: 4-Aug-2024
  • (2024)HSS: A Memory-Efficient, Accurate, and Fast Network Measurement Framework in Sliding WindowsIEEE Transactions on Network and Service Management10.1109/TNSM.2024.346075121:6(5958-5976)Online publication date: Dec-2024
  • (2024)Learning-Based Sketch for Adaptive and High-Performance Network MeasurementIEEE/ACM Transactions on Networking10.1109/TNET.2024.336417632:3(2571-2585)Online publication date: Jun-2024
  • (2024)Toward Scalable and Low-Cost Traffic Testing for Evaluating DDoS Defense SolutionsIEEE/ACM Transactions on Networking10.1109/TNET.2023.328144932:1(191-206)Online publication date: Feb-2024
  • (2024)NetCL: A Unified Programming Framework for In-Network ComputingProceedings of the International Conference for High Performance Computing, Networking, Storage, and Analysis10.1109/SC41406.2024.00051(1-20)Online publication date: 17-Nov-2024
  • (2024)Resource-Aware Intent Compilation for Virtual Private Cloud2024 IEEE Symposium on Computers and Communications (ISCC)10.1109/ISCC61673.2024.10733611(1-6)Online publication date: 26-Jun-2024
  • (2024)Choate: Toward High-Level, Cross-Layer SDN ProgrammingNetwork Simulation and Evaluation10.1007/978-981-97-4522-7_7(102-117)Online publication date: 2-Aug-2024
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media