Commit Graph

4588 Commits

Author SHA1 Message Date
Marten Seemann
d137e7672d implement a GetPTOTimeAndSpace() as outlined in the draft 2020-06-01 11:18:57 +07:00
Marten Seemann
96acf36cbd rename sentPacketHandler.getEarliestLossTimeAndSpace to getLossTimeAndSpace 2020-06-01 11:18:57 +07:00
Marten Seemann
feb3e9a713 rename lastSentAckElicitingPacketTime to lastAckElicitingPacketTime 2020-06-01 11:18:57 +07:00
Marten Seemann
c8e5bb5b50 Merge pull request #2543 from lucas-clemente/bundle-acks
make sure that ACK frames are bundled with data
2020-06-01 10:15:26 +07:00
Marten Seemann
b91874a0e5 add an integration test testing that ACKs are bundled 2020-06-01 09:56:07 +07:00
Marten Seemann
9177500096 bundle ACK frames when packing a packet 2020-06-01 09:56:06 +07:00
Marten Seemann
fa381fffa0 add a function to tell if the framer has data 2020-06-01 09:31:11 +07:00
Marten Seemann
df55c30c86 add a function to tell if there's app data in the retransmission queue 2020-06-01 09:31:11 +07:00
Marten Seemann
77b1021a54 make it possible to generate an ACK frame, even if no ACK is queued yet 2020-06-01 09:31:11 +07:00
Marten Seemann
bee5ef624f determine if a received packet is new (and not a duplicate / delayed packet) 2020-06-01 09:31:11 +07:00
Marten Seemann
f54953fb1d Merge pull request #2582 from lucas-clemente/add-v0.16-changelog
add a Changelog for v0.16
2020-05-31 14:02:44 +07:00
Marten Seemann
ce40a7e28b Merge pull request #2567 from lucas-clemente/authenticate-connection-ids
authenticate connection IDs
2020-05-31 14:01:58 +07:00
Marten Seemann
90acaf85d9 Merge pull request #2581 from lucas-clemente/fix-early-retransmit
don't switch to PTO mode after using early loss detection
2020-05-31 13:47:36 +07:00
Marten Seemann
5d55a9a3ab add a Changelog for v0.16 2020-05-31 11:02:09 +07:00
Marten Seemann
64ef72fd68 don't switch to PTO mode after early retransmit 2020-05-31 10:47:13 +07:00
Marten Seemann
ee8a0aeb1b improve unit tests for early retransmit 2020-05-31 10:43:04 +07:00
Marten Seemann
4f19b15670 set and verify the retry_source_connection_id TP 2020-05-29 19:57:39 +07:00
Marten Seemann
cdb22513f3 save the source conn ID used on the Retry packet in the Retry token 2020-05-29 19:50:14 +07:00
Marten Seemann
f1924b3182 qlog the retry_source_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
4451f3bf5c marshal and unmarshal the retry_source_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
fb2a5f413e set and verify the initial_source_connection_id 2020-05-29 19:50:14 +07:00
Marten Seemann
a9dc1e49ab qlog the initial_source_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
72d7592fb2 marshal and unmarshal the initial_source_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
193f18bbe5 always qlog the original_destination_connection_id for the server's TPs 2020-05-29 19:50:14 +07:00
Marten Seemann
b391cce35c always send the original_destination_connection_id TP as a server 2020-05-29 19:50:14 +07:00
Marten Seemann
a7005ac936 use a separate function to restore transport parameters for 0-RTT 2020-05-29 19:50:14 +07:00
Marten Seemann
7e62a2fecc rename original_connection_id to original_destination_connection_id TP 2020-05-29 19:50:14 +07:00
Marten Seemann
fe85b52eed Merge pull request #2580 from lucas-clemente/duplicate-initial-handling
only create a single session for duplicate Initials
2020-05-29 17:27:52 +07:00
Marten Seemann
99dac1581a fix broken unit test in ackhandler 2020-05-29 17:20:47 +07:00
Marten Seemann
fefed78973 Merge pull request #2570 from lucas-clemente/update-alpn-to-draft-28
update the ALPN tokens to draft-28
2020-05-29 16:44:18 +07:00
Marten Seemann
8d00ec135e Merge pull request #2569 from lucas-clemente/drop-duplicate-packets
drop duplicate packets
2020-05-29 16:39:46 +07:00
Marten Seemann
05398bd3c9 Merge pull request #2571 from lucas-clemente/reduce-frame-sorter-test-verbosity
remove noisy log statement in frame sorter test
2020-05-29 16:38:23 +07:00
Marten Seemann
690bb5468c Merge pull request #2572 from lucas-clemente/fix-flaky-qlog-tests
fix flaky qlog unit tests
2020-05-29 16:37:56 +07:00
Marten Seemann
dad30e7c33 only create a single session for duplicate Initials 2020-05-29 16:04:45 +07:00
Marten Seemann
85c19fbb5a Merge pull request #2536 from lucas-clemente/amplification-protection
implement the 3x amplification limit
2020-05-27 10:06:32 +07:00
Marten Seemann
6cea2f8a65 fix flaky qlog unit tests 2020-05-27 10:03:36 +07:00
Marten Seemann
d896b5e6c8 remove noisy log statement in frame sorter test 2020-05-27 09:59:28 +07:00
Marten Seemann
dbe925d74a update the ALPN tokens to draft-28 2020-05-27 09:54:03 +07:00
Marten Seemann
e33f7d0fb9 add integration tests using a very long certificate chain
This will trigger the amplification protection.
2020-05-27 09:40:51 +07:00
Marten Seemann
e4f02ff68c generate a new CA and cert chain for every run of the integration tests 2020-05-27 09:40:51 +07:00
Marten Seemann
60a918a108 limit available window to 3x of received bytes before address validation 2020-05-27 09:40:50 +07:00
Marten Seemann
98233f6743 add a way to pack coalesced packets smaller than the usual packet size 2020-05-27 09:33:34 +07:00
Marten Seemann
440ff107a3 drop duplicate packets
Duplicate detection uses the same data structure that is used to track
received packets to generate ACK frames. That means that after an old
ACK range has been pruned, a severly delayed packet might be incorrectly
detected as a duplicate.
As we wouldn't have acknowledged receipt of this packet, this situation
would have resulted in a retransmission by the peer anyway, so dropping
the packet won't cause a big regression.
2020-05-27 09:20:51 +07:00
Marten Seemann
fd5ecee85d Merge pull request #2561 from lucas-clemente/rewrite-frame-sorter
rewrite the frame sorter
2020-05-25 16:29:55 +07:00
Marten Seemann
bf86f0eff9 Merge pull request #2560 from lucas-clemente/update-golangci-lint
update golangci-lint to v1.27.0
2020-05-25 15:34:23 +07:00
Marten Seemann
4e8d244dfa Merge pull request #2563 from lucas-clemente/fix-reordered-ncid-frame
retire conn IDs with sequence numbers smaller than the currently active
2020-05-25 15:20:05 +07:00
Marten Seemann
0d288d3b19 Merge pull request #2559 from lucas-clemente/remove-read-offset
remove unused readOffset member variable in receiveStream
2020-05-25 15:19:48 +07:00
Marten Seemann
86ddf2e84e Merge pull request #2564 from lucas-clemente/fix-int-overflow-in-tp-parsing
fix int overflow when parsing the transport parameters
2020-05-25 15:18:14 +07:00
Marten Seemann
39fe927ef5 rewrite the frame sorter 2020-05-25 13:10:26 +07:00
Marten Seemann
b2c4dacd25 fix int overflow when parsing the transport parameters 2020-05-24 12:59:47 +07:00