regress/usr.sbin/bgpd/unittests/rde_decide_test.c
30
struct rib dummy_rib = {
regress/usr.sbin/bgpd/unittests/rde_decide_test.c
35
struct rib flowrib;
regress/usr.sbin/bgpd/unittests/rde_decide_test.c
352
struct rib *
regress/usr.sbin/bgpd/unittests/rde_decide_test.c
366
rde_send_kroute(struct rib *rib, struct prefix *new, struct prefix *old)
usr.sbin/bgpctl/bgpctl.c
1286
output->rib(&ctl, &ibuf, &res);
usr.sbin/bgpctl/bgpctl.c
253
strlcpy(ribreq.rib, res->rib, sizeof(ribreq.rib));
usr.sbin/bgpctl/bgpctl.c
348
strlcpy(ribreq.rib, res->rib, sizeof(ribreq.rib));
usr.sbin/bgpctl/bgpctl.c
405
strlcpy(ribreq.rib, res->rib, sizeof(ribreq.rib));
usr.sbin/bgpctl/bgpctl.c
472
struct ctl_show_rib rib;
usr.sbin/bgpctl/bgpctl.c
530
if (output->rib == NULL)
usr.sbin/bgpctl/bgpctl.c
534
if (ibuf_get(&ibuf, &rib, sizeof(rib)) == -1)
usr.sbin/bgpctl/bgpctl.c
536
output->rib(&rib, &ibuf, res);
usr.sbin/bgpctl/bgpctl.h
32
void (*rib)(struct ctl_show_rib *, struct ibuf *,
usr.sbin/bgpctl/output.c
1254
.rib = show_rib,
usr.sbin/bgpctl/output_json.c
1088
.rib = json_rib,
usr.sbin/bgpctl/parser.c
665
if (strlcpy(res.rib, word, sizeof(res.rib)) >=
usr.sbin/bgpctl/parser.c
666
sizeof(res.rib))
usr.sbin/bgpctl/parser.h
73
char rib[PEER_DESCR_LEN];
usr.sbin/bgpd/bgpd.h
1041
char rib[PEER_DESCR_LEN];
usr.sbin/bgpd/bgpd.h
1270
char rib[PEER_DESCR_LEN];
usr.sbin/bgpd/bgpd.h
1474
char rib[PEER_DESCR_LEN];
usr.sbin/bgpd/bgpd.h
501
char rib[PEER_DESCR_LEN];
usr.sbin/bgpd/mrt.c
1244
if (strcmp(t->rib, m->rib))
usr.sbin/bgpd/mrt.c
820
nlen = strlen(mrt->rib);
usr.sbin/bgpd/mrt.c
825
if (ibuf_add(buf, mrt->rib, nlen) == -1)
usr.sbin/bgpd/parse.y
1015
rib : RDE RIB STRING {
usr.sbin/bgpd/parse.y
1913
if (strlcpy(curpeer->conf.rib, $2,
usr.sbin/bgpd/parse.y
1914
sizeof(curpeer->conf.rib)) >=
usr.sbin/bgpd/parse.y
1915
sizeof(curpeer->conf.rib)) {
usr.sbin/bgpd/parse.y
1917
$2, sizeof(curpeer->conf.rib) - 1);
usr.sbin/bgpd/parse.y
309
| grammar rib '\n'
usr.sbin/bgpd/parse.y
4729
char *rib)
usr.sbin/bgpd/parse.y
4734
if ((rib && strcmp(rib, m->rib)) ||
usr.sbin/bgpd/parse.y
4735
(!rib && *m->rib))
usr.sbin/bgpd/parse.y
4774
if (rib) {
usr.sbin/bgpd/parse.y
4775
if (!find_rib(rib)) {
usr.sbin/bgpd/parse.y
4776
yyerror("rib \"%s\" does not exist.", rib);
usr.sbin/bgpd/parse.y
4780
if (strlcpy(n->rib, rib, sizeof(n->rib)) >=
usr.sbin/bgpd/parse.y
4781
sizeof(n->rib)) {
usr.sbin/bgpd/parse.y
4783
name, sizeof(n->rib) - 1);
usr.sbin/bgpd/parse.y
4956
expand_rule(struct filter_rule *rule, struct filter_rib_l *rib,
usr.sbin/bgpd/parse.y
4967
rb = rib;
usr.sbin/bgpd/parse.y
4988
strlcpy(r->rib, rb->name,
usr.sbin/bgpd/parse.y
4989
sizeof(r->rib));
usr.sbin/bgpd/parse.y
5022
for (rb = rib; rb != NULL; rb = rbnext) {
usr.sbin/bgpd/printconf.c
1036
if (r->rib[0])
usr.sbin/bgpd/printconf.c
1037
printf("rib %s ", r->rib);
usr.sbin/bgpd/printconf.c
1206
if (m->rib[0])
usr.sbin/bgpd/printconf.c
1207
printf("rib %s ", m->rib);
usr.sbin/bgpd/printconf.c
770
if (p->rib[0])
usr.sbin/bgpd/printconf.c
771
printf("%s\trib \"%s\"\n", c, p->rib);
usr.sbin/bgpd/rde.c
1102
if ((rib = rib_byid(rid)) == NULL)
usr.sbin/bgpd/rde.c
1104
rib->state = RECONF_DELETE;
usr.sbin/bgpd/rde.c
1105
rib->fibstate = RECONF_NONE;
usr.sbin/bgpd/rde.c
1111
rib = rib_byid(rib_find(rr.name));
usr.sbin/bgpd/rde.c
1112
if (rib == NULL) {
usr.sbin/bgpd/rde.c
1113
rib = rib_new(rr.name, rr.rtableid, rr.flags);
usr.sbin/bgpd/rde.c
1114
} else if (rib->flags == rr.flags &&
usr.sbin/bgpd/rde.c
1115
rib->rtableid == rr.rtableid) {
usr.sbin/bgpd/rde.c
1117
rib->state = RECONF_KEEP;
usr.sbin/bgpd/rde.c
1120
rib->flags_tmp = rr.flags;
usr.sbin/bgpd/rde.c
1121
rib->rtableid_tmp = rr.rtableid;
usr.sbin/bgpd/rde.c
1122
rib->state = RECONF_RELOAD;
usr.sbin/bgpd/rde.c
1164
if ((rib = rib_byid(rib_find(r->rib))) == NULL) {
usr.sbin/bgpd/rde.c
1166
"for nonexistent rib %s", r->rib);
usr.sbin/bgpd/rde.c
1171
r->peer.ribid = rib->id;
usr.sbin/bgpd/rde.c
1173
nr = rib->in_rules_tmp;
usr.sbin/bgpd/rde.c
1180
rib->in_rules_tmp = nr;
usr.sbin/bgpd/rde.c
2015
struct rib *rib = rib_byid(i);
usr.sbin/bgpd/rde.c
2016
if (rib == NULL)
usr.sbin/bgpd/rde.c
2020
action = rde_filter(rib->in_rules, peer, peer, prefix,
usr.sbin/bgpd/rde.c
2027
prefix_update(rib, peer, path_id, path_id_tx, &state,
usr.sbin/bgpd/rde.c
2031
prefix_update(rib, peer, path_id, path_id_tx, &state,
usr.sbin/bgpd/rde.c
2034
if (prefix_withdraw(rib, peer, path_id, prefix,
usr.sbin/bgpd/rde.c
2052
struct rib *rib = rib_byid(i);
usr.sbin/bgpd/rde.c
2053
if (rib == NULL)
usr.sbin/bgpd/rde.c
2055
if (prefix_withdraw(rib, peer, path_id, prefix, prefixlen))
usr.sbin/bgpd/rde.c
2918
struct ctl_show_rib rib;
usr.sbin/bgpd/rde.c
2931
memset(&rib, 0, sizeof(rib));
usr.sbin/bgpd/rde.c
2932
rib.lastchange = p->lastchange;
usr.sbin/bgpd/rde.c
2933
rib.local_pref = asp->lpref;
usr.sbin/bgpd/rde.c
2934
rib.med = asp->med;
usr.sbin/bgpd/rde.c
2935
rib.weight = asp->weight;
usr.sbin/bgpd/rde.c
2936
strlcpy(rib.descr, peer->conf.descr, sizeof(rib.descr));
usr.sbin/bgpd/rde.c
2937
memcpy(&rib.remote_addr, &peer->remote_addr,
usr.sbin/bgpd/rde.c
2938
sizeof(rib.remote_addr));
usr.sbin/bgpd/rde.c
2939
rib.remote_id = peer->remote_bgpid;
usr.sbin/bgpd/rde.c
2941
rib.exit_nexthop = nexthop->exit_nexthop;
usr.sbin/bgpd/rde.c
2942
rib.true_nexthop = nexthop->true_nexthop;
usr.sbin/bgpd/rde.c
2945
rib.exit_nexthop.aid = p->pt->aid;
usr.sbin/bgpd/rde.c
2946
rib.true_nexthop.aid = p->pt->aid;
usr.sbin/bgpd/rde.c
2948
pt_getaddr(p->pt, &rib.prefix);
usr.sbin/bgpd/rde.c
2949
rib.prefixlen = p->pt->prefixlen;
usr.sbin/bgpd/rde.c
2950
rib.origin = asp->origin;
usr.sbin/bgpd/rde.c
2951
rib.roa_validation_state = prefix_roa_vstate(p);
usr.sbin/bgpd/rde.c
2952
rib.aspa_validation_state = prefix_aspa_vstate(p);
usr.sbin/bgpd/rde.c
2953
rib.dmetric = p->dmetric;
usr.sbin/bgpd/rde.c
2954
rib.flags = 0;
usr.sbin/bgpd/rde.c
2961
rib.flags |= F_PREF_BEST;
usr.sbin/bgpd/rde.c
2965
rib.flags |= F_PREF_ECMP;
usr.sbin/bgpd/rde.c
2969
rib.flags |= F_PREF_AS_WIDE;
usr.sbin/bgpd/rde.c
2980
rib.flags |= F_PREF_INTERNAL;
usr.sbin/bgpd/rde.c
2982
rib.flags |= F_PREF_ANNOUNCE;
usr.sbin/bgpd/rde.c
2984
rib.flags |= F_PREF_ELIGIBLE;
usr.sbin/bgpd/rde.c
2986
rib.flags |= F_PREF_FILTERED;
usr.sbin/bgpd/rde.c
2989
rib.flags |= F_PREF_OTC_LEAK;
usr.sbin/bgpd/rde.c
2991
rib.flags |= F_PREF_INVALID;
usr.sbin/bgpd/rde.c
2995
rib.flags |= F_PREF_STALE;
usr.sbin/bgpd/rde.c
2997
rib.path_id = p->path_id;
usr.sbin/bgpd/rde.c
2998
rib.flags |= F_PREF_PATH_ID;
usr.sbin/bgpd/rde.c
3003
sizeof(rib) + aslen)) == NULL)
usr.sbin/bgpd/rde.c
3005
if (imsg_add(wbuf, &rib, sizeof(rib)) == -1 ||
usr.sbin/bgpd/rde.c
3039
struct ctl_show_rib rib;
usr.sbin/bgpd/rde.c
3049
memset(&rib, 0, sizeof(rib));
usr.sbin/bgpd/rde.c
3050
rib.local_pref = asp->lpref;
usr.sbin/bgpd/rde.c
3051
rib.med = asp->med;
usr.sbin/bgpd/rde.c
3052
rib.weight = asp->weight;
usr.sbin/bgpd/rde.c
3053
strlcpy(rib.descr, peer->conf.descr, sizeof(rib.descr));
usr.sbin/bgpd/rde.c
3054
memcpy(&rib.remote_addr, &peer->remote_addr,
usr.sbin/bgpd/rde.c
3055
sizeof(rib.remote_addr));
usr.sbin/bgpd/rde.c
3056
rib.remote_id = peer->remote_bgpid;
usr.sbin/bgpd/rde.c
3058
rib.exit_nexthop = nexthop->exit_nexthop;
usr.sbin/bgpd/rde.c
3059
rib.true_nexthop = nexthop->true_nexthop;
usr.sbin/bgpd/rde.c
3062
rib.exit_nexthop.aid = pte->aid;
usr.sbin/bgpd/rde.c
3063
rib.true_nexthop.aid = pte->aid;
usr.sbin/bgpd/rde.c
3065
pt_getaddr(pte, &rib.prefix);
usr.sbin/bgpd/rde.c
3066
rib.prefixlen = pte->prefixlen;
usr.sbin/bgpd/rde.c
3067
rib.origin = asp->origin;
usr.sbin/bgpd/rde.c
3069
rib.flags = 0;
usr.sbin/bgpd/rde.c
3070
rib.flags |= F_PREF_ELIGIBLE;
usr.sbin/bgpd/rde.c
3072
rib.flags |= F_PREF_INTERNAL;
usr.sbin/bgpd/rde.c
3074
rib.flags |= F_PREF_ANNOUNCE;
usr.sbin/bgpd/rde.c
3076
rib.path_id = p->path_id_tx;
usr.sbin/bgpd/rde.c
3077
rib.flags |= F_PREF_PATH_ID;
usr.sbin/bgpd/rde.c
3082
sizeof(rib) + aslen)) == NULL)
usr.sbin/bgpd/rde.c
3084
if (imsg_add(wbuf, &rib, sizeof(rib)) == -1 ||
usr.sbin/bgpd/rde.c
3293
if (strcmp(req->rib, "Adj-RIB-Out") == 0)
usr.sbin/bgpd/rde.c
3394
} else if ((rid = rib_find(req->rib)) == RIB_NOTFOUND) {
usr.sbin/bgpd/rde.c
3395
log_warnx("%s: no such rib %s", __func__, req->rib);
usr.sbin/bgpd/rde.c
3518
rid = rib_find(ctx->mrt.rib);
usr.sbin/bgpd/rde.c
3520
log_warnx("non existing RIB %s for mrt dump", ctx->mrt.rib);
usr.sbin/bgpd/rde.c
3540
rde_send_kroute_flush(struct rib *rib)
usr.sbin/bgpd/rde.c
3542
if (imsg_compose(ibuf_main, IMSG_KROUTE_FLUSH, rib->rtableid, 0, -1,
usr.sbin/bgpd/rde.c
3548
rde_send_kroute(struct rib *rib, struct prefix *new, struct prefix *old)
usr.sbin/bgpd/rde.c
3591
if (!(rib->flags & F_RIB_LOCAL))
usr.sbin/bgpd/rde.c
3612
if (imsg_compose(ibuf_main, type, rib->rtableid, 0, -1,
usr.sbin/bgpd/rde.c
3963
if (peer->loc_rib_id != rib_find(peer->conf.rib)) {
usr.sbin/bgpd/rde.c
3965
peer->loc_rib_id = rib_find(peer->conf.rib);
usr.sbin/bgpd/rde.c
4023
struct rib *rib = rib_byid(rid);
usr.sbin/bgpd/rde.c
4024
if (rib == NULL)
usr.sbin/bgpd/rde.c
4026
rde_filter_calc_skip_steps(rib->in_rules_tmp);
usr.sbin/bgpd/rde.c
4029
fh = rib->in_rules;
usr.sbin/bgpd/rde.c
4030
rib->in_rules = rib->in_rules_tmp;
usr.sbin/bgpd/rde.c
4031
rib->in_rules_tmp = fh;
usr.sbin/bgpd/rde.c
4033
switch (rib->state) {
usr.sbin/bgpd/rde.c
4035
rib_free(rib);
usr.sbin/bgpd/rde.c
4036
rib = NULL;
usr.sbin/bgpd/rde.c
4039
if (rib_update(rib)) {
usr.sbin/bgpd/rde.c
4045
if (peer->loc_rib_id != rib->id)
usr.sbin/bgpd/rde.c
4066
rib->state = RECONF_KEEP;
usr.sbin/bgpd/rde.c
4070
rde_filter_equal(rib->in_rules, rib->in_rules_tmp))
usr.sbin/bgpd/rde.c
4074
rib->name);
usr.sbin/bgpd/rde.c
4075
rib->state = RECONF_RELOAD;
usr.sbin/bgpd/rde.c
4080
rib->state = RECONF_RELOAD;
usr.sbin/bgpd/rde.c
4086
filterlist_free(rib->in_rules_tmp);
usr.sbin/bgpd/rde.c
4087
rib->in_rules_tmp = NULL;
usr.sbin/bgpd/rde.c
4126
struct rib *rib = rib_byid(i);
usr.sbin/bgpd/rde.c
4127
if (rib == NULL)
usr.sbin/bgpd/rde.c
4129
rib->state = RECONF_NONE;
usr.sbin/bgpd/rde.c
4130
if (rib->fibstate == RECONF_RELOAD) {
usr.sbin/bgpd/rde.c
4132
rib, rde_softreconfig_sync_fib,
usr.sbin/bgpd/rde.c
4137
rib->name);
usr.sbin/bgpd/rde.c
4138
} else if (rib->fibstate == RECONF_REINIT) {
usr.sbin/bgpd/rde.c
4140
rib, rde_softreconfig_sync_reeval,
usr.sbin/bgpd/rde.c
4145
rib->name);
usr.sbin/bgpd/rde.c
4176
struct rib *rib = rib_byid(i);
usr.sbin/bgpd/rde.c
4177
if (rib == NULL)
usr.sbin/bgpd/rde.c
4179
if (rib->state == RECONF_RELOAD) {
usr.sbin/bgpd/rde.c
4181
rib, rde_softreconfig_out,
usr.sbin/bgpd/rde.c
4186
rib->name);
usr.sbin/bgpd/rde.c
4198
struct rib *rib = arg;
usr.sbin/bgpd/rde.c
4201
log_info("softreconfig out done for %s", rib->name);
usr.sbin/bgpd/rde.c
4214
struct rib *rib = rib_byid(i);
usr.sbin/bgpd/rde.c
4215
if (rib == NULL)
usr.sbin/bgpd/rde.c
4217
rib->state = RECONF_NONE;
usr.sbin/bgpd/rde.c
4229
struct rib *rib;
usr.sbin/bgpd/rde.c
4257
rib = rib_byid(i);
usr.sbin/bgpd/rde.c
4258
if (rib == NULL)
usr.sbin/bgpd/rde.c
4261
if (rib->state != RECONF_RELOAD)
usr.sbin/bgpd/rde.c
4265
action = rde_filter(rib->in_rules, peer, peer, &prefix,
usr.sbin/bgpd/rde.c
4270
prefix_update(rib, peer, p->path_id,
usr.sbin/bgpd/rde.c
4275
prefix_update(rib, peer, p->path_id,
usr.sbin/bgpd/rde.c
4280
prefix_withdraw(rib, peer, p->path_id, &prefix,
usr.sbin/bgpd/rde.c
4304
struct rib *rib = arg;
usr.sbin/bgpd/rde.c
4306
if (rib->flags & F_RIB_NOEVALUATE) {
usr.sbin/bgpd/rde.c
4350
struct rib *rib = arg;
usr.sbin/bgpd/rde.c
4353
if (rib->fibstate == RECONF_RELOAD)
usr.sbin/bgpd/rde.c
4354
log_info("fib sync done for %s", rib->name);
usr.sbin/bgpd/rde.c
4356
log_info("re-evaluation done for %s", rib->name);
usr.sbin/bgpd/rde.c
4357
rib->fibstate = RECONF_NONE;
usr.sbin/bgpd/rde.c
4372
struct rib *rib;
usr.sbin/bgpd/rde.c
4414
rib = rib_byid(i);
usr.sbin/bgpd/rde.c
4415
if (rib == NULL)
usr.sbin/bgpd/rde.c
4419
action = rde_filter(rib->in_rules, peer, peer, &prefix,
usr.sbin/bgpd/rde.c
4424
prefix_update(rib, peer, p->path_id,
usr.sbin/bgpd/rde.c
4429
prefix_update(rib, peer, p->path_id,
usr.sbin/bgpd/rde.c
4434
prefix_withdraw(rib, peer, p->path_id, &prefix,
usr.sbin/bgpd/rde.c
4715
struct rib *rib = rib_byid(i);
usr.sbin/bgpd/rde.c
4716
if (rib == NULL)
usr.sbin/bgpd/rde.c
4721
prefix_update(rib, peerself, 0, path_id_tx, state, 0,
usr.sbin/bgpd/rde.c
4778
struct rib *rib = rib_byid(i);
usr.sbin/bgpd/rde.c
4779
if (rib == NULL)
usr.sbin/bgpd/rde.c
4781
if (prefix_withdraw(rib, peerself, 0, &nc->prefix,
usr.sbin/bgpd/rde.c
4839
struct rib *rib = rib_byid(i);
usr.sbin/bgpd/rde.c
4840
if (rib == NULL)
usr.sbin/bgpd/rde.c
4842
if (prefix_withdraw(rib, peerself, 0, &addr, prefixlen) == 1)
usr.sbin/bgpd/rde.c
916
struct rib *rib;
usr.sbin/bgpd/rde.h
397
void rde_send_kroute_flush(struct rib *);
usr.sbin/bgpd/rde.h
398
void rde_send_kroute(struct rib *, struct prefix *, struct prefix *);
usr.sbin/bgpd/rde.h
620
struct rib *rib_new(char *, u_int, uint16_t);
usr.sbin/bgpd/rde.h
621
int rib_update(struct rib *);
usr.sbin/bgpd/rde.h
622
struct rib *rib_byid(uint16_t);
usr.sbin/bgpd/rde.h
624
void rib_free(struct rib *);
usr.sbin/bgpd/rde.h
626
struct rib_entry *rib_get(struct rib *, struct pt_entry *);
usr.sbin/bgpd/rde.h
627
struct rib_entry *rib_get_addr(struct rib *, struct bgpd_addr *, int);
usr.sbin/bgpd/rde.h
628
struct rib_entry *rib_match(struct rib *, struct bgpd_addr *);
usr.sbin/bgpd/rde.h
644
extern struct rib flowrib;
usr.sbin/bgpd/rde.h
646
static inline struct rib *
usr.sbin/bgpd/rde.h
670
struct prefix *prefix_get(struct rib *, struct rde_peer *, uint32_t,
usr.sbin/bgpd/rde.h
672
int prefix_update(struct rib *, struct rde_peer *, uint32_t,
usr.sbin/bgpd/rde.h
675
int prefix_withdraw(struct rib *, struct rde_peer *, uint32_t,
usr.sbin/bgpd/rde_decide.c
511
struct rib *rib;
usr.sbin/bgpd/rde_decide.c
513
rib = re_rib(re);
usr.sbin/bgpd/rde_decide.c
514
if (rib->flags & F_RIB_NOEVALUATE)
usr.sbin/bgpd/rde_decide.c
535
struct rib *rib;
usr.sbin/bgpd/rde_decide.c
538
rib = re_rib(re);
usr.sbin/bgpd/rde_decide.c
539
if (rib->flags & F_RIB_NOEVALUATE) {
usr.sbin/bgpd/rde_decide.c
569
if ((rib->flags & F_RIB_NOFIB) == 0)
usr.sbin/bgpd/rde_decide.c
570
rde_send_kroute(rib, newbest, oldbest);
usr.sbin/bgpd/rde_decide.c
594
struct rib *rib;
usr.sbin/bgpd/rde_decide.c
598
rib = re_rib(re);
usr.sbin/bgpd/rde_decide.c
599
if (rib->flags & F_RIB_NOEVALUATE) {
usr.sbin/bgpd/rde_decide.c
613
if ((rib->flags & F_RIB_NOFIB) == 0 &&
usr.sbin/bgpd/rde_decide.c
615
rde_send_kroute(rib, p, NULL);
usr.sbin/bgpd/rde_decide.c
649
if ((rib->flags & F_RIB_NOFIB) == 0)
usr.sbin/bgpd/rde_decide.c
650
rde_send_kroute(rib, newbest, oldbest);
usr.sbin/bgpd/rde_peer.c
173
peer->loc_rib_id = rib_find(peer->conf.rib);
usr.sbin/bgpd/rde_peer.c
404
struct rib *rib = rib_byid(i);
usr.sbin/bgpd/rde_peer.c
405
if (rib == NULL)
usr.sbin/bgpd/rde_peer.c
407
rp = prefix_get(rib, peer, p->path_id,
usr.sbin/bgpd/rde_rib.c
100
struct rib *
usr.sbin/bgpd/rde_rib.c
103
struct rib *new;
usr.sbin/bgpd/rde_rib.c
113
sizeof(struct rib *))) == NULL)
usr.sbin/bgpd/rde_rib.c
147
rib_update(struct rib *rib)
usr.sbin/bgpd/rde_rib.c
150
if ((rib->flags & (F_RIB_NOFIB | F_RIB_NOEVALUATE)) == 0)
usr.sbin/bgpd/rde_rib.c
151
rde_send_kroute_flush(rib);
usr.sbin/bgpd/rde_rib.c
154
if ((rib->flags & F_RIB_NOEVALUATE) !=
usr.sbin/bgpd/rde_rib.c
155
(rib->flags_tmp & F_RIB_NOEVALUATE))
usr.sbin/bgpd/rde_rib.c
156
rib->fibstate = RECONF_REINIT;
usr.sbin/bgpd/rde_rib.c
158
rib->flags = rib->flags_tmp;
usr.sbin/bgpd/rde_rib.c
159
rib->rtableid = rib->rtableid_tmp;
usr.sbin/bgpd/rde_rib.c
162
if (rib->fibstate != RECONF_REINIT &&
usr.sbin/bgpd/rde_rib.c
163
(rib->flags & (F_RIB_NOFIB | F_RIB_NOEVALUATE)) == 0)
usr.sbin/bgpd/rde_rib.c
164
rib->fibstate = RECONF_RELOAD;
usr.sbin/bgpd/rde_rib.c
166
return (rib->fibstate == RECONF_REINIT);
usr.sbin/bgpd/rde_rib.c
169
struct rib *
usr.sbin/bgpd/rde_rib.c
197
rib_free(struct rib *rib)
usr.sbin/bgpd/rde_rib.c
202
rib_dump_abort(rib->id);
usr.sbin/bgpd/rde_rib.c
208
if ((rib->flags & (F_RIB_NOFIB | F_RIB_NOEVALUATE)) == 0)
usr.sbin/bgpd/rde_rib.c
209
rde_send_kroute_flush(rib);
usr.sbin/bgpd/rde_rib.c
210
rib->flags |= F_RIB_NOEVALUATE | F_RIB_NOFIB;
usr.sbin/bgpd/rde_rib.c
212
for (re = RB_MIN(rib_tree, rib_tree(rib)); re != NULL; re = xre) {
usr.sbin/bgpd/rde_rib.c
213
xre = RB_NEXT(rib_tree, rib_tree(rib), re);
usr.sbin/bgpd/rde_rib.c
228
if (rib->id <= RIB_LOC_START)
usr.sbin/bgpd/rde_rib.c
230
filterlist_free(rib->in_rules_tmp);
usr.sbin/bgpd/rde_rib.c
231
filterlist_free(rib->in_rules);
usr.sbin/bgpd/rde_rib.c
232
ribs[rib->id] = NULL;
usr.sbin/bgpd/rde_rib.c
233
free(rib);
usr.sbin/bgpd/rde_rib.c
239
struct rib *rib;
usr.sbin/bgpd/rde_rib.c
243
rib = rib_byid(id);
usr.sbin/bgpd/rde_rib.c
244
if (rib == NULL)
usr.sbin/bgpd/rde_rib.c
253
rib = rib_byid(id);
usr.sbin/bgpd/rde_rib.c
254
if (rib == NULL)
usr.sbin/bgpd/rde_rib.c
256
filterlist_free(rib->in_rules_tmp);
usr.sbin/bgpd/rde_rib.c
257
filterlist_free(rib->in_rules);
usr.sbin/bgpd/rde_rib.c
259
free(rib);
usr.sbin/bgpd/rde_rib.c
265
rib_get(struct rib *rib, struct pt_entry *pte)
usr.sbin/bgpd/rde_rib.c
272
re = RB_FIND(rib_tree, rib_tree(rib), &xre);
usr.sbin/bgpd/rde_rib.c
273
if (re && re->rib_id != rib->id)
usr.sbin/bgpd/rde_rib.c
275
re->rib_id, rib->id);
usr.sbin/bgpd/rde_rib.c
280
rib_get_addr(struct rib *rib, struct bgpd_addr *prefix, int prefixlen)
usr.sbin/bgpd/rde_rib.c
282
return rib_get(rib, pt_fill(prefix, prefixlen));
usr.sbin/bgpd/rde_rib.c
286
rib_match(struct rib *rib, struct bgpd_addr *addr)
usr.sbin/bgpd/rde_rib.c
295
re = rib_get_addr(rib, addr, i);
usr.sbin/bgpd/rde_rib.c
303
re = rib_get_addr(rib, addr, i);
usr.sbin/bgpd/rde_rib.c
316
rib_add(struct rib *rib, struct pt_entry *pte)
usr.sbin/bgpd/rde_rib.c
325
re->rib_id = rib->id;
usr.sbin/bgpd/rde_rib.c
328
if (RB_INSERT(rib_tree, rib_tree(rib), re) != NULL) {
usr.sbin/bgpd/rde_rib.c
395
struct rib *rib;
usr.sbin/bgpd/rde_rib.c
398
rib = rib_byid(ctx->ctx_id);
usr.sbin/bgpd/rde_rib.c
399
if (rib == NULL)
usr.sbin/bgpd/rde_rib.c
403
re = RB_MIN(rib_tree, rib_tree(rib));
usr.sbin/bgpd/rde_rib.c
41
struct rib **ribs;
usr.sbin/bgpd/rde_rib.c
42
struct rib flowrib = { .id = 1, .tree = RB_INITIALIZER(&flowrib.tree) };
usr.sbin/bgpd/rde_rib.c
44
struct rib_entry *rib_add(struct rib *, struct pt_entry *);
usr.sbin/bgpd/rde_rib.c
820
static int prefix_add(struct bgpd_addr *, int, struct rib *,
usr.sbin/bgpd/rde_rib.c
841
prefix_get(struct rib *rib, struct rde_peer *peer, uint32_t path_id,
usr.sbin/bgpd/rde_rib.c
846
re = rib_get_addr(rib, prefix, prefixlen);
usr.sbin/bgpd/rde_rib.c
857
prefix_update(struct rib *rib, struct rde_peer *peer, uint32_t path_id,
usr.sbin/bgpd/rde_rib.c
868
if ((p = prefix_get(rib, peer, path_id, prefix, prefixlen)) != NULL) {
usr.sbin/bgpd/rde_rib.c
88
rib_tree(struct rib *rib)
usr.sbin/bgpd/rde_rib.c
90
return (&rib->tree);
usr.sbin/bgpd/rde_rib.c
903
return (prefix_add(prefix, prefixlen, rib, peer, path_id,
usr.sbin/bgpd/rde_rib.c
912
prefix_add(struct bgpd_addr *prefix, int prefixlen, struct rib *rib,
usr.sbin/bgpd/rde_rib.c
924
re = rib_get(rib, pte);
usr.sbin/bgpd/rde_rib.c
926
re = rib_add(rib, pte);
usr.sbin/bgpd/rde_rib.c
990
prefix_withdraw(struct rib *rib, struct rde_peer *peer, uint32_t path_id,
usr.sbin/bgpd/rde_rib.c
996
p = prefix_get(rib, peer, path_id, prefix, prefixlen);
usr.sbin/ospfctl/ospfctl.c
294
output->rib(rt, 1);
usr.sbin/ospfctl/ospfctl.c
296
output->rib(rt, 0);
usr.sbin/ospfctl/ospfctl.h
27
void (*rib)(struct ctl_rt *, int);
usr.sbin/ospfctl/output.c
662
.rib = show_rib,