Marten Seemann
df762b7552
use the new zero-allocation control message parsing function from x/sys ( #3609 )
2022-11-04 04:36:46 -07:00
Marten Seemann
76761598e9
http3: add support for parsing and writing HTTP/3 capsules ( #3607 )
2022-11-03 10:34:01 -07:00
David Brouwer
047f9b6ffa
http3: add request to response ( #3608 )
2022-11-02 13:39:34 -07:00
Marten Seemann
af30cef57c
fix availability signaling of the send queue ( #3597 )
v0.30.0
2022-10-22 12:09:40 +01:00
Marten Seemann
e496120c76
http3: add a ConnectionState method to the StreamCreator interface ( #3600 )
2022-10-22 02:52:30 -07:00
Marten Seemann
85fbfb9405
http3: add a Context method to the StreamCreator interface ( #3601 )
2022-10-22 02:51:24 -07:00
Marten Seemann
1283a1f215
rename the variable in quic.Config.AllowConnectionWindowIncrease ( #3602 )
2022-10-21 03:49:03 -07:00
Marten Seemann
b025344e71
fix usage of deprecated Ginkgo flag
2022-10-19 09:09:05 +01:00
Marten Seemann
f78683abb6
update qpack to v0.3.0 ( #3593 )
2022-10-12 06:00:58 -07:00
Marten Seemann
52ab2454f7
fix version of Ginkgo installed on CI ( #3591 )
2022-10-11 13:41:22 -07:00
Marten Seemann
423f5dcf6c
Merge pull request #3589 from lucas-clemente/update-ginkgo-v2
...
migrate to Ginkgo v2, remove benchmark test
2022-10-11 22:03:09 +03:00
Marten Seemann
192ae3437b
don't drop more than 10 consecutive packets in drop test ( #3584 )
2022-10-11 05:44:07 -07:00
Marten Seemann
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
c9a878858e
remove the benchmark test suite
2022-10-11 16:38:18 +04:00
Marten Seemann
ee013d9d23
use a monotonous timer for the connection ( #3570 )
...
There's no point in having the timer fire multiple times for the same
timestamp. By using a monotonuos timer we avoid busy-looping in cases where the
timer fires, but we can't actually send a packet.
2022-10-11 05:36:10 -07:00
Marten Seemann
2b5d1281c1
http3: add http3.Server.ServeQUICConn to serve a single QUIC connection ( #3587 )
2022-10-11 05:07:24 -07:00
Marten Seemann
c75bf49422
http3: expose ALPN values ( #3580 )
2022-10-11 04:27:49 -07:00
Marten Seemann
fe277dc663
log the size of buffered packets ( #3571 )
2022-10-11 02:27:26 -07:00
Marten Seemann
438942b888
ackhandler: reject duplicate packets in ReceivedPacket ( #3568 )
...
Before we process a packet, IsPotentiallyDuplicate is called.
This should filter out all duplicates before the reach ReceivedPacket.
2022-10-11 02:27:10 -07:00
Marten Seemann
597e00549d
update qtls to versions that include the ec_point_formats fix ( #3583 )
...
The new qtls versions contain the standard library fix for
https://github.com/golang/go/issues/49126 .
2022-10-11 02:26:25 -07:00
Marten Seemann
d03f9c2a4f
reduce max DATAGRAM frame size, so that DATAGRAMs fit in IPv6 packets ( #3581 )
2022-10-11 02:26:10 -07:00
Marten Seemann
1f6a9ecafd
use a Peek / Pop API for the datagram queue ( #3582 )
2022-10-11 02:25:17 -07:00
shade34321
a905648480
http3: handle ErrAbortHandler when the handler panics ( #3575 )
...
* Handle abort like the stdlib does
* Using the sentinel value from the stdlib instead of redefining.
* we return before logging out
* Added test to hand abort handler
* Added in two tests but apparently only saved the first one.
* remove one test case because it wasn't needed
2022-10-09 07:50:04 -07:00
Marten Seemann
424a66389c
http3: fix double close of chan when using DontCloseRequestStream ( #3561 )
2022-09-23 03:10:25 -07:00
Marten Seemann
17761bf35f
qlog: rename key_retired to key_discarded ( #3463 )
2022-09-09 06:39:49 -07:00
Marten Seemann
2b54aeac2d
Merge pull request #3545 from lucas-clemente/simplify-ack-only-packing
...
simplify packing of ACK-only packets
2022-09-09 14:00:07 +03:00
Marten Seemann
d1d9f49ed4
Merge pull request #3547 from lucas-clemente/pool-ack-frames
...
use a sync.Pool for ACK frames
2022-09-09 11:56:15 +03:00
Marten Seemann
818768df38
remove the MaybePackAckPacket from the packet packer
2022-09-09 11:39:25 +03:00
Marten Seemann
7bc2ba6b81
simplify packing of long header ACK-only packets
2022-09-09 11:39:25 +03:00
Marten Seemann
2873125c15
move packing of ACK-only short header packets to composeNextPacket
2022-09-09 11:39:25 +03:00
Marten Seemann
c57ea6f276
prioritize sending ACKs over sending new DATAGRAM frames ( #3544 )
2022-09-09 01:38:38 -07:00
Marten Seemann
63764c429c
use a sync.Pool for ACK frames
2022-09-06 14:41:13 +03:00
Marten Seemann
c3289188d1
append ACK ranges instead of allocating a new slice
2022-09-05 20:15:35 +03:00
Marten Seemann
62b82789c0
http3: reduce usage of bytes.Buffer ( #3539 )
2022-09-01 06:39:21 -07:00
Marten Seemann
dfd35cb071
use a single bytes.Reader for frame parsing ( #3536 )
2022-09-01 01:06:50 -07:00
Marten Seemann
93e1d031b9
split code paths for packing 0-RTT and 1-RTT packets in packet packer ( #3540 )
2022-08-30 04:41:04 -07:00
Marten Seemann
656f3d2d7d
remove the wire.ShortHeader in favor of more return values ( #3535 )
2022-08-30 04:37:36 -07:00
Marten Seemann
5cd5341545
preallocate the message buffers of the ipv4.Message passed to ReadBatch ( #3541 )
2022-08-30 04:11:43 -07:00
Marten Seemann
0b26365dae
Merge pull request #3534 from lucas-clemente/header-parsing
...
introduce a separate code paths for Short Header packet handling
2022-08-30 14:09:38 +03:00
Marten Seemann
80c3afed34
fix usage of ackhandler.Packet pool for non-ack-eliciting packets ( #3538 )
2022-08-30 04:09:11 -07:00
Marten Seemann
31995601a9
return an error when parsing a too long connection ID from a header ( #3533 )
2022-08-30 04:08:41 -07:00
Marten Seemann
7023b52e13
speed up marshaling of transport parameters ( #3531 )
...
The speedup comes from multiple sources:
1. We now preallocate a byte slice, instead of appending multiple times.
2. Marshaling into a byte slice is faster than using a bytes.Buffer.
3. quicvarint.Write allocates, while quicvarint.Append doesn't.
2022-08-29 23:05:52 +03:00
Marten Seemann
4f3d3b36ac
introduce a separate code path for unpacking short header packets
2022-08-29 15:55:37 +03:00
Marten Seemann
ed15a94703
split the tracing function for received short and long header packets
2022-08-29 15:32:27 +03:00
Marten Seemann
3a12a898a5
add a wire.ShortHeader, implement short header parsing
...
The new parsing function is vastly faster than the combination of header
and extended header parsing:
BenchmarkShortHeaderParsing-10 44192314 26.79 ns/op 48 B/op 1 allocs/op
BenchmarkShortHeaderParsingOld-10 12627363 99.99 ns/op 228 B/op 3 allocs/op
2022-08-29 15:06:34 +03:00
Marten Seemann
42cec84221
extend ByteOrder interface to allow converting from a byte slice
2022-08-29 13:11:58 +03:00
Marten Seemann
e3723a0ef1
move the check for empty payload to the unpacker
2022-08-29 13:11:58 +03:00
Marten Seemann
fd1b3a23c4
remove unneeded packet number field from the unpackedPacket
2022-08-29 13:11:57 +03:00
Marten Seemann
7d827d515e
don't pass the header to connection.tryQueueingUndecryptablePacket
2022-08-29 13:11:16 +03:00
Marten Seemann
f41772c43c
return an error when parsing a too long connection ID from a header
2022-08-29 13:05:24 +03:00