Please use this identifier to cite or link to this item:
http://arks.princeton.edu/ark:/88435/dsp019306t262z
Title: | Lucid: A High-Level, Easy-To-Use Dataplane Programming Language |
Authors: | Loehr, Devon Kennedy |
Advisors: | Walker, David |
Contributors: | Computer Science Department |
Keywords: | Compilers Correct-By-Construction Dataplane Programming Networking Programming Languages Type Systems |
Subjects: | Computer science |
Issue Date: | 2024 |
Publisher: | Princeton, NJ : Princeton University |
Abstract: | The introduction of programmable switches and the P4 language for programming them has made it possible for network operators to write ever-more sophisticated network applications, and execute them at high speed. However, possible is not the same as easy. The de facto standard dataplane programming language, P4, is akin to an “assembly language” for programmable switches: it provides a powerful but low-level interface to switch hardware. While this gives the programmer fine-grained control, it makes it difficult to write and reason about programs with complicated high-level behavior. Furthermore, modern hardware is heavily specialized for packet processing. While this specialization allows blazing fast speeds, it also heavily restricts the sorts of programs a programmable switch can run. Unfortunately, such restrictions are poorly-represented in modern dataplane languages. Should a program violate one or more of these restrictions, it will fail to compile, often with an arcane or unhelpful error message. This dissertation presents Lucid, a high-level, event-based language for programmable switches. Lucid raises the level of abstraction for data-plane programming in several ways. Control flow is represented by events, each of which has an associated handler that is executed when the event is generated. Different threads of control may be interleaved easily by writing them as handlers for separate events. Lucid provides high-level representations of switch hardware restrictions, which are enforced by syntactic checks, including a novel type system for detecting ordering violations. Lucid is compiled to P4 for the Intel Tofino, and we find that Lucid programs typically contain around 10 times fewer lines of code than equivalent P4 programs. Furthermore, the Lucid interpreter may be used to quickly evaluate different configurations of a Lucid program, in order to automatically optimize a single program for different networking environments. |
URI: | http://arks.princeton.edu/ark:/88435/dsp019306t262z |
Type of Material: | Academic dissertations (Ph.D.) |
Language: | en |
Appears in Collections: | Computer Science |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Loehr_princeton_0181D_14845.pdf | 1.37 MB | Adobe PDF | View/Download |
Items in Dataspace are protected by copyright, with all rights reserved, unless otherwise indicated.