mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Initial commit on integrated BIRD
New data types net_addr and variants (in lib/net.h) describing network addresses (prefix/pxlen). Modifications of FIB structures to handle these data types and changing everything to use these data types instead of prefix/pxlen pairs where possible. The commit is WiP, some protocols are not yet updated (BGP, Kernel), and the code contains some temporary scaffolding. Comments are welcome.
This commit is contained in:
@@ -258,9 +258,7 @@ radv_ifa_notify(struct proto *p, unsigned flags, struct ifa *a)
|
||||
|
||||
static inline int radv_net_match_trigger(struct radv_config *cf, net *n)
|
||||
{
|
||||
return cf->trigger_valid &&
|
||||
(n->n.pxlen == cf->trigger_pxlen) &&
|
||||
ipa_equal(n->n.prefix, cf->trigger_prefix);
|
||||
return cf->trigger_valid && net_equal(n->n.addr, cf->trigger);
|
||||
}
|
||||
|
||||
int
|
||||
@@ -306,8 +304,7 @@ radv_check_active(struct proto_radv *ra)
|
||||
if (! cf->trigger_valid)
|
||||
return 1;
|
||||
|
||||
return rt_examine(ra->p.table, cf->trigger_prefix, cf->trigger_pxlen,
|
||||
&(ra->p), ra->p.cf->out_filter);
|
||||
return rt_examine(ra->p.table, cf->trigger, &ra->p, ra->p.cf->out_filter);
|
||||
}
|
||||
|
||||
static struct proto *
|
||||
|
@@ -50,8 +50,7 @@ struct radv_config
|
||||
list rdnss_list; /* Global list of RDNSS configs (struct radv_rdnss_config) */
|
||||
list dnssl_list; /* Global list of DNSSL configs (struct radv_dnssl_config) */
|
||||
|
||||
ip_addr trigger_prefix; /* Prefix of a trigger route, if defined */
|
||||
u8 trigger_pxlen; /* Pxlen of a trigger route, if defined */
|
||||
net_addr *trigger; /* Prefix of a trigger route, if defined */
|
||||
u8 trigger_valid; /* Whether a trigger route is defined */
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user