diff options
| author | eunhhu <[email protected]> | 2026-09-29 07:44:50 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-29 07:44:50 +0100 |
| commit | 6a72b5c8164ceb73994ab231a075cfb0ad1d7192 (patch) | |
| tree | 9769d2d41a82f6b07adf07d4ab27906e6a53e7be /link/link.h | |
| parent | ed123556cf1c10369959fa96e1262050db63f7ce (diff) | |
| download | pure-6a72b5c8164ceb73994ab231a075cfb0ad1d7192.tar.gz pure-6a72b5c8164ceb73994ab231a075cfb0ad1d7192.zip | |
Measure a link on a path of loss, reordering and a bottleneck (M6 harness)
020-lossy-paths/run.py runs each case in an unprivileged namespace: a
50 Mbit/s tbf bottleneck under netem's delay, jitter and loss, both
ways. A link may send without UDP GSO (pure_link_gso), as netem takes a
burst as one packet; quinn the same (QUIC_GSO=0). transport.c and the
quinn harness give the records handed over in each 100 ms, and at a
steady rate the time each took; TCP CUBIC flows run beside them.
Diffstat (limited to 'link/link.h')
| -rw-r--r-- | link/link.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/link/link.h b/link/link.h index 5237262..afe1430 100644 --- a/link/link.h +++ b/link/link.h @@ -22,6 +22,10 @@ bool pure_link_queue(PureLink *, uint64_t seq, const unsigned char *bytes, size_ uint64_t pure_link_queued(PureLink *); /* The last number the receiver saved; any thread. */ uint64_t pure_link_delivered(PureLink *); +/* Packets go in bursts with UDP GSO where the system has it (at first); + * off, each in a call of its own: for a path whose queues take a burst as + * one packet (netem does). Before pure_link_start. */ +void pure_link_gso(PureLink *, bool on); /* Send on a thread of the link's own, calling notify when more was saved. */ bool pure_link_start(PureLink *, void (*notify)(void *), void *context, char *error, size_t size); void pure_link_counts(PureLink *, PureLinkCounts *); |
