if (rde_filter_match(f, attrs, prefix, prefixlen)) { rde_apply_set(attrs, &f->set);
if (rde_filter_match(f, asp, prefix, prefixlen)) { rde_apply_set(asp, &f->set);
rde_filter(struct rde_peer *peer, struct attr_flags *attrs,    struct bgpd_addr *prefix, u_int8_t prefixlen, enum directions dir){	struct filter_rule	*f;	enum filter_actions	 action = ACTION_ALLOW; /* default allow */	TAILQ_FOREACH(f, rules_l, entry) {		if (dir != f->dir)			continue;		if (f->peer.groupid != 0 &&		    f->peer.groupid != peer->conf.groupid)			continue;		if (f->peer.peerid != 0 &&		    f->peer.peerid != peer->conf.id)			continue;		if (rde_filter_match(f, attrs, prefix, prefixlen)) {			rde_apply_set(attrs, &f->set);			if (f->action != ACTION_NONE)				action = f->action;			if (f->quick)				return (action);		}	}	return (action);}