AbstractsComputer Science

Steve - A Programming Language for Packet Processing

by Hoang Vinh Nguyen




Institution: University of Akron
Department:
Year: 2016
Keywords: Computer Science; software-defined networking; compiler; programming language; network switches
Posted: 02/05/2017
Record ID: 2066363
Full text PDF: http://rave.ohiolink.edu/etdc/view?acc_num=akron1467985307


Abstract

Software-defined networking (SDN) aims to make network switches programmable to enable a class of intelligent networking applications that can automate network flow direction in ways that conventional switches cannot. We present Steve, a protocol-independent, domain-specific language (DSL) for writing these networking applications on SDN devices. Steve provides high-level language features for expressing protocol structure, decoding rules, forwarding decisions, packet manipulation, and event handling for reactive non-distributed control planes. These features define a packet processing pipeline  – the algorithm used to make forwarding decisions.Steve solves two issues in SDN language development: safe packet access and safe pipeline composition. Vulnerabilities in an application running a network switch can be disastrous, therefore the Steve compiler is designed to catch potential errors. Steve uses a type and constraints system which enforces these safety guarantees. To verify our work, we produced a Steve language compiler which implements these safety guarantees. We also present four compilable Steve applications: a MAC and IPv4 learning switch, a stateless firewall, and a wire. These applications are tested with a runtime environment which provides Steve access to switch resources. Advisors/Committee Members: Sutton, Andrew (Advisor).