On Mon, Mar 13, 2023 at 06:07:23PM +0100, Claudio Jeker wrote: > Add the plumbing in bgplgd to allow for leaked and invalid show rib > options.
Sure > > -- > :wq Claudio > > Index: bgplgd.h > =================================================================== > RCS file: /cvs/src/usr.sbin/bgplgd/bgplgd.h,v > retrieving revision 1.2 > diff -u -p -r1.2 bgplgd.h > --- bgplgd.h 3 Feb 2023 10:10:36 -0000 1.2 > +++ bgplgd.h 13 Mar 2023 17:01:16 -0000 > @@ -30,7 +30,9 @@ > #define QS_SHORTER 13 > #define QS_ERROR 14 > #define QS_AVS 15 > -#define QS_MAX 16 > +#define QS_INVALID 16 > +#define QS_LEAKED 17 > +#define QS_MAX 18 > > /* too add: empty-as, in, out, peer-as, source-as, transit-as */ > > @@ -41,7 +43,8 @@ > (1 << QS_EXTCOMMUNITY) | (1 << QS_LARGECOMMUNITY) | \ > (1 << QS_AF) | (1 << QS_RIB) | (1 << QS_OVS) | \ > (1 << QS_BEST) | (1 << QS_ALL) | (1 << QS_SHORTER) | \ > - (1 << QS_ERROR) | (1 << QS_AVS)) > + (1 << QS_ERROR) | (1 << QS_AVS) | (1 << QS_INVALID) | \ > + (1 << QS_LEAKED)) > > struct cmd; > struct lg_ctx { > Index: qs.c > =================================================================== > RCS file: /cvs/src/usr.sbin/bgplgd/qs.c,v > retrieving revision 1.3 > diff -u -p -r1.3 qs.c > --- qs.c 3 Feb 2023 10:10:36 -0000 1.3 > +++ qs.c 13 Mar 2023 17:03:38 -0000 > @@ -55,6 +55,8 @@ const struct qs { > { QS_SHORTER, "or-shorter", ONE }, > { QS_ERROR, "error", ONE }, > { QS_AVS, "avs", AVS }, > + { QS_INVALID, "invalid", ONE }, > + { QS_LEAKED, "leaked", ONE }, > { 0, NULL } > }; > > @@ -380,13 +382,19 @@ qs_argv(char **argv, size_t argc, size_t > if (argc < len) > argv[argc++] = ctx->qs_args[QS_AVS].string; > } > - /* BEST and ERROR are exclusive */ > + /* BEST, ERROR, INVALID and LEAKED are exclusive */ > if (ctx->qs_args[QS_BEST].one) { > if (argc < len) > argv[argc++] = "best"; > } else if (ctx->qs_args[QS_ERROR].one) { > if (argc < len) > argv[argc++] = "error"; > + } else if (ctx->qs_args[QS_INVALID].one) { > + if (argc < len) > + argv[argc++] = "invalid"; > + } else if (ctx->qs_args[QS_LEAKED].one) { > + if (argc < len) > + argv[argc++] = "leaked"; > } > > /* prefix must be last for show rib */ >