summaryrefslogtreecommitdiff
path: root/proto/ospf/rt.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2010-12-24 18:08:07 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2010-12-24 18:08:07 +0100
commit919f5411c48f509a49400a1293e670f5d5d2bcf1 (patch)
tree0701f270439c2e71a017c75f3095367db724ca8e /proto/ospf/rt.c
parent39847cda73d8e8536300b74d90d01b6e2f233ef7 (diff)
Implements Point-to-MultiPoint interface type for OSPF.
Diffstat (limited to 'proto/ospf/rt.c')
-rw-r--r--proto/ospf/rt.c7
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
}