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 |
|
Marten Seemann
|
e3d2c81729
|
simplify packing of packets
|
2018-12-30 12:41:30 +07:00 |
|
Marten Seemann
|
be4bdbfad9
|
remove the encryption level from the packed packet struct
This was only needed in gQUIC. In IETF QUIC, We can always derive the
encryption level from the header type when needed.
|
2018-12-30 12:37:04 +07:00 |
|
Marten Seemann
|
a638185f97
|
apply header encryption when packing and unpacking packets
|
2018-12-14 21:34:00 +06:30 |
|
Marten Seemann
|
cf957bb3d0
|
pad small packets, such that len(packet number) + len(payload) >= 4
|
2018-11-29 11:22:20 +07:00 |
|
Marten Seemann
|
05434fecbc
|
always use 4 byte packet numbers for long header packets
When retransmitting a long header packet, we never have to split CRYPTO
frames, since the header is guaranteed to have the same size.
|
2018-11-29 09:39:43 +07:00 |
|
Marten Seemann
|
723e18c78c
|
don't treat handshake retransmissions separately
|
2018-11-29 09:39:43 +07:00 |
|
Marten Seemann
|
1b3e4e9595
|
Merge pull request #1647 from lucas-clemente/remove-packet-packer-cansenddata
remove unneeded check if stream data can be sent in packet packer
|
2018-11-28 18:10:04 +07:00 |
|
Marten Seemann
|
610f923f91
|
remove special treatment of handshake retransmissions
|
2018-11-28 10:57:39 +07:00 |
|
Marten Seemann
|
a13e45000f
|
remove unneeded check if stream data can be sent in packet packer
We don't return the session before the handshake completes, so there
shouldn't be any stream data to send.
|
2018-11-28 10:34:22 +07:00 |
|
Marten Seemann
|
9313557b81
|
pad all Initial packets sent by the client
|
2018-11-28 10:14:47 +07:00 |
|
Marten Seemann
|
b740d57c61
|
embed the Header in the ExtendedHeader
|
2018-11-26 15:57:54 +07:00 |
|
Marten Seemann
|
bf96707f48
|
rename the wire.Header to ExtendedHeader
It's not encrypted yet.
|
2018-11-26 15:57:54 +07:00 |
|
Marten Seemann
|
6150c19dcb
|
remove unused perspective from header writing
|
2018-11-26 13:43:27 +07:00 |
|
Marten Seemann
|
fd646ff877
|
include the packet number len in the length calculation for long headers
|
2018-11-25 14:16:28 +07:00 |
|
Marten Seemann
|
c81cd92daf
|
return the packet number length when peek a new packet number
|
2018-11-02 17:14:31 +07:00 |
|
Marten Seemann
|
ebbf839fa4
|
move the packet number generator to the ackhandler package
|
2018-11-02 17:14:31 +07:00 |
|
Marten Seemann
|
16848038be
|
remove unnecessary initial packet number parameter
|
2018-11-02 17:14:31 +07:00 |
|
Marten Seemann
|
716e8f2d0a
|
remove the error return value from wire.Header.GetLength
Using an invalid packet number length would error on Header.Write(), so
it's not necessary to check this on GetLength().
|
2018-11-01 13:49:36 +07:00 |
|
Marten Seemann
|
3266e36811
|
drop support for gQUIC
|
2018-10-30 10:20:39 +07:00 |
|
Marten Seemann
|
e470d71c3a
|
add ACK frames to crypto packets
|
2018-10-29 13:34:32 +07:00 |
|
Marten Seemann
|
82508f1562
|
use tls-tris instead of mint
|
2018-10-26 16:18:49 +07:00 |
|
Marten Seemann
|
5df98dc389
|
split the packet packer into two structs, for gQUIC and for IETF QUIC
|
2018-10-09 23:05:23 +01:00 |
|
Marten Seemann
|
25847cfc30
|
handle the crypto stream separately in the packet packer
|
2018-10-01 11:25:57 -07:00 |
|
Marten Seemann
|
f68621485f
|
simplify splitting of STREAM frames for retransmissions
|
2018-09-28 22:56:45 -06:00 |
|
Marten Seemann
|
06db39836b
|
move queueing of control frames to the framer
|
2018-09-28 21:04:57 -06:00 |
|
Marten Seemann
|
9f5bfbe292
|
handle the transport parameters in the packet packer
|
2018-09-28 15:21:29 -06:00 |
|
Marten Seemann
|
7034481d9e
|
get ACK and STOP_WAITING frames in the packet packer
|
2018-09-28 09:51:05 -06:00 |
|
Marten Seemann
|
c476eaf019
|
move determining the maximum packet size to a separate function
|
2018-09-28 09:28:45 -06:00 |
|
Marten Seemann
|
641ab6390f
|
append STREAM frames to the slice of frames when packing a packet
|
2018-09-28 09:28:45 -06:00 |
|
Marten Seemann
|
01100c56df
|
implement packing of packets for gQUIC 44
|
2018-08-28 08:49:29 +07:00 |
|
Marten Seemann
|
f88b7bb175
|
implement the new Retry mechanism
|
2018-08-13 08:47:29 +07:00 |
|
Marten Seemann
|
4109c85c8a
|
refactor header parsing in a version independent and dependent part
|
2018-07-01 09:01:30 +07:00 |
|
Marten Seemann
|
7b96d158d2
|
remove the OmitConnectionID field from the Header struct
Instead, just look at the length of the destination connection ID.
|
2018-06-24 17:21:41 +07:00 |
|
Marten Seemann
|
fc57bf6c35
|
only set the destination connection ID for the Public Header
|
2018-06-24 16:47:59 +07:00 |
|
Marten Seemann
|
3e03055a7d
|
use varint packet numbers in IETF QUIC headers
|
2018-06-06 16:07:47 +02:00 |
|
Marten Seemann
|
ec6118f7a0
|
use the connection ID provided by the server in first Handshake packet
|
2018-05-30 21:37:05 +08:00 |
|
Marten Seemann
|
a7f550ae0f
|
set the payload length on Long Headers when packing packets
|
2018-04-23 17:41:07 +09:00 |
|
Marten Seemann
|
fae32101a0
|
use different source and destination connection IDs
|
2018-04-23 15:23:01 +09:00 |
|
Marten Seemann
|
52d31dd7ef
|
implement the new header format
Currently, we're only sending and accepting packets with matching source
and destination connection IDs.
|
2018-04-19 13:46:54 +09:00 |
|
Marten Seemann
|
302d2a1715
|
don't use trial decryption for IETF QUIC
|
2018-03-31 14:29:44 +07:00 |
|
Marten Seemann
|
6c1eba5848
|
generate the diversification nonce when creating the server crypto setup
|
2018-03-31 14:29:44 +07:00 |
|
Marten Seemann
|
1c2e104a86
|
don't set the send time of a packet in the sent packet handler
|
2018-03-30 13:28:22 +07:00 |
|
Marten Seemann
|
56720edc34
|
report retransmissions separately to the sent packet handler
|
2018-03-14 11:15:52 +01:00 |
|
Marten Seemann
|
9d18d30931
|
use the peer's max_packet_size when packing packets
|
2018-03-10 14:27:07 +07:00 |
|
Marten Seemann
|
6ccc76a130
|
send packets with maximum IPv4 and IPv6 packet size
|
2018-03-09 22:36:44 +07:00 |
|
Marten Seemann
|
abf57a5551
|
calculate the packet number length in the sent packet handler
|
2018-03-07 15:56:18 +07:00 |
|
Marten Seemann
|
8fc573c895
|
set the packet type for handshake retransmissions
|
2018-03-04 22:33:10 +07:00 |
|
Marten Seemann
|
656dff6163
|
introduce a UsesStopWaitingFrames() method for version numbers
|
2018-03-02 16:00:11 +07:00 |
|