Commit Graph

297 Commits

Author SHA1 Message Date
Adrien Gallouët
21b15727c5 Don't wait unnecessarily to compute RTT
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
2019-12-23 10:57:50 +00:00
Adrien Gallouët
569e712248 Probe MTU before sending real packets
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
2019-12-22 01:46:12 +00:00
Adrien Gallouët
8c033a12a1 Fix build
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
2019-12-17 19:47:25 +00:00
Adrien Gallouët
6b58ebb993 Code cleanup
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
2019-12-17 16:12:16 +00:00
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
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
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
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
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
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
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
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