Adrien Gallouët
7179de77da
Small useless opt
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-12-17 16:08:25 +00:00
Adrien Gallouët
e6a8c8e013
Compute loss with packets (not bytes)
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-12-17 14:03:59 +00:00
Adrien Gallouët
137971e957
Apply TC on all packets
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-12-16 15:59:34 +00:00
Adrien Gallouët
9abb50a7e2
Clear path->msg on reset
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-12-16 10:40:11 +00:00
Adrien Gallouët
2766a94e3b
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-12-16 09:43:36 +00:00
Adrien Gallouët
c420e9494a
First draft on the new protocol
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-12-15 21:30:44 +00:00
Adrien Gallouët
407db114c6
Use mem*() when touching sin{,6}_port
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-12-12 09:50:04 +00:00
Adrien Gallouët
0537b01d4b
This commit doesn't exist
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-11-19 11:56:36 +00:00
Adrien Gallouët
79dc61e7dc
Decrease rate instead of degrading the path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-11-05 17:52:18 +00:00
Adrien Gallouët
67a660117e
Setup rate_max
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-11-05 10:43:00 +00:00
Adrien Gallouët
831714e07f
Force update after mud_reset_path()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-11-04 15:01:31 +00:00
Adrien Gallouët
f047af8148
Remove useless call to mud_reset_path()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-11-04 15:00:37 +00:00
Adrien Gallouët
8948d00545
Reorder
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-11-04 15:00:03 +00:00
Adrien Gallouët
2e8a13f135
Clear deleted paths
...
This should fix #5
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-11-04 13:50:02 +00:00
Adrien Gallouët
f647519e1c
Take the time to check loss before enabling a path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-23 14:15:33 +00:00
Adrien Gallouët
94ae912138
Update mud.h
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-23 13:28:27 +00:00
Adrien Gallouët
e3b56376dc
Naively degrade path with loss > loss_limit
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-22 15:54:48 +00:00
Adrien Gallouët
8c88934763
Update aegis256
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-22 13:12:27 +00:00
Adrien Gallouët
d0dc6076c8
Add mud_get_bad()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-15 14:11:07 +00:00
Adrien Gallouët
842dadad94
Call unmapv4 only when it is necessary
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-15 12:21:38 +00:00
Adrien Gallouët
d086d7869d
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-14 13:50:03 +00:00
Adrien Gallouët
d4d97177eb
Fix test.c
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-14 13:50:03 +00:00
Adrien Gallouët
7254e15a02
Update aegis256
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-08 08:51:09 +00:00
Adrien Gallouët
ee4b484a38
Get loss_rx from peer
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-07 14:01:27 +00:00
Adrien Gallouët
9a378aea99
Update aegis256
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-05 15:21:07 +00:00
Adrien Gallouët
3db88eb23c
Add .gitignore
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-05 15:15:40 +00:00
Adrien Gallouët
c4d2ef7d97
Add a simple test.c with a Makefile
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-05 14:36:31 +00:00
Adrien Gallouët
00f18733d8
Compute loss for each path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-10-05 09:46:14 +00:00
Adrien Gallouët
4d14689ff1
Update aegis256
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-09-24 09:56:57 +00:00
Adrien Gallouët
027196026b
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-09-20 08:19:43 +00:00
Adrien Gallouët
b59ab48407
Update rate every ms
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-09-19 08:12:26 +00:00
Adrien Gallouët
181e22011d
Update README.md
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-09-17 08:28:16 +00:00
Adrien Gallouët
0397bc63e7
Import and use aegis256
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-09-17 08:21:25 +00:00
Adrien Gallouët
a6befda070
Use CLOCK_REALTIME if available
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-09-17 08:07:56 +00:00
Adrien Gallouët
5aeaf9e512
Revert "Block on sendmsg() for now"
...
This reverts commit 2c9d971437 .
2019-09-16 10:37:19 +00:00
Adrien Gallouët
2c9d971437
Block on sendmsg() for now
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-09-09 16:08:21 +00:00
Adrien Gallouët
6623be1e69
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-09-03 16:56:21 +00:00
Adrien Gallouët
67a7c91220
Remove old code
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-07-22 13:07:50 +00:00
Adrien Gallouët
a91f8e2971
DEGRADED/DOWN paths are useless server side
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-07-19 13:20:26 +00:00
Adrien Gallouët
b2ff2b6276
Use an adjusted monotonic clock
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-07-19 12:55:55 +00:00
Adrien Gallouët
0ae6656bdb
Remove down paths after 10s of inactivity
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-07-17 14:59:28 +00:00
Adrien Gallouët
14893f9ea9
Move MUD_PATH_MAX in mud.h
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-07-17 14:29:08 +00:00
Adrien Gallouët
06e165e664
Explicit conversions
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-04-03 09:25:22 +00:00
Adrien Gallouët
a2106c248d
Remove useless code
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-04-01 15:37:28 +00:00
Adrien Gallouët
7a5bb0690e
Remove mud_sync()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-03-09 15:03:47 +00:00
Adrien Gallouët
f67a5b4fed
Don't wake up without paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-03-09 14:37:32 +00:00
Adrien Gallouët
eab4cdb1ad
Update LICENSE
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-03-05 21:56:07 +00:00
Adrien Gallouët
bb60f5f15f
Merge MTU probing with failover
...
This commit also fixes MTU probing in some corner cases.
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-03-05 11:05:36 +00:00
Adrien Gallouët
adf3bf6710
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-02-15 19:31:08 +00:00
Adrien Gallouët
bf75ac9cd9
One sec failover
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-02-15 19:29:00 +00:00
Adrien Gallouët
cef20db3c7
Correctly handle high latency paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-02-15 17:27:50 +00:00
Adrien Gallouët
40983ee4f1
Compute path->ok both sides
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-02-15 09:35:24 +00:00
Adrien Gallouët
9eac498d81
Rework failover with new proto
...
New proto totally destroy old failover.
This is a hack to improve the current situation waiting
for a better solution.
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-02-10 21:14:20 +00:00
Adrien Gallouët
0b1793a93f
Update mud->window when updating path->window
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-02-10 16:11:32 +00:00
Adrien Gallouët
5f86acee91
Fix build
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-02-09 16:17:07 +00:00
Adrien Gallouët
e47db2ea47
Use new proto (with static rate) and cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2019-02-09 15:58:29 +00:00
Adrien Gallouët
4030b4370b
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-02 15:56:18 +00:00
Adrien Gallouët
72019786eb
Update path->window directly
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-02 09:32:33 +00:00
Adrien Gallouët
b732cb1b69
Skip down paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-02 08:27:41 +00:00
Adrien Gallouët
00c30c4fdf
Remove mud->send_timeout
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 15:04:17 +00:00
Adrien Gallouët
1d4b06abda
Boost boost
2018-12-01 15:01:41 +00:00
Adrien Gallouët
d74228e4a9
Be more aggressive about stats
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 11:22:49 +00:00
Adrien Gallouët
be5020cbae
Rename mud_value to mud_stat
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 11:20:17 +00:00
Adrien Gallouët
6494b95700
Add a boost factor to estimate send.ratemax
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 11:17:39 +00:00
Adrien Gallouët
ff0c10b66c
Send dt directly instead of sending lat/latmin
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-12-01 11:11:43 +00:00
Adrien Gallouët
79688de09e
Use lowbw scheduler and clean old unused stuff
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-11-29 22:21:07 +00:00
Adrien Gallouët
b5289a8472
Re-estimate latmin when rate is low
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-11-09 17:57:11 +00:00
Adrien Gallouët
ff55d6a173
New scheduler and cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-11-08 17:40:38 +00:00
Adrien Gallouët
ccaac70a04
Simplify rate as MUD_STAT_TIMEOUT is const
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-11-05 11:14:43 +00:00
Adrien Gallouët
7f5c063ffb
Allow bad use of mud_get_fd()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-10-21 08:37:53 +00:00
Adrien Gallouët
1e7e8722ee
Compute map directly
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-10-18 08:15:31 +00:00
Adrien Gallouët
2dd31a5f96
Trust compilers and cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-10-09 16:55:42 +00:00
Adrien Gallouët
5b9b3d5709
Remove duplicated checks
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-08-16 12:58:46 +00:00
Adrien Gallouët
22e065e5cb
Add mud_sync()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-06-15 10:05:42 +00:00
Adrien Gallouët
03be90b606
Update mud.h
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-06-05 13:56:15 +00:00
Adrien Gallouët
6ebda9368c
Add mud_get_sync_elapsed_msec()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-06-03 18:00:17 +00:00
Adrien Gallouët
964672adb5
Be nice with old good path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-05-05 19:34:52 +00:00
Adrien Gallouët
1988ee1d78
Rework internal proto
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-05-05 12:54:22 +00:00
Adrien Gallouët
3668a2f9af
Don't send packets to DOWN paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-05-05 12:50:31 +00:00
Adrien Gallouët
db7f48890a
Fix mud_update_map()
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-05-05 12:49:53 +00:00
Adrien Gallouët
c8d949733a
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-27 15:29:42 +00:00
Adrien Gallouët
81afe325f6
Update ratemax softly
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-26 20:20:28 +00:00
Adrien Gallouët
04fc9b2894
Force update when creating a new path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-25 20:58:18 +00:00
Adrien Gallouët
d896f9ff3c
Don't touch a path if we don't have to
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-25 20:54:33 +00:00
Adrien Gallouët
c8b07c6edb
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-25 20:52:39 +00:00
Adrien Gallouët
9f38b7b6e0
Compute a pseudo ratevar to help bw probing
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-25 09:10:01 +00:00
Adrien Gallouët
ba9bef6268
Add a new rate based scheduler
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-23 20:52:31 +00:00
Adrien Gallouët
b2e4bc1b8f
Compute latency-smoothed maximum rate
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-21 12:25:52 +00:00
Adrien Gallouët
a7044db87c
Compute rate
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-18 16:35:27 +00:00
Adrien Gallouët
8e2b35525c
Remove MUD_EPOCH and compute durations modulo 2^48
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-18 09:54:52 +00:00
Adrien Gallouët
875533a65f
Recover lost connection slightly faster
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-07 16:43:46 +00:00
Adrien Gallouët
1f25f12e4a
Compute rttvar for the next voip scheduler
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-06 16:46:09 +00:00
Adrien Gallouët
7fde67f3d3
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-06 10:11:00 +00:00
Adrien Gallouët
2f304c1afc
Set state to MUD_UP by default
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-05 15:52:29 +00:00
Adrien Gallouët
e0d7494a71
Don't inline
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-05 09:07:28 +00:00
Adrien Gallouët
1e9bb89764
Code cleanup
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-04 08:58:10 +00:00
Adrien Gallouët
e7851fa29d
Compute RTT for each internal packet
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-04 08:52:01 +00:00
Adrien Gallouët
0c11ce5785
Add number of packets per path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-03 09:02:02 +00:00
Adrien Gallouët
6d5738b931
Don't try to send something without path
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-02 08:50:42 +00:00
Adrien Gallouët
dcfaca04a5
Limit number of paths
...
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr >
2018-04-02 08:44:59 +00:00