diff options
author | Joakim Tjernlund <Joakim.Tjernlund@transmode.se> | 2009-07-27 12:42:29 +0200 |
---|---|---|
committer | Paul Jakma <paul@quagga.net> | 2009-07-28 18:40:47 +0100 |
commit | f0f63841582ed97362619a53fb711747f09d961b (patch) | |
tree | bb663103d3b25064143685a4f3f40cd008b3cc0f /ospfd/ospfd.c | |
parent | 2158ad2359a370dd349f4543a2d5d535bb5a8770 (diff) |
ospfd: export ospf_if_table_lookup() and use it in ospf_network_run_interface()
Makes it possible to run OSPF on multiple PtP interfaces
with the same remote address.
* ospfd/ospf_interface.c: Export ospf_if_table_lookup().
* ospfd/ospf_interface.h: ditto.
* ospfd/ospfd.c: (ospf_network_run_interface) Use ospf_if_table_lookup() to
determine whether OSPF is already configured for a subnet and interface.
Diffstat (limited to 'ospfd/ospfd.c')
-rw-r--r-- | ospfd/ospfd.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c index 08e41005..b86986b5 100644 --- a/ospfd/ospfd.c +++ b/ospfd/ospfd.c @@ -901,15 +901,12 @@ ospf_network_run_interface (struct prefix *p, struct ospf_area *area, then create socket and join multicast group. */ for (ALL_LIST_ELEMENTS_RO (ifp->connected, cnode, co)) { - struct prefix *addr; - + if (CHECK_FLAG(co->flags,ZEBRA_IFA_SECONDARY)) continue; - addr = CONNECTED_ID(co); - if (p->family == co->address->family - && ! ospf_if_is_configured (area->ospf, &(addr->u.prefix4)) + && ! ospf_if_table_lookup(ifp, co->address) && ospf_network_match_iface(co,p)) { struct ospf_interface *oi; |