Packet transactions

High-level programming for line-rate switches

Anirudh Sivaraman, Alvin Cheung, Mihai Budiu, Changhoon Kim, Mohammad Alizadeh, Hari Balakrishnan, George Varghese, Nick McKeown, Steve Licking

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Many algorithms for congestion control, scheduling, network measurement, active queue management, and traffic engineering require custom processing of packets in the data plane of a network switch. To run at line rate, these dataplane algorithms must be implemented in hardware. With today's switch hardware, algorithms cannot be changed, nor new algorithms installed, after a switch has been built. This paper shows how to program data-plane algorithms in a high-level language and compile those programs into low-level microcode that can run on emerging programmable line-rate switching chips. The key challenge is that many data-plane algorithms create and modify algorithmic state. To achieve line-rate programmability for stateful algorithms, we introduce the notion of a packet transaction: a sequential packet-processing code block that is atomic and isolated from other such code blocks. We have developed this idea in Domino, a C-like imperative language to express data-plane algorithms. We show with many examples that Domino provides a convenient way to express sophisticated data-plane algorithms, and show that these algorithms can be run at line rate with modest estimated chip-area overhead.

Original languageEnglish (US)
Title of host publicationSIGCOMM 2016 - Proceedings of the 2016 ACM Conference on Special Interest Group on Data Communication
PublisherAssociation for Computing Machinery, Inc
Pages15-28
Number of pages14
ISBN (Electronic)9781450341936
DOIs
StatePublished - Aug 22 2016
Event2016 ACM Conference on Special Interest Group on Data Communication, SIGCOMM 2016 - Florianopolis, Brazil
Duration: Aug 22 2016Aug 26 2016

Other

Other2016 ACM Conference on Special Interest Group on Data Communication, SIGCOMM 2016
CountryBrazil
CityFlorianopolis
Period8/22/168/26/16

Fingerprint

transaction
programming
Switches
Block codes
hardware
Hardware
Firmware
High level languages
Processing
language
scheduling
Scheduling
traffic
engineering
management

Keywords

  • Programmable switches
  • Stateful data-plane algorithms

ASJC Scopus subject areas

  • Electrical and Electronic Engineering
  • Communication
  • Computer Networks and Communications
  • Signal Processing

Cite this

Sivaraman, A., Cheung, A., Budiu, M., Kim, C., Alizadeh, M., Balakrishnan, H., ... Licking, S. (2016). Packet transactions: High-level programming for line-rate switches. In SIGCOMM 2016 - Proceedings of the 2016 ACM Conference on Special Interest Group on Data Communication (pp. 15-28). [2934900] Association for Computing Machinery, Inc. https://doi.org/10.1145/2934872.2934900

Packet transactions : High-level programming for line-rate switches. / Sivaraman, Anirudh; Cheung, Alvin; Budiu, Mihai; Kim, Changhoon; Alizadeh, Mohammad; Balakrishnan, Hari; Varghese, George; McKeown, Nick; Licking, Steve.

SIGCOMM 2016 - Proceedings of the 2016 ACM Conference on Special Interest Group on Data Communication. Association for Computing Machinery, Inc, 2016. p. 15-28 2934900.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Sivaraman, A, Cheung, A, Budiu, M, Kim, C, Alizadeh, M, Balakrishnan, H, Varghese, G, McKeown, N & Licking, S 2016, Packet transactions: High-level programming for line-rate switches. in SIGCOMM 2016 - Proceedings of the 2016 ACM Conference on Special Interest Group on Data Communication., 2934900, Association for Computing Machinery, Inc, pp. 15-28, 2016 ACM Conference on Special Interest Group on Data Communication, SIGCOMM 2016, Florianopolis, Brazil, 8/22/16. https://doi.org/10.1145/2934872.2934900
Sivaraman A, Cheung A, Budiu M, Kim C, Alizadeh M, Balakrishnan H et al. Packet transactions: High-level programming for line-rate switches. In SIGCOMM 2016 - Proceedings of the 2016 ACM Conference on Special Interest Group on Data Communication. Association for Computing Machinery, Inc. 2016. p. 15-28. 2934900 https://doi.org/10.1145/2934872.2934900
Sivaraman, Anirudh ; Cheung, Alvin ; Budiu, Mihai ; Kim, Changhoon ; Alizadeh, Mohammad ; Balakrishnan, Hari ; Varghese, George ; McKeown, Nick ; Licking, Steve. / Packet transactions : High-level programming for line-rate switches. SIGCOMM 2016 - Proceedings of the 2016 ACM Conference on Special Interest Group on Data Communication. Association for Computing Machinery, Inc, 2016. pp. 15-28
@inproceedings{9c7dd09d8bbb46f78cda064f494d1601,
title = "Packet transactions: High-level programming for line-rate switches",
abstract = "Many algorithms for congestion control, scheduling, network measurement, active queue management, and traffic engineering require custom processing of packets in the data plane of a network switch. To run at line rate, these dataplane algorithms must be implemented in hardware. With today's switch hardware, algorithms cannot be changed, nor new algorithms installed, after a switch has been built. This paper shows how to program data-plane algorithms in a high-level language and compile those programs into low-level microcode that can run on emerging programmable line-rate switching chips. The key challenge is that many data-plane algorithms create and modify algorithmic state. To achieve line-rate programmability for stateful algorithms, we introduce the notion of a packet transaction: a sequential packet-processing code block that is atomic and isolated from other such code blocks. We have developed this idea in Domino, a C-like imperative language to express data-plane algorithms. We show with many examples that Domino provides a convenient way to express sophisticated data-plane algorithms, and show that these algorithms can be run at line rate with modest estimated chip-area overhead.",
keywords = "Programmable switches, Stateful data-plane algorithms",
author = "Anirudh Sivaraman and Alvin Cheung and Mihai Budiu and Changhoon Kim and Mohammad Alizadeh and Hari Balakrishnan and George Varghese and Nick McKeown and Steve Licking",
year = "2016",
month = "8",
day = "22",
doi = "10.1145/2934872.2934900",
language = "English (US)",
pages = "15--28",
booktitle = "SIGCOMM 2016 - Proceedings of the 2016 ACM Conference on Special Interest Group on Data Communication",
publisher = "Association for Computing Machinery, Inc",

}

TY - GEN

T1 - Packet transactions

T2 - High-level programming for line-rate switches

AU - Sivaraman, Anirudh

AU - Cheung, Alvin

AU - Budiu, Mihai

AU - Kim, Changhoon

AU - Alizadeh, Mohammad

AU - Balakrishnan, Hari

AU - Varghese, George

AU - McKeown, Nick

AU - Licking, Steve

PY - 2016/8/22

Y1 - 2016/8/22

N2 - Many algorithms for congestion control, scheduling, network measurement, active queue management, and traffic engineering require custom processing of packets in the data plane of a network switch. To run at line rate, these dataplane algorithms must be implemented in hardware. With today's switch hardware, algorithms cannot be changed, nor new algorithms installed, after a switch has been built. This paper shows how to program data-plane algorithms in a high-level language and compile those programs into low-level microcode that can run on emerging programmable line-rate switching chips. The key challenge is that many data-plane algorithms create and modify algorithmic state. To achieve line-rate programmability for stateful algorithms, we introduce the notion of a packet transaction: a sequential packet-processing code block that is atomic and isolated from other such code blocks. We have developed this idea in Domino, a C-like imperative language to express data-plane algorithms. We show with many examples that Domino provides a convenient way to express sophisticated data-plane algorithms, and show that these algorithms can be run at line rate with modest estimated chip-area overhead.

AB - Many algorithms for congestion control, scheduling, network measurement, active queue management, and traffic engineering require custom processing of packets in the data plane of a network switch. To run at line rate, these dataplane algorithms must be implemented in hardware. With today's switch hardware, algorithms cannot be changed, nor new algorithms installed, after a switch has been built. This paper shows how to program data-plane algorithms in a high-level language and compile those programs into low-level microcode that can run on emerging programmable line-rate switching chips. The key challenge is that many data-plane algorithms create and modify algorithmic state. To achieve line-rate programmability for stateful algorithms, we introduce the notion of a packet transaction: a sequential packet-processing code block that is atomic and isolated from other such code blocks. We have developed this idea in Domino, a C-like imperative language to express data-plane algorithms. We show with many examples that Domino provides a convenient way to express sophisticated data-plane algorithms, and show that these algorithms can be run at line rate with modest estimated chip-area overhead.

KW - Programmable switches

KW - Stateful data-plane algorithms

UR - http://www.scopus.com/inward/record.url?scp=84986587169&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84986587169&partnerID=8YFLogxK

U2 - 10.1145/2934872.2934900

DO - 10.1145/2934872.2934900

M3 - Conference contribution

SP - 15

EP - 28

BT - SIGCOMM 2016 - Proceedings of the 2016 ACM Conference on Special Interest Group on Data Communication

PB - Association for Computing Machinery, Inc

ER -