diff --git a/AUTHORS.md b/AUTHORS.md index 7d88067a37..2db7ef874a 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -6,6 +6,7 @@ LibreNMS core team: - Daniel Preussker (f0o) - Søren Friis Rosiak (rosiak) - Mike Rostermund (SaaldjorMike) +- Tony Murray (murrant) LibreNMS contributors: - Bohdan Sanders (bohdan-s) @@ -67,7 +68,6 @@ LibreNMS contributors: - Robert Gornall (KHobbits) - Rob Gormley (rgormley) - Richard Kojedzinszky (rkojedzinszky) -- Tony Murray (murrant) - Peter Lamperud (vizay) - Louis Bailleul (alucardfh) - Rick Hodger (Tatermen) diff --git a/alerts.php b/alerts.php index 827d5063e1..b3bb308a35 100755 --- a/alerts.php +++ b/alerts.php @@ -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 '; '; diff --git a/doc/Extensions/Agent-Setup.md b/doc/Extensions/Agent-Setup.md index 62a9ec473c..652d9a7922 100644 --- a/doc/Extensions/Agent-Setup.md +++ b/doc/Extensions/Agent-Setup.md @@ -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. diff --git a/doc/Extensions/Alerting.md b/doc/Extensions/Alerting.md index 6ce8431f84..15a38291f7 100644 --- a/doc/Extensions/Alerting.md +++ b/doc/Extensions/Alerting.md @@ -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
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}%hostname{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. + + # Transports 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" $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. diff --git a/doc/Extensions/Globe-Frontpage.md b/doc/Extensions/Globe-Frontpage.md index 6e2d31662a..2594eb8e32 100644 --- a/doc/Extensions/Globe-Frontpage.md +++ b/doc/Extensions/Globe-Frontpage.md @@ -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) diff --git a/html/images/os/cumulus.png b/html/images/os/cumulus.png new file mode 100644 index 0000000000..30c5d33009 Binary files /dev/null and b/html/images/os/cumulus.png differ diff --git a/html/images/os/deliberant.png b/html/images/os/deliberant.png new file mode 100644 index 0000000000..5f942b8350 Binary files /dev/null and b/html/images/os/deliberant.png differ diff --git a/html/includes/modal/new_bill.inc.php b/html/includes/modal/new_bill.inc.php index 7cd4196016..29d9aee5dc 100644 --- a/html/includes/modal/new_bill.inc.php +++ b/html/includes/modal/new_bill.inc.php @@ -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) {
+
+ +
+ +
+
+
+ +
+ +
+
+ -
- -

- - - -

-
- ' selected'); $cdr = array('select_mbps' => ' selected'); include 'pages/bill/addoreditbill.inc.php'; ?> -
-
- -
-
+
+
+ +
+
diff --git a/html/includes/table/alerts.inc.php b/html/includes/table/alerts.inc.php index fdcf5cf05f..43fb46a265 100644 --- a/html/includes/table/alerts.inc.php +++ b/html/includes/table/alerts.inc.php @@ -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']; diff --git a/html/includes/table/bills.inc.php b/html/includes/table/bills.inc.php new file mode 100644 index 0000000000..73cdc706a5 --- /dev/null +++ b/html/includes/table/bills.inc.php @@ -0,0 +1,171 @@ + 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 = "$rate_95th"; + } + 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 = "$total_data"; + } + + $background = get_percentage_colours($percent); + $right_background = $background['right']; + $left_background = $background['left']; + $overuse_formatted = (($overuse <= 0) ? '-' : "$overuse_formatted"); + + $bill_name = "${bill['bill_name']}
" . + 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 .= " 'bill', 'bill_id' => $bill['bill_id'], 'view' => 'edit')) . + "'>Edit Edit "; + } + + $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); \ No newline at end of file diff --git a/html/pages/bill/addoreditbill.inc.php b/html/pages/bill/addoreditbill.inc.php index 75e64ff201..82ad7b96aa 100644 --- a/html/pages/bill/addoreditbill.inc.php +++ b/html/pages/bill/addoreditbill.inc.php @@ -1,3 +1,4 @@ +

Bill Information

diff --git a/html/pages/bill/edit.inc.php b/html/pages/bill/edit.inc.php index 9c5a84dcab..f4581bf5f4 100644 --- a/html/pages/bill/edit.inc.php +++ b/html/pages/bill/edit.inc.php @@ -150,16 +150,7 @@ ".$device['hostname']."\n"; - } + echo "\n"; } ?> diff --git a/html/pages/bills.inc.php b/html/pages/bills.inc.php index be60dfef63..ad51bfc007 100644 --- a/html/pages/bills.inc.php +++ b/html/pages/bills.inc.php @@ -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 ""; -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'; ?> - - - - - - - - - - - - - bill_cdr) OR (bill_type = 'quota' AND total_data > bill_quota))"; - } +
+
+
Billing nameTypeAllowedUsedOverusage
+ + + + + + + + + + + + + +
Billing nameTypeAllowedInboundOutboundTotal95th PercentileOverusage
+
+
+ + + + + \ No newline at end of file diff --git a/html/pages/bills/pmonth.inc.php b/html/pages/bills/pmonth.inc.php deleted file mode 100644 index adb6996efa..0000000000 --- a/html/pages/bills/pmonth.inc.php +++ /dev/null @@ -1,98 +0,0 @@ - - - - Billing name - Type - Allowed - Inbound - Outbound - Total - 95 percentile - Overusage - - - - '; - -$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) ? '-' : ''.format_si($bill['bill_overuse']).'bps'); - } - 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) ? '-' : ''.format_bytes_billing($bill['bill_overuse']).''); - } - - $total_data = (($type == 'Quota') ? ''.$total_data.'' : $total_data); - $rate_95th = (($type == 'CDR') ? ''.$rate_95th.'' : $rate_95th); - - echo " - - 'bill', 'bill_id' => $bill['bill_id'], 'view' => 'history', detail => $bill['bill_hist_id'])).'">'.$bill['bill_name'].'
from '.strftime('%x', strtotime($datefrom)).' to '.strftime('%x', strtotime($dateto))." - $type - $allowed - $in - $out - $total_data - $rate_95th - $overuse - ".print_percentage_bar(250, 20, $percent, null, 'ffffff', $background['left'], $percent.'%', 'ffffff', $background['right']).' - '; - - }//end if -}//end foreach - -echo ' -'; diff --git a/html/pages/bills/search.inc.php b/html/pages/bills/search.inc.php deleted file mode 100644 index 3291e3f2fe..0000000000 --- a/html/pages/bills/search.inc.php +++ /dev/null @@ -1,40 +0,0 @@ - - -
-
- Bills - - - - -
-
- Current Billing Period'; -} -else { - echo ' Previous Billing Period'; -} - -?> -= 10) { ?> - - -
-
- - '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){ diff --git a/includes/alerts/transport.api.php b/includes/alerts/transport.api.php index 33089b4641..20afc1f5e4 100644 --- a/includes/alerts/transport.api.php +++ b/includes/alerts/transport.api.php @@ -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; } } } diff --git a/includes/alerts/transport.hipchat.php b/includes/alerts/transport.hipchat.php index 5a209bbefd..a829004c4b 100644 --- a/includes/alerts/transport.hipchat.php +++ b/includes/alerts/transport.hipchat.php @@ -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; diff --git a/includes/alerts/transport.mail.php b/includes/alerts/transport.mail.php index 56608aa694..41a65930fc 100644 --- a/includes/alerts/transport.mail.php +++ b/includes/alerts/transport.mail.php @@ -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 ); diff --git a/includes/alerts/transport.pagerduty.php b/includes/alerts/transport.pagerduty.php index 4b760df79b..8fb613fa05 100644 --- a/includes/alerts/transport.pagerduty.php +++ b/includes/alerts/transport.pagerduty.php @@ -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; diff --git a/includes/alerts/transport.pushbullet.php b/includes/alerts/transport.pushbullet.php index c5d75f4ef2..f54e7448a2 100644 --- a/includes/alerts/transport.pushbullet.php +++ b/includes/alerts/transport.pushbullet.php @@ -42,6 +42,6 @@ if( $code > 201 ) { if( $debug ) { var_dump($ret); } - return false; + return 'HTTP Status code '.$code; } return true; diff --git a/includes/alerts/transport.pushover.php b/includes/alerts/transport.pushover.php index 5205c14f68..d2f8fba4f4 100644 --- a/includes/alerts/transport.pushover.php +++ b/includes/alerts/transport.pushover.php @@ -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; diff --git a/includes/alerts/transport.slack.php b/includes/alerts/transport.slack.php index e770918e85..cbb9101211 100644 --- a/includes/alerts/transport.slack.php +++ b/includes/alerts/transport.slack.php @@ -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; diff --git a/includes/definitions.inc.php b/includes/definitions.inc.php index dc4325b6e4..18a2f7f97f 100644 --- a/includes/definitions.inc.php +++ b/includes/definitions.inc.php @@ -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'; diff --git a/includes/discovery/os.inc.php b/includes/discovery/os.inc.php index 088b08803f..ae36af1555 100644 --- a/includes/discovery/os.inc.php +++ b/includes/discovery/os.inc.php @@ -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'); +} diff --git a/includes/discovery/os/deliberant.inc.php b/includes/discovery/os/deliberant.inc.php new file mode 100644 index 0000000000..e080db0da6 --- /dev/null +++ b/includes/discovery/os/deliberant.inc.php @@ -0,0 +1,16 @@ + + * 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'; + } +} diff --git a/includes/discovery/os/juniperex2500os.inc.php b/includes/discovery/os/juniperex2500os.inc.php new file mode 100644 index 0000000000..d005242265 --- /dev/null +++ b/includes/discovery/os/juniperex2500os.inc.php @@ -0,0 +1,7 @@ + + * 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'); diff --git a/includes/polling/os/pulse.inc.php b/includes/polling/os/pulse.inc.php index d0aa0a51fa..a868bc8afe 100644 --- a/includes/polling/os/pulse.inc.php +++ b/includes/polling/os/pulse.inc.php @@ -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; } diff --git a/includes/polling/wifi.inc.php b/includes/polling/wifi.inc.php index c2ea601656..685fac9641 100644 --- a/includes/polling/wifi.inc.php +++ b/includes/polling/wifi.inc.php @@ -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'); diff --git a/mibs/CUMULUS-COUNTERS-MIB b/mibs/CUMULUS-COUNTERS-MIB new file mode 100644 index 0000000000..272eaf4c2e --- /dev/null +++ b/mibs/CUMULUS-COUNTERS-MIB @@ -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 + diff --git a/mibs/CUMULUS-RESOURCES-MIB b/mibs/CUMULUS-RESOURCES-MIB new file mode 100644 index 0000000000..89fa48ee05 --- /dev/null +++ b/mibs/CUMULUS-RESOURCES-MIB @@ -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 diff --git a/mibs/CUMULUS-SNMP-MIB b/mibs/CUMULUS-SNMP-MIB new file mode 100644 index 0000000000..06655ec093 --- /dev/null +++ b/mibs/CUMULUS-SNMP-MIB @@ -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 diff --git a/mibs/DELIBERANT-MIB b/mibs/DELIBERANT-MIB new file mode 100644 index 0000000000..9298c60d60 --- /dev/null +++ b/mibs/DELIBERANT-MIB @@ -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 + diff --git a/mibs/DLB-802DOT11-EXT-MIB b/mibs/DLB-802DOT11-EXT-MIB new file mode 100644 index 0000000000..c808ef085e --- /dev/null +++ b/mibs/DLB-802DOT11-EXT-MIB @@ -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 diff --git a/mibs/DLB-ATHDRV-STATS-MIB b/mibs/DLB-ATHDRV-STATS-MIB new file mode 100644 index 0000000000..0f5f79fd30 --- /dev/null +++ b/mibs/DLB-ATHDRV-STATS-MIB @@ -0,0 +1,1892 @@ +-- +-- Deliberant Atheros Driver Statistics MIB +-- + +DLB-ATHDRV-STATS-MIB DEFINITIONS ::= BEGIN +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, + Counter32, Integer32, Counter64, Gauge32 + FROM SNMPv2-SMI + MacAddress + FROM SNMPv2-TC + ifIndex + FROM IF-MIB + dlbMgmt + FROM DELIBERANT-MIB; + +dlbAthDrvStatsMIB MODULE-IDENTITY + LAST-UPDATED "200812120000Z" + ORGANIZATION "Deliberant" + CONTACT-INFO " + Deliberant Customer Support + E-mail: support@deliberant.com" + DESCRIPTION + "The Atheros Driver Statistics MIB by Deliberant." + REVISION "200812120000Z" + DESCRIPTION + "First revision." + ::= { dlbMgmt 7 } + +dlbAthDrvStatsMIBObjects OBJECT IDENTIFIER ::= { dlbAthDrvStatsMIB 1 } + +dlbAthStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF DlbAthStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Atheros driver's network traffic statistics table." + ::= { dlbAthDrvStatsMIBObjects 1 } + +dlbAthStatsEntry OBJECT-TYPE + SYNTAX DlbAthStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Atheros driver's network traffic statistics table entry." + INDEX { ifIndex } + ::= { dlbAthStatsTable 1 } + +DlbAthStatsEntry ::= + SEQUENCE { + dlbAthWatchdogTimeouts Counter32, + dlbAthHardwareErrorInterrupts Counter32, + dlbAthBeaconMissInterrupts Counter32, + dlbAthRecvOverrunInterrupts Counter32, + dlbAthRecvEolInterrupts Counter32, + dlbAthTxmitUnderrunInterrupts Counter32, + dlbAthTxManagementFrames Counter32, + dlbAthTxFramesDiscQueueDepth Counter32, + dlbAthTxFramesDiscDeviceGone Counter32, + dlbAthTxQueueFull Counter32, + dlbAthTxEncapsulationFailed Counter32, + dlbAthTxFailedNoNode Counter32, + dlbAthTxFailedNoDataTxBuffer Counter32, + dlbAthTxFailedNoMgtTxBuffer Counter32, + dlbAthTxFailedTooManyRetries Counter32, + dlbAthTxFailedFifoUnderrun Counter32, + dlbAthTxFailedXmitFiltered Counter32, + dlbAthShortOnchipTxRetries Counter32, + dlbAthLongOnchipTxRetries Counter32, + dlbAthTxFailedBogusXmitRate Counter32, + dlbAthTxFramesNoAckMarked Counter32, + dlbAthTxFramesRtsEnabled Counter32, + dlbAthTxFramesCtsEnabled Counter32, + dlbAthTxFramesShortPreamble Counter32, + dlbAthTxFramesAlternateRate Counter32, + dlbAthTxFrames11gProtection Counter32, + dlbAthRxFailedDescOverrun Counter32, + dlbAthRxFailedBadCrc Counter32, + dlbAthRxFailedFifoOverrun Counter32, + dlbAthRxFailedDecryptErrors Counter32, + dlbAthRxFailedMicFailure Counter32, + dlbAthRxFailedFrameTooShort Counter32, + dlbAthRxSetupFailedNoSkbuff Counter32, + dlbAthRxManagementFrames Counter32, + dlbAthRxControlFrames Counter32, + dlbAthNoSkbuffForBeacon Counter32, + dlbAthBeaconsTransmitted Counter32, + dlbAthPeriodicCalibrations Counter32, + dlbAthPeriodicCalibrFailures Counter32, + dlbAthRfgainValueChange Counter32, + dlbAthRateControlChecks Counter32, + dlbAthRateCtrlRaisedXmitRate Counter32, + dlbAthRateCtrlDroppedXmitRate Counter32, + dlbAthRssiOfLastAck Gauge32, + dlbAthRssiOfLastRcv Gauge32 +} + +dlbAthWatchdogTimeouts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Watchdog timeouts." + ::= { dlbAthStatsEntry 1 } + +dlbAthHardwareErrorInterrupts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hardware error interrupts." + ::= { dlbAthStatsEntry 2 } + +dlbAthBeaconMissInterrupts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Beacon miss interrupts." + ::= { dlbAthStatsEntry 3 } + +dlbAthRecvOverrunInterrupts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received overrun interrupts." + ::= { dlbAthStatsEntry 4 } + +dlbAthRecvEolInterrupts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received EOL interrupts." + ::= { dlbAthStatsEntry 5 } + +dlbAthTxmitUnderrunInterrupts OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmission underrun interrupts." + ::= { dlbAthStatsEntry 6 } + +dlbAthTxManagementFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted management frames." + ::= { dlbAthStatsEntry 7 } + +dlbAthTxFramesDiscQueueDepth OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmit frames discarded due to queue depth." + ::= { dlbAthStatsEntry 8 } + +dlbAthTxFramesDiscDeviceGone OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmit frames discarded due to device gone." + ::= { dlbAthStatsEntry 9 } + +dlbAthTxQueueFull OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmit queue stopped because it is full." + ::= { dlbAthStatsEntry 10 } + +dlbAthTxEncapsulationFailed OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmit encapsulation failed." + ::= { dlbAthStatsEntry 11 } + +dlbAthTxFailedNoNode OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to no node." + ::= { dlbAthStatsEntry 12 } + +dlbAthTxFailedNoDataTxBuffer OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to no place in transmit buffer for data frames." + ::= { dlbAthStatsEntry 13 } + +dlbAthTxFailedNoMgtTxBuffer OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to no place in transmit buffer for management frames." + ::= { dlbAthStatsEntry 14 } + +dlbAthTxFailedTooManyRetries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to too many retries." + ::= { dlbAthStatsEntry 15 } + +dlbAthTxFailedFifoUnderrun OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to FIFO underruns." + ::= { dlbAthStatsEntry 16 } + +dlbAthTxFailedXmitFiltered OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to filtered packets." + ::= { dlbAthStatsEntry 17 } + +dlbAthShortOnchipTxRetries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Short on-chip transmission retries." + ::= { dlbAthStatsEntry 18 } + +dlbAthLongOnchipTxRetries OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Long on-chip transmission retries." + ::= { dlbAthStatsEntry 19 } + +dlbAthTxFailedBogusXmitRate OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to bogus transmission rate." + ::= { dlbAthStatsEntry 20 } + +dlbAthTxFramesNoAckMarked OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted frames with no ACK marked." + ::= { dlbAthStatsEntry 21 } + +dlbAthTxFramesRtsEnabled OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted frames with RTS enabled." + ::= { dlbAthStatsEntry 22 } + +dlbAthTxFramesCtsEnabled OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted frames with CTS enabled." + ::= { dlbAthStatsEntry 23 } + +dlbAthTxFramesShortPreamble OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted frames with short preamble." + ::= { dlbAthStatsEntry 24 } + +dlbAthTxFramesAlternateRate OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted frames with an alternate rate." + ::= { dlbAthStatsEntry 25 } + +dlbAthTxFrames11gProtection OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted frames with 11g protection." + ::= { dlbAthStatsEntry 26 } + +dlbAthRxFailedDescOverrun OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Receptions failed due to desc overrun." + ::= { dlbAthStatsEntry 27 } + +dlbAthRxFailedBadCrc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Receptions failed due to bad CRC." + ::= { dlbAthStatsEntry 28 } + +dlbAthRxFailedFifoOverrun OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Receptions failed due to FIFO overrun." + ::= { dlbAthStatsEntry 29 } + +dlbAthRxFailedDecryptErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Receptions failed due to decryption errors." + ::= { dlbAthStatsEntry 30 } + +dlbAthRxFailedMicFailure OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Receptions failed due to MIC failure." + ::= { dlbAthStatsEntry 31 } + +dlbAthRxFailedFrameTooShort OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Receptions failed due to frame being too short." + ::= { dlbAthStatsEntry 32 } + +dlbAthRxSetupFailedNoSkbuff OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reception setup failed due to no space in skbuff buffer." + ::= { dlbAthStatsEntry 33 } + +dlbAthRxManagementFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received management frames." + ::= { dlbAthStatsEntry 34 } + +dlbAthRxControlFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received control frames." + ::= { dlbAthStatsEntry 35 } + +dlbAthNoSkbuffForBeacon OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "No skbuff buffer space available for beacon." + ::= { dlbAthStatsEntry 36 } + +dlbAthBeaconsTransmitted OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Beacons transmitted." + ::= { dlbAthStatsEntry 37 } + +dlbAthPeriodicCalibrations OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Periodic calibrations." + ::= { dlbAthStatsEntry 38 } + +dlbAthPeriodicCalibrFailures OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Periodic calibration failures." + ::= { dlbAthStatsEntry 39 } + +dlbAthRfgainValueChange OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RFgain value changes." + ::= { dlbAthStatsEntry 40 } + +dlbAthRateControlChecks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rate control checks." + ::= { dlbAthStatsEntry 41 } + +dlbAthRateCtrlRaisedXmitRate OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rate control raised transmission rate." + ::= { dlbAthStatsEntry 42 } + +dlbAthRateCtrlDroppedXmitRate OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rate control dropped transmission rate." + ::= { dlbAthStatsEntry 43 } + +dlbAthRssiOfLastAck OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RSSI of last ACK." + ::= { dlbAthStatsEntry 44 } + +dlbAthRssiOfLastRcv OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RSSI of last reception." + ::= { dlbAthStatsEntry 45 } + +dlbAthPhyErrorsTable OBJECT-TYPE + SYNTAX SEQUENCE OF DlbAthPhyErrorsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "PHY errrors table." + ::= { dlbAthDrvStatsMIBObjects 2 } + +dlbAthPhyErrorsEntry OBJECT-TYPE + SYNTAX DlbAthPhyErrorsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "PHY errors table entry." + INDEX { ifIndex } + ::= { dlbAthPhyErrorsTable 1 } + +DlbAthPhyErrorsEntry ::= + SEQUENCE { + dlbAthPhyTransmitUnderrun Counter32, + dlbAthPhyTimingError Counter32, + dlbAthPhyIllegalParity Counter32, + dlbAthPhyIllegalRate Counter32, + dlbAthPhyIllegalLength Counter32, + dlbAthPhyRadarDetect Counter32, + dlbAthPhyIllegalService Counter32, + dlbAthPhyTxmitOverrideRecv Counter32, + dlbAthPhyOfdmTiming Counter32, + dlbAthPhyOfdmIllegalParity Counter32, + dlbAthPhyOfdmIllegalRate Counter32, + dlbAthPhyOfdmIllegalLength Counter32, + dlbAthPhyOfdmPowerDrop Counter32, + dlbAthPhyOfdmIllegalService Counter32, + dlbAthPhyOfdmRestart Counter32, + dlbAthPhyCckTiming Counter32, + dlbAthPhyCckHeaderCrc Counter32, + dlbAthPhyCckIllegalRate Counter32, + dlbAthPhyCckIllegalService Counter32, + dlbAthPhyCckRestart Counter32 +} + +dlbAthPhyTransmitUnderrun OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmit underrun errors." + ::= { dlbAthPhyErrorsEntry 1 } + +dlbAthPhyTimingError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Timing errors." + ::= { dlbAthPhyErrorsEntry 2 } + +dlbAthPhyIllegalParity OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Illegal parity errors." + ::= { dlbAthPhyErrorsEntry 3 } + +dlbAthPhyIllegalRate OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Illegal rate errors." + ::= { dlbAthPhyErrorsEntry 4 } + +dlbAthPhyIllegalLength OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Illegal length errors." + ::= { dlbAthPhyErrorsEntry 5 } + +dlbAthPhyRadarDetect OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Radar detected." + ::= { dlbAthPhyErrorsEntry 6 } + +dlbAthPhyIllegalService OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Illegal service errors." + ::= { dlbAthPhyErrorsEntry 7 } + +dlbAthPhyTxmitOverrideRecv OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmission overrode reception errors." + ::= { dlbAthPhyErrorsEntry 8 } + +dlbAthPhyOfdmTiming OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OFDM timing errors." + ::= { dlbAthPhyErrorsEntry 9 } + +dlbAthPhyOfdmIllegalParity OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OFDM illegal parity errors." + ::= { dlbAthPhyErrorsEntry 10 } + +dlbAthPhyOfdmIllegalRate OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OFDM illegal rate errors." + ::= { dlbAthPhyErrorsEntry 11 } + +dlbAthPhyOfdmIllegalLength OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OFDM illegal length errors." + ::= { dlbAthPhyErrorsEntry 12 } + +dlbAthPhyOfdmPowerDrop OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OFDM power dropped." + ::= { dlbAthPhyErrorsEntry 13 } + +dlbAthPhyOfdmIllegalService OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OFDM illegal service errors." + ::= { dlbAthPhyErrorsEntry 14 } + +dlbAthPhyOfdmRestart OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times OFDM restarted." + ::= { dlbAthPhyErrorsEntry 15 } + +dlbAthPhyCckTiming OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "CCK timing errors." + ::= { dlbAthPhyErrorsEntry 16 } + +dlbAthPhyCckHeaderCrc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "CCK header CRC errors." + ::= { dlbAthPhyErrorsEntry 17 } + +dlbAthPhyCckIllegalRate OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "CCK illegal rate errors." + ::= { dlbAthPhyErrorsEntry 18 } + +dlbAthPhyCckIllegalService OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "CCK illegal service errors." + ::= { dlbAthPhyErrorsEntry 19 } + +dlbAthPhyCckRestart OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times CCK restarted." + ::= { dlbAthPhyErrorsEntry 20 } + +dlbAthAntennaStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF DlbAthAntennaStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Antenna statistics table." + ::= { dlbAthDrvStatsMIBObjects 3 } + +dlbAthAntennaStatsEntry OBJECT-TYPE + SYNTAX DlbAthAntennaStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Antenna statistics table entry." + INDEX { ifIndex } + ::= { dlbAthAntennaStatsTable 1 } + +DlbAthAntennaStatsEntry ::= + SEQUENCE { + dlbAthSwitchedDefaultRxAntenna Counter32, + dlbAthTxUsedAlternateAntenna Counter32, + dlbAthTxFramesAntenna1 Counter32, + dlbAthRxFramesAntenna1 Counter32, + dlbAthTxFramesAntenna2 Counter32, + dlbAthRxFramesAntenna2 Counter32, + dlbAthTxFramesAntenna3 Counter32, + dlbAthRxFramesAntenna3 Counter32 +} + +dlbAthSwitchedDefaultRxAntenna OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times default/RX antenna was switched." + ::= { dlbAthAntennaStatsEntry 1 } + +dlbAthTxUsedAlternateAntenna OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of times alternate antenna was used for transmission." + ::= { dlbAthAntennaStatsEntry 2 } + +dlbAthTxFramesAntenna1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted over first antenna." + ::= { dlbAthAntennaStatsEntry 3 } + +dlbAthRxFramesAntenna1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received over first antenna." + ::= { dlbAthAntennaStatsEntry 4 } + +dlbAthTxFramesAntenna2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted over second antenna." + ::= { dlbAthAntennaStatsEntry 5 } + +dlbAthRxFramesAntenna2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received over second antenna." + ::= { dlbAthAntennaStatsEntry 6 } + +dlbAthTxFramesAntenna3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted over third antenna." + ::= { dlbAthAntennaStatsEntry 7 } + +dlbAthRxFramesAntenna3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received over third antenna." + ::= { dlbAthAntennaStatsEntry 8 } + +dlbAthDot11StatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF DlbAthDot11StatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "802.11 stack statistics table." + ::= { dlbAthDrvStatsMIBObjects 4 } + +dlbAthDot11StatsEntry OBJECT-TYPE + SYNTAX DlbAthDot11StatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "802.11 stack statistics table entry." + INDEX { ifIndex } + ::= { dlbAthDot11StatsTable 1 } + +DlbAthDot11StatsEntry ::= + SEQUENCE { + dlbAthDot11RxBadVersion Counter32, + dlbAthDot11RxTooShort Counter32, + dlbAthDot11RxWrongBssid Counter32, + dlbAthDot11RxDup Counter32, + dlbAthDot11RxWrongDirection Counter32, + dlbAthDot11RxMcastEcho Counter32, + dlbAthDot11RxNotAssoc Counter32, + dlbAthDot11RxNoPrivacy Counter32, + dlbAthDot11RxUnencrypted Counter32, + dlbAthDot11RxWepFail Counter32, + dlbAthDot11RxDecapFail Counter32, + dlbAthDot11RxDiscardMgt Counter32, + dlbAthDot11RxDiscardCtrl Counter32, + dlbAthDot11RxBeaconFrames Counter32, + dlbAthDot11RxRateSetTrunc Counter32, + dlbAthDot11RxReqElemMissing Counter32, + dlbAthDot11RxElementTooBig Counter32, + dlbAthDot11RxElementTooSmall Counter32, + dlbAthDot11RxElementUnknown Counter32, + dlbAthDot11RxInvalidChannel Counter32, + dlbAthDot11RxChannelMismatch Counter32, + dlbAthDot11RxNodesAllocated Counter32, + dlbAthDot11RxSsidMismatch Counter32, + dlbAthDot11RxUnsupportedAuthAlg Counter32, + dlbAthDot11RxAuthFail Counter32, + dlbAthDot11RxTkipCtrm Counter32, + dlbAthDot11RxAssocWrongBssid Counter32, + dlbAthDot11RxAssocNotAuth Counter32, + dlbAthDot11RxAssocCapMismatch Counter32, + dlbAthDot11RxAssocNoRateMatch Counter32, + dlbAthDot11RxAssocBadWpaIe Counter32, + dlbAthDot11RxDeauth Counter32, + dlbAthDot11RxDisassoc Counter32, + dlbAthDot11RxUnknownSubtype Counter32, + dlbAthDot11RxNoBuffer Counter32, + dlbAthDot11RxDecryptCrcError Counter32, + dlbAthDot11RxMgmtInAhdocDemo Counter32, + dlbAthDot11RxBadAuthRequest Counter32, + dlbAthDot11RxPortUnauth Counter32, + dlbAthDot11RxBadKeyId Counter32, + dlbAthDot11RxCcmpBadSeqNum Counter32, + dlbAthDot11RxCcmpBadFormat Counter32, + dlbAthDot11RxCcmpMicCheck Counter32, + dlbAthDot11RxTkipBadSeqNum Counter32, + dlbAthDot11RxTkipBadFormat Counter32, + dlbAthDot11RxTkipMicCheck Counter32, + dlbAthDot11RxTkipIcvCheck Counter32, + dlbAthDot11RxBadCipherKeyType Counter32, + dlbAthDot11RxCipherKeyNotSet Counter32, + dlbAthDot11RxAclPolicy Counter32, + dlbAthDot11RxFastFrames Counter32, + dlbAthDot11RxFfBadTunnelHdr Counter32, + dlbAthDot11TxNoBuffer Counter32, + dlbAthDot11TxNoNode Counter32, + dlbAthDot11TxBadMgtFrames Counter32, + dlbAthDot11TxBadCipherKeyType Counter32, + dlbAthDot11TxNoDefKey Counter32, + dlbAthDot11TxNoCryptoHeadroom Counter32, + dlbAthDot11TxGoodFastFrames Counter32, + dlbAthDot11TxBadFastFrames Counter32, + dlbAthDot11ActiveScans Counter32, + dlbAthDot11PassiveScans Counter32, + dlbAthDot11NodesTimeout Counter32, + dlbAthDot11CryptoCipherMalloc Counter32, + dlbAthDot11CryptoSwTkip Counter32, + dlbAthDot11CryptoTkipSwMicEnc Counter32, + dlbAthDot11CryptoTkipSwMicDec Counter32, + dlbAthDot11CryptoTkipCtrm Counter32, + dlbAthDot11CryptoSwCcmp Counter32, + dlbAthDot11CryptoSwWep Counter32, + dlbAthDot11CryptoCipherRej Counter32, + dlbAthDot11CryptoNoKey Counter32, + dlbAthDot11CryptoDelKey Counter32, + dlbAthDot11CryptoBadCipher Counter32, + dlbAthDot11CryptoNoCipher Counter32, + dlbAthDot11CryptoAttachFail Counter32, + dlbAthDot11CryptoSwFallback Counter32, + dlbAthDot11CryptoKeyFail Counter32, + dlbAthDot11SnoopMcastPass Counter32, + dlbAthDot11SnoopMcastDrop Counter32 + } + +dlbAthDot11RxBadVersion OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with bad version." + ::= { dlbAthDot11StatsEntry 1 } + +dlbAthDot11RxTooShort OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received too short frames." + ::= { dlbAthDot11StatsEntry 2 } + +dlbAthDot11RxWrongBssid OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received from wrong BSSID." + ::= { dlbAthDot11StatsEntry 3 } + +dlbAthDot11RxDup OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received and discarded duplicate frames." + ::= { dlbAthDot11StatsEntry 4 } + +dlbAthDot11RxWrongDirection OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received with wrong direction." + ::= { dlbAthDot11StatsEntry 5 } + +dlbAthDot11RxMcastEcho OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames discarded due to multicast echo." + ::= { dlbAthDot11StatsEntry 6 } + +dlbAthDot11RxNotAssoc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames discarded because station is not associated." + ::= { dlbAthDot11StatsEntry 7 } + +dlbAthDot11RxNoPrivacy OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with WEP while privacy was off." + ::= { dlbAthDot11StatsEntry 8 } + +dlbAthDot11RxUnencrypted OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received unencrypted frames while privacy was on." + ::= { dlbAthDot11StatsEntry 9 } + +dlbAthDot11RxWepFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames that failed WEP processing." + ::= { dlbAthDot11StatsEntry 10 } + +dlbAthDot11RxDecapFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames that failed decapsulation." + ::= { dlbAthDot11StatsEntry 11 } + +dlbAthDot11RxDiscardMgt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received and discarded management frames." + ::= { dlbAthDot11StatsEntry 12 } + +dlbAthDot11RxDiscardCtrl OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received and discarded control frames." + ::= { dlbAthDot11StatsEntry 13 } + +dlbAthDot11RxBeaconFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received beacon frames." + ::= { dlbAthDot11StatsEntry 14 } + +dlbAthDot11RxRateSetTrunc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with rate set truncated." + ::= { dlbAthDot11StatsEntry 15 } + +dlbAthDot11RxReqElemMissing OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with required element missing." + ::= { dlbAthDot11StatsEntry 16 } + +dlbAthDot11RxElementTooBig OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with too big elements." + ::= { dlbAthDot11StatsEntry 17 } + +dlbAthDot11RxElementTooSmall OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with too small elements." + ::= { dlbAthDot11StatsEntry 18 } + +dlbAthDot11RxElementUnknown OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with unknown elements." + ::= { dlbAthDot11StatsEntry 19 } + +dlbAthDot11RxInvalidChannel OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Recevied frames with invalid channel." + ::= { dlbAthDot11StatsEntry 20 } + +dlbAthDot11RxChannelMismatch OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with channel mismatch." + ::= { dlbAthDot11StatsEntry 21 } + +dlbAthDot11RxNodesAllocated OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Nodes allocated for received frames." + ::= { dlbAthDot11StatsEntry 22 } + +dlbAthDot11RxSsidMismatch OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frame SSID mismatches." + ::= { dlbAthDot11StatsEntry 23 } + +dlbAthDot11RxUnsupportedAuthAlg OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with unsupported authentication algorithm." + ::= { dlbAthDot11StatsEntry 24 } + +dlbAthDot11RxAuthFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station authentication failures." + ::= { dlbAthDot11StatsEntry 25 } + +dlbAthDot11RxTkipCtrm OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station authentication failures due to TKIP countermeasures." + ::= { dlbAthDot11StatsEntry 26 } + +dlbAthDot11RxAssocWrongBssid OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Associations from wrong BSSID." + ::= { dlbAthDot11StatsEntry 27 } + +dlbAthDot11RxAssocNotAuth OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Associations without authentication." + ::= { dlbAthDot11StatsEntry 28 } + +dlbAthDot11RxAssocCapMismatch OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Associations with capabilities mismatch." + ::= { dlbAthDot11StatsEntry 29 } + +dlbAthDot11RxAssocNoRateMatch OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Associations with no matching rate." + ::= { dlbAthDot11StatsEntry 30 } + +dlbAthDot11RxAssocBadWpaIe OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Associations with bad WPA IE." + ::= { dlbAthDot11StatsEntry 31 } + +dlbAthDot11RxDeauth OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Deauthentications." + ::= { dlbAthDot11StatsEntry 32 } + +dlbAthDot11RxDisassoc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Disassociations." + ::= { dlbAthDot11StatsEntry 33 } + +dlbAthDot11RxUnknownSubtype OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with unknown subtype." + ::= { dlbAthDot11StatsEntry 34 } + +dlbAthDot11RxNoBuffer OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Buffer allocations failed for received frames." + ::= { dlbAthDot11StatsEntry 35 } + +dlbAthDot11RxDecryptCrcError OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Decryptions failed with CRC error." + ::= { dlbAthDot11StatsEntry 36 } + +dlbAthDot11RxMgmtInAhdocDemo OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Discarded management frames received in ahdoc demo mode." + ::= { dlbAthDot11StatsEntry 37 } + +dlbAthDot11RxBadAuthRequest OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bad authentication requests." + ::= { dlbAthDot11StatsEntry 38 } + +dlbAthDot11RxPortUnauth OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames discarded due to unauthorized port." + ::= { dlbAthDot11StatsEntry 39 } + +dlbAthDot11RxBadKeyId OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with incorrect keyid." + ::= { dlbAthDot11StatsEntry 40 } + +dlbAthDot11RxCcmpBadSeqNum OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "CCMP sequence number violations." + ::= { dlbAthDot11StatsEntry 41 } + +dlbAthDot11RxCcmpBadFormat OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bad format CCMP frames." + ::= { dlbAthDot11StatsEntry 42 } + +dlbAthDot11RxCcmpMicCheck OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "CCMP MIC check failures." + ::= { dlbAthDot11StatsEntry 43 } + +dlbAthDot11RxTkipBadSeqNum OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "TKIP sequence number violations." + ::= { dlbAthDot11StatsEntry 44 } + +dlbAthDot11RxTkipBadFormat OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bad format TKIP frames." + ::= { dlbAthDot11StatsEntry 45 } + +dlbAthDot11RxTkipMicCheck OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "TKIP MIC check failures." + ::= { dlbAthDot11StatsEntry 46 } + +dlbAthDot11RxTkipIcvCheck OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "TKIP ICV check failures." + ::= { dlbAthDot11StatsEntry 47 } + +dlbAthDot11RxBadCipherKeyType OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Receptions failed due to bad cipher/key type." + ::= { dlbAthDot11StatsEntry 48 } + +dlbAthDot11RxCipherKeyNotSet OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Receptions failed due to cipher/key not setup." + ::= { dlbAthDot11StatsEntry 49 } + +dlbAthDot11RxAclPolicy OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames discarded due to ACL policy." + ::= { dlbAthDot11StatsEntry 50 } + +dlbAthDot11RxFastFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received fast frames." + ::= { dlbAthDot11StatsEntry 51 } + +dlbAthDot11RxFfBadTunnelHdr OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Fast frames failed due to bad tunnel header." + ::= { dlbAthDot11StatsEntry 52 } + +dlbAthDot11TxNoBuffer OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Buffer allocations failed for transmitted frames." + ::= { dlbAthDot11StatsEntry 53 } + +dlbAthDot11TxNoNode OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed for no node." + ::= { dlbAthDot11StatsEntry 54 } + +dlbAthDot11TxBadMgtFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Attempted transmissions of unknown management frame." + ::= { dlbAthDot11StatsEntry 55 } + +dlbAthDot11TxBadCipherKeyType OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to bad cipher/key type." + ::= { dlbAthDot11StatsEntry 56 } + +dlbAthDot11TxNoDefKey OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to no default key." + ::= { dlbAthDot11StatsEntry 57 } + +dlbAthDot11TxNoCryptoHeadroom OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmissions failed due to no space for crypto headers." + ::= { dlbAthDot11StatsEntry 58 } + +dlbAthDot11TxGoodFastFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Successful fast frames transmissions." + ::= { dlbAthDot11StatsEntry 59 } + +dlbAthDot11TxBadFastFrames OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Failed fast frames transmissions." + ::= { dlbAthDot11StatsEntry 60 } + +dlbAthDot11ActiveScans OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Active scans started." + ::= { dlbAthDot11StatsEntry 61 } + +dlbAthDot11PassiveScans OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Passive scans started." + ::= { dlbAthDot11StatsEntry 62 } + +dlbAthDot11NodesTimeout OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Nodes timed out due to inactivity." + ::= { dlbAthDot11StatsEntry 63 } + +dlbAthDot11CryptoCipherMalloc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Failed memory allocations for cipher context." + ::= { dlbAthDot11StatsEntry 64 } + +dlbAthDot11CryptoSwTkip OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "TKIP encryptions done in software." + ::= { dlbAthDot11StatsEntry 65 } + +dlbAthDot11CryptoTkipSwMicEnc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "TKIP MIC encryptions done in software." + ::= { dlbAthDot11StatsEntry 66 } + +dlbAthDot11CryptoTkipSwMicDec OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "TKIP MIC decryptions done in software." + ::= { dlbAthDot11StatsEntry 67 } + +dlbAthDot11CryptoTkipCtrm OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "TKIP frames dropped due to countermeasures." + ::= { dlbAthDot11StatsEntry 68 } + +dlbAthDot11CryptoSwCcmp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "CCMP encryptions done in software." + ::= { dlbAthDot11StatsEntry 69 } + +dlbAthDot11CryptoSwWep OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WEP encryptions done in software." + ::= { dlbAthDot11StatsEntry 70 } + +dlbAthDot11CryptoCipherRej OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Crypto failures due to cipher rejected data." + ::= { dlbAthDot11StatsEntry 71 } + +dlbAthDot11CryptoNoKey OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Crypto failures due to no key index." + ::= { dlbAthDot11StatsEntry 72 } + +dlbAthDot11CryptoDelKey OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Failed driver key deletions." + ::= { dlbAthDot11StatsEntry 73 } + +dlbAthDot11CryptoBadCipher OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Crypto failures due to unknown cipher." + ::= { dlbAthDot11StatsEntry 74 } + +dlbAthDot11CryptoNoCipher OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Crypto failures due to unavailable cipher module." + ::= { dlbAthDot11StatsEntry 75 } + +dlbAthDot11CryptoAttachFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Crypto failures due to cipher attach failure." + ::= { dlbAthDot11StatsEntry 76 } + +dlbAthDot11CryptoSwFallback OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Crypto fallbacks to software implementation." + ::= { dlbAthDot11StatsEntry 77 } + +dlbAthDot11CryptoKeyFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Crypto failures due to driver key allocation failure." + ::= { dlbAthDot11StatsEntry 78 } + +dlbAthDot11SnoopMcastPass OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Multicast packets passed by snooping filter." + ::= { dlbAthDot11StatsEntry 79 } + +dlbAthDot11SnoopMcastDrop OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Multicast packets dropped by snooping filter." + ::= { dlbAthDot11StatsEntry 80 } + +dlbAthPeerStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF DlbAthPeerStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Peer statistics table." + ::= { dlbAthDrvStatsMIBObjects 5 } + +dlbAthPeerStatsEntry OBJECT-TYPE + SYNTAX DlbAthPeerStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Peer statistics table entry." + INDEX { ifIndex, dlbAthPeerIndex } + ::= { dlbAthPeerStatsTable 1 } + +DlbAthPeerStatsEntry ::= + SEQUENCE { + dlbAthPeerIndex Integer32, + dlbAthPeerMacAddr MacAddress, + dlbAthPeerRxData Counter32, + dlbAthPeerRxMgmt Counter32, + dlbAthPeerRxCtrl Counter32, + dlbAthPeerRxBeacons Counter64, + dlbAthPeerRxProbeResponse Counter32, + dlbAthPeerRxUcast Counter32, + dlbAthPeerRxMcast Counter32, + dlbAthPeerRxBytes Counter64, + dlbAthPeerRxDup Counter32, + dlbAthPeerRxNoPrivacy Counter32, + dlbAthPeerRxWepFail Counter32, + dlbAthPeerRxDemicFail Counter32, + dlbAthPeerRxDecapFail Counter32, + dlbAthPeerRxDefragFail Counter32, + dlbAthPeerRxDissasoc Counter32, + dlbAthPeerRxDeauth Counter32, + dlbAthPeerRxDecryptCrc Counter32, + dlbAthPeerRxUnauth Counter32, + dlbAthPeerRxUnencrypted Counter32, + dlbAthPeerTxData Counter32, + dlbAthPeerTxMgmt Counter32, + dlbAthPeerTxProbeReq Counter32, + dlbAthPeerTxUcast Counter32, + dlbAthPeerTxMcast Counter32, + dlbAthPeerTxBytes Counter64, + dlbAthPeerTxNoVlanTag Counter32, + dlbAthPeerTxVlanMismatch Counter32, + dlbAthPeerTxUapsd Counter32, + dlbAthPeerUapsdTriggers Counter32, + dlbAthPeerTxEospLost Counter32, + dlbAthPeerTxAssoc Counter32, + dlbAthPeerTxAssocFail Counter32, + dlbAthPeerTxAuth Counter32, + dlbAthPeerTxAuthFail Counter32, + dlbAthPeerTxDeauth Counter32, + dlbAthPeerTxDeauthCode Counter32, + dlbAthPeerTxDisassoc Counter32, + dlbAthPeerTxDisassocCode Counter32, + dlbAthPeerPsqDrops Counter32, + dlbAthPeerMcastSnoop Counter32 + } + +dlbAthPeerIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Peer index, indexed from 1." + ::= { dlbAthPeerStatsEntry 1 } + +dlbAthPeerMacAddr OBJECT-TYPE + SYNTAX MacAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Peer MAC address." + ::= { dlbAthPeerStatsEntry 2 } + +dlbAthPeerRxData OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received data frames." + ::= { dlbAthPeerStatsEntry 3 } + +dlbAthPeerRxMgmt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received management frames." + ::= { dlbAthPeerStatsEntry 4 } + +dlbAthPeerRxCtrl OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received control frames." + ::= { dlbAthPeerStatsEntry 5 } + +dlbAthPeerRxBeacons OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received beacon frames." + ::= { dlbAthPeerStatsEntry 6 } + +dlbAthPeerRxProbeResponse OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received probe response frames." + ::= { dlbAthPeerStatsEntry 7 } + +dlbAthPeerRxUcast OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received unicast frames." + ::= { dlbAthPeerStatsEntry 8 } + +dlbAthPeerRxMcast OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received multicast/broadcast frames." + ::= { dlbAthPeerStatsEntry 9 } + +dlbAthPeerRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received bytes." + ::= { dlbAthPeerStatsEntry 10 } + +dlbAthPeerRxDup OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received and discarded duplicate frames." + ::= { dlbAthPeerStatsEntry 11 } + +dlbAthPeerRxNoPrivacy OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames with WEP while privacy was off." + ::= { dlbAthPeerStatsEntry 12 } + +dlbAthPeerRxWepFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames that failed WEP processing." + ::= { dlbAthPeerStatsEntry 13 } + +dlbAthPeerRxDemicFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "MIC decoding failures." + ::= { dlbAthPeerStatsEntry 14 } + +dlbAthPeerRxDecapFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Decapsulation failures." + ::= { dlbAthPeerStatsEntry 15 } + +dlbAthPeerRxDefragFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Defragmentation failures." + ::= { dlbAthPeerStatsEntry 16 } + +dlbAthPeerRxDissasoc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Disassociations." + ::= { dlbAthPeerStatsEntry 17 } + +dlbAthPeerRxDeauth OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Deauthentications." + ::= { dlbAthPeerStatsEntry 18 } + +dlbAthPeerRxDecryptCrc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Decryptions failed with CRC error." + ::= { dlbAthPeerStatsEntry 19 } + +dlbAthPeerRxUnauth OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received frames discarded due to unauthorized port." + ::= { dlbAthPeerStatsEntry 20 } + +dlbAthPeerRxUnencrypted OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received unencrypted frames while privacy was on." + ::= { dlbAthPeerStatsEntry 21 } + +dlbAthPeerTxData OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted data frames." + ::= { dlbAthPeerStatsEntry 22 } + +dlbAthPeerTxMgmt OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tranmitted management frames." + ::= { dlbAthPeerStatsEntry 23 } + +dlbAthPeerTxProbeReq OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted probe requests." + ::= { dlbAthPeerStatsEntry 24 } + +dlbAthPeerTxUcast OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted unicast frames." + ::= { dlbAthPeerStatsEntry 25 } + +dlbAthPeerTxMcast OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted multicast/broadcast frames." + ::= { dlbAthPeerStatsEntry 26 } + +dlbAthPeerTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Transmitted bytes." + ::= { dlbAthPeerStatsEntry 27 } + +dlbAthPeerTxNoVlanTag OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Frames discarded due to no tag." + ::= { dlbAthPeerStatsEntry 28 } + +dlbAthPeerTxVlanMismatch OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Frames discarded due to bad tag." + ::= { dlbAthPeerStatsEntry 29 } + +dlbAthPeerTxUapsd OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Frames in UAPSD queue." + ::= { dlbAthPeerStatsEntry 30 } + +dlbAthPeerUapsdTriggers OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of UAPSD triggers." + ::= { dlbAthPeerStatsEntry 31 } + +dlbAthPeerTxEospLost OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Retried frames with UAPSD EOSP set." + ::= { dlbAthPeerStatsEntry 32 } + +dlbAthPeerTxAssoc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Associations/reassociations." + ::= { dlbAthPeerStatsEntry 33 } + +dlbAthPeerTxAssocFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Association/reassociation failures." + ::= { dlbAthPeerStatsEntry 34 } + +dlbAthPeerTxAuth OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Authentications/reauthentications." + ::= { dlbAthPeerStatsEntry 35 } + +dlbAthPeerTxAuthFail OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Authentication/reauthentication failures." + ::= { dlbAthPeerStatsEntry 36 } + +dlbAthPeerTxDeauth OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Deauthentications." + ::= { dlbAthPeerStatsEntry 37 } + +dlbAthPeerTxDeauthCode OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last deauthentication reason." + ::= { dlbAthPeerStatsEntry 38 } + +dlbAthPeerTxDisassoc OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Disassociations." + ::= { dlbAthPeerStatsEntry 39 } + +dlbAthPeerTxDisassocCode OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last disassociation reason." + ::= { dlbAthPeerStatsEntry 40 } + +dlbAthPeerPsqDrops OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Power save queue drops." + ::= { dlbAthPeerStatsEntry 41 } + +dlbAthPeerMcastSnoop OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Frames passed by multicast snooping." + ::= { dlbAthPeerStatsEntry 42 } + +END diff --git a/mibs/DLB-GENERIC-MIB b/mibs/DLB-GENERIC-MIB new file mode 100644 index 0000000000..39aa1fc029 --- /dev/null +++ b/mibs/DLB-GENERIC-MIB @@ -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 diff --git a/mibs/DLB-RADIO3-DRV-MIB b/mibs/DLB-RADIO3-DRV-MIB new file mode 100644 index 0000000000..e69cc42001 --- /dev/null +++ b/mibs/DLB-RADIO3-DRV-MIB @@ -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 diff --git a/sql-schema/108.sql b/sql-schema/108.sql new file mode 100644 index 0000000000..670badd789 --- /dev/null +++ b/sql-schema/108.sql @@ -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'); diff --git a/sql-schema/109.sql b/sql-schema/109.sql new file mode 100644 index 0000000000..a6bca66b56 --- /dev/null +++ b/sql-schema/109.sql @@ -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; diff --git a/validate.php b/validate.php index 2ed6750061..7bbdd04bc2 100755 --- a/validate.php +++ b/validate.php @@ -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