From 4fcc804f9775027485f84884c869d13749594d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Kr=C3=BCger?= Date: Mon, 1 Dec 2025 13:02:32 +0100 Subject: [PATCH] fix: Ignore PATH_ACKs on abandoned paths --- quinn-proto/src/connection/mod.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/quinn-proto/src/connection/mod.rs b/quinn-proto/src/connection/mod.rs index 9a983b003..bcd7a4845 100644 --- a/quinn-proto/src/connection/mod.rs +++ b/quinn-proto/src/connection/mod.rs @@ -2258,6 +2258,12 @@ impl Connection { path: PathId, ack: frame::Ack, ) -> Result<(), TransportError> { + if self.abandoned_paths.contains(&path) { + // See also https://www.ietf.org/archive/id/draft-ietf-quic-multipath-17.html#section-3.4.3-3 + // > PATH_ACK frames received with an abandoned path ID are silently ignored, as specified in Section 4. + trace!("silently ignoring PATH_ACK on abandoned path"); + return Ok(()); + } if ack.largest >= self.spaces[space].for_path(path).next_packet_number { return Err(TransportError::PROTOCOL_VIOLATION("unsent packet acked")); }