summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_damp.c33
-rw-r--r--bgpd/bgp_damp.h1
2 files changed, 34 insertions, 0 deletions
diff --git a/bgpd/bgp_damp.c b/bgpd/bgp_damp.c
index a4ce5ae3f..c1ab04407 100644
--- a/bgpd/bgp_damp.c
+++ b/bgpd/bgp_damp.c
@@ -684,3 +684,36 @@ bgp_damp_reuse_time_vty (struct vty *vty, struct bgp_info *binfo,
return bgp_get_reuse_time (penalty, timebuf, len, use_json, json);
}
+
+int
+bgp_show_dampening_parameters (struct vty *vty, afi_t afi, safi_t safi)
+{
+ struct bgp *bgp;
+ bgp = bgp_get_default();
+
+ if (bgp == NULL)
+ {
+ vty_out (vty, "No BGP process is configured%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ if (CHECK_FLAG (bgp->af_flags[afi][safi], BGP_CONFIG_DAMPENING))
+ {
+ vty_out (vty, "Half-life time: %ld min%s",
+ damp->half_life / 60, VTY_NEWLINE);
+ vty_out (vty, "Reuse penalty: %d%s",
+ damp->reuse_limit, VTY_NEWLINE);
+ vty_out (vty, "Suppress penalty: %d%s",
+ damp->suppress_value, VTY_NEWLINE);
+ vty_out (vty, "Max suppress time: %ld min%s",
+ damp->max_suppress_time / 60, VTY_NEWLINE);
+ vty_out (vty, "Max supress penalty: %u%s",
+ damp->ceiling, VTY_NEWLINE);
+ vty_out (vty, "%s", VTY_NEWLINE);
+ }
+ else
+ vty_out (vty, "dampening not enabled for %s%s",
+ afi == AFI_IP ? "IPv4" : "IPv6", VTY_NEWLINE);
+
+ return CMD_SUCCESS;
+}
diff --git a/bgpd/bgp_damp.h b/bgpd/bgp_damp.h
index 685369637..030a62197 100644
--- a/bgpd/bgp_damp.h
+++ b/bgpd/bgp_damp.h
@@ -143,5 +143,6 @@ extern void bgp_config_write_damp (struct vty *);
extern void bgp_damp_info_vty (struct vty *, struct bgp_info *, json_object *json_path);
extern const char * bgp_damp_reuse_time_vty (struct vty *, struct bgp_info *,
char *, size_t, u_char, json_object *);
+extern int bgp_show_dampening_parameters (struct vty *vty, afi_t, safi_t);
#endif /* _QUAGGA_BGP_DAMP_H */