Commit Graph

128 Commits

Author SHA1 Message Date
Marten Seemann
295f6c78d9 correctly parse ACK frames with LargestAcked 0
fixes #362
2016-12-02 22:32:10 +07:00
Marten Seemann
bbbc24c431 improve logging of StopWaitingFrames 2016-11-28 11:27:54 +07:00
Lucas Clemente
aa645301c6 improve alignment of some structs 2016-09-07 15:45:33 +02:00
Lucas Clemente
313dd5b2fa improve reading of stream frames, increasing transfer speed by ~10% 2016-09-05 00:36:33 +02:00
Marten Seemann
05265bd3c5 fix AckFrame writing with gap lengths which are a multiple of 255
fixes #306
2016-09-02 12:16:01 +07:00
Lucas Clemente
b138486cd8 remove NackRange 2016-09-01 20:26:31 +02:00
Lucas Clemente
3c2148981f remove entropy from StopWaitingFrame 2016-09-01 20:26:31 +02:00
Lucas Clemente
b032a07f70 remove ackhandlerlegacy and frames.AckFrameLegacy 2016-09-01 20:26:31 +02:00
Marten Seemann
a8764d923e remove version 32 from tests
ref #215
2016-09-01 12:20:18 +02:00
Lucas Clemente
126db938d0 fix some linter warnings 2016-08-23 12:24:33 +02:00
Marten Seemann
f1da2239ca don't split off empty StreamFrames in streamFramer
fixes #284
2016-08-17 18:04:33 +07:00
Marten Seemann
8a7ab6d6cd add a function to check if an ACK frame acks a certain packet number 2016-08-11 11:03:45 +02:00
Lucas Clemente
49a0a7d60c improve stream_frame tests 2016-08-08 11:07:36 +02:00
Lucas Clemente
c8bb818e4d fix some typos 2016-08-06 14:46:09 +02:00
Lucas Clemente
8664ee44b8 run gofmt -s on ack_frame_test.go 2016-08-06 14:45:11 +02:00
Marten Seemann
336fe548d7 improve logging of legacy ACK frames 2016-08-03 11:49:19 +07:00
Lucas Clemente
b9abc5b2a1 improve frames coverage and fix a small stream frame parsing bug
ref #241
2016-08-02 13:11:30 +02:00
Lucas Clemente
c46e93c752 drop support for v31
fixes #214
2016-07-29 15:22:56 +02:00
Marten Seemann
516500e156 wrap legacy AckFrame in new AckFrame 2016-07-26 12:05:31 +07:00
Marten Seemann
fb172297eb rename AckFrameNew to AckFrame 2016-07-26 10:42:25 +07:00
Marten Seemann
03e25d1e85 send shorter Missing Packet Sequence Number Delta in new ACK frames
fixes #184
2016-07-25 17:43:31 +07:00
Marten Seemann
c44e01a8e6 correctly write new ACK frames with more than 255 ACK ranges
fixes #193
2016-07-20 14:12:36 +08:00
Lucas Clemente
546ba27013 add an error when attempting to write empty stream frames 2016-07-13 16:12:14 +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
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
1fc83757a0 fix panic in QUIC 34 ACK frame parser for incorrect typeBytes
fixes #198
2016-07-05 15:10:22 +08:00
Marten Seemann
da2b2f3a2d parse QUIC 34 ACK Frames with an incomplete range
fixes #194
2016-07-03 23:59:11 +08:00
Marten Seemann
1186af3f99 reject QUIC 34 ACK frames that have an empty first ACK range 2016-06-28 22:14:43 +07:00
Marten Seemann
5e8c6e59f6 remove NackRanges from new AckFrame 2016-06-27 11:22:35 +07:00
Marten Seemann
d86d981319 rename LargestObserved to LargestAcked in QUIC 34 ACK frame 2016-06-24 14:30:39 +07:00
Marten Seemann
e6ecb1f40c remove unused GetHighestInOrderPacketNumber method from QUIC 34 ACK frame
ref #182
2016-06-22 16:32:56 +07:00
Marten Seemann
1d412f2af6 check for consistent ACK ranges when writing QUIC 34 ACK frames
ref #182
2016-06-22 15:35:14 +07:00
Marten Seemann
9d3dd34017 correctly parse and write QUIC 34 ACK frames if packet 1 was lost
ref #182
2016-06-22 15:16:53 +07:00
Marten Seemann
288cb9e143 rename AckFrame to AckFrameLegacy 2016-06-21 19:51:26 +07:00
Marten Seemann
c01e16da71 validate parsed ACK ranges from a QUIC 34 ACK frame
ref #182
2016-06-21 19:49:24 +07:00
Marten Seemann
a92bd2bf55 don't write any timestamps in QUIC 34 ACK frames
ref #182
2016-06-21 18:14:30 +07:00
Marten Seemann
193f0dd793 correctly parse QUIC 34 ACK frames without timestamps
ref #182
2016-06-21 18:11:32 +07:00
Marten Seemann
4e183194c1 fix number of ACK blocks for gaps of 254 packets in QUIC 34 ACKs
ref #182
2016-06-21 14:20:21 +07:00
Marten Seemann
74ac98e7a5 calculate MinLength for QUIC 34 ACKs with long ranges of missing packets
ref #182
2016-06-21 14:11:19 +07:00
Marten Seemann
a2aed133b5 implement writing of ACK blocks with large gaps for QUIC 34 ACK frames
ref #182
2016-06-21 14:02:45 +07:00
Marten Seemann
5b0442f7e6 calculate correct MinLength for QUIC 34 ACK frames with ACK ranges
ref #182
2016-06-21 10:13:32 +07:00
Marten Seemann
cc5fe06db9 implement basic writing of ACK blocks for QUIC 34 ACK frames
ref #182
2016-06-21 00:24:44 +07:00
Marten Seemann
c681fd1469 don't panic if an ACK frame has too many NACK ranges 2016-06-20 14:48:21 +07:00
Marten Seemann
433920fc15 calculate correct MinLength of an ACK frame with a contiguous NACK range
fixes #183
2016-06-20 14:43:00 +07:00
Marten Seemann
29029978a0 determine if a QUIC 34 ACK frame reports any missing packets
ref #182
2016-06-20 14:05:20 +07:00
Marten Seemann
eb2414b085 parse QUIC 34 ACK frames with > 256 packets lost in a row
ref #182
2016-06-20 13:43:40 +07:00
Marten Seemann
963517e7be implement basic ACK block parsing for QUIC 34 ACK frames
ref #182
2016-06-20 11:31:23 +07:00
Marten Seemann
9c5a1cce0e add method to get highest in order ACKed packet number to new ACK frame 2016-06-19 18:53:04 +07:00
Marten Seemann
480ae993df implement basic ACK frame parsing and writing for QUIC 34
ref #182
2016-06-19 16:02:00 +07:00
Marten Seemann
75f9df4edb remove Entropy from StopWaitingFrames for QUIC 34
fixes #181
2016-06-19 13:50:13 +07:00