Commit Graph
100 Commits
Author SHA1 Message Date
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
Adrien Gallouët c63c94d7c8 Simplify MTU setup and allow big packets
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
2018-03-26 13:03:27 +00:00