]> git.puffer.fish Git - matthieu/frr.git/commitdiff
isisd: Log SPF trigger source when debugging
authorChristian Franke <chris@opensourcerouting.org>
Wed, 24 Oct 2018 03:28:12 +0000 (05:28 +0200)
committerChristian Franke <chris@opensourcerouting.org>
Wed, 24 Oct 2018 05:50:44 +0000 (07:50 +0200)
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>
isisd/isis_spf.c
isisd/isis_spf.h

index 1440a3becf65ff6d18cb97e600782ef50532b3d8..1c4ca249ee57b6c0c95f4fc068e021cf7aa8c402 100644 (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
index f4db98cfed532af958e56671be8aba600e97ca07..8bf9c9978a1924388e08a196589269da8f6b6a05 100644 (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,