diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2023-01-01 20:10:23 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2023-01-01 20:10:23 +0100 |
commit | 6d1ae197d189d50e60279796441c6e74272ddc54 (patch) | |
tree | 15ee0c85132678db20042b9d07d75a412da93031 /nest/rt-dev.c | |
parent | 8b06a4d8af46511f0f8dbb8905afa88590a831b6 (diff) |
Nest: Fix several issues with pflags
There were some confusion about validity and usage of pflags, which
caused incorrect usage after some flags from (now removed) protocol-
specific area were moved to pflags.
We state that pflags:
- Are secondary data used by protocol-specific hooks
- Can be changed on an existing route (in contrast to copy-on-write
for primary data)
- Are irrelevant for propagation (not propagated when changed)
- Are specific to a routing table (not propagated by pipe)
The patch did these fixes:
- Do not compare pflags in rte_same(), as they may keep cached values
like BGP_REF_STALE, causing spurious propagation.
- Initialize pflags to zero in rte_get_temp(), avoid initialization in
protocol code, fixing at least two forgotten initializations (krt
and one case in babel).
- Improve documentation about pflags
Diffstat (limited to 'nest/rt-dev.c')
-rw-r--r-- | nest/rt-dev.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/nest/rt-dev.c b/nest/rt-dev.c index 05e64fc3..7932b8b7 100644 --- a/nest/rt-dev.c +++ b/nest/rt-dev.c @@ -92,7 +92,6 @@ dev_ifa_notify(struct proto *P, uint flags, struct ifa *ad) a = rta_lookup(&a0); e = rte_get_temp(a, src); - e->pflags = 0; rte_update2(c, net, e, src); } } |