summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Franke <chris@opensourcerouting.org>2018-10-24 05:28:12 +0200
committerChristian Franke <chris@opensourcerouting.org>2018-10-24 07:50:44 +0200
commitd62db30d9241d0b97a2cae8fdb16ae90b5b2e964 (patch)
treeeb7924fc50f0692674289a5da063947e9c8b4758
parent82d6d6e9be004cd8dbe88b0603f6420fcd80a0a5 (diff)
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>
-rw-r--r--isisd/isis_spf.c11
-rw-r--r--isisd/isis_spf.h6
2 files changed, 12 insertions, 5 deletions
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,