/tcp-options-bpf

Linux kernel: eBPF support for user-defined TCP options

Primary LanguageCOtherNOASSERTION

eBPF support for user-defined TCP options
=========================================

This work is based on TCP-BPF framework by Lawrence Brakmo, 
which is already merged in recent kernels.

This is a part of our academic work. For more information, please read our paper:

    https://www.arxiv-vanity.com/papers/1901.01863/

The BPF programs and user daemon/script are in the tcp-option/ folder.

- test_tcp_user.c: user daemon to load BPF program and run experiments 
- my_net*.sh: script to set up the network environment, similar to mininet.
 We cannot use mininet since it based on cgroup-v1, while tcp-bpf use cgroup-v2.
- bpf_tcp_*.c: BPF programs.

How to run
-----------

    cd tcp-option
    make
    sudo ./test_tcp_user  bpf_tcp_cc_kern.o

Be aware to specify the BPF-compiled object (ended with '.o').
Or add ``-q`` to suppress the debug information:

    sudo ./test_tcp_user  bpf_tcp_cc_kern.o -q

Authors
-------

Viet-Hoang Tran and Olivier Bonaventure.
@ INL, ICTEAM, UCLouvain.