diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2010-03-26 14:48:01 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2010-03-26 14:48:01 +0100 |
commit | af157fa3dbe2bba0674eb7634efd3ade6c89d604 (patch) | |
tree | a4ea7c3b83a3af814eace38d9c02bd2f468d644d /proto/ospf/ospf.h | |
parent | 885b3d6127ae2c5c4f17d9dba95ffe67bdf7a688 (diff) |
Disable multiple OSPF pseudointerfaces on BSD.
Diffstat (limited to 'proto/ospf/ospf.h')
-rw-r--r-- | proto/ospf/ospf.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/proto/ospf/ospf.h b/proto/ospf/ospf.h index 9e02d758..ef51b9fd 100644 --- a/proto/ospf/ospf.h +++ b/proto/ospf/ospf.h @@ -772,6 +772,25 @@ struct ospf_iface_patt #endif }; +#if defined(OSPFv2) && !defined(CONFIG_MC_PROPER_SRC) +static inline int +ospf_iface_stubby(struct ospf_iface_patt *ip, struct ifa *addr) +{ + /* + * We cannot properly support multiple OSPF ifaces on real iface + * with multiple prefixes, therefore we force OSPF ifaces with + * non-primary IP prefixes to be stub. + */ + return ip->stub || !(addr->flags & IA_PRIMARY); +} +#else +static inline int +ospf_iface_stubby(struct ospf_iface_patt *ip, struct ifa *addr UNUSED) +{ + return ip->stub; +} +#endif + int ospf_import_control(struct proto *p, rte **new, ea_list **attrs, struct linpool *pool); struct ea_list *ospf_make_tmp_attrs(struct rte *rt, struct linpool *pool); |