|
wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
|
Remaining arguments of wired_srvloop_send_initial/send_handshake/send_onertt beyond s and out: the connection id to write as the reply's DCID (the client's SCID, RFC 9000 7.2 — possibly zero-length; every send path writes it, send_initial's keys still come from the odcid recorded at boot), the packet number, the client packet to acknowledge (< 0 for none, unused by send_onertt), and the payload — a TLS flight to wrap in CRYPTO for Initial/Handshake, or the raw 1-RTT payload for send_onertt. More...
#include <send.h>
Data Fields | |
| wired_span | cli_scid |
| reply DCID: the client's SCID (RFC 9000 7.2) | |
| u64 | pn |
| the packet number to seal with | |
| i64 | ack_pn |
| client packet to acknowledge, < 0 for none | |
| wired_span | payload |
| TLS flight (Initial/Handshake) or raw 1-RTT bytes. | |
| u64 | crypto_off |
| CRYPTO stream offset of payload's first byte (RFC 9000 19.6): 0 for an unsplit flight, the chunk's start offset when a Handshake flight is split across packets, or the ServerHello's continuation offset past a HelloRetryRequest on the Initial stream (RFC 8446 4.1.4). | |
| u64 | ect0 |
| RFC 9000 13.4.1: cumulative ECN counts for the trailing ACK (all zero = plain ACK). | |
| u64 | ect1 |
| Cumulative count of ECT(1)-marked datagrams (see ect0). | |
| u64 | ce |
| Cumulative count of CE-marked datagrams (see ect0). | |
Remaining arguments of wired_srvloop_send_initial/send_handshake/send_onertt beyond s and out: the connection id to write as the reply's DCID (the client's SCID, RFC 9000 7.2 — possibly zero-length; every send path writes it, send_initial's keys still come from the odcid recorded at boot), the packet number, the client packet to acknowledge (< 0 for none, unused by send_onertt), and the payload — a TLS flight to wrap in CRYPTO for Initial/Handshake, or the raw 1-RTT payload for send_onertt.
| u64 wired_srvloop_send_in::ect0 |
RFC 9000 13.4.1: cumulative ECN counts for the trailing ACK (all zero = plain ACK).
The Initial-space ACK must carry them or an ECN-marking peer (ngtcp2) declares the path not capable on its FIRST acknowledgment and stops marking for good.