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

Reply via email to