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
Marten Seemann
6555907162
run goimports in gometalinter
2018-02-23 22:39:08 +08:00
Marten Seemann
11af98e338
run misspell in gometalinter
2018-02-23 22:39:08 +08:00
Marten Seemann
37aa577560
run ineffassign in gometalinter
2018-02-23 22:39:08 +08:00
Marten Seemann
2f157769c0
Merge pull request #1197 from lucas-clemente/fix-523
...
make the number of incoming streams configurable
2018-02-23 22:37:25 +08:00
Marten Seemann
245af2c596
make the number of incoming streams configurable, for gQUIC
2018-02-23 22:15:31 +08:00
Marten Seemann
58b20c6009
make the number of incoming streams configurable, for IETF QUIC
2018-02-23 22:15:31 +08:00
Marten Seemann
8fd7219bfc
delete handshake packets from history when receiving a forward-secure packet
2018-02-23 22:15:10 +08:00
Marten Seemann
ecad36a65b
Merge pull request #1193 from lucas-clemente/fix-1129
...
implement the recent key schedule changes
2018-02-23 22:10:03 +08:00
Marten Seemann
dcd2659925
implement the recent key schedule changes
2018-02-23 21:43:19 +08:00
Marten Seemann
6fcdcdbea1
make golint happy about the congestion tests
2018-02-23 20:56:07 +08:00
Marten Seemann
4ae811e2d6
Merge pull request #1196 from lucas-clemente/fix-1195
...
fix IETF Version Negotiation Packet, it doesn't have a packet number
2018-02-23 20:14:06 +08:00
Marten Seemann
88da8e2e0a
retransmit Initial packets as Initial packets
2018-02-23 15:58:24 +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
Marten Seemann
8c594e1084
Merge pull request #1186 from lucas-clemente/log-vnps
...
log version negotiation packets
2018-02-21 18:03:57 +08:00
Marten Seemann
ce01e99ba1
log version negotiation packets
2018-02-21 14:55:33 +08:00
Marten Seemann
3371d6bcf9
make the version number a uint32
...
This will allow us to set it to the IETF draft version numbers as listed
in https://github.com/quicwg/base-drafts/wiki/QUIC-Versions . Those
numbers would overflow a int32.
2018-02-21 13:24:18 +08:00
Marten Seemann
86b25dddce
Merge pull request #1177 from lucas-clemente/transport-parameters-new-sesssion-ticket
...
don't accept transport parameters in the NewSessionTicket message
2018-02-18 14:03:31 +08:00
Marten Seemann
f0eb5a60f1
don't accept transport parameters in the NewSessionTicket message
...
This was recently removed from the WG draft.
2018-02-08 11:09:42 +08:00
Marten Seemann
c9b95abe7e
use an unbuffered chan for the client transport parameters
...
The client reads the transport parameters from the Encrypted Extensions
message. These transport parameters are passed to the session's run
loop's select statement via a channel.
We have to use an unbuffered channel here to make sure that the session
actually processes the transport parameters immediately.
2018-02-08 11:04:27 +08:00
Marten Seemann
8e332c2e13
implement sending of MAX_STREAM_ID frames
...
We can now impose a limit on the number of stream for IETF QUIC, and
advertise that in the transport parameters during the handshake.
2018-02-06 08:32:16 +08:00
Marten Seemann
cd4bcda458
read and write the stream id limits sent in the TLS handshake
2018-02-06 08:30:57 +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
Marten Seemann
5974c6c113
correctly determine the length of STREAM frames for IETF QUIC
...
The length of the data has an influence on the length of the frame (if
it contains the data length), and the length can either consume 1 or 2
bytes due to variable length encoding.
2018-02-05 12:02:49 +08:00
Marten Seemann
3b82628dbe
internalize ackhandler and congestion
2018-02-02 08:40:56 +08:00
Marten Seemann
1cc209e4fb
update mint, and adapt to the new use of the extension handler
2018-02-02 08:18:29 +08:00
Marten Seemann
29307c5067
Merge pull request #1132 from lucas-clemente/perspective-stringer
...
add a string representation for the perspective
2018-02-01 23:51:29 +08:00
Marten Seemann
fbeba1f73a
make sure that at least every 20th ACK is retransmittable
...
This is important because we need to make sure that we can remove old
ACK ranges from the received packet history. The logic we implemented
before was not correct, since we only made sure that every 20th packet
would be retransmittable, but we didn't have any guarantee that this
packet would also contain an ACK frame.
2018-02-01 17:11:05 +08:00
Marten Seemann
2ec147ccfa
add a string representation for the perspective
2018-02-01 12:59:24 +08:00
Marten Seemann
fc5f54824a
only send one ACK for every 10 retransmittable packets
2018-01-28 17:59:37 +07:00
Marten Seemann
9ef3a47da5
send multiple packets at once, if the pacing delay is very small
...
This is an optimization to avoid waking of the run loop every couple of
microseconds.
2018-01-23 09:13:44 +11:00