From 3ad9c824eaef8c2f37d1ba336d33e39d80ade6ba Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Mon, 25 Apr 2022 12:10:51 +0100 Subject: [PATCH] update docs to reflect that we support RFC 9221 (Unreliable Datagrams) (#3382) --- README.md | 3 ++- interface.go | 6 ++---- internal/protocol/params.go | 6 ++---- internal/wire/transport_parameters.go | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b28062d5388..f284174c20b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ [![PkgGoDev](https://pkg.go.dev/badge/github.com/lucas-clemente/quic-go)](https://pkg.go.dev/github.com/lucas-clemente/quic-go) [![Code Coverage](https://img.shields.io/codecov/c/github/lucas-clemente/quic-go/master.svg?style=flat-square)](https://codecov.io/gh/lucas-clemente/quic-go/) -quic-go is an implementation of the [QUIC protocol, RFC 9000](https://datatracker.ietf.org/doc/html/rfc9000) protocol in Go. +quic-go is an implementation of the [QUIC protocol, RFC 9000](https://datatracker.ietf.org/doc/html/rfc9000) protocol in Go, including the [Unreliable Datagram Extension, RFC 9221](https://datatracker.ietf.org/doc/html/rfc9221). + In addition to RFC 9000, it currently implements the [IETF QUIC draft-29](https://tools.ietf.org/html/draft-ietf-quic-transport-29). Support for draft-29 will eventually be dropped, as it is phased out of the ecosystem. ## Guides diff --git a/interface.go b/interface.go index 8291a1082a5..fe6351c0823 100644 --- a/interface.go +++ b/interface.go @@ -191,11 +191,9 @@ type Connection interface { // Warning: This API should not be considered stable and might change soon. ConnectionState() ConnectionState - // SendMessage sends a message as a datagram. - // See https://datatracker.ietf.org/doc/draft-pauly-quic-datagram/. + // SendMessage sends a message as a datagram, as specified in RFC 9221. SendMessage([]byte) error - // ReceiveMessage gets a message received in a datagram. - // See https://datatracker.ietf.org/doc/draft-pauly-quic-datagram/. + // ReceiveMessage gets a message received in a datagram, as specified in RFC 9221. ReceiveMessage() ([]byte, error) } diff --git a/internal/protocol/params.go b/internal/protocol/params.go index 5988b93fd16..83137113977 100644 --- a/internal/protocol/params.go +++ b/internal/protocol/params.go @@ -132,13 +132,11 @@ const MaxPostHandshakeCryptoFrameSize = 1000 // but must ensure that a maximum size ACK frame fits into one packet. const MaxAckFrameSize ByteCount = 1000 -// MaxDatagramFrameSize is the maximum size of a DATAGRAM frame as defined in -// https://datatracker.ietf.org/doc/draft-pauly-quic-datagram/. +// MaxDatagramFrameSize is the maximum size of a DATAGRAM frame (RFC 9221). // The size is chosen such that a DATAGRAM frame fits into a QUIC packet. const MaxDatagramFrameSize ByteCount = 1220 -// DatagramRcvQueueLen is the length of the receive queue for DATAGRAM frames. -// See https://datatracker.ietf.org/doc/draft-pauly-quic-datagram/. +// DatagramRcvQueueLen is the length of the receive queue for DATAGRAM frames (RFC 9221) const DatagramRcvQueueLen = 128 // MaxNumAckRanges is the maximum number of ACK ranges that we send in an ACK frame. diff --git a/internal/wire/transport_parameters.go b/internal/wire/transport_parameters.go index b7e0a8c9dc1..e1f83cd6564 100644 --- a/internal/wire/transport_parameters.go +++ b/internal/wire/transport_parameters.go @@ -42,7 +42,7 @@ const ( activeConnectionIDLimitParameterID transportParameterID = 0xe initialSourceConnectionIDParameterID transportParameterID = 0xf retrySourceConnectionIDParameterID transportParameterID = 0x10 - // https://datatracker.ietf.org/doc/draft-ietf-quic-datagram/ + // RFC 9221 maxDatagramFrameSizeParameterID transportParameterID = 0x20 )