aboutsummaryrefslogtreecommitdiffstats
path: root/research/experiments/013-parallel-syncs
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-28 19:30:44 +0100
committereunhhu <[email protected]>2026-09-28 19:30:44 +0100
commita83d663404e030a8734fddc8827fb4afe309a1b9 (patch)
treed94c2eb3c63cddd5418e8ffeb1896747abc4ac96 /research/experiments/013-parallel-syncs
parent09b754f2490dec5582ba79c9cde55b32bac12bcf (diff)
downloadpure-a83d663404e030a8734fddc8827fb4afe309a1b9.tar.gz
pure-a83d663404e030a8734fddc8827fb4afe309a1b9.zip
Keep a run's keys as bytes: one AES-GCM context serves the listener
Each run a listener knew held two OpenSSL contexts. With 16 KiB pages, what those allocations left behind when idle senders went kept 42 MB of free heap resident after 10,000 senders had come and gone (in use: 0.6 MB). A run now keeps its keys (16 bytes each way and the nonce bases), and the listener seals and opens with one context, giving it each packet's key: about 130 ns a packet on this Pi. Two runs a sender, not four; a sender's address as an IPv6 one (an IPv4 one fits). What idle senders held goes back to the system once 1,024 have gone, or 10 s after any went (malloc_trim). HKDF is fetched once, not at every derivation.
Diffstat (limited to 'research/experiments/013-parallel-syncs')
0 files changed, 0 insertions, 0 deletions