On Thu, Jul 21, 2022 at 01:00:19PM +0200, Claudio Jeker wrote:
> rde evaluate all and add-path send do not really work together.
> add-path will evaluate extra paths (if plus is used) and so it implies a
> mode of `rde evaluate all`. I added the exclusion mainly to make it clear
> that the two don't really mix.
>
> After a request from Pier Carlo Chiodi on OpenBGPD-portable I came to the
> conclusion that it should be possible to set both on a peer (in case the
> peer has no add-path then use `rde evaluate all` as fallback).
>
> It is enough to update manpage and remove the check in neighbor_consistent()
ok with me.
> --
> :wq Claudio
>
> Index: bgpd.conf.5
> ===================================================================
> RCS file: /cvs/src/usr.sbin/bgpd/bgpd.conf.5,v
> retrieving revision 1.225
> diff -u -p -r1.225 bgpd.conf.5
> --- bgpd.conf.5 12 Jul 2022 17:49:33 -0000 1.225
> +++ bgpd.conf.5 21 Jul 2022 10:52:54 -0000
> @@ -893,6 +893,11 @@ and
> are equivalent.
> The default is
> .Ic no .
> +If
> +.Ic add-path Ic send
> +is active then the setting of
> +.Ic rde Ic evaluate
> +is ignored.
> .Pp
> .It Xo
> .Ic announce as-4byte
> Index: parse.y
> ===================================================================
> RCS file: /cvs/src/usr.sbin/bgpd/parse.y,v
> retrieving revision 1.432
> diff -u -p -r1.432 parse.y
> --- parse.y 11 Jul 2022 17:08:21 -0000 1.432
> +++ parse.y 21 Jul 2022 10:46:23 -0000
> @@ -4665,14 +4665,6 @@ neighbor_consistent(struct peer *p)
> return (-1);
> }
>
> - /* bail if add-path send and rde evaluate all is used together */
> - if ((p->conf.flags & PEERFLAG_EVALUATE_ALL) &&
> - (p->conf.capabilities.add_path[0] & CAPA_AP_SEND)) {
> - yyerror("neighbors with add-path send cannot use "
> - "'rde evaluate all'");
> - return (-1);
> - }
> -
> return (0);
> }
>
>