Dezhi Wu
cc1fed3500
docs: fix broken item link
...
There is no `generic` module in version 0.8.x, so fix the link.
2022-03-05 10:28:08 -08:00
Timon
7fcf5657b1
Expose Write Structs like Read structs. ( #1317 )
2022-02-26 21:49:08 +01:00
Benjamin Saunders
33d75c0aca
Bump quinn/quinn-udp versions
2022-02-19 20:32:41 +01:00
Benjamin Saunders
a2a8c69c9b
Require rustls version with working QUIC 0-RTT support
0.8.1
2022-02-19 19:55:13 +01:00
Dirkjan Ochtman
ec718762a3
Don't build fuzz targets against MSRV
2022-02-18 13:05:09 +01:00
Benjamin Saunders
3523c1718d
Bump version
2022-02-18 13:05:09 +01:00
Benjamin Saunders
50dfd28356
Bump MSRV to 1.53
2022-02-18 13:05:09 +01:00
Benjamin Saunders
74ccc32b95
Fix unsound Vec::set_len in test
2022-02-18 13:05:09 +01:00
Dirkjan Ochtman
04076f7597
Fix clippy suggestions from 1.57
2022-02-18 13:05:09 +01:00
Benjamin Saunders
b7c670f15f
Suppress noisy inapplicable advisory
2022-02-18 13:05:09 +01:00
Benjamin Saunders
da9fa9b2cf
Rely on rustls to check for ALPN failure
2022-02-18 13:05:09 +01:00
Jonathan Johnson
e2e66608a8
Add os-poll feature to mio
...
Closes #1303
This feature flag was always needed, and in some situations, tokio was
enabling that feature flag as well. With the new release of tokio 1.17,
the lack of this flag causes runtime errors because mio 0.7 doesn't have
the required flag as tokio is enabling it in 0.8.
2022-02-18 13:05:09 +01:00
Benjamin Saunders
7a679aa2a2
Limit volume of CIDs retired at peer's request
2022-02-18 13:05:09 +01:00
Benjamin Saunders
3be575abcb
Fix the spin bit becoming immediately disabled for servers
...
We were disabling it every time we updated the remote CID, and we like
to update the remote CID ASAP for servers to enable client-side
stateless resets. Instead, we should disable it only when switching
remote CIDs due to a migration.
2022-02-18 13:05:09 +01:00
Benjamin Saunders
1146db7356
Replace dubious CidQueue::is_active_retired logic
...
This predicate was based on whether an entry in the circular CID
buffer was unset. However, that entry might have already been
overwritten with newer data. Meanwhile, because we guarantee that the
active CID is always at the start of the sliding window of CID
sequence numbers, we can easily infer whether the previously-active
CID was retired and replaced by retire_prior_to by whether the retired
set it returns is empty.
2022-02-18 13:05:09 +01:00
Benjamin Saunders
37337e3287
Don't update remote client CIDs gratuitously
...
Handling retire_prior_to might have already moved us off the initial
CID.
2022-02-18 13:05:09 +01:00
Benjamin Saunders
d00a59bce1
Fix missing default-features = false in quinn-udp
2022-02-18 13:05:09 +01:00
Benjamin Saunders
769277a803
Fix quinn build w/ no default features
...
EndpointConfig::default is only provided by proto when ring is
available.
2022-02-18 13:05:09 +01:00
Benjamin Saunders
bb4abd8ec6
Add new backport branches to CI
2022-02-18 13:05:09 +01:00
Dirkjan Ochtman
48b33cdf4e
Bump version numbers for 0.8.0 release
0.8.0
2021-11-14 12:51:41 -08:00
Benjamin Saunders
9a769f29ed
Remove obsolete HTTP feature note
2021-11-11 07:37:50 +01:00
Dirkjan Ochtman
d902b143ba
Allocate a single local CID
2021-11-10 14:19:08 -08:00
Dirkjan Ochtman
d9beb088f5
Sort Endpoint::add_connection() below handle_first_packet()
...
Also apply some trivial style tweaks.
2021-11-10 14:19:08 -08:00
Dirkjan Ochtman
1081180bd2
Simplify setup of server TransportParameters
2021-11-10 14:19:08 -08:00
Dirkjan Ochtman
843c18c446
Simplify Endpoint::add_connection() interface to avoid unwrapping
2021-11-10 14:19:08 -08:00
Dirkjan Ochtman
41bdfd17f2
Avoid unwrapping server config
2021-11-10 14:19:08 -08:00
Dirkjan Ochtman
c1a4a67ae8
Simplify PartialDecode interface
2021-11-10 14:19:08 -08:00
Benjamin Saunders
b7adfd6295
Sort crypto::ServerConfig methods by call order
2021-11-10 11:25:19 +01:00
Benjamin Saunders
81e69ddf2d
Test multi-version interop
2021-11-10 11:25:19 +01:00
Benjamin Saunders
a7cd22f683
Move client protocol version into ClientConfig
2021-11-10 11:25:19 +01:00
Benjamin Saunders
1c60cf6ee2
Backwards-compatibility with late draft versions
2021-11-10 11:25:19 +01:00
Benjamin Saunders
1159ae3c65
Non-exhaustive ClientConfig
2021-11-10 11:25:19 +01:00
Benjamin Saunders
a3e1409130
Advertise all supported versions in version negotiation
2021-11-10 11:25:19 +01:00
BiagioFesta
25d9a40bf9
followup: rename "stateless retry" -> "retry"
...
Fix compile error in quinn-proto after field rename
2021-11-06 13:11:56 +01:00
Benjamin Saunders
41ae958679
Rename "stateless retry" to "retry"
...
This better reflects the final RFC terminology.
2021-11-06 07:23:50 +01:00
Benjamin Saunders
6913ad3f74
Cache dependencies for CI
2021-11-05 07:10:26 +01:00
Benjamin Saunders
d03ee11857
Update comment
2021-11-04 11:01:30 +01:00
Benjamin Saunders
f97a7eb02a
Fix spurious transmit for readiness for stream flow control
...
When a receive stream had flow control credits to issue but then exits
the receiving w/ unknown size state (e.g. due to receiving a STREAM
frame with the FIN bit set) then a previously queued MAX_STREAM_DATA
frame may become unnecessary. Because this was not accounted for by
Retransmits::is_empty, a transmit might be attempted for the benefit
of that frame, potentially yielding an illegal ACK-only packet.
2021-11-04 11:01:30 +01:00
Benjamin Saunders
2361ace317
Fix spurious transmit readiness for reset streams
...
When a stream had outgoing data but is then reset, it could cause
StreamsState to indicate readiness and then fail to encode any
streams, potentially yielding an illegal ACK-only packet.
2021-11-04 11:01:30 +01:00
Benjamin Saunders
c35e61a9e3
Don't enter persistent congestion without an RTT sample
...
RFC 9002 §7.6.2: [..] a prior RTT sample existed when these two
packets were sent.
2021-11-04 10:59:10 +01:00
Benjamin Saunders
f116fc1adf
Persistent congestion is detected only on ACK receipt
...
RFC 9002 §7.6.2: A sender establishes persistent congestion after the
receipt of an acknowledgment [...]
2021-11-04 10:59:10 +01:00
Benjamin Saunders
77e3fa6e07
Persistent congestion requires ACK-eliciting packets
...
See RFC 9002 §7.6.2.
2021-11-04 10:59:10 +01:00
Benjamin Saunders
e68bb3ca6a
Exclude max ACK delay from PTO during handshake
...
RFC 9002 §6.2.1: When the PTO is armed for Initial or Handshake packet
number spaces, the max_ack_delay in the PTO period computation is set
to 0, since the peer is expected to not delay these packets
intentionally.
2021-11-04 10:59:10 +01:00
Benjamin Saunders
366520020c
Style tweak
2021-11-04 10:39:17 +01:00
Benjamin Saunders
d4d1664331
Handle persistent congestion
...
This was missed in the original port.
2021-11-04 10:39:17 +01:00
Benjamin Saunders
61ed855628
Fix window confusion during fast convergence
2021-11-04 10:39:17 +01:00
Benjamin Saunders
46f9a57d3b
Apply datagram frame size to entire frame, not just payload
...
This is, unfortunately, the specified behavior.
2021-11-04 08:57:42 +01:00
Benjamin Saunders
f60e8864d7
Skip slow tests under tarpaulin
...
These were causing coverage to time out.
2021-11-04 08:55:37 +01:00
Benjamin Saunders
87086eade7
Cut header
...
This is redundant to the banner, among other things.
2021-11-04 08:51:38 +01:00
Benjamin Saunders
3be524c7f7
Update README
2021-11-04 08:51:38 +01:00