├── .DS_Store ├── .gitignore ├── Makefile ├── README.md ├── baseline ├── .DS_Store ├── Readme.md ├── gather_stats.py ├── mk-tap.sh ├── plot.py └── results │ ├── matched │ ├── bandwidth.png │ ├── bandwidths.csv │ ├── latencies.csv │ └── latency.png │ └── unmatched │ ├── bandwidth.png │ ├── bandwidths.csv │ ├── latencies.csv │ └── latency.png ├── bin └── .gitignore ├── cmd ├── da-example │ ├── ebpf │ │ └── tc_ebpf_delay.c │ ├── main.go │ ├── tc_bpfeb.go │ └── tc_bpfel.go ├── ebpf-delay │ ├── delay_bpfeb.go │ ├── delay_bpfel.go │ ├── ebpf │ │ └── ebpf_delay.c │ └── main.go ├── ebpf-network-emulation │ ├── ebpf │ │ └── network_simulation.c │ ├── edt_bpfeb.go │ ├── edt_bpfel.go │ └── main.go ├── experiment │ └── main.go ├── headers │ ├── helpers.h │ └── maps.h ├── map-populator │ └── main.go └── setup-experiment │ ├── classic.go │ ├── create-bridge.sh │ ├── create-tap.sh │ ├── library.go │ ├── main.go │ ├── mk-tap.sh │ └── setup-log.csv ├── go.mod ├── go.sum ├── internal └── utils │ └── tc_helpers.go ├── results ├── .gitignore ├── bandwidth_combined_gcp.pdf ├── bandwidth_combined_metal.pdf ├── bandwidth_netem_matches_gcp.pdf ├── bandwidth_netem_matches_metal.pdf ├── ec2-metal │ └── ec2-metal.csv ├── gcp │ ├── bandwidth_ebpf.csv │ ├── bandwidth_netem_match_30000.csv │ ├── bandwidth_netem_nomatch.csv │ ├── iperf-ebpf-10min.json │ ├── iperf-ebpf.json │ ├── iperf-netem-10min.json │ ├── iperf-netem.json │ ├── latency_ebpf.csv │ ├── latency_netem_match_30000.csv │ ├── latency_netem_nomatch.csv │ ├── ping_experiment.csv │ └── setup-log-1024.csv ├── iperf_experiment_gcp-10min.pdf ├── iperf_experiment_gcp-1min.pdf ├── latency_combined_gcp.pdf ├── latency_combined_metal.pdf ├── latency_netem_matches_gcp.pdf ├── latency_netem_matches_metal.pdf ├── metal │ ├── bandwidth_ebpf.csv │ ├── bandwidth_netem_match_1000.csv │ ├── bandwidth_netem_match_30000.csv │ ├── bandwidth_netem_nomatch.csv │ ├── latency_ebpf.csv │ ├── latency_netem_match_1000.csv │ ├── latency_netem_match_30000.csv │ ├── latency_netem_nomatch.csv │ └── setup-log-1024.csv ├── ping_experiment_gcp.pdf ├── plot.py ├── plot_utils.py ├── time_per_link_rel_gcp.pdf └── time_per_link_rel_metal.pdf └── scripts ├── build_ebpf.sh ├── build_ebpf_da.sh ├── build_tc_edt.sh ├── tc_rules.sh ├── tc_rules_da.sh └── tc_rules_edt.sh /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/.gitignore -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/README.md -------------------------------------------------------------------------------- /baseline/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/.DS_Store -------------------------------------------------------------------------------- /baseline/Readme.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /baseline/gather_stats.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/gather_stats.py -------------------------------------------------------------------------------- /baseline/mk-tap.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/mk-tap.sh -------------------------------------------------------------------------------- /baseline/plot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/plot.py -------------------------------------------------------------------------------- /baseline/results/matched/bandwidth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/results/matched/bandwidth.png -------------------------------------------------------------------------------- /baseline/results/matched/bandwidths.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/results/matched/bandwidths.csv -------------------------------------------------------------------------------- /baseline/results/matched/latencies.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/results/matched/latencies.csv -------------------------------------------------------------------------------- /baseline/results/matched/latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/results/matched/latency.png -------------------------------------------------------------------------------- /baseline/results/unmatched/bandwidth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/results/unmatched/bandwidth.png -------------------------------------------------------------------------------- /baseline/results/unmatched/bandwidths.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/results/unmatched/bandwidths.csv -------------------------------------------------------------------------------- /baseline/results/unmatched/latencies.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/results/unmatched/latencies.csv -------------------------------------------------------------------------------- /baseline/results/unmatched/latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/baseline/results/unmatched/latency.png -------------------------------------------------------------------------------- /bin/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | */ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /cmd/da-example/ebpf/tc_ebpf_delay.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/da-example/ebpf/tc_ebpf_delay.c -------------------------------------------------------------------------------- /cmd/da-example/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/da-example/main.go -------------------------------------------------------------------------------- /cmd/da-example/tc_bpfeb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/da-example/tc_bpfeb.go -------------------------------------------------------------------------------- /cmd/da-example/tc_bpfel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/da-example/tc_bpfel.go -------------------------------------------------------------------------------- /cmd/ebpf-delay/delay_bpfeb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/ebpf-delay/delay_bpfeb.go -------------------------------------------------------------------------------- /cmd/ebpf-delay/delay_bpfel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/ebpf-delay/delay_bpfel.go -------------------------------------------------------------------------------- /cmd/ebpf-delay/ebpf/ebpf_delay.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/ebpf-delay/ebpf/ebpf_delay.c -------------------------------------------------------------------------------- /cmd/ebpf-delay/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/ebpf-delay/main.go -------------------------------------------------------------------------------- /cmd/ebpf-network-emulation/ebpf/network_simulation.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/ebpf-network-emulation/ebpf/network_simulation.c -------------------------------------------------------------------------------- /cmd/ebpf-network-emulation/edt_bpfeb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/ebpf-network-emulation/edt_bpfeb.go -------------------------------------------------------------------------------- /cmd/ebpf-network-emulation/edt_bpfel.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/ebpf-network-emulation/edt_bpfel.go -------------------------------------------------------------------------------- /cmd/ebpf-network-emulation/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/ebpf-network-emulation/main.go -------------------------------------------------------------------------------- /cmd/experiment/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/experiment/main.go -------------------------------------------------------------------------------- /cmd/headers/helpers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/headers/helpers.h -------------------------------------------------------------------------------- /cmd/headers/maps.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/headers/maps.h -------------------------------------------------------------------------------- /cmd/map-populator/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/map-populator/main.go -------------------------------------------------------------------------------- /cmd/setup-experiment/classic.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/setup-experiment/classic.go -------------------------------------------------------------------------------- /cmd/setup-experiment/create-bridge.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/setup-experiment/create-bridge.sh -------------------------------------------------------------------------------- /cmd/setup-experiment/create-tap.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/setup-experiment/create-tap.sh -------------------------------------------------------------------------------- /cmd/setup-experiment/library.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/setup-experiment/library.go -------------------------------------------------------------------------------- /cmd/setup-experiment/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/setup-experiment/main.go -------------------------------------------------------------------------------- /cmd/setup-experiment/mk-tap.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/setup-experiment/mk-tap.sh -------------------------------------------------------------------------------- /cmd/setup-experiment/setup-log.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/cmd/setup-experiment/setup-log.csv -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/go.sum -------------------------------------------------------------------------------- /internal/utils/tc_helpers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/internal/utils/tc_helpers.go -------------------------------------------------------------------------------- /results/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/.gitignore -------------------------------------------------------------------------------- /results/bandwidth_combined_gcp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/bandwidth_combined_gcp.pdf -------------------------------------------------------------------------------- /results/bandwidth_combined_metal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/bandwidth_combined_metal.pdf -------------------------------------------------------------------------------- /results/bandwidth_netem_matches_gcp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/bandwidth_netem_matches_gcp.pdf -------------------------------------------------------------------------------- /results/bandwidth_netem_matches_metal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/bandwidth_netem_matches_metal.pdf -------------------------------------------------------------------------------- /results/ec2-metal/ec2-metal.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/ec2-metal/ec2-metal.csv -------------------------------------------------------------------------------- /results/gcp/bandwidth_ebpf.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/bandwidth_ebpf.csv -------------------------------------------------------------------------------- /results/gcp/bandwidth_netem_match_30000.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/bandwidth_netem_match_30000.csv -------------------------------------------------------------------------------- /results/gcp/bandwidth_netem_nomatch.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/bandwidth_netem_nomatch.csv -------------------------------------------------------------------------------- /results/gcp/iperf-ebpf-10min.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/iperf-ebpf-10min.json -------------------------------------------------------------------------------- /results/gcp/iperf-ebpf.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/iperf-ebpf.json -------------------------------------------------------------------------------- /results/gcp/iperf-netem-10min.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/iperf-netem-10min.json -------------------------------------------------------------------------------- /results/gcp/iperf-netem.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/iperf-netem.json -------------------------------------------------------------------------------- /results/gcp/latency_ebpf.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/latency_ebpf.csv -------------------------------------------------------------------------------- /results/gcp/latency_netem_match_30000.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/latency_netem_match_30000.csv -------------------------------------------------------------------------------- /results/gcp/latency_netem_nomatch.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/latency_netem_nomatch.csv -------------------------------------------------------------------------------- /results/gcp/ping_experiment.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/ping_experiment.csv -------------------------------------------------------------------------------- /results/gcp/setup-log-1024.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/gcp/setup-log-1024.csv -------------------------------------------------------------------------------- /results/iperf_experiment_gcp-10min.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/iperf_experiment_gcp-10min.pdf -------------------------------------------------------------------------------- /results/iperf_experiment_gcp-1min.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/iperf_experiment_gcp-1min.pdf -------------------------------------------------------------------------------- /results/latency_combined_gcp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/latency_combined_gcp.pdf -------------------------------------------------------------------------------- /results/latency_combined_metal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/latency_combined_metal.pdf -------------------------------------------------------------------------------- /results/latency_netem_matches_gcp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/latency_netem_matches_gcp.pdf -------------------------------------------------------------------------------- /results/latency_netem_matches_metal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/latency_netem_matches_metal.pdf -------------------------------------------------------------------------------- /results/metal/bandwidth_ebpf.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/metal/bandwidth_ebpf.csv -------------------------------------------------------------------------------- /results/metal/bandwidth_netem_match_1000.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/metal/bandwidth_netem_match_1000.csv -------------------------------------------------------------------------------- /results/metal/bandwidth_netem_match_30000.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/metal/bandwidth_netem_match_30000.csv -------------------------------------------------------------------------------- /results/metal/bandwidth_netem_nomatch.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/metal/bandwidth_netem_nomatch.csv -------------------------------------------------------------------------------- /results/metal/latency_ebpf.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/metal/latency_ebpf.csv -------------------------------------------------------------------------------- /results/metal/latency_netem_match_1000.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/metal/latency_netem_match_1000.csv -------------------------------------------------------------------------------- /results/metal/latency_netem_match_30000.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/metal/latency_netem_match_30000.csv -------------------------------------------------------------------------------- /results/metal/latency_netem_nomatch.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/metal/latency_netem_nomatch.csv -------------------------------------------------------------------------------- /results/metal/setup-log-1024.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/metal/setup-log-1024.csv -------------------------------------------------------------------------------- /results/ping_experiment_gcp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/ping_experiment_gcp.pdf -------------------------------------------------------------------------------- /results/plot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/plot.py -------------------------------------------------------------------------------- /results/plot_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/plot_utils.py -------------------------------------------------------------------------------- /results/time_per_link_rel_gcp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/time_per_link_rel_gcp.pdf -------------------------------------------------------------------------------- /results/time_per_link_rel_metal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/results/time_per_link_rel_metal.pdf -------------------------------------------------------------------------------- /scripts/build_ebpf.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/scripts/build_ebpf.sh -------------------------------------------------------------------------------- /scripts/build_ebpf_da.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/scripts/build_ebpf_da.sh -------------------------------------------------------------------------------- /scripts/build_tc_edt.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/scripts/build_tc_edt.sh -------------------------------------------------------------------------------- /scripts/tc_rules.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/scripts/tc_rules.sh -------------------------------------------------------------------------------- /scripts/tc_rules_da.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/scripts/tc_rules_da.sh -------------------------------------------------------------------------------- /scripts/tc_rules_edt.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srnbckr/ebpf-network-emulation/HEAD/scripts/tc_rules_edt.sh --------------------------------------------------------------------------------