rde_peer
struct rde_peer *p = &peer;
struct rde_peer peer = {
struct rde_peer peer_b4 = {
struct rde_peer peer_l4 = {
struct rde_peer *peer;
struct rde_peer peer_r4 = {
rde_enqueue_updates(struct rib_entry *re, struct rde_peer *peer,
struct rde_peer peer1 = {
struct rde_peer peer2 = {
struct rde_peer peer3 = {
struct rde_peer peer1_a4 = {
struct rde_peer peer1_i = {
struct rde_peer *peer)
struct rde_peer*);
struct rde_peer*);
static int mrt_dump_peer(struct ibuf *, struct rde_peer *);
struct rde_peer *peer)
mrt_dump_v2_hdr_peer(struct rde_peer *peer, void *arg)
mrt_dump_peer(struct ibuf *buf, struct rde_peer *peer)
extern struct rde_peer *peerself;
rde_dispatch_imsg_peer(struct rde_peer *peer, void *bula)
rde_update_dispatch(struct rde_peer *peer, struct ibuf *buf)
pathid_assign(struct rde_peer *peer, uint32_t path_id,
rde_update_update(struct rde_peer *peer, uint32_t path_id,
rde_update_withdraw(struct rde_peer *peer, uint32_t path_id,
rde_attr_parse(struct ibuf *buf, struct rde_peer *peer,
struct rde_peer *peer, struct filterstate *state)
rde_update_err(struct rde_peer *peer, uint8_t error, uint8_t suberr,
const struct rde_peer *peer, const struct bgpd_addr *next,
rde_as4byte_fixup(struct rde_peer *peer, struct rde_aspath *a)
rde_aspa_validity(struct rde_peer *peer, struct rde_aspath *asp, uint8_t aid)
rde_reflector(struct rde_peer *peer, struct rde_aspath *asp)
struct rde_peer *peer;
rde_dump_adjout_as(struct rde_peer *peer, struct pt_entry *pte,
rde_match_peer(struct rde_peer *p, struct ctl_neighbor *n)
rde_dump_adjout_filter(struct rde_peer *peer, struct pt_entry *pte,
struct rde_peer *peer;
struct rde_peer *peer;
struct rde_peer *peer;
struct rde_peer *peer = ptr;
struct rde_peer *peer;
struct rde_peer *peer;
struct rde_peer *peer;
struct rde_peer *peer;
struct rde_peer *peer;
struct rde_peer *peer;
rde_peer_recv_eor(struct rde_peer *peer, u_int aid)
rde_peer_send_eor(struct rde_peer *peer, uint8_t aid)
struct rde_peer *peer;
rde_peer_send_rrefresh(struct rde_peer *peer, uint8_t aid, uint8_t subtype)
void rde_dispatch_imsg_peer(struct rde_peer *, void *);
void rde_update_dispatch(struct rde_peer *, struct ibuf *);
int rde_update_update(struct rde_peer *, uint32_t,
void rde_update_withdraw(struct rde_peer *, uint32_t,
int rde_attr_parse(struct ibuf *, struct rde_peer *,
struct rde_peer *, struct filterstate *);
void rde_as4byte_fixup(struct rde_peer *, struct rde_aspath *);
uint8_t rde_aspa_validity(struct rde_peer *, struct rde_aspath *,
void rde_reflector(struct rde_peer *, struct rde_aspath *);
static void rde_peer_recv_eor(struct rde_peer *, u_int);
static void rde_peer_send_eor(struct rde_peer *, uint8_t);
struct rde_peer *peer;
void rde_update_err(struct rde_peer *, uint8_t , uint8_t,
const struct rde_peer *, const struct bgpd_addr *,
void rde_peer_send_rrefresh(struct rde_peer *, uint8_t, uint8_t);
int rde_match_peer(struct rde_peer *, struct ctl_neighbor *);
int peer_has_as4byte(struct rde_peer *);
int peer_has_add_path(struct rde_peer *, uint8_t, int);
int peer_has_ext_msg(struct rde_peer *);
int peer_has_ext_nexthop(struct rde_peer *, uint8_t);
int peer_permit_as_set(struct rde_peer *);
void peer_foreach(void (*)(struct rde_peer *, void *), void *);
struct rde_peer *peer_get(uint32_t);
struct rde_peer *peer_match(struct ctl_neighbor *, uint32_t);
struct rde_peer *peer_add(uint32_t, struct peer_config *, struct filter_head *);
struct rde_filter *peer_apply_out_filter(struct rde_peer *,
void rde_enqueue_updates(struct rib_entry *, struct rde_peer *,
void peer_process_updates(struct rde_peer *, void *);
void peer_up(struct rde_peer *, struct session_up *);
void peer_down(struct rde_peer *);
void peer_delete(struct rde_peer *);
void peer_flush(struct rde_peer *, uint8_t, monotime_t);
void peer_stale(struct rde_peer *, uint8_t, int);
void peer_blast(struct rde_peer *, uint8_t);
void peer_dump(struct rde_peer *, uint8_t);
void peer_begin_rrefresh(struct rde_peer *, uint8_t);
void peer_imsg_push(struct rde_peer *, struct imsg *);
int peer_imsg_pop(struct rde_peer *, struct imsg *);
void peer_imsg_flush(struct rde_peer *);
peer_is_up(struct rde_peer *peer)
RB_PROTOTYPE(peer_tree, rde_peer, entry, peer_cmp);
struct rde_peer *);
struct rde_peer *);
struct rde_peer *);
void rde_apply_set(const struct rde_filter_set *, struct rde_peer *,
struct rde_peer *, struct filterstate *, u_int8_t);
int rde_filter_skip_rule(struct rde_peer *, struct filter_rule *);
enum filter_action rde_filter(struct filter_head *, struct rde_peer *,
struct rde_peer *, struct bgpd_addr *, uint8_t,
enum filter_action rde_filter_out(struct rde_filter *, struct rde_peer *,
struct rde_peer *, struct bgpd_addr *, uint8_t,
void rib_pq_enqueue(struct rib_entry *, struct rde_peer *,
struct prefix *prefix_get(struct rib *, struct rde_peer *, uint32_t,
int prefix_update(struct rib *, struct rde_peer *, uint32_t,
int prefix_withdraw(struct rib *, struct rde_peer *, uint32_t,
int prefix_flowspec_update(struct rde_peer *, struct filterstate *,
int prefix_flowspec_withdraw(struct rde_peer *, struct pt_entry *);
struct prefix *prefix_bypeer(struct rib_entry *, struct rde_peer *,
static inline struct rde_peer *
struct adjout_prefix *adjout_prefix_get(struct rde_peer *, uint32_t,
void adjout_prefix_update(struct adjout_prefix *, struct rde_peer *,
void adjout_prefix_withdraw(struct rde_peer *, struct pt_entry *,
void adjout_prefix_reaper(struct rde_peer *);
int adjout_prefix_dump_new(struct rde_peer *, uint8_t,
int adjout_prefix_dump_subtree(struct rde_peer *,
void adjout_peer_init(struct rde_peer *);
void adjout_peer_flush_pending(struct rde_peer *);
void adjout_peer_free(struct rde_peer *);
void pend_attr_done(struct pend_attr *, struct rde_peer *);
void pend_eor_add(struct rde_peer *, uint8_t);
void pend_prefix_add(struct rde_peer *, struct adjout_attr *,
RB_HEAD(peer_tree, rde_peer);
struct pend_prefix_queue *, struct rde_peer *);
void up_generate_updates(struct rde_peer *, struct rib_entry *,
void up_generate_addpath(struct rde_peer *, struct rib_entry *,
void up_generate_addpath_all(struct rde_peer *, struct rib_entry *,
void up_generate_default(struct rde_peer *, uint8_t);
int up_is_eor(struct rde_peer *, uint8_t);
void up_dump_withdraws(struct imsgbuf *, struct rde_peer *, uint8_t);
void up_dump_update(struct imsgbuf *, struct rde_peer *, uint8_t);
RB_ENTRY(rde_peer) entry;
pend_attr_done(struct pend_attr *pa, struct rde_peer *peer)
pend_attr_lookup(struct rde_peer *peer, struct adjout_attr *attrs, uint8_t aid)
pend_eor_add(struct rde_peer *peer, uint8_t aid)
pend_prefix_lookup(struct rde_peer *peer, struct pt_entry *pt,
struct rde_peer *peer)
pend_prefix_add(struct rde_peer *peer, struct adjout_attr *attrs,
struct rde_peer *peer)
static void adjout_prefix_link(struct pt_entry *, struct rde_peer *,
struct pt_entry *, struct rde_peer *);
adjout_prefix_get(struct rde_peer *peer, uint32_t path_id_tx,
adjout_prefix_update(struct adjout_prefix *p, struct rde_peer *peer,
adjout_prefix_withdraw(struct rde_peer *peer, struct pt_entry *pte,
adjout_prefix_reaper(struct rde_peer *peer)
struct rde_peer *peer)
adjout_prefix_dump_new(struct rde_peer *peer, uint8_t aid,
adjout_prefix_dump_subtree(struct rde_peer *peer, struct bgpd_addr *subtree,
adjout_prefix_link(struct pt_entry *pte, struct rde_peer *peer,
struct rde_peer *peer)
adjout_peer_init(struct rde_peer *peer)
pend_attr_free(struct pend_attr *pa, struct rde_peer *peer)
adjout_peer_flush_pending(struct rde_peer *peer)
adjout_peer_free(struct rde_peer *peer)
struct rde_peer *peer)
apply_flag(uint32_t in, uint8_t flag, struct rde_peer *peer, uint32_t *out,
struct rde_peer *peer)
struct rde_peer *peer)
fc2c(const struct community *fc, struct rde_peer *peer, struct community *c,
struct rde_peer *peer1, *peer2;
struct rde_peer *peer = NULL;
struct rde_peer *peer;
rde_filter(struct filter_head *rules, struct rde_peer *peer,
struct rde_peer *from, struct bgpd_addr *prefix, uint8_t plen,
rde_filter_out(struct rde_filter *rf, struct rde_peer *peer,
struct rde_peer *from, struct bgpd_addr *prefix, uint8_t plen,
rde_filter_match(struct filter_match *match, struct rde_peer *peer,
struct rde_peer *from, struct filterstate *state,
rde_filter_skip_rule(struct rde_peer *peer, struct filter_rule *f)
rde_apply_set(const struct rde_filter_set *rfs, struct rde_peer *peer,
struct rde_peer *from, struct filterstate *state, uint8_t aid)
peer_foreach(void (*callback)(struct rde_peer *, void *), void *arg)
struct rde_peer *peer, *np;
struct rde_peer *
struct rde_peer needle;
struct rde_peer *
struct rde_peer *peer;
struct rde_peer *
struct rde_peer *peer;
peer = calloc(1, sizeof(struct rde_peer));
struct rde_peer *p;
peer_apply_out_filter(struct rde_peer *peer, struct filter_head *rules)
peer_cmp(struct rde_peer *a, struct rde_peer *b)
RB_GENERATE(peer_tree, rde_peer, entry, peer_cmp);
peer_generate_update(struct rde_peer *peer, struct rib_entry *re,
rde_enqueue_updates(struct rib_entry *re, struct rde_peer *peer,
struct rde_peer *p;
struct rde_peer *peerself;
peer_process_updates(struct rde_peer *peer, void *bula)
struct rde_peer *p;
struct rde_peer *peer;
struct rde_peer *peer = ((struct peer_flush *)arg)->peer;
peer_has_as4byte(struct rde_peer *peer)
peer_up(struct rde_peer *peer, struct session_up *sup)
peer_has_add_path(struct rde_peer *peer, uint8_t aid, int mode)
peer_down(struct rde_peer *peer)
struct rde_peer *peer = ptr;
struct rde_peer *peer = ptr;
peer_delete(struct rde_peer *peer)
peer_flush(struct rde_peer *peer, uint8_t aid, monotime_t staletime)
peer_has_ext_msg(struct rde_peer *peer)
peer_stale(struct rde_peer *peer, uint8_t aid, int flushall)
struct rde_peer *peer = ptr;
peer_has_ext_nexthop(struct rde_peer *peer, uint8_t aid)
struct rde_peer *peer = ptr;
peer_blast(struct rde_peer *peer, uint8_t aid)
struct rde_peer *peer = ptr;
peer_dump(struct rde_peer *peer, uint8_t aid)
peer_permit_as_set(struct rde_peer *peer)
peer_begin_rrefresh(struct rde_peer *peer, uint8_t aid)
struct rde_peer *p;
peer_imsg_push(struct rde_peer *peer, struct imsg *imsg)
peer_imsg_pop(struct rde_peer *peer, struct imsg *imsg)
peer_imsg_flush(struct rde_peer *peer)
struct rde_peer *peer, *np;
struct rde_peer *peer, uint32_t path_id, uint32_t path_id_tx,
prefix_move(struct prefix *p, struct rde_peer *peer,
prefix_withdraw(struct rib *rib, struct rde_peer *peer, uint32_t path_id,
prefix_flowspec_update(struct rde_peer *peer, struct filterstate *state,
prefix_flowspec_withdraw(struct rde_peer *peer, struct pt_entry *pte)
prefix_bypeer(struct rib_entry *re, struct rde_peer *peer, uint32_t path_id)
struct rde_peer *peer, uint32_t path_id, uint32_t path_id_tx,
rib_pq_enqueue(struct rib_entry *re, struct rde_peer *peer,
struct rde_peer *, uint32_t, uint32_t, struct rde_aspath *,
static int prefix_move(struct prefix *, struct rde_peer *,
struct pt_entry *, struct rde_peer *, uint32_t, uint32_t,
prefix_get(struct rib *rib, struct rde_peer *peer, uint32_t path_id,
prefix_update(struct rib *rib, struct rde_peer *peer, uint32_t path_id,
up_dump_withdraws(struct imsgbuf *imsg, struct rde_peer *peer, uint8_t aid)
up_dump_withdraw_one(struct rde_peer *peer, struct pt_entry *pt,
up_enforce_open_policy(struct rde_peer *peer, struct filterstate *state,
up_dump_update(struct imsgbuf *imsg, struct rde_peer *peer, uint8_t aid)
up_process_prefix(struct rde_peer *peer, struct prefix *new,
up_generate_updates(struct rde_peer *peer, struct rib_entry *re,
up_generate_addpath(struct rde_peer *peer, struct rib_entry *re,
up_generate_addpath_all(struct rde_peer *peer, struct rib_entry *re,
up_generate_default(struct rde_peer *peer, uint8_t aid)
extern struct rde_peer *peerself;
up_get_nexthop(struct rde_peer *peer, struct filterstate *state, uint8_t aid)
static void up_prep_adjout(struct rde_peer *, struct filterstate *, uint8_t);
up_prep_adjout(struct rde_peer *peer, struct filterstate *state, uint8_t aid)
up_test_update(struct rde_peer *peer, struct prefix *p)
up_generate_attr(struct ibuf *buf, struct rde_peer *peer,
struct rde_peer *frompeer;
up_is_eor(struct rde_peer *peer, uint8_t aid)
struct rde_peer *peer, int withdraw)
up_generate_mp_reach(struct ibuf *buf, struct rde_peer *peer,