Programming Language Techniques for Modular Router Configurations

This paper applies programming language techniques to a high-level system description, both to optimize the system and to prove useful properties about it. The system in question is Click, a modular software router framework. Click routers are built from components called elements. Elements are writ...

Full description

Bibliographic Details
Main Authors: Kohler, Eddie, Chen, Benjie, Kaashoek, M. Frans, Morris, Robert T., Poletto, Massimiliano
Published: 2023
Online Access:https://hdl.handle.net/1721.1/149915
_version_ 1826190140903522304
author Kohler, Eddie
Chen, Benjie
Kaashoek, M. Frans
Morris, Robert T.
Poletto, Massimiliano
author_facet Kohler, Eddie
Chen, Benjie
Kaashoek, M. Frans
Morris, Robert T.
Poletto, Massimiliano
author_sort Kohler, Eddie
collection MIT
description This paper applies programming language techniques to a high-level system description, both to optimize the system and to prove useful properties about it. The system in question is Click, a modular software router framework. Click routers are built from components called elements. Elements are written in C++, but the user creates a configuration using a simple, declarative data flow language. This language is amenable to data flow analysis and other conventional programming language techniques. Applied to a router configuration, these techniques have high-level results---for example, optimizing the router or verifying its high-level properties. This paper describes several programming language techniques that have been useful in practice, including optimization tools that remove virtual function calls from router definitions and remove redundant parts of adjacent routers. We also present performance results for an extensively optimized standards-compliant IP router. On conventional PC hardware, this router can forward up to 456,000 64-byte packets per second.
first_indexed 2024-09-23T08:35:40Z
id mit-1721.1/149915
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T08:35:40Z
publishDate 2023
record_format dspace
spelling mit-1721.1/1499152023-03-30T04:20:16Z Programming Language Techniques for Modular Router Configurations Kohler, Eddie Chen, Benjie Kaashoek, M. Frans Morris, Robert T. Poletto, Massimiliano This paper applies programming language techniques to a high-level system description, both to optimize the system and to prove useful properties about it. The system in question is Click, a modular software router framework. Click routers are built from components called elements. Elements are written in C++, but the user creates a configuration using a simple, declarative data flow language. This language is amenable to data flow analysis and other conventional programming language techniques. Applied to a router configuration, these techniques have high-level results---for example, optimizing the router or verifying its high-level properties. This paper describes several programming language techniques that have been useful in practice, including optimization tools that remove virtual function calls from router definitions and remove redundant parts of adjacent routers. We also present performance results for an extensively optimized standards-compliant IP router. On conventional PC hardware, this router can forward up to 456,000 64-byte packets per second. 2023-03-29T15:33:47Z 2023-03-29T15:33:47Z 2000-08 https://hdl.handle.net/1721.1/149915 MIT-LCS-TR-812 application/pdf
spellingShingle Kohler, Eddie
Chen, Benjie
Kaashoek, M. Frans
Morris, Robert T.
Poletto, Massimiliano
Programming Language Techniques for Modular Router Configurations
title Programming Language Techniques for Modular Router Configurations
title_full Programming Language Techniques for Modular Router Configurations
title_fullStr Programming Language Techniques for Modular Router Configurations
title_full_unstemmed Programming Language Techniques for Modular Router Configurations
title_short Programming Language Techniques for Modular Router Configurations
title_sort programming language techniques for modular router configurations
url https://hdl.handle.net/1721.1/149915
work_keys_str_mv AT kohlereddie programminglanguagetechniquesformodularrouterconfigurations
AT chenbenjie programminglanguagetechniquesformodularrouterconfigurations
AT kaashoekmfrans programminglanguagetechniquesformodularrouterconfigurations
AT morrisrobertt programminglanguagetechniquesformodularrouterconfigurations
AT polettomassimiliano programminglanguagetechniquesformodularrouterconfigurations