Benchmarks and network impairment

make benchmark runs bounded echo payloads through HTTP and, when libcoap is available, through confirmable CoAP. It records transport, operation, payload and response bytes, end-to-end latency, and host binary size in build-benchmark/results.csv. The default is 25 repetitions per payload; ./scripts/benchmark.sh 100 changes the sample count.

The MQTT binding currently has deterministic semantic/replay tests rather than wire measurements because no broker adapter is included yet. Add MQTT rows only after a real MQTT 5 adapter and broker are in the measurement path.

For manual loss and latency experiments, use scripts/netem.sh on a dedicated test interface. The script supports 1%, 5%, and 10% loss; 20, 100, and 300 ms delay; delay with jitter; complete temporary disconnection; inspection; and cleanup. It deliberately requires an explicit interface and root privileges. Do not run impairment against a production or remote-management interface.

Examples:

sudo ./scripts/netem.sh eth0 loss5
make benchmark
sudo ./scripts/netem.sh eth0 clear

TLS/DTLS and PQC measurements belong below this harness. Future profiles should add handshake time/bytes, packets, fragmentation, peak RAM/stack, and code-size deltas while holding MCP messages and application operations constant.


© 2025 servoagents. Licensed under the MIT License (see LICENSE.txt on GitHub).

This site uses Just the Docs, a documentation theme for Jekyll.