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