Unnumbered OSPF interfaces should be always in the point-to-point mode.

This commit is contained in:
Ondrej Zajicek 2010-02-07 09:49:34 +01:00
parent 76b53a4e20
commit aa80826e4a

View file

@ -355,6 +355,9 @@ ospf_open_mc_socket(struct ospf_iface *ifa)
u8 u8
ospf_iface_clasify(struct iface * ifa) ospf_iface_clasify(struct iface * ifa)
{ {
if (ifa->addr->flags & IA_UNNUMBERED)
return OSPF_IT_PTP;
if ((ifa->flags & (IF_MULTIACCESS | IF_MULTICAST)) == if ((ifa->flags & (IF_MULTIACCESS | IF_MULTICAST)) ==
(IF_MULTIACCESS | IF_MULTICAST)) (IF_MULTIACCESS | IF_MULTICAST))
return OSPF_IT_BCAST; return OSPF_IT_BCAST;
@ -458,6 +461,16 @@ ospf_iface_new(struct proto_ospf *po, struct iface *iface,
else else
ifa->type = ip->type; ifa->type = ip->type;
#ifdef OSPFv2
if ((ifa->type != OSPF_IT_PTP) && (ifa->type != OSPF_IT_VLINK) &&
(ifa->iface->addr->flags & IA_UNNUMBERED))
{
log(L_WARN "%s: Missing proper IP prefix on interface %s, forcing point-to-point mode",
p->name, iface->name);
ifa->type = OSPF_IT_PTP;
}
#endif
init_list(&ifa->neigh_list); init_list(&ifa->neigh_list);
init_list(&ifa->nbma_list); init_list(&ifa->nbma_list);