svn commit: r295460 - head/share/examples/jails
Devin Teske
dteske at FreeBSD.org
Wed Feb 10 04:56:40 UTC 2016
Author: dteske
Date: Wed Feb 10 04:56:38 2016
New Revision: 295460
URL: https://svnweb.freebsd.org/changeset/base/295460
Log:
Add `stats' command to get ng_bridge(4) stats
Modified:
head/share/examples/jails/jng
Modified: head/share/examples/jails/jng
==============================================================================
--- head/share/examples/jails/jng Wed Feb 10 04:43:08 2016 (r295459)
+++ head/share/examples/jails/jng Wed Feb 10 04:56:38 2016 (r295460)
@@ -154,6 +154,7 @@ usage()
show \
show1 \
shutdown \
+ stats \
; do
eval usage=\"\$jng_${action}_usage\"
[ "$usage" ] || continue
@@ -414,6 +415,39 @@ jng_shutdown()
jng_show "$name" | xargs -rn1 -I eiface ngctl shutdown eiface:
}
+jng_stats_usage="stats NAME"
+jng_stats_descr="Show ng_bridge link statistics for NAME interfaces"
+jng_stats()
+{
+ local OPTIND=1 OPTARG flag
+ while getopts "" flag; do
+ case "$flag" in
+ *) action_usage stats # NOTREACHED
+ esac
+ done
+ shift $(( $OPTIND -1 ))
+ local name="$1"
+ [ "${name:-x}" = "${name#*[!0-9a-zA-Z_]}" -a $# -eq 1 ] ||
+ action_usage stats # NOTREACHED
+ mustberoot_to_continue
+ for eiface in $( jng_show "$name" ); do
+ echo "$eiface:"
+ ngctl show $eiface: | awk '
+ $3 == "bridge" && $5 ~ /^link/ {
+ bridge = $2
+ link = substr($5, 5)
+ system(sprintf("ngctl msg %s: getstats %u",
+ bridge, link))
+ }' | fmt 2 | awk '
+ /=/ && fl = index($0, "=") {
+ printf "%20s = %s\n",
+ substr($0, 0, fl-1),
+ substr($0, 0, fl+1)
+ }
+ ' # END-QUOTE
+ done
+}
+
############################################################ MAIN
#
More information about the svn-src-all
mailing list