diff options
| author | tv <tv@krebsco.de> | 2026-11-09 04:21:12 +0000 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-09 05:21:58 +0100 |
| commit | c04bbc8781b69fd3aee59c1ee03c37dd4a1403cf (patch) | |
| tree | 7c46c112a4dab3dcb0d9721875c8dfe9d1236f35 /src/access/bans.rs | |
| parent | d30ac9c7aede4cbc6463ec1ee80b650b7bf9e9c7 (diff) | |
paths: PINGs of a path take turns with the peer's
The node's keepalives take turns between the two sides (`PeerState::keepalive_due_at`),
but the paths layer pinged every path in use every `probe_every` (the keepalive interval,
30 s at least) whatever the peer did: a PING from the peer over the path didn't count.
So both sides pinged each path every interval, often within a second of each other
(seen on the dashboard: a PING answered, and our own PING right after it).
Now a PING from the peer over a path is noted (`PathState::peer_probe`), and a path is
pinged again (`rested`) an interval after the peer's PING, if that came last; after
ours, an interval and a half while the peer pings too (its PING within two intervals
before ours), so its turn comes first; else an interval. One exchange per interval
goes over a path, as the measurements' "two keepalives per neighbour per interval"
says, and each side measures every other interval; a shorter `--keepalive` measures
more often. A path whose way out broke while the peer's PINGs still come in is found by
our own PINGs half as often; a failed send or unanswered traffic (`suspect`) still
pings at once.
Diffstat (limited to 'src/access/bans.rs')
0 files changed, 0 insertions, 0 deletions
