Commit graph

135 commits

Author SHA1 Message Date
Stephen Birarda
6a186ad1fe ensure a handshake goes out the first time 2015-09-15 09:48:17 -07:00
Stephen Birarda
84ab4fd585 force minimum for p_hrc time_point values 2015-09-14 17:16:42 -07:00
Stephen Birarda
9b926f6f04 add an hrc with proper resolution for < VC2015 2015-09-14 11:21:08 -07:00
Stephen Birarda
6da388f2af cleanup UDT_CONNECTION_DEBUG, add time for node timeout 2015-09-11 16:38:14 -07:00
Stephen Birarda
6c9021c288 only send second packet of pair when required 2015-09-01 11:10:19 -06:00
Stephen Birarda
8d3788c2b6 Merge branch 'protocol' of github.com:birarda/hifi into control-pair-probe 2015-08-31 17:33:53 -06:00
Stephen Birarda
04d23f6cc2 Merge branch 'timers-from-thread' into atp 2015-08-31 11:50:35 -07:00
Stephen Birarda
de2bfd0d0d some QThread cleanup and fix in Socket 2015-08-31 11:30:31 -07:00
Stephen Birarda
181c8a8b65 handle packet probe when no data available 2015-08-31 10:48:45 -07:00
Stephen Birarda
b81f996366 add network logging to SendQueue, fix ctor order 2015-08-29 14:38:07 -07:00
Stephen Birarda
e67a3e8541 use define to hide verbose connection debugging 2015-08-29 14:36:46 -07:00
Stephen Birarda
71ff855d86 add connection cleanup that respects send/receive 2015-08-29 14:28:24 -07:00
Stephen Birarda
b7d0aa062a repairs to cleanup of send queue 2015-08-28 14:19:20 -07:00
Stephen Birarda
9575b47e4e don't unlock double lock outside conditional 2015-08-28 10:38:15 -07:00
Stephen Birarda
54cd430be9 unlock if double lock succeeds but queues not empty 2015-08-28 10:35:29 -07:00
Stephen Birarda
ac3a1d54b1 don't lock in while for maybeResendPacket 2015-08-28 10:07:01 -07:00
Stephen Birarda
d66375bb09 fix queue timeout for empty queue 2015-08-28 09:54:51 -07:00
Stephen Birarda
577b6bf62f correct the check for flow window size 2015-08-28 09:52:33 -07:00
Stephen Birarda
dcd5a4aec2 address comments in code review 2015-08-28 09:47:25 -07:00
Stephen Birarda
21c80e45c2 guard connection addition by a mutex in Socket 2015-08-28 09:42:52 -07:00
Stephen Birarda
539108dd45 repairs for new timeout code 2015-08-28 09:26:32 -07:00
Stephen Birarda
77aeae7dc0 change to timeout behaviour to re-send unACKed packets 2015-08-28 09:10:06 -07:00
Stephen Birarda
341e27fecc unlock mutexes before calling notify 2015-08-27 22:02:08 -07:00
Stephen Birarda
4039c2e3e0 fix for asset-server naming, deadlock in timeout/wait 2015-08-26 14:27:12 -07:00
Stephen Birarda
d039930ca3 resolve conflicts on merge with clement/protocol 2015-08-26 12:50:13 -07:00
Atlante45
5b5dc94335 Make DoubleLock thread-safe but not self-unlocked 2015-08-26 20:03:04 +02:00
Atlante45
cd8d6df287 Use high_resolution_clock instead of clock 2015-08-26 19:36:18 +02:00
Atlante45
7a5ed24485 typo (I can't spell inactive correctly) 2015-08-26 19:31:33 +02:00
Stephen Birarda
3a918eedca resolve conflicts on merge with upstream master 2015-08-26 10:01:24 -07:00
Atlante45
3184dee10a Emit queueInnactive when flow window is full for too long 2015-08-26 17:49:17 +02:00
Atlante45
373d4b8944 Remove connection from socket when innactive
If innactive for more than 5 seconds, remove it from hash
2015-08-26 15:53:49 +02:00
Stephen Birarda
54f2dc54f6 add a condition_variable wait_until to not lock for handshake 2015-08-25 18:23:50 -07:00
Stephen Birarda
82f5e2e04f skip processing of control packets before handshake 2015-08-25 17:26:25 -07:00
Stephen Birarda
cabdee8391 send a handshake before first packet send 2015-08-25 17:12:03 -07:00
Stephen Birarda
f7799bcf8f add TODO for settings fail, cleanup 2015-08-24 17:02:47 -07:00
Stephen Birarda
e84595af49 add a wait condition for empty queue and loss list 2015-08-24 17:02:40 -07:00
Ryan Huffman
121d3a77ad Fix iterator usage in SendQueue 2015-08-19 11:27:31 -07:00
Ryan Huffman
fc29297d87 Update SendQueue::queuePacketList to use splice 2015-08-19 10:55:26 -07:00
Ryan Huffman
92dadb437c Replace magic number '30' for number of bits in message number 2015-08-18 23:15:47 -07:00
Ryan Huffman
5cb028cf43 Add support for PacketList to SendQueue 2015-08-18 23:05:07 -07:00
Stephen Birarda
fe100695f0 rename dest to destination for SendQueue 2015-08-17 16:29:21 -07:00
Stephen Birarda
feddb613e2 add comments, use scoped locker in SendQueue 2015-08-17 16:28:33 -07:00
Atlante45
a1bd558d71 Safe locks 2015-08-03 14:39:51 -07:00
Stephen Birarda
20f33b3b64 fix sendqueue sleep timing to use microseconds 2015-08-03 14:34:12 -07:00
Stephen Birarda
0c44fc53de fix for process of timeout NAKs 2015-07-31 19:45:43 -07:00
Stephen Birarda
7f8c993bd7 make send rate actually send rate, don't sync as sender 2015-07-31 19:42:27 -07:00
Atlante45
c5b92d319f Update stats gathering 2015-07-31 16:14:19 -07:00
Atlante45
fcec53bdce Fix sequence number crash 2015-07-31 15:09:58 -07:00
Stephen Birarda
e346dbcfee seqlen fix in SendQueue 2015-07-31 10:59:06 -07:00
Stephen Birarda
50c0b59ba2 handle priority of re-transmission of loss 2015-07-31 10:46:52 -07:00
Stephen Birarda
98a53cbd72 don't require a sendQueue for control packet sending 2015-07-31 09:56:50 -07:00
Stephen Birarda
6c4a36fb7f lock then check size 2015-07-30 18:22:43 -07:00
Stephen Birarda
a38e7b0431 cleanup SendQueue start and UDTTest bind 2015-07-30 17:59:27 -07:00
Stephen Birarda
8e786cb953 repairs while testing with UDTTest 2015-07-30 17:40:51 -07:00
Stephen Birarda
1724e3c632 fix a couple of bugs in SendQueue 2015-07-30 17:17:03 -07:00
Stephen Birarda
d340515ab3 complete the initial version of UDTTest 2015-07-30 17:09:25 -07:00
Stephen Birarda
e7f5bec3d0 take out the incorrect attempt to cast for bitwise 2015-07-30 10:30:14 -07:00
Stephen Birarda
57025cff74 fix packet pair sending from SendQueue 2015-07-30 10:20:09 -07:00
Atlante45
b8085086c6 HifiSockAddr have object names 2015-07-29 17:28:37 -07:00
Atlante45
116ff17fcf SendQueue auto thread cleanup 2015-07-29 16:38:37 -07:00
Stephen Birarda
4907418587 update the flow window size for the send queue 2015-07-29 15:53:44 -07:00
Atlante45
2cdaea4e73 Remove LossList::read method and add clear 2015-07-29 11:09:39 -07:00
Atlante45
7b3761f07a Implement NAK timeout packets read/write 2015-07-28 19:27:29 -07:00
Atlante45
b10396a169 Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-28 18:13:02 -07:00
Atlante45
b5b7fa8504 SendQueue uses LossList 2015-07-28 18:08:02 -07:00
Stephen Birarda
988bd226ca change SendQueue timing to use usleep and std::chrono 2015-07-28 17:16:20 -07:00
Atlante45
64e1281d47 Restore const, make helper memebers mutable 2015-07-28 16:02:33 -07:00
Atlante45
121b9738a1 Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-28 15:33:42 -07:00
Atlante45
24520c5856 LNL send cleanup / Added connection hash 2015-07-28 15:32:00 -07:00
Stephen Birarda
cf30426636 add a PacketTimeWindow to estimate bandwidth and report speed 2015-07-28 15:21:17 -07:00
Atlante45
f53637f19e Added SendQueue::getNextSeqNum 2015-07-28 14:16:09 -07:00
Atlante45
ca99699674 Implement Packet::setSequenceNumber 2015-07-28 14:00:59 -07:00
Stephen Birarda
f885fbad8c remove sequence numbers from _naks in SendQueue 2015-07-28 13:49:11 -07:00
Stephen Birarda
00fdcf3133 fix a comment that reference SequenceNumber 2015-07-28 13:44:26 -07:00
Stephen Birarda
606356cdcf rename SeqNum to SequenceNumber 2015-07-28 13:39:19 -07:00
Stephen Birarda
45f6a984af add a comment to SendQueue ack 2015-07-28 13:28:58 -07:00
Stephen Birarda
a8371cc3ed send the actual sequence number being ACKed 2015-07-28 13:28:01 -07:00
Stephen Birarda
c7ae4d5e59 implement more of processACK in Connection 2015-07-28 11:47:57 -07:00
Stephen Birarda
90d2515674 add methods to send ACKs from Connection 2015-07-27 16:43:49 -07:00
Atlante45
2b29f5c130 More work on Connnections 2015-07-27 15:57:41 -07:00
Atlante45
f520caa5fe Connection class draft 2015-07-27 12:06:27 -07:00
Atlante45
f06d21691d Added ACKs removal from sent list 2015-07-24 15:33:42 -07:00
Atlante45
e330727e36 Added NAK resend 2015-07-24 15:24:40 -07:00
Atlante45
da93301ac6 More work on SendQueue (Threading) 2015-07-24 14:33:40 -07:00
Atlante45
dce1fc6855 SendQueue first draft 2015-07-23 11:18:52 -07:00