On Sun, Nov 04, 2018 at 08:05:01PM +0100, Sebastian Benoit wrote:
> Denis Fondras(de...@openbsd.org) on 2018.11.04 18:51:39 +0100:
> > Redefining a default RIB is not desirable.
> 
> ok benno@
> 
> the rde.c bit isnt needed i guess, but it doesnt hurt either.
> 

Yes, it was added for the sake of consistency.

> > Index: bgpd.h
> > ===================================================================
> > RCS file: /cvs/src/usr.sbin/bgpd/bgpd.h,v
> > retrieving revision 1.352
> > diff -u -p -r1.352 bgpd.h
> > --- bgpd.h  4 Nov 2018 14:34:00 -0000       1.352
> > +++ bgpd.h  4 Nov 2018 17:49:38 -0000
> > @@ -1057,6 +1057,7 @@ extern struct rib_names ribnames;
> >  #define F_RIB_NOEVALUATE   0x0002
> >  #define F_RIB_NOFIB                0x0004
> >  #define F_RIB_NOFIBSYNC            0x0008
> > +#define F_RIB_DEFAULT              0x0010
> >  #define F_RIB_HASNOFIB             (F_RIB_NOFIB | F_RIB_NOEVALUATE)
> >  
> >  /* 4-byte magic AS number */
> > Index: parse.y
> > ===================================================================
> > RCS file: /cvs/src/usr.sbin/bgpd/parse.y,v
> > retrieving revision 1.362
> > diff -u -p -r1.362 parse.y
> > --- parse.y 1 Nov 2018 00:18:44 -0000       1.362
> > +++ parse.y 4 Nov 2018 17:49:38 -0000
> > @@ -3319,10 +3319,10 @@ parse_config(char *filename, struct bgpd
> >     netconf = &conf->networks;
> >  
> >     add_rib("Adj-RIB-In", conf->default_tableid,
> > -       F_RIB_NOFIB | F_RIB_NOEVALUATE);
> > +       F_RIB_NOFIB | F_RIB_NOEVALUATE | F_RIB_DEFAULT);
> >     add_rib("Adj-RIB-Out", conf->default_tableid,
> > -       F_RIB_NOFIB | F_RIB_NOEVALUATE);
> > -   add_rib("Loc-RIB", conf->default_tableid, F_RIB_LOCAL);
> > +       F_RIB_NOFIB | F_RIB_NOEVALUATE | F_RIB_DEFAULT);
> > +   add_rib("Loc-RIB", conf->default_tableid, F_RIB_LOCAL | F_RIB_DEFAULT);
> >  
> >     if ((file = pushfile(filename, 1)) == NULL) {
> >             free(conf);
> > @@ -3876,6 +3876,11 @@ add_rib(char *name, u_int rtableid, u_in
> >                     return (-1);
> >             }
> >     }
> > +   if (rr->flags & F_RIB_DEFAULT) {
> > +           yyerror("redefinition of %s not permitted", rr->name);
> > +           return (-1);
> > +   }
> > +
> >     if (strlcpy(rr->name, name, sizeof(rr->name)) >= sizeof(rr->name)) {
> >             yyerror("rib name \"%s\" too long: max %zu",
> >                name, sizeof(rr->name) - 1);
> > Index: rde.c
> > ===================================================================
> > RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v
> > retrieving revision 1.445
> > diff -u -p -r1.445 rde.c
> > --- rde.c   4 Nov 2018 12:34:54 -0000       1.445
> > +++ rde.c   4 Nov 2018 17:49:38 -0000
> > @@ -217,8 +217,10 @@ rde_main(int debug, int verbose)
> >     peer_init(peerhashsize);
> >  
> >     /* make sure the default RIBs are setup */
> > -   rib_new("Adj-RIB-In", 0, F_RIB_NOFIB | F_RIB_NOEVALUATE);
> > -   rib_new("Adj-RIB-Out", 0, F_RIB_NOFIB | F_RIB_NOEVALUATE);
> > +   rib_new("Adj-RIB-In", 0, F_RIB_NOFIB | F_RIB_NOEVALUATE |
> > +       F_RIB_DEFAULT);
> > +   rib_new("Adj-RIB-Out", 0, F_RIB_NOFIB | F_RIB_NOEVALUATE |
> > +       F_RIB_DEFAULT);
> >  
> >     out_rules = calloc(1, sizeof(struct filter_head));
> >     if (out_rules == NULL)
> > 
> 

Reply via email to