summaryrefslogtreecommitdiffstats
path: root/ospfd/ospfd.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospfd.c')
-rw-r--r--ospfd/ospfd.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index c951a29a..1d38adcf 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -958,7 +958,65 @@ ospf_network_run (struct prefix *p, struct ospf_area *area)
/* Get target interface. */
for (ALL_LIST_ELEMENTS_RO (om->iflist, node, ifp))
+<<<<<<< HEAD:ospfd/ospfd.c
+ {
+ struct listnode *cnode;
+
+ if (memcmp (ifp->name, "VLINK", 5) == 0)
+ continue;
+
+ /* if interface prefix is match specified prefix,
+ 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 (ospf, &(addr->u.prefix4))
+ && ospf_network_match_iface(co,p))
+ {
+ struct ospf_interface *oi;
+
+ oi = ospf_if_new (ospf, ifp, co->address);
+ oi->connected = co;
+
+ oi->area = area;
+
+ oi->params = ospf_lookup_if_params (ifp, oi->address->u.prefix4);
+ oi->output_cost = ospf_if_get_output_cost (oi);
+
+ /* Add pseudo neighbor. */
+ ospf_nbr_add_self (oi);
+
+ /* Relate ospf interface to ospf instance. */
+ oi->ospf = ospf;
+
+ /* update network type as interface flag */
+ /* If network type is specified previously,
+ skip network type setting. */
+ oi->type = IF_DEF_PARAMS (ifp)->type;
+
+ ospf_area_add_if (oi->area, oi);
+
+ /* if router_id is not configured, dont bring up
+ * interfaces.
+ * ospf_router_id_update() will call ospf_if_update
+ * whenever r-id is configured instead.
+ */
+ if ((ospf->router_id.s_addr != 0)
+ && if_is_operative (ifp))
+ ospf_if_up (oi);
+ }
+ }
+ }
+=======
ospf_network_run_interface (p, area, ifp);
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:ospfd/ospfd.c
}
void