Maria Matejka
60267ddeca
Garbage collector for parallel execution
2020-04-30 17:38:30 +02:00
Maria Matejka
2a0d6c32ac
Fix thread local storage support in GCC older than 4.9.
...
Let's hope this will be history soon.
2020-04-30 17:38:30 +02:00
Maria Matejka
5387208e1c
Enforce support for thread local variables and POSIX threads
2020-04-30 17:38:30 +02:00
Maria Matejka
a861727d98
Split route data structure to storage (ro) / manipulation (rw) structures.
...
This should help a lot with keeping the route machinery and allocations
clean. This commit also changes behaviour of rte_update() with cached
rta. Newly, calling rte_update() keeps the number of rta references.
2020-04-30 17:38:30 +02:00
Maria Matejka
0c0253a3a9
Preexport: No route modification, no linpool needed
2020-04-30 16:16:35 +02:00
Maria Matejka
1967fe4fa6
Route: moved rte_src pointer from rta to rte
...
It is an auxiliary key in the routing table, not a route attribute.
2020-04-30 16:15:59 +02:00
Maria Matejka
9d4b30a6b8
Route export: Inlined do_rt_notify() as the split was arbitrary.
2020-04-30 16:15:59 +02:00
Maria Matejka
63f4ccc8c5
Export: More elegant export dispatcher.
...
The previous version was a little bit spooky.
2020-04-30 16:15:59 +02:00
Maria Matejka
52b6e35251
Route export: Common export function.
...
Also:
* Feeding request by net.
* Passing only net_addr in export structure.
* Cleanup of krt_replace_rte() call.
2020-04-30 16:15:59 +02:00
Maria Matejka
e64fd37675
Route export: rejected by filter bitmap
...
If a route has been rejected by filter, store that information
to avoid repeated export filter runs on rejected routes.
2020-04-30 16:15:12 +02:00
Maria Matejka
f2e9c7b285
Route export: dropped tail-execution of do_rt_notify()
2020-04-30 16:15:12 +02:00
Maria Matejka
1f5a3605cf
Route export: passing the export state in a dedicated structure
2020-04-30 16:14:26 +02:00
Maria Matejka
eb5298f3e1
Internal API change: passing all the rt_notify() data as a single structure.
2020-04-30 16:14:26 +02:00
Maria Matejka
a267d569ee
KRT: Using obligatory export table when non-trivial filters are applied.
...
When the kernel filter is anything more sophisticated than FILTER_ACCEPT
or FILTER_REJECT, we should ensure that the old route being sent to the
kernel protocol is really what was sent there before. This fixes the old
misbehavior when an unfiltered old route was used.
2020-04-30 16:14:26 +02:00
Maria Matejka
87fcc2d735
Cleaning up also the rte_same hook which is never set
2020-04-30 16:14:26 +02:00
Maria Matejka
4e7cc6c638
Dropping rte-local dumper entries
2020-04-30 16:14:26 +02:00
Maria Matejka
1eae8266e0
Dropping the tmp_attrs mechanism as obsolete
...
There are no protocol-specific fields in rte now.
2020-04-30 16:14:26 +02:00
Maria Matejka
d4f632da07
Kernel: Convert the rte-local attributes to extended attributes and flags to pflags
2020-04-30 16:14:26 +02:00
Maria Matejka
93c5a314da
Dropping the RTS_DUMMY temporary route storage.
...
Kernel route sync is done by other ways now and this code is not used
currently.
2020-04-30 16:14:26 +02:00
Maria Matejka
adebcd5e0a
Babel: Convert the rte-local attributes to extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
083e0dbb36
OSPF: Convert the rte-local attributes to extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
0bb56d9b1b
RIP: Convert the rte-local attributes to extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
7c3a91cfab
Allow a generic pointer in route extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
6942e20d97
BGP: Moved the suppressed and stale flags to pflags
2020-04-30 16:14:26 +02:00
Maria Matejka
1fd32f9562
Preference moved to RTA and set explicitly in protocols
2020-04-30 16:14:26 +02:00
Maria Matejka
86dbe0980c
Route import API redefinition.
...
Hidden rte_get_temp() into rte_update().
Split rte_update() / rte_withdraw().
2020-04-30 16:14:25 +02:00
Maria Matejka
8c7263d20d
Slab: Init node in slab head to NULLs.
2020-04-28 16:25:14 +02:00
Maria Matejka
ea34ee8576
Timer: Adding missing initializer.
2020-04-28 16:25:14 +02:00
Maria Matejka
9bba24c5a1
Lexer: strtoul shall never set endptr to NULL; it should be an error
2020-04-28 16:25:14 +02:00
Maria Matejka
b5899ad768
Unix socket: Path length check directly before copying the path.
...
This is not needed as the string is always short enough, anyway
it may be needed in future and one strlen during BIRD start is
cheap enough.
2020-04-28 16:25:14 +02:00
Maria Matejka
254881fa61
Lists: Replaced replace_node() by update_node() which is the only use of that function.
2020-04-28 16:25:14 +02:00
Maria Matejka
9de2e19611
Lists: fix a stupid sanitizer bug
2020-04-28 16:25:14 +02:00
Maria Matejka
0227ccd159
Uninitialized list nodes fixes
2020-04-28 16:25:14 +02:00
Maria Matejka
684caacd4f
Nest: Added const to ea_show just to declare that this shouldn't really change anything
2020-04-28 16:25:14 +02:00
Maria Matejka
1115be1264
OSPF: Zero-initialization of a temporary neighbor
2020-04-28 16:25:14 +02:00
Maria Matejka
aaf2ae5613
Nest: Several assumptions to tame the static analyzer
2020-04-28 16:25:14 +02:00
Maria Matejka
2efc73a9a0
Nest: Assumption in rt-show for not-so-intuitive invariant.
2020-04-28 16:25:14 +02:00
Maria Matejka
dfd2e5ee69
Static scanner and expensive debugging setup fix
2020-04-28 16:25:14 +02:00
Maria Matejka
21532cdb14
RPKI: fixed rare va_list leak
2020-04-28 16:25:14 +02:00
Maria Matejka
d9bbfcffdb
Static check: Don't report dead code
2020-04-28 16:25:14 +02:00
Maria Matejka
144ee6cea5
OSPF: Adding a note about a static analyzer result.
2020-04-28 16:25:14 +02:00
Maria Matejka
3c1ac36126
OSPF: variable-length array of size 0 replaced by alloca()'d pointer
...
NULL pointer is safer than a random pointer onto stack if this function
gets changed and eventually broken.
2020-04-28 16:25:14 +02:00
Maria Matejka
7a6493efc7
List expensive check.
2020-04-28 16:25:14 +02:00
Maria Matejka
729823960f
Expensive check declaration
...
Intended to be run at every operation with complex data structures
to check their consistency and validity.
2020-04-28 16:25:14 +02:00
Maria Matejka
b691f99d8d
IPv6 address parser: fail on incomplete addresses
2020-04-28 16:25:14 +02:00
Maria Matejka
f31be45de1
Filter: Don't alloc varargs array if its length would be zero
2020-04-28 16:25:14 +02:00
Maria Matejka
e4d74d8748
Filter: Removed forgotten dead code
2020-04-28 16:25:14 +02:00
Maria Matejka
57e52e8a90
Filter: Additional consistency checks
2020-04-28 16:25:12 +02:00
Maria Matejka
8029ae527e
More assertion categories
2020-04-28 16:21:06 +02:00
Maria Matejka
d607205486
Not calling memcpy with n=0.
2020-04-28 16:21:06 +02:00