Marten Seemann
|
74ed3f7037
|
remove writing of special Public Header packets
Version Negotiation Packets and Public Resets are written separately, so
we don't need to have code for that in the Public Header.
|
2018-06-30 12:48:42 +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
|
5142b73ac3
|
Merge pull request #1370 from lucas-clemente/client-header-parsing
parse headers sent by the server without knowing the version
|
2018-05-29 16:43:52 +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
|
797dfa57a1
|
disable 6 byte packet number in Public Headers
Chrome never sends 6 byte packet numbers in Public Headers.
|
2018-05-21 11:26:08 +08:00 |
|
Marten Seemann
|
5f5bb1f700
|
allow empty STREAM frames at arbitrary offsets
|
2018-05-11 11:08:08 +09:00 |
|
Marten Seemann
|
8f2fed1b10
|
parse IETF headers independent of the sender's perspective
The IETF header format allows parsing of the header without knowing
which peer sent the packet.
|
2018-05-09 13:28:30 +09:00 |
|
Marten Seemann
|
683b5823e4
|
handle gQUIC and IETF QUIC packets separately in the client
|
2018-05-08 15:17:16 +09:00 |
|
Marten Seemann
|
94c48d371a
|
indent header log entries using tabs, not spaces
|
2018-05-07 09:11:34 +09:00 |
|
Marten Seemann
|
1b9ac93c13
|
Merge pull request #1331 from lucas-clemente/fix-1330
set the ACK frame delay time when generating the frame
|
2018-05-05 14:23:50 +09:00 |
|
Marten Seemann
|
b83a4c069d
|
improve logging of ACK frames with ranges
|
2018-05-01 11:40:10 +09:00 |
|
Marten Seemann
|
ee968aff67
|
set the ACK frame delay time when generating the frame
|
2018-04-30 21:50:33 +09:00 |
|
Lucas Clemente
|
0d8f0be92b
|
Fix unnecessary stack growth when parsing frames
|
2018-04-30 10:28:18 +02:00 |
|
Marten Seemann
|
596ef35a80
|
implement parsing and writing of the Payload Length Long Header field
|
2018-04-23 17:39:03 +09:00 |
|
Marten Seemann
|
0e58a679d6
|
Merge pull request #1319 from lucas-clemente/fix-1307
use different source and destination connection IDs
|
2018-04-23 17:29:45 +09:00 |
|
Marten Seemann
|
b1de5df2f8
|
Merge pull request #1311 from lucas-clemente/fix-1302
limit the size of the ACK frame
|
2018-04-23 17:23:52 +09:00 |
|
Marten Seemann
|
cb0395ae37
|
Merge pull request #1316 from lucas-clemente/fix-1310
implement PATH_CHALLENGE and PATH_RESPONSE frames
|
2018-04-23 17:13:39 +09:00 |
|
Marten Seemann
|
126de06cc0
|
Merge pull request #1320 from lucas-clemente/fix-vnp-logging
fix logging of version negotiation packets
|
2018-04-23 17:00:25 +09:00 |
|
Marten Seemann
|
f353658547
|
limit the size of an ACK frame to 1000 bytes
|
2018-04-23 16:44:39 +09:00 |
|
Marten Seemann
|
4891b65c4b
|
refactor calculation of ACK ranges into a separate function
|
2018-04-23 16:44:38 +09:00 |
|
Marten Seemann
|
108e574581
|
implement parsing and writing of the PATH_RESPONSE frame
|
2018-04-23 16:41:06 +09:00 |
|
Marten Seemann
|
f53f3eee9f
|
implement parsing and writing of the PATH_CHALLENGE frame
|
2018-04-23 16:41:06 +09:00 |
|
Marten Seemann
|
804eac7348
|
fix logging of version negotiation packets
|
2018-04-23 16:37:59 +09:00 |
|
Marten Seemann
|
cd359ec5e0
|
change the type byte of the IETF ACK frame from 0x0e to 0x0d
|
2018-04-23 15:57:50 +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
|
1ec873f917
|
use binary search to check if an ACK acks a packet
|
2018-04-19 17:36:12 +09:00 |
|
Marten Seemann
|
d47124d14d
|
add more methods to the protocol.ConnectionID
This will make it easier to change the underlying type of the connection
ID (potentially an array is faster than a byte slice).
|
2018-04-19 16:08:06 +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
|
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
|
7de877fc3f
|
remove duplicate test cases for the legacy ACK frame
|
2018-04-18 12:25:26 +09:00 |
|
Marten Seemann
|
ca896f953a
|
rename AckRange.{First, Last} to AckRange.{Smallest, Largest}
|
2018-04-18 12:25:26 +09:00 |
|
Marten Seemann
|
948eef3e42
|
create a logger interface and use it everywhere
|
2018-04-04 13:03:28 +07:00 |
|
Marten Seemann
|
1e9b3f0bb2
|
simplify writing of the gQUIC Version Negotiation Packet
|
2018-04-04 13:03:22 +07:00 |
|
Marten Seemann
|
30c948a2fd
|
allow empty STREAM frames at offset 0
|
2018-03-29 12:43:59 +07:00 |
|
Marten Seemann
|
be066e825c
|
privatize the frame parsing functions
|
2018-03-25 18:07:49 +02:00 |
|
Marten Seemann
|
21b608daac
|
move frame parsing to the wire package
|
2018-03-25 18:07:44 +02:00 |
|
Marten Seemann
|
6ccc76a130
|
send packets with maximum IPv4 and IPv6 packet size
|
2018-03-09 22:36:44 +07:00 |
|
Marten Seemann
|
5c98332e90
|
implement ACK decimation
ACK generation closely follows Chrome's QuicConnection::MaybeQueueAck()
in ACK_DECIMATION_WITH_REORDERING mode.
|
2018-03-05 19:56:19 +07:00 |
|
Marten Seemann
|
b6ca910a52
|
implement the IETF draft 10 header changes
|
2018-03-05 19:13:37 +07:00 |
|
Marten Seemann
|
d9e670b03a
|
remove TODO in Public Header regarding the div nonce bit for clients
The Public Header will not change before the switch to IETF QUIC.
We will have to accept the wrong bit in the client Public Header.
|
2018-03-02 16:44:23 +07:00 |
|
Marten Seemann
|
2ab2baf4bc
|
don't send greased version numbers for gQUIC
|
2018-02-25 23:19:52 +08:00 |
|
Marten Seemann
|
86e57706df
|
run gofmt -s
|
2018-02-23 23:38:08 +08:00 |
|
Marten Seemann
|
81974d30d6
|
run gosimple in gometalinter
|
2018-02-23 22:42:32 +08:00 |
|
Marten Seemann
|
c3ec497a2e
|
run unconvert in gometalinter
|
2018-02-23 22:42:22 +08:00 |
|
Marten Seemann
|
11af98e338
|
run misspell in gometalinter
|
2018-02-23 22:39:08 +08:00 |
|
Marten Seemann
|
a4bc7362e0
|
fix IETF Version Negotiation Packet, it doesn't have a packet number
|
2018-02-23 14:20:47 +08:00 |
|