diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2010-12-24 18:08:07 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2010-12-24 18:08:07 +0100 |
commit | 919f5411c48f509a49400a1293e670f5d5d2bcf1 (patch) | |
tree | 0701f270439c2e71a017c75f3095367db724ca8e /proto/ospf/rt.c | |
parent | 39847cda73d8e8536300b74d90d01b6e2f233ef7 (diff) |
Implements Point-to-MultiPoint interface type for OSPF.
Diffstat (limited to 'proto/ospf/rt.c')
-rw-r--r-- | proto/ospf/rt.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c index 5469bdcf..953a679a 100644 --- a/proto/ospf/rt.c +++ b/proto/ospf/rt.c @@ -1341,12 +1341,13 @@ static inline int match_rtlink(struct ospf_iface *ifa, struct ospf_lsa_rt_link *rtl) { #ifdef OSPFv2 - return (ifa->type == OSPF_IT_PTP) && (ifa->cost == rtl->metric) && + return ((ifa->type == OSPF_IT_PTP) || (ifa->type == OSPF_IT_PTMP)) && + (ifa->cost == rtl->metric) && (((ifa->addr->flags & IA_UNNUMBERED) ? ifa->iface->index : ipa_to_u32(ifa->addr->ip)) == rtl->data); #else /* OSPFv3 */ - return (ifa->type == OSPF_IT_PTP) && (ifa->cost == rtl->metric) && - (ifa->iface->index == rtl->lif); + return ((ifa->type == OSPF_IT_PTP) || (ifa->type == OSPF_IT_PTMP)) && + (ifa->cost == rtl->metric) && (ifa->iface->index == rtl->lif); #endif } |