On Mon, Feb 13, 2023 at 04:20:00PM +0100, Theo Buehler wrote: > On Mon, Feb 13, 2023 at 02:33:05PM +0100, Claudio Jeker wrote: > > Instead of passing the rib and new and old best prefix just pass the > > rib_entry to rde_generate_updates(). This simplifies a few things down > > that rabbit hole. This is also a step towards decoupling prefix_evaluate() > > and the Loc-RIB from rde_generate_updates() and the Adj-RIB-Out > > processing. > > > > Since the rib_entry is passed there is now always a valid prefix pointer > > in re->prefix and a lot of the if (new) else if (old) cascades can be > > simplified a lot. > > Very nice. > > > There is a trivial fix requried in the regress test, that I have ready but > > did not share here. > > thanks > > ok, just a small comment below > > > -- > > :wq Claudio > > > > Index: rde.c > > =================================================================== > > RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v > > retrieving revision 1.592 > > diff -u -p -r1.592 rde.c > > --- rde.c 9 Feb 2023 13:43:23 -0000 1.592 > > +++ rde.c 13 Feb 2023 11:14:18 -0000 > > @@ -3888,14 +3888,13 @@ rde_softreconfig_in(struct rib_entry *re > > static void > > rde_softreconfig_out(struct rib_entry *re, void *arg) > > { > > - struct rib *rib = arg; > > struct prefix *p; > > > > if ((p = prefix_best(re)) == NULL) > > /* no valid path for prefix */ > > return; > > > > - rde_generate_updates(rib, p, NULL, NULL, NULL, EVAL_RECONF); > > + rde_generate_updates(re, NULL, NULL, EVAL_RECONF); > > Unless you want to use p in a follow-up diff, I suggest you garbage > collect it.
Good point. I removed it. -- :wq Claudio