A Flow API for Linux Hardware Devices

John Fastabend · 2015

This paper proposes a Linux kernel-user API called Flow API that can be used to leverage hardware device flow tables. One goal of this API is to be generic enough to support a wide range of networking hardware and use cases. We believe this is essential to a successful API on an operating system that supports host network interface, top of rack switch devices and everything in between. In this paper we outline the insights that have guided the development of this API as well as illustrate how the API can be used by developers to write useful programs that can work across a wide array of devices without resorting to vendor specific code. To enable this API we have readily available C code that implements the API on top of rocker, an emulated switch supported by Linux. Additionally we provide a user space package to illustrate usages of the API which is also available. Finally we want to highlight some ongoing work and open problems under development.

Read the paper · More papers on PaperTik