On 4/8/2016 7:24 AM, Donald Sharp wrote:
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 <http://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?

The way I read this patch (and according to Christian's comment ) is to monitor if the interface flapped/went up/down since Quagga started, it is not meant to indicate if the interface is currently up or now (there are already ways to know that). So, the reported output in your case
  is correct; the interface never went up/down since Quagga started.

--Jafar


doanld

On Thu, Apr 7, 2016 at 5:00 PM, Jafar Al-Gharaibeh <[email protected] <mailto:[email protected]>> wrote:

    Acked-by: Jafar Al-Gharaibeh <[email protected]
    <mailto:[email protected]>>


    On 4/7/2016 2:43 PM, Christian Franke wrote:

        From: Christian Franke <[email protected]
        <mailto:[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]
        <mailto:[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] <mailto:[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