Juliusz Sosinowicz
c815d98ef4
DTLS throughput: add benchmark tool and optimize the record send path
...
Add examples/benchmark/dtls_bench, a DTLS throughput benchmark that
completes a handshake and then measures bulk-send throughput. It
supports DTLS 1.2 and 1.3, selectable cipher suites, an end-to-end
mode, and a -z sink mode that discards records on the server after the
handshake to isolate the sender's record-layer cost. The socket is set
up with wolfSSL_set_dtls_fd_connected.
Optimize the send path exercised by the benchmark:
- wolfio (EmbedSendTo): cache the per-descriptor socket-type probe
(getsockopt SO_TYPE) in WOLFSSL_DTLS_CTX instead of running it on
every send, removing a syscall from the record send path. The cache
is invalidated whenever rfd/wfd is reassigned.
- internal (BuildMessage): for AEAD suites whose explicit nonce is the
8-byte record sequence number, write the sequence number directly as
nonce_explicit instead of drawing it from the RNG. This covers
AES-GCM (RFC 5288 sec 3), AES-CCM (RFC 6655 sec 3), SM4-GCM/CCM
(RFC 8998 sec 3), and Camellia-/ARIA-GCM which inherit the RFC 5288
construction; ChaCha20 uses an implicit nonce and is excluded. A new
read-only PeekSEQ() helper reads the sequence number without advancing
the per-direction counter, leaving the single mandated increment to
writeAeadAuthData().
Also ignore the built dtls_bench binary in .gitignore.
2026-06-10 14:03:52 +02:00
..
2026-02-18 09:52:21 -07:00
2026-05-13 16:32:54 -06:00
2026-06-02 16:20:37 -06:00
2026-06-10 09:11:59 +10:00
2026-06-08 10:29:10 -07:00
2026-05-12 20:59:29 +00:00
2026-04-14 13:25:15 +10:00
2026-04-14 13:25:15 +10:00
2026-02-18 09:52:21 -07:00
2026-05-11 21:07:53 -07:00
2026-04-15 17:05:32 +10:00
2026-05-28 15:19:20 +02:00
2026-05-28 15:19:20 +02:00
2026-04-07 13:18:53 -05:00
2026-02-18 09:52:21 -07:00
2026-05-13 09:01:20 -06:00
2026-05-07 02:31:25 +00:00
2026-06-05 16:27:00 -05:00
2026-05-27 16:54:14 -07:00
2026-05-12 20:59:29 +00:00
2026-05-12 20:59:29 +00:00
2026-04-15 17:05:32 +10:00
2026-04-15 17:05:32 +10:00
2026-05-14 15:19:56 -07:00
2026-02-18 09:52:21 -07:00
2026-05-13 17:02:08 -07:00
2026-05-13 17:02:08 -07:00
2026-06-01 09:14:57 +10:00
2026-06-01 09:14:57 +10:00
2026-04-16 08:51:17 +10:00
2026-04-14 13:25:15 +10:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-05-13 16:39:54 +10:00
2026-05-11 10:05:45 -07:00
2026-05-28 19:34:09 +10:00
2026-05-28 19:34:09 +10:00
2026-06-10 14:03:52 +02:00
2026-06-10 09:11:59 +10:00
2026-05-13 16:18:51 +02:00
2026-04-23 11:26:33 +02:00
2026-06-05 11:30:53 +10:00
2026-05-28 19:53:19 +02:00
2026-06-05 11:30:53 +10:00
2026-05-28 19:53:19 +02:00
2026-06-04 17:26:48 -05:00
2026-03-05 08:51:52 -06:00
2026-05-06 15:25:06 -06:00
2026-02-18 09:52:21 -07:00
2026-06-04 18:29:24 +10:00
2026-05-28 14:40:36 +00:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-24 06:52:49 -06:00
2026-02-18 09:52:21 -07:00
2026-05-13 16:18:52 +02:00
2026-02-26 10:26:20 -06:00
2026-06-04 18:29:24 +10:00
2026-05-28 19:34:09 +10:00
2026-05-13 11:36:36 -06:00
2026-02-18 09:52:21 -07:00
2026-05-13 11:36:36 -06:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-06-04 18:29:24 +10:00
2026-05-28 19:34:09 +10:00
2026-05-28 19:34:09 +10:00
2026-05-12 20:59:29 +00:00
2026-05-12 20:59:29 +00:00
2026-06-02 16:20:37 -06:00
2026-06-05 16:27:00 -05:00
2026-06-05 16:27:00 -05:00
2026-04-03 17:13:29 -06:00
2026-02-18 09:52:21 -07:00
2026-05-04 10:35:04 +02:00
2026-04-21 19:05:26 +03:00
2026-04-13 15:50:26 +02:00
2026-02-18 09:52:21 -07:00
2026-05-07 02:33:58 +00:00
2026-05-07 02:33:58 +00:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-06 00:53:57 -05:00
2026-02-18 09:52:21 -07:00
2026-05-27 15:38:30 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-23 09:36:32 +02:00
2026-04-23 09:36:32 +02:00
2026-05-22 19:24:53 +03:00
2026-05-22 19:24:53 +03:00
2026-05-14 16:59:12 +00:00
2026-05-14 16:59:12 +00:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-05-22 14:56:14 -06:00
2026-05-22 14:56:14 -06:00
2026-06-01 09:57:19 +10:00
2026-06-01 09:57:19 +10:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-06-04 10:38:37 -07:00
2026-06-04 10:38:37 -07:00
2026-04-28 10:06:47 +00:00
2026-04-28 10:06:47 +00:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-05-05 11:41:28 -07:00
2026-04-09 13:09:17 -04:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-05-07 07:32:51 -05:00
2026-05-07 07:31:25 -05:00
2026-05-13 16:18:51 +02:00
2026-05-13 16:39:54 +10:00
2026-06-01 14:23:38 -05:00
2026-04-15 03:08:50 +02:00
2026-04-10 15:43:21 +10:00
2026-04-10 15:43:21 +10:00
2026-06-01 14:23:38 -05:00
2026-05-20 07:25:35 -07:00
2026-06-04 15:30:39 +09:00
2026-06-04 09:08:24 +09:00
2026-05-12 20:57:31 +00:00
2026-05-12 20:57:31 +00:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-05-27 18:20:20 -07:00
2026-05-27 15:57:00 -07:00
2026-05-28 19:34:09 +10:00
2026-05-28 19:34:09 +10:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-06-04 20:21:50 +02:00
2026-06-04 20:21:50 +02:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-15 18:03:39 -06:00
2026-04-15 11:28:03 -06:00
2026-04-08 17:07:42 +09:00
2026-04-08 17:07:42 +09:00
2026-05-12 20:59:29 +00:00
2026-05-11 10:14:13 +02:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-02-18 09:52:21 -07:00
2026-04-14 13:25:15 +10:00
2026-04-14 13:25:15 +10:00
2026-06-10 09:11:59 +10:00
2026-06-10 09:11:59 +10:00
2026-06-10 09:11:59 +10:00
2026-06-10 09:11:59 +10:00
2026-06-10 09:11:59 +10:00
2026-06-10 09:11:59 +10:00
2026-06-08 12:41:34 -07:00
2026-06-05 12:36:00 -05:00
2026-05-29 12:20:30 -04:00
2026-05-29 12:20:30 -04:00
2026-06-09 14:40:16 -07:00
2026-06-09 14:40:16 -07:00
2026-04-10 15:43:21 +10:00
2026-04-10 15:43:21 +10:00
2026-05-11 12:09:50 -05:00
2026-02-18 09:52:21 -07:00
2026-06-04 18:29:24 +10:00
2026-04-13 17:02:51 -05:00