On Thu, Mar 03, 2022 at 12:34:38PM +0100, Claudio Jeker wrote:
> Another day another cleanup.
> 
> This diff moves rde_send_kroute() out of rde_generate_update() and back
> into prefix_evaluate(). rde_generate_update() should only track the RIBs.
> rde_generate_update() is mainly called from prefix_evaluate().
> The only other caller is in rde_softreconfig_sync_reeval() to clear a RIB
> that switched to F_RIB_NOEVALUATE. In this case the reload code already
> flushed the FIB earlier so no need to call rde_send_kroute().
>
> While there cleanup some more code. Don't need an extra bgpd addr just use
> the kr.prefix in the pt_getaddr call. Skip setting flags and rtlabel for
> IMSG_KROUTE_DELETE, only the prefix & prefixlen are needed there.
> Also cache the rib in prefix_evaluate() to skip some extra function calls.

Since rde_send_kroute() is now called from rde_decide.c,
unittests/rde_decide_test.c needs a shim like the below to link. 

With that ok

Index: rde_decide_test.c
===================================================================
RCS file: /cvs/src/regress/usr.sbin/bgpd/unittests/rde_decide_test.c,v
retrieving revision 1.7
diff -u -p -r1.7 rde_decide_test.c
--- rde_decide_test.c   7 Feb 2022 09:31:21 -0000       1.7
+++ rde_decide_test.c   3 Mar 2022 12:25:57 -0000
@@ -369,6 +369,12 @@ rde_generate_updates(struct rib *rib, st
        /* maybe we want to do something here */
 }
 
+void
+rde_send_kroute(struct rib *rib, struct prefix *new, struct prefix *old)
+{
+       /* nothing */
+}
+
 __dead void
 fatalx(const char *emsg, ...)
 {

Reply via email to