Merge branch 'master' into issue-2193

This commit is contained in:
Aaron Daniels
2016-03-29 20:16:07 +10:00
46 changed files with 4134 additions and 325 deletions
+1 -1
View File
@@ -6,6 +6,7 @@ LibreNMS core team:
- Daniel Preussker <f0o@librenms.org> (f0o)
- Søren Friis Rosiak <sorenrosiak@gmail.com> (rosiak)
- Mike Rostermund <mike@kollegienet.dk> (SaaldjorMike)
- Tony Murray <tonym@librenms.org> (murrant)
LibreNMS contributors:
- Bohdan Sanders <git@bohdans.com> (bohdan-s)
@@ -67,7 +68,6 @@ LibreNMS contributors:
- Robert Gornall <roblnm@khobbits.co.uk> (KHobbits)
- Rob Gormley <robert@gormley.me> (rgormley)
- Richard Kojedzinszky <krichy@nmdps.net> (rkojedzinszky)
- Tony Murray <murraytony@gmail.com> (murrant)
- Peter Lamperud <peter.lamperud@gmail.com> (vizay)
- Louis Bailleul <louis.bailleul@gmail.com> (alucardfh)
- Rick Hodger <rick@fuzzi.org.uk> (Tatermen)
+9 -4
View File
@@ -121,8 +121,6 @@ function IssueAlert($alert) {
$obj = DescribeAlert($alert);
if (is_array($obj)) {
echo 'Issuing Alert-UID #'.$alert['id'].'/'.$alert['state'].': ';
$msg = FormatAlertTpl($obj);
$obj['msg'] = $msg;
if (!empty($config['alert']['transports'])) {
ExtTransports($obj);
}
@@ -338,20 +336,27 @@ function ExtTransports($obj) {
$opts = array_filter($opts);
}
if (($opts === true || !empty($opts)) && $opts != false && file_exists($config['install_dir'].'/includes/alerts/transport.'.$transport.'.php')) {
$obj['transport'] = $transport;
$msg = FormatAlertTpl($obj);
$obj['msg'] = $msg;
echo $transport.' => ';
eval('$tmp = function($obj,$opts) { global $config; '.file_get_contents($config['install_dir'].'/includes/alerts/transport.'.$transport.'.php').' return false; };');
$tmp = $tmp($obj,$opts);
$prefix = array( 0=>"recovery", 1=>$obj['severity']." alert", 2=>"acknowledgment" );
$prefix[3] = &$prefix[0];
$prefix[4] = &$prefix[0];
if ($tmp) {
if ($tmp === true) {
echo 'OK';
log_event('Issued '.$prefix[$obj['state']]." for rule '".$obj['name']."' to transport '".$transport."'", $obj['device_id']);
}
else {
elseif ($tmp === false) {
echo 'ERROR';
log_event('Could not issue '.$prefix[$obj['state']]." for rule '".$obj['name']."' to transport '".$transport."'", $obj['device_id']);
}
else {
echo 'ERROR: '.$tmp."\r\n";
log_event('Could not issue '.$prefix[$obj['state']]." for rule '".$obj['name']."' to transport '".$transport."' Error: ".$tmp, $obj['device_id']);
}
}
echo '; ';
+9 -8
View File
@@ -19,11 +19,11 @@ cp check_mk_agent /usr/bin/check_mk_agent
chmod +x /usr/bin/check_mk_agent
```
* Copy the xinetd config file into place.
* Copy the service file(s) into place.
```shell
cp check_mk_xinetd /etc/xinetd.d/check_mk
```
| xinetd | systemd |
| --- | --- |
| `cp check_mk_xinetd /etc/xinetd.d/check_mk` | `cp check_mk@.service check_mk.socket /etc/systemd/system` |
* Create the relevant directories.
@@ -33,11 +33,12 @@ mkdir -p /usr/lib/check_mk_agent/plugins /usr/lib/check_mk_agent/local
* Copy each of the scripts from `agent-local/` into `/usr/lib/check_mk_agent/local` that you require to be graphed.
* Make each one executable that you want to use with `chmod +x /usr/lib/check_mk_agent/local/$script`
* And restart xinetd.
* Enable service scripts
| xinetd | systemd |
| --- | --- |
| `/etc/init.d/xinetd restart` | `systemctl enable --now check_mk.socket` |
```shell
/etc/init.d/xinetd restart
```
* Login to the LibreNMS web interface and edit the device you want to monitor. Under the modules section, ensure that unix-agent is enabled.
* Then under Applications, enable the apps that you plan to monitor.
+11 -1
View File
@@ -99,7 +99,7 @@ The template-parser understands `if` and `foreach` controls and replaces certain
Controls:
- if-else (Else can be omitted):
`{if %placeholder == 'value'}Some Text{else}Other Text{/if}`
`{if %placeholder == value}Some Text{else}Other Text{/if}`
- foreach-loop:
`{foreach %placeholder}Key: %key<br/>Value: %value{/foreach}`
@@ -116,6 +116,7 @@ Placeholders:
- Rule: `%rule`
- Rule-Name: `%name`
- Timestamp: `%timestamp`
- Transport name: `%transport`
- Contacts, must be iterated in a foreach, `%key` holds email and `%value` holds name: `%contacts`
The Default Template is a 'one-size-fit-all'. We highly recommend defining own templates for your rules to include more specific information.
@@ -136,6 +137,14 @@ Rule: {if %name}%name{else}%rule{/if}\r\n
Alert sent to: {foreach %contacts}%value <%key> {/foreach}
```
Conditional formatting example, will display a link to the host in email or just the hostname in any other transport:
```text
{if %transport == mail}<a href="https://my.librenms.install/device/device=%hostname/">%hostname</a>{else}%hostname{/if}
```
Note the use of double-quotes. Single quotes (`'`) in templates will be escaped (replaced with `\'`) in the output and should therefore be avoided.
# <a name="transports">Transports</a>
Transports are located within `$config['install_dir']/includes/alerts/transports.*.php` and defined as well as configured via ~~`$config['alert']['transports']['Example'] = 'Some Options'`~~.
@@ -178,6 +187,7 @@ $config['email_backend'] = 'mail'; // Mail backe
$config['email_from'] = NULL; // Mail from. Default: "ProjectName" <projectid@`hostname`>
$config['email_user'] = $config['project_id'];
$config['email_sendmail_path'] = '/usr/sbin/sendmail'; // The location of the sendmail program.
$config['email_html'] = FALSE; // Whether to send HTML email as opposed to plaintext
$config['email_smtp_host'] = 'localhost'; // Outgoing SMTP server name.
$config['email_smtp_port'] = 25; // The port to connect.
$config['email_smtp_timeout'] = 10; // SMTP connection timeout in seconds.
+6
View File
@@ -12,6 +12,12 @@ $config['geoloc']['latlng'] = true;
$config['geoloc']['engine'] = "google";//Only one available at present
```
Location resolution happens as follows (when `$config['geoloc']['latlng'] == true;`):
1. if `device['location']` contains `[lat, lng]` (note the square brackets), that is used
1. if there is a location overide in the `locations` table where `locations.location == device['location']`, that is used
* currently, no web UI
1. attempt to resolve lat, lng using `$config['geoloc']['engine']`
We have two current mapping engines available:
- Leaflet (default)
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

+45 -21
View File
@@ -11,8 +11,16 @@
* the source code distribution for details.
*/
if(is_admin() !== false) {
require 'includes/javascript-interfacepicker.inc.php';
$port_device_id = -1;
if (is_numeric($vars['port'])) {
$port = dbFetchRow('SELECT * FROM `ports` AS P, `devices` AS D WHERE `port_id` = ? AND D.device_id = P.device_id', array($vars['port']));
$bill_data['bill_name'] = $port['port_descr_descr'];
$bill_data['bill_ref'] = $port['port_descr_circuit'];
$bill_data['bill_notes'] = $port['port_descr_speed'];
$port_device_id = $port['device_id'];
}
?>
@@ -27,34 +35,50 @@ if(is_admin() !== false) {
<form method="post" role="form" action="bills/" class="form-horizontal alerts-form">
<input type="hidden" name="addbill" value="yes" />
<div class="form-group">
<label class="col-sm-4 control-label" for="device">Device</label>
<div class="col-sm-8">
<select class="form-control input-sm" id="device" name="device" onchange="getInterfaceList(this)">
<option value=''>Select a device</option>
<?php
$devices = dbFetchRows('SELECT * FROM `devices` ORDER BY hostname');
foreach ($devices as $device) {
$selected = $device['device_id'] == $port_device_id ? " selected" : "";
echo "<option value='${device['device_id']}' $selected>${device['hostname']}</option>\n";
}
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="port_id">Port</label>
<div class="col-sm-8">
<select class="form-control input-sm" id="port_id" name="port_id">
<?php if (is_array($port)) {
// Need to pre-populate port as we've got a port pre-selected
foreach (dbFetch('SELECT * FROM ports WHERE device_id = ?', array($port_device_id)) as $interface) {
$interface = ifNameDescr($interface);
$string = $interface['label'].' - '.$interface['ifAlias'];
$selected = $interface['port_id'] === $port['port_id'] ? " selected" : "";
echo "<option value='${interface['port_id']}' $selected>$string</option>\n";
}
} ?>
</select>
</div>
</div>
<?php
if (is_array($port)) {
$portalias = (empty($port['ifAlias']) ? '' : ' - '.$port['ifAlias'].'');
?>
<div class="well">
<input type="hidden" name="port" value="<?php echo $port['port_id'] ?>" />
<p>
<?php echo generate_device_link($port) ?>
<i class="fa fa-random"></i>
<?php echo generate_port_link($port, $port['ifName'] . $portalias) ?>
</p>
</div>
<?php
$bill_data['bill_name'] = $port['port_descr_descr'];
$bill_data['bill_ref'] = $port['port_descr_circuit'];
$bill_data['bill_notes'] = $port['port_descr_speed'];
}
$bill_data['bill_type'] = 'cdr';
$quota = array('select_gb' => ' selected');
$cdr = array('select_mbps' => ' selected');
include 'pages/bill/addoreditbill.inc.php';
?>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-4">
<button type="submit" class="btn btn-primary"><i class="fa fa-check"></i> Add Bill</button>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-4">
<button type="submit" class="btn btn-primary"><i class="fa fa-check"></i> Add Bill</button>
</div>
</div>
</form>
</div>
+1 -1
View File
@@ -100,7 +100,7 @@ if ($rowCount != -1) {
$sql .= " LIMIT $limit_low,$limit_high";
}
$sql = "SELECT `alerts`.*, `devices`.`hostname` AS `hostname`,`alert_rules`.`rule` AS `rule`, `alert_rules`.`name` AS `name`, `alert_rules`.`severity` AS `severity` $sql";
$sql = "SELECT `alerts`.*, `devices`.`hostname` AS `hostname`, `devices`.`sysName` AS `sysName`,`alert_rules`.`rule` AS `rule`, `alert_rules`.`name` AS `name`, `alert_rules`.`severity` AS `severity` $sql";
$rulei = 0;
$format = $_POST['format'];
+171
View File
@@ -0,0 +1,171 @@
<?php
// Calculate filters
$prev = !empty($_POST['period']) && ($_POST['period'] == 'prev');
$wheres = array();
$param = array();
if (isset($searchPhrase) && !empty($searchPhrase)) {
$wheres[] = 'bills.bill_name LIKE ?';
$param[] = "%$searchPhrase%";
}
if (!empty($_POST['bill_type'])) {
if ($prev) {
$wheres[] = 'bill_history.bill_type = ?';
}
else {
$wheres[] = 'bill_type = ?';
}
$param[] = $_POST['bill_type'];
}
if (!empty($_POST['state'])) {
if ($_POST['state'] === 'under') {
if ($prev) {
$wheres[] = "((bill_history.bill_type = 'cdr' AND bill_history.rate_95th <= bill_history.bill_allowed) OR (bill_history.bill_type = 'quota' AND bill_history.traf_total <= bill_history.bill_allowed))";
}
else {
$wheres[] = "((bill_type = 'cdr' AND rate_95th <= bill_cdr) OR (bill_type = 'quota' AND total_data <= bill_quota))";
}
}
else if ($_POST['state'] === 'over') {
if ($prev) {
$wheres[] = "((bill_history.bill_type = 'cdr' AND bill_history.rate_95th > bill_history.bill_allowed) OR (bill_history.bill_type = 'quota' AND bill_history.traf_total > bill_allowed))";
}
else {
$wheres[] = "((bill_type = 'cdr' AND rate_95th > bill_cdr) OR (bill_type = 'quota' AND total_data > bill_quota))";
}
}
}
if ($prev) {
$select = "SELECT bills.bill_name, bills.bill_notes, bill_history.*, bill_history.traf_total as total_data, bill_history.traf_in as total_data_in, bill_history.traf_out as total_data_out ";
$query = 'FROM `bills`
INNER JOIN (SELECT bill_id, MAX(bill_hist_id) AS bill_hist_id FROM bill_history WHERE bill_dateto < NOW() AND bill_dateto > subdate(NOW(), 40) GROUP BY bill_id) qLastBills ON bills.bill_id = qLastBills.bill_id
INNER JOIN bill_history ON qLastBills.bill_hist_id = bill_history.bill_hist_id
';
}
else {
$select = "SELECT bills.*,
IF(bills.bill_type = 'CDR', bill_cdr, bill_quota) AS bill_allowed
";
$query = "FROM `bills`\n";
}
// Permissions check
if (is_admin() === false && is_read() === false) {
$query .= ' INNER JOIN `bill_perms` AS `BP` ON `bills`.`bill_id` = `BP`.`bill_id` ';
$wheres[] = '`BP`.`user_id`=?';
$param[] = $_SESSION['user_id'];
}
if (sizeof($wheres) > 0) {
$query .= "WHERE " . implode(' AND ', $wheres) . "\n";
}
$orderby = "ORDER BY bills.bill_name";
$total = dbFetchCell("SELECT COUNT(bills.bill_id) $query", $param);
$sql = "$select
$query";
if (!isset($sort) || empty($sort)) {
$sort = 'bills.bill_name';
}
$sql .= "\nORDER BY $sort";
if (isset($current)) {
$limit_low = (($current * $rowCount) - ($rowCount));
$limit_high = $rowCount;
}
if ($rowCount != -1) {
$sql .= " LIMIT $limit_low,$limit_high";
}
foreach (dbFetchRows($sql, $param) as $bill) {
if ($prev) {
$datefrom = $bill['bill_datefrom'];
$dateto = $bill['bill_dateto'];
}
else {
$day_data = getDates($bill['bill_day']);
$datefrom = $day_data['0'];
$dateto = $day_data['1'];
}
$rate_95th = format_si($bill['rate_95th']) . 'bps';
$dir_95th = $bill['dir_95th'];
$total_data = format_bytes_billing($bill['total_data']);
$rate_average = $bill['rate_average'];
$url = generate_url(array('page' => 'bill', 'bill_id' => $bill['bill_id']));
$used95th = format_si($bill['rate_95th']).'bps';
$notes = $bill['bill_notes'];
if ($prev) {
$percent = $bill['bill_percent'];
$overuse = $bill['bill_overuse'];
}
else {
}
if (strtolower($bill['bill_type']) == 'cdr') {
$type = 'CDR';
$allowed = format_si($bill['bill_allowed']).'bps';
$in = format_si($bill['rate_95th_in']).'bps';
$out = format_si($bill['rate_95th_out']).'bps';
if (!$prev) {
$percent = round((($bill['rate_95th'] / $bill['bill_allowed']) * 100), 2);
$overuse = ($bill['rate_95th'] - $bill['bill_allowed']);
}
$overuse_formatted = format_si($overuse).'bps';
$used = $rate_95th;
$rate_95th = "<b>$rate_95th</b>";
}
else if (strtolower($bill['bill_type']) == 'quota') {
$type = 'Quota';
$allowed = format_bytes_billing($bill['bill_allowed']);
$in = format_bytes_billing($bill['traf_in']);
$out = format_bytes_billing($bill['traf_out']);
if (!$prev) {
$percent = round((($bill['total_data'] / ($bill['bill_allowed'])) * 100), 2);
$overuse = ($bill['total_data'] - $bill['bill_allowed']);
}
$overuse_formatted = format_bytes_billing($overuse);
$used = $total_data;
$total_data = "<b>$total_data</b>";
}
$background = get_percentage_colours($percent);
$right_background = $background['right'];
$left_background = $background['left'];
$overuse_formatted = (($overuse <= 0) ? '-' : "<span style='color: #${background['left']}; font-weight: bold;'>$overuse_formatted</span>");
$bill_name = "<a href='$url'><span style='font-weight: bold;' class='interface'>${bill['bill_name']}</span></a><br />" .
strftime('%F', strtotime($datefrom)) . " to " . strftime('%F', strtotime($dateto));
$bar = print_percentage_bar(250, 20, $percent, null, 'ffffff', $background['left'], $percent.'%', 'ffffff', $background['right']);
$actions = "";
if (!$prev && is_admin()) {
$actions .= "<a href='" . generate_url(array('page' => 'bill', 'bill_id' => $bill['bill_id'], 'view' => 'edit')) .
"'><img src='images/16/wrench.png' align=absmiddle alt='Edit'> Edit</a> ";
}
$response[] = array(
'bill_name' => $bill_name,
'notes' => $notes,
'bill_type' => $type,
'bill_allowed' => $allowed,
'total_data_in' => $in,
'total_data_out'=> $out,
'total_data' => $total_data,
'rate_95th' => $rate_95th,
'used' => $used,
'overusage' => $overuse_formatted,
'graph' => $bar,
'actions' => $actions
);
}
$output = array('current' => $current, 'rowCount' => $rowCount, 'rows' => $response, 'total' => $total);
echo _json_encode($output);
+1
View File
@@ -1,3 +1,4 @@
<h4>Bill Information</h4>
<div class="form-group">
<label for="bill_name" class="col-sm-4 control-label">Description</label>
<div class="col-sm-8">
+1 -10
View File
@@ -150,16 +150,7 @@
<?php
$devices = dbFetchRows('SELECT * FROM `devices` ORDER BY hostname');
foreach ($devices as $device) {
unset($done);
foreach ($access_list as $ac) {
if ($ac == $device['device_id']) {
$done = 1;
}
}
if (!$done) {
echo " <option value='".$device['device_id']."'>".$device['hostname']."</option>\n";
}
echo "<option value='${device['device_id']}'>${device['hostname']}</option>\n";
}
?>
+80 -106
View File
@@ -75,8 +75,8 @@ if ($_POST['addbill'] == 'yes') {
$bill_id = dbInsert($insert, 'bills');
if (is_numeric($bill_id) && is_numeric($_POST['port'])) {
dbInsert(array('bill_id' => $bill_id, 'port_id' => $_POST['port']), 'bill_ports');
if (is_numeric($bill_id) && is_numeric($_POST['port_id'])) {
dbInsert(array('bill_id' => $bill_id, 'port_id' => $_POST['port_id']), 'bill_ports');
}
header('Location: /' . generate_url(array('page' => 'bill', 'bill_id' => $bill_id, 'view' => 'edit')));
@@ -87,116 +87,90 @@ $pagetitle[] = 'Billing';
echo "<meta http-equiv='refresh' content='10000'>";
if ($vars['view'] == 'history') {
include 'pages/bills/search.inc.php';
include 'pages/bills/pmonth.inc.php';
}
else {
include 'pages/bills/search.inc.php';
include 'includes/modal/new_bill.inc.php';
include 'includes/modal/new_bill.inc.php';
?>
<table class="table table-striped">
<thead>
<th>Billing name</th>
<th></th>
<th>Type</th>
<th>Allowed</th>
<th>Used</th>
<th>Overusage</th>
<th></th>
<th></th>
</thead>
<tbody>
<?php
$wheres = array();
$params = array();
if (!empty($_GET['search'])) {
$wheres[] = 'bills.bill_name LIKE ?';
$params[] = '%'.$_GET['search'].'%';
}
if (!empty($_GET['bill_type'])) {
$wheres[] = 'bill_type = ?';
$params[] = $_GET['bill_type'];
}
if ($_GET['state'] === 'under') {
$wheres[] = "((bill_type = 'cdr' AND rate_95th <= bill_cdr) OR (bill_type = 'quota' AND total_data <= bill_quota))";
} else if ($_GET['state'] === 'over') {
$wheres[] = "((bill_type = 'cdr' AND rate_95th > bill_cdr) OR (bill_type = 'quota' AND total_data > bill_quota))";
}
<div class="panel panel-default panel-condensed">
<div class="table-responsive">
<table class="table table-hover" id="bills-list">
<thead>
<th data-column-id="bill_name">Billing name</th>
<th data-column-id="notes" data-sortable="false"></th>
<th data-column-id="bill_type">Type</th>
<th data-column-id="bill_allowed" data-align="right">Allowed</th>
<th data-column-id="total_data_in" data-align="right">Inbound</th>
<th data-column-id="total_data_out" data-align="right">Outbound</th>
<th data-column-id="total_data" data-align="right">Total</th>
<th data-column-id="rate_95th" data-align="right">95th Percentile</th>
<th data-column-id="overusage" data-sortable="false" data-align="center">Overusage</th>
<th data-column-id="graph" data-sortable="false"></th>
<th data-column-id="actions" data-sortable="false"></th>
</thead>
</table>
</div>
</div>
<script type="text/html" id="table-header">
<div id="{{ctx.id}}" class="{{css.header}}">
<div class="row">
<div class="col-sm-4">
<?php if ($_SESSION['userlevel'] >= 10) { ?>
<button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#create-bill"><i class="fa fa-plus"></i> Create Bill</button>
<?php } ?>
</div>
<div class="col-sm-8 actionBar">
<span class="form-inline" id="table-filters">
<fieldset class="form-group">
<select name='period' id='period' class="form-control input-sm">
<option value=''>Current Billing Period</option>
<option value='prev'>Previous Billing Period</option>
</select>
<select name='bill_type' id='bill_type' class="form-control input-sm">
<option value=''>All Types</option>
<option value='cdr' <?php if ($_GET['bill_type'] === 'cdr') { echo 'selected'; } ?>>CDR</option>
<option value='quota' <?php if ($_GET['bill_type'] === 'quota') { echo 'selected'; } ?>>Quota</option>
</select>
<select name='state' id='state' class="form-control input-sm">
<option value=''>All States</option>
<option value='under' <?php if ($_GET['state'] === 'under') { echo 'selected'; } ?>>Under Quota</option>
<option value='over' <?php if ($_GET['state'] === 'over') { echo 'selected'; } ?>>Over Quota</option>
</select>
</fieldset>
</span>
<p class="{{css.search}}"></p>
<p class="{{css.actions}}"></p>
</div>
</div>
</div>
</script>
<script type="text/javascript">
var grid = $('#bills-list').bootgrid({
ajax: true,
templates: {
header: $('#table-header').html()
},
columnSelection: false,
rowCount: [10,20,50,100,-1],
post: function() {
return {
id: 'bills',
bill_type: $('select#bill_type').val(),
state: $('select#state').val(),
period: $('select#period').val()
};
},
url: "/ajax_table.php"
}).on("loaded.rs.jquery.bootgrid", function() {
});
$('#table-filters select').on('change', function() { grid.bootgrid('reload'); });
$query = 'SELECT *
FROM `bills`
';
if (sizeof($wheres) > 0) {
$query .= 'WHERE ' . implode(' AND ', $wheres) . "\n";
}
$query .= 'ORDER BY bills.bill_name';
foreach (dbFetchRows($query, $params) as $bill) {
if (bill_permitted($bill['bill_id'])) {
unset($class);
$day_data = getDates($bill['bill_day']);
$datefrom = $day_data['0'];
$dateto = $day_data['1'];
$rate_data = $bill;
$rate_95th = $rate_data['rate_95th'];
$dir_95th = $rate_data['dir_95th'];
$total_data = $rate_data['total_data'];
$rate_average = $rate_data['rate_average'];
if ($bill['bill_type'] == 'cdr') {
$type = 'CDR';
$allowed = format_si($bill['bill_cdr']).'bps';
$used = format_si($rate_data['rate_95th']).'bps';
$percent = round((($rate_data['rate_95th'] / $bill['bill_cdr']) * 100), 2);
$background = get_percentage_colours($percent);
$overuse = ($rate_data['rate_95th'] - $bill['bill_cdr']);
$overuse = (($overuse <= 0) ? '-' : '<span style="color: #'.$background['left'].'; font-weight: bold;">'.format_si($overuse).'bps</span>');
}
else if ($bill['bill_type'] == 'quota') {
$type = 'Quota';
$allowed = format_bytes_billing($bill['bill_quota']);
$used = format_bytes_billing($rate_data['total_data']);
$percent = round((($rate_data['total_data'] / ($bill['bill_quota'])) * 100), 2);
$background = get_percentage_colours($percent);
$overuse = ($rate_data['total_data'] - $bill['bill_quota']);
$overuse = (($overuse <= 0) ? '-' : '<span style="color: #'.$background['left'].'; font-weight: bold;">'.format_bytes_billing($overuse).'</span>');
}
$right_background = $background['right'];
$left_background = $background['left'];
?>
<tr>
<td>
<a href='<?php echo generate_url(array('page' => 'bill', 'bill_id' => $bill['bill_id'])) ?>'><span style='font-weight: bold;' class=interface><?php echo $bill['bill_name'] ?></span></a>
<br />
<?php echo strftime('%F', strtotime($datefrom)) ?> to <?php echo strftime('%F', strtotime($dateto)) ?>
</td>
<td><?php echo $notes ?></td>
<td><?php echo $type ?></td>
<td><?php echo $allowed ?></td>
<td><?php echo $used ?></td>
<td style="text-align: center;"><?php echo $overuse ?></td>
<td><?php echo print_percentage_bar(250, 20, $percent, null, 'ffffff', $background['left'], $percent.'%', 'ffffff', $background['right'])?></td>
<td>
<?php if ($_SESSION['userlevel'] >= 10) { ?>
<a href='<?php echo generate_url(array('page' => 'bill', 'bill_id' => $bill['bill_id'], 'view' => 'edit')) ?>'><img src='images/16/wrench.png' align=absmiddle alt='Edit'> Edit</a>
<?php } ?>
</td>
</tr>
<?php }
}?>
</tbody>
</table>
<?php
if ($vars['view'] == 'add') {
?>
<script type="text/javascript">
$(function() {
$('#create-bill').modal('show');
});
</script>
<?php
}
}
}
?>
</script>
-98
View File
@@ -1,98 +0,0 @@
<?php
$no_refresh = true;
$pagetitle[] = 'Previous Billing Period';
echo '<table class="table table-condensed table-striped">
<thead>
<tr>
<th>Billing name</th>
<th>Type</th>
<th>Allowed</th>
<th>Inbound</th>
<th>Outbound</th>
<th>Total</th>
<th>95 percentile</th>
<th>Overusage</th>
<th></th>
</tr>
</thead>
<tbody>';
$wheres = array();
$params = array();
if (!empty($_GET['search'])) {
$wheres[] = 'bills.bill_name LIKE ?';
$params[] = '%'.$_GET['search'].'%';
}
if (!empty($_GET['bill_type'])) {
$wheres[] = 'bill_history.bill_type = ?';
$params[] = $_GET['bill_type'];
}
if ($_GET['state'] === 'under') {
$wheres[] = 'bill_history.bill_overuse = 0';
} else if ($_GET['state'] === 'over') {
$wheres[] = 'bill_history.bill_overuse > 0';
}
$query = 'SELECT bills.bill_name, bill_history.*
FROM `bills`
INNER JOIN (SELECT bill_id, MAX(bill_hist_id) AS bill_hist_id FROM bill_history WHERE bill_dateto < NOW() AND bill_dateto > subdate(NOW(), 40) GROUP BY bill_id) qLastBills ON bills.bill_id = qLastBills.bill_id
INNER JOIN bill_history ON qLastBills.bill_hist_id = bill_history.bill_hist_id
';
if (sizeof($wheres) > 0) {
$query .= 'WHERE ' . implode(' AND ', $wheres) . "\n";
}
$query .= 'ORDER BY bills.bill_name';
foreach (dbFetchRows($query, $params) as $bill) {
if (bill_permitted($bill['bill_id'])) {
$datefrom = $bill['bill_datefrom'];
$dateto = $bill['bill_dateto'];
unset($class);
$type = $bill['bill_type'];
$percent = $bill['bill_percent'];
$dir_95th = $bill['dir_95th'];
$rate_95th = format_si($bill['rate_95th']).'bps';
$total_data = format_bytes_billing($bill['traf_total']);
$background = get_percentage_colours($percent);
if ($type == 'CDR') {
$allowed = format_si($bill['bill_allowed']).'bps';
$used = format_si($bill['rate_95th']).'bps';
$in = format_si($bill['rate_95th_in']).'bps';
$out = format_si($bill['rate_95th_out']).'bps';
$overuse = (($bill['bill_overuse'] <= 0) ? '-' : '<span style="color: #'.$background['left'].'; font-weight: bold;">'.format_si($bill['bill_overuse']).'bps</span>');
}
else if ($type == 'Quota') {
$allowed = format_bytes_billing($bill['bill_allowed']);
$used = format_bytes_billing($bill['total_data']);
$in = format_bytes_billing($bill['traf_in']);
$out = format_bytes_billing($bill['traf_out']);
$overuse = (($bill['bill_overuse'] <= 0) ? '-' : '<span style="color: #'.$background['left'].'; font-weight: bold;">'.format_bytes_billing($bill['bill_overuse']).'</span>');
}
$total_data = (($type == 'Quota') ? '<b>'.$total_data.'</b>' : $total_data);
$rate_95th = (($type == 'CDR') ? '<b>'.$rate_95th.'</b>' : $rate_95th);
echo "
<tr>
<td><a href=\"".generate_url(array('page' => 'bill', 'bill_id' => $bill['bill_id'], 'view' => 'history', detail => $bill['bill_hist_id'])).'"><span style="font-weight: bold;" class="interface">'.$bill['bill_name'].'</a></span><br />from '.strftime('%x', strtotime($datefrom)).' to '.strftime('%x', strtotime($dateto))."</td>
<td>$type</td>
<td>$allowed</td>
<td>$in</td>
<td>$out</td>
<td>$total_data</td>
<td>$rate_95th</td>
<td style=\"text-align: center;\">$overuse</td>
<td>".print_percentage_bar(250, 20, $percent, null, 'ffffff', $background['left'], $percent.'%', 'ffffff', $background['right']).'</td>
</tr>';
}//end if
}//end foreach
echo '</tbody>
</table>';
-40
View File
@@ -1,40 +0,0 @@
<?php
print_optionbar_start('40');
?>
<form method='get' action='' class="form-inline" role="form">
<fieldset class="form-group">
Bills
<input type="text" name="search" id="search" class="form-control input-sm" value="<?php echo $_GET['search']; ?>" />
<select name='bill_type' id='bill_type' class="form-control input-sm">
<option value=''>All Types</option>
<option value='cdr' <?php if ($_GET['bill_type'] === 'cdr') { echo 'selected'; } ?>>CDR</option>
<option value='quota' <?php if ($_GET['bill_type'] === 'quota') { echo 'selected'; } ?>>Quota</option>
</select>
<select name='state' id='state' class="form-control input-sm">
<option value=''>All States</option>
<option value='under' <?php if ($_GET['state'] === 'under') { echo 'selected'; } ?>>Under Quota</option>
<option value='over' <?php if ($_GET['state'] === 'over') { echo 'selected'; } ?>>Over Quota</option>
</select>
<button type="submit" class="btn btn-default input-sm">Search</button>
</fieldset>
<div class="form-group pull-right">
<?php
if ($vars['view'] == 'history') {
echo '<a class="btn btn-default btn-sm" href="bills/"><i class="fa fa-clock-o"></i> Current Billing Period</a>';
}
else {
echo '<a class="btn btn-default btn-sm" href="bills/view=history/"><i class="fa fa-history"></i> Previous Billing Period</a>';
}
?>
<?php if ($_SESSION['userlevel'] >= 10) { ?>
<button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#create-bill"><i class="fa fa-plus"></i> Create Bill</button>
<?php } ?>
</div>
</form>
<?php
print_optionbar_end();
+5 -1
View File
@@ -248,6 +248,10 @@ $mail_conf = array(
'descr' => 'From email address',
'type' => 'text',
),
array('name' => 'email_html',
'descr' => 'Use HTML emails',
'type' => 'checkbox',
),
array('name' => 'email_sendmail_path',
'descr' => 'Sendmail path',
'type' => 'text',
@@ -854,7 +858,7 @@ echo '
var transport = $this.data("transport");
$.ajax({
type: 'POST',
url: '/ajax_form.php',
url: 'ajax_form.php',
data: { type: "test-transport", transport: transport },
dataType: "json",
success: function(data){
+1 -1
View File
@@ -41,7 +41,7 @@ foreach( $opts as $method=>$apis ) {
var_dump("API '$host' returned Error"); //FIXME: propper debuging
var_dump("Params: ".$api); //FIXME: propper debuging
var_dump("Return: ".$ret); //FIXME: propper debuging
return false;
return 'HTTP Status code '.$code;
}
}
}
+5 -1
View File
@@ -28,6 +28,10 @@ foreach($opts as $option) {
}
$curl = curl_init();
if (empty($obj["msg"])) {
return "Empty Message";
}
if (empty($option["message_format"])) {
$option["message_format"] = 'text';
}
@@ -60,7 +64,7 @@ foreach($opts as $option) {
var_dump("API '$url' returned Error");
var_dump("Params: " . $message);
var_dump("Return: " . $ret);
return false;
return 'HTTP Status code '.$code;
}
}
return true;
+1 -1
View File
@@ -21,4 +21,4 @@
* @subpackage Alerts
*/
return send_mail($obj['contacts'], $obj['title'], $obj['msg'], $opts['html'] ? true : false );
return send_mail($obj['contacts'], $obj['title'], $obj['msg'], ($config['email_html'] == 'true') ? true : false );
+1 -1
View File
@@ -48,6 +48,6 @@ $ret = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if( $code != 200 ) {
var_dump("PagerDuty returned Error, retry later"); //FIXME: propper debuging
return false;
return 'HTTP Status code '.$code;
}
return true;
+1 -1
View File
@@ -42,6 +42,6 @@ if( $code > 201 ) {
if( $debug ) {
var_dump($ret);
}
return false;
return 'HTTP Status code '.$code;
}
return true;
+1 -1
View File
@@ -86,7 +86,7 @@ foreach( $opts as $api ) {
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if( $code != 200 ) {
var_dump("Pushover returned error"); //FIXME: proper debugging
return false;
return 'HTTP Status code '.$code;
}
}
return true;
+1 -1
View File
@@ -45,7 +45,7 @@ foreach( $opts as $tmp_api ) {
var_dump("API '$host' returned Error"); //FIXME: propper debuging
var_dump("Params: ".$alert_message); //FIXME: propper debuging
var_dump("Return: ".$ret); //FIXME: propper debuging
return false;
return 'HTTP Status code '.$code;
}
}
return true;
+27
View File
@@ -240,6 +240,18 @@ $config['os'][$os]['over'][1]['text'] = 'Processor Usage';
$config['os'][$os]['over'][2]['graph'] = 'device_mempool';
$config['os'][$os]['over'][2]['text'] = 'Memory Usage';
$os = 'cumulus';
$config['os'][$os]['type'] = 'network';
$config['os'][$os]['group'] = 'unix';
$config['os'][$os]['text'] = 'Cumulus Linux';
$config['os'][$os]['icon'] = 'cumulus';
$config['os'][$os]['over'][0]['graph'] = 'device_bits';
$config['os'][$os]['over'][0]['text'] = 'Device Traffic';
$config['os'][$os]['over'][1]['graph'] = 'device_processor';
$config['os'][$os]['over'][1]['text'] = 'Processor Usage';
$config['os'][$os]['over'][2]['graph'] = 'device_mempool';
$config['os'][$os]['over'][2]['text'] = 'Memory Usage';
// Other Unix-based OSes here please.
$os = 'freebsd';
$config['os'][$os]['type'] = 'server';
@@ -639,6 +651,13 @@ $config['os'][$os]['over'][1]['text'] = 'CPU Usage';
$config['os'][$os]['over'][2]['graph'] = 'device_mempool';
$config['os'][$os]['over'][2]['text'] = 'Memory Usage';
$os = 'juniperex2500os';
$config['os'][$os]['text'] = 'Juniper EX2500';
$config['os'][$os]['type'] = 'network';
$config['os'][$os]['icon'] = 'junos';
$config['os'][$os]['over'][0]['graph'] = 'device_bits';
$config['os'][$os]['over'][0]['text'] = 'Device Traffic';
// Pulse Secure OS definition
$os = 'pulse';
$config['os'][$os]['text'] = 'Pulse Secure';
@@ -1538,6 +1557,14 @@ $config['os'][$os]['over'][1]['text'] = 'CPU Usage';
$config['os'][$os]['over'][2]['graph'] = 'device_mempool';
$config['os'][$os]['over'][2]['text'] = 'Memory Usage';
// Deliberant WiFi
$os = 'deliberant';
$config['os'][$os]['text'] = 'Deliberant OS';
$config['os'][$os]['type'] = 'wireless';
$config['os'][$os]['icon'] = 'deliberant';
$config['os'][$os]['over'][0]['graph'] = 'device_bits';
$config['os'][$os]['over'][0]['text'] = 'Device Traffic';
// Graph Types
require_once $config['install_dir'].'/includes/load_db_graph_types.inc.php';
+11 -11
View File
@@ -2,18 +2,18 @@
echo 'OS: ';
// MYSQL Check - FIXME
// 1 UPDATE
$os = getHostOS($device);
if ($os != $device['os'] || empty($device['icon'])) {
$os = getHostOS($device);
if ($os != $device['os']) {
$device['os'] = $os;
// update icon
$icon = getImageName($device, false);
$device['icon'] = $icon;
$sql = dbUpdate(array('os' => $os, 'icon' => $icon), 'devices', 'device_id=?', array($device['device_id']));
$sql = dbUpdate(array('os' => $os), 'devices', 'device_id=?', array($device['device_id']));
echo "Changed OS! : $os\n";
log_event('Device OS changed '.$device['os']." => $os", $device, 'system');
}
$icon = getImageName($device, false);
if ($icon != $device['icon']) {
$device['icon'] = $icon;
$sql = dbUpdate(array('icon' => $icon), 'devices', 'device_id=?', array($device['device_id']));
echo "Changed Icon! : $icon\n";
log_event('Device Icon changed '.$device['icon']." => $icon", $device, 'system');
}
+16
View File
@@ -0,0 +1,16 @@
<?php
/*
* LibreNMS
*
* Copyright (c) 2016 Søren Friis Rosiak <sorenrosiak@gmail.com>
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
if(!$os) {
if (strstr($sysDescr, 'Deliberant')) {
$os = 'deliberant';
}
}
@@ -0,0 +1,7 @@
<?php
if (!$os) {
if (strstr($sysObjectId, '.1.3.6.1.4.1.1411.102')) {
$os = 'juniperex2500os';
}
}
+3
View File
@@ -64,6 +64,9 @@ if (!$os) {
);
register_mibs($device, $pktj_mibs, "include/discovery/os/linux.inc.php");
}
elseif (stristr($sysObjectId, 'cumulusMib') || strstr($sysObjectId, '.1.3.6.1.4.1.40310')) {
$os = 'cumulus';
}
else {
// Check for Synology DSM
$hrSystemInitialLoadParameters = trim(snmp_get($device, 'HOST-RESOURCES-MIB::hrSystemInitialLoadParameters.0', '-Osqnv'));
@@ -1,7 +1,7 @@
<?php
// LMSensors Fanspeeds
if ($device['os'] == 'linux' || $device['os'] == 'pktj') {
if ($device['os'] == 'linux' || $device['os'] == 'pktj' || $device['os'] == 'cumulus') {
$oids = snmp_walk($device, 'lmFanSensorsDevice', '-OsqnU', 'LM-SENSORS-MIB');
d_echo($oids."\n");
@@ -1,6 +1,6 @@
<?php
if ($device['os'] == 'linux' || $device['os'] == 'pktj') {
if ($device['os'] == 'linux' || $device['os'] == 'pktj' || $device['os'] == 'cumulus') {
$oids = snmp_walk($device, 'lmTempSensorsDevice', '-Osqn', 'LM-SENSORS-MIB');
d_echo($oids."\n");
@@ -1,7 +1,7 @@
<?php
// LMSensors Voltages
if ($device['os'] == 'linux' || $device['os'] == 'pktj') {
if ($device['os'] == 'linux' || $device['os'] == 'pktj' || $device['os'] == 'cumulus') {
$oids = snmp_walk($device, 'lmVoltSensorsDevice', '-OsqnU', 'LM-SENSORS-MIB');
d_echo($oids."\n");
+3 -1
View File
@@ -14,10 +14,12 @@
unset($poll_device);
$snmpdata = snmp_get_multi($device, 'sysUpTime.0 sysLocation.0 sysContact.0 sysName.0 sysDescr.0 sysObjectID.0', '-OQnUst', 'SNMPv2-MIB:HOST-RESOURCES-MIB:SNMP-FRAMEWORK-MIB');
$snmpdata = snmp_get_multi($device, 'sysUpTime.0 sysLocation.0 sysContact.0 sysName.0 sysObjectID.0', '-OQnUst', 'SNMPv2-MIB:HOST-RESOURCES-MIB:SNMP-FRAMEWORK-MIB');
$poll_device = $snmpdata[0];
$poll_device['sysName'] = strtolower($poll_device['sysName']);
$poll_device['sysDescr'] = snmp_get($device, 'sysDescr.0', '-OvQ', 'SNMPv2-MIB:HOST-RESOURCES-MIB:SNMP-FRAMEWORK-MIB');
if (!empty($agent_data['uptime'])) {
list($uptime) = explode(' ', $agent_data['uptime']);
$uptime = round($uptime);
+12
View File
@@ -0,0 +1,12 @@
<?php
/*
* LibreNMS
*
* Copyright (c) 2016 Søren Friis Rosiak <sorenrosiak@gmail.com>
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
$hardware = snmp_get($device, '.1.3.6.1.4.1.32761.3.1.1.1.3.0', '-Osqv');
+12 -2
View File
@@ -21,7 +21,12 @@ if (is_numeric($users)) {
if (!is_file($usersrrd)) {
rrdtool_create($usersrrd, ' DS:users:GAUGE:600:0:U'.$config['rrd_rra']);
}
rrdtool_update($usersrrd, "N:$users");
$fields = array(
'users' => $users,
);
rrdtool_update($usersrrd, $fields);
$graphs['pulse_users'] = true;
}
@@ -32,6 +37,11 @@ if (is_numeric($sessions)) {
if (!is_file($sessrrd)) {
rrdtool_create($sessrrd, ' DS:sessions:GAUGE:600:0:U '.$config['rrd_rra']);
}
rrdtool_update($sessrrd, "N:$sessions");
$fields = array(
'sessions' => $sessions,
);
rrdtool_update($sessrrd, $fields);
$graphs['pulse_sessions'] = true;
}
+1 -1
View File
@@ -34,7 +34,7 @@ if ($device['type'] == 'network' || $device['type'] == 'firewall' || $device['ty
// FIXME Also interesting to poll? dhcpNumber.0 for number of active dhcp leases
}
if ($device['os'] == 'ios' and substr($device['hardware'], 0, 4) == 'AIR-') {
if ($device['os'] == 'ios' and substr($device['hardware'], 0, 4) == 'AIR-' || ($device['os'] == 'ios' && strpos($device['hardware'], 'ciscoAIR') !== false)) {
echo 'Checking Aironet Wireless clients... ';
$wificlients1 = snmp_get($device, 'cDot11ActiveWirelessClients.1', '-OUqnv', 'CISCO-DOT11-ASSOCIATION-MIB');
+124
View File
@@ -0,0 +1,124 @@
CUMULUS-COUNTERS-MIB DEFINITIONS ::= BEGIN
--
-- Top-level infrastructure of the Cumulus enterprise MIB tree
--
IMPORTS
OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
enterprises, Counter32 FROM SNMPv2-SMI
InterfaceIndex, ifIndex FROM IF-MIB
DateAndTime, DisplayString,
cumulusMib FROM CUMULUS-SNMP-MIB
TEXTUAL-CONVENTION FROM SNMPv2-TC;
--
-- Cumulus enterprise-specific counters
--
sysSpecificCounters OBJECT IDENTIFIER ::= { cumulusMib 2 }
-- the discardCounters group
-- The discardCounters group lists certain selected detailed discard
-- counters, counters that are not called out in standard MIBs.
discardCounters OBJECT IDENTIFIER ::= {sysSpecificCounters 1}
discardCountersTable OBJECT-TYPE
SYNTAX SEQUENCE OF DiscardCountersEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table breaks out ingress packet discards into more
reason-specific discard counters."
::= { discardCounters 1 }
discardCountersEntry OBJECT-TYPE
SYNTAX DiscardCountersEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Reason-specific ingress discard counters indexed by ifIndex"
INDEX { ifIndex }
::= { discardCountersTable 1 }
--
-- The counters are all Counter32 instead of Counter64 because of
-- limitations in the pass persist protocol.
--
DiscardCountersEntry ::=
SEQUENCE {
portName DisplayString,
l3v4InDiscards Counter32,
bufferOverflowDiscards Counter32,
l3AclDiscards Counter32,
egressQOverflowDiscards Counter32,
egressNonQDiscards Counter32
}
portName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Port name"
::= { discardCountersEntry 1 }
l3v4InDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of inbound IPv4 packets discarded
by the routing engine."
DEFVAL { 0 }
::= { discardCountersEntry 2 }
bufferOverflowDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of inbound packets discarded due to
ingress buffer overflow."
DEFVAL { 0 }
::= { discardCountersEntry 3 }
l3AclDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of inbound IPv4 packets discarded
due to ingress ACL table."
DEFVAL { 0 }
::= { discardCountersEntry 4 }
egressQOverflowDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets discarded due to egress queue overflow."
DEFVAL { 0 }
::= { discardCountersEntry 6 }
egressNonQDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of packets discarded on egress due to reasons
reasons other than queue overflow. With IF MIB's ifOutDiscards
not accounting for certain specific drops, this one accounts
for drops seen in the egress pipeline of the system that were
not because of egress queue overflow drops."
DEFVAL { 0 }
::= { discardCountersEntry 7 }
END
+265
View File
@@ -0,0 +1,265 @@
CUMULUS-RESOURCES-MIB DEFINITIONS ::= BEGIN
--
-- Top-level infrastructure of the Cumulus enterprise MIB tree
--
IMPORTS
OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
Integer32, enterprises FROM SNMPv2-SMI
InterfaceIndex, ifIndex FROM IF-MIB
DateAndTime, DisplayString,
cumulusMib FROM CUMULUS-SNMP-MIB
TEXTUAL-CONVENTION FROM SNMPv2-TC;
-- Resource groups in cumulusMib
resourceUtilization OBJECT IDENTIFIER ::= { cumulusMib 1 }
-- the resourceUtilization group
-- The resourceUtilization group lists the current utilization
-- of various tables and buffers in the system.
-- the l3 tables group
l3Tables OBJECT IDENTIFIER ::= {resourceUtilization 1}
l3HostTableCurrentEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of L3 Host table entries currently in use"
::= { l3Tables 1 }
l3HostTableMaxEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum possible entries in the L3 Host table. The
Host table is defined as the table holding the ARP/ND cache."
::= {l3Tables 2 }
l3RoutingTableCurrentEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of L3 Routing table entries currently in use."
::= { l3Tables 3 }
l3RoutingTableMaxEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum possible entries in the L3 Routing table.
L3 Routing table is defined as the table holding the
longest prefix match (LPM) entries."
::= { l3Tables 4 }
l3NextHopTableCurrentEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of L3 Next Hop table entries currently in use."
::= { l3Tables 5 }
l3NextHopTableMaxEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum possible entries in the L3 Next Hop table.
The L3 Next Hop table holds information about the next hop(s)
associated with a routing table entry."
::= { l3Tables 6 }
l3EcmpGroupTableCurrentEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of ECMP Group table entries currently in use."
::= { l3Tables 7 }
l3EcmpGroupTableMaxEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum possible entries in the ECMP Group table.
The ECMP Group table holds information about "
::= { l3Tables 8 }
l3EcmpNextHopTableCurrentEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of ECMP Next Hop table entries currently in use."
::= { l3Tables 9 }
l3EcmpNextHopTableMaxEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum possible entries in the ECMP Next Hop
table. ECMP Next Hop table stores information about the next
hop associated with a routing table entry that has multiple equal
cost next hop neighbors."
::= { l3Tables 10 }
-- the l2 tables group
l2Tables OBJECT IDENTIFIER ::= {resourceUtilization 2}
l2MacTableCurrentEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of L2 Mac table entries currently in use."
::= { l2Tables 1 }
l2MacTableMaxEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum possible entries in the L2 Mac table."
::= { l2Tables 2 }
l2CacheTableCurrentEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of Cache table currently entries in use"
::= { l2Tables 3 }
l2CacheTableMaxEntries OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum possible entries in the Cache table. The Cache table
holds entries that are to be redirected to the CPU because they are
control packets, specifically L2 protocol control packets. Examples
are STP BPDUs, LLDP BPDUs etc."
::= { l2Tables 4 }
-- the buffer utilization group
bufferUtilizn OBJECT IDENTIFIER ::= {resourceUtilization 3}
bufUtiliznComputeTime OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The time when the buffer utilization statistic was computed."
DEFVAL { "0" }
::= { bufferUtilizn 1 }
bufUtiliznPollInterval OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The periodicity at which the buffer utilization data
is pulled from the hardware. This is specified in milliseconds."
::= { bufferUtilizn 2 }
bufUtiliznMeasureInterval OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The time interval over which the buffer utilization
statistics is computed. This is specified in minutes."
::= { bufferUtilizn 3 }
bufUtiliznTable OBJECT-TYPE
SYNTAX SEQUENCE OF BufUtiliznEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table describes the ingress buffer utilization per service pool"
::= { bufferUtilizn 4 }
bufUtiliznEntry OBJECT-TYPE
SYNTAX BufUtiliznEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
""
INDEX { bufServicePoolID }
::= { bufUtiliznTable 1 }
BufUtiliznEntry ::=
SEQUENCE {
bufServicePoolID INTEGER,
bufMin INTEGER,
bufMax INTEGER,
bufAvg DisplayString,
bufVariance DisplayString,
bufStdDev DisplayString
}
bufServicePoolID OBJECT-TYPE
SYNTAX INTEGER (1..8)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The service pool number."
::= { bufUtiliznEntry 1 }
bufMin OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The minimum number of cells used in this service pool."
::= { bufUtiliznEntry 2 }
bufMax OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum number of cells used in this service pool"
::= { bufUtiliznEntry 3 }
bufAvg OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The average number of cells used in this service pool"
::= { bufUtiliznEntry 4 }
bufVariance OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The variance of the buffer pool utilization for this service pool
over the last measured interval."
::= { bufUtiliznEntry 5 }
bufStdDev OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Standard Deviation of the buffer pool utilization for this
service pool over the last measured interval."
::= { bufUtiliznEntry 6 }
END
+37
View File
@@ -0,0 +1,37 @@
CUMULUS-SNMP-MIB DEFINITIONS ::= BEGIN
--
-- Top-level infrastructure of the Cumulus enterprise MIB tree
--
IMPORTS
OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
Integer32, enterprises FROM SNMPv2-SMI
InterfaceIndex, ifIndex FROM IF-MIB
DateAndTime, DisplayString,
TEXTUAL-CONVENTION FROM SNMPv2-TC;
cumulusMib MODULE-IDENTITY
LAST-UPDATED "201207230000Z"
ORGANIZATION "www.cumulusnetworks.com"
CONTACT-INFO
"postal: Dinesh Dutt
650 Castro Street,
suite 120-245
Mountain View, CA 94041
email: ddutt@cumulusnetworks.com"
DESCRIPTION
"Top-level infrastructure of the Cumulus enterprise MIB tree"
REVISION "201207230000Z"
DESCRIPTION
"Second version with new Enterprise number and discard counters"
::= { enterprises 40310 }
--
-- This is just the placeholder for the cumulusMib definition.
-- The actual objects are defined in separate, appropriately named files.
-- This way, we keep an overall MIB definition and add extensions as needed.
--
END
+36
View File
@@ -0,0 +1,36 @@
--
-- Deliberant 802.11 Central Configuration Module
--
DELIBERANT-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, enterprises
FROM SNMPv2-SMI;
deliberant MODULE-IDENTITY
LAST-UPDATED "200809050000Z"
ORGANIZATION "Deliberant"
CONTACT-INFO "
Deliberant Customer Support
E-mail: support@deliberant.com"
DESCRIPTION
"Deliberant central configuration module."
REVISION "200809050000Z"
DESCRIPTION
"First revision."
::= { enterprises 32761 }
-- subtree for product specific MIBs
dlbProducts OBJECT IDENTIFIER ::= { deliberant 1 }
-- subtree for administrative information about product
dlbAdmin OBJECT IDENTIFIER ::= { deliberant 2 }
-- subtree for management objects
dlbMgmt OBJECT IDENTIFIER ::= { deliberant 3 }
-- subtree for experiments
dlbExperimental OBJECT IDENTIFIER ::= { deliberant 7 }
END
+452
View File
@@ -0,0 +1,452 @@
--
-- Deliberant 802.11 Extension MIB
--
DLB-802DOT11-EXT-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
Counter32, Integer32, Gauge32
FROM SNMPv2-SMI
MacAddress, TruthValue
FROM SNMPv2-TC
sysLocation
FROM SNMPv2-MIB
ifIndex, InterfaceIndex, ifPhysAddress
FROM IF-MIB
dlbMgmt
FROM DELIBERANT-MIB;
dlb802dot11ExtMIB MODULE-IDENTITY
LAST-UPDATED "201003310000Z"
ORGANIZATION "Deliberant"
CONTACT-INFO "
Deliberant Customer Support
E-mail: support@deliberant.com"
DESCRIPTION
"The Deliberant 802.11 Extension MIB."
REVISION "201003310000Z"
DESCRIPTION
"Added dlbDot11IfAssocNodeCount."
REVISION "200905150000Z"
DESCRIPTION
"Added dlbDot11RemoteNodeStatsTable and dlbRemoteNodeConnected,
dlbRemoteNodeDisconnected notifications."
REVISION "200812120000Z"
DESCRIPTION
"First revision."
::= { dlbMgmt 5 }
dlb802dot11ExtMIBObjects
OBJECT IDENTIFIER ::= { dlb802dot11ExtMIB 1 }
dlbDot11Notifs
OBJECT IDENTIFIER ::= { dlb802dot11ExtMIBObjects 0 }
dlbDot11Info
OBJECT IDENTIFIER ::= { dlb802dot11ExtMIBObjects 1 }
dlbDot11Conf
OBJECT IDENTIFIER ::= { dlb802dot11ExtMIBObjects 2 }
dlbDot11Stats
OBJECT IDENTIFIER ::= { dlb802dot11ExtMIBObjects 3 }
dlbDot11IfConfTable OBJECT-TYPE
SYNTAX SEQUENCE OF DlbDot11IfConfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Wireless interface configuration table."
::= { dlbDot11Conf 1 }
dlbDot11IfConfEntry OBJECT-TYPE
SYNTAX DlbDot11IfConfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Wireless interface configuration table entry."
INDEX { ifIndex }
::= { dlbDot11IfConfTable 1 }
DlbDot11IfConfEntry ::=
SEQUENCE {
dlbDot11IfParentIndex InterfaceIndex,
dlbDot11IfProtocol OCTET STRING,
dlbDot11IfMode INTEGER,
dlbDot11IfESSID OCTET STRING,
dlbDot11IfAccessPoint MacAddress,
dlbDot11IfCountryCode Integer32,
dlbDot11IfFrequency Integer32,
dlbDot11IfChannel Integer32,
dlbDot11IfChannelBandwidth Integer32,
dlbDot11IfTxPower Gauge32,
dlbDot11IfBitRate Gauge32,
dlbDot11IfLinkQuality Gauge32,
dlbDot11IfMaxLinkQuality Gauge32,
dlbDot11IfSignalLevel Integer32,
dlbDot11IfNoiseLevel Integer32,
dlbDot11IfAssocNodeCount Gauge32
}
dlbDot11IfParentIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Wireless interface's parent index, which corresponds to ifIndex in MIB-II interfaces table.
This is only applicable if the interface is virtual and it is created under some other interface, like
it is for Atheros cards when using MadWiFi driver, where parent interfaces are wifi0, wifi1, etc."
::= { dlbDot11IfConfEntry 1 }
dlbDot11IfProtocol OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..15))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Protocol string, for example 'IEEE 802.11g'."
::= { dlbDot11IfConfEntry 2 }
dlbDot11IfMode OBJECT-TYPE
SYNTAX INTEGER {
auto(0),
adhoc(1),
managed(2),
master(3),
repeater(4),
secondary(5),
monitor(6)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Wireless interface operation mode"
::= { dlbDot11IfConfEntry 3 }
dlbDot11IfESSID OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"ESSID"
::= { dlbDot11IfConfEntry 4 }
dlbDot11IfAccessPoint OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Access point's MAC address if working in managed mode and connected.
Current interface's MAC address, when working in master mode."
::= { dlbDot11IfConfEntry 5 }
dlbDot11IfCountryCode OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Country code."
::= { dlbDot11IfConfEntry 6 }
dlbDot11IfFrequency OBJECT-TYPE
SYNTAX Integer32
UNITS "MHz"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current frequency as reported by driver."
::= { dlbDot11IfConfEntry 7 }
dlbDot11IfChannel OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Channel number."
::= { dlbDot11IfConfEntry 8 }
dlbDot11IfChannelBandwidth OBJECT-TYPE
SYNTAX Integer32
UNITS "MHz"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Channel bandwidth."
::= { dlbDot11IfConfEntry 9 }
dlbDot11IfTxPower OBJECT-TYPE
SYNTAX Gauge32
UNITS "dBm"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Transmit power in dBm."
::= { dlbDot11IfConfEntry 10 }
dlbDot11IfBitRate OBJECT-TYPE
SYNTAX Gauge32
UNITS "kbit/s"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Transmission bitrate."
::= { dlbDot11IfConfEntry 11 }
dlbDot11IfLinkQuality OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Link quality value."
::= { dlbDot11IfConfEntry 12 }
dlbDot11IfMaxLinkQuality OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum possible link quality value for current wireless card."
::= { dlbDot11IfConfEntry 13 }
dlbDot11IfSignalLevel OBJECT-TYPE
SYNTAX Integer32
UNITS "dBm"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Signal level."
::= { dlbDot11IfConfEntry 14 }
dlbDot11IfNoiseLevel OBJECT-TYPE
SYNTAX Integer32
UNITS "dBm"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Noise level."
::= { dlbDot11IfConfEntry 15 }
dlbDot11IfAssocNodeCount OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of associated nodes when working in access point mode.
1 - if associated to remote access point in client mode."
::= { dlbDot11IfConfEntry 16 }
dlbDot11IfErrStatsTable OBJECT-TYPE
SYNTAX SEQUENCE OF DlbDot11IfErrStatsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Wireless interface statistics table."
::= { dlbDot11Stats 1 }
dlbDot11IfErrStatsEntry OBJECT-TYPE
SYNTAX DlbDot11IfErrStatsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Wireless interface statistics table entry."
INDEX { ifIndex }
::= { dlbDot11IfErrStatsTable 1 }
DlbDot11IfErrStatsEntry ::=
SEQUENCE {
dlbDot11IfRxInvalidNWID Counter32,
dlbDot11IfRxInvalidCrypt Counter32,
dlbDot11IfRxInvalidFrag Counter32,
dlbDot11IfTxExcessiveRetries Counter32,
dlbDot11IfInvalidMisc Counter32,
dlbDot11IfMissedBeacons Counter32
}
dlbDot11IfRxInvalidNWID OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets with invalid NWID/ESSID. Increasing value usually means that there are
other stations transmitting on the same channel or adjacent channels."
::= { dlbDot11IfErrStatsEntry 1 }
dlbDot11IfRxInvalidCrypt OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets the hardware was unable to decrypt."
::= { dlbDot11IfErrStatsEntry 2 }
dlbDot11IfRxInvalidFrag OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets that were missing link layer fragments for complete re-assembly."
::= { dlbDot11IfErrStatsEntry 3 }
dlbDot11IfTxExcessiveRetries OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets hardware failed to deliver."
::= { dlbDot11IfErrStatsEntry 4 }
dlbDot11IfInvalidMisc OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Other packets lost in relation with specific wireless operations."
::= { dlbDot11IfErrStatsEntry 5 }
dlbDot11IfMissedBeacons OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of beacons that should have been sent by remote access point but were not received.
Increasing number usually means that communicating peers moved out of range."
::= { dlbDot11IfErrStatsEntry 6 }
dlbDot11RemoteNodeStatsTable OBJECT-TYPE
SYNTAX SEQUENCE OF DlbDot11RemoteNodeStatsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Remote node statistics table. This table shows statistics for associated or already disconnected clients
on wireless interfaces which are operating in access point mode. For interfaces operating in client mode and
associated to remote access point information about access point is shown."
::= { dlbDot11Stats 2 }
dlbDot11RemoteNodeStatsEntry OBJECT-TYPE
SYNTAX DlbDot11RemoteNodeStatsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Wireless remote node statistics table entry."
INDEX { ifIndex, dlbDot11RmtNodeMacAddress }
::= { dlbDot11RemoteNodeStatsTable 1 }
DlbDot11RemoteNodeStatsEntry ::=
SEQUENCE {
dlbDot11RmtNodeMacAddress MacAddress,
dlbDot11RmtNodeAssociated TruthValue,
dlbDot11RmtNodeTxBytes Counter32,
dlbDot11RmtNodeRxBytes Counter32,
dlbDot11RmtNodeAssocTime Integer32,
dlbDot11RmtNodeDisassocTime Integer32
}
dlbDot11RmtNodeMacAddress OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Remote node MAC address."
::= { dlbDot11RemoteNodeStatsEntry 1 }
dlbDot11RmtNodeAssociated OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Remote node is currently associated."
::= { dlbDot11RemoteNodeStatsEntry 2 }
dlbDot11RmtNodeTxBytes OBJECT-TYPE
SYNTAX Counter32
UNITS "bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Bytes transmitted to remote node. This object is optional."
::= { dlbDot11RemoteNodeStatsEntry 3 }
dlbDot11RmtNodeRxBytes OBJECT-TYPE
SYNTAX Counter32
UNITS "bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Bytes received from remote node. This object is optional."
::= { dlbDot11RemoteNodeStatsEntry 4 }
dlbDot11RmtNodeAssocTime OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"UNIX timestamp of the association. This object is optional."
::= { dlbDot11RemoteNodeStatsEntry 5 }
dlbDot11RmtNodeDisassocTime OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"UNIX timestamp of the disassociation (if remote node recently dissasociated).
This object is optional."
::= { dlbDot11RemoteNodeStatsEntry 6 }
--
-- Notifications
--
dlbFrequencyChange NOTIFICATION-TYPE
OBJECTS {
sysLocation,
ifIndex,
dlbDot11IfFrequency
}
STATUS current
DESCRIPTION
"This notification is sent on frequency change."
::= { dlbDot11Notifs 1 }
dlbNoiseThresholdReached NOTIFICATION-TYPE
OBJECTS {
sysLocation,
ifIndex,
dlbDot11IfNoiseLevel
}
STATUS current
DESCRIPTION
"This notification is sent when noise becomes bigger than threshold."
::= { dlbDot11Notifs 2 }
dlbRemoteNodeConnected NOTIFICATION-TYPE
OBJECTS {
sysLocation,
ifPhysAddress,
ifIndex,
dlbDot11RmtNodeMacAddress
}
STATUS current
DESCRIPTION
"This notification is sent when remote node associates."
::= { dlbDot11Notifs 3 }
dlbRemoteNodeDisconnected NOTIFICATION-TYPE
OBJECTS {
sysLocation,
ifPhysAddress,
ifIndex,
dlbDot11RmtNodeMacAddress
}
STATUS current
DESCRIPTION
"This notification is sent when remote node dissasociates."
::= { dlbDot11Notifs 4 }
dlbLinkQualThresholdReached NOTIFICATION-TYPE
OBJECTS {
sysLocation,
ifIndex,
dlbDot11IfLinkQuality
}
STATUS current
DESCRIPTION
"This notification is sent when link quality crosses the specified threshold."
::= { dlbDot11Notifs 5 }
END
File diff suppressed because it is too large Load Diff
+54
View File
@@ -0,0 +1,54 @@
--
-- Deliberant Generic MIB
--
DLB-GENERIC-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, NOTIFICATION-TYPE
FROM SNMPv2-SMI
sysLocation
FROM SNMPv2-MIB
dlbMgmt
FROM DELIBERANT-MIB;
dlbGenericMIB MODULE-IDENTITY
LAST-UPDATED "200902130000Z"
ORGANIZATION "Deliberant"
CONTACT-INFO "
Deliberant Customer Support
E-mail: support@deliberant.com"
DESCRIPTION
"The Deliberant Generic MIB."
REVISION "200902130000Z"
DESCRIPTION
"First revision."
::= { dlbMgmt 1 }
dlbGenericMIBObjects
OBJECT IDENTIFIER ::= { dlbGenericMIB 1 }
dlbGenericNotifs
OBJECT IDENTIFIER ::= { dlbGenericMIBObjects 0 }
dlbGenericInfo
OBJECT IDENTIFIER ::= { dlbGenericMIBObjects 1 }
--
-- Notifications
--
dlbPowerLoss NOTIFICATION-TYPE
OBJECTS { sysLocation }
STATUS current
DESCRIPTION
"This notification is sent on device boot after power loss or device crash."
::= { dlbGenericNotifs 1 }
dlbAdministrativeReboot NOTIFICATION-TYPE
OBJECTS { sysLocation }
STATUS current
DESCRIPTION
"This notification is sent on device boot after administrator rebooted device."
::= { dlbGenericNotifs 2 }
END
+811
View File
@@ -0,0 +1,811 @@
--
-- Deliberant 3 series radio driver MIB
--
DLB-RADIO3-DRV-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
Integer32, Counter32, Gauge32, IpAddress, TimeTicks
FROM SNMPv2-SMI
MacAddress
FROM SNMPv2-TC
sysLocation
FROM SNMPv2-MIB
ifIndex
FROM IF-MIB
dlbMgmt
FROM DELIBERANT-MIB;
dlbRadio3DrvMIB MODULE-IDENTITY
LAST-UPDATED "201001060000Z"
ORGANIZATION "Deliberant"
CONTACT-INFO "
Deliberant Customer Support
E-mail: support@deliberant.com"
DESCRIPTION
"Deliberant 3 series radio driver MIB."
REVISION "201001060000Z"
DESCRIPTION
"First revision."
::= { dlbMgmt 8 }
dlbRadio3DrvMIBObjects
OBJECT IDENTIFIER ::= { dlbRadio3DrvMIB 1 }
dlbRdo3DrvNotifs
OBJECT IDENTIFIER ::= { dlbRadio3DrvMIBObjects 0 }
dlbRdo3DrvInfo
OBJECT IDENTIFIER ::= { dlbRadio3DrvMIBObjects 1 }
dlbRdo3DrvConf
OBJECT IDENTIFIER ::= { dlbRadio3DrvMIBObjects 2 }
dlbRdo3DrvStats
OBJECT IDENTIFIER ::= { dlbRadio3DrvMIBObjects 3 }
dlbRdo3StatsTable OBJECT-TYPE
SYNTAX SEQUENCE OF dlbRdo3StatsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Radio driver's information and network traffic statistics table."
::= { dlbRdo3DrvStats 1 }
dlbRdo3StatsEntry OBJECT-TYPE
SYNTAX dlbRdo3StatsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Radio driver's information and network traffic statistics table entry."
INDEX { ifIndex, dlbRdo3Endpoint }
::= { dlbRdo3StatsTable 1 }
dlbRdo3StatsEntry ::=
SEQUENCE {
dlbRdo3Endpoint Integer32,
dlbRdo3LastUpdate TimeTicks,
dlbRdo3MacAddress MacAddress,
dlbRdo3IpAddress IpAddress,
dlbRdo3CountryCode OCTET STRING,
dlbRdo3Encryption OCTET STRING,
dlbRdo3Parameters OCTET STRING,
dlbRdo3Capabilities OCTET STRING,
dlbRdo3TxPower Gauge32,
dlbRdo3TxPackets Counter32,
dlbRdo3TxBytes Counter32,
dlbRdo3TxXmitFailed Counter32,
dlbRdo3TxXmitDropped Counter32,
dlbRdo3TxOverruns Counter32,
dlbRdo3TxSuccess Counter32,
dlbRdo3TxFailed Counter32,
dlbRdo3TxRetried Counter32,
dlbRdo3TxNotRetried Counter32,
dlbRdo3TxPacketsPerMcs OCTET STRING,
dlbRdo3TxMsdus Counter32,
dlbRdo3TxNotAggregated Counter32,
dlbRdo3TxAckRequired Counter32,
dlbRdo3TxNoAckRequired Counter32,
dlbRdo3TxAltRate Counter32,
dlbRdo3TxManagement Counter32,
dlbRdo3TxLegacy Counter32,
dlbRdo3TxLegacyBytes Counter32,
dlbRdo3TxAmsdus Counter32,
dlbRdo3TxPktsInAmsdus Counter32,
dlbRdo3TxAmsduBytes Counter32,
dlbRdo3TxMpdus Counter32,
dlbRdo3TxMpduBytes Counter32,
dlbRdo3TxFragmented Counter32,
dlbRdo3TxFragBytes Counter32,
dlbRdo3RxPackets Counter32,
dlbRdo3RxBytes Counter32,
dlbRdo3RxDropped Counter32,
dlbRdo3RxCrcErrors Counter32,
dlbRdo3RxIcvErrors Counter32,
dlbRdo3RxMicErrors Counter32,
dlbRdo3RxKeyNotValid Counter32,
dlbRdo3RxAclDiscarded Counter32,
dlbRdo3RxManagement Counter32,
dlbRdo3RxControl Counter32,
dlbRdo3RxData Counter32,
dlbRdo3RxUnknown Counter32,
dlbRdo3RxNullData Counter32,
dlbRdo3RxBroadcast Counter32,
dlbRdo3RxMulticast Counter32,
dlbRdo3RxUnicast Counter32,
dlbRdo3RxCck Counter32,
dlbRdo3RxOfdm Counter32,
dlbRdo3RxHtMixedMode Counter32,
dlbRdo3RxHtGreenfield Counter32,
dlbRdo3RxAmsdus Counter32,
dlbRdo3RxPacketsInAmsdus Counter32,
dlbRdo3RxAmpdus Counter32,
dlbRdo3RxMpduBytes Counter32,
dlbRdo3RxRoBufTotal Counter32,
dlbRdo3RxRoBufInSeq Counter32,
dlbRdo3RxRoBufDup Counter32,
dlbRdo3RxRoBufExpired Counter32,
dlbRdo3RxRoBufBuffered Counter32,
dlbRdo3RxRoBufReordered Counter32,
dlbRdo3RxRoBufFlushed Counter32,
dlbRdo3RxRoBufTooBig Counter32,
dlbRdo3RxL2Pad Counter32,
dlbRdo3RxBlockAcks Counter32,
dlbRdo3RxFragments Counter32,
dlbRdo3RxStbc Counter32,
dlbRdo3RxShortGuardInt Counter32,
dlbRdo3Rx40MhzBandwidth Counter32,
dlbRdo3RxHtControl Counter32,
dlbRdo3RxPacketsPerMcs OCTET STRING,
dlbRdo3RxLastSigLevel0 Integer32,
dlbRdo3RxLastSigLevel1 Integer32,
dlbRdo3RxLastSigLevel2 Integer32,
dlbRdo3RxNoise Integer32,
dlbRdo3RxLastSnr0 Integer32,
dlbRdo3RxLastSnr1 Integer32
}
dlbRdo3Endpoint OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Peer index. Local device has index 0."
::= { dlbRdo3StatsEntry 1 }
dlbRdo3LastUpdate OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"sysUptime value of time point when statistics was gathered."
::= { dlbRdo3StatsEntry 2 }
dlbRdo3MacAddress OBJECT-TYPE
SYNTAX MacAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Device's MAC address."
::= { dlbRdo3StatsEntry 3 }
dlbRdo3IpAddress OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Device's IP address."
::= { dlbRdo3StatsEntry 4 }
dlbRdo3CountryCode OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Country code."
::= { dlbRdo3StatsEntry 5 }
dlbRdo3Encryption OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Encryption type."
::= { dlbRdo3StatsEntry 6 }
dlbRdo3Parameters OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Radio parameters."
::= { dlbRdo3StatsEntry 7 }
dlbRdo3Capabilities OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Radio capabilities."
::= { dlbRdo3StatsEntry 8 }
dlbRdo3TxPower OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Transmission power."
::= { dlbRdo3StatsEntry 9 }
dlbRdo3TxPackets OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmitted packets."
::= { dlbRdo3StatsEntry 10 }
dlbRdo3TxBytes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmitted bytes."
::= { dlbRdo3StatsEntry 11 }
dlbRdo3TxXmitFailed OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets failing initial checks before sending them to radio hardware."
::= { dlbRdo3StatsEntry 12 }
dlbRdo3TxXmitDropped OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets dropped because radio was offline or in reset state."
::= { dlbRdo3StatsEntry 13 }
dlbRdo3TxOverruns OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmission overruns."
::= { dlbRdo3StatsEntry 14 }
dlbRdo3TxSuccess OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of successfully transmitted packets."
::= { dlbRdo3StatsEntry 15 }
dlbRdo3TxFailed OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmission failures."
::= { dlbRdo3StatsEntry 16 }
dlbRdo3TxRetried OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmission retries."
::= { dlbRdo3StatsEntry 17 }
dlbRdo3TxNotRetried OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets sent without retries."
::= { dlbRdo3StatsEntry 18 }
dlbRdo3TxPacketsPerMcs OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets sent using each of Modulation and Coding Schemes."
::= { dlbRdo3StatsEntry 19 }
dlbRdo3TxMsdus OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmitted MAC Service Data Units."
::= { dlbRdo3StatsEntry 20 }
dlbRdo3TxNotAggregated OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets transmitted without aggregation."
::= { dlbRdo3StatsEntry 21 }
dlbRdo3TxAckRequired OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets transmitted which required acknowledgment."
::= { dlbRdo3StatsEntry 22 }
dlbRdo3TxNoAckRequired OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets transmitted which did not require acknowledgment."
::= { dlbRdo3StatsEntry 23 }
dlbRdo3TxAltRate OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of data rate alterations."
::= { dlbRdo3StatsEntry 24 }
dlbRdo3TxManagement OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmitted management frames."
::= { dlbRdo3StatsEntry 25 }
dlbRdo3TxLegacy OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmitted legacy packets."
::= { dlbRdo3StatsEntry 26 }
dlbRdo3TxLegacyBytes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of bytes transmitted in legacy mode."
::= { dlbRdo3StatsEntry 27 }
dlbRdo3TxAmsdus OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmitted aggregated MAC Service Data Units."
::= { dlbRdo3StatsEntry 28 }
dlbRdo3TxPktsInAmsdus OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets contained in transmitted aggregated MAC Service Data Units."
::= { dlbRdo3StatsEntry 29 }
dlbRdo3TxAmsduBytes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of bytes transmitted in aggregated MAC Service Data Units."
::= { dlbRdo3StatsEntry 30 }
dlbRdo3TxMpdus OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmitted MAC Protocol Data Units."
::= { dlbRdo3StatsEntry 31 }
dlbRdo3TxMpduBytes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of bytes transmitted in MAC Protocol Data Units."
::= { dlbRdo3StatsEntry 32 }
dlbRdo3TxFragmented OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of transmitted fragmented packets."
::= { dlbRdo3StatsEntry 33 }
dlbRdo3TxFragBytes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of bytes transmitted in fragmented packets."
::= { dlbRdo3StatsEntry 34 }
dlbRdo3RxPackets OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets."
::= { dlbRdo3StatsEntry 35 }
dlbRdo3RxBytes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received bytes."
::= { dlbRdo3StatsEntry 36 }
dlbRdo3RxDropped OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of dropped packets."
::= { dlbRdo3StatsEntry 37 }
dlbRdo3RxCrcErrors OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets that failed CRC check."
::= { dlbRdo3StatsEntry 38 }
dlbRdo3RxIcvErrors OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets with invalid Integrity Check Value."
::= { dlbRdo3StatsEntry 39 }
dlbRdo3RxMicErrors OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets failing Message Integrity Code check."
::= { dlbRdo3StatsEntry 40 }
dlbRdo3RxKeyNotValid OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets with encryption key errors."
::= { dlbRdo3StatsEntry 41 }
dlbRdo3RxAclDiscarded OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets discarded by Access Control List check."
::= { dlbRdo3StatsEntry 42 }
dlbRdo3RxManagement OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received management packets."
::= { dlbRdo3StatsEntry 43 }
dlbRdo3RxControl OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received control packets."
::= { dlbRdo3StatsEntry 44 }
dlbRdo3RxData OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received data packets."
::= { dlbRdo3StatsEntry 45 }
dlbRdo3RxUnknown OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received packets of unknown type."
::= { dlbRdo3StatsEntry 46 }
dlbRdo3RxNullData OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received NULL DATA frames."
::= { dlbRdo3StatsEntry 47 }
dlbRdo3RxBroadcast OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received broadcast packets."
::= { dlbRdo3StatsEntry 48 }
dlbRdo3RxMulticast OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received multicast packets."
::= { dlbRdo3StatsEntry 49 }
dlbRdo3RxUnicast OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received unicast packets."
::= { dlbRdo3StatsEntry 50 }
dlbRdo3RxCck OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received using Complementary Code Keying modulation."
::= { dlbRdo3StatsEntry 51 }
dlbRdo3RxOfdm OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received using Orthogonal Frequency-Division Multiplexing modulation."
::= { dlbRdo3StatsEntry 52 }
dlbRdo3RxHtMixedMode OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received using High Throughput mixed mode."
::= { dlbRdo3StatsEntry 53 }
dlbRdo3RxHtGreenfield OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received using High Throughput Greenfield mode."
::= { dlbRdo3StatsEntry 54 }
dlbRdo3RxAmsdus OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received aggregated MAC Service Data Units."
::= { dlbRdo3StatsEntry 55 }
dlbRdo3RxPacketsInAmsdus OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received in aggregated MAC Service Data Units."
::= { dlbRdo3StatsEntry 56 }
dlbRdo3RxAmpdus OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received aggregated MAC Protocol Data Units."
::= { dlbRdo3StatsEntry 57 }
dlbRdo3RxMpduBytes OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of bytes received in MAC Protocol Data Units."
::= { dlbRdo3StatsEntry 58 }
dlbRdo3RxRoBufTotal OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of received packets moved into reordering buffer."
::= { dlbRdo3StatsEntry 59 }
dlbRdo3RxRoBufInSeq OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets in reordering buffer which are in sequence."
::= { dlbRdo3StatsEntry 60 }
dlbRdo3RxRoBufDup OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of duplicate packets in reordering buffer."
::= { dlbRdo3StatsEntry 61 }
dlbRdo3RxRoBufExpired OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of expired packets in reordering buffer."
::= { dlbRdo3StatsEntry 62 }
dlbRdo3RxRoBufBuffered OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets held in reordering buffer."
::= { dlbRdo3StatsEntry 63 }
dlbRdo3RxRoBufReordered OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets reordered in reordering buffer."
::= { dlbRdo3StatsEntry 64 }
dlbRdo3RxRoBufFlushed OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets flushed from reordering buffer."
::= { dlbRdo3StatsEntry 65 }
dlbRdo3RxRoBufTooBig OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of oversized packets dropped from reordering buffer."
::= { dlbRdo3StatsEntry 66 }
dlbRdo3RxL2Pad OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received with padding between header and payload."
::= { dlbRdo3StatsEntry 67 }
dlbRdo3RxBlockAcks OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received block acknowledgments."
::= { dlbRdo3StatsEntry 68 }
dlbRdo3RxFragments OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of received fragmented packets."
::= { dlbRdo3StatsEntry 69 }
dlbRdo3RxStbc OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received using Space-Time Block Coding technique."
::= { dlbRdo3StatsEntry 70 }
dlbRdo3RxShortGuardInt OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received with Short Guard Interval."
::= { dlbRdo3StatsEntry 71 }
dlbRdo3Rx40MhzBandwidth OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received using 40MHz bandwidth."
::= { dlbRdo3StatsEntry 72 }
dlbRdo3RxHtControl OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received using High Throughput encoding."
::= { dlbRdo3StatsEntry 73 }
dlbRdo3RxPacketsPerMcs OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of packets received using each of Modulation and Coding Schemes."
::= { dlbRdo3StatsEntry 74 }
dlbRdo3RxLastSigLevel0 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Reception signal level on antenna 0."
::= { dlbRdo3StatsEntry 75 }
dlbRdo3RxLastSigLevel1 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Reception signal level on antenna 1."
::= { dlbRdo3StatsEntry 76 }
dlbRdo3RxLastSigLevel2 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Reception signal level on antenna 2."
::= { dlbRdo3StatsEntry 77 }
dlbRdo3RxNoise OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Reception noise."
::= { dlbRdo3StatsEntry 78 }
dlbRdo3RxLastSnr0 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Last registered signal-to-noise level on antenna 0."
::= { dlbRdo3StatsEntry 79 }
dlbRdo3RxLastSnr1 OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Last registered signal-to-noise level on antenna 1."
::= { dlbRdo3StatsEntry 80 }
dlbRdo3RxDropsThreshold NOTIFICATION-TYPE
OBJECTS {
sysLocation,
ifIndex,
dlbRdo3MacAddress,
dlbRdo3RxDropped
}
STATUS current
DESCRIPTION
"This notification is sent when percentage of frames dropped in relation
to number of frames received over the same time period reaches the threshold."
::= { dlbRdo3DrvNotifs 1 }
dlbRdo3TxRetriesThreshold NOTIFICATION-TYPE
OBJECTS {
sysLocation,
ifIndex,
dlbRdo3MacAddress,
dlbRdo3TxRetried
}
STATUS current
DESCRIPTION
"This notification is sent when percentage of transmission retries in relation
to number of frames transmitted over the same time period reaches the threshold."
::= { dlbRdo3DrvNotifs 2 }
END
+1
View File
@@ -0,0 +1 @@
INSERT INTO config (config_name,config_value,config_default,config_descr,config_group,config_group_order,config_sub_group,config_sub_group_order,config_hidden,config_disabled) values ('email_html', 'false', 'false', 'Send HTML emails', 'alerting',0,'general',0,'0','0');
+5
View File
@@ -0,0 +1,5 @@
CREATE TABLE tmp_table LIKE config;
ALTER IGNORE TABLE tmp_table ADD UNIQUE INDEX uniqueindex_configname (config_name);
INSERT IGNORE INTO tmp_table SELECT * FROM config;
DROP TABLE config;
RENAME TABLE tmp_table TO config;
+11 -9
View File
@@ -43,7 +43,7 @@ if (strstr(`php -ln config.php`, 'No syntax errors detected')) {
print_fail('config.php contains a new line at the end, please remove any whitespace at the end of the file and also remove ?>');
}
else if ($last_lines[1] == '?>') {
print_warn("It looks like you have ?> at the end of config.php, it's suggested you remove this");
print_warn("It looks like you have ?> at the end of config.php, it is suggested you remove this");
}
}
else {
@@ -139,7 +139,7 @@ if(strstr($strict_mode, 'STRICT_TRANS_TABLES')) {
// Test for MySQL InnoDB buffer size
$innodb_buffer = innodb_buffer_check();
if ($innodb_buffer['used'] > $innodb_buffer['size']) {
print_warn("Your Innodb buffer is full, consider increasing it's size");
print_warn("Your Innodb buffer is full, consider increasing its size");
echo warn_innodb_buffer($innodb_buffer);
}
@@ -213,24 +213,26 @@ foreach ($modules as $module) {
$run_test = 0;
}
else if ($config['email_backend'] == 'sendmail') {
if (empty($config['email_sendmail_path']) || !file_exists($config['email_sendmail_path'])) {
print_fail("You have selected sendmail but not configured email_sendmail_path or it's not valid");
if (empty($config['email_sendmail_path'])) {
print_fail("You have selected sendmail but not configured email_sendmail_path");
$run_test = 0;
}
elseif (!file_exists($config['email_sendmail_path'])) {
print_fail("The configured email_sendmail_path is not valid");
$run_test = 0;
}
}
else if ($config['email_backend'] == 'smtp') {
if (empty($config['email_smtp_host'])) {
print_fail('You have selected smtp but not configured an smtp host');
print_fail('You have selected SMTP but not configured an SMTP host');
$run_test = 0;
}
if (empty($config['email_smtp_port'])) {
print_fail('You have selected smtp but not configured an smtp port');
print_fail('You have selected SMTP but not configured an SMTP port');
$run_test = 0;
}
if (($config['email_smtp_auth'] === true) && (empty($config['email_smtp_username']) || empty($config['email_smtp_password']))) {
print_fail('You have selected smtp but not configured a username or password');
print_fail('You have selected SMTP auth but have not configured both username and password');
$run_test = 0;
}
}//end if