line
header image

Implementing Lightweight Routing for BSD TCP/IP

by Antti Kantee

Abstract

The BSD TCP/IP stack is the de facto standard for TCP/IP interoperability. Leveraging as much as possible of the proven code is beneficial to all parties when considering new operating platforms. However, the implementation of packet routing within the stack is targeted for core routers. The code size is huge and presents no benefit for network leaf nodes, especially embedded systems. Additionally, making matters worse, the implementation is convoluted and provides no clear interface for alternate implementations.

This paper discusses a lightweight routing implementation for the BSD networking stack. By replacing the existing routing code by a much simpler implementation the size of the networking stack was reduced by 20%; this is more than the size of the TCP module. For leaf nodes, the functionality and performance of lightweight routing is equivalent to the historic BSD routing code.

Author bio

Antti Kantee's main occupation is seeking funding for his research. Time and funding permitting, he is a hobbyist doctoral student at the Helsinki University of Technology. In the latter capacity, he works on making modern operating systems more flexible, modular, secure and fault tolerant. Further time sinks include eating, cooking, and trying to get his fellow NetBSD developers to agree that NetHack should be moved from pkgsrc into the kernel.

Johannes Helander is a Researcher at Microsoft, currently working on Invisible Computing with a focus on Embedded Web Services and Component Operating Systems. He wants to see computers enhance everyday life and everyday objects without compromising privacy. Topics of interest include distributed programming, real-time and energy performance, and software for next generation embedded hardware.

go back to the schedule