ldpd_conf
tnbr_new(struct ldpd_conf *xconf, int af, union ldpd_addr *addr)
tnbr_find(struct ldpd_conf *xconf, int af, union ldpd_addr *addr)
if_lookup(struct ldpd_conf *xconf, unsigned short ifindex)
l2vpn_find(struct ldpd_conf *xconf, const char *name)
static struct ldpd_conf *nconf;
if ((nconf = malloc(sizeof(struct ldpd_conf))) ==
memcpy(nconf, imsg.data, sizeof(struct ldpd_conf));
struct ldpd_conf *ldeconf;
extern struct ldpd_conf *ldeconf;
struct l2vpn *l2vpn_find(struct ldpd_conf *, const char *);
merge_l2vpns(struct ldpd_conf *conf, struct ldpd_conf *xconf)
merge_l2vpn(struct ldpd_conf *xconf, struct l2vpn *l2vpn, struct l2vpn *xl)
auth_find(struct ldpd_conf *conf, const struct ldp_auth *needle)
merge_auths(struct ldpd_conf *conf, struct ldpd_conf *xconf)
struct ldpd_conf *
struct ldpd_conf *xconf;
config_clear(struct ldpd_conf *conf)
struct ldpd_conf *xconf;
if ((ldpd_conf = parse_config(conffile)) == NULL ) {
print_config(ldpd_conf);
main_imsg_send_config(ldpd_conf);
if (kr_init(!(ldpd_conf->flags & F_LDPD_NO_FIB_UPDATE),
ldpd_conf->rdomain) == -1)
if (ldpd_conf->ipv4.flags & F_LDPD_AF_ENABLED)
if (ldpd_conf->ipv6.flags & F_LDPD_AF_ENABLED)
config_clear(ldpd_conf);
static int main_imsg_send_config(struct ldpd_conf *);
static void merge_global(struct ldpd_conf *, struct ldpd_conf *);
static void merge_ifaces(struct ldpd_conf *, struct ldpd_conf *);
static void merge_tnbrs(struct ldpd_conf *, struct ldpd_conf *);
static void merge_nbrps(struct ldpd_conf *, struct ldpd_conf *);
static void merge_l2vpns(struct ldpd_conf *, struct ldpd_conf *);
static void merge_l2vpn(struct ldpd_conf *, struct l2vpn *,
static void merge_auths(struct ldpd_conf *, struct ldpd_conf *);
ldp_af_conf_get(struct ldpd_conf *xconf, int af)
struct ldpd_conf *ldpd_conf;
ldp_is_dual_stack(struct ldpd_conf *xconf)
main_imsg_send_config(struct ldpd_conf *xconf)
struct ldpd_conf *xconf;
merge_config(ldpd_conf, xconf);
merge_config(struct ldpd_conf *conf, struct ldpd_conf *xconf)
merge_global(struct ldpd_conf *conf, struct ldpd_conf *xconf)
merge_ifaces(struct ldpd_conf *conf, struct ldpd_conf *xconf)
merge_tnbrs(struct ldpd_conf *conf, struct ldpd_conf *xconf)
merge_nbrps(struct ldpd_conf *conf, struct ldpd_conf *xconf)
extern struct ldpd_conf *ldpd_conf;
struct ldpd_conf *parse_config(char *);
struct ldpd_af_conf *ldp_af_conf_get(struct ldpd_conf *, int);
int ldp_is_dual_stack(struct ldpd_conf *);
void merge_config(struct ldpd_conf *, struct ldpd_conf *);
struct ldpd_conf *config_new_empty(void);
void config_clear(struct ldpd_conf *);
void print_config(struct ldpd_conf *);
static struct ldpd_conf *nconf;
if ((nconf = malloc(sizeof(struct ldpd_conf))) ==
memcpy(nconf, imsg.data, sizeof(struct ldpd_conf));
struct ldpd_conf *leconf;
extern struct ldpd_conf *leconf;
struct iface *if_lookup(struct ldpd_conf *, unsigned short);
struct tnbr *tnbr_new(struct ldpd_conf *, int, union ldpd_addr *);
struct tnbr *tnbr_find(struct ldpd_conf *, int, union ldpd_addr *);
struct nbr_params *nbr_params_find(struct ldpd_conf *, struct in_addr);
int pfkey_establish(struct ldpd_conf *, struct nbr *);
nbr_params_find(struct ldpd_conf *xconf, struct in_addr lsr_id)
static void clear_config(struct ldpd_conf *xconf);
static struct ldpd_conf *conf;
struct ldpd_conf *
clear_config(struct ldpd_conf *xconf)
pfkey_find_auth(struct ldpd_conf *conf, struct nbr *nbr)
pfkey_establish(struct ldpd_conf *conf, struct nbr *nbr)
print_auth(struct ldpd_conf *conf)
print_config(struct ldpd_conf *conf)
static void print_mainconf(struct ldpd_conf *);
static void print_af(int, struct ldpd_conf *, struct ldpd_af_conf *);
print_mainconf(struct ldpd_conf *conf)
print_af(int af, struct ldpd_conf *conf, struct ldpd_af_conf *af_conf)
if (!(ldpd_conf->ipv6.flags & F_LDPD_AF_NO_GTSM)) {
addr = (ldp_af_conf_get(ldpd_conf, af))->trans_addr;