Commit graph

296 commits

Author SHA1 Message Date
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
Marten Seemann
3f86e0f198 dequeue all retransmission when sending a packet 2016-06-06 12:04:02 +07:00
Lucas Clemente
240946dfde replace version number literals with constants to make grepping easier 2016-06-03 11:09:48 +02: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
d906492ae7 don't retransmit a packet after receiving a belated ACK
fixes #139
2016-05-27 18:36:28 +07:00
Marten Seemann
26d18976ff implement round-robin scheduling in StreamFrameQueue
fixes #148
2016-05-27 13:38:39 +07:00
Lucas Clemente
d4a189b2d1 refactor timer calculation in sesssion to reduce syscalls 2016-05-24 17:42:47 +02:00
Marten Seemann
e2254f1bbd limit number of packets stored in SentPacketHandler
fixes #140
2016-05-24 16:06:48 +07:00
Marten Seemann
931687e9a4 better function name in SentPacketHandler 2016-05-24 15:39:48 +07: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
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
Lucas Clemente
4822def788 implement timeout-based retransmission (RTO)
fixes #56
2016-05-18 23:21:33 +02:00
Lucas Clemente
a0228a9049 move congestion control from session to ackhandler
this simplifies things a bit, especially in prep for #56
2016-05-18 19:35:31 +02:00
Marten Seemann
089582dd9f improve sending of WindowUpdate frames
fixes #96
2016-05-15 18:05:15 +07:00
Marten Seemann
540941117e cosmetic changes in tests 2016-05-15 13:08:56 +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
f8dc78967a add method to ask SendPacketHandler if any retransmissions queued 2016-05-13 12:56:58 +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
4c087c48e4 send shorter offsets in StreamFrames
fixes #75
2016-05-11 10:01:26 +07:00
Marten Seemann
9a99df48a6 send shorter StreamIDs
fixes #74
2016-05-11 01:00:28 +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
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
Marten Seemann
eada642cc1 make PacketPacker assemble frames to pack into a Packet 2016-04-26 20:19:09 +07:00
Marten Seemann
f2eafb7179 pass packet number and packet number length to frames.Write 2016-04-25 11:34:18 +07:00
Lucas Clemente
3b2d0efea5 simplify session by moving packet packing to separate class 2016-04-21 13:48:41 +02:00