diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index 1440a3becf..1c4ca249ee 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -1248,7 +1248,8 @@ static struct isis_spf_run *isis_run_spf_arg(struct isis_area *area, int level) return run; } -int isis_spf_schedule(struct isis_area *area, int level) +int _isis_spf_schedule(struct isis_area *area, int level, + const char *func, const char *file, int line) { struct isis_spftree *spftree = area->spftree[SPFTREE_IPV4][level - 1]; time_t now = monotime(NULL); @@ -1257,10 +1258,12 @@ int isis_spf_schedule(struct isis_area *area, int level) assert(diff >= 0); assert(area->is_type & level); - if (isis->debugs & DEBUG_SPF_EVENTS) + if (isis->debugs & DEBUG_SPF_EVENTS) { zlog_debug( - "ISIS-Spf (%s) L%d SPF schedule called, lastrun %d sec ago", - area->area_tag, level, diff); + "ISIS-Spf (%s) L%d SPF schedule called, lastrun %d sec ago" + " Caller: %s %s:%d", + area->area_tag, level, diff, func, file, line); + } if (area->spf_delay_ietf[level - 1]) { /* Need to call schedule function also if spf delay is running diff --git a/isisd/isis_spf.h b/isisd/isis_spf.h index f4db98cfed..8bf9c9978a 100644 --- a/isisd/isis_spf.h +++ b/isisd/isis_spf.h @@ -34,7 +34,11 @@ void isis_spftree_del(struct isis_spftree *spftree); void spftree_area_init(struct isis_area *area); void spftree_area_del(struct isis_area *area); void spftree_area_adj_del(struct isis_area *area, struct isis_adjacency *adj); -int isis_spf_schedule(struct isis_area *area, int level); +#define isis_spf_schedule(area, level) \ + _isis_spf_schedule((area), (level), __func__, \ + __FILE__, __LINE__) +int _isis_spf_schedule(struct isis_area *area, int level, + const char *func, const char *file, int line); void isis_spf_cmds_init(void); void isis_spf_print(struct isis_spftree *spftree, struct vty *vty); struct isis_spftree *isis_run_hopcount_spf(struct isis_area *area,