From 56d8e3ef95e06999de57a556264588cd65d675a9 Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Tue, 3 Dec 2019 15:09:42 +1100 Subject: [PATCH 1/2] Prohibit IP fragmentation This won't necessarily prevent fragmentation from happening, but it's the best we can do. I didn't REQUIRE dropping of fragments, because some systems do that for you, but a SHOULD seems appropriate. Closes #3243. --- draft-ietf-quic-transport.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 51f1497fcd..8fcbb9cf52 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -3471,6 +3471,10 @@ Datagrams containing Initial packets MAY exceed 1200 bytes if the client believes that the Path Maximum Transmission Unit (PMTU) supports the size that it chooses. +UDP datagrams MUST NOT be fragmented at the IP layer. In IPv4 +{{!IPv4=RFC0791}}, the DF bit MUST be set to prevent fragmentation on the path. +Endpoints SHOULD discard fragmented IP packets. + A server MAY send a CONNECTION_CLOSE frame with error code PROTOCOL_VIOLATION in response to an Initial packet it receives from a client if the UDP datagram is smaller than 1200 bytes. It MUST NOT send any other frame type in response, or From 8ff17f071f05730a12049480dd9a8ffc97fb0b33 Mon Sep 17 00:00:00 2001 From: Martin Thomson Date: Thu, 5 Dec 2019 16:05:13 +1100 Subject: [PATCH 2/2] Remove fragmentation assembly recommendation --- draft-ietf-quic-transport.md | 1 - 1 file changed, 1 deletion(-) diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 8fcbb9cf52..85ba74d665 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -3473,7 +3473,6 @@ it chooses. UDP datagrams MUST NOT be fragmented at the IP layer. In IPv4 {{!IPv4=RFC0791}}, the DF bit MUST be set to prevent fragmentation on the path. -Endpoints SHOULD discard fragmented IP packets. A server MAY send a CONNECTION_CLOSE frame with error code PROTOCOL_VIOLATION in response to an Initial packet it receives from a client if the UDP datagram is