This is cleanup. rde_filter() and rde_apply_set() are no longer called
with a NULL filterstate (since introduction of the Adj-RIB-Out).
So remove all those extra checks to make sure state is not NULL.

-- 
:wq Claudio

Index: rde_filter.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/rde_filter.c,v
retrieving revision 1.117
diff -u -p -r1.117 rde_filter.c
--- rde_filter.c        4 Feb 2019 18:53:10 -0000       1.117
+++ rde_filter.c        9 May 2019 16:00:22 -0000
@@ -44,9 +44,6 @@ rde_apply_set(struct filter_set_head *sh
        u_int16_t                nl;
        u_int8_t                 prepend;
 
-       if (state == NULL)
-               return;
-
        TAILQ_FOREACH(set, sh, entry) {
                switch (set->type) {
                case ACTION_SET_LOCALPREF:
@@ -208,12 +205,9 @@ int
 rde_filter_match(struct filter_rule *f, struct rde_peer *peer,
     struct filterstate *state, struct prefix *p)
 {
-       struct rde_aspath *asp = NULL;
+       struct rde_aspath *asp = &state->aspath;
        int i;
 
-       if (state != NULL)
-               asp = &state->aspath;
-
        if (f->peer.ebgp && !peer->conf.ebgp)
                return (0);
        if (f->peer.ibgp && peer->conf.ebgp)
@@ -257,7 +251,7 @@ rde_filter_match(struct filter_rule *f, 
                }
        }
 
-       if (state != NULL && f->match.nexthop.flags != 0) {
+       if (f->match.nexthop.flags != 0) {
                struct bgpd_addr *nexthop, *cmpaddr;
                if (state->nexthop == NULL)
                        /* no nexthop, skip */
@@ -798,10 +792,7 @@ rde_filter(struct filter_head *rules, st
        struct filter_rule      *f;
        enum filter_actions      action = ACTION_DENY; /* default deny */
 
-       if (state == NULL) /* withdraw should be accepted by default */
-               action = ACTION_ALLOW;
-
-       if (state && state->aspath.flags & F_ATTR_PARSE_ERR)
+       if (state->aspath.flags & F_ATTR_PARSE_ERR)
                /*
                 * don't try to filter bad updates just deny them
                 * so they act as implicit withdraws
@@ -827,10 +818,8 @@ rde_filter(struct filter_head *rules, st
                     f->skip[RDE_FILTER_SKIP_PEERID]);
 
                if (rde_filter_match(f, peer, state, p)) {
-                       if (state != NULL) {
-                               rde_apply_set(&f->set, state,
-                                   p->re->prefix->aid, prefix_peer(p), peer);
-                       }
+                       rde_apply_set(&f->set, state,
+                           p->re->prefix->aid, prefix_peer(p), peer);
                        if (f->action != ACTION_NONE)
                                action = f->action;
                        if (f->quick)
Index: rde_update.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/rde_update.c,v
retrieving revision 1.108
diff -u -p -r1.108 rde_update.c
--- rde_update.c        21 Jan 2019 02:07:56 -0000      1.108
+++ rde_update.c        9 May 2019 16:01:18 -0000
@@ -202,7 +202,7 @@ up_generate_default(struct filter_head *
         * XXX apply default overrides. Not yet possible, mainly a parse.y
         * problem.
         */
-       /* rde_apply_set(asp, set, af, NULL ???, DIR_IN); */
+       /* rde_apply_set(asp, set, af, &state, DIR_IN); */
 
        /*
         * XXX this is ugly because we need to have a prefix for rde_filter()

Reply via email to