skip to main content
research-article

Concurrent NetCore: from policies to pipelines

Published: 19 August 2014 Publication History

Abstract

In a Software-Defined Network (SDN), a central, computationally powerful controller manages a set of distributed, computationally simple switches. The controller computes a policy describing how each switch should route packets and populates packet-processing tables on each switch with rules to enact the routing policy. As network conditions change, the controller continues to add and remove rules from switches to adjust the policy as needed.
Recently, the SDN landscape has begun to change as several proposals for new, reconfigurable switching architectures, such as RMT [5] and FlexPipe [14] have emerged. These platforms provide switch programmers with many, flexible tables for storing packet-processing rules, and they offer programmers control over the packet fields that each table can analyze and act on. These reconfigurable switch architectures support a richer SDN model in which a switch configuration phase precedes the rule population phase [4]. In the configuration phase, the controller sends the switch a graph describing the layout and capabilities of the packet processing tables it will require during the population phase. Armed with this foreknowledge, the switch can allocate its hardware (or software) resources more efficiently.
We present a new, typed language, called Concurrent NetCore, for specifying routing policies and graphs of packet-processing tables. Concurrent NetCore includes features for specifying sequential, conditional and concurrent control-flow between packet-processing tables. We develop a fine-grained operational model for the language and prove this model coincides with a higher-level denotational model when programs are well-typed. We also prove several additional properties of well-typed programs, including strong normalization and determinism. To illustrate the utility of the language, we develop linguistic models of both the RMT and FlexPipe architectures and we give a multi-pass compilation algorithm that translates graphs and routing policies to the RMT model.

References

[1]
Concurrent netcore: From policies to pipelines. See http://tinyurl.com/k2z8lz5.
[2]
Openflow forwarding abstractions working group charter, April 2013. See http://goo.gl/TtLtw0.
[3]
Carolyn Jane Anderson, Nate Foster, Arjun Guha, Jean-Baptiste Jeannin, Dexter Kozen, Cole Schlesinger, and David Walker. NetKAT: Semantic foundations for networks. In POPL, January 2014.
[4]
Pat Bosshart, Dan Daly, Martin Izzard, Nick McKeown, Jennifer Rexford, Dan Talayco, Amin Vahdat, George Varghese, and David Walker. Programming protocol-independent packet processors. See http://arxiv.org/abs/1312.1719, December 2013.
[5]
Pat Bosshart, Glen Gibb, Hun-Seok Kim, George Varghese, Nick McKeown, Martin Izzard, Fernando A. Mujica, and Mark Horowitz. Forwarding metamorphosis: fast programmable match-action processing in hardware for SDN. In SIGCOMM, pages 99--110, 2013.
[6]
Broadcom BCM56846 StrataXGS 10/40 GbE switch. See http://www.broadcom.com/products/features/BCM56846.php, 2014.
[7]
C. A. R. Hoare, Bernhard Moller, Georg Struth, and Ian Wehrman. Concurrent kleene algebra. In CONCUR, pages 399--414, 2009.
[8]
Sushant Jain, Alok Kumar, Subhasree Mandal, Joon Ong, Leon Poutievski, Arjun Singh, Subbaiah Venkata, Jim Wanderer, Junlan Zhou, Min Zhu, Jonathan Zolla, Urs Hölzle, Stephen Stuart, and Amin Vahdat. B4: Experience with a globally-deployed software defined WAN. In SIGCOMM, 2013.
[9]
Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, and Jonathan Turner. OpenFlow: Enabling innovation in campus networks. SIGCOMM Computing Communications Review, 38(2):69--74, 2008.
[10]
Christopher Monsanto, Nate Foster, Rob Harrison, and David Walker. A compiler and run-time system for network programming languages. In POPL, January 2012.
[11]
Christopher Monsanto, Joshua Reich, Nate Foster, Jennifer Rexford, and David Walker. Composing software-defined networks. In NSDI, April 2013.
[12]
Tim Nelson, Arjun Guha, Daniel J. Dougherty, Kathi Fisler, and Shriram Krishnamurthi. A balance of power: Expressive, analyzable controller programming. In HotSDN, 2013.
[13]
Recep Ozdag. Intel Ethernet Switch FM6000 Series - software defined networking. See goo.gl/AnvOvX, 2012.
[14]
Andreas Voellmy, Hyojoon Kim, and Nick Feamster. Procera: A language for high-level reactive network control. In HotSDN, pages 43--48, 2012.
[15]
Andreas Voellmy, Junchang Wang, Y. Richard Yang, Bryan Ford, and Paul Hudak. Maple: Simplifying SDN programming using algorithmic policies. In SIGCOMM, 2013.
[16]
Nate Foster, Rob Harrison, Michael J. Freedman, Christopher Monsanto, Jennifer Rexford, Alec Story, and David Walker. Frenetic: A network programming language. In ICFP, September 2011.

Cited By

View all
  • (2022)Kleene algebra modulo theories: a framework for concrete KATsProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523722(594-608)Online publication date: 9-Jun-2022
  • (2022)Safe, modular packet pipeline programmingProceedings of the ACM on Programming Languages10.1145/34986996:POPL(1-28)Online publication date: 12-Jan-2022
  • (2019)SPARC: Towards a Scalable Distributed Control Plane Architecture for Protocol-Oblivious SDN Networks2019 28th International Conference on Computer Communication and Networks (ICCCN)10.1109/ICCCN.2019.8846931(1-9)Online publication date: Jul-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 49, Issue 9
ICFP '14
September 2014
361 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2692915
Issue’s Table of Contents
  • cover image ACM Conferences
    ICFP '14: Proceedings of the 19th ACM SIGPLAN international conference on Functional programming
    August 2014
    390 pages
    ISBN:9781450328739
    DOI:10.1145/2628136
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 the author(s) 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: 19 August 2014
Published in SIGPLAN Volume 49, Issue 9

Check for updates

Author Tags

  1. frenetic
  2. network programming languages
  3. openflow
  4. software-defined networking

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Kleene algebra modulo theories: a framework for concrete KATsProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523722(594-608)Online publication date: 9-Jun-2022
  • (2022)Safe, modular packet pipeline programmingProceedings of the ACM on Programming Languages10.1145/34986996:POPL(1-28)Online publication date: 12-Jan-2022
  • (2019)SPARC: Towards a Scalable Distributed Control Plane Architecture for Protocol-Oblivious SDN Networks2019 28th International Conference on Computer Communication and Networks (ICCCN)10.1109/ICCCN.2019.8846931(1-9)Online publication date: Jul-2019
  • (2017)Tablevisor 2.0: Towards full-featured, scalable and hardware-independent multi table processing2017 IEEE Conference on Network Softwarization (NetSoft)10.1109/NETSOFT.2017.8004108(1-8)Online publication date: Jul-2017
  • (2016)A Survey on SDN Programming LanguagesIEEE Communications Surveys & Tutorials10.1109/COMST.2016.255377818:4(2687-2712)Online publication date: 1-Oct-2016
  • (2016)Empirical Evidences in Software-Defined Network Security: A Systematic Literature ReviewInformation Fusion for Cyber-Security Analytics10.1007/978-3-319-44257-0_11(253-295)Online publication date: 22-Oct-2016
  • (2024)Concurrent NetKAT with PortsProceedings of the 39th ACM/SIGAPP Symposium on Applied Computing10.1145/3605098.3636048(1722-1730)Online publication date: 8-Apr-2024
  • (2023)Advancing SDN from OpenFlow to P4: A SurveyACM Computing Surveys10.1145/355697355:9(1-37)Online publication date: 16-Jan-2023
  • (2022)Concurrent NetKATProgramming Languages and Systems10.1007/978-3-030-99336-8_21(575-602)Online publication date: 29-Mar-2022
  • (2020)Programmable in-network security for context-aware BYOD policiesProceedings of the 29th USENIX Conference on Security Symposium10.5555/3489212.3489246(595-612)Online publication date: 12-Aug-2020
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media