Commit Graph

2863 Commits

Author SHA1 Message Date
Marten Seemann
46f8c07daa improve the version negotiation integration test 2018-08-27 09:29:26 +07:00
Marten Seemann
c481645276 send a gQUIC / IETF QUIC Version Negotiation Packet based on header type 2018-08-27 09:08:59 +07:00
Marten Seemann
4d2d2420a4 Merge pull request #1491 from lucas-clemente/transport-parameters-marshalling
implement (un)marshalling of the transport parameters
2018-08-20 18:33:42 +07:00
Marten Seemann
e0e831f1fc implement (un)marshalling of the transport parameters 2018-08-20 15:34:37 +07:00
Marten Seemann
00e1884a88 move reading of stateless reset tokens to the transport parameter struct 2018-08-20 15:34:37 +07:00
Marten Seemann
2c75b795ae move adding of stateless reset tokens to the transport parameter struct 2018-08-20 15:34:37 +07:00
Marten Seemann
ad9618ef9e Merge pull request #1490 from lucas-clemente/flow-control-transport-parameters
don't require the flow control values in the transport parameters
2018-08-20 15:32:56 +07:00
Marten Seemann
1bb9a7e1ac don't require the flow control values in the transport parameters 2018-08-19 10:36:47 +07:00
Marten Seemann
3ff262dd7f Merge pull request #1489 from lucas-clemente/go-1.11
update CIs to Go 1.11
2018-08-16 12:27:13 +07:00
Marten Seemann
8dbf6766e5 Merge pull request #1478 from lucas-clemente/cookie-protector
move the mint cookie protector to the handshake package
2018-08-16 12:19:27 +07:00
Marten Seemann
e23c08eef9 update CIs to Go 1.11 2018-08-16 11:51:23 +07:00
Marten Seemann
623fcd85b0 move the mint cookie protector to the handshake package
It's duplicate code now, but it reduces the dependency on mint.
2018-08-16 11:50:43 +07:00
Marten Seemann
00775db9d5 Merge pull request #1480 from lucas-clemente/milestone-0.9
release 0.9.0
2018-08-15 22:35:08 +07:00
Marten Seemann
5c8dec8331 release 0.9 2018-08-15 22:02:31 +07:00
Marten Seemann
ffb46a144f Merge pull request #1484 from lucas-clemente/ietf-quic-handshake-rtt-tests
add handshake RTT tests with IETF QUIC
2018-08-15 22:01:16 +07:00
Marten Seemann
82388748f7 add handshake RTT tests with IETF QUIC 2018-08-15 21:34:50 +07:00
Marten Seemann
3168f6cd28 simplify output of handshake RTT tests when the test fails 2018-08-15 21:34:50 +07:00
Marten Seemann
0eede57a2d Merge pull request #1488 from lucas-clemente/fix-flaky-server-unit-test
fix flaky server unit test
2018-08-15 21:34:23 +07:00
Marten Seemann
6e22fbc77b fix flaky version negotiation tests 2018-08-15 20:46:12 +07:00
Marten Seemann
78f8e1c83e fix flaky server unit test 2018-08-15 20:29:52 +07:00
Marten Seemann
7bf5cb6e2a Merge pull request #1487 from lucas-clemente/version-negotiate-ietf-and-gquic
allow version negotiation between IETF QUIC and gQUIC, and vice versa
2018-08-15 19:47:35 +07:00
Marten Seemann
9e83c96598 Merge pull request #1486 from lucas-clemente/send-ietf-quic-vnp
always allow sending of IETF QUIC Version Negotiation Packets
2018-08-15 19:46:59 +07:00
Marten Seemann
1d750603c5 Merge pull request #1482 from lucas-clemente/multiple-retries
allow multiple Retries
2018-08-15 19:42:45 +07:00
Marten Seemann
c840bd4177 allow version negotiation between IETF QUIC and gQUIC, and vice versa 2018-08-15 17:10:05 +07:00
Marten Seemann
acb45c0ef1 always allow sending of IETF QUIC Version Negotiation Packets
When receiving a packet with an IETF QUIC Header using an unsupported
version, we should send a IETF QUIC Version Negotiation Packet, even if
none of the supported versions is IETF QUIC.
2018-08-15 15:23:28 +07:00
Marten Seemann
9608e8563f only accept 3 retries
While the server is allowed to perform multiple Retries, the client
should impose a limit in order to avoid being caught in an endless loop.
2018-08-14 18:35:25 +07:00
Marten Seemann
872e1747f4 always use connection IDs longer than 8 bytes when sending a Retry
A server is allowed to perform multiple Retries. There's little to gain
from doing so, but it's something our API allows. If a server performs
multiple Retries, it must use a connection ID that's at least 8 bytes
long. Only if it doesn't perform any further Retries it is allowed to
use shorter IDs. Therefore, we're on the safe side by always using a
long connection ID.
This shouldn't have a performance impact, since the server changes the
connection ID to a short value with the first Handshake packet it sends.
2018-08-14 17:34:21 +07:00
Marten Seemann
829edc04ab accept multiple Retries 2018-08-14 17:18:44 +07:00
Marten Seemann
58eae32bc9 Merge pull request #1477 from lucas-clemente/new-retry
implement the new Retry mechanism
2018-08-13 10:26:18 +07:00
Marten Seemann
70992684af use server generated connection IDs when accepting a connection 2018-08-13 08:47:29 +07:00
Marten Seemann
77f5d30338 buffer writes to the crypto stream
mint performs a Write for every state change. This results in a lot of
small packets getting sent when using an unbuffered connection. By
buffering, we make sure that packets are filled up properly.
2018-08-13 08:47:29 +07:00
Marten Seemann
f88b7bb175 implement the new Retry mechanism 2018-08-13 08:47:29 +07:00
Marten Seemann
d8aa49d0f9 implement writing and parsing of the new Retry packet 2018-08-13 08:47:29 +07:00
Marten Seemann
e39251c8b5 implement writing and parsing of Initial packets containing a Token 2018-08-13 08:47:29 +07:00
Marten Seemann
2b3ae10b33 Merge pull request #1475 from lucas-clemente/improve-mockgen
improve mockgen
2018-08-13 08:22:00 +07:00
Marten Seemann
13ea994cc8 Merge pull request #1476 from lucas-clemente/update-mint
update mint
2018-08-13 08:20:49 +07:00
Marten Seemann
e34256beed update mint 2018-08-12 15:26:40 +07:00
Marten Seemann
f9c1de5779 make it possible to generate mocks of private internal interfaces 2018-08-11 14:49:49 +07:00
Marten Seemann
76d4d43b50 move the mockgen cleanup commands to the mockgen script 2018-08-11 12:45:48 +07:00
Marten Seemann
b291b33bca simplify the command line params of the mockgen script 2018-08-11 12:45:48 +07:00
Marten Seemann
04147d86da rename the cryptoStreamI interface to cryptoStream 2018-08-11 12:45:43 +07:00
Marten Seemann
40050f558d fix mockgen script
We don't need to copy the vendor directory.
2018-08-11 11:25:42 +07:00
Marten Seemann
a964f2d2ff Merge pull request #1470 from lucas-clemente/fix-1452
use retransmissions as TLP packets
2018-08-10 08:17:12 +07:00
Marten Seemann
defafec71e use retransmissions as TLP packets 2018-08-09 22:28:28 +07:00
Marten Seemann
bd23e1651d Merge pull request #1472 from lucas-clemente/fix-spurious-loss-detection-alarm
don't do anything when OnAlarm is called, but no packets are outstanding
2018-08-09 22:27:18 +07:00
Marten Seemann
ada085dffb Merge pull request #1464 from lucas-clemente/multiplexing
multiplex server and client on the same packet conn
2018-08-08 18:38:12 +07:00
Marten Seemann
83cb7cbe2e add an integration test multiplexing server and client on the same conn 2018-08-08 17:34:08 +07:00
Marten Seemann
5358831604 don't do anything when OnAlarm is called, but no packets are outstanding
When all outstanding are acknowledged, the alarm is canceled in
updateLossDetectionAlarm. This doesn't reset the timer in the session
though. When OnAlarm is called, we therefore need to make sure that
there are actually packets outstanding.
2018-08-08 15:40:36 +07:00
Marten Seemann
b5d03d24a5 close the packet conn when a server created with ListenAddr is closed 2018-08-08 10:03:22 +07:00
Marten Seemann
ad5a3e2fa0 also use the multiplexer for the server 2018-08-08 10:03:22 +07:00