]> git.ipfire.org Git - thirdparty/bird.git/commit
Nest: Fix several issues with pflags
authorOndrej Zajicek <santiago@crfreenet.org>
Sun, 1 Jan 2023 19:10:23 +0000 (20:10 +0100)
committerIgor Putovny <igor.putovny@nic.cz>
Thu, 30 May 2024 10:29:59 +0000 (12:29 +0200)
commit42eb4a197237203a4c1fb26ed976857e7a0ce36e
treeb18f1d221725502cb9c4804633a740c2537b4b39
parentf41fed59e18abcd16aa594ccdacecbd843c7b85b
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
nest/rt-dev.c
nest/rt-table.c
proto/babel/babel.c
proto/bgp/packets.c
proto/perf/perf.c
proto/pipe/pipe.c
proto/rpki/rpki.c
proto/static/static.c