Commit Graph

970 Commits

Author SHA1 Message Date
Andreas Auernhammer
c5be7d0d62 Replace ChaCha20Poly1305 implementation
Improve AEAD speed with slightly faster poly1305 implementation.
Avoid memory allocations whenever possible. (AEAD)
But currently missing AVX2 support.

BenchmarkSeal64B-8     1561 ns/op       40.97 MB/s
BenchmarkSeal1K-8      5570 ns/op      183.82 MB/s
BenchmarkSeal64K-8     161271 ns/op    406.37 MB/s
BenchmarkOpen64B-8     1747 ns/op       45.79 MB/s
BenchmarkOpen1K-8      5741 ns/op      181.14 MB/s
BenchmarkOpen64K-8     157116 ns/op    417.22 MB/s
2016-07-17 23:23:30 +02:00
Lucas Clemente
0412926b3d update crypto and caddy links in readme 2016-07-14 01:42:05 +02:00
Lucas Clemente
6449afe605 add a set of integration tests with 10ms simulated RTT 2016-07-13 22:46:07 +02:00
Marten Seemann
8413c00b48 fix handling of ACKs sent for a belated packet in new SentPacketHandler
fixes #219
2016-07-14 00:16:11 +08:00
Marten Seemann
f03f9c9a1c handle ACKs sent for a belated packet in legacy SentPacketHandler
ref #219
2016-07-14 00:09:41 +08:00
Lucas Clemente
546ba27013 add an error when attempting to write empty stream frames 2016-07-13 16:12:14 +02:00
Marten Seemann
903130da20 ignore repeated ACKs in new SentPacketHandler
fixes #218
2016-07-13 22:03:14 +08:00
Marten Seemann
21746d7e06 ignore repeated ACKs in legacy SentPacketHandler
ref #218
2016-07-13 21:57:19 +08:00
Lucas Clemente
38098954f4 reduce calls to framer.getFCAllowance 2016-07-12 15:01:14 +02:00
Lucas Clemente
58ec83c4ba remove unneeded function call to framer.HasData 2016-07-12 14:42:53 +02:00
Lucas Clemente
73db4d7a04 remove stream.contributesToConnectionFlowControl 2016-07-11 17:54:22 +02:00
Lucas Clemente
1bc8c882c9 remove session pointer from stream and use a lambda to signal new data 2016-07-11 14:57:54 +02:00
Lucas Clemente
f04d14ac3e use flow controller for window update handling, remove windowUpdateMgr 2016-07-11 14:54:32 +02:00
Lucas Clemente
e303a7f578 send CONNECTION_CLOSE from the normal run loop
fixes #199
2016-07-10 15:24:26 +02:00
Lucas Clemente
2d828fe6e2 use an RWMutex in flowControlManager 2016-07-09 18:11:41 +02:00
Lucas Clemente
80f4a68602 remove mutex from flowController; locking is ensured by the manager 2016-07-09 18:10:09 +02:00
Lucas Clemente
8dc330f818 remove MaybeTriggerBlocked from flowController 2016-07-09 18:09:37 +02:00
Lucas Clemente
a09de18f56 fix alignment of 64bit atomic for x86, see atomic package BUGs section 2016-07-09 15:10:35 +02:00
Lucas Clemente
91f1eb1561 re-enable BLOCKED frame sending
fixes #113, fixes #172, fixes #211
2016-07-09 14:37:16 +02:00
Lucas Clemente
bdbf8d3ebe add BLOCKED frame management to streamFramer
ref #211
2016-07-09 14:29:56 +02:00
Lucas Clemente
d547034ed3 Merge pull request #212 from lucas-clemente/stream-write
Refactor stream.Write
2016-07-09 14:03:46 +02:00
Lucas Clemente
4750924b27 improve tiles demo and remove an empty file 2016-07-08 18:21:46 +02:00
Lucas Clemente
37f2066933 remove caching of streamID lengths in StreamFrame
fixes the final failing test of #83
2016-07-08 18:21:46 +02:00
Lucas Clemente
87c1a2f004 remove sentPacketHandler from packetPacker 2016-07-08 18:21:46 +02:00
Lucas Clemente
66594f7a8a fix flaky session tests
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
50aa7ec52c re-enable most integration tests 2016-07-08 18:21:45 +02:00
Lucas Clemente
c672f461de improve integration test error handling 2016-07-08 18:21:45 +02:00
Lucas Clemente
f43c4c7f1a respect flow control in streamFramer estimated length and HasData()
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
bb8464efe0 copy the slice passed to stream.Write 2016-07-08 18:21:45 +02:00
Lucas Clemente
f8130288a3 fix early garbage collection of streams
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
5cc88f60dc fix handling of connection level window updates 2016-07-08 18:21:45 +02:00
Lucas Clemente
3cbf16b66f add flow control to streamFramer
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
81ae6d44ec introduce protocol.VersionWhatever for when the version doesn't matter
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
5ada9108ae remove FlowController interface
fixes #178, ref #83
2016-07-08 18:21:44 +02:00
Lucas Clemente
d1e3b541d3 replace streamFrameQueue with just-in-time framing of written data
This commits replaces the stream frame queue with a framer which
requests data from the streams just when a frame is needed by the
packet packer. This simplifies a lot of things and allows some other
refactorings, see issue #83.

There are a few pending tests which will be fixed soon.
2016-07-08 18:21:44 +02:00
Marten Seemann
ee77e85af3 increase LargestInOrderAcked when queueing a retransmission
fixes #205
2016-07-08 00:40:19 +08:00
Marten Seemann
8d1827d8d8 allow non-consecutive packet numbers in new SentPacketHandler
ref #186
2016-07-07 23:24:24 +08:00
Marten Seemann
d25976c083 NACK packets below the LowestAcked in new SentPacketHandler
fixes #204
2016-07-07 23:20:22 +08:00
Lucas Clemente
3794ea2b83 Merge branch 'wip-streamwrite' 2016-07-06 10:21:25 +02:00
Marten Seemann
b38d4b37fe don't count retransmission as sent bytes for connection flow control 2016-07-06 10:17:43 +02:00
Marten Seemann
8a9d70488a respect connection flow control window in StreamFrameQueue 2016-07-06 10:17:42 +02:00
Marten Seemann
1b732a4afa add method to FlowControlManager to tell if Stream contribues to connection-level flow control 2016-07-06 10:17:42 +02:00
Marten Seemann
ef9baf67fc use FlowControlManager in StreamFrameQueue 2016-07-06 10:17:42 +02:00
Marten Seemann
e8e6c8922d handle stream level flow control in StreamFrameQueue 2016-07-06 10:17:40 +02:00
Marten Seemann
ac54ac66c7 add methods for sending data to FlowControlManager 2016-07-06 10:14:17 +02:00
Lucas Clemente
9336245ddd add a readme to example/ explaining the certificate 2016-07-05 12:30:08 +02:00
Lucas Clemente
d0efb894ef update certificate for tests 2016-07-05 12:24:54 +02:00
Lucas Clemente
3d4ca214f7 remove DER certificates and use PEMs instead 2016-07-05 12:23:51 +02:00
Lucas Clemente
705da8fd00 switch to AES-GCM as symmetric cipher
fixes #200
2016-07-05 12:13:41 +02:00
Marten Seemann
1fc83757a0 fix panic in QUIC 34 ACK frame parser for incorrect typeBytes
fixes #198
2016-07-05 15:10:22 +08:00