Marten Seemann
88337ed8c0
fix packing of probe packets when retransmissions are canceled
2020-04-17 10:06:42 +07:00
Marten Seemann
9dec939784
Merge pull request #2432 from lucas-clemente/max-udp-payload-size
...
rename the max_packet_size transport parameter to max_udp_payload_size
2020-03-23 16:21:03 +07:00
Marten Seemann
d0b5da8aa1
rename the max_packet_size transport parameter to max_udp_payload_size
2020-03-21 11:12:43 +07:00
Marten Seemann
09e16b7602
add the APPLICATION_ERROR, use it in CONNECTION_CLOSE frames
2020-03-21 10:56:36 +07:00
Marten Seemann
0ef4f06189
move the transport parameters from the handshake to the wire package
2020-03-13 16:20:11 +07:00
Marten Seemann
9c917fdb39
pad short Long Header packets to 4 bytes
...
This is required for header protection to work.
2020-03-02 21:46:35 +07:00
Marten Seemann
fb65a017ac
use shorter packet numbers on Long Header packets
2020-02-26 11:26:15 +07:00
Marten Seemann
2ea6a294a9
send the CONNECTION_CLOSE in all available encryption levels
2020-02-25 17:10:44 +07:00
Marten Seemann
ebe3c1cca4
pad the client's Initial packets outside of the QUIC packet
...
This allows us to send coalesced packets of Initial and 0-RTT.
2020-02-24 13:57:54 +07:00
Marten Seemann
7a532326ec
don't pack ACK frames in the second part of a coalesced packet
...
This prevents a possible overflow of the maximum packet size if the ACK
frames ends up being really large.
2020-02-20 16:42:58 +07:00
Marten Seemann
db7fc0eb02
simplify packing of Initial and Handshake packets
2020-02-20 16:42:58 +07:00
Marten Seemann
29b784e782
rename packet packing functions in the packet packer
2020-02-20 16:42:58 +07:00
Marten Seemann
5aad7cae5d
send coalesced packets
2020-02-20 16:42:56 +07:00
Marten Seemann
d642bf9098
simplify content storage in packed packets
...
It's not necessary to store both the packetBuffer and the slice
containing the raw data in the packet.
2020-02-20 16:25:54 +07:00
Marten Seemann
077504f557
refactor sealing of packets
2020-02-20 16:19:08 +07:00
Marten Seemann
a4b4d52063
refactor packing of packets before and after the handshake is confirmed
2020-02-20 16:19:08 +07:00
Marten Seemann
b031615db5
export a qlog when the session's run loop stops
2020-02-12 10:42:37 +07:00
Marten Seemann
afbf5efd01
don't force 0-RTT packets to use 4 byte packet numbers
2020-01-01 18:04:02 +04:00
Marten Seemann
c79dfe77b8
implement packing of 0-RTT packets
2020-01-01 18:04:02 +04:00
Marten Seemann
fbbe225719
implement a function to pack probe packets
2019-11-12 11:27:30 +07:00
Marten Seemann
5f14b03135
refactor packet packer
2019-11-12 11:27:30 +07:00
Marten Seemann
772ffd3d20
use the connection ID manager to save the destination connection ID
2019-11-05 10:59:21 +07:00
Marten Seemann
ab2b26a5cb
add the unparam linter
2019-09-17 13:44:05 +07:00
Marten Seemann
f49451ce3c
queue lost STREAM frames in the stream's retransmission queue
2019-08-31 17:36:16 +07:00
Marten Seemann
e622207822
assemble ackhandler.Frames, not wire.Frames, when packing a packet
2019-08-31 17:34:54 +07:00
Marten Seemann
1d392b4276
retransmit frames instead of packets
2019-08-29 15:00:10 +07:00
Marten Seemann
515c21dd1d
simplify splitting of STREAM frames
2019-08-29 11:15:59 +07:00
Marten Seemann
0c85e0eab9
remove unused PacketType field from the ackhandler.Packet
2019-08-21 14:49:00 +07:00
Marten Seemann
9221149194
simplify how the largest acked is passed to the ackhandler
2019-08-21 14:40:38 +07:00
Marten Seemann
fc77dee22d
add a bug check for consistent payload length in the packet packer
2019-08-10 14:57:39 +07:00
Marten Seemann
1f950da751
fix calculation of the length of retransmitted STREAM frames
2019-08-10 14:57:13 +07:00
Marten Seemann
0ce749b5f1
pack ACK-only packets for all encryption levels
2019-07-01 07:19:47 +07:00
Marten Seemann
5a9c593463
rename the KeyPhase to KeyPhaseBit
2019-06-30 17:36:09 +07:00
Marten Seemann
0333f424bb
Merge pull request #1959 from lucas-clemente/optimize-crypto-packet-sending
...
optimize sending of crypto packets
2019-06-29 00:03:12 +08:00
Marten Seemann
c3142f9dc3
only try packing crypto packets before the handshake is confirmed
2019-06-25 14:31:34 +08:00
Marten Seemann
d6d1286d91
remove stray error check in packet packer
2019-06-23 14:00:26 +08:00
Marten Seemann
b2d3ef691e
use separate sealer interfaces for long and short header packets
2019-06-22 20:01:18 +08:00
Marten Seemann
c503769bcd
use separate functions per encryption level to get sealers
2019-06-22 20:01:18 +08:00
Marten Seemann
8094665d1e
remove outdated comment in packet packer
2019-05-29 08:31:44 +01:00
Marten Seemann
dba964f735
fix packing of maximum-size packets
2019-04-27 00:35:55 +09:00
Marten Seemann
f112edd894
handle ACK frames separately when packing packets
2019-04-22 12:45:53 +09:00
Marten Seemann
3d22d56ed8
refactor how padding is added in the packet packer
2019-04-22 12:44:51 +09:00
Marten Seemann
109bb3fe62
pass the length of the packet being packet around in the packet packer
2019-04-22 10:26:11 +09:00
Marten Seemann
5d999f3927
handle ACKs separately in the sent packet handler packet struct
2019-04-21 20:47:27 +09:00
Marten Seemann
b5336be518
rename retransmittable to ack-eliciting
2019-04-12 13:25:39 +09:00
Marten Seemann
ef55a44bdb
restart the idle timeout when sending the first retransmittable packet
2019-03-08 17:32:50 +09:00
Marten Seemann
f6642ff948
use separate packet number spaces for sending packets
...
Packet numbers now start at 0 for every packet number spaces.
Furthermore, an ACK frame now only acknowledges packets in the packet
number space it was sent in.
2019-02-11 20:13:05 +08:00
Marten Seemann
7a7e7ca6eb
add a function to pass the retry token to the packet packer
2019-02-02 09:24:37 +08:00
Marten Seemann
a303ad9745
always send ACKs in the correct packet number space
2019-01-11 11:12:07 +07:00
Marten Seemann
767dbdd545
put back packet buffers after processing a packet
...
This introduces a reference counter in the packet buffer, which will be
used to process coalesced packets.
2019-01-01 09:50:29 +07:00