Commit graph

173 commits

Author SHA1 Message Date
Stephen Birarda
d5e77ba907 clear the pending received messages on handshake receive 2015-08-25 18:26:30 -07:00
Stephen Birarda
0ce8e05f19 reset the receiver's state on handshake 2015-08-25 18:01:37 -07:00
Stephen Birarda
82f5e2e04f skip processing of control packets before handshake 2015-08-25 17:26:25 -07:00
Stephen Birarda
83d76084f1 don't process packets in Connection without handshake 2015-08-25 17:14:41 -07:00
Stephen Birarda
cabdee8391 send a handshake before first packet send 2015-08-25 17:12:03 -07:00
Stephen Birarda
74d6e5ba89 make sure LNL goes down before domain-server 2015-08-20 10:01:12 -07:00
Ryan Huffman
9c65849037 Add ordered sending to Socket and Connection 2015-08-18 23:04:32 -07:00
Stephen Birarda
426a8909e1 wait on the SendQueue thread in Connection 2015-08-18 09:40:13 -07:00
Stephen Birarda
f039851f13 remove std namespacing from Connection 2015-08-17 16:57:42 -07:00
Stephen Birarda
8c22627f32 fix a typo in comment 2015-08-17 16:07:29 -07:00
Stephen Birarda
ec82e65aec comment flow window size changes for light ACK 2015-08-17 16:07:07 -07:00
Stephen Birarda
42b5b37b96 force timeout NAK to fit MTU 2015-08-17 15:47:43 -07:00
Stephen Birarda
d9254aa2e9 remove comment that won't come into play until ordering 2015-08-10 10:14:50 -07:00
Stephen Birarda
eb17ddc04f fix capitalization of RTO for CongestionControl 2015-08-10 10:13:53 -07:00
Atlante45
01749ad0de TimeoutNAK fixes 2015-08-04 15:07:04 -07:00
Stephen Birarda
3d0c71d95c remove a double on arrival time record 2015-08-04 12:29:22 -07:00
Stephen Birarda
a10746a448 set the max window size, correct a typo 2015-08-03 19:12:39 -07:00
Atlante45
40520c204f Stats improvement 2015-08-03 17:39:09 -07:00
Atlante45
99fcb08fd1 Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-08-03 17:15:12 -07:00
Atlante45
c0852f0eb2 Remove call to has pending datagrams 2015-08-03 17:14:42 -07:00
Stephen Birarda
36a0ef50d4 add assert for BasePacket write, fix time in Connection 2015-08-03 16:21:17 -07:00
Stephen Birarda
acd7a7a732 fix send/process for ACK packets 2015-08-03 16:04:08 -07:00
Stephen Birarda
b5ec02bd01 go back to previous PacketTimeWindow code 2015-08-03 15:36:08 -07:00
Stephen Birarda
d937cf1cc7 set RTT on congestion control in ctor 2015-08-03 15:05:41 -07:00
Stephen Birarda
62d4467f41 use a vector for events in ConnectionStats 2015-08-03 12:09:25 -07:00
Stephen Birarda
bc5ddd3837 send a light ACK every 64, not each after 64 2015-07-31 20:12:48 -07:00
Stephen Birarda
7f8c993bd7 make send rate actually send rate, don't sync as sender 2015-07-31 19:42:27 -07:00
Stephen Birarda
74a2d985eb tell the send queue about ACKs on light ACK 2015-07-31 19:17:02 -07:00
Atlante45
29b3051aeb Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-31 18:39:52 -07:00
Atlante45
ca342fb3b4 Fix std::find_if 2015-07-31 18:39:24 -07:00
Stephen Birarda
8bc94454b4 pre-increment the _currentACKSubSequenceNumber 2015-07-31 18:39:09 -07:00
Atlante45
8f54cd6f7e Fix find_if_not 2015-07-31 18:19:15 -07:00
Stephen Birarda
e74f47b64c use a list of pairs of pairs for ACK2 2015-07-31 18:13:11 -07:00
Atlante45
9537aea5c0 Fix nak timeout packet size 2015-07-31 17:31:30 -07:00
Atlante45
cba51ac63d Fix congestion control 2015-07-31 16:53:43 -07:00
Stephen Birarda
15ce9aabc5 don't assert on moved CC 2015-07-31 16:52:59 -07:00
Stephen Birarda
fa6628e7eb make sure we init CongestionControl 2015-07-31 16:52:09 -07:00
Stephen Birarda
84b8fc9f06 fix casing of onACK method in CC 2015-07-31 16:41:22 -07:00
Stephen Birarda
9b6c8bcf77 update EWMA for delivery rate and bandwidth 2015-07-31 16:37:38 -07:00
Atlante45
f9c8f30083 Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-31 16:16:06 -07:00
Atlante45
7083d84372 Fix ack timestamps 2015-07-31 16:15:21 -07:00
Stephen Birarda
d420bca88e fix for ACK2 sending, output prettier stats 2015-07-31 16:14:33 -07:00
Atlante45
c5b92d319f Update stats gathering 2015-07-31 16:14:19 -07:00
Atlante45
ed614521fd Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-31 15:12:15 -07:00
Stephen Birarda
ce21204151 add output of connection stats in UDTTest 2015-07-31 15:09:30 -07:00
Atlante45
b437f3bca9 Made connection hash hold unique ptr 2015-07-31 10:42:43 -07:00
Atlante45
4f8f9903c2 Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-31 10:18:42 -07:00
Stephen Birarda
98a53cbd72 don't require a sendQueue for control packet sending 2015-07-31 09:56:50 -07:00
Stephen Birarda
f2ab2fb08a start with a congestion window of 16, not 25 grand 2015-07-31 09:36:55 -07:00
Atlante45
e81e1c42b0 Add send queue getter 2015-07-30 18:22:27 -07:00
Stephen Birarda
8e786cb953 repairs while testing with UDTTest 2015-07-30 17:40:51 -07:00
Stephen Birarda
367fa7b07b fixes for assert in Connection and ControlPacket create 2015-07-30 17:20:22 -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
fe48bfdf95 Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-29 17:29:36 -07:00
Stephen Birarda
66c308b436 actually process control and sequence numbers from Socket 2015-07-29 16:48:14 -07:00
Atlante45
116ff17fcf SendQueue auto thread cleanup 2015-07-29 16:38:37 -07:00
Atlante45
313fcea9fb Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-29 16:25:26 -07:00
Atlante45
ce1fc4baa9 Send light acks based on CC member 2015-07-29 16:24:58 -07:00
Stephen Birarda
35f00f9ba1 rename the CC and send queue updater 2015-07-29 16:12:50 -07:00
Stephen Birarda
5fc3e7dbf1 add an updater that takes a lambda for CC update 2015-07-29 16:12:00 -07:00
Atlante45
96dc033de1 Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-29 16:04:23 -07:00
Atlante45
f7f7ff385f Code cleanup 2015-07-29 16:04:13 -07:00
Stephen Birarda
4907418587 update the flow window size for the send queue 2015-07-29 15:53:44 -07:00
Atlante45
8a3c51ef61 Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-29 15:45:24 -07:00
Atlante45
785d14f835 Cleanup sendACK 2015-07-29 15:43:44 -07:00
Stephen Birarda
55555cf13e setup default for RTT, RTT variance, _synInterval 2015-07-29 15:28:20 -07:00
Atlante45
5236abe561 Connetion record stats/factored send for control packets 2015-07-29 15:18:42 -07:00
Atlante45
236c097853 Bit of code cleanup 2015-07-29 12:30:55 -07:00
Atlante45
abfe434b30 Synchronise SendQueue and CongestionControl 2015-07-29 11:39:33 -07:00
Stephen Birarda
169cb97db5 fix bandwidth and receive rate EWMA in Connection 2015-07-29 11:35:06 -07:00
Stephen Birarda
f65472cbc7 use a double USECS_PER_SECOND in CongestionControl 2015-07-29 11:14:03 -07:00
Stephen Birarda
d344ba5743 add a comment for Connection processTimeoutNAK 2015-07-29 10:56:38 -07:00
Stephen Birarda
94db77155e fix for RTT numerator calculations 2015-07-29 10:55:22 -07:00
Atlante45
18795321d7 Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-28 19:28:03 -07:00
Atlante45
7b3761f07a Implement NAK timeout packets read/write 2015-07-28 19:27:29 -07:00
Stephen Birarda
99f9a4a712 add TODOs for onLoss, handle ACK from packet count 2015-07-28 19:23:38 -07:00
Stephen Birarda
b7d80ca435 remove a TODO that is actually done 2015-07-28 18:22:33 -07:00
Stephen Birarda
43e81420bd add a TODO for processTimeoutNAK 2015-07-28 18:21:32 -07:00
Stephen Birarda
3b7d0ab62a make TODO a TODO 2015-07-28 18:21:00 -07:00
Stephen Birarda
e69cc2aae8 pass const ref LossList to CongestionControl 2015-07-28 18:20:37 -07:00
Stephen Birarda
dc65a2fe1a use user defined RTO for timeout (if defined) 2015-07-28 18:11:21 -07:00
Stephen Birarda
b9b4245dfe NAK interval is in microseconds 2015-07-28 18:05:42 -07:00
Stephen Birarda
cb134f4685 remove onPacketSent and onPacketReceived from CC, use setRTT 2015-07-28 18:04:18 -07:00
Stephen Birarda
0e0968f748 initial support to get CongestionControl down to Connection 2015-07-28 17:58:49 -07:00
Stephen Birarda
988bd226ca change SendQueue timing to use usleep and std::chrono 2015-07-28 17:16:20 -07:00
Stephen Birarda
05d9845077 add counting of total control packets sent/received 2015-07-28 17:01:13 -07:00
Stephen Birarda
74b0fa7e87 use microseconds for intervals, setup timeout NAKs 2015-07-28 16:43:21 -07:00
Stephen Birarda
13568d3d69 add constants for RTT estimation calculations 2015-07-28 15:59:13 -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
b0147144cb fix for comment for PacketTimeWindow 2015-07-28 15:25:08 -07:00
Stephen Birarda
cf30426636 add a PacketTimeWindow to estimate bandwidth and report speed 2015-07-28 15:21:17 -07:00
Stephen Birarda
e3e8219c11 add some comments to help understand the RTT calculation 2015-07-28 14:20:51 -07:00
Stephen Birarda
b6bdcadd33 make updateRTT take an int 2015-07-28 14:02:13 -07:00
Atlante45
8a474ac20a Merge branch 'atp' of https://github.com/birarda/hifi into protocol 2015-07-28 14:01:21 -07:00
Stephen Birarda
c17f4b8991 add a missing bracket, comment for processACK 2015-07-28 13:58:21 -07:00
Atlante45
f0bb71b519 Change Packet read/write fcts 2015-07-28 13:48:20 -07:00
Stephen Birarda
f45b36c9ec resolve conflicts on merge with clement/protocol 2015-07-28 13:40:50 -07:00