summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ospfd/ospf_interface.c4
-rw-r--r--ospfd/ospf_neighbor.c8
-rw-r--r--ospfd/ospf_neighbor.h4
-rw-r--r--ospfd/ospfd.c6
4 files changed, 11 insertions, 11 deletions
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index a062004ac..5602ebe89 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -297,7 +297,7 @@ ospf_if_cleanup (struct ospf_interface *oi)
ospf_ls_upd_queue_empty (oi);
/* Reset pseudo neighbor. */
- ospf_nbr_self_reset (oi);
+ ospf_nbr_self_reset (oi, oi->ospf->router_id);
}
void
@@ -926,7 +926,7 @@ ospf_vl_new (struct ospf *ospf, struct ospf_vl_data *vl_data)
zlog_debug ("ospf_vl_new(): set associated area to the backbone");
/* Add pseudo neighbor. */
- ospf_nbr_self_reset (voi);
+ ospf_nbr_self_reset (voi, voi->ospf->router_id);
ospf_area_add_if (voi->area, voi);
diff --git a/ospfd/ospf_neighbor.c b/ospfd/ospf_neighbor.c
index 16753b85d..1954447b6 100644
--- a/ospfd/ospf_neighbor.c
+++ b/ospfd/ospf_neighbor.c
@@ -238,18 +238,18 @@ ospf_nbr_bidirectional (struct in_addr *router_id,
/* reset nbr_self */
void
-ospf_nbr_self_reset (struct ospf_interface *oi)
+ospf_nbr_self_reset (struct ospf_interface *oi, struct in_addr router_id)
{
if (oi->nbr_self)
ospf_nbr_delete (oi->nbr_self);
oi->nbr_self = ospf_nbr_new (oi);
- ospf_nbr_add_self (oi);
+ ospf_nbr_add_self (oi, router_id);
}
/* Add self to nbr list. */
void
-ospf_nbr_add_self (struct ospf_interface *oi)
+ospf_nbr_add_self (struct ospf_interface *oi, struct in_addr router_id)
{
struct prefix p;
struct route_node *rn;
@@ -260,7 +260,7 @@ ospf_nbr_add_self (struct ospf_interface *oi)
/* Initial state */
oi->nbr_self->address = *oi->address;
oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
- oi->nbr_self->router_id = oi->ospf->router_id;
+ oi->nbr_self->router_id = router_id;
oi->nbr_self->src = oi->address->u.prefix4;
oi->nbr_self->state = NSM_TwoWay;
diff --git a/ospfd/ospf_neighbor.h b/ospfd/ospf_neighbor.h
index 81e212b57..0e209d211 100644
--- a/ospfd/ospf_neighbor.h
+++ b/ospfd/ospf_neighbor.h
@@ -102,8 +102,8 @@ extern struct ospf_neighbor *ospf_nbr_new (struct ospf_interface *);
extern void ospf_nbr_free (struct ospf_neighbor *);
extern void ospf_nbr_delete (struct ospf_neighbor *);
extern int ospf_nbr_bidirectional (struct in_addr *, struct in_addr *, int);
-extern void ospf_nbr_self_reset (struct ospf_interface *);
-extern void ospf_nbr_add_self (struct ospf_interface *);
+extern void ospf_nbr_self_reset (struct ospf_interface *, struct in_addr);
+extern void ospf_nbr_add_self (struct ospf_interface *, struct in_addr);
extern int ospf_nbr_count (struct ospf_interface *, int);
#ifdef HAVE_OPAQUE_LSA
extern int ospf_nbr_count_opaque_capable (struct ospf_interface *);
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index ea66042f2..2034ed1db 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -124,7 +124,7 @@ ospf_router_id_update (struct ospf *ospf)
* oi->nbr_self->router_id = router_id for
* !(virtual | ptop) links
*/
- ospf_nbr_self_reset (oi);
+ ospf_nbr_self_reset (oi, router_id);
}
/* If AS-external-LSA is queued, then flush those LSAs. */
@@ -888,7 +888,7 @@ add_ospf_interface (struct interface *ifp, struct ospf_area *area,
oi->type = IF_DEF_PARAMS (ifp)->type;
/* Add pseudo neighbor. */
- ospf_nbr_self_reset (oi);
+ ospf_nbr_self_reset (oi, oi->ospf->router_id);
ospf_area_add_if (oi->area, oi);
@@ -1160,7 +1160,7 @@ ospf_network_run_interface (struct prefix *p, struct ospf_area *area,
oi->output_cost = ospf_if_get_output_cost (oi);
/* Add pseudo neighbor. */
- ospf_nbr_add_self (oi);
+ ospf_nbr_add_self (oi, oi->ospf->router_id);
/* Relate ospf interface to ospf instance. */
oi->ospf = area->ospf;