Skip to content

Latest commit

 

History

History
110 lines (74 loc) · 1.88 KB

File metadata and controls

110 lines (74 loc) · 1.88 KB

Development

Setup

brew install meson qemu
python3 -m venv .venv
source .venv/bin/activate
pip install pytest scapy pyyaml black matplotlib

Building

./build.sh build

This creates a universal binary (arm64 + x86_64) at build/vmnet-helper.tar.gz.

Installing

To install from a locally built tarball:

./install.sh build/vmnet-helper.tar.gz

Tests

To run the tests, activate the virtual environment first:

source .venv/bin/activate
pytest -v

Formatting

./fmt.sh

Benchmarking

Activate the virtual environment first:

source .venv/bin/activate

Create VMs for benchmarking (see examples for details on the run tool):

./bench create

To run all benchmarks with all drivers and all operation modes and store iperf3 results in json format use:

./bench run performance/benchmarks/full.yaml

The benchmark results are stored under out/bench/vmnet-helper.

See the benchmarks directory for additional configurations.

When done you can delete the vms using:

./bench delete

Creating plots

To create plots from benchmark results run:

./bench plot -o out performance/plots/drivers.yaml

The plots use the results stored under out/bench and created under out/plot.

See the plots directory for additional configurations.

socket_vmnet

Running socket_vmnet as launchd service, creating virtual machines with lima 1.0.6.

Tests run using socket_vmnet test/perf.sh script:

test/perf.sh create
test/perf.sh run

To include socket_vmnet results in the plots copy the test results to the output directory:

cp ~/src/socket_vmnet/test/perf.out/socket_vmnet out/bench/