summaryrefslogtreecommitdiff
path: root/ospfd/ospf_opaque.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospf_opaque.c')
-rw-r--r--ospfd/ospf_opaque.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/ospfd/ospf_opaque.c b/ospfd/ospf_opaque.c
index 5d2d65658f..d8b272d60b 100644
--- a/ospfd/ospf_opaque.c
+++ b/ospfd/ospf_opaque.c
@@ -2051,7 +2051,7 @@ void ospf_opaque_lsa_refresh_schedule(struct ospf_lsa *lsa0)
struct opaque_info_per_type *oipt;
struct opaque_info_per_id *oipi;
struct ospf_lsa *lsa;
- struct ospf *top;
+ struct ospf *ospf;
int delay;
if ((oipt = lookup_opaque_info_by_type(lsa0)) == NULL
@@ -2076,6 +2076,11 @@ void ospf_opaque_lsa_refresh_schedule(struct ospf_lsa *lsa0)
goto out;
}
+ if ((lsa0->area != NULL) && (lsa0->area->ospf != NULL))
+ ospf = lsa0->area->ospf;
+ else
+ ospf = ospf_lookup_by_vrf_id(VRF_DEFAULT);
+
/* Delete this lsa from neighbor retransmit-list. */
switch (lsa->data->type) {
case OSPF_OPAQUE_LINK_LSA:
@@ -2083,10 +2088,7 @@ void ospf_opaque_lsa_refresh_schedule(struct ospf_lsa *lsa0)
ospf_ls_retransmit_delete_nbr_area(lsa->area, lsa);
break;
case OSPF_OPAQUE_AS_LSA:
- top = ospf_lookup_by_vrf_id(VRF_DEFAULT);
- if ((lsa0->area != NULL) && (lsa0->area->ospf != NULL))
- top = lsa0->area->ospf;
- ospf_ls_retransmit_delete_nbr_as(top, lsa);
+ ospf_ls_retransmit_delete_nbr_as(ospf, lsa);
break;
default:
flog_warn(EC_OSPF_LSA_UNEXPECTED, "%s: Unexpected LSA-type(%u)",
@@ -2094,17 +2096,14 @@ void ospf_opaque_lsa_refresh_schedule(struct ospf_lsa *lsa0)
goto out;
}
- delay = ospf_lsa_refresh_delay(lsa);
+ delay = ospf_lsa_refresh_delay(ospf, lsa);
if (IS_DEBUG_OSPF_EVENT)
- zlog_debug(
- "Schedule Type-%u Opaque-LSA to REFRESH in %d sec later: [opaque-type=%u, opaque-id=%x]",
- lsa->data->type, delay,
- GET_OPAQUE_TYPE(ntohl(lsa->data->id.s_addr)),
- GET_OPAQUE_ID(ntohl(lsa->data->id.s_addr)));
+ zlog_debug("Schedule Type-%u Opaque-LSA to REFRESH in %d msec later: [opaque-type=%u, opaque-id=%x]",
+ lsa->data->type, delay, GET_OPAQUE_TYPE(ntohl(lsa->data->id.s_addr)),
+ GET_OPAQUE_ID(ntohl(lsa->data->id.s_addr)));
- OSPF_OPAQUE_TIMER_ON(oipi->t_opaque_lsa_self,
- ospf_opaque_lsa_refresh_timer, oipi, delay * 1000);
+ OSPF_OPAQUE_TIMER_ON(oipi->t_opaque_lsa_self, ospf_opaque_lsa_refresh_timer, oipi, delay);
out:
return;
}