0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 17:51:53 +00:00
Commit Graph

3639 Commits

Author SHA1 Message Date
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
Maria Matejka
124d860f64 Filter: fixed omitted overflow check in EC constructor 2020-04-28 16:21:06 +02:00