isisd: Log SPF trigger source when debugging

For debugging the scheduling of SPF, it is useful to see from
where an SPF run is scheduled. So add this information to the
log.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
This commit is contained in:
Christian Franke 2018-10-24 05:28:12 +02:00
parent 82d6d6e9be
commit d62db30d92
2 changed files with 12 additions and 5 deletions

View File

@ -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

View File

@ -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,