diff options
| author | eunhhu <[email protected]> | 2026-09-29 16:13:48 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-29 16:13:48 +0100 |
| commit | 1e562fb73527adb46a6ce8f4f302e22460aedf95 (patch) | |
| tree | 1fda2af52fe8dee2232a00f82407c2f2ff5159a7 /research/experiments/019-idle-links/ngtcp2/build.sh | |
| parent | 500ab6a026c5cb39e04ed74c0cbdf9d482035413 (diff) | |
| download | pure-1e562fb73527adb46a6ce8f4f302e22460aedf95.tar.gz pure-1e562fb73527adb46a6ce8f4f302e22460aedf95.zip | |
Put ngtcp2 beside quinn in M5, as the design planned
ngtcp2 1.25.0 with OpenSSL 3.5's QUIC TLS (its ossl backend), fetched
and built into build/third by ngtcp2/build.sh; drain.c does in C what
the quinn harness does: one connection, one stream, "pure" and then the
messages each after its u32 length, counted by the service, packets in
GSO bursts. Its stream bytes are a function of their offset, so what
ngtcp2 keeps to send again points into a pattern that never changes.
run.py's drain_ngtcp2 measures both sides' CPU as drain_quic does.
Five rounds each, both sides' CPU a message: 61 B Pure 0.280, ngtcp2
0.270, quinn 0.310 us; 1 KiB 2.62, 3.54, 3.94; 16 KiB 40.2, 54.4, 60.2.
Diffstat (limited to 'research/experiments/019-idle-links/ngtcp2/build.sh')
| -rwxr-xr-x | research/experiments/019-idle-links/ngtcp2/build.sh | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/research/experiments/019-idle-links/ngtcp2/build.sh b/research/experiments/019-idle-links/ngtcp2/build.sh new file mode 100755 index 0000000..e76017a --- /dev/null +++ b/research/experiments/019-idle-links/ngtcp2/build.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# ngtcp2 1.25.0 with its OpenSSL 3.5 backend, into build/third (not kept in +# the repository), and drain.c against it: build/third/ngtcp2-drain. +set -e +root=$(cd "$(dirname "$0")/../../../.." && pwd) +third=$root/build/third +if [ ! -f "$third/prefix/lib/libngtcp2.a" ]; then + mkdir -p "$third" + [ -d "$third/ngtcp2" ] || git clone -q --depth 1 --branch v1.25.0 https://github.com/ngtcp2/ngtcp2 "$third/ngtcp2" + mkdir -p "$third/ngtcp2/b" + (cd "$third/ngtcp2/b" && cmake -DENABLE_LIB_ONLY=ON -DENABLE_OPENSSL=ON -DENABLE_SHARED_LIB=OFF -DBUILD_TESTING=OFF \ + -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$third/prefix" .. > /dev/null && make -s -j4 > /dev/null && + make -s install > /dev/null) +fi +cc -O2 -g -std=c17 -Wall -Wextra -Werror -I"$third/prefix/include" "$(dirname "$0")/drain.c" \ + "$third/prefix/lib/libngtcp2_crypto_ossl.a" "$third/prefix/lib/libngtcp2.a" -lssl -lcrypto -o "$third/ngtcp2-drain" |
