Commit graph

296 commits

Author SHA1 Message Date
Marten Seemann
af157408de move parsing of extended headers to the same file as the struct 2018-11-26 15:57:54 +07:00
Marten Seemann
7b91ba56b6 rename the wire.InvariantHeader to Header 2018-11-26 15:57:54 +07:00
Marten Seemann
cef26922b4 when parsing the header from the invariant header, start from first byte
This will be needed once we implement header encryption, because the
flags in the first byte are encrypted.
2018-11-26 15:57:54 +07:00
Marten Seemann
902853784b remove unused perspective from header parsing 2018-11-26 11:14:39 +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
022189dfda rename the RST_STREAM frame to RESET_STREAM frame 2018-11-04 12:26:02 +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
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
b000c32796 use a mock sealing manager in the packet packer tests 2018-10-06 06:49:37 +02:00
Marten Seemann
c90b4d91d1 rename some variables in the packet packer tests 2018-10-06 06:49:37 +02: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
0bd7e744ff implement parsing of headers with different connection ID lengths 2018-07-03 18:01:41 +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
372463db49 don't pass the client's version to the header parser 2018-05-21 11:27:15 +08:00
Marten Seemann
0c014c0aff fix deadlock when receiving two packets with diversification nonces 2018-04-24 21:14:58 +09: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
c1d8c8940e
Merge pull request #1306 from lucas-clemente/new-header
implement the new IETF QUIC packet header
2018-04-19 18:15:15 +09:00
Marten Seemann
1a035a265c change the type of Connection ID to byte slice 2018-04-18 22:41:24 +09:00
Marten Seemann
52c3e6e863 remove the {Lowest, Largest}Acked from the ACK frame
All ACK ranges are now saved in the AckRanges slices. This eliminates a
bunch of special cases for ACKs that don't report any packets missing.
2018-04-18 13:19:42 +09:00
Marten Seemann
6c1eba5848 generate the diversification nonce when creating the server crypto setup 2018-03-31 14:29:44 +07:00
Marten Seemann
c6526ad927 replace the SetDiversificationNonce crypto setup method by a chan 2018-03-31 14:29:44 +07: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
a1c9e706b0 omit the data length in the last STREAM frame of a retransmission 2018-02-26 22:22:21 +08:00
Marten Seemann
ca7291e8cf send retransmission as separate packets 2018-02-26 22:22:17 +08:00
Marten Seemann
81974d30d6 run gosimple in gometalinter 2018-02-23 22:42:32 +08:00
Marten Seemann
11af98e338 run misspell in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
b6c41464c6 run varcheck in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
88da8e2e0a retransmit Initial packets as Initial packets 2018-02-23 15:58:24 +08:00
Marten Seemann
80969de93f fix splitting of STREAM frames for IETF QUIC
Move splitting of STREAM frames from the quic package to the wire
package.
2018-02-05 12:02:58 +08:00