From d7e60dd7a9f0213aaa82d256a78ab74887946e53 Mon Sep 17 00:00:00 2001 From: "Andrew J. Schorr" Date: Thu, 29 Jun 2006 20:20:52 +0000 Subject: [ospfd] Implement new ospf router subcommand "log-adjacency-changes [detail]" 2006-06-28 Erik Muller * ospfd.h: Define 2 new struct ospf config flags: OSPF_LOG_ADJACENCY_CHANGES and OSPF_LOG_ADJACENCY_DETAIL * ospf_nsm.c (nsm_change_state): Log adjacency changes if requested. * ospf_vty.c (ospf_log_adjacency_changes): New command function to implement ospf subcommand "log-adjacency-changes [detail]". (no_ospf_log_adjacency_changes) Turn off log-adjacency-changes. (show_ip_ospf) Show whether adjacency changes are logged. (ospf_config_write) Add "log-adjacency-changes [detail]" to config. (ospf_vty_init) Add ospf_log_adjacency_changes and no_ospf_log_adjacency_changes. * ospfd.texi: Document new ospf router subcommand "log-adjacency-changes [detail]". --- ospfd/ospf_nsm.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'ospfd/ospf_nsm.c') diff --git a/ospfd/ospf_nsm.c b/ospfd/ospf_nsm.c index 8a93f0e6..878ab567 100644 --- a/ospfd/ospf_nsm.c +++ b/ospfd/ospf_nsm.c @@ -697,7 +697,17 @@ nsm_change_state (struct ospf_neighbor *nbr, int state) if (oi->type == OSPF_IFTYPE_VIRTUALLINK) vl_area = ospf_area_lookup_by_area_id (oi->ospf, oi->vl_data->vl_area_id); - + + /* Optionally notify about adjacency changes */ + if (CHECK_FLAG(oi->ospf->config, OSPF_LOG_ADJACENCY_CHANGES) && + (old_state != state) && + (CHECK_FLAG(oi->ospf->config, OSPF_LOG_ADJACENCY_DETAIL) || + (state == NSM_Full) || (state < old_state))) + zlog_notice("AdjChg: Nbr %s on %s: %s -> %s", + inet_ntoa (nbr->router_id), IF_NAME (nbr->oi), + LOOKUP (ospf_nsm_state_msg, old_state), + LOOKUP (ospf_nsm_state_msg, state)); + #ifdef HAVE_SNMP /* Terminal state or regression */ if ((state == NSM_Full) || (state == NSM_TwoWay) || (state < old_state)) -- cgit v1.2.3