Lucas Clemente
87c1a2f004
remove sentPacketHandler from packetPacker
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
ab1db83134
pack QUIC 34 packets with the correct maximum size
...
fixes #187
2016-06-23 18:23:34 +07:00
Marten Seemann
eb03ed5334
rename AckHandler package to AckHandlerLegacy
2016-06-21 19:51:26 +07:00
Marten Seemann
5651a7cfc1
pass QUIC version number to Frame.MinLength
...
ref #181
2016-06-19 13:43:58 +07:00
Marten Seemann
37e57c6f05
temporarily disable sending of Blocked frames
...
ref #172
2016-06-15 12:29:09 +07:00
Marten Seemann
fe45644335
don't write private header for QUIC Version >= 34
...
ref #55
2016-06-11 11:15:03 +07:00
Marten Seemann
b1c27b5eca
initialize StreamFrameQueue in Session, not in PacketPacker
2016-06-10 19:06:40 +07:00
Lucas Clemente
5ed0182b67
fix a race condition in CryptoSetup
...
CryptoSetup's AEADs were changed between calls to
DiversificationNonce() and Seal()
2016-06-02 16:13:06 +02:00
Marten Seemann
2f49a9525a
add DataLen function to StreamFrame
2016-06-01 09:23:26 +07:00
Marten Seemann
26d18976ff
implement round-robin scheduling in StreamFrameQueue
...
fixes #148
2016-05-27 13:38:39 +07:00
Marten Seemann
758334f6aa
move splitting of StreamFrames to StreamFrameQueue
...
work towards #146
2016-05-26 11:14:38 +07:00
Lucas Clemente
2606b891e2
add diversification to AEADs and conditionally include in public header
...
ref #51
2016-05-20 23:41:04 +02:00
Lucas Clemente
c6a9e7e575
implement diversification nonce writing in public header
...
ref #51
2016-05-20 23:13:55 +02:00
Marten Seemann
57066faef9
add seperate PacketPacker method to pack a ConnectionClose packet
...
fixes #134
2016-05-20 20:49:29 +07:00
Marten Seemann
d571c0bfd5
remove stream from BlockManager when a WindowUpdate increases its offset
...
fixes #130
2016-05-20 12:26:10 +07:00
Marten Seemann
ce26ec2789
place BlockedFrames before the corresponding StreamFrame in a packet
...
fixes #114
2016-05-19 14:32:29 +07:00
Marten Seemann
52de95f21f
don't ignore queued control frames when packing a packet
2016-05-19 13:15:47 +07:00
Marten Seemann
9930de68c8
send stream-level Blocked frames at the right time
...
fixes #110
2016-05-19 11:53:51 +07:00
Marten Seemann
f751566f00
don't panic on failed type assertion in PacketPacker
...
related to #93
2016-05-19 10:55:34 +07:00
Lucas Clemente
7a97f34fac
don't panic 🤓
...
fixes #93
2016-05-18 18:29:42 +02:00
Lucas Clemente
9cc4bb3ccf
privatize publicHeader
...
ref #60
2016-05-15 15:44:14 +02:00
Lucas Clemente
864105271e
privatize streamFrameQueue
...
ref #60
2016-05-15 15:27:39 +02:00
Marten Seemann
089582dd9f
improve sending of WindowUpdate frames
...
fixes #96
2016-05-15 18:05:15 +07:00
Marten Seemann
a3ff4dd891
send WindowUpdate frames
...
fixes #19
2016-05-15 16:48:42 +07:00
Marten Seemann
0d29bdc499
pack WindowUpdate frames into two packets if they don't fit into one
...
work towards #96
2016-05-15 11:41:07 +07:00
Marten Seemann
13f15c8c23
add method to PacketPacker to send WindowUpdate frames
...
work towards #19
2016-05-15 09:52:31 +07:00
Marten Seemann
561acc08e4
pack control frames into separate packets if they don't fit into one
2016-05-14 18:07:24 +07:00
Marten Seemann
ba799cef01
delay transmission of small packets to wait for new data
...
fixes #9 , fixes #61
2016-05-13 17:06:30 +07:00
Marten Seemann
076349554f
move packet number calculations to protocol package
2016-05-12 18:18:15 +07:00
Marten Seemann
2f6e2c1201
remove PacketNumber from Frame interface Write method
2016-05-12 16:22:08 +07:00
Marten Seemann
33c0f3a5df
set LeastUnackedDelta length in StopWaitingFrame
...
fixes #79
2016-05-12 13:05:42 +07:00
Marten Seemann
aaf4b0ae9e
remove PacketNumberLen from Frame interface Write method
2016-05-12 11:22:31 +07:00
Marten Seemann
b1731773cf
only send Data length field in StreamFrames when necessary
...
fixes #77
2016-05-11 13:25:51 +07:00
Marten Seemann
e345270e84
use ByteCount type for Frame, Packet and PublicHeader lengths
2016-05-10 23:40:22 +07:00
Marten Seemann
174095d5aa
make use of shorter PublicHeaders when packing a packet
...
fixes #67
2016-05-10 23:17:04 +07:00
Marten Seemann
7169584ff9
implement sending of shortened packet numbers
2016-05-10 17:25:52 +07:00
Lucas Clemente
14b16a429c
add version number to Frame.Write
2016-05-09 19:50:15 +02:00
Marten Seemann
bb807fa5bd
implement sending of truncated ConnectionIDs
2016-05-06 21:53:21 +07:00
Lucas Clemente
e9ff0768ea
add packetParse.Empty()
2016-05-04 15:22:57 +02:00
Marten Seemann
a19933d51f
don't send packets containing only a StopWaitingFrame
...
fixes #41
2016-05-03 14:40:45 +07:00
Marten Seemann
74f7576391
implement a StopWaitingManager
...
fixes #30
2016-04-29 16:58:30 +07:00
Marten Seemann
6a7f331269
implement a StreamFrame Queue to handle high priority StreamFrames for retransmission
...
fixes #21
2016-04-27 21:05:58 +07:00
Marten Seemann
67a36870ea
check for maximum packet size when packing control frames
2016-04-27 11:40:20 +07:00
Marten Seemann
3f6b228d07
fix splitting of StreamFrames in PacketPacker
2016-04-27 10:09:54 +07:00
Marten Seemann
e4fc732d37
only increase packet number in PacketPacker when actually sending a packet
2016-04-27 09:46:13 +07:00
Lucas Clemente
5d8293716e
add includeStreamFrames option to PacketPacker
2016-04-26 19:04:42 +02:00
Marten Seemann
8339f210cb
handle control frames and Stream frames separately in PacketPacker
2016-04-26 23:30:43 +07:00
Marten Seemann
a962c63642
don't queue ACK frames
2016-04-26 22:46:39 +07:00
Marten Seemann
4659bf7acb
store the payload of sent packets as a slice of Frames
2016-04-26 20:35:30 +07:00