hoang-tranviet / tcp-options-bpf

Linux kernel: eBPF support for user-defined TCP options

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

Linux kernel: eBPF support for user-defined TCP options

License:Other


Languages

Language:C 96.3%Language:C++ 1.4%Language:Assembly 1.3%Language:Objective-C 0.3%Language:Makefile 0.3%Language:Perl 0.1%Language:Shell 0.1%Language:Python 0.1%Language:Roff 0.0%Language:Yacc 0.0%Language:SmPL 0.0%Language:Lex 0.0%Language:Awk 0.0%Language:UnrealScript 0.0%Language:Gherkin 0.0%Language:M4 0.0%Language:Clojure 0.0%Language:XS 0.0%Language:Raku 0.0%Language:sed 0.0%