summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_intra.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_intra.c')
-rw-r--r--ospf6d/ospf6_intra.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/ospf6d/ospf6_intra.c b/ospf6d/ospf6_intra.c
index 103e8fc2..bba63f47 100644
--- a/ospf6d/ospf6_intra.c
+++ b/ospf6d/ospf6_intra.c
@@ -1291,6 +1291,58 @@ ospf6_brouter_debug_print (struct ospf6_route *brouter)
}
void
+ospf6_brouter_debug_print (struct ospf6_route *brouter)
+{
+ u_int32_t brouter_id;
+ char brouter_name[16];
+ char area_name[16];
+ char destination[64];
+ char installed[16], changed[16];
+ struct timeval now, res;
+ char id[16], adv_router[16];
+ char capa[16], options[16];
+
+ brouter_id = ADV_ROUTER_IN_PREFIX (&brouter->prefix);
+ inet_ntop (AF_INET, &brouter_id, brouter_name, sizeof (brouter_name));
+ inet_ntop (AF_INET, &brouter->path.area_id, area_name, sizeof (area_name));
+ ospf6_linkstate_prefix2str (&brouter->prefix, destination,
+ sizeof (destination));
+
+ gettimeofday (&now, (struct timezone *) NULL);
+ timersub (&now, &brouter->installed, &res);
+ timerstring (&res, installed, sizeof (installed));
+
+ gettimeofday (&now, (struct timezone *) NULL);
+ timersub (&now, &brouter->changed, &res);
+ timerstring (&res, changed, sizeof (changed));
+
+ inet_ntop (AF_INET, &brouter->path.origin.id, id, sizeof (id));
+ inet_ntop (AF_INET, &brouter->path.origin.adv_router, adv_router,
+ sizeof (adv_router));
+
+ ospf6_options_printbuf (brouter->path.options, options, sizeof (options));
+ ospf6_capability_printbuf (brouter->path.router_bits, capa, sizeof (capa));
+
+ zlog_info ("Brouter: %s via area %s", brouter_name, area_name);
+ zlog_info (" memory: prev: %p this: %p next: %p parent rnode: %p",
+ brouter->prev, brouter, brouter->next, brouter->rnode);
+ zlog_info (" type: %d prefix: %s installed: %s changed: %s",
+ brouter->type, destination, installed, changed);
+ zlog_info (" lock: %d flags: %s%s%s%s", brouter->lock,
+ (CHECK_FLAG (brouter->flag, OSPF6_ROUTE_BEST) ? "B" : "-"),
+ (CHECK_FLAG (brouter->flag, OSPF6_ROUTE_ADD) ? "A" : "-"),
+ (CHECK_FLAG (brouter->flag, OSPF6_ROUTE_REMOVE) ? "R" : "-"),
+ (CHECK_FLAG (brouter->flag, OSPF6_ROUTE_CHANGE) ? "C" : "-"));
+ zlog_info (" path type: %s ls-origin %s id: %s adv-router %s",
+ OSPF6_PATH_TYPE_NAME (brouter->path.type),
+ ospf6_lstype_name (brouter->path.origin.type),
+ id, adv_router);
+ zlog_info (" options: %s router-bits: %s metric-type: %d metric: %d/%d",
+ options, capa, brouter->path.metric_type,
+ brouter->path.cost, brouter->path.cost_e2);
+}
+
+void
ospf6_intra_brouter_calculation (struct ospf6_area *oa)
{
struct ospf6_route *brouter, *copy;