summaryrefslogtreecommitdiff
path: root/scripts/vyatta-show-snmp-ifmib
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2018-06-24 13:20:39 +0200
committerDaniil Baturin <daniil@baturin.org>2018-06-24 13:20:39 +0200
commit997291b8a6a66953c6a6270c2dda323769452581 (patch)
treeda24c0099caede14445289dca8d76560c08de1d9 /scripts/vyatta-show-snmp-ifmib
parent3610a467094e80a39b6627f6b7655430917b9bd3 (diff)
parentadd153b13de56f97624b2dc433fdbe21b36dbeed (diff)
downloadvyatta-op-lithium.tar.gz
vyatta-op-lithium.zip
Merge branch 'current' into lithiumlithium
Conflicts: Makefile.am debian/changelog templates/restart/dns/forwarding/node.def templates/show/version/added/node.def templates/show/version/all/node.def templates/show/version/deleted/node.def templates/show/version/downgraded/node.def templates/show/version/node.def templates/show/version/upgraded/node.def
Diffstat (limited to 'scripts/vyatta-show-snmp-ifmib')
-rw-r--r--scripts/vyatta-show-snmp-ifmib138
1 files changed, 0 insertions, 138 deletions
diff --git a/scripts/vyatta-show-snmp-ifmib b/scripts/vyatta-show-snmp-ifmib
deleted file mode 100644
index 8fb1004..0000000
--- a/scripts/vyatta-show-snmp-ifmib
+++ /dev/null
@@ -1,138 +0,0 @@
-#! /usr/bin/perl
-
-# **** License ****
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# This code was originally developed by Vyatta, Inc.
-# Portions created by Vyatta are Copyright (C) 2007 Vyatta, Inc.
-# All Rights Reserved.
-#
-# Author: Stephen Hemminger
-# Date: Novemember 2010
-# Description: Script for show snmp ifmib
-#
-# **** End License ****
-
-use strict;
-use warnings;
-use Getopt::Long;
-use POSIX qw(strtol);
-
-# This is used to show values corresponding to to results IF-MIB.
-my %interfaces;
-
-sub show_ifindex {
- foreach my $ifname (@_) {
- my $info = $interfaces{$ifname};
- my $ifindex = $info->{'ifIndex'};
- printf "%s: ifIndex = %d\n", $ifname, $ifindex;
- }
-}
-
-sub show_ifalias {
- foreach my $ifname (@_) {
- my $info = $interfaces{$ifname};
- my $ifalias = $info->{'ifAlias'};
- printf "%s: ifAlias = %s\n", $ifname,
- defined($ifalias) ? $ifalias : $ifname;
- }
-}
-
-sub read_sysfs {
- my $filename = shift;
-
- open( my $f, '<', $filename )
- or return; # not a PCI device
-
- my $val = <$f>;
- close $f;
-
- return strtol($val);
-}
-
-# Imitate code in net-snmp to lookup PC
-# TODO - move to common code extension (and handle USB?)
-sub pci_info {
- my $ifname = shift;
- my $vendor_id = read_sysfs("/sys/class/net/$ifname/device/vendor");
- my $device_id = read_sysfs("/sys/class/net/$ifname/device/device");
-
- return unless ( defined($vendor_id) && defined($device_id) );
-
- my $cmd = sprintf("lspci -m -d %04x:%04x", $vendor_id, $device_id);
- open( my $pci, '-|', $cmd )
- or die "Can't run $cmd";
- my $info = <$pci>;
- close $pci;
-
- return unless $info;
-
- # extract vendor and device description from output
- $info =~ /^\S+ "[^"]*" "([^"]*)" "([^"]*)"/;
-
- return "$1 $2";
-}
-
-sub show_ifdescr {
- foreach my $ifname (@_) {
- my $ifdescr = pci_info($ifname);
-
- printf "%s: ifDescr = %s\n", $ifname,
- defined($ifdescr) ? $ifdescr : $ifname;
- }
-}
-
-sub show_all {
- foreach my $ifname (@_) {
- my $info = $interfaces{$ifname};
- my $ifindex = $info->{'ifIndex'};
- my $ifalias = $info->{'ifAlias'};
- my $ifdescr = pci_info($ifname);
-
- printf "%s: ifIndex = %d\n", $ifname, $ifindex;
-
- my $pad = sprintf( "%-*s", length($ifname) + 1, " " );
- printf "%s ifAlias = %s\n", $pad, $ifalias if ($ifalias);
- printf "%s ifDescr = %s\n", $pad, $ifdescr if ($ifdescr);
- }
-}
-
-my $show = \&show_all;
-
-GetOptions(
- "ifindex" => sub { $show = \&show_ifindex },
- "ifalias" => sub { $show = \&show_ifalias },
- "ifdescr" => sub { $show = \&show_ifdescr },
-) or die "Unknown option\n";
-
-# List of all interfaces that currently exist on system
-# includes interfaces that may be outside Vyatta CLI because
-# they still show up in SNMP
-open( my $ip, '-|', 'ip li' )
- or die "Can't run ip command\n";
-
-my $ifname;
-while (<$ip>) {
- if (/^(\d+): ([^:]*): /) {
- $ifname = $2;
- $interfaces{$ifname} = { 'ifIndex' => $1 };
- }
- elsif (/^ +alias (.*)$/) {
- $interfaces{$ifname}->{'ifAlias'} = $1;
- }
-}
-close $ip;
-
-if (@ARGV) {
- $show->(@ARGV);
-}
-else {
- $show->( sort keys %interfaces );
-}