wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
Loading...
Searching...
No Matches
wired_srvloop_send_in Struct Reference

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).

Detailed Description

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.

Field Documentation

◆ ect0

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.


The documentation for this struct was generated from the following file:
  • app/http3/server/srvloop/send.h