stats: Support statsd Multi-Metric Packets
If the MTU is given, combine several messages into a single UDP
packet until the limit is reached. Flush all reporters after the
values have been scanned.
New vty commands (node config-stats):
mtu <100-65535> Enable multi-metric packets and set the maximum
packet size (in byte)
no mtu Disable multi-metric packets
Note that single messages that are longer than the given MTU (minus
28 octets protocol overhead) will be dropped.
Sponsored-by: On-Waves ehf
diff --git a/src/vty/stats_vty.c b/src/vty/stats_vty.c
index a4fd7b0..775184c 100644
--- a/src/vty/stats_vty.c
+++ b/src/vty/stats_vty.c
@@ -128,6 +128,23 @@
argv[0], "remote port");
}
+DEFUN(cfg_stats_reporter_mtu, cfg_stats_reporter_mtu_cmd,
+ "mtu <100-65535>",
+ "Set the maximum packet size\n"
+ "Size in byte\n")
+{
+ return set_srep_parameter_int(vty, stats_reporter_set_mtu,
+ argv[0], "mtu");
+}
+
+DEFUN(cfg_no_stats_reporter_mtu, cfg_no_stats_reporter_mtu_cmd,
+ "no mtu",
+ NO_STR "Set the maximum packet size\n")
+{
+ return set_srep_parameter_int(vty, stats_reporter_set_mtu,
+ 0, "mtu");
+}
+
DEFUN(cfg_stats_reporter_prefix, cfg_stats_reporter_prefix_cmd,
"prefix PREFIX",
"Set the item name prefix\n"
@@ -312,6 +329,8 @@
install_element(CFG_STATS_NODE, &cfg_no_stats_reporter_local_ip_cmd);
install_element(CFG_STATS_NODE, &cfg_stats_reporter_remote_ip_cmd);
install_element(CFG_STATS_NODE, &cfg_stats_reporter_remote_port_cmd);
+ install_element(CFG_STATS_NODE, &cfg_stats_reporter_mtu_cmd);
+ install_element(CFG_STATS_NODE, &cfg_no_stats_reporter_mtu_cmd);
install_element(CFG_STATS_NODE, &cfg_stats_reporter_prefix_cmd);
install_element(CFG_STATS_NODE, &cfg_no_stats_reporter_prefix_cmd);
install_element(CFG_STATS_NODE, &cfg_stats_reporter_enable_cmd);