prefixset
struct prefixset *ps;
struct filter_prefixset prefixset;
SIMPLEQ_ENTRY(prefixset) entry;
struct prefixset *find_prefixset(char *, struct prefixset_head *);
struct prefixset;
SIMPLEQ_HEAD(prefixset_head, prefixset);
struct prefixset *ps;
struct prefixset *ps;
struct prefixset *ps;
struct filter_prefixset *prefixset;
static struct prefixset *new_prefix_set(char *, int);
static struct prefixset *curpset, *curoset;
if (fmopts.m.prefixset.name[0] != '\0') {
struct prefixset *ps;
if (fmopts.m.prefixset.name[0] != '\0') {
if (strlcpy(fmopts.m.prefixset.name, $2,
sizeof(fmopts.m.prefixset.name)) >=
sizeof(fmopts.m.prefixset.name)) {
fmopts.m.prefixset.flags |=
fmopts.m.prefixset.flags |= PREFIXSET_FLAG_FILTER;
| grammar prefixset '\n'
struct prefixset *
struct prefixset *ps;
prefixset : PREFIXSET STRING '{' optnl {
static struct prefixset *
struct prefixset *pset;
if (r->match.prefixset.name[0] != '\0')
printf("prefix-set \"%s\" ", r->match.prefixset.name);
if (r->match.prefixset.flags & PREFIXSET_FLAG_LONGER)
struct prefixset *ps;
struct prefixset *ps;
if (r->match.prefixset.name[0] != '\0') {
r->match.prefixset.ps =
rde_find_prefixset(r->match.prefixset.name,
if (r->match.prefixset.ps == NULL)
__func__, r->match.prefixset.name);
if (match->prefixset.flags != 0) {
if (match->prefixset.ps == NULL ||
!trie_match(&match->prefixset.ps->th, prefix, plen,
(match->prefixset.flags & PREFIXSET_FLAG_LONGER)))
psa = fa->match.prefixset.ps;
psb = fb->match.prefixset.ps;
fa->match.prefixset.ps = fb->match.prefixset.ps = NULL;
fa->match.prefixset.ps = psa;
fb->match.prefixset.ps = psb;
if (fa->match.prefixset.ps != NULL &&
fa->match.prefixset.ps->dirty) {
__func__, fa->match.prefixset.name);