Marten Seemann
40a768e77b
flowcontrol: avoid calling time.Now(), pass time as a function parameter ( #4731 )
2024-11-28 17:46:22 +08:00
Marten Seemann
46fc42d0da
only declare send stream completed when RESET_STREAM is acknowledged ( #4613 )
2024-08-06 16:55:36 -07:00
Marten Seemann
931166bb8e
remove unneeded cryptoStream interface ( #4617 )
2024-08-03 17:16:02 -07:00
Marten Seemann
86d5044eec
remove trivial mock implementation of the cryptoStream interface ( #4620 )
...
* remove trivial mock implementation of the cryptoStream interface
No functional change expected.
* fix tests
2024-08-03 16:57:03 -07:00
Marten Seemann
42f04d4e02
refactor frame packing to logic to not access the streams map ( #4596 )
...
* avoid accessing the streams map when packing stream data
* avoid accessing the streams map when packing flow control frames
* remove streamGetter interface
2024-07-28 12:32:54 -07:00
Marten Seemann
5f8d146836
wire: optimize parsing of long header packets ( #4589 )
2024-07-21 14:22:32 -07:00
Marten Seemann
e90a0d4e03
increase initial packet size to 1280 bytes (for both IPv4 and IPv6) ( #4500 )
2024-05-08 20:55:19 -07:00
Marten Seemann
fbaa941ea1
protocol: rename VersionNumber to Version ( #4295 )
2024-01-31 21:57:33 -08:00
Marten Seemann
1fce81f8bb
queue up to 32 DATAGRAM frames to send ( #4222 )
2023-12-31 19:58:41 -08:00
Marten Seemann
7f080dd54b
discard DATAGRAM frames that don't fit into packets without an ACK ( #4221 )
...
If the packet doesn't contain an ACK (i.e. the payload is empty),
there's no point retrying to pack it later. It's extremely unlikely that
the available packet size will suddenly increase.
2023-12-31 19:17:25 -08:00
Marten Seemann
ff6d575ee3
don't retransmit PATH_CHALLENGE and PATH_RESPONSE frames ( #4200 )
2023-12-12 20:22:13 -08:00
Marten Seemann
bed8ebbd4c
distinguish coalesced and 1-RTT packets when determining ECN mode
2023-09-11 20:31:50 +07:00
Marten Seemann
2797f85fc0
switch from unmaintained golang/mock to go.uber.org/mock ( #4050 )
2023-08-28 02:23:55 -07:00
Marten Seemann
501cc21c4b
expose crypto/tls errors on the TransportError ( #4015 )
2023-08-18 03:01:49 -07:00
Marten Seemann
0662afba63
stop using math/rand.Seed and Read in tests, bump go.mod version to 1.20 ( #3936 )
2023-07-01 11:29:41 -07:00
Marten Seemann
5225a104d4
retransmission queue: simplify queueing of PING frames
2023-06-05 21:07:02 +03:00
Marten Seemann
da55dfaabd
ackhandler: unexport Packet
2023-06-05 21:06:58 +03:00
Marten Seemann
e1bcedc78c
ackhandler: use a frame handler interface for OnAcked / OnLost of all frame types ( #3888 )
2023-06-04 13:04:28 -07:00
Marten Seemann
591ab1ab5e
packer: reduce number of calls to time.Now() when packing packets ( #3815 )
2023-06-02 23:58:41 -07:00
Marten Seemann
628ba87727
append to a given buffer when packing a packet
2023-06-03 09:21:54 +03:00
Marten Seemann
b0524c1241
split code paths for packing normal and ACK-only packets
2023-06-02 18:35:02 +03:00
Marten Seemann
bef0f3d31a
pass the maximum packet size from MTU discoverer to packet packer
2023-06-02 18:35:02 +03:00
Marten Seemann
0438eada95
use ackhandler.Frame directly, not as a pointer, remove its sync.Pool ( #3835 )
2023-06-02 04:56:18 -07:00
Marten Seemann
f8d24ef1e9
don't use closures for passing OnLost and OnAcked STREAM frame callbacks ( #3833 )
2023-06-02 04:14:04 -07:00
Marten Seemann
762d5c2c9c
packet packer: don't try packing a 0-RTT packet with only an ACK ( #3849 )
...
0-RTT packets can't contain ACK frames. This was correctly reflected in the
code path for packing a 0-RTT packet, but we would ignore the ACK-only flag
when packing the coalesced packet, leading to a full-size 0-RTT packet being
sent out when we're only allowed to send an ACK-only packet.
2023-05-28 17:35:32 +03:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go ( #3680 )
2023-01-21 19:53:57 -08:00
Marten Seemann
00624f623d
refactor the framer to remove the version param from the constructor
2023-01-18 21:49:27 +13:00
Marten Seemann
4bb9f29b55
refactor the packet packer to remove the version param from constructor
2023-01-18 21:35:01 +13:00
Marten Seemann
ef28f4667f
refactor frame parser to remove version parameter from constructor
2023-01-18 20:51:58 +13:00
Marten Seemann
582edae63d
refactor retransmissionQueue to remove version param from constructor
2023-01-18 20:50:17 +13:00
Marten Seemann
2aa71ff76b
use a sync.Pool for ackhandler.Frames ( #3656 )
2023-01-17 23:15:02 -08:00
Marten Seemann
86edf7fd4b
remove the LongHeader field from the wire.Header
2023-01-17 21:53:39 +13:00
Marten Seemann
aca052dc7c
stop using the ExtendedHeader for parsing short header packets in tests
2023-01-17 21:53:39 +13:00
Marten Seemann
384ad9b2ae
don't allocate a wire.ExtendedHeader for short header packets
2023-01-17 21:53:39 +13:00
Marten Seemann
518fd1c877
separate long and short header packets in the coalescedPacket
2023-01-17 21:53:39 +13:00
Marten Seemann
87f51d33dc
move the packet buffer out of the shortHeaderPacket struct
2023-01-17 21:53:39 +13:00
Marten Seemann
ec9a6e7a99
introduce a shortHeaderPacket type and use it in packet packer
2023-01-17 21:53:39 +13:00
Marten Seemann
9e5f92b561
return a coalesced packet when packing a probe packet
...
The coalesced packet will only consist of a single packet, but this will
make the refactoring easier.
2023-01-17 21:53:04 +13:00
Marten Seemann
d2512193da
qerr: include role (remote / local) in error string representations ( #3629 )
2022-12-08 19:58:52 +13:00
Marten Seemann
870fbe7ab0
migrate to Ginkgo v2
2022-10-11 16:38:44 +04:00
Marten Seemann
1f6a9ecafd
use a Peek / Pop API for the datagram queue ( #3582 )
2022-10-11 02:25:17 -07:00
Marten Seemann
818768df38
remove the MaybePackAckPacket from the packet packer
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
dfd35cb071
use a single bytes.Reader for frame parsing ( #3536 )
2022-09-01 01:06:50 -07:00
Marten Seemann
1aced95d41
use an array instead of a byte slice for Connection IDs
2022-08-29 11:30:31 +03:00
Marten Seemann
ab6d664b43
rename frame.Write to frame.Append
2022-08-28 23:18:24 +03:00
Marten Seemann
3ca1001951
append to a byte slice instead of a bytes.Buffer when serializing frames
2022-08-28 23:18:06 +03:00
Marten Seemann
592fb9cad9
introduce a dedicated qerr.TransportError and qerr.ApplicationError
2021-05-01 09:38:48 +07:00
Marten Seemann
765d26f132
don't reduce the congestion window when a path MTU probe packet is lost
2021-03-03 12:00:52 +08:00
Marten Seemann
142071253d
add a method to update the packer's max packet size
2021-03-03 12:00:14 +08:00