opnsense-src/sys/net/route
Alexander V. Chernikov ee2cf2b360 Implement better rebuild-delay fib algo policy.
The intent is to better handle time intervals with large amount of RIB
updates (e.g. BGP peer going up or down), while still keeping low sync
delay for the rest scenarios.

The implementation is the following: updates are bucketed into the
buckets of size 50ms. If the number of updates within a current bucket
 exceeds the threshold of 500 routes/sec (e.g. 10 updates per bucket
interval), the update is delayed for another 50ms. This can be repeated
 until the maximum update delay (1 sec) is reached.

All 3 variables are runtime tunables:

* net.route.algo.fib_max_sync_delay_ms: 1000
* net.route.algo.bucket_change_threshold_rate: 500
* net.route.algo.bucket_time_ms: 50

Differential Review:	https://reviews.freebsd.org/D29588
MFC after:		2 weeks
2021-04-09 21:33:03 +01:00
..
fib_algo.c Implement better rebuild-delay fib algo policy. 2021-04-09 21:33:03 +01:00
fib_algo.h Add modular fib lookup framework. 2020-12-25 11:33:17 +00:00
mpath_ctl.c Implement flowid calculation for outbound connections to balance 2020-10-18 17:15:47 +00:00
nhgrp.c Rename variables inside nexhtop group consider_resize() code. 2021-03-29 23:06:13 +00:00
nhgrp_ctl.c Fix typo in the 9fa8d1582b. 2021-03-29 23:42:48 +00:00
nhgrp_var.h Introduce scalable route multipath. 2020-10-03 10:47:17 +00:00
nhop.c Introduce scalable route multipath. 2020-10-03 10:47:17 +00:00
nhop.h Remove now-unused RT_GATEWAY* definitions. 2021-01-04 21:45:46 +00:00
nhop_ctl.c Simplify ifa/ifp refcounting in the routing stack. 2021-02-22 23:37:59 +00:00
nhop_utils.c Remove unused nhop_ref_any() function. 2020-09-20 21:32:52 +00:00
nhop_utils.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
nhop_var.h Fix route flags update during RTM_CHANGE. 2020-10-04 13:24:58 +00:00
route_ctl.c Fix !VNET build broken by 66f138563b. 2021-03-25 00:31:08 +00:00
route_ctl.h Fix the design problem with delayed algorithm sync. 2021-01-30 23:25:57 +00:00
route_ddb.c Rename rt_flags to rte_flags && reduce number of rt_nhop accesses. 2020-08-22 19:30:56 +00:00
route_helpers.c Fix the design problem with delayed algorithm sync. 2021-01-30 23:25:57 +00:00
route_ifaddrs.c Simplify ifa/ifp refcounting in the routing stack. 2021-02-22 23:37:59 +00:00
route_tables.c Add modular fib lookup framework. 2020-12-25 11:33:17 +00:00
route_temporal.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
route_var.h Refactor rt_addrmsg() and rt_routemsg(). 2021-01-07 19:38:19 +00:00