-
Build the release version of neqo-client and neqo-server by running
cargo build --release
-
Start neqo-server
./target/release/neqo-server --db ./test-fixture/db
-
Start neqo-client and specify parameters to start the upload test
./target/release/neqo-client http://127.0.0.1:4433/ --test upload --upload-size ${size_in_bytes}
This can be done by setting the RUST_LOG
environment variable to neqo_transport=info
.
For example, the command below starts neqo-client and uploads 8MB of content to the server.
RUST_LOG=neqo_transport=info ./target/release/neqo-client http://127.0.0.1:4433/ --test upload --upload-size 8388608 &>upload.log
The upload_test.sh
script automates testing network conditions for neqo-client
and neqo-server
. It runs the upload test under various network parameters like bandwidth, RTT (Round-Trip Time), and PLR (Packet Loss Rate).
- Server Address and Port: Defaults to
127.0.0.1
and4433
. - Upload Size: Set to 8MB by default.
- Network Conditions: Modify
network_conditions
,network_bandwidths
,network_rtts
, andplrs
arrays for different conditions. - Runs: Number of test iterations, default is
1
.
- Start the Script: Execute with
./upload_test.sh
. - Root Password Prompt: Enter the root password when prompted for executing network configuration commands.
- Automated Test Execution: The script sets up network conditions and runs
neqo-client
andneqo-server
tests. - Cleanup: At the end, it resets network conditions and stops the server.
Run ./mozlog-neqo-cwnd.py upload.log
to view the logs with matplotlib and python.