Commit Graph

273 Commits

Author SHA1 Message Date
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
c6526ad927 replace the SetDiversificationNonce crypto setup method by a chan 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
48731221c0 correctly handle errors when creating a new gQUIC key exchange 2018-03-28 05:33:26 +07:00
Marten Seemann
1f9ab3b65f remove unused key exchange function from client crypto setup 2018-03-28 05:31:56 +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
8772acab0a don't reduce the bytes in flight for RTO probe packets 2018-03-20 14:08:03 +00:00
Marten Seemann
a5688f954f Merge pull request #1251 from lucas-clemente/transport-parameters-max-stream-id
max stream values in the transport parameters are stream counts
2018-03-20 13:58:08 +00:00
Marten Seemann
46f8930fef calculate loss alarm based on send time of last retransmittable packet 2018-03-17 11:13:55 +00:00
Marten Seemann
b40942d39e send stream counts, not stream IDs, in the transport parameters 2018-03-16 17:41:21 +00:00
Marten Seemann
1fffb88553 fix typo in function name 2018-03-16 17:41:21 +00:00
Marten Seemann
fed3bf503e keep track of which packets were sent as retransmissions
When an ACK for a packet that was retransmitted arrives, we don't need
to retransmit the retransmission, even if it was lost.
2018-03-16 16:54:39 +01:00
Marten Seemann
56720edc34 report retransmissions separately to the sent packet handler 2018-03-14 11:15:52 +01:00
Marten Seemann
dc4a9b1d86 refactor sent packet handler tests 2018-03-14 11:15:26 +01:00
Marten Seemann
6a80d50fb9 optimize updating the RTT when receiving an ACK 2018-03-13 17:44:12 +01:00
Marten Seemann
9ffeba5445 refactor the sent packet history into a separate object 2018-03-13 17:44:12 +01:00
Marten Seemann
555fa8ec8e Merge pull request #1232 from lucas-clemente/packet-sending-modes
implement packet send modes to determine what kind of packets are sent
2018-03-13 17:39:20 +01:00
Marten Seemann
b5977236ff implement packet send modes to determine what kind of packets are sent 2018-03-13 14:49:48 +01:00
Marten Seemann
0f401b0b37 parse the max_packet_size in the TLS transport parameters 2018-03-10 14:14:09 +07:00
Marten Seemann
6a2c4548f7 Merge pull request #1231 from lucas-clemente/stricter-rtt-updated-test
test that exiting slow start and acking packets are done in right order
2018-03-09 23:37:26 +07:00
Marten Seemann
6ccc76a130 send packets with maximum IPv4 and IPv6 packet size 2018-03-09 22:36:44 +07:00
Marten Seemann
ae2247c869 test that exiting slow start and acking packets are done in right order 2018-03-09 10:29:29 +07:00
Marten Seemann
7b43d17fab Merge pull request #1228 from lucas-clemente/sent-packet-handler-packet-number-len
calculate the packet number length in the sent packet handler
2018-03-08 00:59:09 +07:00
Marten Seemann
85d67ecce5 don't reject ACKs with a lower largest ACKed value 2018-03-07 16:10:57 +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
ca2471e78d remove explicit error for duplicate or out of order ACKs 2018-03-07 09:30:05 +07:00
Marten Seemann
6efa73c36c accept ACKs sent in packet number 0 2018-03-06 18:12:41 +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
8fc0f53a8d move constants used by the received packet handler to ackhandler package 2018-03-05 19:39:59 +07:00
Marten Seemann
41d7cbb014 Merge pull request #1219 from lucas-clemente/max-tracked-error-check
remove incorrect error check when sending a packet
2018-03-05 19:34:00 +07:00
Marten Seemann
b6ca910a52 implement the IETF draft 10 header changes 2018-03-05 19:13:37 +07:00
Marten Seemann
2d64953e0e remove incorrect error check when sending a packet
There's no need for a check if more than protocol.MaxTrackedSentPackets
packets were sent. There are certain situations where we allow (via
SendingAllowed()) sending of more packets, and we shouldn't throw an
error when the session then actually sends these packets.
2018-03-05 17:08:18 +07:00
Marten Seemann
ba00cb9175 Merge pull request #1215 from lucas-clemente/golint
make golint happier
2018-03-02 22:47:05 +07:00
Marten Seemann
fab3023876 Merge pull request #1214 from lucas-clemente/fix-232
remove TODO in Public Header regarding the div nonce bit for clients
2018-03-02 22:46:04 +07:00
Marten Seemann
54db9ebec4 Merge pull request #1212 from lucas-clemente/refactor-retransmissions
refactor retransmissions
2018-03-02 17:53:56 +07:00
Marten Seemann
a588b9e140 make golint happier 2018-03-02 16:58:19 +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
656dff6163 introduce a UsesStopWaitingFrames() method for version numbers 2018-03-02 16:00:11 +07:00
Marten Seemann
be2be3872f Merge pull request #1194 from lucas-clemente/log-transport-params
log the TLS Transport Parameters
2018-02-27 01:03:19 +08:00
Marten Seemann
624ac61412 reject unknown versions in the quic.Config 2018-02-26 11:07:06 +08: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
78da50ee7c log the TLS Transport Parameters 2018-02-23 23:12:30 +08:00
Marten Seemann
81974d30d6 run gosimple in gometalinter 2018-02-23 22:42:32 +08:00
Marten Seemann
286a51bcc0 run staticcheck in gometalinter 2018-02-23 22:42:32 +08:00
Marten Seemann
b6470311ea run unused 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
a9797d9341 run structcheck in gometalinter 2018-02-23 22:39:08 +08:00