Making the Linux TCP stack more extensible with eBPF

Thu, 04/18/2019 - 17:14 by Viet-Hoang Tran

Abstract

We propose a novel way of extending the Linux TCP stack by leveraging
Lawrence Brakmo's TCP-BPF framework. We implement new eBPF callbacks to
support user-defined TCP options. We present 4 use cases: the TCP User
Timeout Option, which has been standardized in RFC 5482 but not yet
implemented in the Linux kernel. Since RFC 6994, TCP supports
experimental options. We use eBPF to implement a new experimental option
that enables a client to request a server to use a specific congestion
control scheme or set the initial congestion window. We also demonstrate
how eBPF code can be used to tune the acknowledgment strategy.

MPTCP is another interesting use case for eBPF with its scheduler and
path manager. We present an eBPF-based prototype MPTCP path-manager
framework and use it to implement the two existing ndiffports and
fullmesh path managers as eBPF programs.

Authors
Viet-Hoang Tran and Olivier Bonaventure
Source
Netdev 0x13, 2019.
Full text
pdf    (361.06 KB)
Slides
pdf    (547.71 KB)
Cite it
BibTex
Copyright
See here

IEEE Copyright Notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.

ACM Copyright Notice: Copyright 1999 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page or intial screen of the document. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept., ACM Inc., fax +1 (212) 869-0481, or permissions@acm.org.

Springer-Verlag LNCS Copyright Notice: The copyright of these contributions has been transferred to Springer-Verlag Berlin Heidelberg New York. The copyright transfer covers the exclusive right to reproduce and distribute the contribution, including reprints, translations, photographic reproductions, microform, electronic form (offline, online), or any other reproductions of similar nature. Online available from Springer-Verlag LNCS series.