From 1f641ff640b38157fa8bd768d21ed54beb2aee68 Mon Sep 17 00:00:00 2001 From: Stig Thormodsrud Date: Thu, 11 Dec 2008 16:46:52 -0800 Subject: Add option to show counters for multiple interfaces. --- scripts/vyatta-show-interfaces.pl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'scripts') diff --git a/scripts/vyatta-show-interfaces.pl b/scripts/vyatta-show-interfaces.pl index 02ad8e0..529684f 100755 --- a/scripts/vyatta-show-interfaces.pl +++ b/scripts/vyatta-show-interfaces.pl @@ -56,6 +56,7 @@ my %intf_hash = ( my %action_hash = ( 'show' => \&run_show_intf, 'show-brief' => \&run_show_intf_brief, + 'show-count' => \&run_show_counters, 'clear' => \&run_clear_intf, 'reset' => \&run_reset_intf, ); @@ -312,6 +313,25 @@ sub run_show_intf_brief { } } +sub run_show_counters { + my @intfs = @_; + + my $format = "%-12s %10s %10s %10s %10s\n"; + printf($format, "Interface","Rx Packets","Rx Bytes","Tx Packets","Tx Bytes"); + foreach my $intf (@intfs) { + my ($state, $link) = get_state_link($intf); + next if $state ne 'up'; + my %clear = get_clear_stats($intf); + my %stats = get_intf_stats($intf); + printf($format, $intf, + get_counter_val($clear{rx_packets}, $stats{rx_packets}), + get_counter_val($clear{rx_bytes}, $stats{rx_bytes}), + get_counter_val($clear{tx_packets}, $stats{tx_packets}), + get_counter_val($clear{tx_bytes}, $stats{tx_bytes}) + ); + } +} + sub run_clear_intf { my @intfs = @_; -- cgit v1.2.3