Christian - If I start Quagga, after the link is already brought up:
dell-s6000-02# show int swp31s2.4 Interface swp31s2.4 is up, line protocol is up Link ups: 0 last: (never) Link downs: 0 last: (never) PTM status: disabled vrf: vrf1014 index 58 metric 0 mtu 1500 flags: <UP,BROADCAST,RUNNING,MULTICAST> HWaddr: 44:38:39:00:85:04 inet 169.254.4.17/30 inet6 fe80::4638:39ff:fe00:8504/64 ND advertised reachable time is 0 milliseconds ND advertised retransmit interval is 0 milliseconds ND router advertisements are sent every 1 seconds ND router advertisements lifetime tracks ra-interval ND router advertisement default router preference is medium Hosts use stateless autoconfig for addresses. Neighbor address(s): inet6 fe80::202:ff:fe00:23/128 dell-s6000-02# We never start at an initial Link up. Possible to get another patch to fix that issue? doanld On Thu, Apr 7, 2016 at 5:00 PM, Jafar Al-Gharaibeh <[email protected]> wrote: > Acked-by: Jafar Al-Gharaibeh <[email protected]> > > > On 4/7/2016 2:43 PM, Christian Franke wrote: > >> From: Christian Franke <[email protected]> >> >> It is quite useful to be able to assert whether specific interfaces have >> flapped or also to verify that specific interfaces have not flapped. >> >> By having counters for those events and storing the last time of their >> occurrence, this is made possible. >> >> Signed-off-by: Christian Franke <[email protected]> >> --- >> zebra/interface.c | 15 +++++++++++++++ >> zebra/interface.h | 6 ++++++ >> 2 files changed, 21 insertions(+) >> >> diff --git a/zebra/interface.c b/zebra/interface.c >> index 8a9225a..ab0dfb5 100644 >> --- a/zebra/interface.c >> +++ b/zebra/interface.c >> @@ -536,6 +536,11 @@ if_up (struct interface *ifp) >> struct listnode *next; >> struct connected *ifc; >> struct prefix *p; >> + struct zebra_if *zif; >> + >> + zif = ifp->info; >> + zif->up_count++; >> + quagga_timestamp(2, zif->up_last, sizeof(zif->up_last)); >> /* Notify the protocol daemons. */ >> zebra_interface_up_update (ifp); >> @@ -569,6 +574,11 @@ if_down (struct interface *ifp) >> struct listnode *next; >> struct connected *ifc; >> struct prefix *p; >> + struct zebra_if *zif; >> + >> + zif = ifp->info; >> + zif->down_count++; >> + quagga_timestamp(2, zif->down_last, sizeof(zif->down_last)); >> /* Notify to the protocol daemons. */ >> zebra_interface_down_update (ifp); >> @@ -728,6 +738,11 @@ if_dump_vty (struct vty *vty, struct interface *ifp) >> vty_out (vty, "down%s", VTY_NEWLINE); >> } >> + vty_out (vty, " Link ups: %5u last: %s%s", zebra_if->up_count, >> + zebra_if->up_last[0] ? zebra_if->up_last : "(never)", >> VTY_NEWLINE); >> + vty_out (vty, " Link downs: %5u last: %s%s", zebra_if->down_count, >> + zebra_if->down_last[0] ? zebra_if->down_last : "(never)", >> VTY_NEWLINE); >> + >> vty_out (vty, " vrf: %u%s", ifp->vrf_id, VTY_NEWLINE); >> if (ifp->desc) >> diff --git a/zebra/interface.h b/zebra/interface.h >> index dbb33c5..a7522bc 100644 >> --- a/zebra/interface.h >> +++ b/zebra/interface.h >> @@ -188,6 +188,12 @@ struct zebra_if >> /* Installed addresses chains tree. */ >> struct route_table *ipv4_subnets; >> + /* Information about up/down changes */ >> + unsigned int up_count; >> + char up_last[QUAGGA_TIMESTAMP_LEN]; >> + unsigned int down_count; >> + char down_last[QUAGGA_TIMESTAMP_LEN]; >> + >> #if defined(HAVE_RTADV) >> struct rtadvconf rtadv; >> #endif /* RTADV */ >> > > > _______________________________________________ > Quagga-dev mailing list > [email protected] > https://lists.quagga.net/mailman/listinfo/quagga-dev >
_______________________________________________ Quagga-dev mailing list [email protected] https://lists.quagga.net/mailman/listinfo/quagga-dev
