mirror of
https://github.com/stylersnico/librenms.git
synced 2026-07-30 16:14:21 +02:00
updates to mac accounting drawing, adding mini-graphs to interface details pages
git-svn-id: http://www.observium.org/svn/observer/trunk@472 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
+2
-1
@@ -29,7 +29,8 @@ RewriteRule ^interfaces/(.+)/ ?page=interfaces&type=$1
|
|||||||
RewriteRule ^vrf/(.+)/(.+)/(.+)/ ?page=vrf&id=$1&opta=$2&optb=$3
|
RewriteRule ^vrf/(.+)/(.+)/(.+)/ ?page=vrf&id=$1&opta=$2&optb=$3
|
||||||
RewriteRule ^vrf/(.+)/(.+)/ ?page=vrf&id=$1&opta=$2
|
RewriteRule ^vrf/(.+)/(.+)/ ?page=vrf&id=$1&opta=$2
|
||||||
RewriteRule ^vrf/(.+)/ ?page=vrf&id=$1
|
RewriteRule ^vrf/(.+)/ ?page=vrf&id=$1
|
||||||
|
RewriteRule ^device/([0-9]+)/([a-z]+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/ ?page=device&id=$1§ion=$2&opta=$3&optb=$4&optc=$5&optd=$6&opte=$7&optf=$8&optg=$9
|
||||||
|
RewriteRule ^device/([0-9]+)/([a-z]+)/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)/ ?page=device&id=$1§ion=$2&opta=$3&optb=$4&optc=$5&optd=$6&opte=$7&optf=$8
|
||||||
RewriteRule ^device/([0-9]+)/([a-z]+)/(.+)/(.+)/(.+)/(.+)/(.+)/ ?page=device&id=$1§ion=$2&opta=$3&optb=$4&optc=$5&optd=$6&opte=$7
|
RewriteRule ^device/([0-9]+)/([a-z]+)/(.+)/(.+)/(.+)/(.+)/(.+)/ ?page=device&id=$1§ion=$2&opta=$3&optb=$4&optc=$5&optd=$6&opte=$7
|
||||||
RewriteRule ^device/([0-9]+)/([a-z]+)/(.+)/(.+)/(.+)/(.+)/ ?page=device&id=$1§ion=$2&opta=$3&optb=$4&optc=$5&optd=$6
|
RewriteRule ^device/([0-9]+)/([a-z]+)/(.+)/(.+)/(.+)/(.+)/ ?page=device&id=$1§ion=$2&opta=$3&optb=$4&optc=$5&optd=$6
|
||||||
RewriteRule ^device/([0-9]+)/([a-z]+)/(.+)/(.+)/(.+)/ ?page=device&id=$1§ion=$2&opta=$3&optb=$4&optc=$5
|
RewriteRule ^device/([0-9]+)/([a-z]+)/(.+)/(.+)/(.+)/ ?page=device&id=$1§ion=$2&opta=$3&optb=$4&optc=$5
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
function graph_mac_acc_total ($interface, $graph, $from, $to, $width, $height, $title, $vertical) {
|
function graph_mac_acc_total ($interface, $stat, $graph, $from, $to, $width, $height, $title, $vertical) {
|
||||||
global $config, $installdir;
|
global $config, $installdir;
|
||||||
list($interface, $type) = explode("-", $interface);
|
|
||||||
$imgfile = $config['install_dir'] . "/graphs/" . "$graph";
|
$imgfile = $config['install_dir'] . "/graphs/" . "$graph";
|
||||||
$options = "--alt-autoscale-max -E --start $from --end " . ($to - 150) . " --width $width --height $height ";
|
$options = "--alt-autoscale-max -E --start $from --end " . ($to - 150) . " --width $width --height $height ";
|
||||||
$options .= $config['rrdgraph_def_text'];
|
$options .= $config['rrdgraph_def_text'];
|
||||||
@@ -13,14 +12,16 @@ function graph_mac_acc_total ($interface, $graph, $from, $to, $width, $height, $
|
|||||||
$query = mysql_query($sql);
|
$query = mysql_query($sql);
|
||||||
if($width <= "300") { $options .= "--font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
if($width <= "300") { $options .= "--font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
||||||
$pluses = ""; $iter = '0';
|
$pluses = ""; $iter = '0';
|
||||||
$options .= " COMMENT:' In Out\\\\n'";
|
$options .= " COMMENT:' In\: Current Maximum Total Out\: Current Maximum Total\\\\n'";
|
||||||
while($acc = mysql_fetch_array($query)) {
|
while($acc = mysql_fetch_array($query)) {
|
||||||
if($type == "pkts") {
|
if($stat == "pkts") {
|
||||||
$this_rrd = $config['rrd_dir'] . "/" . $acc['hostname'] . "/mac-accounting/" . $acc['ifIndex'] . "-" . $acc['mac'] . "-pkts.rrd";
|
$this_rrd = $config['rrd_dir'] . "/" . $acc['hostname'] . "/mac-accounting/" . $acc['ifIndex'] . "-" . $acc['mac'] . "-pkts.rrd";
|
||||||
$units='pps';
|
$units='pps'; $unit = 'p'; $multiplier = '1';
|
||||||
} else {
|
$colours = 'purples';
|
||||||
|
} elseif ($stat == "bits") {
|
||||||
$this_rrd = $config['rrd_dir'] . "/" . $acc['hostname'] . "/mac-accounting/" . $acc['ifIndex'] . "-" . $acc['mac'] . ".rrd";
|
$this_rrd = $config['rrd_dir'] . "/" . $acc['hostname'] . "/mac-accounting/" . $acc['ifIndex'] . "-" . $acc['mac'] . ".rrd";
|
||||||
$units='bps';
|
$units='bps'; $unit='B'; $multiplier='8';
|
||||||
|
$colours='greens';
|
||||||
}
|
}
|
||||||
if(is_file($this_rrd)) {
|
if(is_file($this_rrd)) {
|
||||||
|
|
||||||
@@ -28,17 +29,17 @@ function graph_mac_acc_total ($interface, $graph, $from, $to, $width, $height, $
|
|||||||
$addy = mysql_fetch_array(mysql_query("SELECT * FROM ipv4_mac where mac_address = '".$acc['mac']."'"));
|
$addy = mysql_fetch_array(mysql_query("SELECT * FROM ipv4_mac where mac_address = '".$acc['mac']."'"));
|
||||||
if($addy) {
|
if($addy) {
|
||||||
$name = @gethostbyaddr($addy['ipv4_address']);
|
$name = @gethostbyaddr($addy['ipv4_address']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this_id = str_replace(".", "", $acc['mac']);
|
$this_id = str_replace(".", "", $acc['mac']);
|
||||||
if(!$config['graph_colours'][$iter]) { $iter = 0; }
|
if(!$config['graph_colours'][$colours][$iter]) { $iter = 0; }
|
||||||
$colour=$config['graph_colours'][$iter];
|
$colour=$config['graph_colours'][$colours][$iter];
|
||||||
$descr = str_pad($name, 36);
|
$descr = str_pad($name, 36);
|
||||||
$descr = substr($descr,0,36);
|
$descr = substr($descr,0,36);
|
||||||
$options .= " DEF:in".$this_id."=$this_rrd:IN:AVERAGE ";
|
$options .= " DEF:in".$this_id."=$this_rrd:IN:AVERAGE ";
|
||||||
$options .= " DEF:out".$this_id."temp=$this_rrd:OUT:AVERAGE ";
|
$options .= " DEF:out".$this_id."temp=$this_rrd:OUT:AVERAGE ";
|
||||||
$options .= " CDEF:inB".$this_id."=in".$this_id.",8,* ";
|
$options .= " CDEF:inB".$this_id."=in".$this_id.",$multiplier,* ";
|
||||||
$options .= " CDEF:outB".$this_id."temp=out".$this_id."temp,8,*";
|
$options .= " CDEF:outB".$this_id."temp=out".$this_id."temp,$multiplier,*";
|
||||||
$options .= " CDEF:outB".$this_id."=outB".$this_id."temp,-1,*";
|
$options .= " CDEF:outB".$this_id."=outB".$this_id."temp,-1,*";
|
||||||
$options .= " CDEF:octets".$this_id."=inB".$this_id.",outB".$this_id."temp,+";
|
$options .= " CDEF:octets".$this_id."=inB".$this_id.",outB".$this_id."temp,+";
|
||||||
$options .= " VDEF:totin".$this_id."=inB".$this_id.",TOTAL";
|
$options .= " VDEF:totin".$this_id."=inB".$this_id.",TOTAL";
|
||||||
@@ -48,9 +49,12 @@ function graph_mac_acc_total ($interface, $graph, $from, $to, $width, $height, $
|
|||||||
if($optionsb) {$stack="STACK";}
|
if($optionsb) {$stack="STACK";}
|
||||||
$optionsb .= " AREA:outB".$this_id."#" . $colour . "::$stack";
|
$optionsb .= " AREA:outB".$this_id."#" . $colour . "::$stack";
|
||||||
$options .= " GPRINT:inB".$this_id.":LAST:%6.2lf%s$units";
|
$options .= " GPRINT:inB".$this_id.":LAST:%6.2lf%s$units";
|
||||||
$options .= " GPRINT:totin".$this_id.":\(%6.2lf%sB\)";
|
$options .= " GPRINT:inB".$this_id.":MAX:%6.2lf%s$units";
|
||||||
|
$options .= " GPRINT:totin".$this_id.":%6.2lf%s$unit";
|
||||||
|
$options .= " COMMENT:' '";
|
||||||
$options .= " GPRINT:outB".$this_id."temp:LAST:%6.2lf%s$units";
|
$options .= " GPRINT:outB".$this_id."temp:LAST:%6.2lf%s$units";
|
||||||
$options .= " GPRINT:totout".$this_id.":\(%6.2lf%sB\)\\\\n";
|
$options .= " GPRINT:outB".$this_id."temp:MAX:%6.2lf%s$units";
|
||||||
|
$options .= " GPRINT:totout".$this_id.":%6.2lf%s$unit\\\\n";
|
||||||
$iter++;
|
$iter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -60,6 +64,8 @@ function graph_mac_acc_total ($interface, $graph, $from, $to, $width, $height, $
|
|||||||
}
|
}
|
||||||
|
|
||||||
$port = $_GET['if'];
|
$port = $_GET['if'];
|
||||||
$graph = graph_mac_acc_total ($port, $graphfile, $from, $to, $width, $height, $title, $vertical);
|
$stat = $_GET['stat'];
|
||||||
|
|
||||||
|
$graph = graph_mac_acc_total ($port, $stat, $graphfile, $from, $to, $width, $height, $title, $vertical);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -15,11 +15,15 @@
|
|||||||
$error_img = generateiflink($interface,"<img src='images/16/chart_curve_error.png' alt='Interface Errors' border=0>",errors);
|
$error_img = generateiflink($interface,"<img src='images/16/chart_curve_error.png' alt='Interface Errors' border=0>",errors);
|
||||||
} else { $error_img = ""; }
|
} else { $error_img = ""; }
|
||||||
|
|
||||||
|
if(mysql_result(mysql_query("SELECT count(*) FROM mac_accounting WHERE interface_id = '".$interface['interface_id']."'"),0)){
|
||||||
|
$mac = "<a href='device/".$interface['device_id']."/interface/".$interface['interface_id']."/macaccounting/'><img src='/images/16/chart_curve.png' align='absmiddle'></a>";
|
||||||
|
} else { $mac = ""; }
|
||||||
|
|
||||||
echo("<tr style=\"background-color: $row_colour; padding: 5px;\" valign=top onmouseover=\"this.style.backgroundColor='$list_highlight';\" onmouseout=\"this.style.backgroundColor='$row_colour';\" onclick=\"location.href='/device/".$device['device_id']."/interface/".$interface['interface_id']."/'\" style='cursor: hand;'>
|
echo("<tr style=\"background-color: $row_colour; padding: 5px;\" valign=top onmouseover=\"this.style.backgroundColor='$list_highlight';\" onmouseout=\"this.style.backgroundColor='$row_colour';\" onclick=\"location.href='/device/".$device['device_id']."/interface/".$interface['interface_id']."/'\" style='cursor: hand;'>
|
||||||
<td valign=top width=300>");
|
<td valign=top width=300>");
|
||||||
|
|
||||||
echo(" <span class=list-large>
|
echo(" <span class=list-large>
|
||||||
" . generateiflink($interface, $interface['ifIndex'] . ". ".fixifName($interface['label'])) . " $error_img
|
" . generateiflink($interface, $interface['ifIndex'] . ". ".fixifName($interface['label'])) . " $error_img $mac
|
||||||
|
|
||||||
</span><br /><span class=interface-desc>".$interface['ifAlias']."</span>");
|
</span><br /><span class=interface-desc>".$interface['ifAlias']."</span>");
|
||||||
|
|
||||||
@@ -43,8 +47,10 @@
|
|||||||
|
|
||||||
echo("</td><td width=100>");
|
echo("</td><td width=100>");
|
||||||
|
|
||||||
if(mysql_result(mysql_query("SELECT count(*) FROM mac_accounting WHERE interface_id = '".$interface['interface_id']."'"),0)){
|
if($port_details) {
|
||||||
echo("<a href='device/".$interface['device_id']."/interface/".$interface['interface_id']."/macaccounting/'><img src='/images/16/chart_curve.png' align='absmiddle'> Mac Acc</a>");
|
echo(generateiflink($interface, "<img src='graph.php?type=bits&if=".$interface['interface_id']."&from=".$day."&to=".$now."&width=100&height=20&legend=no&bg=".str_replace("#","", $row_colour)."'>"));
|
||||||
|
echo(generateiflink($interface, "<img src='graph.php?type=pkts&if=".$interface['interface_id']."&from=".$day."&to=".$now."&width=100&height=20&legend=no&bg=".str_replace("#","", $row_colour)."'>"));
|
||||||
|
echo(generateiflink($interface, "<img src='graph.php?type=errors&if=".$interface['interface_id']."&from=".$day."&to=".$now."&width=100&height=20&legend=no&bg=".str_replace("#","", $row_colour)."'>"));
|
||||||
}
|
}
|
||||||
|
|
||||||
echo("</td><td width=120>");
|
echo("</td><td width=120>");
|
||||||
|
|||||||
@@ -1,20 +1,37 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
echo("
|
||||||
|
<div style='padding: 10px; height: 20px; clear: both; display: block;'>
|
||||||
|
<div style='float: left; font-size: 22px; font-weight: bold;'>Local AS : " . $device['bgpLocalAs'] . "</div>
|
||||||
|
</div>");
|
||||||
|
|
||||||
echo("
|
echo("
|
||||||
<div style='padding: 5px; height: 20px; clear: both; display: block;'>
|
<div style='margin:auto; text-align: center; margin-top: 0px; margin-bottom: 10px;'>
|
||||||
<div style='float: left; font-size: 22px; font-weight: bold;'>Local AS : " . $device['bgpLocalAs'] . "</div>
|
<b class='rounded'>
|
||||||
<div style='float: right; text-align: right;'>
|
<b class='rounded1'><b></b></b>
|
||||||
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/'>No Graphs</a> |
|
<b class='rounded2'><b></b></b>
|
||||||
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/bgp_updates/'>Updates</a> | Prefixes:
|
<b class='rounded3'></b>
|
||||||
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/cbgp_prefixes/ipv4.unicast/'>IPv4</a> |
|
<b class='rounded4'></b>
|
||||||
|
<b class='rounded5'></b></b>
|
||||||
|
<div class='roundedfg' style='padding: 0px 5px;'>
|
||||||
|
<div style='margin: auto; text-align: left; padding: 2px 5px; padding-left: 11px; clear: both; display:block; height:20px;'>
|
||||||
|
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/'>No Graphs</a> |
|
||||||
|
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/bgp_updates/'>Updates</a> | Prefixes:
|
||||||
|
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/cbgp_prefixes/ipv4.unicast/'>IPv4</a> |
|
||||||
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/cbgp_prefixes/ipv4.vpn/'>VPNv4</a> |
|
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/cbgp_prefixes/ipv4.vpn/'>VPNv4</a> |
|
||||||
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/cbgp_prefixes/ipv6.unicast/'>IPv6</a>
|
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/cbgp_prefixes/ipv6.unicast/'>IPv6</a>
|
||||||
| Traffic:
|
| Traffic:
|
||||||
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/macaccounting/'>Mac Accounting</a>
|
<a href='".$config['base_url']."/device/" . $_GET['id'] . "/bgp/macaccounting/'>Mac Accounting</a>
|
||||||
</div>
|
</div>
|
||||||
</div>");
|
</div>
|
||||||
|
<b class='rounded'>
|
||||||
|
<b class='rounded5'></b>
|
||||||
|
<b class='rounded4'></b>
|
||||||
|
<b class='rounded3'></b>
|
||||||
|
<b class='rounded2'><b></b></b>
|
||||||
|
<b class='rounded1'><b></b></b></b>
|
||||||
|
</div>
|
||||||
|
");
|
||||||
|
|
||||||
echo("<div style='margin: 5px;'><table border=0 cellspacing=0 cellpadding=5 width=100%>");
|
echo("<div style='margin: 5px;'><table border=0 cellspacing=0 cellpadding=5 width=100%>");
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ echo("</div>
|
|||||||
|
|
||||||
if($_GET['optb']) {
|
if($_GET['optb']) {
|
||||||
|
|
||||||
include("pages/device/port/".mres($_GET['optb']).".php");
|
include("pages/device/port/".mres($_GET['optb']).".inc.php");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|||||||
+42
-23
@@ -20,37 +20,56 @@
|
|||||||
$query = mysql_query("SELECT *, (M.bps_in + M.bps_out) as bps FROM `mac_accounting` AS M, `interfaces` AS I, `devices` AS D WHERE M.interface_id = '".$interface['interface_id']."' AND I.interface_id = M.interface_id AND I.device_id = D.device_id ORDER BY bps DESC");
|
$query = mysql_query("SELECT *, (M.bps_in + M.bps_out) as bps FROM `mac_accounting` AS M, `interfaces` AS I, `devices` AS D WHERE M.interface_id = '".$interface['interface_id']."' AND I.interface_id = M.interface_id AND I.device_id = D.device_id ORDER BY bps DESC");
|
||||||
echo("<div style='clear: both;'>");
|
echo("<div style='clear: both;'>");
|
||||||
|
|
||||||
|
|
||||||
if($_GET['optd'] == "top10") {
|
if($_GET['optd'] == "top10") {
|
||||||
if($_GET['opte']) {
|
if($_GET['opte']) {
|
||||||
$from = "-" . $_GET['opte'];
|
$from = "-" . $_GET['opte'];
|
||||||
} else { $from = "-1day"; }
|
} else { $from = "-1day"; }
|
||||||
echo("<div style='margin: auto; width: 831px;';>
|
if($_GET['optc']) {
|
||||||
<img src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&type=mac_acc_total&from=$from&to=now&width=750&height=245' />
|
$stat = $_GET['optc'];
|
||||||
<div style='width: 200; float: left;'>
|
} else { $stat = "bits"; }
|
||||||
<span class=device-head style='line-height: 30px;'>Day</span>
|
|
||||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/bits/top10/1day/'>
|
echo("<div style=' margin:0px; float: left;';>
|
||||||
<img src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&type=mac_acc_total&from=-1day&to=now&width=150&height=50' />
|
<div style='margin: 0px 10px 20px 0px; padding:5px; background: #e5e5e5;'>
|
||||||
|
<span class=device-head>Day</span><br />
|
||||||
|
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/$stat/top10/1day/'>
|
||||||
|
<img style='border: #5e5e5e 2px;' valign=middle src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&stat=$stat&type=mac_acc_total&from=-1day&to=now&width=150&height=50' />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div style='width: 200; float: left;'>
|
<div style='margin: 0px 10px 20px 0px; padding:5px; background: #e5e5e5;'>
|
||||||
<span class=device-head style='line-height: 30px;'>Week</span>
|
<span class=device-head>Week</span><br />
|
||||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/bits/top10/1week/'>
|
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/$stat/top10/1week/'>
|
||||||
<img src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&type=mac_acc_total&from=-1week&to=now&width=150&height=50' />
|
<img valign=middle src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&type=mac_acc_total&stat=$stat&from=-1week&to=now&width=150&height=50' />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div style='width: 200; float: left;'>
|
<div style='margin: 0px 10px 20px 0px; padding:5px; background: #e5e5e5;'>
|
||||||
<span class=device-head style='line-height: 30px;'>Month</span>
|
<span class=device-head>Month</span><br />
|
||||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/bits/top10/1month/'>
|
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/$stat/top10/1month/'>
|
||||||
<img src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&type=mac_acc_total&from=-1month&to=now&width=150&height=50' />
|
<img valign=middle src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&type=mac_acc_total&stat=$stat&from=-1month&to=now&width=150&height=50' />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div style='width: 200; float: left;'>
|
<div style='margin: 0px 10px 20px 0px; padding:5px; background: #e5e5e5;'>
|
||||||
<span class=device-head style='line-height: 30px;'>Year</span>
|
<span class=device-head>Year</span><br />
|
||||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/bits/top10/1year/'>
|
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/$stat/top10/1year/'>
|
||||||
<img src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&type=mac_acc_total&from=-1year&to=now&width=150&height=50' />
|
<img valign=middle src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&type=mac_acc_total&stat=$stat&from=-1year&to=now&width=150&height=50' />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style='float: left;'>
|
||||||
|
<img src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&type=mac_acc_total&stat=$stat&from=$from&to=now&width=750&height=245' />
|
||||||
|
</div>
|
||||||
|
<div style=' margin:0px; float: left;';>
|
||||||
|
<div style='margin: 0px 0px 20px 10px; padding:5px; background: #e5e5e5;'>
|
||||||
|
<span class=device-head>Traffic</span><br />
|
||||||
|
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/bits/top10/1day/'>
|
||||||
|
<img style='border: #5e5e5e 2px;' valign=middle src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&stat=bits&type=mac_acc_total&from=$from&to=now&width=150&height=50' />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div style='margin: 0px 0px 20px 10px; padding:5px; background: #e5e5e5;'>
|
||||||
|
<span class=device-head>Packets</span><br />
|
||||||
|
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/interface/".$interface['interface_id']."/macaccounting/pkts/top10/1day/'>
|
||||||
|
<img style='border: #5e5e5e 2px;' valign=middle src='".$config['base_url']."/graph.php?if=".$interface['interface_id']."&stat=pkts&type=mac_acc_total&from=$from&to=now&width=150&height=50' />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
");
|
");
|
||||||
@@ -59,59 +59,10 @@ if($_GET['optc'] == thumbs) {
|
|||||||
}
|
}
|
||||||
echo("</div>");
|
echo("</div>");
|
||||||
} else {
|
} else {
|
||||||
if($_GET['opta'] == "details" ) { $port_details = 1; }
|
|
||||||
if($_GET['opta'] == "arp" ) {
|
if($_GET['opta'] == "arp" ) {
|
||||||
|
include("arp.inc.php");
|
||||||
$interface_query = mysql_query("select * from interfaces WHERE device_id = '$_GET[id]' AND deleted = '0' ORDER BY `ifIndex` ASC");
|
|
||||||
echo("<table border=0 cellspacing=0 cellpadding=3 width=100%%><tr><th width=125>Address</th><th width=140>Hardware Addr</th><th>Interface</th><th>Remote Device</th><th>Remote Port</th>
|
|
||||||
<th width=90>Rate Up</th><th width=90>Rate Down</th></tr>");
|
|
||||||
$i = 1;
|
|
||||||
while($interface = mysql_fetch_array($interface_query)) {
|
|
||||||
$sql = "SELECT * FROM `ipv4_mac` WHERE `interface_id` = '".$interface['interface_id']."'";
|
|
||||||
$arp_query = mysql_query($sql);
|
|
||||||
while($arp = mysql_fetch_array($arp_query)) {
|
|
||||||
$i++;
|
|
||||||
if(!is_integer($i/2)) { $row_colour = $list_colour_a; } else { $row_colour = $list_colour_b; }
|
|
||||||
$r_sql = "SELECT * FROM `ipv4_addresses` AS A, `interfaces` AS I, `devices` AS D WHERE I.interface_id = A.interface_id AND
|
|
||||||
I.device_id = D.device_id AND A.ipv4_address = '".$arp['ipv4_address']."' ORDER BY A.ipv4_address";
|
|
||||||
$remote = mysql_fetch_array(mysql_query($r_sql));
|
|
||||||
$mac = formatMac($arp['mac_address']);
|
|
||||||
$mac_acc = mysql_fetch_array(mysql_query("SELECT * FROM mac_accounting WHERE `interface_id` = '".$interface['interface_id']."' AND mac = '".$arp['mac_address']."'"));
|
|
||||||
echo("<tr style=\"background-color: $row_colour; padding: 5px;\" valign=top>
|
|
||||||
<td>" . $arp['ipv4_address'] . "</td><td>" . $mac . "</td><td>".generateiflink($interface)."</td>");
|
|
||||||
if ($remote['interface_id'] == $interface['interface_id']) {
|
|
||||||
$remote_host = "local";
|
|
||||||
$remote_port = "local";
|
|
||||||
} elseif($remote['device_id']) {
|
|
||||||
$remote_host = generatedevicelink($remote);
|
|
||||||
$remote_port = generateiflink($remote);
|
|
||||||
} elseif(mysql_result(mysql_query("SELECT count(*) FROM bgpPeers WHERE device_id = '".$device['device_id']."' AND bgpPeerIdentifier ='".$arp['ipv4_address']."'"),0)) {
|
|
||||||
$peer_query = mysql_query("SELECT * FROM bgpPeers WHERE device_id = '".$device['device_id']."' AND bgpPeerIdentifier = '".$arp['ipv4_address']."'");
|
|
||||||
$peer_info = mysql_fetch_array($peer_query);
|
|
||||||
$remote_port = "AS".$peer_info['bgpPeerRemoteAs'];
|
|
||||||
$remote_host = $peer_info['astext'];
|
|
||||||
} elseif($mac_acc['interface_id'] == $interface['interface_id']) {
|
|
||||||
$remote_host = gethostbyaddr($arp['ipv4_address']);
|
|
||||||
if($remote_host == $arp['ipv4_address']) { unset ($remote_host); }
|
|
||||||
$remote_port = "";
|
|
||||||
} else {
|
|
||||||
$remote_host = "";
|
|
||||||
$remote_port = "";
|
|
||||||
}
|
|
||||||
echo("<td>".truncate($remote_host, 24, "")."</td><td>$remote_port</td>");
|
|
||||||
if ($mac_acc['interface_id'] == $interface['interface_id']) {
|
|
||||||
$style = "onmouseover=\"return overlib('<img src=\'graph.php?id=" . $mac_acc['ma_id'] . "&type=mac_acc&from=$day&to=$now&width=500&height=150\'>', LEFT".$config['overlib_defaults'].", WIDTH, 500);\" onmouseout=\"return nd();\"";
|
|
||||||
echo("<td><a $style>".formatRates($mac_acc['bps_out'])."</a></td><td><a $style>".formatRates($mac_acc['bps_in'])."</a></td>");
|
|
||||||
} else {
|
|
||||||
echo("<td></td><td></td>");
|
|
||||||
}
|
|
||||||
|
|
||||||
echo("</tr>");
|
|
||||||
}
|
|
||||||
echo("</div>");
|
|
||||||
}
|
|
||||||
echo("</table>");
|
|
||||||
} else {
|
} else {
|
||||||
|
if($_GET['opta'] == "details" ) { $port_details = 1; }
|
||||||
echo("<div style='margin: 5px;'><table border=0 cellspacing=0 cellpadding=5 width=100%>");
|
echo("<div style='margin: 5px;'><table border=0 cellspacing=0 cellpadding=5 width=100%>");
|
||||||
$i = "1";
|
$i = "1";
|
||||||
$interface_query = mysql_query("select * from interfaces WHERE device_id = '$_GET[id]' AND deleted = '0' ORDER BY `ifIndex` ASC");
|
$interface_query = mysql_query("select * from interfaces WHERE device_id = '$_GET[id]' AND deleted = '0' ORDER BY `ifIndex` ASC");
|
||||||
|
|||||||
@@ -2,11 +2,13 @@
|
|||||||
|
|
||||||
unset ($mac_table);
|
unset ($mac_table);
|
||||||
|
|
||||||
|
echo("ARP Table : ");
|
||||||
|
|
||||||
$ipNetToMedia_data = shell_exec($config['snmpbulkwalk'] . " -m IP-MIB -Oq -".$device['snmpver']." -c ".$device['community']." ".$device['hostname']." ipNetToMediaPhysAddress");
|
$ipNetToMedia_data = shell_exec($config['snmpbulkwalk'] . " -m IP-MIB -Oq -".$device['snmpver']." -c ".$device['community']." ".$device['hostname']." ipNetToMediaPhysAddress");
|
||||||
$ipNetToMedia_data = str_replace("ipNetToMediaPhysAddress.", "", trim($ipNetToMedia_data));
|
$ipNetToMedia_data = str_replace("ipNetToMediaPhysAddress.", "", trim($ipNetToMedia_data));
|
||||||
$ipNetToMedia_data = str_replace("IP-MIB::", "", trim($ipNetToMedia_data));
|
$ipNetToMedia_data = str_replace("IP-MIB::", "", trim($ipNetToMedia_data));
|
||||||
echo("$ipNetToMedia_data\n");
|
#echo("$ipNetToMedia_data\n");
|
||||||
echo("done\n");
|
#echo("done\n");
|
||||||
foreach(explode("\n", $ipNetToMedia_data) as $data) {
|
foreach(explode("\n", $ipNetToMedia_data) as $data) {
|
||||||
list($oid, $mac) = explode(" ", $data);
|
list($oid, $mac) = explode(" ", $data);
|
||||||
list($if, $first, $second, $third, $fourth) = explode(".", $oid);
|
list($if, $first, $second, $third, $fourth) = explode(".", $oid);
|
||||||
@@ -35,15 +37,14 @@
|
|||||||
if(mysql_result(mysql_query("SELECT COUNT(*) from ipv4_mac WHERE interface_id = '".$interface['interface_id']."' AND ipv4_address = '$ip'"),0)) {
|
if(mysql_result(mysql_query("SELECT COUNT(*) from ipv4_mac WHERE interface_id = '".$interface['interface_id']."' AND ipv4_address = '$ip'"),0)) {
|
||||||
$sql = "UPDATE `ipv4_mac` SET `mac_address` = '$clean_mac' WHERE interface_id = '".$interface['interface_id']."' AND ipv4_address = '$ip'";
|
$sql = "UPDATE `ipv4_mac` SET `mac_address` = '$clean_mac' WHERE interface_id = '".$interface['interface_id']."' AND ipv4_address = '$ip'";
|
||||||
mysql_query($sql);
|
mysql_query($sql);
|
||||||
|
echo(".");
|
||||||
} else {
|
} else {
|
||||||
|
echo("+");
|
||||||
#echo("Add MAC $mac\n");
|
#echo("Add MAC $mac\n");
|
||||||
mysql_query("INSERT INTO `ipv4_mac` (interface_id, mac_address, ipv4_address) VALUES ('".$interface['interface_id']."','$clean_mac','$ip')");
|
mysql_query("INSERT INTO `ipv4_mac` (interface_id, mac_address, ipv4_address) VALUES ('".$interface['interface_id']."','$clean_mac','$ip')");
|
||||||
}
|
}
|
||||||
$interface_id = $interface['interface_id'];
|
$interface_id = $interface['interface_id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
print_r($mac_table);
|
|
||||||
|
|
||||||
$sql = "SELECT * from ipv4_mac AS M, interfaces as I WHERE M.interface_id = I.interface_id and I.device_id = '".$device['device_id']."'";
|
$sql = "SELECT * from ipv4_mac AS M, interfaces as I WHERE M.interface_id = I.interface_id and I.device_id = '".$device['device_id']."'";
|
||||||
$query = mysql_query($sql);
|
$query = mysql_query($sql);
|
||||||
while($entry = mysql_fetch_array($query)) {
|
while($entry = mysql_fetch_array($query)) {
|
||||||
@@ -51,15 +52,20 @@
|
|||||||
$entry_if = $entry['interface_id'];
|
$entry_if = $entry['interface_id'];
|
||||||
if(!$mac_table[$entry_if][$entry_mac]) {
|
if(!$mac_table[$entry_if][$entry_mac]) {
|
||||||
mysql_query("DELETE FROM ipv4_mac WHERE interface_id = '".$entry_if."' AND mac_address = '".$entry_mac."'");
|
mysql_query("DELETE FROM ipv4_mac WHERE interface_id = '".$entry_if."' AND mac_address = '".$entry_mac."'");
|
||||||
echo("Removing MAC $entry_mac from interface ".$interface['ifName']);
|
#echo("Removing MAC $entry_mac from interface ".$interface['ifName']);
|
||||||
|
echo("-");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo("\n");
|
||||||
|
|
||||||
unset($mac);
|
unset($mac);
|
||||||
|
|
||||||
|
echo("MAC Accounting : ");
|
||||||
|
|
||||||
$datas = shell_exec($config['snmpbulkwalk'] . " -m CISCO-IP-STAT-MIB -Oqn -".$device['snmpver']." -c ".$device['community']." ".$device['hostname']." cipMacSwitchedBytes");
|
$datas = shell_exec($config['snmpbulkwalk'] . " -m CISCO-IP-STAT-MIB -Oqn -".$device['snmpver']." -c ".$device['community']." ".$device['hostname']." cipMacSwitchedBytes");
|
||||||
echo("$datas\n");
|
#echo("$datas\n");
|
||||||
echo("done\n");
|
#echo("done\n");
|
||||||
foreach(explode("\n", $datas) as $data) {
|
foreach(explode("\n", $datas) as $data) {
|
||||||
list($oid) = explode(" ", $data);
|
list($oid) = explode(" ", $data);
|
||||||
$oid = str_replace(".1.3.6.1.4.1.9.9.84.1.2.1.1.4.", "", $oid);
|
$oid = str_replace(".1.3.6.1.4.1.9.9.84.1.2.1.1.4.", "", $oid);
|
||||||
@@ -80,18 +86,22 @@
|
|||||||
$ip = $mac_table[$if][$mac]['ip'];
|
$ip = $mac_table[$if][$mac]['ip'];
|
||||||
if($ip && $interface) {
|
if($ip && $interface) {
|
||||||
$new_mac = str_replace(":", "", $mac);
|
$new_mac = str_replace(":", "", $mac);
|
||||||
echo($interface['ifDescr'] . " ($if) -> $mac ($oid) -> $ip -> $name");
|
#echo($interface['ifDescr'] . " ($if) -> $mac ($oid) -> $ip");
|
||||||
if(mysql_result(mysql_query("SELECT COUNT(*) from mac_accounting WHERE interface_id = '".$interface['interface_id']."' AND mac = '$clean_mac'"),0)) {
|
if(mysql_result(mysql_query("SELECT COUNT(*) from mac_accounting WHERE interface_id = '".$interface['interface_id']."' AND mac = '$clean_mac'"),0)) {
|
||||||
#$sql = "UPDATE `mac_accounting` SET `mac` = '$clean_mac' WHERE interface_id = '".$interface['interface_id']."' AND `mac` = '$clean_mac'";
|
#$sql = "UPDATE `mac_accounting` SET `mac` = '$clean_mac' WHERE interface_id = '".$interface['interface_id']."' AND `mac` = '$clean_mac'";
|
||||||
#mysql_query($sql);
|
#mysql_query($sql);
|
||||||
#if(mysql_affected_rows()) { echo(" UPDATED!"); }
|
#if(mysql_affected_rows()) { echo(" UPDATED!"); }
|
||||||
#echo($sql);
|
#echo($sql);
|
||||||
|
echo(".");
|
||||||
} else {
|
} else {
|
||||||
#echo(" Not Exists!");
|
#echo(" Not Exists!");
|
||||||
mysql_query("INSERT INTO `mac_accounting` (interface_id, mac) VALUES ('".$interface['interface_id']."','$clean_mac')");
|
mysql_query("INSERT INTO `mac_accounting` (interface_id, mac) VALUES ('".$interface['interface_id']."','$clean_mac')");
|
||||||
|
echo("+");
|
||||||
}
|
}
|
||||||
echo("\n");
|
#echo("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
echo("\n");
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
$sensor_data = shell_exec($sensor_cmd);
|
$sensor_data = shell_exec($sensor_cmd);
|
||||||
list($entSensorType,$entSensorScale,$entSensorPrecision,$entSensorValueUpdateRate,$entSensorMeasuredEntity) = explode("\n", $sensor_data);
|
list($entSensorType,$entSensorScale,$entSensorPrecision,$entSensorValueUpdateRate,$entSensorMeasuredEntity) = explode("\n", $sensor_data);
|
||||||
if($entSensorMeasuredEntity) {
|
if($entSensorMeasuredEntity) {
|
||||||
echo("M:$entSensorMeasuredEntity");
|
#echo("M:$entSensorMeasuredEntity");
|
||||||
}
|
}
|
||||||
if($config['allow_entity_sensor'][$entSensorType]) {
|
if($config['allow_entity_sensor'][$entSensorType]) {
|
||||||
$sql = "UPDATE `entPhysical` SET entSensorType = '$entSensorType', entSensorScale = '$entSensorScale', entSensorPrecision = '$entSensorPrecision', ";
|
$sql = "UPDATE `entPhysical` SET entSensorType = '$entSensorType', entSensorScale = '$entSensorScale', entSensorPrecision = '$entSensorPrecision', ";
|
||||||
|
|||||||
@@ -580,6 +580,8 @@ function graph_bits ($rrd, $graph, $from, $to, $width, $height, $title, $vertica
|
|||||||
$options .= $config['rrdgraph_def_text'];
|
$options .= $config['rrdgraph_def_text'];
|
||||||
if($height < "99") { $options .= " --only-graph"; unset ($legend); }
|
if($height < "99") { $options .= " --only-graph"; unset ($legend); }
|
||||||
if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
||||||
|
global $_GET;
|
||||||
|
if($_GET['bg']) { $options .= " -c CANVAS#" . $_GET['bg'] . " "; }
|
||||||
if($inverse) {
|
if($inverse) {
|
||||||
$in = 'out';
|
$in = 'out';
|
||||||
$out = 'in';
|
$out = 'in';
|
||||||
@@ -655,6 +657,8 @@ function pktsgraph ($rrd, $graph, $from, $to, $width, $height) {
|
|||||||
$options .= $config['rrdgraph_def_text'];
|
$options .= $config['rrdgraph_def_text'];
|
||||||
if($height < "99") { $options .= " --only-graph"; unset ($legend); }
|
if($height < "99") { $options .= " --only-graph"; unset ($legend); }
|
||||||
if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
||||||
|
global $_GET;
|
||||||
|
if($_GET['bg']) { $options .= " -c CANVAS#" . $_GET['bg'] . " "; }
|
||||||
$options .= " DEF:in=$database:INUCASTPKTS:AVERAGE";
|
$options .= " DEF:in=$database:INUCASTPKTS:AVERAGE";
|
||||||
$options .= " DEF:out=$database:OUTUCASTPKTS:AVERAGE";
|
$options .= " DEF:out=$database:OUTUCASTPKTS:AVERAGE";
|
||||||
$options .= " CDEF:dout=out,-1,*";
|
$options .= " CDEF:dout=out,-1,*";
|
||||||
@@ -710,6 +714,8 @@ function errorgraph ($rrd, $graph, $from, $to, $width, $height) {
|
|||||||
$options .= $config['rrdgraph_def_text'];
|
$options .= $config['rrdgraph_def_text'];
|
||||||
if($height < "99") { $options .= " --only-graph"; unset ($legend); }
|
if($height < "99") { $options .= " --only-graph"; unset ($legend); }
|
||||||
if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
||||||
|
global $_GET;
|
||||||
|
if($_GET['bg']) { $options .= " -c CANVAS#" . $_GET['bg'] . " "; }
|
||||||
$options .= " DEF:in=$database:INERRORS:AVERAGE";
|
$options .= " DEF:in=$database:INERRORS:AVERAGE";
|
||||||
$options .= " DEF:out=$database:OUTERRORS:AVERAGE";
|
$options .= " DEF:out=$database:OUTERRORS:AVERAGE";
|
||||||
$options .= " CDEF:dout=out,-1,*";
|
$options .= " CDEF:dout=out,-1,*";
|
||||||
@@ -736,6 +742,8 @@ function nucastgraph ($rrd, $graph, $from, $to, $width, $height) {
|
|||||||
$options .= $config['rrdgraph_def_text'];
|
$options .= $config['rrdgraph_def_text'];
|
||||||
if($height < "99") { $options .= " --only-graph"; unset ($legend); }
|
if($height < "99") { $options .= " --only-graph"; unset ($legend); }
|
||||||
if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
if($width <= "300") { $options .= " --font LEGEND:7:".$config['mono_font']." --font AXIS:6:".$config['mono_font']." --font-render-mode normal "; }
|
||||||
|
global $_GET;
|
||||||
|
if($_GET['bg']) { $options .= " -c CANVAS#" . $_GET['bg'] . " "; }
|
||||||
$options .= " DEF:in=$database:INNUCASTPKTS:AVERAGE";
|
$options .= " DEF:in=$database:INNUCASTPKTS:AVERAGE";
|
||||||
$options .= " DEF:out=$database:OUTNUCASTPKTS:AVERAGE";
|
$options .= " DEF:out=$database:OUTNUCASTPKTS:AVERAGE";
|
||||||
$options .= " CDEF:dout=out,-1,*";
|
$options .= " CDEF:dout=out,-1,*";
|
||||||
|
|||||||
@@ -0,0 +1,708 @@
|
|||||||
|
-- ******************************************************************
|
||||||
|
-- CISCO-IP-URPF-MIB
|
||||||
|
--
|
||||||
|
-- This module is used for monitoring the state of Unicast Reverse
|
||||||
|
-- Path Forwarding (URPF) checking.
|
||||||
|
--
|
||||||
|
-- September 2004, Michael Grobelch
|
||||||
|
--
|
||||||
|
-- Copyright (c) 2004 by Cisco Systems, Inc.
|
||||||
|
-- All rights reserved.
|
||||||
|
-- ******************************************************************
|
||||||
|
--
|
||||||
|
|
||||||
|
CISCO-IP-URPF-MIB DEFINITIONS ::= BEGIN
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
MODULE-IDENTITY,
|
||||||
|
OBJECT-TYPE,
|
||||||
|
Gauge32,
|
||||||
|
Integer32,
|
||||||
|
Counter32,
|
||||||
|
Unsigned32,
|
||||||
|
NOTIFICATION-TYPE FROM SNMPv2-SMI
|
||||||
|
MODULE-COMPLIANCE,
|
||||||
|
NOTIFICATION-GROUP,
|
||||||
|
OBJECT-GROUP FROM SNMPv2-CONF
|
||||||
|
TimeStamp,
|
||||||
|
TruthValue FROM SNMPv2-TC
|
||||||
|
SnmpAdminString FROM SNMP-FRAMEWORK-MIB
|
||||||
|
ifIndex FROM IF-MIB
|
||||||
|
ciscoMgmt FROM CISCO-SMI;
|
||||||
|
|
||||||
|
ciscoIpUrpfMIB MODULE-IDENTITY
|
||||||
|
LAST-UPDATED "200411120000Z"
|
||||||
|
ORGANIZATION "Cisco System, Inc."
|
||||||
|
CONTACT-INFO
|
||||||
|
"Postal: Cisco Systems, Inc.
|
||||||
|
170 West Tasman Drive
|
||||||
|
San Jose, CA 95134-1706
|
||||||
|
USA
|
||||||
|
|
||||||
|
Tel: +1 800 553-NETS
|
||||||
|
|
||||||
|
E-mail: cs-cef@cisco.com"
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
"Unicast Reverse Path Forwarding (URPF) is a function
|
||||||
|
that checks the validity of the source address of IP
|
||||||
|
packets received on an interface. This in an attempt
|
||||||
|
to prevent Denial of Service attacks based on IP address
|
||||||
|
spoofing.
|
||||||
|
|
||||||
|
URPF checks validity of a source address by determining
|
||||||
|
whether the packet would be successfully routed as a
|
||||||
|
destination address.
|
||||||
|
|
||||||
|
Based on configuration, the check made can be for existence
|
||||||
|
of any route for the address, or more strictly for a route
|
||||||
|
out the interface on which the packet was received by the
|
||||||
|
device. When a violating packet is detected, it can be dropped.
|
||||||
|
|
||||||
|
This MIB allows detection of spoofing events."
|
||||||
|
REVISION "200411120000Z"
|
||||||
|
DESCRIPTION
|
||||||
|
"Initial version of this MIB module."
|
||||||
|
::= { ciscoMgmt 451 }
|
||||||
|
|
||||||
|
--
|
||||||
|
-- MIB Object Definitions
|
||||||
|
--
|
||||||
|
|
||||||
|
ciscoIpUrpfMIBNotifs OBJECT IDENTIFIER ::= { ciscoIpUrpfMIB 0 }
|
||||||
|
ciscoIpUrpfMIBObjects OBJECT IDENTIFIER ::= { ciscoIpUrpfMIB 1 }
|
||||||
|
ciscoIpUrpfMIBConformance OBJECT IDENTIFIER ::= { ciscoIpUrpfMIB 2 }
|
||||||
|
|
||||||
|
--
|
||||||
|
-- URPF Statistics objects
|
||||||
|
--
|
||||||
|
cipUrpfScalar OBJECT IDENTIFIER ::= { ciscoIpUrpfMIBObjects 1 }
|
||||||
|
cipUrpfStatistics OBJECT IDENTIFIER ::= { ciscoIpUrpfMIBObjects 2 }
|
||||||
|
cipUrpfInterfaceConfig OBJECT IDENTIFIER ::= { ciscoIpUrpfMIBObjects 3 }
|
||||||
|
cipUrpfVrf OBJECT IDENTIFIER ::= { ciscoIpUrpfMIBObjects 4 }
|
||||||
|
|
||||||
|
cipUrpfDropRateWindow OBJECT-TYPE
|
||||||
|
SYNTAX Integer32 (1..600)
|
||||||
|
UNITS "seconds"
|
||||||
|
MAX-ACCESS read-write
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The window of time in the recent past over which the drop
|
||||||
|
count used in the drop rate computation is collected.
|
||||||
|
This global value applies for the computation of all URPF
|
||||||
|
rates, global and per-interface.
|
||||||
|
|
||||||
|
Once the period over which computations have been
|
||||||
|
performed exceeds cipUrpfDropRateWindow, every time a
|
||||||
|
computation is performed, the window slides up to end
|
||||||
|
at the current time and start at cipUrpfDropRateWindow
|
||||||
|
seconds before.
|
||||||
|
|
||||||
|
The cipUrpfDropRateWindow must be greater than
|
||||||
|
or equal to the interval between computations
|
||||||
|
(cipUrpfComputeInterval).
|
||||||
|
|
||||||
|
Since the agent must save the drop count values
|
||||||
|
for each compute interval in order to slide the window,
|
||||||
|
the number of counts saved is the quotient of
|
||||||
|
cipUrpfDropRateWindow divided by cipUrpfComputeInterval."
|
||||||
|
DEFVAL { 300 }
|
||||||
|
::= { cipUrpfScalar 1 }
|
||||||
|
|
||||||
|
cipUrpfComputeInterval OBJECT-TYPE
|
||||||
|
SYNTAX Integer32 (1..120)
|
||||||
|
UNITS "seconds"
|
||||||
|
MAX-ACCESS read-write
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The time between rate computations. This global value
|
||||||
|
applies for the computation of all URPF rates, global
|
||||||
|
and per-interface.
|
||||||
|
|
||||||
|
When the value of cipUrpfComputeInterval is changed,
|
||||||
|
the interval in-progress proceeds as though the value
|
||||||
|
had not changed. The change will apply to the length
|
||||||
|
of subsequent intervals.
|
||||||
|
|
||||||
|
The cipUrpfComputeInterval must be less than or equal
|
||||||
|
to the cipUrpfDropRateWindow."
|
||||||
|
DEFVAL { 30 }
|
||||||
|
::= { cipUrpfScalar 2 }
|
||||||
|
|
||||||
|
cipUrpfDropNotifyHoldDownTime OBJECT-TYPE
|
||||||
|
SYNTAX Integer32(1..1000)
|
||||||
|
UNITS "seconds"
|
||||||
|
MAX-ACCESS read-write
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The minimum time between issuance of
|
||||||
|
cipUrpfIfDropRateNotify notifications for a
|
||||||
|
particular interface and packet forwarding type.
|
||||||
|
|
||||||
|
Notifications are generated for each interface and
|
||||||
|
packet forwarding type that exceeds the drop-rate.
|
||||||
|
When a Notify is sent because the drop-rate is
|
||||||
|
exceeded for a particular interface and forwarding
|
||||||
|
type, the time specified by this object is used to
|
||||||
|
specify the minimum time that must elapse before
|
||||||
|
another Notify can be sent for that interface and
|
||||||
|
forwarding type. The time is specified globally but
|
||||||
|
used individually."
|
||||||
|
DEFVAL { 300 }
|
||||||
|
::= { cipUrpfScalar 3 }
|
||||||
|
|
||||||
|
cipUrpfTable OBJECT-TYPE
|
||||||
|
SYNTAX SEQUENCE OF CipUrpfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This table contains summary information for the
|
||||||
|
managed device on URPF dropping."
|
||||||
|
::= { cipUrpfStatistics 1 }
|
||||||
|
|
||||||
|
cipUrpfEntry OBJECT-TYPE
|
||||||
|
SYNTAX CipUrpfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"If the managed device supports URPF dropping,
|
||||||
|
a row exists for each IP version type (v4 and v6).
|
||||||
|
A row contains summary information on URPF
|
||||||
|
dropping over the entire managed device."
|
||||||
|
INDEX { cipUrpfIpVersion }
|
||||||
|
::= { cipUrpfTable 1 }
|
||||||
|
|
||||||
|
CipUrpfEntry ::= SEQUENCE {
|
||||||
|
cipUrpfIpVersion INTEGER,
|
||||||
|
cipUrpfDrops Counter32,
|
||||||
|
cipUrpfDropRate Gauge32
|
||||||
|
}
|
||||||
|
|
||||||
|
cipUrpfIpVersion OBJECT-TYPE
|
||||||
|
SYNTAX INTEGER {ipv4(1), ipv6(2)}
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Specifies the version of IP forwarding on an interface
|
||||||
|
to which the table row URPF counts, rates, and
|
||||||
|
configuration apply."
|
||||||
|
::= { cipUrpfEntry 1 }
|
||||||
|
|
||||||
|
cipUrpfDrops OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
UNITS "packets"
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Sum of dropped IP version cipUrpfIpVersion packets failing
|
||||||
|
a URPF check. This value is the sum of drops of packets
|
||||||
|
received on all interfaces of the managed device."
|
||||||
|
::= { cipUrpfEntry 2 }
|
||||||
|
|
||||||
|
cipUrpfDropRate OBJECT-TYPE
|
||||||
|
SYNTAX Gauge32
|
||||||
|
UNITS "packets per second"
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The rate of packet drops of IP version cipUrpfIpVersion
|
||||||
|
packets due to URPF for the managed device. The
|
||||||
|
per-interface drop rate notification is issued on rates
|
||||||
|
exceeding a limit (rising rate). This dropping may
|
||||||
|
indicate an security attack on the network. To determine
|
||||||
|
whether the attack/event is over, the NMS must
|
||||||
|
consult the managed device. This object can be polled to
|
||||||
|
determine the recent drop rate for the managed device
|
||||||
|
as a whole, in addition to querying particular interface
|
||||||
|
objects.
|
||||||
|
|
||||||
|
This object is the average rate of dropping over the most
|
||||||
|
recent window of time. The rate is computed by dividing
|
||||||
|
the number of packets dropped over a window by the window
|
||||||
|
time in seconds. The window time is specified by
|
||||||
|
cipUrpfDropRateWindow. Each time the drop rate is computed,
|
||||||
|
and at system startup, a snapshot is taken of the latest
|
||||||
|
value of cipUrpfDrops. Subtracting from this the snapshot
|
||||||
|
of cipUrpfDrops at the start of the current window of time
|
||||||
|
gives the number of packets dropped. The drop rate is
|
||||||
|
computed every cipUrpfComputeInterval seconds. As an
|
||||||
|
example, let cipUrpfDropRateWindow be 300 seconds,
|
||||||
|
and cipUrpfComputeInterval 30 seconds. Every 30 seconds,
|
||||||
|
the drop count five minutes previous is subtracted
|
||||||
|
from the current drop count, and the result is divided
|
||||||
|
by 300 to arrive at the drop rate.
|
||||||
|
|
||||||
|
At device start-up, until the device has been up more than
|
||||||
|
cipUrpfDropRateWindow, when drop rate is computed,
|
||||||
|
the value of cipUrpfDrops is divided by the time the
|
||||||
|
device has been up.
|
||||||
|
|
||||||
|
After the device has been up for cipUrpfDropRateWindow,
|
||||||
|
when drop rate is computed, the number of packet drops counted
|
||||||
|
from interval start time to the computation time is divided
|
||||||
|
by cipUrpfDropRateWindow.
|
||||||
|
|
||||||
|
Changes to cipUrpfDropRateWindow are not reflected in this
|
||||||
|
object until the next computation time.
|
||||||
|
|
||||||
|
The rate from the most recent computation is the value
|
||||||
|
fetched until the subsequent computation is performed."
|
||||||
|
::= { cipUrpfEntry 3 }
|
||||||
|
|
||||||
|
cipUrpfIfMonTable OBJECT-TYPE
|
||||||
|
SYNTAX SEQUENCE OF CipUrpfIfMonEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This table contains information on URPF dropping on
|
||||||
|
an interface."
|
||||||
|
::= { cipUrpfStatistics 2 }
|
||||||
|
|
||||||
|
cipUrpfIfMonEntry OBJECT-TYPE
|
||||||
|
SYNTAX CipUrpfIfMonEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"If IPv4 packet forwarding is configured on an interface,
|
||||||
|
and is configured to perform URPF checking, a row appears
|
||||||
|
in this table with indices [ifIndex][ipv4]. If IPv4
|
||||||
|
packet forwarding is deconfigured, or URPF checking
|
||||||
|
is deconfigured, the row disappears.
|
||||||
|
|
||||||
|
If IPv6 packet forwarding is configured on an interface,
|
||||||
|
and is configured to perform URPF checking, a row appears
|
||||||
|
in the table with indices [ifIndex][ipv6]. If IPv6
|
||||||
|
packet forwarding is deconfigured, or URPF checking
|
||||||
|
is deconfigured, the row disappears."
|
||||||
|
INDEX { ifIndex, cipUrpfIfIpVersion }
|
||||||
|
::= { cipUrpfIfMonTable 1 }
|
||||||
|
|
||||||
|
CipUrpfIfMonEntry ::= SEQUENCE {
|
||||||
|
cipUrpfIfIpVersion INTEGER,
|
||||||
|
cipUrpfIfDrops Counter32,
|
||||||
|
cipUrpfIfSuppressedDrops Counter32,
|
||||||
|
cipUrpfIfDropRate Gauge32,
|
||||||
|
cipUrpfIfDiscontinuityTime TimeStamp
|
||||||
|
}
|
||||||
|
|
||||||
|
cipUrpfIfIpVersion OBJECT-TYPE
|
||||||
|
SYNTAX INTEGER {ipv4(1), ipv6(2)}
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Specifies the version of IP forwarding on an interface
|
||||||
|
to which the table row URPF counts, rates, and
|
||||||
|
configuration apply."
|
||||||
|
::= { cipUrpfIfMonEntry 1}
|
||||||
|
|
||||||
|
cipUrpfIfDrops OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
UNITS "packets"
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The number of IP packets of version cipUrpfIfIpVersion
|
||||||
|
failing the URPF check and dropped by the managed device
|
||||||
|
on a particular interface.
|
||||||
|
|
||||||
|
Discontinuities in the value of this variable can occur
|
||||||
|
at re-initialization of the management system, and at
|
||||||
|
other times as indicated by the values of
|
||||||
|
cipUrpfIfDiscontinuityTime."
|
||||||
|
::= { cipUrpfIfMonEntry 2 }
|
||||||
|
|
||||||
|
cipUrpfIfSuppressedDrops OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
UNITS "packets"
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The number of IP packets of version cipUrpfIfIpVersion
|
||||||
|
failing the URPF check but given a reprieve and not
|
||||||
|
dropped by the managed device. Depending on the
|
||||||
|
device configuration and capabilities, the following
|
||||||
|
cases may cause incrementing of the counter:
|
||||||
|
- if the managed device is configured to allow self-pings
|
||||||
|
and the managed device pings itself.
|
||||||
|
- if the managed device is configured for loose URPF (if any
|
||||||
|
interface has a route to the source), and the strict
|
||||||
|
case fails while the loose case passes.
|
||||||
|
- DHCP Request packets (src 0.0.0.0 dst 255.255.255.255)
|
||||||
|
will pass after initially being marked for drop.
|
||||||
|
- RIP routing on unnumbered interfaces will pass after
|
||||||
|
initially being marked for drop.
|
||||||
|
- multicast packets will pass after initially being marked
|
||||||
|
for drop
|
||||||
|
- ACL's can be applied to permit packets after initially
|
||||||
|
being marked for drop.
|
||||||
|
|
||||||
|
Discontinuities in the value of this variable can occur
|
||||||
|
at re-initialization of the management system, and at
|
||||||
|
other times as indicated by the values of
|
||||||
|
cipUrpfIfDiscontinuityTime."
|
||||||
|
::= { cipUrpfIfMonEntry 3 }
|
||||||
|
|
||||||
|
cipUrpfIfDropRate OBJECT-TYPE
|
||||||
|
SYNTAX Gauge32
|
||||||
|
UNITS "packets/second"
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The rate of packet drops of IP version cipUrpfIfIpVersion
|
||||||
|
packets due to URPF on the interface.
|
||||||
|
|
||||||
|
This object is the average rate of dropping over the most
|
||||||
|
recent interval of time. The rate is computed by dividing
|
||||||
|
the number of packets dropped over an interval by the
|
||||||
|
interval time in seconds. Each time the drop rate
|
||||||
|
is computed, and at system startup, a snapshot is taken
|
||||||
|
of the latest value of cipUrpfIfDrops. Subtracting from this
|
||||||
|
the snapshot of cipUrpfIfDrops at the start of the current
|
||||||
|
interval of time gives the number of packets dropped.
|
||||||
|
The drop rate is computed every cipUrpfComputeInterval
|
||||||
|
seconds.
|
||||||
|
|
||||||
|
When drop rate is computed, if time since the creation of
|
||||||
|
a row in cipUrpfIfMonTable is less than
|
||||||
|
cipUrpfDropRateWindow, the value of cipUrpfIfDrops is
|
||||||
|
divided by the time since row was created.
|
||||||
|
|
||||||
|
After the row has been in existence for
|
||||||
|
cipUrpfDropRateWindow, when drop rate is computed, the
|
||||||
|
number of packet drops counted on the interface from
|
||||||
|
interval start time to the computation time is divided
|
||||||
|
by cipUrpfDropRateWindow.
|
||||||
|
|
||||||
|
Changes to cipUrpfDropRateWindow are not reflected in this
|
||||||
|
object until the next computation time.
|
||||||
|
|
||||||
|
The rate from the most recent computation is the value
|
||||||
|
fetched until the subsequent computation is performed."
|
||||||
|
::= { cipUrpfIfMonEntry 4 }
|
||||||
|
|
||||||
|
cipUrpfIfDiscontinuityTime OBJECT-TYPE
|
||||||
|
SYNTAX TimeStamp
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The value of sysUpTime on the most recent
|
||||||
|
occasion at which this interface's counters
|
||||||
|
suffered a discontinuity.
|
||||||
|
If no such discontinuities have occurred
|
||||||
|
since the last re-initialization of the
|
||||||
|
local management subsystem, then this
|
||||||
|
object contains a value of zero."
|
||||||
|
::= { cipUrpfIfMonEntry 5 }
|
||||||
|
|
||||||
|
cipUrpfIfConfTable OBJECT-TYPE
|
||||||
|
SYNTAX SEQUENCE OF CipUrpfIfConfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This table contains statistics information on URPF on
|
||||||
|
an interface."
|
||||||
|
::= { cipUrpfInterfaceConfig 1 }
|
||||||
|
|
||||||
|
cipUrpfIfConfEntry OBJECT-TYPE
|
||||||
|
SYNTAX CipUrpfIfConfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"A row exists in this table if a row exists
|
||||||
|
in cipUrpfIfMonTable."
|
||||||
|
AUGMENTS { cipUrpfIfMonEntry }
|
||||||
|
::= { cipUrpfIfConfTable 1 }
|
||||||
|
|
||||||
|
CipUrpfIfConfEntry ::= SEQUENCE {
|
||||||
|
cipUrpfIfDropRateNotifyEnable TruthValue,
|
||||||
|
cipUrpfIfNotifyDropRateThreshold Unsigned32,
|
||||||
|
cipUrpfIfNotifyDrHoldDownReset TruthValue,
|
||||||
|
cipUrpfIfCheckStrict INTEGER,
|
||||||
|
cipUrpfIfWhichRouteTableID INTEGER,
|
||||||
|
cipUrpfIfVrfName SnmpAdminString
|
||||||
|
}
|
||||||
|
|
||||||
|
cipUrpfIfDropRateNotifyEnable OBJECT-TYPE
|
||||||
|
SYNTAX TruthValue
|
||||||
|
MAX-ACCESS read-write
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This object specifies whether the system produces the
|
||||||
|
cipUrpfIfDropRateNotify notification as a result of URPF
|
||||||
|
dropping of version cipUrpfIfIpVersion IP packets on this
|
||||||
|
interface. A false value prevents such notifications from
|
||||||
|
being generated by this system."
|
||||||
|
DEFVAL { false }
|
||||||
|
::= { cipUrpfIfConfEntry 1 }
|
||||||
|
|
||||||
|
cipUrpfIfNotifyDropRateThreshold OBJECT-TYPE
|
||||||
|
SYNTAX Unsigned32
|
||||||
|
UNITS "packets/second"
|
||||||
|
MAX-ACCESS read-write
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"When the calculated rate of URPF packet drops
|
||||||
|
(cipUrpfIfDropRate) meets or exceeds the value
|
||||||
|
specified by this object, a cipUrpfIfDropRateNotify
|
||||||
|
notification is sent if cipUrpfIfDropRateNotifyEnable
|
||||||
|
is set to true, and no such notification for the
|
||||||
|
IP version has been sent for this interface for the
|
||||||
|
hold-down period.
|
||||||
|
|
||||||
|
Note that due to the calculation used for drop rate,
|
||||||
|
if there are less than n drop events in an n-second
|
||||||
|
period the notification will not be generated. To allow
|
||||||
|
for the detection of a small number of drop events, the
|
||||||
|
value 0 (zero) is used to indicate that if any drop events
|
||||||
|
occur during the interval, a notification is generated."
|
||||||
|
DEFVAL { 1000 }
|
||||||
|
::= { cipUrpfIfConfEntry 2 }
|
||||||
|
|
||||||
|
cipUrpfIfNotifyDrHoldDownReset OBJECT-TYPE
|
||||||
|
SYNTAX TruthValue
|
||||||
|
MAX-ACCESS read-write
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Setting this object to true causes the five-minute
|
||||||
|
hold-down timer for emitting URPF drop rate
|
||||||
|
notifications for IP version cipUrpfIfIpVersion on
|
||||||
|
the interface to be short-circuited. If a notification
|
||||||
|
is due and would be emitted for the interface if the
|
||||||
|
five-minutes elapsed, setting this object will cause
|
||||||
|
the notification to be sent.
|
||||||
|
|
||||||
|
This is a trigger, and doesn't hold information. It is
|
||||||
|
set and an action is performed. Therefore a get for
|
||||||
|
this object always returns false."
|
||||||
|
DEFVAL { false }
|
||||||
|
::= { cipUrpfIfConfEntry 3 }
|
||||||
|
|
||||||
|
cipUrpfIfCheckStrict OBJECT-TYPE
|
||||||
|
SYNTAX INTEGER {
|
||||||
|
strict(1),
|
||||||
|
loose(2)
|
||||||
|
}
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Interface configuration indicating the strictness of
|
||||||
|
the reachability check performed
|
||||||
|
on the interface.
|
||||||
|
- strict: check that source addr is reachable via
|
||||||
|
the interface it came in on.
|
||||||
|
- loose : check that source addr is reachable via
|
||||||
|
some interface on the device."
|
||||||
|
::= { cipUrpfIfConfEntry 4 }
|
||||||
|
|
||||||
|
cipUrpfIfWhichRouteTableID OBJECT-TYPE
|
||||||
|
SYNTAX INTEGER {
|
||||||
|
default(1),
|
||||||
|
vrf(2)
|
||||||
|
}
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Interface configuration indicating the routing table
|
||||||
|
consulted for the reachability check:
|
||||||
|
- default: the non-private routing table for of the
|
||||||
|
managed system.
|
||||||
|
- vrf : a particular VPN routing table."
|
||||||
|
::= { cipUrpfIfConfEntry 5 }
|
||||||
|
|
||||||
|
cipUrpfIfVrfName OBJECT-TYPE
|
||||||
|
SYNTAX SnmpAdminString (SIZE (0..32))
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"If the value of cipUrpfIfWhichRouteTableID is 'vrf',
|
||||||
|
the name of the VRF Table. Otherwise a zero-length
|
||||||
|
string."
|
||||||
|
::= { cipUrpfIfConfEntry 6 }
|
||||||
|
|
||||||
|
cipUrpfVrfTable OBJECT-TYPE
|
||||||
|
SYNTAX SEQUENCE OF CipUrpfVrfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This table enables indexing URPF drop statistics
|
||||||
|
by Virtual Routing and Forwarding instances."
|
||||||
|
::= { cipUrpfVrf 1 }
|
||||||
|
|
||||||
|
cipUrpfVrfEntry OBJECT-TYPE
|
||||||
|
SYNTAX CipUrpfVrfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"An entry exists for a VRF if and only if the VRF
|
||||||
|
is associated with an interface that is configured
|
||||||
|
to perform IP URPF checking using the routing table
|
||||||
|
for that VRF."
|
||||||
|
INDEX { cipUrpfVrfName }
|
||||||
|
::= { cipUrpfVrfTable 1 }
|
||||||
|
|
||||||
|
CipUrpfVrfEntry ::= SEQUENCE {
|
||||||
|
cipUrpfVrfName SnmpAdminString
|
||||||
|
}
|
||||||
|
|
||||||
|
cipUrpfVrfName OBJECT-TYPE
|
||||||
|
SYNTAX SnmpAdminString (SIZE (0..32))
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This field is used to specify the VRF Table
|
||||||
|
name."
|
||||||
|
::= { cipUrpfVrfEntry 1 }
|
||||||
|
|
||||||
|
cipUrpfVrfIfTable OBJECT-TYPE
|
||||||
|
SYNTAX SEQUENCE OF CipUrpfVrfIfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This table contains statistics information for interfaces
|
||||||
|
performing URPF using VRF table to determine reachability."
|
||||||
|
::= { cipUrpfStatistics 3 }
|
||||||
|
|
||||||
|
cipUrpfVrfIfEntry OBJECT-TYPE
|
||||||
|
SYNTAX CipUrpfVrfIfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"An entry exists for a VRF and interface if and only
|
||||||
|
if the VRF associated with the interface is configured
|
||||||
|
to perform IP URPF checking using the routing
|
||||||
|
table for the VRF."
|
||||||
|
INDEX { cipUrpfVrfName, ifIndex }
|
||||||
|
::= { cipUrpfVrfIfTable 1 }
|
||||||
|
|
||||||
|
CipUrpfVrfIfEntry ::= SEQUENCE {
|
||||||
|
cipUrpfVrfIfDrops Counter32,
|
||||||
|
cipUrpfVrfIfDiscontinuityTime TimeStamp
|
||||||
|
}
|
||||||
|
|
||||||
|
cipUrpfVrfIfDrops OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
UNITS "packets"
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The number of packets failing the URPF check for a VRF on
|
||||||
|
the interface and dropped by the managed device.
|
||||||
|
|
||||||
|
Discontinuities in the value of this variable can occur
|
||||||
|
at re-initialization of the management system, and at
|
||||||
|
other times as indicated by the values of
|
||||||
|
cipUrpfVrfIfDiscontinuityTime."
|
||||||
|
::= { cipUrpfVrfIfEntry 2 }
|
||||||
|
|
||||||
|
cipUrpfVrfIfDiscontinuityTime OBJECT-TYPE
|
||||||
|
SYNTAX TimeStamp
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The value of sysUpTime on the most recent occasion at
|
||||||
|
which the URPF counters for this VRF on this interface
|
||||||
|
suffered a discontinuity. If no such discontinuities
|
||||||
|
have occurred since the last re-initialization of the
|
||||||
|
local management subsystem, then this object contains a
|
||||||
|
value of zero."
|
||||||
|
::= { cipUrpfVrfIfEntry 3 }
|
||||||
|
|
||||||
|
--
|
||||||
|
-- URPF Notification objects
|
||||||
|
--
|
||||||
|
|
||||||
|
cipUrpfIfDropRateNotify NOTIFICATION-TYPE
|
||||||
|
OBJECTS {
|
||||||
|
cipUrpfIfDropRate
|
||||||
|
}
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This notification is generated when
|
||||||
|
cipUrpfIfDropRateNotifyEnable is set to true and
|
||||||
|
the calculated URPF drop rate (cipUrpfIfDropRate)
|
||||||
|
exceeds the notification threshold drop rate
|
||||||
|
(cipUrpfIfNotifyDropRateThreshold). Note the
|
||||||
|
exceptional value of 0 for threshold allows notification
|
||||||
|
generation if any drop events occur in an interval.
|
||||||
|
|
||||||
|
After generating this notification, another such
|
||||||
|
notification will not be sent out for a minimum of five
|
||||||
|
minutes (note the exception to this provided by
|
||||||
|
cipUrpfIfNotifyDrHoldDownReset).
|
||||||
|
|
||||||
|
The object value present in the notification is the
|
||||||
|
the drop rate that exceeded the threshold."
|
||||||
|
::= { ciscoIpUrpfMIBNotifs 1 }
|
||||||
|
|
||||||
|
|
||||||
|
-- Conformance Information Definition
|
||||||
|
ciscoIpUrpfMIBCompliances OBJECT IDENTIFIER ::=
|
||||||
|
{ ciscoIpUrpfMIBConformance 1 }
|
||||||
|
ciscoIpUrpfMIBGroups OBJECT IDENTIFIER ::=
|
||||||
|
{ ciscoIpUrpfMIBConformance 2 }
|
||||||
|
|
||||||
|
|
||||||
|
ciscoIpUrpfMIBCompliance MODULE-COMPLIANCE
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"An SNMP entity can implement this module to
|
||||||
|
provide URPF problem diagnosis information."
|
||||||
|
|
||||||
|
MODULE -- this module
|
||||||
|
|
||||||
|
MANDATORY-GROUPS { ciscoIpUrpfMIBMainObjectGroup,
|
||||||
|
ciscoIpUrpfMIBNotifyGroup }
|
||||||
|
|
||||||
|
GROUP ciscoIpUrpfMIBVrfObjectGroup
|
||||||
|
DESCRIPTION
|
||||||
|
"This group is mandatory for all implementations
|
||||||
|
that need to index URPF statistics by VRF interfaces."
|
||||||
|
|
||||||
|
::= { ciscoIpUrpfMIBCompliances 1 }
|
||||||
|
|
||||||
|
ciscoIpUrpfMIBMainObjectGroup OBJECT-GROUP
|
||||||
|
OBJECTS {
|
||||||
|
cipUrpfDropRateWindow,
|
||||||
|
cipUrpfComputeInterval,
|
||||||
|
cipUrpfDropNotifyHoldDownTime,
|
||||||
|
cipUrpfDrops,
|
||||||
|
cipUrpfDropRate,
|
||||||
|
cipUrpfIfDrops,
|
||||||
|
cipUrpfIfSuppressedDrops,
|
||||||
|
cipUrpfIfDropRate,
|
||||||
|
cipUrpfIfDropRateNotifyEnable,
|
||||||
|
cipUrpfIfNotifyDropRateThreshold,
|
||||||
|
cipUrpfIfNotifyDrHoldDownReset,
|
||||||
|
cipUrpfIfCheckStrict,
|
||||||
|
cipUrpfIfDiscontinuityTime
|
||||||
|
}
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The collection of common counter objects, those
|
||||||
|
needed by other objects, and the common interface
|
||||||
|
table."
|
||||||
|
::= { ciscoIpUrpfMIBGroups 1 }
|
||||||
|
|
||||||
|
ciscoIpUrpfMIBVrfObjectGroup OBJECT-GROUP
|
||||||
|
OBJECTS {
|
||||||
|
cipUrpfVrfName,
|
||||||
|
cipUrpfIfWhichRouteTableID,
|
||||||
|
cipUrpfIfVrfName,
|
||||||
|
cipUrpfVrfIfDrops,
|
||||||
|
cipUrpfVrfIfDiscontinuityTime
|
||||||
|
}
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The collection of objects needed to index by
|
||||||
|
VRF."
|
||||||
|
::= { ciscoIpUrpfMIBGroups 2 }
|
||||||
|
|
||||||
|
ciscoIpUrpfMIBNotifyGroup NOTIFICATION-GROUP
|
||||||
|
NOTIFICATIONS { cipUrpfIfDropRateNotify }
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The collection of objects which are used to specify
|
||||||
|
notifications for URPF."
|
||||||
|
::= { ciscoIpUrpfMIBGroups 6 }
|
||||||
|
|
||||||
|
END
|
||||||
@@ -0,0 +1,518 @@
|
|||||||
|
-- *****************************************************************
|
||||||
|
-- IANAifType-MIB.my: IANA Interface Type MIB
|
||||||
|
--
|
||||||
|
-- May 1994, Jeffrey T. Johnson
|
||||||
|
--
|
||||||
|
-- Copyright (c) 1994-1997, 1998, 1999, 2000-2006 by cisco Systems, Inc.
|
||||||
|
-- All rights reserved.
|
||||||
|
--
|
||||||
|
-- *****************************************************************
|
||||||
|
|
||||||
|
IANAifType-MIB DEFINITIONS ::= BEGIN
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
MODULE-IDENTITY, mib-2 FROM SNMPv2-SMI
|
||||||
|
TEXTUAL-CONVENTION FROM SNMPv2-TC;
|
||||||
|
|
||||||
|
ianaifType MODULE-IDENTITY
|
||||||
|
LAST-UPDATED "200603310000Z" -- March 31, 2006
|
||||||
|
ORGANIZATION "IANA"
|
||||||
|
CONTACT-INFO " Internet Assigned Numbers Authority
|
||||||
|
|
||||||
|
Postal: ICANN
|
||||||
|
4676 Admiralty Way, Suite 330
|
||||||
|
Marina del Rey, CA 90292
|
||||||
|
|
||||||
|
Tel: +1 310 823 9358
|
||||||
|
E-Mail: iana@iana.org"
|
||||||
|
|
||||||
|
DESCRIPTION "This MIB module defines the IANAifType Textual
|
||||||
|
Convention, and thus the enumerated values of
|
||||||
|
the ifType object defined in MIB-II's ifTable."
|
||||||
|
|
||||||
|
REVISION "200603310000Z" -- March 31, 2006
|
||||||
|
DESCRIPTION "Registration of new IANA ifType 234."
|
||||||
|
|
||||||
|
REVISION "200603300000Z" -- March 30, 2006
|
||||||
|
DESCRIPTION "Registration of new IANA ifType 233."
|
||||||
|
|
||||||
|
REVISION "200512220000Z" -- December 22, 2005
|
||||||
|
DESCRIPTION "Registration of new IANA ifTypes 231 and 232."
|
||||||
|
|
||||||
|
REVISION "200510100000Z" -- October 10, 2005
|
||||||
|
DESCRIPTION "Registration of new IANA ifType 230."
|
||||||
|
|
||||||
|
REVISION "200509090000Z" -- September 09, 2005
|
||||||
|
DESCRIPTION "Registration of new IANA ifType 229."
|
||||||
|
|
||||||
|
REVISION "200505270000Z" -- May 27, 2005
|
||||||
|
DESCRIPTION "Registration of new IANA ifType 228."
|
||||||
|
|
||||||
|
REVISION "200503030000Z" -- March 3, 2005
|
||||||
|
DESCRIPTION "Added the IANAtunnelType TC and deprecated
|
||||||
|
IANAifType sixToFour (215) per RFC4087."
|
||||||
|
|
||||||
|
REVISION "200411220000Z" -- November 22, 2004
|
||||||
|
DESCRIPTION "Registration of new IANA ifType 227 per RFC4327."
|
||||||
|
|
||||||
|
REVISION "200406170000Z" -- June 17, 2004
|
||||||
|
DESCRIPTION "Registration of new IANA ifType 226."
|
||||||
|
|
||||||
|
REVISION "200405120000Z" -- May 12, 2004
|
||||||
|
DESCRIPTION "Added description for IANAifType 6, and
|
||||||
|
changed the descriptions for IANAifTypes
|
||||||
|
180, 181, and 182."
|
||||||
|
|
||||||
|
REVISION "200405070000Z" -- May 7, 2004
|
||||||
|
DESCRIPTION "Registration of new IANAifType 225."
|
||||||
|
|
||||||
|
REVISION "200308250000Z" -- Aug 25, 2003
|
||||||
|
DESCRIPTION "Deprecated IANAifTypes 7 and 11. Obsoleted
|
||||||
|
IANAifTypes 62, 69, and 117. ethernetCsmacd (6)
|
||||||
|
should be used instead of these values"
|
||||||
|
|
||||||
|
REVISION "200308180000Z" -- Aug 18, 2003
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
224."
|
||||||
|
|
||||||
|
REVISION "200308070000Z" -- Aug 7, 2003
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
222 and 223."
|
||||||
|
|
||||||
|
REVISION "200303180000Z" -- Mar 18, 2003
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
221."
|
||||||
|
|
||||||
|
REVISION "200301130000Z" -- Jan 13, 2003
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
220."
|
||||||
|
|
||||||
|
REVISION "200210170000Z" -- Oct 17, 2002
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
219."
|
||||||
|
|
||||||
|
REVISION "200207160000Z" -- Jul 16, 2002
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
217 and 218."
|
||||||
|
|
||||||
|
REVISION "200207100000Z" -- Jul 10, 2002
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
215 and 216."
|
||||||
|
|
||||||
|
REVISION "200206190000Z" -- Jun 19, 2002
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
214."
|
||||||
|
|
||||||
|
REVISION "200201040000Z" -- Jan 4, 2002
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
211, 212 and 213."
|
||||||
|
|
||||||
|
REVISION "200112200000Z" -- Dec 20, 2001
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
209 and 210."
|
||||||
|
|
||||||
|
REVISION "200111150000Z" -- Nov 15, 2001
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
207 and 208."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
REVISION "200111060000Z" -- Nov 6, 2001
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
206."
|
||||||
|
|
||||||
|
|
||||||
|
REVISION "200111020000Z" -- Nov 2, 2001
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
205."
|
||||||
|
|
||||||
|
|
||||||
|
REVISION "200110160000Z" -- Oct 16, 2001
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
199, 200, 201, 202, 203, and 204."
|
||||||
|
|
||||||
|
|
||||||
|
REVISION "200109190000Z" -- Sept 19, 2001
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
198."
|
||||||
|
|
||||||
|
REVISION "200105110000Z" -- May 11, 2001
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
197."
|
||||||
|
|
||||||
|
|
||||||
|
REVISION "200101120000Z" -- Jan 12, 2001
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
195 and 196."
|
||||||
|
|
||||||
|
REVISION "200012190000Z" -- Dec 19, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
193 and 194."
|
||||||
|
|
||||||
|
REVISION "200012070000Z" -- Dec 07, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
191 and 192."
|
||||||
|
|
||||||
|
REVISION "200012040000Z" -- Dec 04, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifType
|
||||||
|
190."
|
||||||
|
|
||||||
|
REVISION "200010170000Z" -- Oct 17, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
188 and 189."
|
||||||
|
|
||||||
|
REVISION "200010020000Z" -- Oct 02, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifType 187."
|
||||||
|
|
||||||
|
REVISION "200009010000Z" -- Sept 01, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
184, 185, and 186."
|
||||||
|
|
||||||
|
REVISION "200008240000Z" -- Aug 24, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifType 183."
|
||||||
|
|
||||||
|
REVISION "200008230000Z" -- Aug 23, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes
|
||||||
|
174-182."
|
||||||
|
|
||||||
|
REVISION "200008220000Z" -- Aug 22, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes 170,
|
||||||
|
171, 172 and 173."
|
||||||
|
|
||||||
|
REVISION "200004250000Z" -- Apr 25, 2000
|
||||||
|
DESCRIPTION "Registration of new IANAifTypes 168 and 169."
|
||||||
|
|
||||||
|
|
||||||
|
REVISION "200003060000Z" -- Mar 6, 2000
|
||||||
|
DESCRIPTION "Fixed a missing semi-colon in the IMPORT.
|
||||||
|
Also cleaned up the REVISION log a bit.
|
||||||
|
It is not complete, but from now on it will
|
||||||
|
be maintained and kept up to date with each
|
||||||
|
change to this MIB module."
|
||||||
|
|
||||||
|
REVISION "199910081430Z" -- Oct 08, 1999
|
||||||
|
DESCRIPTION "Include new name assignments up to cnr(85).
|
||||||
|
This is the first version available via the WWW
|
||||||
|
at: ftp://ftp.isi.edu/mib/ianaiftype.mib"
|
||||||
|
|
||||||
|
REVISION "199401310000Z" -- Jan 31, 1994
|
||||||
|
DESCRIPTION "Initial version of this MIB as published in
|
||||||
|
RFC 1573."
|
||||||
|
|
||||||
|
::= { mib-2 30 }
|
||||||
|
|
||||||
|
|
||||||
|
IANAifType ::= TEXTUAL-CONVENTION
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This data type is used as the syntax of the ifType
|
||||||
|
object in the (updated) definition of MIB-II's
|
||||||
|
ifTable.
|
||||||
|
|
||||||
|
The definition of this textual convention with the
|
||||||
|
addition of newly assigned values is published
|
||||||
|
periodically by the IANA, in either the Assigned
|
||||||
|
Numbers RFC, or some derivative of it specific to
|
||||||
|
Internet Network Management number assignments. (The
|
||||||
|
latest arrangements can be obtained by contacting the
|
||||||
|
IANA.)
|
||||||
|
|
||||||
|
Requests for new values should be made to IANA via
|
||||||
|
email (iana@iana.org).
|
||||||
|
|
||||||
|
The relationship between the assignment of ifType
|
||||||
|
values and of OIDs to particular media-specific MIBs
|
||||||
|
is solely the purview of IANA and is subject to change
|
||||||
|
without notice. Quite often, a media-specific MIB's
|
||||||
|
OID-subtree assignment within MIB-II's 'transmission'
|
||||||
|
subtree will be the same as its ifType value.
|
||||||
|
However, in some circumstances this will not be the
|
||||||
|
case, and implementors must not pre-assume any
|
||||||
|
specific relationship between ifType values and
|
||||||
|
transmission subtree OIDs."
|
||||||
|
SYNTAX INTEGER {
|
||||||
|
other(1), -- none of the following
|
||||||
|
regular1822(2),
|
||||||
|
hdh1822(3),
|
||||||
|
ddnX25(4),
|
||||||
|
rfc877x25(5),
|
||||||
|
ethernetCsmacd(6), -- for all ethernet-like interfaces,
|
||||||
|
-- regardless of speed, as per RFC3635
|
||||||
|
iso88023Csmacd(7), -- Deprecated via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
|
||||||
|
iso88024TokenBus(8),
|
||||||
|
iso88025TokenRing(9),
|
||||||
|
iso88026Man(10),
|
||||||
|
starLan(11), -- Deprecated via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
|
||||||
|
proteon10Mbit(12),
|
||||||
|
proteon80Mbit(13),
|
||||||
|
hyperchannel(14),
|
||||||
|
fddi(15),
|
||||||
|
lapb(16),
|
||||||
|
sdlc(17),
|
||||||
|
ds1(18), -- DS1-MIB
|
||||||
|
e1(19), -- Obsolete see DS1-MIB
|
||||||
|
basicISDN(20),
|
||||||
|
primaryISDN(21),
|
||||||
|
propPointToPointSerial(22), -- proprietary serial
|
||||||
|
ppp(23),
|
||||||
|
softwareLoopback(24),
|
||||||
|
eon(25), -- CLNP over IP
|
||||||
|
ethernet3Mbit(26),
|
||||||
|
nsip(27), -- XNS over IP
|
||||||
|
slip(28), -- generic SLIP
|
||||||
|
ultra(29), -- ULTRA technologies
|
||||||
|
ds3(30), -- DS3-MIB
|
||||||
|
sip(31), -- SMDS, coffee
|
||||||
|
frameRelay(32), -- DTE only.
|
||||||
|
rs232(33),
|
||||||
|
para(34), -- parallel-port
|
||||||
|
arcnet(35), -- arcnet
|
||||||
|
arcnetPlus(36), -- arcnet plus
|
||||||
|
atm(37), -- ATM cells
|
||||||
|
miox25(38),
|
||||||
|
sonet(39), -- SONET or SDH
|
||||||
|
x25ple(40),
|
||||||
|
iso88022llc(41),
|
||||||
|
localTalk(42),
|
||||||
|
smdsDxi(43),
|
||||||
|
frameRelayService(44), -- FRNETSERV-MIB
|
||||||
|
v35(45),
|
||||||
|
hssi(46),
|
||||||
|
hippi(47),
|
||||||
|
modem(48), -- Generic modem
|
||||||
|
aal5(49), -- AAL5 over ATM
|
||||||
|
sonetPath(50),
|
||||||
|
sonetVT(51),
|
||||||
|
smdsIcip(52), -- SMDS InterCarrier Interface
|
||||||
|
propVirtual(53), -- proprietary virtual/internal
|
||||||
|
propMultiplexor(54),-- proprietary multiplexing
|
||||||
|
ieee80212(55), -- 100BaseVG
|
||||||
|
fibreChannel(56), -- Fibre Channel
|
||||||
|
hippiInterface(57), -- HIPPI interfaces
|
||||||
|
frameRelayInterconnect(58), -- Obsolete use either
|
||||||
|
-- frameRelay(32) or
|
||||||
|
-- frameRelayService(44).
|
||||||
|
aflane8023(59), -- ATM Emulated LAN for 802.3
|
||||||
|
aflane8025(60), -- ATM Emulated LAN for 802.5
|
||||||
|
cctEmul(61), -- ATM Emulated circuit
|
||||||
|
fastEther(62), -- Obsoleted via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
|
||||||
|
isdn(63), -- ISDN and X.25
|
||||||
|
v11(64), -- CCITT V.11/X.21
|
||||||
|
v36(65), -- CCITT V.36
|
||||||
|
g703at64k(66), -- CCITT G703 at 64Kbps
|
||||||
|
g703at2mb(67), -- Obsolete see DS1-MIB
|
||||||
|
qllc(68), -- SNA QLLC
|
||||||
|
fastEtherFX(69), -- Obsoleted via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
|
||||||
|
channel(70), -- channel
|
||||||
|
ieee80211(71), -- radio spread spectrum
|
||||||
|
ibm370parChan(72), -- IBM System 360/370 OEMI Channel
|
||||||
|
escon(73), -- IBM Enterprise Systems Connection
|
||||||
|
dlsw(74), -- Data Link Switching
|
||||||
|
isdns(75), -- ISDN S/T interface
|
||||||
|
isdnu(76), -- ISDN U interface
|
||||||
|
lapd(77), -- Link Access Protocol D
|
||||||
|
ipSwitch(78), -- IP Switching Objects
|
||||||
|
rsrb(79), -- Remote Source Route Bridging
|
||||||
|
atmLogical(80), -- ATM Logical Port
|
||||||
|
ds0(81), -- Digital Signal Level 0
|
||||||
|
ds0Bundle(82), -- group of ds0s on the same ds1
|
||||||
|
bsc(83), -- Bisynchronous Protocol
|
||||||
|
async(84), -- Asynchronous Protocol
|
||||||
|
cnr(85), -- Combat Net Radio
|
||||||
|
iso88025Dtr(86), -- ISO 802.5r DTR
|
||||||
|
eplrs(87), -- Ext Pos Loc Report Sys
|
||||||
|
arap(88), -- Appletalk Remote Access Protocol
|
||||||
|
propCnls(89), -- Proprietary Connectionless Protocol
|
||||||
|
hostPad(90), -- CCITT-ITU X.29 PAD Protocol
|
||||||
|
termPad(91), -- CCITT-ITU X.3 PAD Facility
|
||||||
|
frameRelayMPI(92), -- Multiproto Interconnect over FR
|
||||||
|
x213(93), -- CCITT-ITU X213
|
||||||
|
adsl(94), -- Asymmetric Digital Subscriber Loop
|
||||||
|
radsl(95), -- Rate-Adapt. Digital Subscriber Loop
|
||||||
|
sdsl(96), -- Symmetric Digital Subscriber Loop
|
||||||
|
vdsl(97), -- Very H-Speed Digital Subscrib. Loop
|
||||||
|
iso88025CRFPInt(98), -- ISO 802.5 CRFP
|
||||||
|
myrinet(99), -- Myricom Myrinet
|
||||||
|
voiceEM(100), -- voice recEive and transMit
|
||||||
|
voiceFXO(101), -- voice Foreign Exchange Office
|
||||||
|
voiceFXS(102), -- voice Foreign Exchange Station
|
||||||
|
voiceEncap(103), -- voice encapsulation
|
||||||
|
voiceOverIp(104), -- voice over IP encapsulation
|
||||||
|
atmDxi(105), -- ATM DXI
|
||||||
|
atmFuni(106), -- ATM FUNI
|
||||||
|
atmIma (107), -- ATM IMA
|
||||||
|
pppMultilinkBundle(108), -- PPP Multilink Bundle
|
||||||
|
ipOverCdlc (109), -- IBM ipOverCdlc
|
||||||
|
ipOverClaw (110), -- IBM Common Link Access to Workstn
|
||||||
|
stackToStack (111), -- IBM stackToStack
|
||||||
|
virtualIpAddress (112), -- IBM VIPA
|
||||||
|
mpc (113), -- IBM multi-protocol channel support
|
||||||
|
ipOverAtm (114), -- IBM ipOverAtm
|
||||||
|
iso88025Fiber (115), -- ISO 802.5j Fiber Token Ring
|
||||||
|
tdlc (116), -- IBM twinaxial data link control
|
||||||
|
gigabitEthernet (117), -- Obsoleted via RFC-draft-ietf-hubmib-etherif-mib-v3 ethernetCsmacd (6) should be used instead
|
||||||
|
hdlc (118), -- HDLC
|
||||||
|
lapf (119), -- LAP F
|
||||||
|
v37 (120), -- V.37
|
||||||
|
x25mlp (121), -- Multi-Link Protocol
|
||||||
|
x25huntGroup (122), -- X25 Hunt Group
|
||||||
|
trasnpHdlc (123), -- Transp HDLC
|
||||||
|
interleave (124), -- Interleave channel
|
||||||
|
fast (125), -- Fast channel
|
||||||
|
ip (126), -- IP (for APPN HPR in IP networks)
|
||||||
|
docsCableMaclayer (127), -- CATV Mac Layer
|
||||||
|
docsCableDownstream (128), -- CATV Downstream interface
|
||||||
|
docsCableUpstream (129), -- CATV Upstream interface
|
||||||
|
a12MppSwitch (130), -- Avalon Parallel Processor
|
||||||
|
tunnel (131), -- Encapsulation interface
|
||||||
|
coffee (132), -- coffee pot
|
||||||
|
ces (133), -- Circuit Emulation Service
|
||||||
|
atmSubInterface (134), -- ATM Sub Interface
|
||||||
|
l2vlan (135), -- Layer 2 Virtual LAN using 802.1Q
|
||||||
|
l3ipvlan (136), -- Layer 3 Virtual LAN using IP
|
||||||
|
l3ipxvlan (137), -- Layer 3 Virtual LAN using IPX
|
||||||
|
digitalPowerline (138), -- IP over Power Lines
|
||||||
|
mediaMailOverIp (139), -- Multimedia Mail over IP
|
||||||
|
dtm (140), -- Dynamic syncronous Transfer Mode
|
||||||
|
dcn (141), -- Data Communications Network
|
||||||
|
ipForward (142), -- IP Forwarding Interface
|
||||||
|
msdsl (143), -- Multi-rate Symmetric DSL
|
||||||
|
ieee1394 (144), -- IEEE1394 High Performance Serial Bus
|
||||||
|
if-gsn (145), -- HIPPI-6400
|
||||||
|
dvbRccMacLayer (146), -- DVB-RCC MAC Layer
|
||||||
|
dvbRccDownstream (147), -- DVB-RCC Downstream Channel
|
||||||
|
dvbRccUpstream (148), -- DVB-RCC Upstream Channel
|
||||||
|
atmVirtual (149), -- ATM Virtual Interface
|
||||||
|
mplsTunnel (150), -- MPLS Tunnel Virtual Interface
|
||||||
|
srp (151), -- Spatial Reuse Protocol
|
||||||
|
voiceOverAtm (152), -- Voice Over ATM
|
||||||
|
voiceOverFrameRelay (153), -- Voice Over Frame Relay
|
||||||
|
idsl (154), -- Digital Subscriber Loop over ISDN
|
||||||
|
compositeLink (155), -- Avici Composite Link Interface
|
||||||
|
ss7SigLink (156), -- SS7 Signaling Link
|
||||||
|
propWirelessP2P (157), -- Prop. P2P wireless interface
|
||||||
|
frForward (158), -- Frame Forward Interface
|
||||||
|
rfc1483 (159), -- Multiprotocol over ATM AAL5
|
||||||
|
usb (160), -- USB Interface
|
||||||
|
ieee8023adLag (161), -- IEEE 802.3ad Link Aggregate
|
||||||
|
bgppolicyaccounting (162), -- BGP Policy Accounting
|
||||||
|
frf16MfrBundle (163), -- FRF .16 Multilink Frame Relay
|
||||||
|
h323Gatekeeper (164), -- H323 Gatekeeper
|
||||||
|
h323Proxy (165), -- H323 Voice and Video Proxy
|
||||||
|
mpls (166), -- MPLS
|
||||||
|
mfSigLink (167), -- Multi-frequency signaling link
|
||||||
|
hdsl2 (168), -- High Bit-Rate DSL - 2nd generation
|
||||||
|
shdsl (169), -- Multirate HDSL2
|
||||||
|
ds1FDL (170), -- Facility Data Link 4Kbps on a DS1
|
||||||
|
pos (171), -- Packet over SONET/SDH Interface
|
||||||
|
dvbAsiIn (172), -- DVB-ASI Input
|
||||||
|
dvbAsiOut (173), -- DVB-ASI Output
|
||||||
|
plc (174), -- Power Line Communtications
|
||||||
|
nfas (175), -- Non Facility Associated Signaling
|
||||||
|
tr008 (176), -- TR008
|
||||||
|
gr303RDT (177), -- Remote Digital Terminal
|
||||||
|
gr303IDT (178), -- Integrated Digital Terminal
|
||||||
|
isup (179), -- ISUP
|
||||||
|
propDocsWirelessMaclayer (180), -- Cisco proprietary Maclayer
|
||||||
|
propDocsWirelessDownstream (181), -- Cisco proprietary Downstream
|
||||||
|
propDocsWirelessUpstream (182), -- Cisco proprietary Upstream
|
||||||
|
hiperlan2 (183), -- HIPERLAN Type 2 Radio Interface
|
||||||
|
propBWAp2Mp (184), -- PropBroadbandWirelessAccesspt2multipt
|
||||||
|
sonetOverheadChannel (185), -- SONET Overhead Channel
|
||||||
|
digitalWrapperOverheadChannel (186), -- Digital Wrapper
|
||||||
|
aal2 (187), -- ATM adaptation layer 2
|
||||||
|
radioMAC (188), -- MAC layer over radio links
|
||||||
|
atmRadio (189), -- ATM over radio links
|
||||||
|
imt (190), -- Inter Machine Trunks
|
||||||
|
mvl (191), -- Multiple Virtual Lines DSL
|
||||||
|
reachDSL (192), -- Long Reach DSL
|
||||||
|
frDlciEndPt (193), -- Frame Relay DLCI End Point
|
||||||
|
atmVciEndPt (194), -- ATM VCI End Point
|
||||||
|
opticalChannel (195), -- Optical Channel
|
||||||
|
opticalTransport (196), -- Optical Transport
|
||||||
|
propAtm (197), -- Proprietary ATM
|
||||||
|
voiceOverCable (198), -- Voice Over Cable Interface
|
||||||
|
infiniband (199), -- Infiniband
|
||||||
|
teLink (200), -- TE Link
|
||||||
|
q2931 (201), -- Q.2931
|
||||||
|
virtualTg (202), -- Virtual Trunk Group
|
||||||
|
sipTg (203), -- SIP Trunk Group
|
||||||
|
sipSig (204), -- SIP Signaling
|
||||||
|
docsCableUpstreamChannel (205), -- CATV Upstream Channel
|
||||||
|
econet (206), -- Acorn Econet
|
||||||
|
pon155 (207), -- FSAN 155Mb Symetrical PON interface
|
||||||
|
pon622 (208), -- FSAN622Mb Symetrical PON interface
|
||||||
|
bridge (209), -- Transparent bridge interface
|
||||||
|
linegroup (210), -- Interface common to multiple lines
|
||||||
|
voiceEMFGD (211), -- voice E&M Feature Group D
|
||||||
|
voiceFGDEANA (212), -- voice FGD Exchange Access North American
|
||||||
|
voiceDID (213), -- voice Direct Inward Dialing
|
||||||
|
mpegTransport (214), -- MPEG transport interface
|
||||||
|
sixToFour (215), -- 6to4 interface (DEPRECATED)
|
||||||
|
gtp (216), -- GTP (GPRS Tunneling Protocol)
|
||||||
|
pdnEtherLoop1 (217), -- Paradyne EtherLoop 1
|
||||||
|
pdnEtherLoop2 (218), -- Paradyne EtherLoop 2
|
||||||
|
opticalChannelGroup (219), -- Optical Channel Group
|
||||||
|
homepna (220), -- HomePNA ITU-T G.989
|
||||||
|
gfp (221), -- Generic Framing Procedure (GFP)
|
||||||
|
ciscoISLvlan (222), -- Layer 2 Virtual LAN using Cisco ISL
|
||||||
|
actelisMetaLOOP (223), -- Acteleis proprietary MetaLOOP High Speed Link
|
||||||
|
fcipLink (224), -- FCIP Link
|
||||||
|
rpr (225), -- Resilient Packet Ring Interface Type
|
||||||
|
qam (226), -- RF Qam Interface
|
||||||
|
lmp (227), -- Link Management Protocol
|
||||||
|
cblVectaStar (228), -- Cambridge Broadband Limited VectaStar
|
||||||
|
docsCableMCmtsDownstream (229), -- CATV Modular CMTS Downstream Interface
|
||||||
|
adsl2 (230), -- Asymmetric Digital Subscriber Loop Version 2
|
||||||
|
macSecControlledIF (231), -- MACSecControlled
|
||||||
|
macSecUncontrolledIF (232), -- MACSecUncontrolled
|
||||||
|
aviciOpticalEther (233), -- Avici Optical Ethernet Aggregate
|
||||||
|
atmbond (234) -- atmbond
|
||||||
|
}
|
||||||
|
|
||||||
|
IANAtunnelType ::= TEXTUAL-CONVENTION
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The encapsulation method used by a tunnel. The value
|
||||||
|
direct indicates that a packet is encapsulated
|
||||||
|
directly within a normal IP header, with no
|
||||||
|
intermediate header, and unicast to the remote tunnel
|
||||||
|
endpoint (e.g., an RFC 2003 IP-in-IP tunnel, or an RFC
|
||||||
|
1933 IPv6-in-IPv4 tunnel). The value minimal indicates
|
||||||
|
that a Minimal Forwarding Header (RFC 2004) is
|
||||||
|
inserted between the outer header and the payload
|
||||||
|
packet. The value UDP indicates that the payload
|
||||||
|
packet is encapsulated within a normal UDP packet
|
||||||
|
(e.g., RFC 1234).
|
||||||
|
|
||||||
|
The values sixToFour, sixOverFour, and isatap
|
||||||
|
indicates that an IPv6 packet is encapsulated directly
|
||||||
|
within an IPv4 header, with no intermediate header,
|
||||||
|
and unicast to the destination determined by the 6to4,
|
||||||
|
6over4, or ISATAP protocol.
|
||||||
|
|
||||||
|
The remaining protocol-specific values indicate that a
|
||||||
|
header of the protocol of that name is inserted
|
||||||
|
between the outer header and the payload header.
|
||||||
|
|
||||||
|
The assignment policy for IANAtunnelType values is
|
||||||
|
identical to the policy for assigning IANAifType
|
||||||
|
values."
|
||||||
|
SYNTAX INTEGER {
|
||||||
|
other(1), -- none of the following
|
||||||
|
direct(2), -- no intermediate header
|
||||||
|
gre(3), -- GRE encapsulation
|
||||||
|
minimal(4), -- Minimal encapsulation
|
||||||
|
l2tp(5), -- L2TP encapsulation
|
||||||
|
pptp(6), -- PPTP encapsulation
|
||||||
|
l2f(7), -- L2F encapsulation
|
||||||
|
udp(8), -- UDP encapsulation
|
||||||
|
atmp(9), -- ATMP encapsulation
|
||||||
|
msdp(10), -- MSDP encapsulation
|
||||||
|
sixToFour(11), -- 6to4 encapsulation
|
||||||
|
sixOverFour(12), -- 6over4 encapsulation
|
||||||
|
isatap(13), -- ISATAP encapsulation
|
||||||
|
teredo(14) -- Teredo encapsulation
|
||||||
|
}
|
||||||
|
|
||||||
|
END
|
||||||
Executable
+21
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
sub getfiles {
|
||||||
|
|
||||||
|
opendir(DIR,".");
|
||||||
|
|
||||||
|
while($file = readdir(DIR)) {
|
||||||
|
|
||||||
|
if($file !~ /^\./) {
|
||||||
|
|
||||||
|
foreach $all ($file) {
|
||||||
|
|
||||||
|
system("snmpttconvertmib --in=$all --out=/etc/snmp/snmptt-d.conf");
|
||||||
|
print "$all\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir(DIR);
|
||||||
|
}
|
||||||
|
|
||||||
|
&getfiles;
|
||||||
Reference in New Issue
Block a user