diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index f0c3abfa25..f5be93f471 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -9,7 +9,7 @@ Please replace the relevant information in these commands. ```bash ./discovery.php -h HOSTNAME -d -m os ./poller.php -h HOSTNAME -r -f -d -m os -snmpbulkwalk -v2c -c COMMUNITY HOSTNAME . +snmpbulkwalk -On -v2c -c COMMUNITY HOSTNAME . ``` If possible please also provide what the OS name should be if it doesn't exist already. diff --git a/AUTHORS.md b/AUTHORS.md index 63f0456d10..3573dbecff 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -102,11 +102,14 @@ LibreNMS contributors: - Jussi Sorjonen (mieleton) - Jens Langhammer (BeryJu) - Robert Verspuy (exarv) +- Peter Tkatchenko (Peter2121) +- Marc Runkel (mrunkel) +- Josh Driver (keeperofdakeys) +- Felix Eckhofer (tribut) +- Vikram Adukia (justmedude) [1]: http://observium.org/ "Observium web site" Observium was written by: - Adam Armstrong - Tom Laermans - various others as indicated in the file contents and commit logs - - diff --git a/addhost.php b/addhost.php index 381c602daf..0b4401aca5 100755 --- a/addhost.php +++ b/addhost.php @@ -204,9 +204,13 @@ if (!empty($argv[1])) { echo 'Added device '.$device['hostname'].' ('.$device_id.")\n"; exit; } -}//end if + else { + print $console_color->convert("%rWe couldn't add this device, please check the snmp details%n\n"); + } +} +else { -print $console_color->convert( + print $console_color->convert( "\n".$config['project_name_version'].' Add Host Tool Usage (SNMPv1/2c): ./addhost.php [-g ] [-f] [-p ] <%Whostname%n> [community] [v1|v2c] [port] ['.implode('|', $config['snmp']['transports']).'] @@ -224,4 +228,5 @@ print $console_color->convert( %rRemember to run discovery for the host afterwards.%n ' -); + ); +} diff --git a/alerts.php b/alerts.php index 0044dc66d1..4574ae9986 100755 --- a/alerts.php +++ b/alerts.php @@ -455,11 +455,12 @@ function FormatAlertTpl($obj) { function DescribeAlert($alert) { $obj = array(); $i = 0; - $device = dbFetchRow('SELECT hostname, sysName FROM devices WHERE device_id = ?', array($alert['device_id'])); + $device = dbFetchRow('SELECT hostname, sysName, location FROM devices WHERE device_id = ?', array($alert['device_id'])); $tpl = dbFetchRow('SELECT `template`,`title`,`title_rec` FROM `alert_templates` JOIN `alert_template_map` ON `alert_template_map`.`alert_templates_id`=`alert_templates`.`id` WHERE `alert_template_map`.`alert_rule_id`=?', array($alert['rule_id'])); $default_tpl = "%title\r\nSeverity: %severity\r\n{if %state == 0}Time elapsed: %elapsed\r\n{/if}Timestamp: %timestamp\r\nUnique-ID: %uid\r\nRule: {if %name}%name{else}%rule{/if}\r\n{if %faults}Faults:\r\n{foreach %faults} #%key: %value.string\r\n{/foreach}{/if}Alert sent to: {foreach %contacts}%value <%key> {/foreach}"; $obj['hostname'] = $device['hostname']; $obj['sysName'] = $device['sysName']; + $obj['location'] = $device['location']; $obj['device_id'] = $alert['device_id']; $extra = $alert['details']; if (!isset($tpl['template'])) { diff --git a/doc/Extensions/Alerting.md b/doc/Extensions/Alerting.md index 1183a5a37a..a549684208 100644 --- a/doc/Extensions/Alerting.md +++ b/doc/Extensions/Alerting.md @@ -4,6 +4,7 @@ Table of Content: - [Rules](#rules) - [Syntax](#rules-syntax) - [Examples](#rules-examples) + - [Procedure](#rules-procedure) - [Templates](#templates) - [Syntax](#templates-syntax) - [Examples](#templates-examples) @@ -89,6 +90,9 @@ Alert when: - High CPU usage(per core usage, not overall): `%macros.device_up = "1" && %processors.processor_usage >= "90"` - High port usage, where description is not client & ifType is not softwareLoopback: `%macros.port_usage_perc >= "80" && %port.port_descr_type != "client" && %ports.ifType != "softwareLoopback"` +## Procedure +You can associate a rule to a procedure by giving the URL of the procedure when creating the rule. Only links like "http://" are supported, otherwise an error will be returned. Once configured, procedure can be opened from the Alert widget through the "Open" button, which can be shown/hidden from the widget configuration box. + # Templates Templates can be assigned to a single or a group of rules. @@ -107,6 +111,8 @@ Controls: Placeholders: - Hostname of the Device: `%hostname` +- sysName of the Device: `%sysName` +- location of the Device: `%location` - Title for the Alert: `%title` - Time Elapsed, Only available on recovery (`%state == 0`): `%elapsed` - Alert-ID: `%id` @@ -564,6 +570,12 @@ All macros that are not unary should return Boolean. You can only apply _Equal_ or _Not-Equal_ Operations on Boolean-macros where `True` is represented by `"1"` and `False` by `"0"`. +Note, if using a /, spaces must be inserted around it. + +Example +```php +((%ports.ifInOctets_rate*8) / %ports.ifSpeed)*100 +``` ## Device (Boolean) @@ -627,7 +639,7 @@ Entity: `%macros.port_usage_perc` Description: Return port-usage in percent. -Source: `((%ports.ifInOctets_rate*8)/%ports.ifSpeed)*100` +Source: `((%ports.ifInOctets_rate*8) / %ports.ifSpeed)*100` ## Time diff --git a/doc/Extensions/Authentication.md b/doc/Extensions/Authentication.md index adb468a51a..a2ae521361 100644 --- a/doc/Extensions/Authentication.md +++ b/doc/Extensions/Authentication.md @@ -168,3 +168,27 @@ $config['radius']['timeout'] = 3; $config['radius']['users_purge'] = 14;//Purge users who haven't logged in for 14 days. $config['radius']['default_level'] = 1;//Set the default user level when automatically creating a user. ``` + +#### HTTP Authentication / AD Authorization + +Config option: `ad-authorization` + +This module is a combination of ___http-auth___ and ___active_directory___ + +LibreNMS will expect the user to have authenticated via your webservice already (e.g. using Kerberos Authentication in Apache) but will use Active Directory lookups to determine and assign the userlevel of a user. +The userlevel will be calculated by using AD group membership information as the ___active_directory___ module does. + +The configuration is the same as for the ___active_directory___ module with two extra, optional options: auth_ad_binduser and auth_ad_bindpassword. +These should be set to a AD user with read capabilities in your AD Domain in order to be able to perform searches. +If these options are omitted, the module will attempt an anonymous bind (which then of course must be allowed by your Active Directory server(s)). + +There is also one extra option for controlling user information caching: auth_ldap_cache_ttl. +This option allows to control how long user information (user_exists, userid, userlevel) are cached within the PHP Session. +The default value is 300 seconds. +To disable this caching (highly discourage) set this option to 0. + +```php +$config['auth_ad_binduser'] = "ad_binduser"; +$config['auth_ad_bindpassword'] = "ad_bindpassword"; +$config['auth_ldap_cache_ttl'] = 300; +``` diff --git a/doc/Extensions/Auto-Discovery.md b/doc/Extensions/Auto-Discovery.md new file mode 100644 index 0000000000..8e3342452c --- /dev/null +++ b/doc/Extensions/Auto-Discovery.md @@ -0,0 +1,59 @@ +# Auto discovery support + +LibreNMS provides the ability to automatically add devices on your network, we can do this with via +a few methods which will be explained below and also indicate if they are enabled by default. + +All discovery methods run when discovery.php runs (every 6 hours by default and within 5 minutes for new devices). + +### Discovery methods + +#### ARP +Disabled by default. + +To enable, switch on globally the `$config['discovery_modules']['discovery-arp'] = 1;` or per device within the Modules section. + +#### XDP +Enabled by default. + +`$config['autodiscovery']['xdp'] = false;` to disable. + +This includes FDP, CDP and LLDP support based on the device type. + +#### OSPF +Enabled by default. + +`$config['autodiscovery']['ospf'] = false;` to disable. + +#### BGP +Enabled by default. + +`$config['autodiscovery']['bgp'] = false;` to disable. + +This module is invoked from bgp-peers discovery module. + +### Including / Excluding subnets to scan + +By default the following config is in place to exclude loopback, multicast, etc ranges. You can expand this out by adding more +ranges to config.php + +```php +$config['autodiscovery']['nets-exclude'][] = '0.0.0.0/8'; +$config['autodiscovery']['nets-exclude'][] = '127.0.0.0/8'; +$config['autodiscovery']['nets-exclude'][] = '169.254.0.0/16'; +$config['autodiscovery']['nets-exclude'][] = '224.0.0.0/4'; +$config['autodiscovery']['nets-exclude'][] = '240.0.0.0/4'; +``` + +You will need to specify your own subnets that you would like to scan for which can be done with: + +`$config['nets'][] = '8.8.8.0/24';` + +#### Discovering devices by IP + +By default we don't add devices by IP address, we look for a reverse dns name to be found and add with that. If this fails +and you would like to still add devices automatically then you will need to set `$config['discovery_by_ip'] = true;` + +#### Short hostnames + +If your devices only return a short hostname such as lax-fa0-dc01 but the full name should be lax-fa0-dc01.example.com then you can +set `$config['mydomain'] = 'example.com';` diff --git a/doc/Extensions/SNMP-Proxy.md b/doc/Extensions/SNMP-Proxy.md new file mode 100644 index 0000000000..19ceb983e0 --- /dev/null +++ b/doc/Extensions/SNMP-Proxy.md @@ -0,0 +1,29 @@ +# SNMP Proxy + +If you have machines that you want to monitor but are not reachable directly, you can use [SNMPD Proxy](http://www.net-snmp.org/wiki/index.php/Snmpd_proxy). This will use the reachable SNMPD to proxy requests to the unreachable SNMPD. + +## Example configuration +We want to poll ```unreachable.example.com``` via ```hereweare.example.com```. Use the following config: + +On ```hereweare.example.com```: +``` + view all included .1 + com2sec -Cn ctx_unreachable readonly unreachable + access MyROGroup ctx_unreachable any noauth prefix all none none + proxy -Cn ctx_unreachable -v 2c -c private unreachable.example.com .1.3 +``` + +On ```unreachable.example.com```: +``` + view all included .1 80 + com2sec readonly private + group MyROGroup v1 readonly + group MyROGroup v2c readonly + group MyROGroup usm readonly + access MyROGroup "" any noauth exact all none none +``` + + +You can now poll community ```private``` on ```unreachable.example.com``` via community ```unreachable``` on host ```hereweare.example.com```. Please note that requests on ```unreachable.example.com``` will be coming from ```hereweare.example.com```, not your poller. + + diff --git a/doc/General/Changelog.md b/doc/General/Changelog.md index 5c83b6c47a..8c1822b004 100644 --- a/doc/General/Changelog.md +++ b/doc/General/Changelog.md @@ -1,3 +1,88 @@ +### June 2016 + +#### Bug fixes + - WebUI: + - Rename $ds to $ldap_connection for auth modules (PR3596) + - Misc: + - Fix smokeping path in gen_smokeping (PR3577) + - Fix full include path in includes/polling/functions.inc.php (PR3614) + +#### Improvements + - Added / improved detection for: + - HPE 3Par (PR3578) + - Buffalo TeraStation (PR3587) + - Samsung C printers (PR3598) + - Roomalert3e (PR3599) + - Avtech Switches (PR3611) + - IBM Bladecenter switches (PR3623) + - HWg support (PR3624) + - IBM IMM (PR3625) + - Polling / Discovery: + - Use lsb_release in distro script (PR3580) + - Allow lmsensors fanspeeds of 0 to be discovered (PR3616) + - Added support for rrdcached application monitoring (PR3627) + - WebUI: + - Resolve some reported security issues (PR3586) With thanks to https://twitter.com/wireghoul + - Order apps list alphabetically (PR3600) + - Network map improvements (PR3602) + - Added support for varying hostname formats in Oxidized integration (PR3617) + - Added device hw/location on hover in alerts table (PR3621) + - Misc: + - Added pivot table for device groups ready for V2 (PR3589) + +### May 2016 + +#### Bug fixes + - WebUI: + - Fixed broken performance charts using VisJS (PR3479) + - Fixed include path to file in create alert item (PR3480) + - Updated services box on front page to utilise the new services (PR3481) + - Potential fix for intermittent logouts (PR3372) + - Updated sensors hostname to use correct variable (PR3485) + - Polling / Discovery: + - Only poll AirMAX if device supports the MIB (PR3486) + - Alerting: + - Don't alert unless the sensor value surpasses the threshold (PR3507) + +#### Improvements + - Added / improved detection for: + - Microsemo timing devices (PR3453) + - Bintec smart routers (PR3454) + - PoweWalker support (PR3456) + - BDCom support (PR3459) + - Cisco WAPs (PR3460) + - EMC Data domain (PR3461) + - Xerox support (PR3462) + - Calix support (PR3463) + - Isilon OneFS (PR3482) + - Ricoh printers (PR3483) + - HP Virtual Connect (PR3487) + - Equallogic arrays + Dell servers (PR3519) + - Alcatel-Lucent SR + SAR (PR3535, PR3553) + - Xirrus Wireless Access Points (PR3543) + - Polling / Discovery: + - Add config option to stop devices with duplicate sysName's being added (PR3473) + - Enable discovery support of CDP neighbours by IP (PR3561) + - Alerting: + - Added ability to use sysName in templates (PR3470) + - Send Slack alerts as pure JSON (PR3522) + - Apply colour to HipChat messages (PR3539) + - WebUI: + - Added ability to filter alerts by state (PR3471) + - Added support for using local openstreet map tiles (PR3472) + - Added ability to show services on availability map (PR3496) + - Added combined auth module for http auth and AD auth (PR3531) + - List services alphabetically (PR3538) + - Added support for scrollable widgets (PR3565) + - Graphs: + - Added Hit/Misses for memcached graphs (PR3499) + - API: + - Update get_graph_generic_by_hostname to use device_id as well (PR3494) + - Docs: + - Added configuration for SNMP Proxy support (PR3528) + - Misc: + - Added purge for alert log (PR3469) + ### April 2016 #### Bug fixes diff --git a/doc/Installation/CentOS-image.md b/doc/Installation/CentOS-image.md index cc55e1b370..03a5dc6a2b 100644 --- a/doc/Installation/CentOS-image.md +++ b/doc/Installation/CentOS-image.md @@ -46,17 +46,21 @@ Any issues with these images should be reported via [Github](https://github.com/ #### Credentials +> Please note the second character of the SSH password is a CAPITAL EYE + - SSH - username: librenms - - password: CIne3fwdfds + - password: `CIne3fwdfds` + +> Please note the second character of the SSH password is a CAPITAL EYE - MySQL/MariaDB - username: root - - password: NIfceu3fqfd + - password: `NIfceu3fqfd` - username: librenms - - password: D42nf23rewD + - password: `D42nf23rewD` - WebUI - username: librenms - - password: D32fwefwef + - password: `D32fwefwef` diff --git a/doc/Installation/Ubuntu-image.md b/doc/Installation/Ubuntu-image.md index c998a2a877..cf087370d5 100644 --- a/doc/Installation/Ubuntu-image.md +++ b/doc/Installation/Ubuntu-image.md @@ -33,31 +33,35 @@ Any issues with these images should be reported via [Github](https://github.com/ #### Download -[OVA Image](http://www.lathwood.co.uk/librenms/librenms_ubuntu_1604.ova) - 1.2G +[OVA Image](http://www.lathwood.co.uk/librenms/librenms_ubuntu_1604.ova) - 1.3G - - md5sum: 00fe34b925d09aa24ef05038d813e095 + - md5sum: 944fcd73e918eabec7509569c2d98cf0 - - sha256sum: 10c82dc30962f319bcea04838b1a46fb8dec225648c38e9aff26f9812f14d176 + - sha256sum: 2a792e1d39813f0bdd510445aa04bc88e226311e825dddeb3780cf5d58bef43c -[VMDK Image](http://www.lathwood.co.uk/librenms/librenms_ubuntu_1604.vmdk) - 3.2G +[VMDK Image](http://www.lathwood.co.uk/librenms/librenms_ubuntu_1604.vmdk) - 3.3G - - md5sum: 063fbbdd506d78fa1de801d04ad0db99 + - md5sum: e84e31e437e946a9a01d0c87059bfe04 - - sha256sum: deccef6e62462ce905b7c423ad5da753d49d9eb5173ca2faeef27d92e970a5d2 + - sha256sum: 4f687608291161ffd8f5e1aee38be1d6b9e0c2a13d15252da62fe783578f5708 #### Credentials +> Please note the second character of the SSH password is a CAPITAL EYE + - SSH - username: librenms - - password: CIne3fwdfds + - password: `CIne3fwdfds` + +> Please note the second character of the SSH password is a CAPITAL EYE - MySQL/MariaDB - username: root - - password: NIfceu3fqfd + - password: `NIfceu3fqfd` - username: librenms - - password: D42nf23rewD + - password: `D42nf23rewD` - WebUI - username: librenms - - password: D32fwefwef + - password: `D32fwefwef` diff --git a/doc/Support/Configuration.md b/doc/Support/Configuration.md index 1a653030c0..2a614c490e 100644 --- a/doc/Support/Configuration.md +++ b/doc/Support/Configuration.md @@ -210,7 +210,7 @@ Disable the footer of the WebUI by setting `enable_footer` to 0. You can enable the old style network map (only available for individual devices with links discovered via xDP) by setting: ```php $config['gui']['network-map']['style'] = 'old'; -```` +``` #### Add host settings The following setting controls how hosts are added. If a host is added as an ip address it is checked to ensure the ip is not already present. If the ip is present the host is not added. @@ -220,6 +220,12 @@ $config['addhost_alwayscheckip'] = FALSE; #TRUE - check for duplicate ips even #FALSE- only check when adding host by ip. ``` +By default we allow hosts to be added with duplicate sysName's, you can disable this with the following config: + +```php +$config['allow_duplicate_sysName'] = false; +``` + #### SNMP Settings ```php diff --git a/doc/Support/FAQ.md b/doc/Support/FAQ.md index 6d1c0664e9..602ac697b3 100644 --- a/doc/Support/FAQ.md +++ b/doc/Support/FAQ.md @@ -164,7 +164,7 @@ If you see `nothing to commit, working directory clean` then let's go for it :) Let's say that you want to test a users (f0o) new development branch (issue-1337) then you can do the following: ```bash -git remote add f0o https://github.com/librenms/librenms.git +git remote add f0o https://github.com/f0o/librenms.git git remote update f0o git checkout issue-1337 ``` diff --git a/html/css/styles.css b/html/css/styles.css index f480f47733..5f9aaa5587 100644 --- a/html/css/styles.css +++ b/html/css/styles.css @@ -1863,4 +1863,11 @@ label { padding: 5px; border-radius: 4px; box-shadow: 0 5px 15px rgba(0,0,0,.5); -} \ No newline at end of file +} + +.edit-widget, .close-widget { cursor: pointer; } +.widget_body { + overflow-y: auto; + width: 100%; + height: calc(100% - 35px); +} diff --git a/html/images/os/buffalo.png b/html/images/os/buffalo.png new file mode 100644 index 0000000000..25e74d30c7 Binary files /dev/null and b/html/images/os/buffalo.png differ diff --git a/html/images/os/hwg-poseidon.png b/html/images/os/hwg-poseidon.png new file mode 100644 index 0000000000..5762618092 Binary files /dev/null and b/html/images/os/hwg-poseidon.png differ diff --git a/html/images/os/hwg.png b/html/images/os/hwg.png new file mode 100644 index 0000000000..1e19ba056c Binary files /dev/null and b/html/images/os/hwg.png differ diff --git a/microsemism.png b/html/images/os/microsemi.png similarity index 100% rename from microsemism.png rename to html/images/os/microsemi.png diff --git a/html/images/os/oracle.png b/html/images/os/oracle.png new file mode 100644 index 0000000000..6a4235fc65 Binary files /dev/null and b/html/images/os/oracle.png differ diff --git a/html/images/os/poseidon.png b/html/images/os/poseidon.png deleted file mode 100644 index 29233208ad..0000000000 Binary files a/html/images/os/poseidon.png and /dev/null differ diff --git a/html/images/os/riverbed.png b/html/images/os/riverbed.png index 51804d52b4..19077cbd3d 100644 Binary files a/html/images/os/riverbed.png and b/html/images/os/riverbed.png differ diff --git a/html/images/os/xirrus.png b/html/images/os/xirrus.png new file mode 100644 index 0000000000..a8d05ed4af Binary files /dev/null and b/html/images/os/xirrus.png differ diff --git a/html/includes/api_functions.inc.php b/html/includes/api_functions.inc.php index e559dfcd9a..75aa966bbf 100644 --- a/html/includes/api_functions.inc.php +++ b/html/includes/api_functions.inc.php @@ -1271,7 +1271,7 @@ function get_devices_by_group() { } else { $group_id = dbFetchCell("SELECT `id` FROM `device_groups` WHERE `name`=?",array($name)); - $devices = GetDevicesFromGroup($group_id); + $devices = GetDevicesFromGroup($group_id, true); $count = count($devices); if (empty($devices)) { $message = 'No devices found in group ' . $name; diff --git a/html/includes/authentication/active_directory.inc.php b/html/includes/authentication/active_directory.inc.php index d936b44c8d..e6dda6b7e0 100644 --- a/html/includes/authentication/active_directory.inc.php +++ b/html/includes/authentication/active_directory.inc.php @@ -8,25 +8,25 @@ if (isset($config['auth_ad_check_certificates']) && putenv('LDAPTLS_REQCERT=never'); }; -$ds = @ldap_connect($config['auth_ad_url']); +$ldap_connection = @ldap_connect($config['auth_ad_url']); // disable referrals and force ldap version to 3 -ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); -ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); +ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0); +ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3); function authenticate($username, $password) { - global $config, $ds; + global $config, $ldap_connection; - if ($ds) { + if ($ldap_connection) { // bind with sAMAccountName instead of full LDAP DN - if ($username && ldap_bind($ds, "{$username}@{$config['auth_ad_domain']}", $password)) { + if ($username && ldap_bind($ldap_connection, "{$username}@{$config['auth_ad_domain']}", $password)) { // group membership in one of the configured groups is required if (isset($config['auth_ad_require_groupmembership']) && $config['auth_ad_require_groupmembership'] > 0) { - $search = ldap_search($ds, $config['auth_ad_base_dn'], + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(samaccountname={$username})", array('memberOf')); - $entries = ldap_get_entries($ds, $search); + $entries = ldap_get_entries($ldap_connection, $search); $user_authenticated = 0; @@ -53,7 +53,7 @@ function authenticate($username, $password) { } } else { - echo ldap_error($ds); + echo ldap_error($ldap_connection); } return 0; @@ -108,11 +108,11 @@ function user_exists_in_db($username) { } function user_exists($username) { - global $config, $ds; + global $config, $ldap_connection; - $search = ldap_search($ds, $config['auth_ad_base_dn'], + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(samaccountname={$username})",array('samaccountname')); - $entries = ldap_get_entries($ds, $search); + $entries = ldap_get_entries($ldap_connection, $search); if ($entries['count']) { @@ -124,14 +124,14 @@ function user_exists($username) { function get_userlevel($username) { - global $config, $ds; + global $config, $ldap_connection; $userlevel = 0; // Find all defined groups $username is in - $search = ldap_search($ds, $config['auth_ad_base_dn'], + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(samaccountname={$username})", array('memberOf')); - $entries = ldap_get_entries($ds, $search); + $entries = ldap_get_entries($ldap_connection, $search); // Loop the list and find the highest level foreach ($entries[0]['memberof'] as $entry) { @@ -146,12 +146,12 @@ function get_userlevel($username) { function get_userid($username) { - global $config, $ds; + global $config, $ldap_connection; $attributes = array('objectsid'); - $search = ldap_search($ds, $config['auth_ad_base_dn'], + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(samaccountname={$username})", $attributes); - $entries = ldap_get_entries($ds, $search); + $entries = ldap_get_entries($ldap_connection, $search); if ($entries['count']) { return preg_replace('/.*-(\d+)$/','$1',sid_from_ldap($entries[0]['objectsid'][0])); @@ -172,7 +172,7 @@ function deluser($username) { function get_userlist() { - global $config, $ds; + global $config, $ldap_connection; $userlist = array(); $userhash = array(); @@ -180,14 +180,14 @@ function get_userlist() { foreach($ldap_groups as $ldap_group) { $group_cn = get_cn($ldap_group); - $search = ldap_search($ds, $config['auth_ad_base_dn'], "(cn={$group_cn})", array('member')); - $entries = ldap_get_entries($ds, $search); + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(cn={$group_cn})", array('member')); + $entries = ldap_get_entries($ldap_connection, $search); foreach($entries[0]['member'] as $member) { $member_cn = get_cn($member); - $search = ldap_search($ds, $config['auth_ad_base_dn'], "(cn={$member_cn})", + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(cn={$member_cn})", array('sAMAccountname', 'displayName', 'objectSID', 'mail')); - $results = ldap_get_entries($ds, $search); + $results = ldap_get_entries($ldap_connection, $search); foreach($results as $result) { if(isset($result['samaccountname'][0])) { $userid = preg_replace('/.*-(\d+)$/','$1', @@ -235,12 +235,12 @@ function update_user($user_id, $realname, $level, $can_modify_passwd, $email) { function get_fullname($username) { - global $config, $ds; + global $config, $ldap_connection; $attributes = array('name'); - $result = ldap_search($ds, $config['auth_ad_base_dn'], + $result = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(samaccountname={$username})", $attributes); - $entries = ldap_get_entries($ds, $result); + $entries = ldap_get_entries($ldap_connection, $result); if ($entries['count'] > 0) { $membername = $entries[0]['name'][0]; } @@ -279,13 +279,13 @@ function get_group_list() { } function get_dn($samaccountname) { - global $config, $ds; + global $config, $ldap_connection; $attributes = array('dn'); - $result = ldap_search($ds, $config['auth_ad_base_dn'], + $result = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(samaccountname={$samaccountname})", $attributes); - $entries = ldap_get_entries($ds, $result); + $entries = ldap_get_entries($ldap_connection, $result); if ($entries['count'] > 0) { return $entries[0]['dn']; } diff --git a/html/includes/authentication/ad-authorization.inc.php b/html/includes/authentication/ad-authorization.inc.php new file mode 100644 index 0000000000..010a3e2b6c --- /dev/null +++ b/html/includes/authentication/ad-authorization.inc.php @@ -0,0 +1,359 @@ +Fatal error while connecting to AD url ' . $config['auth_ad_url'] . ': ' . ldap_error($ldap_connection) . ''; + exit; +} + +// disable referrals and force ldap version to 3 +ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0); +ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3); + +// Bind to AD +if (isset($config['auth_ad_binduser']) && isset($config['auth_ad_bindpassword'])) { + // With specified bind user + if (! ldap_bind($ldap_connection, "${config['auth_ad_binduser']}@${config['auth_ad_domain']}", "${config['auth_ad_bindpassword']}")) { + echo ldap_error($ldap_connection); + } +} +else { + // Anonymous + if (! ldap_bind($ldap_connection)) { + echo ldap_error($ldap_connection); + } +} + +function authenticate ($username, $password) { + global $config; + + if (isset ($_SERVER['REMOTE_USER'])) { + $_SESSION['username'] = mres ($_SERVER['REMOTE_USER']); + + if (user_exists ($_SESSION['username'])) { + adduser($username); + return 1; + + } + + $_SESSION['username'] = $config['http_auth_guest']; + return 1; + } + + return 0; +} + + +function reauthenticate() { + // not supported so return 0 + return 0; +} + + +function passwordscanchange() { + // not supported so return 0 + return 0; +} + + +function changepassword() { + // not supported so return 0 + return 0; +} + + +function auth_usermanagement() { + // not supported so return 0 + return 0; +} + + +function adduser($username, $level=0, $email='', $realname='', $can_modify_passwd=0, $description='', $twofactor=0) { + // Check to see if user is already added in the database + if (!user_exists_in_db($username)) { + $userid = dbInsert(array('username' => $username, 'realname' => $realname, 'email' => $email, 'descr' => $description, 'level' => $level, 'can_modify_passwd' => $can_modify_passwd, 'twofactor' => $twofactor, 'user_id' => get_userid($username)), 'users'); + if ($userid == false) { + return false; + } + else { + foreach (dbFetchRows('select notifications.* from notifications where not exists( select 1 from notifications_attribs where notifications.notifications_id = notifications_attribs.notifications_id and notifications_attribs.user_id = ?) order by notifications.notifications_id desc',array($userid)) as $notif) { + dbInsert(array('notifications_id'=>$notif['notifications_id'],'user_id'=>$userid,'key'=>'read','value'=>1),'notifications_attribs'); + } + } + return $userid; + } + else { + return false; + } +} + +function user_exists_in_db($username) { + $return = dbFetchCell('SELECT COUNT(*) FROM users WHERE username = ?', array($username), true); + return $return; +} + +function user_exists($username) { + global $config, $ldap_connection; + + if (auth_ldap_session_cache_get ('user_exists')) + return 1; + + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], + "(samaccountname=${username})",array('samaccountname')); + $entries = ldap_get_entries($ldap_connection, $search); + + if ($entries['count']) { + /* + * Cache positiv result as this will result in more queries which we + * want to speed up. + */ + auth_ldap_session_cache_set ('user_exists', 1); + return 1; + } + + return 0; +} + + +function get_userlevel($username) { + global $config, $ldap_connection; + + $userlevel = auth_ldap_session_cache_get ('userlevel'); + if ($userlevel) { + return $userlevel; + } + else { + $userlevel = 0; + } + + // Find all defined groups $username is in + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], + "(samaccountname={$username})", array('memberOf')); + $entries = ldap_get_entries($ldap_connection, $search); + + // Loop the list and find the highest level + foreach ($entries[0]['memberof'] as $entry) { + $group_cn = get_cn($entry); + if ($config['auth_ad_groups'][$group_cn]['level'] > $userlevel) { + $userlevel = $config['auth_ad_groups'][$group_cn]['level']; + } + } + + auth_ldap_session_cache_set ('userlevel', $userlevel); + return $userlevel; +} + + +function get_userid($username) { + global $config, $ldap_connection; + + $user_id = auth_ldap_session_cache_get ('userid'); + if (isset ($user_id)) { + return $user_id; + } + else { + $user_id = -1; + } + + $attributes = array('objectsid'); + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], + "(samaccountname={$username})", $attributes); + $entries = ldap_get_entries($ldap_connection, $search); + + if ($entries['count']) { + $user_id = preg_replace('/.*-(\d+)$/','$1',sid_from_ldap($entries[0]['objectsid'][0])); + } + + auth_ldap_session_cache_set ('userid', $user_id); + return $user_id; +} + + +function deluser($username) { + dbDelete('bill_perms', '`user_name` = ?', array($username)); + dbDelete('devices_perms', '`user_name` = ?', array($username)); + dbDelete('ports_perms', '`user_name` = ?', array($username)); + dbDelete('users_prefs', '`user_name` = ?', array($username)); + dbDelete('users', '`user_name` = ?', array($username)); + return dbDelete('users', '`username` = ?', array($username)); +} + + +function get_userlist() { + global $config, $ldap_connection; + $userlist = array(); + $userhash = array(); + + $ldap_groups = get_group_list(); + + foreach($ldap_groups as $ldap_group) { + $group_cn = get_cn($ldap_group); + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(cn={$group_cn})", array('member')); + $entries = ldap_get_entries($ldap_connection, $search); + + foreach($entries[0]['member'] as $member) { + $member_cn = get_cn($member); + $search = ldap_search($ldap_connection, $config['auth_ad_base_dn'], "(cn={$member_cn})", + array('sAMAccountname', 'displayName', 'objectSID', 'mail')); + $results = ldap_get_entries($ldap_connection, $search); + foreach($results as $result) { + if(isset($result['samaccountname'][0])) { + $userid = preg_replace('/.*-(\d+)$/','$1', + sid_from_ldap($result['objectsid'][0])); + + // don't make duplicates, user may be member of more than one group + $userhash[$result['samaccountname'][0]] = array( + 'realname' => $result['displayName'][0], + 'user_id' => $userid, + 'email' => $result['mail'][0] + ); + } + } + } + } + + foreach(array_keys($userhash) as $key) { + $userlist[] = array( + 'username' => $key, + 'realname' => $userhash[$key]['realname'], + 'user_id' => $userhash[$key]['user_id'], + 'email' => $userhash[$key]['email'] + ); + } + + return $userlist; +} + + +function can_update_users() { + // not supported so return 0 + return 0; +} + + +function get_user($user_id) { + // not supported so return 0 + return dbFetchRow('SELECT * FROM `users` WHERE `user_id` = ?', array($user_id), true); +} + + +function update_user($user_id, $realname, $level, $can_modify_passwd, $email) { + dbUpdate(array('realname' => $realname, 'can_modify_passwd' => $can_modify_passwd, 'email' => $email), 'users', '`user_id` = ?', array($user_id)); +} + + +function get_fullname($username) { + global $config, $ldap_connection; + + $attributes = array('name'); + $result = ldap_search($ldap_connection, $config['auth_ad_base_dn'], + "(samaccountname={$username})", $attributes); + $entries = ldap_get_entries($ldap_connection, $result); + if ($entries['count'] > 0) { + $membername = $entries[0]['name'][0]; + } + else { + $membername = $username; + } + + return $membername; +} + + +function get_group_list() { + global $config; + + $ldap_groups = array(); + + // show all Active Directory Users by default + $default_group = 'Users'; + + if (isset($config['auth_ad_group'])) { + if ($config['auth_ad_group'] !== $default_group) { + $ldap_groups[] = $config['auth_ad_group']; + } + } + + if (!isset($config['auth_ad_groups']) && !isset($config['auth_ad_group'])) { + $ldap_groups[] = get_dn($default_group); + } + + foreach ($config['auth_ad_groups'] as $key => $value) { + $ldap_groups[] = get_dn($key); + } + + return $ldap_groups; + +} + +function get_dn($samaccountname) { + global $config, $ldap_connection; + + + $attributes = array('dn'); + $result = ldap_search($ldap_connection, $config['auth_ad_base_dn'], + "(samaccountname={$samaccountname})", $attributes); + $entries = ldap_get_entries($ldap_connection, $result); + if ($entries['count'] > 0) { + return $entries[0]['dn']; + } + else { + return ''; + } +} + +function get_cn($dn) { + preg_match('/[^,]*/', $dn, $matches, PREG_OFFSET_CAPTURE, 3); + return $matches[0][0]; +} + +function sid_from_ldap($sid) +{ + $sidHex = unpack('H*hex', $sid); + $subAuths = unpack('H2/H2/n/N/V*', $sid); + $revLevel = hexdec(substr($sidHex, 0, 2)); + $authIdent = hexdec(substr($sidHex, 4, 12)); + return 'S-'.$revLevel.'-'.$authIdent.'-'.implode('-', $subAuths); +} + +function auth_ldap_session_cache_get ($attr) { + global $config; + + $ttl = 300; + if ($config['auth_ldap_cache_ttl']) + $ttl = $config['auth_ldap_cache_ttl']; + + // auth_ldap cache present in this session? + if (! isset ($_SESSION['auth_ldap'])) + return Null; + + $cache = $_SESSION['auth_ldap']; + + // $attr present in cache? + if (! isset ($cache[$attr])) + return Null; + + // Value still valid? + if (time () - $cache[$attr]['last_updated'] >= $ttl) + return Null; + + return $cache[$attr]['value']; +} + + +function auth_ldap_session_cache_set ($attr, $value) { + $_SESSION['auth_ldap'][$attr]['value'] = $value; + $_SESSION['auth_ldap'][$attr]['last_updated'] = time (); +} + diff --git a/html/includes/authentication/ldap-authorization.inc.php b/html/includes/authentication/ldap-authorization.inc.php index 5b68fdf82f..6c0145c4ff 100644 --- a/html/includes/authentication/ldap-authorization.inc.php +++ b/html/includes/authentication/ldap-authorization.inc.php @@ -45,19 +45,19 @@ if (! isset ($_SESSION['username'])) { /** * Set up connection to LDAP server */ -$ds = @ldap_connect ($config['auth_ldap_server'], $config['auth_ldap_port']); -if (! $ds) { - echo '

Fatal error while connecting to LDAP server ' . $config['auth_ldap_server'] . ':' . $config['auth_ldap_port'] . ': ' . ldap_error($ds) . '

'; +$ldap_connection = @ldap_connect ($config['auth_ldap_server'], $config['auth_ldap_port']); +if (! $ldap_connection) { + echo '

Fatal error while connecting to LDAP server ' . $config['auth_ldap_server'] . ':' . $config['auth_ldap_port'] . ': ' . ldap_error($ldap_connection) . '

'; exit; } if ($config['auth_ldap_version']) { - ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, $config['auth_ldap_version']); + ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, $config['auth_ldap_version']); } if ($config['auth_ldap_starttls'] && ($config['auth_ldap_starttls'] == 'optional' || $config['auth_ldap_starttls'] == 'require')) { - $tls = ldap_start_tls($ds); + $tls = ldap_start_tls($ldap_connection); if ($config['auth_ldap_starttls'] == 'require' && $tls === false) { - echo '

Fatal error: LDAP TLS required but not successfully negotiated:' . ldap_error($ds) . '

'; + echo '

Fatal error: LDAP TLS required but not successfully negotiated:' . ldap_error($ldap_connection) . '

'; exit; } } @@ -112,14 +112,14 @@ function adduser ($username, $password, $level, $email = '', $realname = '', $ca function user_exists ($username) { - global $config, $ds; + global $config, $ldap_connection; if (auth_ldap_session_cache_get ('user_exists')) return 1; $filter = '(' . $config['auth_ldap_prefix'] . $username . ')'; - $search = ldap_search ($ds, trim ($config['auth_ldap_suffix'], ','), $filter); - $entries = ldap_get_entries ($ds, $search); + $search = ldap_search ($ldap_connection, trim ($config['auth_ldap_suffix'], ','), $filter); + $entries = ldap_get_entries ($ldap_connection, $search); if ($entries['count']) { /* * Cache positiv result as this will result in more queries which we @@ -139,7 +139,7 @@ function user_exists ($username) { function get_userlevel ($username) { - global $config, $ds; + global $config, $ldap_connection; $userlevel = auth_ldap_session_cache_get ('userlevel'); if ($userlevel) { @@ -150,8 +150,8 @@ function get_userlevel ($username) { // Find all defined groups $username is in $filter = '(&(|(cn=' . join (')(cn=', array_keys ($config['auth_ldap_groups'])) . '))(' . $config['auth_ldap_groupmemberattr'] .'=' . get_membername ($username) . '))'; - $search = ldap_search ($ds, $config['auth_ldap_groupbase'], $filter); - $entries = ldap_get_entries($ds, $search); + $search = ldap_search ($ldap_connection, $config['auth_ldap_groupbase'], $filter); + $entries = ldap_get_entries($ldap_connection, $search); // Loop the list and find the highest level foreach ($entries as $entry) { @@ -168,7 +168,7 @@ function get_userlevel ($username) { function get_userid ($username) { - global $config, $ds; + global $config, $ldap_connection; $user_id = auth_ldap_session_cache_get ('userid'); if (isset ($user_id)) { @@ -178,8 +178,8 @@ function get_userid ($username) { } $filter = '(' . $config['auth_ldap_prefix'] . $username . ')'; - $search = ldap_search ($ds, trim ($config['auth_ldap_suffix'], ','), $filter); - $entries = ldap_get_entries ($ds, $search); + $search = ldap_search ($ldap_connection, trim ($config['auth_ldap_suffix'], ','), $filter); + $entries = ldap_get_entries ($ldap_connection, $search); if ($entries['count']) { $user_id = $entries[0]['uidnumber'][0]; @@ -197,13 +197,13 @@ function deluser ($username) { function get_userlist () { - global $config, $ds; + global $config, $ldap_connection; $userlist = array (); $filter = '(' . $config['auth_ldap_prefix'] . '*)'; - $search = ldap_search ($ds, trim ($config['auth_ldap_suffix'], ','), $filter); - $entries = ldap_get_entries ($ds, $search); + $search = ldap_search ($ldap_connection, trim ($config['auth_ldap_suffix'], ','), $filter); + $entries = ldap_get_entries ($ldap_connection, $search); if ($entries['count']) { foreach ($entries as $entry) { @@ -214,7 +214,7 @@ function get_userlist () { $ldap_groups = get_group_list (); foreach ($ldap_groups as $ldap_group) { $ldap_comparison = ldap_compare( - $ds, + $ldap_connection, $ldap_group, $config['auth_ldap_groupmemberattr'], get_membername($username) @@ -256,14 +256,14 @@ function update_user ($user_id, $realname, $level, $can_modify_passwd, $email) { function get_membername ($username) { - global $config, $ds; + global $config, $ldap_connection; if ($config['auth_ldap_groupmembertype'] == 'fulldn') { $membername = $config['auth_ldap_prefix'] . $username . $config['auth_ldap_suffix']; } elseif ($config['auth_ldap_groupmembertype'] == 'puredn') { $filter = '(' . $config['auth_ldap_attr']['uid'] . '=' . $username . ')'; - $search = ldap_search($ds, $config['auth_ldap_groupbase'], $filter); - $entries = ldap_get_entries($ds, $search); + $search = ldap_search($ldap_connection, $config['auth_ldap_groupbase'], $filter); + $entries = ldap_get_entries($ldap_connection, $search); $membername = $entries[0]['dn']; } else { diff --git a/html/includes/authentication/ldap.inc.php b/html/includes/authentication/ldap.inc.php index a9679072fd..884ce7db14 100644 --- a/html/includes/authentication/ldap.inc.php +++ b/html/includes/authentication/ldap.inc.php @@ -1,25 +1,25 @@ Fatal error: LDAP TLS required but not successfully negotiated:'.ldap_error($ds).''; + echo '

Fatal error: LDAP TLS required but not successfully negotiated:'.ldap_error($ldap_connection).'

'; exit; } } function authenticate($username, $password) { - global $config, $ds; + global $config, $ldap_connection; - if ($username && $ds) { + if ($username && $ldap_connection) { if ($config['auth_ldap_version']) { - ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, $config['auth_ldap_version']); + ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, $config['auth_ldap_version']); } - if (ldap_bind($ds, $config['auth_ldap_prefix'].$username.$config['auth_ldap_suffix'], $password)) { + if (ldap_bind($ldap_connection, $config['auth_ldap_prefix'].$username.$config['auth_ldap_suffix'], $password)) { if (!$config['auth_ldap_group']) { return 1; } @@ -27,7 +27,7 @@ function authenticate($username, $password) { $ldap_groups = get_group_list(); foreach ($ldap_groups as $ldap_group) { $ldap_comparison = ldap_compare( - $ds, + $ldap_connection, $ldap_group, $config['auth_ldap_groupmemberattr'], get_membername($username) @@ -39,7 +39,7 @@ function authenticate($username, $password) { } } else { - echo ldap_error($ds); + echo ldap_error($ldap_connection); } } else { @@ -83,11 +83,11 @@ function adduser($username, $password, $level, $email='', $realname='', $can_mod function user_exists($username) { - global $config, $ds; + global $config, $ldap_connection; $filter = '('.$config['auth_ldap_prefix'].$username.')'; - $search = ldap_search($ds, trim($config['auth_ldap_suffix'], ','), $filter); - $entries = ldap_get_entries($ds, $search); + $search = ldap_search($ldap_connection, trim($config['auth_ldap_suffix'], ','), $filter); + $entries = ldap_get_entries($ldap_connection, $search); if ($entries['count']) { return 1; } @@ -98,14 +98,14 @@ function user_exists($username) { function get_userlevel($username) { - global $config, $ds; + global $config, $ldap_connection; $userlevel = 0; // Find all defined groups $username is in $filter = '(&(|(cn='.join(')(cn=', array_keys($config['auth_ldap_groups'])).'))('.$config['auth_ldap_groupmemberattr'].'='.get_membername($username).'))'; - $search = ldap_search($ds, $config['auth_ldap_groupbase'], $filter); - $entries = ldap_get_entries($ds, $search); + $search = ldap_search($ldap_connection, $config['auth_ldap_groupbase'], $filter); + $entries = ldap_get_entries($ldap_connection, $search); // Loop the list and find the highest level foreach ($entries as $entry) { @@ -121,11 +121,11 @@ function get_userlevel($username) { function get_userid($username) { - global $config, $ds; + global $config, $ldap_connection; $filter = '('.$config['auth_ldap_prefix'].$username.')'; - $search = ldap_search($ds, trim($config['auth_ldap_suffix'], ','), $filter); - $entries = ldap_get_entries($ds, $search); + $search = ldap_search($ldap_connection, trim($config['auth_ldap_suffix'], ','), $filter); + $entries = ldap_get_entries($ldap_connection, $search); if ($entries['count']) { return $entries[0]['uidnumber'][0]; @@ -144,13 +144,13 @@ function deluser($username) { function get_userlist() { - global $config, $ds; + global $config, $ldap_connection; $userlist = array(); $filter = '('.$config['auth_ldap_prefix'].'*)'; - $search = ldap_search($ds, trim($config['auth_ldap_suffix'], ','), $filter); - $entries = ldap_get_entries($ds, $search); + $search = ldap_search($ldap_connection, trim($config['auth_ldap_suffix'], ','), $filter); + $entries = ldap_get_entries($ldap_connection, $search); if ($entries['count']) { foreach ($entries as $entry) { @@ -161,7 +161,7 @@ function get_userlist() { $ldap_groups = get_group_list(); foreach ($ldap_groups as $ldap_group) { $ldap_comparison = ldap_compare( - $ds, + $ldap_connection, $ldap_group, $config['auth_ldap_groupmemberattr'], get_membername($username) @@ -205,14 +205,14 @@ function update_user($user_id, $realname, $level, $can_modify_passwd, $email) { function get_membername($username) { - global $config, $ds; + global $config, $ldap_connection; if ($config['auth_ldap_groupmembertype'] == 'fulldn') { $membername = $config['auth_ldap_prefix'].$username.$config['auth_ldap_suffix']; } elseif ($config['auth_ldap_groupmembertype'] == 'puredn') { $filter = '('.$config['auth_ldap_attr']['uid'].'='.$username.')'; - $search = ldap_search($ds, $config['auth_ldap_groupbase'], $filter); - $entries = ldap_get_entries($ds, $search); + $search = ldap_search($ldap_connection, $config['auth_ldap_groupbase'], $filter); + $entries = ldap_get_entries($ldap_connection, $search); $membername = $entries[0]['dn']; } else { diff --git a/html/includes/common/alerts.inc.php b/html/includes/common/alerts.inc.php index db87ba82dd..3ff832c9d5 100644 --- a/html/includes/common/alerts.inc.php +++ b/html/includes/common/alerts.inc.php @@ -26,6 +26,7 @@ if(defined('show_settings')) { $current_severity = isset($widget_settings['severity']) ? $widget_settings['severity'] : ''; $current_state = isset($widget_settings['state']) ? $widget_settings['state'] : ''; $current_group = isset($widget_settings['group']) ? $widget_settings['group'] : ''; + $current_proc = isset($widget_settings['proc']) ? $widget_settings['proc'] : ''; $common_output[] = '
@@ -94,6 +95,20 @@ if(defined('show_settings')) { +
+
+ +
+
+ +
+
@@ -109,6 +124,7 @@ else { $state = $widget_settings['state']; $min_severity = $widget_settings['min_severity']; $group = $widget_settings['group']; + $proc = $widget_settings['proc']; $title = "Alerts"; @@ -165,7 +181,12 @@ else { Hostname Timestamp Severity - Acknowledge + Acknowledge'; + if (is_numeric($proc)) { + if ($proc) { $common_output[] = 'Procedure'; } + } + else { $common_output[] = 'Procedure'; } + $common_output[] = ' @@ -192,6 +213,9 @@ var alerts_grid = $("#alerts_'.$unique_id.'").bootgrid({ if (is_numeric($group)) { $common_output[]="group: '$group',\n"; } + if (is_numeric($proc)) { + $common_output[]="proc: '$proc',\n"; + } $common_output[]=' device_id: \'' . $device['device_id'] .'\' @@ -204,6 +228,9 @@ var alerts_grid = $("#alerts_'.$unique_id.'").bootgrid({ }, "ack": function(column,row) { return ""; + }, + "proc": function(column,row) { + return ""; } }, templates: { @@ -230,6 +257,22 @@ var alerts_grid = $("#alerts_'.$unique_id.'").bootgrid({ } }); }); + alerts_grid.find(".command-open-proc").on("click", function(e) { + e.preventDefault(); + var alert_id = $(this).data("alert_id"); + $.ajax({ + type: "POST", + url: "ajax_form.php", + data: { type: "open-proc", alert_id: alert_id }, + success: function(msg){ + if (msg != "ERROR") { window.open(msg); } + else { $("#message").html(\'
Procedure link does not seem to be valid, please check the rule.
\'); } + }, + error: function(){ + $("#message").html(\'
An error occurred opening procedure for this alert. Does the procedure link was configured ?
\'); + } + }); + }); alerts_grid.find(".command-ack-alert").on("click", function(e) { e.preventDefault(); var alert_id = $(this).data("alert_id"); diff --git a/html/includes/common/availability-map.inc.php b/html/includes/common/availability-map.inc.php index fbc82cb926..00656eb43c 100644 --- a/html/includes/common/availability-map.inc.php +++ b/html/includes/common/availability-map.inc.php @@ -15,7 +15,7 @@ if (defined('show_settings')) { $current_mode = isset($widget_settings['mode']) ? $widget_settings['mode'] : 0; $current_width = isset($widget_settings['tile_width']) ? $widget_settings['tile_width'] : 10; $common_output[] = ' - +
diff --git a/html/includes/common/generic-image.inc.php b/html/includes/common/generic-image.inc.php index 314caa1cf2..91f80ac1b3 100644 --- a/html/includes/common/generic-image.inc.php +++ b/html/includes/common/generic-image.inc.php @@ -58,5 +58,5 @@ if( defined('show_settings') || empty($widget_settings) ) { } else { $widget_settings['title'] = $widget_settings['image_title']; - $common_output[] = ''; + $common_output[] = ''; } diff --git a/html/includes/common/graylog.inc.php b/html/includes/common/graylog.inc.php index 0d24e8406f..7927605685 100644 --- a/html/includes/common/graylog.inc.php +++ b/html/includes/common/graylog.inc.php @@ -116,7 +116,7 @@ $tmp_output .= ' range: "' . mres($_POST['range']) . '" }; }, - url: "/ajax_table.php", + url: "ajax_table.php", }); diff --git a/html/includes/forms/ack-alert.inc.php b/html/includes/forms/ack-alert.inc.php index a89c4d694a..f33ee8bde3 100644 --- a/html/includes/forms/ack-alert.inc.php +++ b/html/includes/forms/ack-alert.inc.php @@ -19,19 +19,21 @@ if (!is_numeric($alert_id)) { echo 'ERROR: No alert selected'; exit; } -else if (!is_numeric($state)) { +elseif (!is_numeric($state)) { echo 'ERROR: No state passed'; exit; } else { if ($state == 2) { $state = dbFetchCell('SELECT alerted FROM alerts WHERE id = ?', array($alert_id)); + $open = 1; } - else if ($state >= 1) { + elseif ($state >= 1) { $state = 2; + $open = 1; } - if (dbUpdate(array('state' => $state), 'alerts', 'id=?', array($alert_id)) >= 0) { + if (dbUpdate(array('state' => $state, 'open' => $open), 'alerts', 'id=?', array($alert_id)) >= 0) { echo 'Alert acknowledged status changed.'; exit; } diff --git a/html/includes/forms/create-alert-item.inc.php b/html/includes/forms/create-alert-item.inc.php index 467ec8f58b..0ad4c68f22 100644 --- a/html/includes/forms/create-alert-item.inc.php +++ b/html/includes/forms/create-alert-item.inc.php @@ -26,6 +26,8 @@ $interval = mres($_POST['interval']); $mute = mres($_POST['mute']); $invert = mres($_POST['invert']); $name = mres($_POST['name']); +if ($_POST['proc'] != "") { $proc = $_POST['proc']; } +else { $proc = ""; } if (empty($rule)) { $update_message = 'ERROR: No rule was generated - did you forget to click and / or?'; @@ -61,7 +63,7 @@ else if (validate_device_id($_POST['device_id']) || $_POST['device_id'] == '-1' ); $extra_json = json_encode($extra); if (is_numeric($alert_id) && $alert_id > 0) { - if (dbUpdate(array('rule' => $rule, 'severity' => mres($_POST['severity']), 'extra' => $extra_json, 'name' => $name), 'alert_rules', 'id=?', array($alert_id)) >= 0) { + if (dbUpdate(array('rule' => $rule, 'severity' => mres($_POST['severity']), 'extra' => $extra_json, 'name' => $name, 'proc' => $proc), 'alert_rules', 'id=?', array($alert_id)) >= 0) { $update_message = "Edited Rule: $name: $rule"; } else { @@ -73,7 +75,7 @@ else if (validate_device_id($_POST['device_id']) || $_POST['device_id'] == '-1' $device_id = ':'.$device_id; } - if (dbInsert(array('device_id' => $device_id, 'rule' => $rule, 'severity' => mres($_POST['severity']), 'extra' => $extra_json, 'disabled' => 0, 'name' => $name), 'alert_rules')) { + if (dbInsert(array('device_id' => $device_id, 'rule' => $rule, 'severity' => mres($_POST['severity']), 'extra' => $extra_json, 'disabled' => 0, 'name' => $name, 'proc' => $proc), 'alert_rules')) { $update_message = "Added Rule: $name: $rule"; if (is_array($_POST['maps'])) { foreach ($_POST['maps'] as $target) { diff --git a/html/includes/forms/create-device-group.inc.php b/html/includes/forms/create-device-group.inc.php index ef82a16394..03f90ca3f5 100644 --- a/html/includes/forms/create-device-group.inc.php +++ b/html/includes/forms/create-device-group.inc.php @@ -16,6 +16,8 @@ if (is_admin() === false) { die('ERROR: You need to be admin'); } +require_once '../includes/device-groups.inc.php'; + $pattern = $_POST['patterns']; $group_id = $_POST['group_id']; $name = mres($_POST['name']); @@ -38,7 +40,7 @@ if (empty($pattern)) { $update_message = 'ERROR: No group was generated'; } else if (is_numeric($group_id) && $group_id > 0) { - if (dbUpdate(array('pattern' => $pattern, 'name' => $name, 'desc' => $desc), 'device_groups', 'id=?', array($group_id)) >= 0) { + if (EditDeviceGroup($group_id, $name, $desc, $pattern)) { $update_message = "Edited Group: $name: $pattern"; } else { @@ -46,7 +48,7 @@ else if (is_numeric($group_id) && $group_id > 0) { } } else { - if (dbInsert(array('pattern' => $pattern, 'name' => $name, 'desc' => $desc), 'device_groups')) { + if (AddDeviceGroup($name, $desc, $pattern)) { $update_message = "Added Group: $name: $pattern"; } else { diff --git a/html/includes/forms/open-proc.inc.php b/html/includes/forms/open-proc.inc.php new file mode 100644 index 0000000000..ed7031d8cb --- /dev/null +++ b/html/includes/forms/open-proc.inc.php @@ -0,0 +1,27 @@ + + * + * 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. + */ +# header('Content-type: text/plain'); + +$alert_id = $_POST['alert_id']; +if (!is_numeric($alert_id)) { + echo 'ERROR: No alert selected'; + exit; +} +else { + $proc = dbFetchCell('SELECT proc FROM alerts,alert_rules WHERE alert_rules.id = alerts.rule_id AND alerts.id = ?', array($alert_id)); + if (($proc == "") || ($proc == "NULL")) { echo header("HTTP/1.0 404 Not Found"); } + else if (! preg_match ('/^http:\/\//', $proc)) { echo "ERROR"; } + else { echo $proc; } + exit; +} diff --git a/html/includes/forms/parse-alert-rule.inc.php b/html/includes/forms/parse-alert-rule.inc.php index 4372303bf0..fde05bc83f 100644 --- a/html/includes/forms/parse-alert-rule.inc.php +++ b/html/includes/forms/parse-alert-rule.inc.php @@ -28,6 +28,7 @@ if (is_numeric($alert_id) && $alert_id > 0) { 'severity' => $rule['severity'], 'extra' => $rule['extra'], 'name' => $rule['name'], + 'proc' => $rule['proc'], 'rules' => $rule_split, ); header('Content-type: application/json'); diff --git a/html/includes/forms/widget-settings.inc.php b/html/includes/forms/widget-settings.inc.php index 10ed3ad570..f8a51f0a27 100644 --- a/html/includes/forms/widget-settings.inc.php +++ b/html/includes/forms/widget-settings.inc.php @@ -37,7 +37,7 @@ else { $widget_settings = array(); } if (dbFetchCell('select 1 from users_widgets inner join dashboards on users_widgets.dashboard_id = dashboards.dashboard_id where user_widget_id = ? && (users_widgets.user_id = ? || dashboards.access = 2)',array($widget_id,$_SESSION['user_id'])) == 1) { - if (dbUpdate(array('settings'=>json_encode($widget_settings)),'users_widgets','user_widget_id=?',array($widget_id))) { + if (dbUpdate(array('settings'=>json_encode($widget_settings)),'users_widgets','user_widget_id=?',array($widget_id)) >= 0) { $status = 'ok'; $message = 'Updated'; } diff --git a/html/includes/graphs/application/rrdcached.inc.php b/html/includes/graphs/application/rrdcached.inc.php new file mode 100644 index 0000000000..8d16005b81 --- /dev/null +++ b/html/includes/graphs/application/rrdcached.inc.php @@ -0,0 +1,29 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2016 Tony Murray + * @author Tony Murray + */ + +$rrd = rrd_name($device['hostname'], array('app', 'rrdcached', $app['app_id'])); +if (is_file($rrd)) { + $rrd_filename = $rrd; +} diff --git a/html/includes/graphs/application/rrdcached_events.inc.php b/html/includes/graphs/application/rrdcached_events.inc.php new file mode 100644 index 0000000000..1b575078ee --- /dev/null +++ b/html/includes/graphs/application/rrdcached_events.inc.php @@ -0,0 +1,54 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2016 Tony Murray + * @author Tony Murray + */ + +include 'rrdcached.inc.php'; + +$nototal = 1; +$colours = 'mixed'; + +$rrd_list = array( + array ( + 'ds' => 'updates_written', + 'filename' => $rrd_filename, + 'descr' => 'Updates Written', + ), + array ( + 'ds' => 'data_sets_written', + 'filename' => $rrd_filename, + 'descr' => 'Data Sets Written', + ), + array( + 'ds' => 'updates_received', + 'filename' => $rrd_filename, + 'descr' => 'Updates Received', + ), + array ( + 'ds' => 'flushes_received', + 'filename' => $rrd_filename, + 'descr' => 'Flushes Received', + ), +); + +require 'includes/graphs/generic_multi_line.inc.php'; diff --git a/html/includes/graphs/application/rrdcached_journal.inc.php b/html/includes/graphs/application/rrdcached_journal.inc.php new file mode 100644 index 0000000000..73f679cdbf --- /dev/null +++ b/html/includes/graphs/application/rrdcached_journal.inc.php @@ -0,0 +1,43 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2016 Tony Murray + * @author Tony Murray + */ + +include 'rrdcached.inc.php'; + +$colours = 'pinks'; + +$rrd_list = array( + array( + 'ds' => 'journal_rotate', + 'filename' => $rrd_filename, + 'descr' => 'Journal Rotated', + ), + array( + 'ds' => 'journal_bytes', + 'filename' => $rrd_filename, + 'descr' => 'Journal Bytes Written', + ) +); + +require 'includes/graphs/generic_multi.inc.php'; diff --git a/html/includes/graphs/application/rrdcached_queue_length.inc.php b/html/includes/graphs/application/rrdcached_queue_length.inc.php new file mode 100644 index 0000000000..e82a62bbb0 --- /dev/null +++ b/html/includes/graphs/application/rrdcached_queue_length.inc.php @@ -0,0 +1,37 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2016 Tony Murray + * @author Tony Murray + */ + +require 'rrdcached.inc.php'; +require 'includes/graphs/common.inc.php'; + +$ds = 'queue_length'; + +$colour_area = 'F37900'; +$colour_line = 'FFA700'; +$colour_area_max = 'F78800'; + +$unit_text = 'Queue Length'; + +require 'includes/graphs/generic_simplex.inc.php'; diff --git a/html/includes/graphs/application/rrdcached_tree.inc.php b/html/includes/graphs/application/rrdcached_tree.inc.php new file mode 100644 index 0000000000..07adb6145b --- /dev/null +++ b/html/includes/graphs/application/rrdcached_tree.inc.php @@ -0,0 +1,43 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2016 Tony Murray + * @author Tony Murray + */ + +include 'rrdcached.inc.php'; + +$colours = 'blues'; + +$rrd_list = array( + array( + 'ds' => 'tree_depth', + 'filename' => $rrd_filename, + 'descr' => 'Tree Depth', + ), + array( + 'ds' => 'tree_nodes_number', + 'filename' => $rrd_filename, + 'descr' => 'Tree Nodes', + ) +); + +require 'includes/graphs/generic_multi.inc.php'; diff --git a/html/includes/graphs/device/xirrus_dataRates.inc.php b/html/includes/graphs/device/xirrus_dataRates.inc.php new file mode 100644 index 0000000000..0f81d52f97 --- /dev/null +++ b/html/includes/graphs/device/xirrus_dataRates.inc.php @@ -0,0 +1,44 @@ + 'FF0000', + 2 => '0000FF', + 3 => '00FF00', + 4 => 'FF00FF', + 5 => '000000', + 6 => 'FFFF00', + 7 => 'C0C0C0', + 8 => '800000', + 9 => '808000', + 10 => '008000', + 11 => '00FFFF', + 12 => '008080', + 13 => '000080', + 14 => '800080', + 15 => 'FF69B4', + 16 => '006400' +); + +$rrd_options .= ' -l 0 -E '; +$rrd_options .= " COMMENT:'Average Data Rate Cur Min Max\\n'"; +$radioId=1; +foreach(glob($config['rrd_dir'].'/'.$device['hostname'].'/xirrus_stats-*.rrd') as $rrd) { + // get radio name + preg_match("/xirrus_stats-iap([0-9]{1,2}).rrd/", $rrd, $out); + list(,$radioId)=$out; + + // build graph + $color=$pallette[$radioId]; + + $descr = "iap$radioId "; + + $rrd_options .= " DEF:rate$radioId=$rrd:dataRate:AVERAGE"; + $rrd_options .= " LINE2:rate$radioId#".$color.":'".$descr."'"; + $rrd_options .= " GPRINT:rate$radioId:LAST:'%5.0lf'"; + $rrd_options .= " GPRINT:rate$radioId:MIN:'%5.0lf'"; + $rrd_options .= " GPRINT:rate$radioId:MAX:'%5.0lf'\\l"; + + $radioId++; +}//end foreach diff --git a/html/includes/graphs/device/xirrus_noiseFloor.inc.php b/html/includes/graphs/device/xirrus_noiseFloor.inc.php new file mode 100644 index 0000000000..5f8afaa817 --- /dev/null +++ b/html/includes/graphs/device/xirrus_noiseFloor.inc.php @@ -0,0 +1,44 @@ + 'FF0000', + 2 => '0000FF', + 3 => '00FF00', + 4 => 'FF00FF', + 5 => '000000', + 6 => 'FFFF00', + 7 => 'C0C0C0', + 8 => '800000', + 9 => '808000', + 10 => '008000', + 11 => '00FFFF', + 12 => '008080', + 13 => '000080', + 14 => '800080', + 15 => 'FF69B4', + 16 => '006400' +); + +$rrd_options .= ' -E '; +$rrd_options .= " COMMENT:'Noisefloor Cur Min Max\\n'"; +$radioId=1; +foreach(glob($config['rrd_dir'].'/'.$device['hostname'].'/xirrus_stats-*.rrd') as $rrd) { + // get radio name + preg_match("/xirrus_stats-iap([0-9]{1,2}).rrd/", $rrd, $out); + list(,$radioId)=$out; + + // build graph + $color=$pallette[$radioId]; + + $descr = "iap$radioId "; + + $rrd_options .= " DEF:noise$radioId=$rrd:noiseFloor:AVERAGE"; + $rrd_options .= " LINE2:noise$radioId#".$color.":'".$descr."'"; + $rrd_options .= " GPRINT:noise$radioId:LAST:'%5.0lf'"; + $rrd_options .= " GPRINT:noise$radioId:MIN:'%5.0lf'"; + $rrd_options .= " GPRINT:noise$radioId:MAX:'%5.0lf'\\l"; + + $radioId++; +}//end foreach diff --git a/html/includes/graphs/device/xirrus_rssi.inc.php b/html/includes/graphs/device/xirrus_rssi.inc.php new file mode 100644 index 0000000000..97e58e5a2b --- /dev/null +++ b/html/includes/graphs/device/xirrus_rssi.inc.php @@ -0,0 +1,44 @@ + 'FF0000', + 2 => '0000FF', + 3 => '00FF00', + 4 => 'FF00FF', + 5 => '000000', + 6 => 'FFFF00', + 7 => 'C0C0C0', + 8 => '800000', + 9 => '808000', + 10 => '008000', + 11 => '00FFFF', + 12 => '008080', + 13 => '000080', + 14 => '800080', + 15 => 'FF69B4', + 16 => '006400' +); + +$rrd_options .= ' -E '; +$rrd_options .= " COMMENT:'Signal RSSI Cur Min Max\\n'"; +$radioId=1; +foreach(glob($config['rrd_dir'].'/'.$device['hostname'].'/xirrus_stats-*.rrd') as $rrd) { + // get radio name + preg_match("/xirrus_stats-iap([0-9]{1,2}).rrd/", $rrd, $out); + list(,$radioId)=$out; + + // build graph + $color=$pallette[$radioId]; + + $descr = "iap$radioId "; + + $rrd_options .= " DEF:rssi$radioId=$rrd:rssi:AVERAGE"; + $rrd_options .= " LINE2:rssi$radioId#".$color.":'".$descr."'"; + $rrd_options .= " GPRINT:rssi$radioId:LAST:'%5.0lf'"; + $rrd_options .= " GPRINT:rssi$radioId:MIN:'%5.0lf'"; + $rrd_options .= " GPRINT:rssi$radioId:MAX:'%5.0lf'\\l"; + + $radioId++; +}//end foreach diff --git a/html/includes/graphs/device/xirrus_stations.inc.php b/html/includes/graphs/device/xirrus_stations.inc.php new file mode 100644 index 0000000000..ae7fb4a1d4 --- /dev/null +++ b/html/includes/graphs/device/xirrus_stations.inc.php @@ -0,0 +1,44 @@ + '001080', + 2 => '043D85', + 3 => '096C8A', + 4 => '0F8F84', + 5 => '159461', + 6 => '1B9A3E', + 7 => '279F22', + 8 => '56A429', + 9 => '83A930', + 10 => 'AEAE38', + 11 => 'B48E40', + 12 => 'B97049', + 13 => 'BE5552', + 14 => 'C35B79', + 15 => 'C864A1', + 16 => 'CE6FC7' +); + +$rrd_options .= ' -l 0 -E '; +$rrd_options .= " COMMENT:'Associated Stations Cur Min Max\\n'"; +$radioId=1; +foreach(glob($config['rrd_dir'].'/'.$device['hostname'].'/xirrus_users-*.rrd') as $rrd) { + // get radio name + preg_match("/xirrus_users-iap([0-9]{1,2}).rrd/", $rrd, $out); + list(,$radioId)=$out; + + // build graph + $color=$pallette[$radioId]; + + $descr = "iap$radioId "; + + $rrd_options .= " DEF:stations$radioId=$rrd:stations:AVERAGE"; + $rrd_options .= " AREA:stations$radioId#".$color.":'".$descr."':STACK"; + $rrd_options .= " GPRINT:stations$radioId:LAST:'%5.0lf'"; + $rrd_options .= " GPRINT:stations$radioId:MIN:'%5.0lf'"; + $rrd_options .= " GPRINT:stations$radioId:MAX:'%5.0lf'\\l"; + + $radioId++; +}//end foreach diff --git a/html/includes/graphs/generic_multi_data.inc.php b/html/includes/graphs/generic_multi_data.inc.php index d3ab6c2e21..eb28975b5b 100644 --- a/html/includes/graphs/generic_multi_data.inc.php +++ b/html/includes/graphs/generic_multi_data.inc.php @@ -87,14 +87,14 @@ if ($i) { // $rrd_options .= " LINE1.25:dout".$format."#".$colour_line_out.":"; } else { - $rrd_options .= ' AREA:in'.$format.'#'.$colour_area_in.':'; $rrd_options .= " COMMENT:'bps Now Ave Max 95th %\\n'"; + $rrd_options .= ' AREA:in'.$format.'#'.$colour_area_in.':In '; // $rrd_options .= " LINE1.25:in".$format."#".$colour_line_in.":In\ "; $rrd_options .= ' GPRINT:in'.$format.':LAST:%6.2lf%s'; $rrd_options .= ' GPRINT:in'.$format.':AVERAGE:%6.2lf%s'; $rrd_options .= ' GPRINT:in'.$format.':MAX:%6.2lf%s'; $rrd_options .= " GPRINT:95thin:%6.2lf%s\\\\n"; - $rrd_options .= ' AREA:dout'.$format.'#'.$colour_area_out.':'; + $rrd_options .= ' AREA:dout'.$format.'#'.$colour_area_out.':Out'; // $rrd_options .= " LINE1.25:dout".$format."#".$colour_line_out.":Out"; $rrd_options .= ' GPRINT:out'.$format.':LAST:%6.2lf%s'; $rrd_options .= ' GPRINT:out'.$format.':AVERAGE:%6.2lf%s'; diff --git a/html/includes/modal/alert_template.inc.php b/html/includes/modal/alert_template.inc.php index 8e96f3032a..533bafdae4 100644 --- a/html/includes/modal/alert_template.inc.php +++ b/html/includes/modal/alert_template.inc.php @@ -69,7 +69,7 @@ if(is_admin() === false) {

Placeholders:
'.$placeholder.''; } @@ -102,9 +102,10 @@ $('#alert-template').on('show.bs.modal', function (event) { var button = $(event.relatedTarget); var template_id = button.data('template_id'); var action = button.data('template_action'); - $('#template').val(); + $('#template').val(''); $('#line').val(''); $('#value').val(''); + $('#name').val(''); if(action == 'edit') { $('#template_id').val(template_id); $.ajax({ @@ -121,6 +122,9 @@ $('#alert-template').on('show.bs.modal', function (event) { }); } }); +$('#alert-template').on('hide.bs.modal', function(event) { + $('#template_id').val(''); +}); $('#create-template').click('', function(e) { e.preventDefault(); diff --git a/html/includes/modal/new_alert_rule.inc.php b/html/includes/modal/new_alert_rule.inc.php index dcd1783c1c..f82d8cb008 100644 --- a/html/includes/modal/new_alert_rule.inc.php +++ b/html/includes/modal/new_alert_rule.inc.php @@ -134,6 +134,12 @@ if(is_admin() !== false) {
+
+ +
+ +
+
@@ -219,6 +225,7 @@ $('#create-alert').on('show.bs.modal', function (event) { $("[name='mute']").bootstrapSwitch('state',extra['mute']); $("[name='invert']").bootstrapSwitch('state',extra['invert']); $('#name').val(output['name']); + $('#proc').val(output['proc']); } }); }); diff --git a/html/includes/print-map.inc.php b/html/includes/print-map.inc.php index 8470e7a32c..21c3850948 100644 --- a/html/includes/print-map.inc.php +++ b/html/includes/print-map.inc.php @@ -32,10 +32,10 @@ if (is_admin() === false && is_read() === false) { $sql_array[] = $_SESSION['user_id']; } -$tmp_devices = array(); -$tmp_ids = array(); -$tmp_links = array(); -$tmp_link_ids = array(); +$devices_by_id = array(); +$links = array(); +$link_assoc_seen = array(); +$device_assoc_seen = array(); $ports = array(); $devices = array(); @@ -74,12 +74,15 @@ if (in_array('mac',$config['network_map_items'])) { `P2`.`ifOperStatus` AS `remote_ifoperstatus`, `P2`.`ifAdminStatus` AS `remote_ifadminstatus`, `P2`.`ifInOctets_rate` AS `remote_ifinoctets_rate`, - `P2`.`ifOutOctets_rate` AS `remote_ifoutoctets_rate` + `P2`.`ifOutOctets_rate` AS `remote_ifoutoctets_rate`, + SUM(IF(`P2_ip`.`ipv4_address` = `M`.`ipv4_address`, 1, 0)) + AS `remote_matching_ips` FROM `ipv4_mac` AS `M` LEFT JOIN `ports` AS `P1` ON `P1`.`port_id`=`M`.`port_id` LEFT JOIN `ports` AS `P2` ON `P2`.`ifPhysAddress`=`M`.`mac_address` LEFT JOIN `devices` AS `D1` ON `P1`.`device_id`=`D1`.`device_id` LEFT JOIN `devices` AS `D2` ON `P2`.`device_id`=`D2`.`device_id` + LEFT JOIN `ipv4_addresses` AS `P2_ip` ON `P2_ip`.`port_id` = `P2`.`port_id` $join_sql WHERE `M`.`mac_address` NOT IN ('000000000000','ffffffffffff') AND @@ -89,6 +92,7 @@ if (in_array('mac',$config['network_map_items'])) { $where $sql GROUP BY `P1`.`port_id`,`P2`.`port_id` + ORDER BY `remote_matching_ips` DESC, `local_ifname`, `remote_ifname` ", $sql_array); } @@ -131,11 +135,14 @@ if (in_array('xdp', $config['network_map_items'])) { $where $sql GROUP BY `P1`.`port_id`,`P2`.`port_id` + ORDER BY `local_ifname`, `remote_ifname` ", $sql_array); } $list = array_merge($ports,$devices); +// Iterate though ports and links, generating a set of devices (nodes) +// and links (edges) that make up the topology graph. foreach ($list as $items) { $local_device = array('device_id'=>$items['local_device_id'], 'os'=>$items['local_os'], 'hostname'=>$items['local_hostname']); $remote_device = array('device_id'=>$items['remote_device_id'], 'os'=>$items['remote_os'], 'hostname'=>$items['remote_hostname']); @@ -143,14 +150,16 @@ foreach ($list as $items) { $local_port = array('port_id'=>$items['local_port_id'],'device_id'=>$items['local_port_device_id'],'ifName'=>$items['local_ifname'],'ifSpeed'=>$items['local_ifspeed'],'ifOperStatus'=>$items['local_ifoperstatus'],'ifAdminStatus'=>$items['local_adminstatus']); $remote_port = array('port_id'=>$items['remote_port_id'],'device_id'=>$items['remote_port_device_id'],'ifName'=>$items['remote_ifname'],'ifSpeed'=>$items['remote_ifspeed'],'ifOperStatus'=>$items['remote_ifoperstatus'],'ifAdminStatus'=>$items['remote_adminstatus']); - if (!in_array($items['local_device_id'],$tmp_ids)) { - $tmp_devices[] = array('id'=>$items['local_device_id'],'label'=>$items['local_hostname'],'title'=>generate_device_link($local_device,'',array(),'','','',0),'shape'=>'box'); + $local_device_id = $items['local_device_id']; + if (!array_key_exists($local_device_id, $devices_by_id)) { + $devices_by_id[$local_device_id] = array('id'=>$local_device_id,'label'=>$items['local_hostname'],'title'=>generate_device_link($local_device,'',array(),'','','',0),'shape'=>'box'); } - array_push($tmp_ids,$items['local_device_id']); - if (!in_array($items['remote_device_id'],$tmp_ids)) { - $tmp_devices[] = array('id'=>$items['remote_device_id'],'label'=>$items['remote_hostname'],'title'=>generate_device_link($remote_device,'',array(),'','','',0),'shape'=>'box'); + + $remote_device_id = $items['remote_device_id']; + if (!array_key_exists($remote_device_id, $devices_by_id)) { + $devices_by_id[$remote_device_id] = array('id'=>$remote_device_id,'label'=>$items['remote_hostname'],'title'=>generate_device_link($remote_device,'',array(),'','','',0),'shape'=>'box'); } - array_push($tmp_ids,$items['remote_device_id']); + $speed = $items['local_ifspeed']/1000/1000; if ($speed == 100) { $width = 3; @@ -183,22 +192,30 @@ foreach ($list as $items) { $link_used = 100; } $link_color = $config['network_map_legend'][$link_used]; - $id1 = $items['local_port_id'].':'.$items['remote_port_id']; - $id2 = $items['remote_port_id'].':'.$items['local_port_id']; - if (!in_array($id1,$tmp_link_ids) || !in_array($id2,$tmp_link_ids)) { + $link_id1 = $items['local_port_id'].':'.$items['remote_port_id']; + $link_id2 = $items['remote_port_id'].':'.$items['local_port_id']; + $device_id1 = $items['local_device_id'].':'.$items['remote_device_id']; + $device_id2 = $items['remote_device_id'].':'.$items['local_device_id']; + + // Ensure only one link exists between any two ports, or any two devices. + if (!array_key_exists($link_id1, $link_assoc_seen) && + !array_key_exists($link_id2, $link_assoc_seen) && + !array_key_exists($device_id1, $device_assoc_seen) && + !array_key_exists($device_id2, $device_assoc_seen)) { $local_port = ifNameDescr($local_port); $remote_port = ifNameDescr($remote_port); - $tmp_links[] = array('from'=>$items['local_device_id'],'to'=>$items['remote_device_id'],'label'=>shorten_interface_type($local_port['ifName']) . ' > ' . shorten_interface_type($remote_port['ifName']),'title'=>generate_port_link($local_port, "\n",'',0,1),'width'=>$width,'color'=>$link_color); + $links[] = array('from'=>$items['local_device_id'],'to'=>$items['remote_device_id'],'label'=>shorten_interface_type($local_port['ifName']) . ' > ' . shorten_interface_type($remote_port['ifName']),'title'=>generate_port_link($local_port, "\n",'',0,1),'width'=>$width,'color'=>$link_color); } - array_push($tmp_link_ids,$id1); - array_push($tmp_link_ids,$id2); + $link_assoc_seen[$link_id1] = 1; + $link_assoc_seen[$link_id2] = 1; + $device_assoc_seen[$device_id1] = 1; + $device_assoc_seen[$device_id2] = 1; } -$node_devices = $tmp_devices; -$nodes = json_encode($node_devices); -$edges = json_encode($tmp_links); +$nodes = json_encode(array_values($devices_by_id)); +$edges = json_encode($links); -if (count($node_devices) > 1 && count($tmp_links) > 0) { +if (count($devices_by_id) > 1 && count($links) > 0) { ?> diff --git a/html/includes/table/alerts.inc.php b/html/includes/table/alerts.inc.php index 43fb46a265..8431866cb6 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`, `devices`.`sysName` AS `sysName`,`alert_rules`.`rule` AS `rule`, `alert_rules`.`name` AS `name`, `alert_rules`.`severity` AS `severity` $sql"; +$sql = "SELECT `alerts`.*, `devices`.`hostname`, `devices`.`sysName`, `devices`.`hardware`, `devices`.`location`, `alert_rules`.`rule`, `alert_rules`.`name`, `alert_rules`.`severity` $sql"; $rulei = 0; $format = $_POST['format']; diff --git a/html/includes/table/devices.inc.php b/html/includes/table/devices.inc.php index e84c5dfdd9..3ebcf7a44c 100644 --- a/html/includes/table/devices.inc.php +++ b/html/includes/table/devices.inc.php @@ -87,7 +87,7 @@ if (!empty($_POST['group'])) { $sql .= ' AND ( '; foreach (GetDevicesFromGroup($_POST['group']) as $dev) { $sql .= '`devices`.`device_id` = ? OR '; - $param[] = $dev['device_id']; + $param[] = $dev; } $sql = substr($sql, 0, (strlen($sql) - 3)); diff --git a/html/index.php b/html/index.php index 46164c663b..1005a83900 100644 --- a/html/index.php +++ b/html/index.php @@ -13,11 +13,11 @@ */ if (empty($_SERVER['PATH_INFO'])) { - if( strstr($_SERVER['SERVER_SOFTWARE'],"nginx") ) { - $_SERVER['PATH_INFO'] = str_replace($_SERVER['PATH_TRANSLATED'].$_SERVER['PHP_SELF'],"",$_SERVER['ORIG_SCRIPT_FILENAME']); + if( strstr($_SERVER['SERVER_SOFTWARE'],"nginx") && isset($_SERVER['PATH_TRANSLATED']) && isset($_SERVER['ORIG_SCRIPT_FILENAME']) ) { + $_SERVER['PATH_INFO'] = str_replace($_SERVER['PATH_TRANSLATED'] . $_SERVER['PHP_SELF'], "", $_SERVER['ORIG_SCRIPT_FILENAME']); } else { - $_SERVER['PATH_INFO'] = !empty($_SERVER['ORIG_PATH_INFO']) ? $_SERVER['ORIG_PATH_INFO'] : ''; + $_SERVER['PATH_INFO'] = isset($_SERVER['ORIG_PATH_INFO']) ? $_SERVER['ORIG_PATH_INFO'] : ''; } } diff --git a/html/netcmd.php b/html/netcmd.php index c635552af3..c5c284e9dc 100644 --- a/html/netcmd.php +++ b/html/netcmd.php @@ -36,7 +36,7 @@ if (!$_SESSION['authenticated']) { $output = ''; if ($_GET['query'] && $_GET['cmd']) { $host = $_GET['query']; - if (Net_IPv6::checkIPv6($host) || Net_IPv4::validateip($host) || preg_match('/^[a-zA-Z0-9.-]*$/', $host)) { + if (Net_IPv6::checkIPv6($host) || Net_IPv4::validateip($host) || filter_var('http://'.$host, FILTER_VALIDATE_URL)) { switch ($_GET['cmd']) { case 'whois': $cmd = $config['whois']." $host | grep -v \%"; @@ -66,5 +66,5 @@ if ($_GET['query'] && $_GET['cmd']) { }//end if }//end if -$output = trim($output); +$output = htmlentities(trim($output), ENT_QUOTES); echo "
$output
"; diff --git a/html/network-map.php b/html/network-map.php index 040464c784..6506898478 100644 --- a/html/network-map.php +++ b/html/network-map.php @@ -44,7 +44,7 @@ if (is_array($config['branding'])) { } } -if (isset($_GET['device'])) { +if (is_numeric($_GET['device']) && isset($_GET['device'])) { $where = 'WHERE device_id = '.mres($_GET['device']); } else { diff --git a/html/pages/addsrv.inc.php b/html/pages/addsrv.inc.php index e75ff24fd9..7a360bfb7d 100644 --- a/html/pages/addsrv.inc.php +++ b/html/pages/addsrv.inc.php @@ -16,15 +16,11 @@ else { } } - if ($handle = opendir($config['nagios_plugins'])) { - while (false !== ($file = readdir($handle))) { - if ($file != '.' && $file != '..' && !strstr($file, '.') && strstr($file, 'check_')) { - list(,$check_name) = explode('_',$file,2); - $servicesform .= ""; - } + foreach (scandir($config['nagios_plugins']) as $file) { + if (substr($file, 0, 6) === 'check_') { + $check_name = substr($file, 6); + $servicesform .= ""; } - - closedir($handle); } foreach (dbFetchRows('SELECT * FROM `devices` ORDER BY `hostname`') as $device) { diff --git a/html/pages/apps.inc.php b/html/pages/apps.inc.php index cfd2378dde..e0843279b6 100644 --- a/html/pages/apps.inc.php +++ b/html/pages/apps.inc.php @@ -33,6 +33,13 @@ $graphs['nginx'] = array( 'req', ); +$graphs['rrdcached'] = array( + 'queue_length', + 'events', + 'tree', + 'journal' +); + $graphs['bind'] = array('queries'); $graphs['tinydns'] = array( diff --git a/html/pages/customers.inc.php b/html/pages/customers.inc.php index 40277817e1..a23fbf26b3 100644 --- a/html/pages/customers.inc.php +++ b/html/pages/customers.inc.php @@ -29,6 +29,6 @@ $pagetitle[] = 'Customers'; id: "customers", }; }, - url: "/ajax_table.php" + url: "ajax_table.php" }); diff --git a/html/pages/device/apps/rrdcached.inc.php b/html/pages/device/apps/rrdcached.inc.php new file mode 100644 index 0000000000..4263346a82 --- /dev/null +++ b/html/pages/device/apps/rrdcached.inc.php @@ -0,0 +1,52 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2016 Tony Murray + * @author Tony Murray + */ + +global $config; + +$graphs = array( + 'rrdcached_queue_length' => 'Queue Length', + 'rrdcached_events' => 'Events', + 'rrdcached_tree' => 'Tree', + 'rrdcached_journal' => 'Journal', +); + +foreach ($graphs as $key => $text) { + $graph_array['height'] = '100'; + $graph_array['width'] = '215'; + $graph_array['to'] = $config['time']['now']; + $graph_array['id'] = $app['app_id']; + $graph_array['type'] = 'application_'.$key; + + echo '
+
+

'.$text.'

+
+
+
'; + include 'includes/print-graphrow.inc.php'; + echo '
'; + echo '
'; + echo '
'; +} diff --git a/html/pages/device/edit/apps.inc.php b/html/pages/device/edit/apps.inc.php index 03b0ca5f48..cac2468608 100644 --- a/html/pages/device/edit/apps.inc.php +++ b/html/pages/device/edit/apps.inc.php @@ -2,14 +2,10 @@ " }; }, - url: "/ajax_table.php" + url: "ajax_table.php" }); diff --git a/html/pages/device/edit/modules.inc.php b/html/pages/device/edit/modules.inc.php index e433dd037c..3894d7607f 100644 --- a/html/pages/device/edit/modules.inc.php +++ b/html/pages/device/edit/modules.inc.php @@ -18,7 +18,9 @@ $module_status) { +$poller_modules = $config['poller_modules']; +ksort($poller_modules); +foreach ($poller_modules as $module => $module_status) { echo(' '.$module.' @@ -86,7 +88,9 @@ foreach ($config['poller_modules'] as $module => $module_status) { $module_status) { +$discovery_modules = $config['discovery_modules']; +ksort($discovery_modules); +foreach ($discovery_modules as $module => $module_status) { echo(' diff --git a/html/pages/device/edit/services.inc.php b/html/pages/device/edit/services.inc.php index e480f88edb..8a7f5ac4ee 100644 --- a/html/pages/device/edit/services.inc.php +++ b/html/pages/device/edit/services.inc.php @@ -14,14 +14,11 @@ if (is_admin() === true || is_read() === true) { } // Build the types list. - if ($handle = opendir($config['nagios_plugins'])) { - while (false !== ($file = readdir($handle))) { - if ($file != '.' && $file != '..' && !strstr($file, '.') && strstr($file, 'check_')) { - list(,$check_name) = explode('_',$file,2); - $servicesform .= ""; - } + foreach (scandir($config['nagios_plugins']) as $file) { + if (substr($file, 0, 6) === 'check_') { + $check_name = substr($file, 6); + $servicesform .= ""; } - closedir($handle); } $dev = device_by_id_cache($device['device_id']); diff --git a/html/pages/device/edit/snmp.inc.php b/html/pages/device/edit/snmp.inc.php index b2749069a5..d3af2ac0d2 100644 --- a/html/pages/device/edit/snmp.inc.php +++ b/html/pages/device/edit/snmp.inc.php @@ -92,7 +92,7 @@ echo "
- +
' data-storage_id='"+row.storage_id+"' value='"+row.storage_perc_warn+"'>
"; @@ -58,7 +58,7 @@ var $this = $(this); $.ajax({ type: 'POST', - url: '/ajax_form.php', + url: 'ajax_form.php', data: {type: "storage-update", device_id: device_id, data: data, storage_id: storage_id}, dataType: "json", success: function (data) { diff --git a/html/pages/device/mib.inc.php b/html/pages/device/mib.inc.php index 19131cdd09..a920702950 100644 --- a/html/pages/device/mib.inc.php +++ b/html/pages/device/mib.inc.php @@ -61,7 +61,7 @@ if (is_module_enabled('poller', 'mib')) { device_id: '', }; }, - url: "/ajax_table.php", + url: "ajax_table.php", formatters: { }, templates: { @@ -80,7 +80,7 @@ if (is_module_enabled('poller', 'mib')) { device_id: '', }; }, - url: "/ajax_table.php", + url: "ajax_table.php", formatters: { }, templates: { diff --git a/html/pages/device/showconfig.inc.php b/html/pages/device/showconfig.inc.php index 917e85f1bb..7ae4bd5a21 100644 --- a/html/pages/device/showconfig.inc.php +++ b/html/pages/device/showconfig.inc.php @@ -103,10 +103,30 @@ if (is_admin()) { } } else if ($config['oxidized']['enabled'] === true && isset($config['oxidized']['url'])) { + // Try with hostname as set in librenms first + $oxidized_hostname = $device['hostname']; // fetch info about the node and then a list of versions for that node - $node_info = json_decode(file_get_contents($config['oxidized']['url'].'/node/show/'.$device['hostname'].'?format=json'), true); + $node_info = json_decode(file_get_contents($config['oxidized']['url'].'/node/show/'.$oxidized_hostname.'?format=json'), true); + + // Try other hostname format if Oxidized request failed + if (! $node_info) { + // Adjust hostname based on whether domain was already in it or not + if (strpos($oxidized_hostname, '.') !== false) { + // Use short name + $oxidized_hostname = strtok($device['hostname'], '.'); + } + elseif($config['mydomain']) { + $oxidized_hostname = $device['hostname'].'.'.$config['mydomain']; + } + + // Try Oxidized again with new hostname, if it has changed + if ($oxidized_hostname != $device['hostname']) { + $node_info = json_decode(file_get_contents($config['oxidized']['url'].'/node/show/'.$oxidized_hostname.'?format=json'), true); + } + } + if ($config['oxidized']['features']['versioning'] === true) { // fetch a list of versions - $config_versions = json_decode(file_get_contents($config['oxidized']['url'].'/node/version?node_full='.(isset($node_info['full_name']) ? $node_info['full_name'] : $device['hostname']).'&format=json'), true); + $config_versions = json_decode(file_get_contents($config['oxidized']['url'].'/node/version?node_full='.(isset($node_info['full_name']) ? $node_info['full_name'] : $oxidized_hostname).'&format=json'), true); } $config_total = 1; @@ -147,7 +167,7 @@ if (is_admin()) { } if (isset($previous_config)) { - $url = $config['oxidized']['url'].'/node/version/diffs?node='.$device['hostname'].'&group='; + $url = $config['oxidized']['url'].'/node/version/diffs?node='.$oxidized_hostname.'&group='; if (!empty($node_info['group'])) { $url .= $node_info['group']; } @@ -156,11 +176,11 @@ if (is_admin()) { $text = file_get_contents($url); // fetch diff } else { // fetch current_version - $text = file_get_contents($config['oxidized']['url'].'/node/version/view?node='.$device['hostname'].'&group='.(!empty($node_info['group']) ? $node_info['group'] : '').'&oid='.$current_config['oid'].'&date='.urlencode($current_config['date']).'&num='.$current_config['version'].'&format=text'); + $text = file_get_contents($config['oxidized']['url'].'/node/version/view?node='.$oxidized_hostname.'&group='.(!empty($node_info['group']) ? $node_info['group'] : '').'&oid='.$current_config['oid'].'&date='.urlencode($current_config['date']).'&num='.$current_config['version'].'&format=text'); } } else { // just fetch the only version - $text = file_get_contents($config['oxidized']['url'].'/node/fetch/'.(!empty($node_info['group']) ? $node_info['group'].'/' : '').$device['hostname']); + $text = file_get_contents($config['oxidized']['url'].'/node/fetch/'.(!empty($node_info['group']) ? $node_info['group'].'/' : '').$oxidized_hostname); } diff --git a/html/pages/devices.inc.php b/html/pages/devices.inc.php index 6d446d5c1d..61f5d1d15d 100644 --- a/html/pages/devices.inc.php +++ b/html/pages/devices.inc.php @@ -200,7 +200,7 @@ if($format == "graph") { $where .= " AND ( "; foreach( GetDevicesFromGroup($vars['group']) as $dev ) { $where .= "device_id = ? OR "; - $sql_param[] = $dev['device_id']; + $sql_param[] = $dev; } $where = substr($where, 0, strlen($where)-3); $where .= " )"; diff --git a/html/pages/front/tiles.php b/html/pages/front/tiles.php index 1b0207bd9d..c5d4a08784 100644 --- a/html/pages/front/tiles.php +++ b/html/pages/front/tiles.php @@ -169,7 +169,7 @@ foreach (array('Private','Shared (Read)','Shared') as $k=>$v) { @@ -316,7 +316,7 @@ foreach (dbFetchRows("SELECT * FROM `widgets` ORDER BY `widget_title`") as $widg }); }); - $('a[name="place_widget"]').on('click', function(event, state) { + $('.place_widget').on('click', function(event, state) { var widget_id = $(this).data('widget_id'); $.ajax({ type: 'POST', @@ -458,11 +458,11 @@ foreach (dbFetchRows("SELECT * FROM `widgets` ORDER BY `widget_title`") as $widg '
'+data.title+ ''+ ''+ - '  '+ - '  '+ + '  '+ + '  '+ ''+ '
'+ - '
'+data.widget+'
'+ + '
'+data.widget+'
'+ '\var timeout'+data.user_widget_id+' = grab_data('+data.user_widget_id+','+data.refresh+',\''+data.widget+'\');\<\/script\>'+ ''; if (data.hasOwnProperty('col') && data.hasOwnProperty('row')) { @@ -506,6 +506,7 @@ foreach (dbFetchRows("SELECT * FROM `widgets` ORDER BY `widget_title`") as $widg } }); } + return false; } function widget_reload(id,data_type) { diff --git a/html/pages/mib_assoc.inc.php b/html/pages/mib_assoc.inc.php index 3296c7518a..d9626a2f37 100644 --- a/html/pages/mib_assoc.inc.php +++ b/html/pages/mib_assoc.inc.php @@ -41,7 +41,7 @@ if (is_module_enabled('poller', 'mib')) { id: "device_mibs", }; }, - url: "/ajax_table.php", + url: "ajax_table.php", formatters: { }, templates: { diff --git a/html/pages/mibs.inc.php b/html/pages/mibs.inc.php index 6c7c6e8518..a9e2da4687 100644 --- a/html/pages/mibs.inc.php +++ b/html/pages/mibs.inc.php @@ -47,7 +47,7 @@ if (is_module_enabled('poller', 'mib')) { view: '' }; }, - url: "/ajax_table.php", + url: "ajax_table.php", formatters: { }, templates: { diff --git a/includes/alerts/transport.hipchat.php b/includes/alerts/transport.hipchat.php index a829004c4b..1bc9bd48c4 100644 --- a/includes/alerts/transport.hipchat.php +++ b/includes/alerts/transport.hipchat.php @@ -21,6 +21,7 @@ * @subpackage Alerts */ +// loop through each room foreach($opts as $option) { $url = $option['url']; foreach($obj as $key=>$value) { @@ -36,20 +37,25 @@ foreach($opts as $option) { $option["message_format"] = 'text'; } + // Sane default of making the message color green if the message indicates + // that the alert recovered. If it rebooted, make it yellow. + if(stripos($obj["msg"], "recovered")) { + $color = "green"; + } elseif(stripos($obj["msg"], "rebooted")) { + $color = "yellow"; + } else { + $color = $option["color"]; + } + $data[] = "message=".urlencode($obj["msg"]); $data[] = "room_id=".urlencode($option["room_id"]); $data[] = "from=".urlencode($option["from"]); - $data[] = "color=".urlencode($option["color"]); + $data[] = "color=".urlencode($color); $data[] = "notify=".urlencode($option["notify"]); $data[] = "message_format=".urlencode($option["message_format"]); $data = implode('&', $data); - // Sane default of making the message color green if the message indicates - // that the alert recovered. - if(strstr($data["message"], "recovered")) { - $data["color"] = "green"; - } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, true); diff --git a/includes/alerts/transport.slack.php b/includes/alerts/transport.slack.php index cbb9101211..3d295b01a7 100644 --- a/includes/alerts/transport.slack.php +++ b/includes/alerts/transport.slack.php @@ -23,9 +23,6 @@ foreach( $opts as $tmp_api ) { $host = $tmp_api['url']; - foreach( $obj as $k=>$v ) { - $api = str_replace("%".$k,$method == "get" ? urlencode($v) : $v, $api); - } $curl = curl_init(); $data = array( 'text' => $obj['msg'], @@ -34,11 +31,15 @@ foreach( $opts as $tmp_api ) { 'icon_url' => $tmp_api['icon_url'], 'icon_emoji' => $tmp_api['icon_emoji'], ); - $alert_message = "payload=" . json_encode($data); + $alert_message = json_encode($data); + curl_setopt($curl, CURLOPT_HTTPHEADER, array( + 'Content-Type: application/json') + ); curl_setopt($curl, CURLOPT_URL, $host); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST,true); curl_setopt($curl, CURLOPT_POSTFIELDS, $alert_message ); + $ret = curl_exec($curl); $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if( $code != 200 ) { diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php index 83cb9d80f5..3f01b97680 100644 --- a/includes/defaults.inc.php +++ b/includes/defaults.inc.php @@ -793,6 +793,10 @@ $config['dateformat']['mysql']['time'] = '%H:%i:%s'; $config['enable_clear_discovery'] = 1; // Set this to 0 if you want to disable the web option to rediscover devices $config['force_ip_to_sysname'] = false;// Set to true if you want to use sysName in place of IPs + +// Allow duplicate devices by sysName +$config['allow_duplicate_sysName'] = true;// Set to false if you want to only allow unique sysName's + $config['enable_port_relationship'] = true; // Set this to false to not display neighbour relationships for ports $config['enable_footer'] = 1; @@ -876,3 +880,6 @@ $config['ignore_unmapable_port'] = False; $config['influxdb']['timeout'] = 0; $config['influxdb']['verifySSL'] = false; +// Xirrus - Disable station/client polling if true as it may take a long time on larger/heavily used APs. +$config['xirrus_disable_stations'] = false; + diff --git a/includes/definitions.inc.php b/includes/definitions.inc.php index fe53e37ed2..9dfeb35653 100644 --- a/includes/definitions.inc.php +++ b/includes/definitions.inc.php @@ -268,6 +268,13 @@ $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 = 'buffalo'; +$config['os'][$os]['text'] = 'Buffalo'; +$config['os'][$os]['type'] = 'storage'; +$config['os'][$os]['icon'] = 'buffalo'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Device Traffic'; + // Other Unix-based OSes here please. $os = 'freebsd'; $config['os'][$os]['type'] = 'server'; @@ -358,6 +365,15 @@ $config['os'][$os]['icon'] = 'barracuda'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Traffic'; +$os = 'barracudangfirewall'; +$config['os'][$os]['text'] = 'Barracuda NG Firewall'; +$config['os'][$os]['type'] = 'firewall'; +$config['os'][$os]['icon'] = 'barracuda'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Traffic'; + + + // Calix $os = 'calix'; $config['os'][$os]['text'] = 'Calix E7'; @@ -726,6 +742,17 @@ $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 = 'swos'; +$config['os'][$os]['text'] = 'Mikrotik SwOS'; +$config['os'][$os]['type'] = 'network'; +$config['os'][$os]['nobulk'] = 1; +$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'] = 'CPU Usage'; +$config['os'][$os]['over'][2]['graph'] = 'device_mempool'; +$config['os'][$os]['over'][2]['text'] = 'Memory Usage'; + $os = 'bintec-smart'; $config['os'][$os]['text'] = 'Bintec Smart Router'; $config['os'][$os]['type'] = 'network'; @@ -922,6 +949,8 @@ $config['os'][$os]['text'] = 'Dell EqualLogic'; $config['os'][$os]['icon'] = 'dell'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Device Traffic'; +$config['os'][$os]['over'][1]['graph'] = 'device_storage'; +$config['os'][$os]['over'][1]['text'] = 'Storage Usage'; $os = 'drac'; $config['os'][$os]['text'] = 'Dell DRAC'; @@ -1027,6 +1056,17 @@ $config['os'][$os]['text'] = 'Blade Network Technologies'; $config['os'][$os]['type'] = 'network'; $config['os'][$os]['icon'] = 'bnt'; +$os = 'ibm-imm'; +$config['os'][$os]['text'] = 'IBM IMM'; +$config['os'][$os]['type'] = 'appliance'; +$config['os'][$os]['icon'] = 'ibmnos'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Traffic'; +$config['os'][$os]['over'][1]['graph'] = 'device_processor'; +$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 = 'ibmnos'; $config['os'][$os]['text'] = 'IBM Networking Operating System'; $config['os'][$os]['type'] = 'network'; @@ -1041,6 +1081,13 @@ $config['os'][$os]['icon'] = 'generic'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Traffic'; +$os = 'informos'; +$config['os'][$os]['text'] = 'HPE 3PAR'; +$config['os'][$os]['type'] = 'storage'; +$config['os'][$os]['icon'] = 'hp'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Traffic'; + $os = 'comware'; $config['os'][$os]['text'] = 'HP Comware'; $config['os'][$os]['type'] = 'network'; @@ -1365,6 +1412,13 @@ $config['os'][$os]['over'][0]['graph'] = 'device_current'; $config['os'][$os]['over'][0]['text'] = 'Current'; $config['os'][$os]['icon'] = 'servertech'; +$os = 'sentry4'; +$config['os'][$os]['text'] = 'ServerTech Sentry4'; +$config['os'][$os]['type'] = 'power'; +$config['os'][$os]['over'][0]['graph'] = 'device_current'; +$config['os'][$os]['over'][0]['text'] = 'Current'; +$config['os'][$os]['icon'] = 'servertech'; + $os = 'raritan'; $config['os'][$os]['text'] = 'Raritan PDU'; $config['os'][$os]['type'] = 'power'; @@ -1583,6 +1637,18 @@ $config['os'][$os]['icon'] = 'generic'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Traffic'; +// HP Blade Management +$os = 'hpblmos'; +$config['os'][$os]['text'] = 'HP Blade Management'; +$config['os'][$os]['type'] = 'appliance'; +$config['os'][$os]['icon'] = 'hp'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Traffic'; +$config['os'][$os]['over'][1]['graph'] = 'device_processor'; +$config['os'][$os]['over'][1]['text'] = 'CPU Usage'; +$config['os'][$os]['over'][2]['graph'] = 'device_mempool'; +$config['os'][$os]['over'][2]['text'] = 'Memory Usage'; + // HP MSM $os = 'hpmsm'; $config['os'][$os]['text'] = 'HP MSM'; @@ -1616,10 +1682,18 @@ $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Traffic'; // HWGroup Poseidon -$os = 'poseidon'; -$config['os'][$os]['text'] = 'Poseidon'; +$os = 'hwg-poseidon'; +$config['os'][$os]['text'] = 'HWg Poseidon'; $config['os'][$os]['type'] = 'environment'; -$config['os'][$os]['icon'] = 'poseidon'; +$config['os'][$os]['icon'] = 'hwg-poseidon'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Traffic'; + +// HWGroup STE +$os = 'hwg-ste'; +$config['os'][$os]['text'] = 'HWg STE'; +$config['os'][$os]['type'] = 'environment'; +$config['os'][$os]['icon'] = 'hwg'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Traffic'; @@ -1648,6 +1722,18 @@ $config['os'][$os]['text'] = 'Infoblox'; $config['os'][$os]['type'] = 'appliance'; $config['os'][$os]['icon'] = 'infoblox'; +// Oracle ILOM +$os = 'oracle-ilom'; +$config['os'][$os]['text'] = 'Oracle ILOM'; +$config['os'][$os]['type'] = 'appliance'; +$config['os'][$os]['icon'] = 'oracle'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Traffic'; +$config['os'][$os]['over'][1]['graph'] = 'device_processor'; +$config['os'][$os]['over'][1]['text'] = 'CPU Usage'; +$config['os'][$os]['over'][2]['graph'] = 'device_mempool'; +$config['os'][$os]['over'][2]['text'] = 'Memory Usage'; + // Lenovo EMC (NAS) $os = 'lenovoemc'; $config['os'][$os]['type'] = 'storage'; @@ -1669,6 +1755,21 @@ $config['os'][$os]['icon'] = 'deliberant'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Device Traffic'; +// Xirrus AP +$os = 'xirrus_aos'; +$config['os'][$os]['text'] = 'Xirrus ArrayOS'; +$config['os'][$os]['type'] = 'wireless'; +$config['os'][$os]['icon'] = 'xirrus'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Device Traffic'; +$config['os'][$os]['over'][1]['graph'] = 'device_xirrus_stations'; +$config['os'][$os]['over'][1]['text'] = 'Wifi Clients'; +$config['os'][$os]['over'][2]['graph'] = 'device_xirrus_rssi'; +$config['os'][$os]['over'][2]['text'] = 'Signal RSSI'; + + + + // Graph Types require_once $config['install_dir'].'/includes/load_db_graph_types.inc.php'; @@ -2142,6 +2243,21 @@ $config['graph_types']['device']['cisco_wwan_mnc']['section'] = 'wireless'; $config['graph_types']['device']['cisco_wwan_mnc']['order'] = '1'; $config['graph_types']['device']['cisco_wwan_mnc']['descr'] = 'MNC'; +$config['graph_types']['device']['xirrus_rssi']['section'] = 'wireless'; +$config['graph_types']['device']['xirrus_rssi']['order'] = '0'; +$config['graph_types']['device']['xirrus_rssi']['descr'] = 'Signal Rssi'; +$config['graph_types']['device']['xirrus_dataRates']['section'] = 'wireless'; +$config['graph_types']['device']['xirrus_dataRates']['order'] = '0'; +$config['graph_types']['device']['xirrus_dataRates']['descr'] = 'Average DataRates'; +$config['graph_types']['device']['xirrus_noiseFloor']['section'] = 'wireless'; +$config['graph_types']['device']['xirrus_noiseFloor']['order'] = '0'; +$config['graph_types']['device']['xirrus_noiseFloor']['descr'] = 'Noise Floor'; +$config['graph_types']['device']['xirrus_stations']['section'] = 'wireless'; +$config['graph_types']['device']['xirrus_stations']['order'] = '0'; +$config['graph_types']['device']['xirrus_stations']['descr'] = 'Associated Stations'; + + + // Device Types $i = 0; diff --git a/includes/device-groups.inc.php b/includes/device-groups.inc.php index 3624db490c..c4651e59ee 100644 --- a/includes/device-groups.inc.php +++ b/includes/device-groups.inc.php @@ -18,13 +18,59 @@ /** * Device-Grouping * @author Daniel Preussker - * @copyright 2015 f0o, LibreNMS + * @author Tony Murray + * @copyright 2016 f0o, murrant, LibreNMS * @license GPL * @package LibreNMS * @subpackage Devices */ +/** + * Add a new device group + * @param $pattern + * @param $name + * @param $desc + * @return int|string + */ +function AddDeviceGroup($name, $desc, $pattern) +{ + $group_id = dbInsert(array('name' => $name, 'desc' => $desc, 'pattern' => $pattern), 'device_groups'); + if ($group_id) { + UpdateDeviceGroup($group_id); + } + return $group_id; +} + +/** + * Update a device group + * @param $group_id + * @param $pattern + * @param $name + * @param $desc + * @return bool + */ +function EditDeviceGroup($group_id, $name = null, $desc = null, $pattern = null) +{ + $vars = array(); + if (!is_null($name)) { + $vars['name'] = $name; + } + if (!is_null($desc)) { + $vars['desc'] = $desc; + } + if (!is_null($pattern)) { + $vars['pattern'] = $pattern; + } + + $success = dbUpdate($vars, 'device_groups', 'id=?', array($group_id)) >= 0; + + if ($success) { + UpdateDeviceGroup($group_id); + } + return $success; +} + /** * Generate SQL from Group-Pattern * @param string $pattern Pattern to generate SQL for @@ -77,22 +123,38 @@ function GenGroupSQL($pattern, $search='',$extra=0) { /** - * Get all devices of Group + * Run the group queries again to get fresh list of devices for this group * @param integer $group_id Group-ID * @return string */ -function GetDevicesFromGroup($group_id) { - $pattern = dbFetchCell('SELECT pattern FROM device_groups WHERE id = ?', array($group_id)); +function QueryDevicesFromGroup($group_id) +{ + $pattern = dbFetchCell('SELECT pattern FROM device_groups WHERE id = ?', array($group_id)); $pattern = rtrim($pattern, '&&'); $pattern = rtrim($pattern, '||'); if (!empty($pattern)) { - return dbFetchRows(GenGroupSQL($pattern)); + return dbFetchColumn(GenGroupSQL($pattern)); } return false; -}//end GetDevicesFromGroup() +}//end QueryDevicesFromGroup() +/** + * Get an array of all the device ids belonging to this group_id + * @param $group_id + * @param bool $nested Return an array of arrays containing 'device_id'. (for API compatibility) + * @return array + */ +function GetDevicesFromGroup($group_id, $nested = false) +{ + $query = 'SELECT `device_id` FROM `device_group_device` WHERE `device_group_id`=?'; + if ($nested) { + return dbFetchRows($query, array($group_id)); + } else { + return dbFetchColumn($query, array($group_id)); + } +}//end GetDevicesFromGroup() /** * Get all Device-Groups @@ -104,14 +166,15 @@ function GetDeviceGroups() { }//end GetDeviceGroups() /** - * Get all groups of Device - * @param integer $device Device-ID + * Run the group queries again to get fresh list of groups for this device + * @param integer $device_id Device-ID + * @param int $extra Return extra info about the groups (name, desc, pattern) * @return array */ -function GetGroupsFromDevice($device,$extra=0) { +function QueryGroupsFromDevice($device_id,$extra=0) { $ret = array(); foreach (GetDeviceGroups() as $group) { - if (dbFetchCell(GenGroupSQL($group['pattern'], 'device_id=?',$extra).' LIMIT 1', array($device)) == $device) { + if (dbFetchCell(GenGroupSQL($group['pattern'], 'device_id=?',$extra).' LIMIT 1', array($device_id)) == $device_id) { if ($extra === 0) { $ret[] = $group['id']; } @@ -123,7 +186,24 @@ function GetGroupsFromDevice($device,$extra=0) { return $ret; -}//end GetGroupsFromDevice() +}//end QueryGroupsFromDevice() + +/** + * Get the Device Group IDs of a Device from the database + * @param $device_id + * @param int $extra Return extra info about the groups (name, desc, pattern) + * @return array + */ +function GetGroupsFromDevice($device_id, $extra = 0) +{ + $ret = array(); + if ($extra === 0) { + $ret = dbFetchColumn('SELECT `device_group_id` FROM `device_group_device` WHERE `device_id`=?', array($device_id)); + } else { + $ret = dbFetchRows('SELECT `device_groups`.* FROM `device_group_device` LEFT JOIN `device_groups` ON `device_group_device`.`device_group_id`=`device_groups`.`id` WHERE `device_group_device`.`device_id`=?', array($device_id)); + } + return $ret; +}//end GetGroupsFromDeviceDB() /** * Process Macros @@ -148,3 +228,63 @@ function RunGroupMacros($rule,$x=1) { } return $rule; }//end RunGroupMacros() + + +/** + * Update device-group relationship for the given device id + * @param $device_id + */ +function UpdateGroupsForDevice($device_id) +{ + global $debug; + $debug = true; + $queried_groups = QueryGroupsFromDevice($device_id); + $db_groups = GetGroupsFromDevice($device_id); + + // compare the arrays to get the added and removed groups + $added_groups = array_diff($queried_groups, $db_groups); + $removed_groups = array_diff($db_groups, $queried_groups); + + // insert new groups + $insert = array(); + foreach ($added_groups as $group_id) { + $insert[] = array('device_id' => $device_id, 'device_group_id' => $group_id); + } + if (!empty($insert)) { + dbBulkInsert($insert, 'device_group_device'); + } + + // remove old groups + if (!empty($removed_groups)) { + dbDelete('device_group_device', '`device_id`=? AND `device_group_id` IN (?)', array($device_id, array(implode(',', $removed_groups)))); + } + +} + +/** + * Update the device-group relationship for the given group id + * @param $group_id + */ +function UpdateDeviceGroup($group_id) +{ + $queried_devices = QueryDevicesFromGroup($group_id); + $db_devices = GetDevicesFromGroup($group_id); + + // compare the arrays to get the added and removed devices + $added_devices = array_diff($queried_devices, $db_devices); + $removed_devices = array_diff($db_devices, $queried_devices); + + // insert new devices + $insert = array(); + foreach ($added_devices as $device_id) { + $insert[] = array('device_id' => $device_id, 'device_group_id' => $group_id); + } + if (!empty($insert)) { + dbBulkInsert($insert, 'device_group_device'); + } + + // remove old devices + if (!empty($removed_devices)) { + dbDelete('device_group_device', '`device_group_id`=? AND `device_id` IN (?)', array($group_id, array(implode(',', $removed_devices)))); + } +} diff --git a/includes/discovery/bgp-peers.inc.php b/includes/discovery/bgp-peers.inc.php index 1b87eaecf5..99f5fc8bc6 100644 --- a/includes/discovery/bgp-peers.inc.php +++ b/includes/discovery/bgp-peers.inc.php @@ -1,234 +1,245 @@ null)); + } $bgpLocalAs = trim(snmp_walk($device, '.1.3.6.1.2.1.15.2', '-Oqvn', 'BGP4-MIB', $config['mibdir'])); - if (is_numeric($bgpLocalAs)) { - echo "AS$bgpLocalAs "; - - if ($bgpLocalAs != $device['bgpLocalAs']) { - dbUpdate(array('bgpLocalAs' => $bgpLocalAs), 'devices', 'device_id=?', array($device['device_id'])); - echo 'Updated AS '; - } - - $peer2 = false; - $peers_data = snmp_walk($device, 'cbgpPeer2RemoteAs', '-Oq', 'CISCO-BGP4-MIB', $config['mibdir']); - if (empty($peers_data)) { - $peers_data = snmp_walk($device, 'BGP4-MIB::bgpPeerRemoteAs', '-Oq', 'BGP4-MIB', $config['mibdir']); - } - else { - $peer2 = true; - } - - d_echo("Peers : $peers_data \n"); - - $peers = trim(str_replace('CISCO-BGP4-MIB::cbgpPeer2RemoteAs.', '', $peers_data)); - $peers = trim(str_replace('BGP4-MIB::bgpPeerRemoteAs.', '', $peers)); - - foreach (explode("\n", $peers) as $peer) { - if ($peer2 === true) { - list($ver, $peer) = explode('.', $peer, 2); - } - - list($peer_ip, $peer_as) = explode(' ', $peer); - if (strstr($peer_ip, ':')) { - $peer_ip_snmp = preg_replace('/:/', ' ', $peer_ip); - $peer_ip = preg_replace('/(\S+\s+\S+)\s/', '$1:', $peer_ip_snmp); - $peer_ip = str_replace('"', '', str_replace(' ', '', $peer_ip)); - } - - if ($peer && $peer_ip != '0.0.0.0') { - d_echo("Found peer $peer_ip (AS$peer_as)\n"); - - $peerlist[] = array( - 'ip' => $peer_ip, - 'as' => $peer_as, - 'ver' => $ver, - ); - } - } - - if ($device['os'] == 'junos') { - // Juniper BGP4-V2 MIB - // FIXME: needs a big cleanup! also see below. - // FIXME: is .0.ipv6 the only possible value here? - $result = snmp_walk($device, 'jnxBgpM2PeerRemoteAs.0.ipv6', '-Onq', 'BGP4-V2-MIB-JUNIPER', $config['install_dir'].'/mibs/junos'); - $peers = trim(str_replace('.1.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.', '', $result)); - foreach (explode("\n", $peers) as $peer) { - list($peer_ip_snmp, $peer_as) = explode(' ', $peer); - - // Magic! Basically, takes SNMP form and finds peer IPs from the walk OIDs. - $peer_ip = Net_IPv6::compress(snmp2ipv6(implode('.', array_slice(explode('.', $peer_ip_snmp), (count(explode('.', $peer_ip_snmp)) - 16))))); - - if ($peer) { - d_echo("Found peer $peer_ip (AS$peer_as)\n"); - - $peerlist[] = array( - 'ip' => $peer_ip, - 'as' => $peer_as, - ); - } - } - } - } - else { - echo 'No BGP on host'; - if ($device['bgpLocalAs']) { - dbUpdate(array('bgpLocalAs' => 'NULL'), 'devices', 'device_id=?', array($device['device_id'])); - echo ' (Removed ASN) '; - } - } - - // Process disovered peers - if (isset($peerlist)) { - foreach ($peerlist as $peer) { - $astext = get_astext($peer['as']); - - if (dbFetchCell('SELECT COUNT(*) from `bgpPeers` WHERE device_id = ? AND bgpPeerIdentifier = ?', array($device['device_id'], $peer['ip'])) < '1') { - $add = dbInsert(array('device_id' => $device['device_id'], 'bgpPeerIdentifier' => $peer['ip'], 'bgpPeerRemoteAs' => $peer['as']), 'bgpPeers'); - if ($config['autodiscovery']['bgp'] === true) { - $name = gethostbyaddr($peer['ip']); - $remote_device_id = discover_new_device($name, $device, 'BGP'); + foreach ($vrfs_lite_cisco as $vrf) { + $device['context_name'] = $vrf['context_name']; + if (is_numeric($bgpLocalAs)) { + echo "AS$bgpLocalAs "; + if ($bgpLocalAs != $device['bgpLocalAs']) { + dbUpdate(array('bgpLocalAs' => $bgpLocalAs), 'devices', 'device_id=?', array($device['device_id'])); + echo 'Updated AS '; } - echo '+'; - } - else { - $update = dbUpdate(array('bgpPeerRemoteAs' => $peer['as'], 'astext' => mres($astext)), 'bgpPeers', 'device_id=? AND bgpPeerIdentifier=?', array($device['device_id'], $peer['ip'])); - echo '.'; - } + $peer2 = false; + $peers_data = snmp_walk($device, 'cbgpPeer2RemoteAs', '-Oq', 'CISCO-BGP4-MIB', $config['mibdir']); + if (empty($peers_data)) { + $peers_data = snmp_walk($device, 'BGP4-MIB::bgpPeerRemoteAs', '-Oq', 'BGP4-MIB', $config['mibdir']); + } + else { + $peer2 = true; + } - if ($device['os_group'] == 'cisco' || $device['os'] == 'junos') { - if ($device['os_group'] == 'cisco') { - // Get afi/safi and populate cbgp on cisco ios (xe/xr) - unset($af_list); + d_echo("Peers : $peers_data \n"); + $peers = trim(str_replace('CISCO-BGP4-MIB::cbgpPeer2RemoteAs.', '', $peers_data)); + $peers = trim(str_replace('BGP4-MIB::bgpPeerRemoteAs.', '', $peers)); + + foreach (explode("\n", $peers) as $peer) { if ($peer2 === true) { - $af_data = snmpwalk_cache_oid($device, 'cbgpPeer2AddrFamilyEntry', $cbgp, 'CISCO-BGP4-MIB', $config['mibdir']); - } - else { - $af_data = snmpwalk_cache_oid($device, 'cbgpPeerAddrFamilyEntry', $cbgp, 'CISCO-BGP4-MIB', $config['mibdir']); + list($ver, $peer) = explode('.', $peer, 2); } - d_echo('afi data :: '); - d_echo($af_data); + list($peer_ip, $peer_as) = explode(' ', $peer); + if (strstr($peer_ip, ':')) { + $peer_ip_snmp = preg_replace('/:/', ' ', $peer_ip); + $peer_ip = preg_replace('/(\S+\s+\S+)\s/', '$1:', $peer_ip_snmp); + $peer_ip = str_replace('"', '', str_replace(' ', '', $peer_ip)); + } - foreach ($af_data as $k => $v) { - if ($peer2 === true) { - list(,$k) = explode('.', $k, 2); - } + if ($peer && $peer_ip != '0.0.0.0') { + d_echo("Found peer $peer_ip (AS$peer_as)\n"); - d_echo("AFISAFI = $k\n"); - - $afisafi_tmp = explode('.', $k); - $safi = array_pop($afisafi_tmp); - $afi = array_pop($afisafi_tmp); - $bgp_ip = str_replace(".$afi.$safi", '', $k); - $bgp_ip = preg_replace('/:/', ' ', $bgp_ip); - $bgp_ip = preg_replace('/(\S+\s+\S+)\s/', '$1:', $bgp_ip); - $bgp_ip = str_replace('"', '', str_replace(' ', '', $bgp_ip)); - if ($afi && $safi && $bgp_ip == $peer['ip']) { - $af_list[$bgp_ip][$afi][$safi] = 1; - if (dbFetchCell('SELECT COUNT(*) from `bgpPeers_cbgp` WHERE device_id = ? AND bgpPeerIdentifier = ?, AND afi=? AND safi=?', array($device['device_id'], $peer['ip'], $afi, $safi)) == 0) { - dbInsert(array('device_id' => $device['device_id'], 'bgpPeerIdentifier' => $peer['ip'], 'afi' => $afi, 'safi' => $safi), 'bgpPeers_cbgp'); - } - } + $peerlist[] = array( + 'ip' => $peer_ip, + 'as' => $peer_as, + 'ver' => $ver, + ); } } if ($device['os'] == 'junos') { - $safis[1] = 'unicast'; - $safis[2] = 'multicast'; + // Juniper BGP4-V2 MIB + // FIXME: needs a big cleanup! also see below. + // FIXME: is .0.ipv6 the only possible value here? + $result = snmp_walk($device, 'jnxBgpM2PeerRemoteAs.0.ipv6', '-Onq', 'BGP4-V2-MIB-JUNIPER', $config['install_dir'].'/mibs/junos'); + $peers = trim(str_replace('.1.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.', '', $result)); + foreach (explode("\n", $peers) as $peer) { + list($peer_ip_snmp, $peer_as) = explode(' ', $peer); - if (!isset($j_peerIndexes)) { - $j_bgp = snmpwalk_cache_multi_oid($device, 'jnxBgpM2PeerTable', $jbgp, 'BGP4-V2-MIB-JUNIPER', $config['install_dir'].'/mibs/junos'); + // Magic! Basically, takes SNMP form and finds peer IPs from the walk OIDs. + $peer_ip = Net_IPv6::compress(snmp2ipv6(implode('.', array_slice(explode('.', $peer_ip_snmp), (count(explode('.', $peer_ip_snmp)) - 16))))); - foreach ($j_bgp as $index => $entry) { - switch ($entry['jnxBgpM2PeerRemoteAddrType']) { - case 'ipv4': - $ip = long2ip(hexdec($entry['jnxBgpM2PeerRemoteAddr'])); - d_echo("peerindex for ipv4 $ip is ".$entry['jnxBgpM2PeerIndex']."\n"); + if ($peer) { + d_echo("Found peer $peer_ip (AS$peer_as)\n"); - $j_peerIndexes[$ip] = $entry['jnxBgpM2PeerIndex']; - break; + $peerlist[] = array( + 'ip' => $peer_ip, + 'as' => $peer_as, + ); + } + } + } + } + else { + echo 'No BGP on host'; + if ($device['bgpLocalAs']) { + dbUpdate(array('bgpLocalAs' => 'NULL'), 'devices', 'device_id=?', array($device['device_id'])); + echo ' (Removed ASN) '; + } + } - case 'ipv6': - $ip6 = trim(str_replace(' ', '', $entry['jnxBgpM2PeerRemoteAddr']), '"'); - $ip6 = substr($ip6, 0, 4).':'.substr($ip6, 4, 4).':'.substr($ip6, 8, 4).':'.substr($ip6, 12, 4).':'.substr($ip6, 16, 4).':'.substr($ip6, 20, 4).':'.substr($ip6, 24, 4).':'.substr($ip6, 28, 4); - $ip6 = Net_IPv6::compress($ip6); - d_echo("peerindex for ipv6 $ip6 is ".$entry['jnxBgpM2PeerIndex']."\n"); + // Process disovered peers + if (isset($peerlist)) { + foreach ($peerlist as $peer) { + $astext = get_astext($peer['as']); - $j_peerIndexes[$ip6] = $entry['jnxBgpM2PeerIndex']; - break; + if (dbFetchCell('SELECT COUNT(*) from `bgpPeers` WHERE device_id = ? AND bgpPeerIdentifier = ?', array($device['device_id'], $peer['ip'])) < '1') { + $add = dbInsert(array('device_id' => $device['device_id'], 'bgpPeerIdentifier' => $peer['ip'], 'bgpPeerRemoteAs' => $peer['as'], 'context_name' => $device['context_name']), 'bgpPeers'); + if ($config['autodiscovery']['bgp'] === true) { + $name = gethostbyaddr($peer['ip']); + $remote_device_id = discover_new_device($name, $device, 'BGP'); + } - default: - echo "HALP? Don't know RemoteAddrType ".$entry['jnxBgpM2PeerRemoteAddrType']."!\n"; - break; + echo '+'; + } + else { + $update = dbUpdate(array('bgpPeerRemoteAs' => $peer['as'], 'astext' => mres($astext)), 'bgpPeers', 'device_id=? AND bgpPeerIdentifier=?', array($device['device_id'], $peer['ip'])); + echo '.'; + } + + if ($device['os_group'] == 'cisco' || $device['os'] == 'junos') { + if ($device['os_group'] == 'cisco') { + // Get afi/safi and populate cbgp on cisco ios (xe/xr) + unset($af_list); + + if ($peer2 === true) { + $af_data = snmpwalk_cache_oid($device, 'cbgpPeer2AddrFamilyEntry', $cbgp, 'CISCO-BGP4-MIB', $config['mibdir']); + } + else { + $af_data = snmpwalk_cache_oid($device, 'cbgpPeerAddrFamilyEntry', $cbgp, 'CISCO-BGP4-MIB', $config['mibdir']); + } + + d_echo('afi data :: '); + d_echo($af_data); + + foreach ($af_data as $k => $v) { + if ($peer2 === true) { + list(,$k) = explode('.', $k, 2); + } + + d_echo("AFISAFI = $k\n"); + + $afisafi_tmp = explode('.', $k); + $safi = array_pop($afisafi_tmp); + $afi = array_pop($afisafi_tmp); + $bgp_ip = str_replace(".$afi.$safi", '', $k); + $bgp_ip = preg_replace('/:/', ' ', $bgp_ip); + $bgp_ip = preg_replace('/(\S+\s+\S+)\s/', '$1:', $bgp_ip); + $bgp_ip = str_replace('"', '', str_replace(' ', '', $bgp_ip)); + if ($afi && $safi && $bgp_ip == $peer['ip']) { + $af_list[$bgp_ip][$afi][$safi] = 1; + if (dbFetchCell('SELECT COUNT(*) from `bgpPeers_cbgp` WHERE device_id = ? AND bgpPeerIdentifier = ?, AND afi=? AND safi=?', array($device['device_id'], $peer['ip'], $afi, $safi)) == 0) { + dbInsert(array('device_id' => $device['device_id'], 'bgpPeerIdentifier' => $peer['ip'], 'afi' => $afi, 'safi' => $safi, 'context_name' => $device['context_name']), 'bgpPeers_cbgp'); + } + } + } + } + + if ($device['os'] == 'junos') { + $safis[1] = 'unicast'; + $safis[2] = 'multicast'; + + if (!isset($j_peerIndexes)) { + $j_bgp = snmpwalk_cache_multi_oid($device, 'jnxBgpM2PeerTable', $jbgp, 'BGP4-V2-MIB-JUNIPER', $config['install_dir'].'/mibs/junos'); + + foreach ($j_bgp as $index => $entry) { + switch ($entry['jnxBgpM2PeerRemoteAddrType']) { + case 'ipv4': + $ip = long2ip(hexdec($entry['jnxBgpM2PeerRemoteAddr'])); + d_echo("peerindex for ipv4 $ip is ".$entry['jnxBgpM2PeerIndex']."\n"); + + $j_peerIndexes[$ip] = $entry['jnxBgpM2PeerIndex']; + break; + + case 'ipv6': + $ip6 = trim(str_replace(' ', '', $entry['jnxBgpM2PeerRemoteAddr']), '"'); + $ip6 = substr($ip6, 0, 4).':'.substr($ip6, 4, 4).':'.substr($ip6, 8, 4).':'.substr($ip6, 12, 4).':'.substr($ip6, 16, 4).':'.substr($ip6, 20, 4).':'.substr($ip6, 24, 4).':'.substr($ip6, 28, 4); + $ip6 = Net_IPv6::compress($ip6); + d_echo("peerindex for ipv6 $ip6 is ".$entry['jnxBgpM2PeerIndex']."\n"); + + $j_peerIndexes[$ip6] = $entry['jnxBgpM2PeerIndex']; + break; + + default: + echo "HALP? Don't know RemoteAddrType ".$entry['jnxBgpM2PeerRemoteAddrType']."!\n"; + break; + } + } + } + + if (!isset($j_afisafi)) { + $j_prefixes = snmpwalk_cache_multi_oid($device, 'jnxBgpM2PrefixCountersTable', $jbgp, 'BGP4-V2-MIB-JUNIPER', $config['install_dir'].'/mibs/junos'); + foreach (array_keys($j_prefixes) as $key) { + list($index,$afisafi) = explode('.', $key, 2); + $j_afisafi[$index][] = $afisafi; + } + } + + foreach ($j_afisafi[$j_peerIndexes[$peer['ip']]] as $afisafi) { + list ($afi,$safi) = explode('.', $afisafi); + $safi = $safis[$safi]; + $af_list[$afi][$safi] = 1; + if (dbFetchCell('SELECT COUNT(*) from `bgpPeers_cbgp` WHERE device_id = ? AND bgpPeerIdentifier = ?, AND afi=? AND safi=?', array($device['device_id'], $peer['ip'], $afi, $safi)) == 0) { + dbInsert(array('device_id' => $device['device_id'], 'bgpPeerIdentifier' => $peer['ip'], 'afi' => $afi, 'safi' => $safi), 'bgpPeers_cbgp'); + } + } + } + + $af_query = "SELECT * FROM bgpPeers_cbgp WHERE `device_id` = '".$device['device_id']."' AND bgpPeerIdentifier = '".$peer['ip']."'"; + foreach (dbFetchRows($af_query) as $entry) { + $afi = $entry['afi']; + $safi = $entry['safi']; + if (!$af_list[$afi][$safi] || !$af_list[$entry['bgpPeerIdentifier']][$afi][$safi]) { + dbDelete('bgpPeers_cbgp', '`device_id` = ? AND `bgpPeerIdentifier` = ?, afi=?, safi=?', array($device['device_id'], $peer['ip'], $afi, $safi)); } } } - - if (!isset($j_afisafi)) { - $j_prefixes = snmpwalk_cache_multi_oid($device, 'jnxBgpM2PrefixCountersTable', $jbgp, 'BGP4-V2-MIB-JUNIPER', $config['install_dir'].'/mibs/junos'); - foreach (array_keys($j_prefixes) as $key) { - list($index,$afisafi) = explode('.', $key, 2); - $j_afisafi[$index][] = $afisafi; - } - } - - foreach ($j_afisafi[$j_peerIndexes[$peer['ip']]] as $afisafi) { - list ($afi,$safi) = explode('.', $afisafi); - $safi = $safis[$safi]; - $af_list[$afi][$safi] = 1; - if (dbFetchCell('SELECT COUNT(*) from `bgpPeers_cbgp` WHERE device_id = ? AND bgpPeerIdentifier = ?, AND afi=? AND safi=?', array($device['device_id'], $peer['ip'], $afi, $safi)) == 0) { - dbInsert(array('device_id' => $device['device_id'], 'bgpPeerIdentifier' => $peer['ip'], 'afi' => $afi, 'safi' => $safi), 'bgpPeers_cbgp'); - } - } } - $af_query = "SELECT * FROM bgpPeers_cbgp WHERE `device_id` = '".$device['device_id']."' AND bgpPeerIdentifier = '".$peer['ip']."'"; - foreach (dbFetchRows($af_query) as $entry) { - $afi = $entry['afi']; - $safi = $entry['safi']; - if (!$af_list[$afi][$safi] || !$af_list[$entry['bgpPeerIdentifier']][$afi][$safi]) { - dbDelete('bgpPeers_cbgp', '`device_id` = ? AND `bgpPeerIdentifier` = ?, afi=?, safi=?', array($device['device_id'], $peer['ip'], $afi, $safi)); + unset($j_afisafi); + unset($j_prefixes); + unset($j_bgp); + unset($j_peerIndexes); + } + + // Delete removed peers + $sql = "SELECT * FROM bgpPeers WHERE device_id = '".$device['device_id']."' AND context_name = '".$device['context_name']."'"; + + foreach (dbFetchRows($sql) as $entry) { + unset($exists); + $i = 0; + while ($i < count($peerlist) && !isset($exists)) { + if ($peerlist[$i]['ip'] == $entry['bgpPeerIdentifier']) { + $exists = 1; } + + $i++; + } + + if (!isset($exists)) { + dbDelete('bgpPeers', '`bgpPeer_id` = ?', array($entry['bgpPeer_id'])); + dbDelete('bgpPeers_cbgp', '`bgpPeer_id` = ?', array($entry['bgpPeer_id'])); + echo '-'; } } - } - unset($j_afisafi); - unset($j_prefixes); - unset($j_bgp); - unset($j_peerIndexes); + unset($peerlist); + + echo "\n"; + unset($device['context_name']); } - - // Delete removed peers - $sql = "SELECT * FROM bgpPeers AS B, devices AS D WHERE B.device_id = D.device_id AND D.device_id = '".$device['device_id']."'"; - - foreach (dbFetchRows($sql) as $entry) { - unset($exists); - $i = 0; - - while ($i < count($peerlist) && !isset($exists)) { - if ($peerlist[$i]['ip'] == $entry['bgpPeerIdentifier']) { - $exists = 1; - } - - $i++; - } - - if (!isset($exists)) { - dbDelete('bgpPeers', '`bgpPeer_id` = ?', array($entry['bgpPeer_id'])); - dbDelete('bgpPeers_cbgp', '`bgpPeer_id` = ?', array($entry['bgpPeer_id'])); - echo '-'; - } - } - - unset($peerlist); - - echo "\n"; + unset($device['context_name']); + unset($vrfs_c); } +echo "FIN BGP \n\n\n"; diff --git a/includes/discovery/discovery-protocols.inc.php b/includes/discovery/discovery-protocols.inc.php index 5563da898f..331fe577f9 100644 --- a/includes/discovery/discovery-protocols.inc.php +++ b/includes/discovery/discovery-protocols.inc.php @@ -55,7 +55,21 @@ if ($config['autodiscovery']['xdp'] === true) { $remote_device_id = dbFetchCell('SELECT `device_id` FROM `devices` WHERE `sysName` = ? OR `hostname` = ?', array($cdp['cdpCacheDeviceId'], $cdp['cdpCacheDeviceId'])); if (!$remote_device_id) { - $remote_device_id = discover_new_device($cdp['cdpCacheDeviceId'], $device, 'CDP', $interface); + if($config['discovery_by_ip'] !== true) { + $remote_device_id = discover_new_device($cdp['cdpCacheDeviceId'], $device, 'CDP', $interface); + } + else { + $ip_arr = explode(" ", $cdp['cdpCacheAddress']); + + $a = hexdec($ip_arr[0]); + $b = hexdec($ip_arr[1]); + $c = hexdec($ip_arr[2]); + $d = hexdec($ip_arr[3]); + + $cdp_ip = "$a.$b.$c.$d"; + + $remote_device_id = discover_new_device($cdp_ip, $device, 'CDP', $interface); + } } if ($remote_device_id) { diff --git a/includes/discovery/entity-physical.inc.php b/includes/discovery/entity-physical.inc.php index caacb5be21..91c61b8de3 100644 --- a/includes/discovery/entity-physical.inc.php +++ b/includes/discovery/entity-physical.inc.php @@ -10,6 +10,11 @@ if ($config['enable_inventory']) { echo ' jnxBoxAnatomy'; $entity_array = snmpwalk_cache_oid($device, 'jnxBoxAnatomy', $entity_array, 'JUNIPER-MIB'); } + elseif ($device['os'] == 'timos') { + $entity_array = array(); + echo 'tmnxHwObjs'; + $entity_array = snmpwalk_cache_multi_oid($device, 'tmnxHwObjs', $entity_array, 'TIMETRA-CHASSIS-MIB', '+'.$config['mib_dir'].'/aos:'.$config['mib_dir']); + } else { $entity_array = array(); echo ' entPhysicalEntry'; @@ -39,7 +44,25 @@ if ($config['enable_inventory']) { $entPhysicalAssetID = $entry['entPhysicalAssetID']; // fix for issue 1865, $entPhysicalIndex, as it contains a quad dotted number on newer Junipers // using str_replace to remove all dots should fix this even if it changes in future - $entPhysicalIndex = str_replace('.','',$entPhysicalIndex); + $entPhysicalIndex = str_replace('.','',$entPhysicalIndex); + } + elseif ($device['os'] == 'timos') { + $entPhysicalDescr = $entry['tmnxCardTypeDescription']; + $entPhysicalContainedIn = $entry['tmnxHwContainedIn']; + $entPhysicalClass = $entry['tmnxHwClass']; + $entPhysicalName = $entry['tmnxCardTypeName']; + $entPhysicalSerialNum = $entry['tmnxHwSerialNumber']; + $entPhysicalModelName = $entry['tmnxHwMfgBoardNumber']; + $entPhysicalMfgName = $entry['tmnxHwMfgBoardNumber']; + $entPhysicalVendorType = $entry['tmnxCardTypeName']; + $entPhysicalParentRelPos = $entry['tmnxHwParentRelPos']; + $entPhysicalHardwareRev = '1.0'; + $entPhysicalFirmwareRev = $entry['tmnxHwBootCodeVersion']; + $entPhysicalSoftwareRev = $entry['tmnxHwBootCodeVersion']; + $entPhysicalIsFRU = $entry['tmnxHwIsFRU']; + $entPhysicalAlias = $entry['tmnxHwAlias']; + $entPhysicalAssetID = $entry['tmnxHwAssetID']; + $entPhysicalIndex = str_replace('.','',$entPhysicalIndex); } else { $entPhysicalDescr = $entry['entPhysicalDescr']; diff --git a/includes/discovery/functions.inc.php b/includes/discovery/functions.inc.php index e93099f868..ca6ee240bf 100644 --- a/includes/discovery/functions.inc.php +++ b/includes/discovery/functions.inc.php @@ -63,7 +63,7 @@ function discover_new_device($hostname, $device = '', $method = '', $interface = $extra_log = ' (port ' . $int['label'] . ') '; } - log_event('Device $' . $remote_device['hostname'] . " ($ip) $extra_log autodiscovered through $method on " . $device['hostname'], $remote_device_id, 'discovery'); + log_event('Device ' . $remote_device['hostname'] . " ($ip) $extra_log autodiscovered through $method on " . $device['hostname'], $remote_device_id, 'discovery'); } else { log_event("$method discovery of " . $remote_device['hostname'] . " ($ip) failed - check ping and SNMP access", $device['device_id'], 'discovery'); } @@ -760,7 +760,8 @@ function avtech_add_sensor($device, $sensor) { // get the sensor value $value = snmp_get($device, $oid, '-OvQ'); // if the sensor doesn't exist abort - if ($value === false || $value == 0) { //issue unfortunately non-existant sensors return 0 + if ($value === false || ($type == 'temperature' && $value == 0)) { + //issue unfortunately some non-existant sensors return 0 d_echo('Error: sensor returned no data, skipping' . "\n"); return false; } @@ -770,6 +771,31 @@ function avtech_add_sensor($device, $sensor) { $type = $sensor['type'] ? $sensor['type'] : 'temperature'; d_echo('Sensor type: ' . $type . "\n"); + $type_name = $device['os']; + if ($type == 'switch') { + // set up state sensor + $type_name .= ucfirst($type); + $type = 'state'; + $state_index_id = create_state_index($type_name); + + //Create State Translation + if (isset($state_index_id)) { + $states = array( + array($state_index_id,'Off',1,0,-1), + array($state_index_id,'On',1,1,0), + ); + foreach($states as $value){ + $insert = array( + 'state_index_id' => $value[0], + 'state_descr' => $value[1], + 'state_draw_graph' => $value[2], + 'state_value' => $value[3], + 'state_generic_value' => $value[4] + ); + dbInsert($insert, 'state_translations'); + } + } + } // set the description if ($sensor['descr_oid']) { @@ -788,9 +814,12 @@ function avtech_add_sensor($device, $sensor) { if ($sensor['divisor']) { $divisor = $sensor['divisor']; } - else { + elseif ($type == 'temperature') { $divisor = 100; } + else { + $divisor = 1; + } d_echo('Sensor divisor: ' . $divisor . "\n"); @@ -813,7 +842,12 @@ function avtech_add_sensor($device, $sensor) { d_echo('Sensor alarm max: ' . $max . "\n"); // add the sensor - discover_sensor($valid['sensor'], $type, $device, $oid, $id, $device['os'], $descr, $divisor, '1', $min, null, null, $max, $value/$divisor); + discover_sensor($valid['sensor'], $type, $device, $oid, $id, $type_name, $descr, $divisor, '1', $min, null, null, $max, $value/$divisor); + + if ($type == 'state') { + create_sensor_to_state_index($device, $type_name, $id); + } + return true; } diff --git a/includes/discovery/os/alcatel-lucent.inc.php b/includes/discovery/os/alcatel-lucent.inc.php index 9d74e3dd2b..599b9c7900 100644 --- a/includes/discovery/os/alcatel-lucent.inc.php +++ b/includes/discovery/os/alcatel-lucent.inc.php @@ -34,4 +34,20 @@ if (!$os) { if (strpos($sysObjectId, '.1.3.6.1.4.1.6527.1.9.1') !== false) { $os = 'timos'; } + // TiMOS-B-6.0.R2 both/hops ALCATEL-LUCENT SAR 7705 + if (strpos($sysObjectId, '.1.3.6.1.4.1.6527.6.1.1.2.1') !== false) { + $os = 'timos'; + } + // TiMOS-B-6.1.R7 both/hops ALCATEL-LUCENT SAR 7705 + if (strpos($sysObjectId, '.1.3.6.1.4.1.6527.6.1.1.2.2') !== false) { + $os = 'timos'; + } + // TiMOS-B-7.0.R5 both/hops ALCATEL SAR 7705 + if (strpos($sysObjectId, '.1.3.6.1.4.1.6527.6.1.1.2.5') !== false) { + $os = 'timos'; + } + // TiMOS-B-6.0.R2 both/hops ALCATEL-LUCENT SAR 7705 + if (strpos($sysObjectId, '.1.3.6.1.4.1.6527.6.1.1.2.6') !== false) { + $os = 'timos'; + } }//end if diff --git a/includes/discovery/os/barracuda.inc.php b/includes/discovery/os/barracuda.inc.php index e73d1a9ac6..ef19614432 100644 --- a/includes/discovery/os/barracuda.inc.php +++ b/includes/discovery/os/barracuda.inc.php @@ -17,4 +17,8 @@ if (!$os) { if (stristr($sysDescr, 'Barracuda Spam Firewall')) { $os = 'barracudaspamfirewall'; } + if (stristr($sysDescr, 'Barracuda Firewall')) { + $os = 'barracudangfirewall'; + } + } diff --git a/includes/discovery/os/buffalo.inc.php b/includes/discovery/os/buffalo.inc.php new file mode 100644 index 0000000000..800e2687fb --- /dev/null +++ b/includes/discovery/os/buffalo.inc.php @@ -0,0 +1,17 @@ + + * 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, 'BUFFALO TeraStation')) { + $os = 'buffalo'; + } +} diff --git a/includes/discovery/os/hp3par.inc.php b/includes/discovery/os/hp3par.inc.php new file mode 100644 index 0000000000..e0325b19f8 --- /dev/null +++ b/includes/discovery/os/hp3par.inc.php @@ -0,0 +1,17 @@ + + * 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($sysObjectId, '.1.3.6.1.4.1.12925.1')) { + $os = 'informos'; + } +} diff --git a/includes/discovery/os/hpblmos.inc.php b/includes/discovery/os/hpblmos.inc.php new file mode 100644 index 0000000000..9eba8faa5c --- /dev/null +++ b/includes/discovery/os/hpblmos.inc.php @@ -0,0 +1,17 @@ + + * 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($sysObjectId, '.1.3.6.1.4.1.11.5.7.1.2')) { + $os = 'hpblmos'; + } +} diff --git a/includes/discovery/os/poseidon.inc.php b/includes/discovery/os/hwg-poseidon.inc.php similarity index 94% rename from includes/discovery/os/poseidon.inc.php rename to includes/discovery/os/hwg-poseidon.inc.php index 080a3be955..6bbd82aca5 100644 --- a/includes/discovery/os/poseidon.inc.php +++ b/includes/discovery/os/hwg-poseidon.inc.php @@ -12,6 +12,6 @@ if (!$os) { if (strstr($sysObjectId, '.1.3.6.1.4.1.21796.3.3')) { - $os = 'poseidon'; + $os = 'hwg-poseidon'; } -} \ No newline at end of file +} diff --git a/includes/discovery/os/hwg-ste.inc.php b/includes/discovery/os/hwg-ste.inc.php new file mode 100644 index 0000000000..67ea3da6a2 --- /dev/null +++ b/includes/discovery/os/hwg-ste.inc.php @@ -0,0 +1,17 @@ + + * 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($sysObjectId, '.1.3.6.1.4.1.21796.4.1')) { + $os = 'hwg-ste'; + } +} diff --git a/includes/discovery/os/ibm-imm.inc.php b/includes/discovery/os/ibm-imm.inc.php new file mode 100644 index 0000000000..22874412ab --- /dev/null +++ b/includes/discovery/os/ibm-imm.inc.php @@ -0,0 +1,17 @@ + + * 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($sysObjectId, '1.3.6.1.4.1.2.3.51.3')) { + $os = 'ibm-imm'; + } +} diff --git a/includes/discovery/os/ibmnos.inc.php b/includes/discovery/os/ibmnos.inc.php index 01733c03f9..9f72ae692b 100644 --- a/includes/discovery/os/ibmnos.inc.php +++ b/includes/discovery/os/ibmnos.inc.php @@ -11,7 +11,7 @@ */ if (!$os) { - if (stristr($sysDescr, 'IBM Networking Operating System') || stristr($sysDescr, 'IBM Flex System Fabric')) { + if (stristr($sysDescr, 'IBM Networking Operating System') || stristr($sysDescr, 'IBM Flex System Fabric') || stristr($sysDescr, 'IBM Networking OS')) { $os = 'ibmnos'; } } diff --git a/includes/discovery/os/linux.inc.php b/includes/discovery/os/linux.inc.php index 3c8fd720e6..c91849d1ab 100644 --- a/includes/discovery/os/linux.inc.php +++ b/includes/discovery/os/linux.inc.php @@ -4,7 +4,8 @@ if (!$os) { $skip_oids = array( '.1.3.6.1.4.1.674.10892.2', '.1.3.6.1.4.1.17163.1.1', - '.1.3.6.1.4.1.17713.21' + '.1.3.6.1.4.1.17713.21', + '.1.3.6.1.4.1.2.3.51.3' ); if (preg_match('/^Linux/', $sysDescr) && !in_array($sysObjectId, $skip_oids)) { $os = 'linux'; diff --git a/includes/discovery/os/oracle-ilom.inc.php b/includes/discovery/os/oracle-ilom.inc.php new file mode 100644 index 0000000000..03e6e3772b --- /dev/null +++ b/includes/discovery/os/oracle-ilom.inc.php @@ -0,0 +1,17 @@ + + * 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($sysObjectId, '.1.3.6.1.4.1.42.2.200.2.1.1')) { + $os = 'oracle-ilom'; + } +} diff --git a/includes/discovery/os/routeros.inc.php b/includes/discovery/os/routeros.inc.php index 4d035a2142..1918c9cd19 100644 --- a/includes/discovery/os/routeros.inc.php +++ b/includes/discovery/os/routeros.inc.php @@ -15,10 +15,6 @@ if (!$os) { $os = 'routeros'; } - if ($sysDescr == 'RB260GS') { - $os = 'routeros'; - } - // poll Cisco AAA MIB if (!empty($os)) { $extra_mibs = array( diff --git a/includes/discovery/os/samsungprinter.inc.php b/includes/discovery/os/samsungprinter.inc.php index b8dc041323..553f96019f 100644 --- a/includes/discovery/os/samsungprinter.inc.php +++ b/includes/discovery/os/samsungprinter.inc.php @@ -1,6 +1,8 @@ = 8) { + $os = 'sentry4'; + } else { + $os = 'sentry3'; + } } } diff --git a/includes/discovery/os/swos.inc.php b/includes/discovery/os/swos.inc.php new file mode 100644 index 0000000000..29e5e8e4b1 --- /dev/null +++ b/includes/discovery/os/swos.inc.php @@ -0,0 +1,7 @@ + port_id map -$ports_mapped = get_ports_mapped ($device['id']); +$ports_mapped = get_ports_mapped ($device['device_id']); $ports_db = $ports_mapped['ports']; // @@ -62,7 +62,7 @@ foreach ($port_stats as $ifIndex => $port) { // Port re-discovered after previous deletion? else if ($ports_db[$port_id]['deleted'] == '1') { - dbUpdate(array('deleted' => '0'), 'ports', '`port_id` = ?', array($ports_db[$port_id])); + dbUpdate(array('deleted' => '0'), 'ports', '`port_id` = ?', array($port_id)); $ports_db[$port_id]['deleted'] = '0'; echo 'U'; } @@ -78,7 +78,7 @@ foreach ($port_stats as $ifIndex => $port) { else { if (is_array($ports_db[$port_id])) { if ($ports_db[$port_id]['deleted'] != '1') { - dbUpdate(array('deleted' => '1'), 'ports', '`port_id` = ?', array($ports_db[$port_id])); + dbUpdate(array('deleted' => '1'), 'ports', '`port_id` = ?', array($port_id)); $ports_db[$port_id]['deleted'] = '1'; echo '-'; } diff --git a/includes/discovery/sensors/current/rfc1628.inc.php b/includes/discovery/sensors/current/rfc1628.inc.php index 73811ae101..51a3833738 100644 --- a/includes/discovery/sensors/current/rfc1628.inc.php +++ b/includes/discovery/sensors/current/rfc1628.inc.php @@ -1,5 +1,10 @@ '0') { + if ($current !== false && $current >= 0) { discover_sensor($valid['sensor'], 'fanspeed', $device, $oid, $index, 'lmsensors', $descr, '1', '1', null, null, null, null, $current); } } diff --git a/includes/discovery/sensors/frequencies/rfc1628.inc.php b/includes/discovery/sensors/frequencies/rfc1628.inc.php index 7073181549..39a04ed77e 100644 --- a/includes/discovery/sensors/frequencies/rfc1628.inc.php +++ b/includes/discovery/sensors/frequencies/rfc1628.inc.php @@ -20,7 +20,10 @@ if (isset($config['modules_compat']['rfc1628'][$device['os']]) && $config['modul $divisor = 10; if ($device['os'] == 'huaweiups') { $divisor = 100; - }; + } + if ($device['os'] == 'poweralert') { + $divisor = 1; + } $index = '3.2.0.'.$i; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); } @@ -32,7 +35,10 @@ if (isset($config['modules_compat']['rfc1628'][$device['os']]) && $config['modul $divisor = 10; if ($device['os'] == 'huaweiups') { $divisor = 100; - }; + } + if ($device['os'] == 'poweralert') { + $divisor = 1; + } $index = '4.2.0'; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); @@ -43,7 +49,10 @@ if (isset($config['modules_compat']['rfc1628'][$device['os']]) && $config['modul $divisor = 10; if ($device['os'] == 'huaweiups') { $divisor = 100; - }; + } + if ($device['os'] == 'poweralert') { + $divisor = 1; + } $index = '5.1.0'; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); }//end if diff --git a/includes/discovery/sensors/states/avtech.inc.php b/includes/discovery/sensors/states/avtech.inc.php new file mode 100644 index 0000000000..1dd0745f7d --- /dev/null +++ b/includes/discovery/sensors/states/avtech.inc.php @@ -0,0 +1,30 @@ + 0, + 'type' => 'switch', + 'oid' => $device_oid.'1.2.1.0', + 'descr_oid' => $device_oid.'1.2.2.0', + ); + avtech_add_sensor($device, $switch); + } + elseif (strpos($device['sysObjectID'], '.20916.1.6') !== false) { + // RoomAlert 4E + $device_oid = '.1.3.6.1.4.1.20916.1.6.'; + + $switch = array( + 'id' => 0, + 'type' => 'switch', + 'oid' => $device_oid.'1.3.1.0', + 'descr_oid' => $device_oid.'1.3.2.0', + ); + avtech_add_sensor($device, $switch); + } +} diff --git a/includes/discovery/sensors/states/dell.inc.php b/includes/discovery/sensors/states/dell.inc.php index b8dca50df3..73caec3cef 100644 --- a/includes/discovery/sensors/states/dell.inc.php +++ b/includes/discovery/sensors/states/dell.inc.php @@ -4,6 +4,7 @@ * LibreNMS * * Copyright (c) 2014 Neil Lathwood + * Modyfied by Peter TKATCHENKO https://github.com/Peter2121/ 2016 * * 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 @@ -12,19 +13,85 @@ * the source code distribution for details. */ -if ($device['os'] == 'linux') { - $oids = snmp_walk($device, 'virtualDiskNumber', '-Oesqn', 'StorageManagement-MIB'); - $main_oid = '.1.3.6.1.4.1.674.10893.1.20.140.1.1.'; + $oids = snmp_walk($device, 'virtualDiskDeviceName', '-Oesqn', 'StorageManagement-MIB'); + $name_oid = '.1.3.6.1.4.1.674.10893.1.20.140.1.1.3'; + $main_oid = '.1.3.6.1.4.1.674.10893.1.20.140.1.1.4.'; d_echo($oids."\n"); $oids = trim($oids); if ($oids) { echo 'Dell '; + + $state_name = 'dellVirtualDiskState'; + $state_index_id = create_state_index($state_name); +/* +-- 1.3.6.1.4.1.674.10893.1.20.140.1.1.4 +virtualDiskState +INTEGER + { + unknown(0), + ready(1), + failed(2), + online(3), + offline(4), + degraded(6), + verifying(7), + resynching(15), + regenerating(16), + failedRedundancy(18), + rebuilding(24), + formatting(26), + reconstructing(32), + initializing(35), + backgroundInit(36), + permanentlyDegraded(52) + } +*/ + if ($state_index_id) { + $states = array( + array($state_index_id,'unknown',0,0,3) , + array($state_index_id,'ready',1,1,0) , + array($state_index_id,'failed',1,2,2) , + array($state_index_id,'online',1,3,1) , + array($state_index_id,'offline',1,4,2) , + array($state_index_id,'degraded',1,6,2) , + array($state_index_id,'verifying',1,7,1) , + array($state_index_id,'resynching',1,15,1) , + array($state_index_id,'regenerating',1,16,1) , + array($state_index_id,'failedRedundancy',1,18,2) , + array($state_index_id,'rebuilding',1,24,1) , + array($state_index_id,'formatting',1,26,1) , + array($state_index_id,'reconstructing',1,32,1) , + array($state_index_id,'initializing',1,35,1) , + array($state_index_id,'backgroundInit',1,36,1) , + array($state_index_id,'permanentlyDegraded',1,52,2) + ); + + foreach($states as $value){ + $insert = array( + 'state_index_id' => $value[0], + 'state_descr' => $value[1], + 'state_draw_graph' => $value[2], + 'state_value' => $value[3], + 'state_generic_value' => $value[4] + ); + dbInsert($insert, 'state_translations'); + } + } + foreach (explode("\n", $oids) as $data) { - list($oid,) = explode(' ', $data, 2); - $state_oid = '4.1'; - $state_current = snmp_get($device, $main_oid.$state_oid, '-Oevq'); - discover_sensor($valid['sensor'], 'state', $device, $main_oid.$state_oid, "virtualDiskState.$state_oid", 'dell', 'Raid State', '1', '1', null, null, null, null, $state_current); + list($oid,$name) = explode(' ', $data, 2); + $name = trim($name,"\""); + if($oid==$name_oid) continue; // Something goes wrong, we should have $name_oid.$num_index in $oid + $split_oid = explode('.', $oid); + $num_index = $split_oid[(count($split_oid) - 1)]; + $index = (int)$num_index+0; + $oid = $main_oid.$num_index; + $low_limit = 0.5; + $high_limit = 1.5; + + $state_current = snmp_get($device, $oid, '-Oevq'); + discover_sensor($valid['sensor'], 'state', $device, $oid, $index, $state_name, $name, '1', '1', $low_limit, $low_limit, $high_limit, $high_limit, $state_current,'snmp',$index); + create_sensor_to_state_index($device, $state_name, $index); } } -} diff --git a/includes/discovery/sensors/states/equallogic.inc.php b/includes/discovery/sensors/states/equallogic.inc.php index 2aec66a9cb..cc249d7141 100644 --- a/includes/discovery/sensors/states/equallogic.inc.php +++ b/includes/discovery/sensors/states/equallogic.inc.php @@ -1,40 +1,146 @@ $value[0], + 'state_descr' => $value[1], + 'state_draw_graph' => $value[2], + 'state_value' => $value[3], + 'state_generic_value' => $value[4] + ); + dbInsert($insert, 'state_translations'); + } + } + + foreach (explode("\n", $oids) as $data) { + $data = trim($data); + if (!empty($data)) { + list($oid,$current) = explode(' = ', $data, 2); + $split_oid = explode('.', $oid); + $num_index = $split_oid[(count($split_oid) - 1)]; + $index = (int)$num_index+0; + $low_limit = 0.5; + $high_limit = 2.5; + discover_sensor($valid['sensor'], 'state', $device, $oid, $index, $state_name, $descr, 1, 1, $low_limit, $low_limit, $high_limit, $high_limit, $current, 'snmp', $index); + create_sensor_to_state_index($device, $state_name, $index); + } + } + } + + $oids1 = snmp_walk($device, 'eqlMemberHealthDetailsPowerSupplyName', '-OQn', 'EQLMEMBER-MIB', $config['install_dir'].'/mibs/equallogic'); + + d_echo('PowerSupplyName oids:'); + d_echo($oids1."\n"); /* .1.3.6.1.4.1.12740.2.1.8.1.2.1.329840783.1 = Power Cooling Module 0 .1.3.6.1.4.1.12740.2.1.8.1.2.1.329840783.2 = Power Cooling Module 1 **/ - d_echo($oids."\n"); - if (!empty($oids)) { - echo 'EQLCONTROLLER-MIB '; - foreach (explode("\n", $oids) as $data) { + $base_oid = '.1.3.6.1.4.1.12740.2.1.8.1.3.1.'; // eqlMemberHealthDetailsPowerSupplyCurrentState + + if (!empty($oids1)) { +/* +eqlMemberHealthDetailsPowerSupplyCurrentState + INTEGER { + on-and-operating (1), + no-ac-power (2), + failed-or-no-data (3) -- has ac but no dc out or we have no data + } +*/ + $state_name1 = 'eqlMemberPowerSupplyCurrentState'; + $state_index_id1 = create_state_index($state_name1); + + if ($state_index_id1) { + $states1 = array( + array($state_index_id1,'on-and-operating',1,1,0) , + array($state_index_id1,'no-ac-power',1,2,1) , + array($state_index_id1,'failed-or-no-data',1,3,2) + ); + foreach($states1 as $value){ + $insert = array( + 'state_index_id' => $value[0], + 'state_descr' => $value[1], + 'state_draw_graph' => $value[2], + 'state_value' => $value[3], + 'state_generic_value' => $value[4] + ); + dbInsert($insert, 'state_translations'); + } + } + + foreach (explode("\n", $oids1) as $data) { $data = trim($data); if (!empty($data)) { list($oid,$descr) = explode(' = ', $data, 2); $split_oid = explode('.', $oid); $num_index = $split_oid[(count($split_oid) - 1)]; - $index = $num_index; - $part_oid = $split_oid[(count($split_oid) - 2)]; - $num_index = $part_oid.'.'.$num_index; - $base_oid = '.1.3.6.1.4.1.12740.2.1.8.1.3.1.'; + $index = (int)$num_index+0; + $member_id = $split_oid[(count($split_oid) - 2)]; + $num_index = $member_id.'.'.$num_index; $oid = $base_oid.$num_index; - $extra = snmp_get_multi($device, "eqlMemberHealthDetailsPowerSupplyCurrentState.3.329840783.$index", '-OQUse', 'EQLMEMBER-MIB', $config['install_dir'].'/mibs/equallogic'); - $keys = array_keys($extra); - $temperature = $extra[$keys[0]]['eqlMemberHealthDetailsPowerSupplyValue']; - $low_limit = $extra[$keys[0]]['eqlMemberHealthDetailsPowerSupplyLowCriticalThreshold']; - $low_warn = $extra[$keys[0]]['eqlMemberHealthDetailsPowerSupplyLowWarningThreshold']; - $high_limit = $extra[$keys[0]]['eqlMemberHealthDetailsPowerSupplyHighCriticalThreshold']; - $high_warn = $extra[$keys[0]]['eqlMemberHealthDetailsPowerSupplyHighWarningThreshold']; - $index = (100 + $index); - - if ($extra[$keys[0]]['eqlMemberHealthDetailsPowerSupplyCurrentState'] != 'unknown') { - discover_sensor($valid['sensor'], 'state', $device, $oid, $index, 'snmp', $descr, 1, 1, $low_limit, $low_warn, $high_limit, $high_warn, $temperature); + $extra = snmp_get_multi($device, $oid, '-OQne', 'EQLMEMBER-MIB', $config['install_dir'].'/mibs/equallogic'); + d_echo($extra); + if(!empty($extra)) { + list($foid,$pstatus) = explode(' = ',$extra,2); + $index = (100 + $index); + $low_limit = 0.5; + $high_limit = 1.5; + discover_sensor($valid['sensor'], 'state', $device, $oid, $index, $state_name1, $descr, 1, 1, $low_limit, $low_limit, $high_limit, $high_limit, $pstatus, 'snmp', $index); + create_sensor_to_state_index($device, $state_name1, $index); } }//end if }//end foreach - }//end if + }//end if empty oids }//end if diff --git a/includes/discovery/sensors/states/hwg-ste.inc.php b/includes/discovery/sensors/states/hwg-ste.inc.php new file mode 100644 index 0000000000..1d54b4dd63 --- /dev/null +++ b/includes/discovery/sensors/states/hwg-ste.inc.php @@ -0,0 +1,52 @@ + + * 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 ($device['os'] == 'hwg-ste') { + + $temp = snmpwalk_cache_multi_oid($device, 'sensTable', array(), 'STE-MIB'); + $cur_oid = '.1.3.6.1.4.1.21796.4.1.3.1.5.'; + + if (is_array($temp)) { + //Create State Index + $state_name = 'sensState'; + $state_index_id = create_state_index($state_name); + + //Create State Translation + if ($state_index_id !== null) { + $states = array( + array($state_index_id,'invalid',0,0,3) , + array($state_index_id,'normal',0,1,0) , + array($state_index_id,'alarmstate',0,2,1) , + array($state_index_id,'alarm',0,3,2) + ); + foreach($states as $value){ + $insert = array( + 'state_index_id' => $value[0], + 'state_descr' => $value[1], + 'state_draw_graph' => $value[2], + 'state_value' => $value[3], + 'state_generic_value' => $value[4] + ); + dbInsert($insert, 'state_translations'); + } + } + + foreach ($temp as $index => $entry) { + $descr = $temp[$index]['sensName']; + //Discover Sensors + discover_sensor($valid['sensor'], 'state', $device, $cur_oid.$index, $index, $state_name, $descr, '1', '1', null, null, null, null, $temp[$index]['sensState'], 'snmp', $index); + + //Create Sensor To State Index + create_sensor_to_state_index($device, $state_name, $index); + } + } +} diff --git a/includes/discovery/sensors/temperatures/avtech.inc.php b/includes/discovery/sensors/temperatures/avtech.inc.php index 956fed49a4..da082cff72 100644 --- a/includes/discovery/sensors/temperatures/avtech.inc.php +++ b/includes/discovery/sensors/temperatures/avtech.inc.php @@ -1,6 +1,6 @@ 0, + 'oid' => $device_oid.'1.1.1.1.0', + 'descr_oid' => $device_oid.'1.1.1.3.0', + ); + avtech_add_sensor($device, $internal); + + $sen1 = array( + 'id' => 1, + 'oid' => $device_oid.'1.1.2.1.0', + 'descr_oid' => $device_oid.'1.1.2.6.0', + ); + avtech_add_sensor($device, $sen1); + } elseif (strpos($device['sysObjectID'], '.20916.1.1') !== false) { // TemPageR 4E $device_oid = '.1.3.6.1.4.1.20916.1.1.'; @@ -96,14 +114,5 @@ if ($device['os'] == 'avtech') { 'divisor' => $divisor, ); avtech_add_sensor($device, $sen2); - -/* we don't support switches at this time - $switch = array( - 'oid' => $device_oid.'1.3.1.0', - 'descr_oid' => $device_oid.'1.3.2.0', - 'type' => 'switch' - ); - avtech_add_sensor($device, $switch); -*/ } }//end if diff --git a/includes/discovery/sensors/temperatures/hwg-ste.inc.php b/includes/discovery/sensors/temperatures/hwg-ste.inc.php new file mode 100644 index 0000000000..3ed7ed6da2 --- /dev/null +++ b/includes/discovery/sensors/temperatures/hwg-ste.inc.php @@ -0,0 +1,23 @@ + + * 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 ($device['os'] == 'hwg-ste') { + + $temp = snmpwalk_cache_multi_oid($device, 'sensTable', array(), 'STE-MIB'); + $cur_oid = '.1.3.6.1.4.1.21796.4.1.3.1.5.'; + + if (is_array($temp)) { + foreach ($temp as $index => $entry) { + discover_sensor($valid['sensor'], 'temperature', $device, $cur_oid.$index, $index, 'hwg-ste', $temp[$index]['sensName'], '10', '1', null, null, null, null, $temp[$index]['sensValue'], 'snmp', $index); + } + } +} diff --git a/includes/discovery/sensors/temperatures/sentry4.inc.php b/includes/discovery/sensors/temperatures/sentry4.inc.php new file mode 100644 index 0000000000..93b09940cd --- /dev/null +++ b/includes/discovery/sensors/temperatures/sentry4.inc.php @@ -0,0 +1,54 @@ += 0) { + discover_sensor($valid['sensor'], 'temperature', $device, + $temperature_oid, $index, 'sentry4', + $descr, $divisor, $multiplier, $low_limit, $low_warn_limit, + $high_warn_limit, $high_limit, $current); + } + } + } +} diff --git a/includes/discovery/sensors/voltages/rfc1628.inc.php b/includes/discovery/sensors/voltages/rfc1628.inc.php index a89efbbd18..c381668309 100644 --- a/includes/discovery/sensors/voltages/rfc1628.inc.php +++ b/includes/discovery/sensors/voltages/rfc1628.inc.php @@ -16,9 +16,9 @@ if (isset($config['modules_compat']['rfc1628'][$device['os']]) && $config['modul $volt_id = $split_oid[(count($split_oid) - 1)]; $volt_oid = "1.3.6.1.2.1.33.1.2.5.$volt_id"; $divisor = 10; - if ($device['os'] == 'poweralert') { + if ($device['os'] == 'poweralert' || $device['os'] == 'poweralert') { $divisor = 1; - }; + } $volt = (snmp_get($device, $volt_oid, '-O vq') / $divisor); $descr = 'Battery'.(count(explode("\n", $oids)) == 1 ? '' : ' '.($volt_id + 1)); $type = 'rfc1628'; @@ -41,9 +41,9 @@ if (isset($config['modules_compat']['rfc1628'][$device['os']]) && $config['modul $type = 'rfc1628'; $divisor = 10; - if ($device['os'] == 'netmanplus') { + if ($device['os'] == 'netmanplus' || $device['os'] == 'poweralert') { $divisor = 1; - }; + } $current = (snmp_get($device, $volt_oid, '-Oqv') / $divisor); $index = $i; @@ -65,7 +65,7 @@ if (isset($config['modules_compat']['rfc1628'][$device['os']]) && $config['modul $divisor = 10; if ($device['os'] == 'netmanplus' || $device['os'] == 'poweralert') { $divisor = 1; - }; + } $current = (snmp_get($device, $volt_oid, '-Oqv') / $divisor); $index = (100 + $i); @@ -87,7 +87,7 @@ if (isset($config['modules_compat']['rfc1628'][$device['os']]) && $config['modul $divisor = 10; if ($device['os'] == 'netmanplus' || $device['os'] == 'poweralert') { $divisor = 1; - }; + } $current = (snmp_get($device, $volt_oid, '-Oqv') / $divisor); $index = (200 + $i); diff --git a/includes/discovery/storage/eql-storage.inc.php b/includes/discovery/storage/eql-storage.inc.php new file mode 100644 index 0000000000..2951fcd5af --- /dev/null +++ b/includes/discovery/storage/eql-storage.inc.php @@ -0,0 +1,38 @@ + $storage) { + $fstype = $storage['eqliscsiVolumeAdminStatus']; + $descr = $storage['eqliscsiVolumeName']; + $units = 1; + $size = $storage['eqliscsiVolumeSize'] * $units; + $used = $storage['eqliscsiVolumeStatusAllocatedSpace'] * $units; + if (is_int($index)) { + discover_storage($valid_storage, $device, $index, $fstype, 'eql-storage', $descr, $size, $units, $used); + } + else { + // Trying to search the last '.' and take something after it as index + $arrindex = explode(".", $index); + $newindex = (int)(end($arrindex))+0; + if (is_int($newindex)) { + discover_storage($valid_storage, $device, $newindex, $fstype, 'eql-storage', $descr, $size, $units, $used); + } + } + unset($deny, $fstype, $descr, $size, $used, $units, $storage_rrd, $old_storage_rrd, $hrstorage_array); + } +} diff --git a/includes/functions.php b/includes/functions.php index 029bc83ccb..64a7748750 100644 --- a/includes/functions.php +++ b/includes/functions.php @@ -299,7 +299,7 @@ function addHost($host, $snmpver, $port = '161', $transport = 'udp', $quiet = '0 if ($force_add == 1 || isSNMPable($device)) { $snmphost = snmp_get($device, "sysName.0", "-Oqv", "SNMPv2-MIB"); if (empty($snmphost) or ($snmphost == $host || $hostshort = $host)) { - $device_id = createHost ($host, NULL, $snmpver, $port, $transport, $v3, $poller_group, $port_assoc_mode); + $device_id = createHost ($host, NULL, $snmpver, $port, $transport, $v3, $poller_group, $port_assoc_mode, $snmphost); return $device_id; } else { @@ -325,7 +325,7 @@ function addHost($host, $snmpver, $port = '161', $transport = 'udp', $quiet = '0 if ($force_add == 1 || isSNMPable($device)) { $snmphost = snmp_get($device, "sysName.0", "-Oqv", "SNMPv2-MIB"); if (empty($snmphost) || ($snmphost && ($snmphost == $host || $hostshort = $host))) { - $device_id = createHost ($host, $community, $snmpver, $port, $transport,array(),$poller_group, $port_assoc_mode); + $device_id = createHost ($host, $community, $snmpver, $port, $transport,array(),$poller_group, $port_assoc_mode, $snmphost); return $device_id; } else { @@ -575,7 +575,7 @@ function getpollergroup($poller_group='0') { } } -function createHost($host, $community = NULL, $snmpver, $port = 161, $transport = 'udp', $v3 = array(), $poller_group='0', $port_assoc_mode = 'ifIndex') { +function createHost($host, $community = NULL, $snmpver, $port = 161, $transport = 'udp', $v3 = array(), $poller_group='0', $port_assoc_mode = 'ifIndex', $snmphost) { global $config; $host = trim(strtolower($host)); @@ -604,7 +604,7 @@ function createHost($host, $community = NULL, $snmpver, $port = 161, $transport if ($device['os']) { - if (host_exists($host) === false) { + if (host_exists($host, $snmphost) === false) { $device_id = dbInsert($device, 'devices'); if ($device_id) { oxidized_reload_nodes(); @@ -1339,12 +1339,22 @@ function snmpTransportToAddressFamily($transport) { * @return bool true if hostname already exists * false if hostname doesn't exist **/ -function host_exists($hostname) { +function host_exists($hostname, $snmphost='') { + global $config; $count = dbFetchCell("SELECT COUNT(*) FROM `devices` WHERE `hostname` = ?", array($hostname)); if ($count > 0) { return true; } else { + if ($config['allow_duplicate_sysName'] === false && !empty($snmphost)) { + $count = dbFetchCell("SELECT COUNT(*) FROM `devices` WHERE `sysName` = ?", array($snmphost)); + if ($count > 0) { + return true; + } + else { + return false; + } + } return false; } } diff --git a/includes/polling/applications.inc.php b/includes/polling/applications.inc.php index 4258129a65..1ec549482f 100644 --- a/includes/polling/applications.inc.php +++ b/includes/polling/applications.inc.php @@ -6,7 +6,7 @@ d_echo($sql."\n"); $app_rows = dbFetchRows('SELECT * FROM `applications` WHERE `device_id` = ?', array($device['device_id'])); if (count($app_rows)) { - echo 'Applications: '; + echo 'Applications:'; foreach ($app_rows as $app) { $app_include = $config['install_dir'].'/includes/polling/applications/'.$app['app_type'].'.inc.php'; if (is_file($app_include)) { diff --git a/includes/polling/applications/memcached.inc.php b/includes/polling/applications/memcached.inc.php index e5246a40ec..d68013a698 100644 --- a/includes/polling/applications/memcached.inc.php +++ b/includes/polling/applications/memcached.inc.php @@ -4,7 +4,7 @@ $data = $agent_data['app']['memcached'][$app['app_instance']]; $rrd_filename = $config['rrd_dir'].'/'.$device['hostname'].'/app-memcached-'.$app['app_id'].'.rrd'; -echo 'memcached('.$app['app_instance'].') '; +echo ' memcached('.$app['app_instance'].')'; if (!is_file($rrd_filename)) { rrdtool_create( diff --git a/includes/polling/applications/nginx.inc.php b/includes/polling/applications/nginx.inc.php index 14fa549fb5..25950f099b 100644 --- a/includes/polling/applications/nginx.inc.php +++ b/includes/polling/applications/nginx.inc.php @@ -10,7 +10,7 @@ else { $nginx_rrd = $config['rrd_dir'].'/'.$device['hostname'].'/app-nginx-'.$app['app_id'].'.rrd'; -echo " nginx statistics\n"; +echo ' nginx'; list($active, $reading, $writing, $waiting, $req) = explode("\n", $nginx); if (!is_file($nginx_rrd)) { @@ -25,7 +25,7 @@ if (!is_file($nginx_rrd)) { ); } -print "active: $active reading: $reading writing: $writing waiting: $waiting Requests: $req"; +d_echo("active: $active reading: $reading writing: $writing waiting: $waiting Requests: $req"); $fields = array( 'Requests' => $req, 'Active' => $active, diff --git a/includes/polling/applications/rrdcached.inc.php b/includes/polling/applications/rrdcached.inc.php new file mode 100644 index 0000000000..21bb5e4684 --- /dev/null +++ b/includes/polling/applications/rrdcached.inc.php @@ -0,0 +1,102 @@ +. + * + * @package LibreNMS + * @link http://librenms.org + * @copyright 2016 Tony Murray + * @author Tony Murray + */ + +echo ' rrdcached'; + +$data = ""; + +if ($agent_data['app']['rrdcached']) { + $data = $agent_data['app']['rrdcached']; +} else { + d_echo("\nNo Agent Data. Attempting to connect directly to the rrdcached server " . $device['hostname'] . ":42217\n"); + + $sock = fsockopen($device['hostname'], 42217, $errno, $errstr, 5); + + if (!$sock && $device['hostname'] == 'localhost') { + if (file_exists('/var/run/rrdcached.sock')) { + $sock = fsockopen('unix:///var/run/rrdcached.sock'); + } elseif (file_exists('/run/rrdcached.sock')) { + $sock = fsockopen('unix:///run/rrdcached.sock'); + } elseif (file_exists('/tmp/rrdcached.sock')) { + $sock = fsockopen('unix:///tmp/rrdcached.sock'); + } + } + + if ($sock) { + fwrite($sock, "STATS\n"); + $max = -1; + $count = 0; + while ($max == -1 || $count < $max) { + $data .= fgets($sock, 128); + if ($max == -1) { + $max = explode(' ', $data)[0] + 1; + } + $count++; + } + fclose($sock); + } else { + d_echo("ERROR: $errno - $errstr\n"); + } +} + +$rrd_filename = $config['rrd_dir'].'/'.$device['hostname'].'/app-rrdcached-'.$app['app_id'].'.rrd'; + + +if (!is_file($rrd_filename)) { + rrdtool_create( + $rrd_filename, + '--step 300 + DS:queue_length:GAUGE:600:0:U + DS:updates_received:COUNTER:600:0:U + DS:flushes_received:COUNTER:600:0:U + DS:updates_written:COUNTER:600:0:U + DS:data_sets_written:COUNTER:600:0:U + DS:tree_nodes_number:GAUGE:600:0:U + DS:tree_depth:GAUGE:600:0:U + DS:journal_bytes:COUNTER:600:0:U + DS:journal_rotate:COUNTER:600:0:U + '.$config['rrd_rra'] + ); +} +$fields = array(); +foreach (explode("\n", $data) as $line) { + $split = explode(': ', $line); + if (count($split) == 2) { + $name = strtolower(preg_replace('/[A-Z]/', '_$0', lcfirst($split[0]))); + $fields[$name] = $split[1]; + } +} + +rrdtool_update($rrd_filename, $fields); + +$tags = array('name' => 'rrdcached', 'app_id' => $app['app_id']); +influx_update($device,'app',$tags,$fields); + +unset($data); +unset($rrd_filename); +unset($fields); +unset($tags); diff --git a/includes/polling/applications/tinydns.inc.php b/includes/polling/applications/tinydns.inc.php index 235475dd52..6a79eb7037 100644 --- a/includes/polling/applications/tinydns.inc.php +++ b/includes/polling/applications/tinydns.inc.php @@ -25,7 +25,7 @@ */ if (!empty($agent_data['app']['tinydns']) && $app['app_id'] > 0) { - echo ' tinydns '; + echo ' tinydns'; $rrd_filename = $config['rrd_dir'].'/'.$device['hostname'].'/app-tinydns-'.$app['app_id'].'.rrd'; if (!is_file($rrd_filename)) { rrdtool_create( diff --git a/includes/polling/bgp-peers.inc.php b/includes/polling/bgp-peers.inc.php index 93c8fc41bb..34608f1ecc 100644 --- a/includes/polling/bgp-peers.inc.php +++ b/includes/polling/bgp-peers.inc.php @@ -262,14 +262,14 @@ print_r($peer_afis); $cbgp_data= array_pop($cbgp_data); d_echo("$cbgp_data\n"); }//end if - $cbgpPeerAcceptedPrefixes= !empty($cbgp_data['cbgpPeerAcceptedPrefixes'])?$cbgp_data['cbgpPeerAcceptedPrefixes']:''; - $cbgpPeerDeniedPrefixes= !empty($cbgp_data['cbgpPeerDeniedPrefixes'])?$cbgp_data['cbgpPeerDeniedPrefixes']:''; - $cbgpPeerPrefixAdminLimit= !empty($cbgp_data['cbgpPeerPrefixAdminLimit'])?$cbgp_data['cbgpPeerPrefixAdminLimit']:''; - $cbgpPeerPrefixThreshold= !empty($cbgp_data['cbgpPeerPrefixThreshold'])?$cbgp_data['cbgpPeerPrefixThreshold']:''; - $cbgpPeerPrefixClearThreshold= !empty($cbgp_data['cbgpPeerPrefixClearThreshold'])?$cbgp_data['cbgpPeerPrefixClearThreshold']:''; - $cbgpPeerAdvertisedPrefixes= !empty($cbgp_data['cbgpPeerAdvertisedPrefixes'])?$cbgp_data['cbgpPeerAdvertisedPrefixes']:''; - $cbgpPeerSuppressedPrefixes= !empty($cbgp_data['cbgpPeerSuppressedPrefixes'])?$cbgp_data['cbgpPeerSuppressedPrefixes']:''; - $cbgpPeerWithdrawnPrefixes= !empty($cbgp_data['cbgpPeerWithdrawnPrefixes'])?$cbgp_data['cbgpPeerWithdrawnPrefixes']:''; + $cbgpPeerAcceptedPrefixes = $cbgp_data['cbgpPeerAcceptedPrefixes']; + $cbgpPeerDeniedPrefixes = $cbgp_data['cbgpPeerDeniedPrefixes']; + $cbgpPeerPrefixAdminLimit = $cbgp_data['cbgpPeerPrefixAdminLimit']; + $cbgpPeerPrefixThreshold = $cbgp_data['cbgpPeerPrefixThreshold']; + $cbgpPeerPrefixClearThreshold = $cbgp_data['cbgpPeerPrefixClearThreshold']; + $cbgpPeerAdvertisedPrefixes = $cbgp_data['cbgpPeerAdvertisedPrefixes']; + $cbgpPeerSuppressedPrefixes = $cbgp_data['cbgpPeerSuppressedPrefixes']; + $cbgpPeerWithdrawnPrefixes = $cbgp_data['cbgpPeerWithdrawnPrefixes']; unset($cbgp_data); }//end if diff --git a/includes/polling/functions.inc.php b/includes/polling/functions.inc.php index a34ba514e9..796d738519 100644 --- a/includes/polling/functions.inc.php +++ b/includes/polling/functions.inc.php @@ -1,5 +1,6 @@ $sensor['sensor_limit_low'] && $sensor_value <= $sensor['sensor_limit_low'] && $sensor['sensor_alert'] == 1) { + if ($sensor['sensor_limit_low'] != '' && $sensor['sensor_current'] > $sensor['sensor_limit_low'] && $sensor_value < $sensor['sensor_limit_low'] && $sensor['sensor_alert'] == 1) { echo 'Alerting for '.$device['hostname'].' '.$sensor['sensor_descr']."\n"; log_event(ucfirst($class).' '.$sensor['sensor_descr'].' under threshold: '.$sensor_value." $unit (< ".$sensor['sensor_limit_low']." $unit)", $device, $class, $sensor['sensor_id']); } - else if ($sensor['sensor_limit'] != '' && $sensor['sensor_current'] < $sensor['sensor_limit'] && $sensor_value >= $sensor['sensor_limit'] && $sensor['sensor_alert'] == 1) { + else if ($sensor['sensor_limit'] != '' && $sensor['sensor_current'] < $sensor['sensor_limit'] && $sensor_value > $sensor['sensor_limit'] && $sensor['sensor_alert'] == 1) { echo 'Alerting for '.$device['hostname'].' '.$sensor['sensor_descr']."\n"; log_event(ucfirst($class).' '.$sensor['sensor_descr'].' above threshold: '.$sensor_value." $unit (> ".$sensor['sensor_limit']." $unit)", $device, $class, $sensor['sensor_id']); } @@ -274,6 +275,9 @@ function poll_device($device, $options) { } }//end if + // Update device_groups + UpdateGroupsForDevice($device['device_id']); + if (!$options['m']) { // FIXME EVENTLOGGING -- MAKE IT SO WE DO THIS PER-MODULE? // This code cycles through the graphs already known in the database and the ones we've defined as being polled here diff --git a/includes/polling/netstats-icmp.inc.php b/includes/polling/netstats-icmp.inc.php index f324f6a10f..19df0a5c4b 100644 --- a/includes/polling/netstats-icmp.inc.php +++ b/includes/polling/netstats-icmp.inc.php @@ -46,17 +46,7 @@ if ($device['os'] != 'Snom') { $data_array = snmpwalk_cache_oid($device, 'icmp', array(), 'IP-MIB'); - $fields = array(); - - foreach ($oids as $oid) { - if (is_numeric($data_array[0][$oid])) { - $value = $data_array[0][$oid]; - } - else { - $value = 'U'; - } - $fields[$oid] = $value; - } + $fields = $data_array[0]; unset($snmpstring); diff --git a/includes/polling/netstats-snmp.inc.php b/includes/polling/netstats-snmp.inc.php index c1d6b461c0..0bc04e57d0 100644 --- a/includes/polling/netstats-snmp.inc.php +++ b/includes/polling/netstats-snmp.inc.php @@ -49,6 +49,7 @@ if ($device['os'] != 'Snom') { $data_array = snmpwalk_cache_oid($device, 'snmp', array(), 'SNMPv2-MIB'); $fields = $data_array[0]; + unset($fields['snmpEnableAuthenTraps']); if (isset($data_array[0]['snmpInPkts']) && isset($data_array[0]['snmpOutPkts'])) { if (!file_exists($rrd_file)) { diff --git a/includes/polling/netstats-tcp.inc.php b/includes/polling/netstats-tcp.inc.php index d763e2a30b..3d060f6e4b 100644 --- a/includes/polling/netstats-tcp.inc.php +++ b/includes/polling/netstats-tcp.inc.php @@ -36,17 +36,7 @@ if ($device['os'] != 'Snom') { $data = snmp_get_multi($device, $snmpstring, '-OQUs', 'TCP-MIB'); - $fields = array(); - - foreach ($oids as $oid) { - if (is_numeric($data[0][$oid])) { - $value = $data[0][$oid]; - } - else { - $value = 'U'; - } - $fields[$oid] = $value; - } + $fields = $data[0]; unset($snmpstring); diff --git a/includes/polling/os/buffalo.inc.php b/includes/polling/os/buffalo.inc.php new file mode 100644 index 0000000000..9ae6f0c719 --- /dev/null +++ b/includes/polling/os/buffalo.inc.php @@ -0,0 +1,14 @@ + + * 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. + */ + +$match = explode(" ", $poll_device['sysDescr']); +$hardware = $match[2]; diff --git a/includes/polling/os/hp3par.inc.php b/includes/polling/os/hp3par.inc.php new file mode 100644 index 0000000000..963e40faf5 --- /dev/null +++ b/includes/polling/os/hp3par.inc.php @@ -0,0 +1,17 @@ + + * 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 (preg_match('/^HP_3PAR (.*), ID: (.*), Serial number: (.*), InForm OS version: (.*)/', $poll_device['sysDescr'], $regexp_result)) { + $hardware = 'HP 3Par '.$regexp_result[1]; + $serial = $regexp_result[3]; + $version = $regexp_result[4]; +} diff --git a/includes/polling/os/poseidon.inc.php b/includes/polling/os/hwg-poseidon.inc.php similarity index 100% rename from includes/polling/os/poseidon.inc.php rename to includes/polling/os/hwg-poseidon.inc.php diff --git a/includes/polling/os/ibmnos.inc.php b/includes/polling/os/ibmnos.inc.php index 88059323de..95dc7cbcc9 100644 --- a/includes/polling/os/ibmnos.inc.php +++ b/includes/polling/os/ibmnos.inc.php @@ -45,3 +45,6 @@ else if (strpos($sysdescr_value, 'IBM Flex System Fabric') !== false) { $version = trim(snmp_get($device, '.1.3.6.1.2.1.47.1.1.1.1.10.1', '-Ovq'), '" '); $serial = trim(snmp_get($device, '.1.3.6.1.2.1.47.1.1.1.1.11.1', '-Ovq'), '" '); }//end if +else if (strpos($sysdescr_value, 'IBM Networking OS 1/10Gb Uplink Ethernet Switch Module') !== false) { + $hardware = "IBM BladeCenter 1/10Gb Uplink Ethernet Switch Module"; +}//end if diff --git a/includes/polling/os/oracle-ilom.inc.php b/includes/polling/os/oracle-ilom.inc.php new file mode 100644 index 0000000000..60166f3b34 --- /dev/null +++ b/includes/polling/os/oracle-ilom.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 (preg_match('/^(.*), ILOM v(.*), (.*)/', $poll_device['sysDescr'], $regexp_result)) { + $hardware = 'Oracle ' . $regexp_result[1]; + $version = $regexp_result[2]; +} diff --git a/includes/polling/os/xirrus_aos.inc.php b/includes/polling/os/xirrus_aos.inc.php new file mode 100644 index 0000000000..458b0e2670 --- /dev/null +++ b/includes/polling/os/xirrus_aos.inc.php @@ -0,0 +1,4 @@ + $ventry) { + if (!array_key_exists('eqliscsiVolumeName', $ventry)) continue; + if (is_int($index)) $iind = $index; + else { + $arrindex = explode(".", $index); + $iind = (int)(end($arrindex))+0; + } + if (is_int($iind)) $storage_cache10[$iind] = $ventry; +} +d_echo($storage_cache10); + +foreach ($storage_cache2['eql-storage'] as $index => $vsentry) { + if (!array_key_exists('eqliscsiVolumeStatusAvailable', $vsentry)) continue; + if (is_int($index)) $iind = $index; + else { + $arrindex = explode(".", $index); + $iind = (int)(end($arrindex))+0; + } + if (is_int($iind)) $storage_cache20[$iind] = $vsentry; +} +d_echo($storage_cache20); + +$entry1 = $storage_cache10[$storage[storage_index]]; +$entry2 = $storage_cache20[$storage[storage_index]]; + +$storage['units'] = 1; +$storage['size'] = ($entry1['eqliscsiVolumeSize'] * $storage['units']); +$storage['used'] = ($entry2['eqliscsiVolumeStatusAllocatedSpace'] * $storage['units']); +$storage['free'] = ($storage['size'] - $storage['used']); diff --git a/includes/polling/unix-agent.inc.php b/includes/polling/unix-agent.inc.php index 43a4f499a5..d5fdd2104b 100644 --- a/includes/polling/unix-agent.inc.php +++ b/includes/polling/unix-agent.inc.php @@ -52,20 +52,21 @@ if ($device['os_group'] == 'unix') { $graphs['agent'] = true; + $agentapps = array( + "apache", + "bind", + "ceph", + "mysql", + "nginx", + "powerdns", + "proxmox", + "rrdcached", + "tinydns"); + foreach (explode('<<<', $agent_raw) as $section) { list($section, $data) = explode('>>>', $section); list($sa, $sb) = explode('-', $section, 2); - $agentapps = array( - "apache", - "ceph", - "mysql", - "nginx", - "bind", - "powerdns", - "proxmox", - "tinydns"); - if (in_array($section, $agentapps)) { $agent_data['app'][$section] = trim($data); } @@ -113,7 +114,7 @@ if ($device['os_group'] == 'unix') { if (file_exists("includes/polling/applications/$key.inc.php")) { d_echo("Enabling $key for ".$device['hostname']." if not yet enabled\n"); - if (in_array($key, array('apache', 'mysql', 'nginx', 'proxmox', 'ceph', 'powerdns'))) { + if (in_array($key, $agentapps)) { if (dbFetchCell('SELECT COUNT(*) FROM `applications` WHERE `device_id` = ? AND `app_type` = ?', array($device['device_id'], $key)) == '0') { echo "Found new application '$key'\n"; dbInsert(array('device_id' => $device['device_id'], 'app_type' => $key, 'app_status' => '', 'app_instance' => ''), 'applications'); diff --git a/includes/polling/wireless/xirrus.inc.php b/includes/polling/wireless/xirrus.inc.php new file mode 100644 index 0000000000..ca7ccf9b47 --- /dev/null +++ b/includes/polling/wireless/xirrus.inc.php @@ -0,0 +1,57 @@ + $radio) { + + $radioName = $radio['realtimeMonitorIfaceName']; + $associations[$radioName]=0; + $rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/xirrus_stats-$radioName.rrd"; + if (!is_file($rrd_filename)) { + rrdtool_create($rrd_filename, " --step 300 DS:rssi:GAUGE:600:-150:0 DS:dataRate:GAUGE:600:0:1400 DS:noiseFloor:GAUGE:600:-150:0".$config['rrd_rra']); + } + rrdtool_update($rrd_filename, array( + 'rssi'=>$rssi[$idx]['realtimeMonitorAverageRSSI'], + 'dataRate'=>$dataRate[$idx]['realtimeMonitorAverageDataRate'], + 'noiseFloor'=>$noiseFloor[$idx]['realtimeMonitorNoiseFloor'] + )); + +} +// cleanup +unset($rrd_filename); unset($radios); unset($rssi); unset($radioName); + +// if this config flag is true, don't poll for stations +// this in case of large APs which may have many stations +// to prevent causing long polling times +if ($config['xirrus_disable_stations']!=true) { + // station associations + // custom RRDs and graph as each AP may have 16 radios + $assoc = snmpwalk_cache_oid($device, 'XIRRUS-MIB::stationAssociationIAP', array(), 'XIRRUS-MIB'); + foreach($assoc as $s) { + $radio = array_pop($s); + $associations[$radio]++; + } + unset($radio); unset($assoc); + // write to rrds + foreach($associations as $radio => $count) { + $rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/xirrus_users-$radio.rrd"; + if (!is_file($rrd_filename)) { + rrdtool_create($rrd_filename, " --step 300 DS:stations:GAUGE:600:0:3200".$config['rrd_rra']); + } + rrdtool_update($rrd_filename, array('stations'=>$count)); + } + // cleanup + unset($assocations); unset($rrd_filename); + $graphs['xirrus_stations'] = TRUE; +} else { + $graphs['xirrus_stations'] = FALSE; +} + +$graphs['xirrus_rssi'] = TRUE; +$graphs['xirrus_dataRates'] = TRUE; +$graphs['xirrus_noiseFloor'] = TRUE; +$graphs['xirrus_stations'] = TRUE; diff --git a/mibs/IMM-MIB b/mibs/IMM-MIB new file mode 100644 index 0000000000..ff41a95a6e --- /dev/null +++ b/mibs/IMM-MIB @@ -0,0 +1,4534 @@ +-- *************************************************************************** +-- *************************************************************************** +-- +-- File : imm.mib +-- Description : Integrated Management Module mib for SNMP +-- By : IBM +-- Version : 1.4 +-- Date : October 28, 2010 +-- +-- +-- Copyright (c) 2007 IBM All Rights Reserved. +-- +-- +-- Contains MIB description for: +-- This MIB is to be used to provide configuration support of IMM as well as monitoring support +-- for the system. +-- *************************************************************************** +-- *************************************************************************** +-- *************************************************************************** +-- Revisions: +-- *************************************************************************** + IMM-MIB DEFINITIONS ::= BEGIN + + IMPORTS + OBJECT-TYPE FROM RFC-1212 + enterprises FROM RFC1155-SMI + -- DisplayString FROM RFC1213-MIB + IpAddress FROM RFC1155-SMI + DisplayString FROM RFC1213-MIB + TRAP-TYPE FROM RFC-1215; + + InetAddressIPv6 ::= TEXTUAL-CONVENTION + DISPLAY-HINT "02x:02x:02x:02x:02x:02x:02x:02x" + STATUS current + DESCRIPTION + "Represents an IPv6 network address. Since MIB browsers + may require different formats, the address is + expected to be the 16 byte address in network-byte order, + and shortened formats such as 0::0 are not accepted in SET + operations. Two common examples are: + + The NetSNMP command line will accept SET requests like: + snmpset -v1 -cprivate s 2001:00:00:00:FFFF:CCC4:BBB2:AAA6 + + Other MIB browsers may require the SET request value to be formatted as: + # 0x20 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xFF 0xCC 0xC4 0xBB 0xB2 0xAA 0xA6" + SYNTAX OCTET STRING (SIZE (16)) + -- IBM enterprise group + ibm OBJECT IDENTIFIER ::= { enterprises 2 } + + -- IBM products group + ibmAgents OBJECT IDENTIFIER ::= { ibm 3 } + + -- IBM e-Server Advanced System Management Support Processor(SP) agent group + netfinitySupportProcessorAgent OBJECT IDENTIFIER ::= { ibmAgents 51 } + + -- IBM integrated Management Module + ibmIntegratedManagementModuleMIB OBJECT IDENTIFIER ::= { netfinitySupportProcessorAgent 3 } + +-- *************************************************************************** +-- Start: Define groups of objects within the ibmRemoteSupSnmpMIB +-- *************************************************************************** + --This group of objects provides the various environmental monitors for the + -- local system and the IMM + monitors OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 1 } + + --This group of objects provides the error log objects for the IMM + errorLogs OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 2 } + + --This group of objects provides configuration functions for the IMM + configureSP OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 3 } + + --This group of objects provides configuration functions for the system(server) + generalSystemSettings OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 4 } + + --This group of objects provides configuration functions for system power + systemPower OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 5 } + + --This group of objects provides functions to boot the IMM and system + restartReset OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 6 } + + --This group of objects provides functions to update the IMM firmware + firmwareUpdate OBJECT IDENTIFIER ::= { ibmIntegratedManagementModuleMIB 7 } + +-- **************************************************************************** +-- Monitors +-- **************************************************************************** + -- ************************************************************************ + -- Temperature + -- ************************************************************************ + temperature OBJECT IDENTIFIER ::= { monitors 1 } + tempNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The present number of rows in the temperature table." + ::= { temperature 1 } + + tempTable OBJECT-TYPE + SYNTAX SEQUENCE OF TempEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains temperature measurement information." + ::= { temperature 2 } + + tempEntry OBJECT-TYPE + SYNTAX TempEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains parameters related to a temperature measurement channel." + INDEX { tempIndex } + ::= { tempTable 1 } + + TempEntry ::= + SEQUENCE { + tempIndex INTEGER, + tempDescr DisplayString, + tempReading INTEGER, + tempNominalReading INTEGER, + tempNonRecovLimitHigh INTEGER, + tempCritLimitHigh INTEGER, + tempNonCritLimitHigh INTEGER, + tempNonRecovLimitLow INTEGER, + tempCritLimitLow INTEGER, + tempNonCritLimitLow INTEGER + } + + tempIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular + temperature measurement channel." + ::= { tempEntry 1 } + + tempDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + + STATUS mandatory + DESCRIPTION "A description of the temperature measurement + channel." + ::= { tempEntry 2 } + + tempReading OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The measured temperature." + ::= { tempEntry 3 } + + tempNominalReading OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The nominal temperature, if available." + ::= { tempEntry 4 } + + tempNonRecovLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The non-recoverable limit for the measured temperature. If + the measured value rises above this limit a trap is sent." + ::= { tempEntry 5} + + tempCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The critical limit for the measured temperature. If + the measured value rises above this limit a trap is sent." + ::= { tempEntry 6} + + tempNonCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The non-critical limit for the measured temperature. If + the measured value rises above this limit a trap is sent." + ::= { tempEntry 7} + + tempNonRecovLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The non-recoverable limit for the measured temperature. If + the measured value falls below this limit a trap is sent." + ::= { tempEntry 8} + + tempCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The critical limit for the measured temperature. If + the measured value falls below this limit a trap is sent." + ::= { tempEntry 9} + + tempNonCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Degrees Celsius" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The non-critical limit for the measured temperature. If + the measured value falls below this limit a trap is sent." + ::= { tempEntry 10} + + -- ************************************************************************ + -- Voltages + -- ************************************************************************ + voltage OBJECT IDENTIFIER ::= { monitors 2 } + -------------------------------------------------------------------------------- + voltNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The present number of rows in the voltage table." + ::= { voltage 1 } + + voltTable OBJECT-TYPE + SYNTAX SEQUENCE OF VoltEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains voltage measurement information." + ::= { voltage 2 } + + voltEntry OBJECT-TYPE + SYNTAX VoltEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains parameters related to a + voltage measurement channel." + INDEX { voltIndex } + ::= { voltTable 1 } + + VoltEntry ::= + SEQUENCE { + voltIndex INTEGER, + voltDescr DisplayString, + voltReading INTEGER, + voltNominalReading INTEGER, + voltNonRecovLimitHigh INTEGER, + voltCritLimitHigh INTEGER, + voltNonCritLimitHigh INTEGER, + voltNonRecovLimitLow INTEGER, + voltCritLimitLow INTEGER, + voltNonCritLimitLow INTEGER + } + + voltIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular + voltage measurement channel." + ::= { voltEntry 1 } + + voltDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the voltage measurement channel." + ::= { voltEntry 2 } + + voltReading OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The measured voltage." + ::= { voltEntry 3 } + + voltNominalReading OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The nominal voltage, if available." + ::= { voltEntry 4 } + + voltNonRecovLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The high non-recoverable limit for the measured voltage. If the + measured value falls above this limit a trap is sent." + ::= { voltEntry 5 } + + voltCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The high critical limit for the measured voltage. If the + measured value rises above this limit a trap is sent." + ::= { voltEntry 6 } + + voltNonCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The high non-critical limit for the measured voltage. If the + measured value rises above this limit a trap is sent." + ::= { voltEntry 7 } + + voltNonRecovLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The low non-recoverable limit for the measured voltage. If the + measured value falls below this limit a trap is sent." + ::= { voltEntry 8 } + + voltCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The low critical limit for the measured voltage. If the + measured value falls below this limit a trap is sent." + ::= { voltEntry 9 } + + voltNonCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "Millivolts" + ACCESS read-write + STATUS mandatory + DESCRIPTION "The low non-critical limit for the measured voltage. If the + measured value falls below this limit a trap is sent." + ::= { voltEntry 10 } + + + -- ************************************************************************ + -- Fans + -- ************************************************************************ + fans OBJECT IDENTIFIER ::= { monitors 3 } + fanNumber OBJECT-TYPE + SYNTAX Gauge + ACCESS read-only + STATUS mandatory + DESCRIPTION "The present number of rows in the fan table." + ::= { fans 1 } + + fanTable OBJECT-TYPE + SYNTAX SEQUENCE OF FanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "This table contains fan information." + ::= { fans 2 } + + fanEntry OBJECT-TYPE + SYNTAX FanEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION "Each row contains parameters related to a fan." + INDEX { fanIndex } + ::= { fanTable 1 } + + FanEntry ::= + SEQUENCE { + fanIndex INTEGER, + fanDescr DisplayString, + fanSpeed OCTET STRING, + fanNonRecovLimitHigh INTEGER, + fanCritLimitHigh INTEGER, + fanNonCritLimitHigh INTEGER, + fanNonRecovLimitLow INTEGER, + fanCritLimitLow INTEGER, + fanNonCritLimitLow INTEGER + } + + fanIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION "This column is used to identify a particular fan." + ::= { fanEntry 1 } + + fanDescr OBJECT-TYPE + SYNTAX DisplayString (SIZE(0..31)) + ACCESS read-only + STATUS mandatory + DESCRIPTION "A description of the fan measurement channel." + ::= { fanEntry 2 } + + + fanSpeed OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Fan speed expressed in percent(%) of maximum RPM. + An octet string expressed as 'ddd% of maximum' where: + d is a decimal digit or blank space for a leading zero. + If the fan is determined not to be running or + the fan speed cannot be determined, the string will + indicate 'Offline'." + ::= { fanEntry 3 } + + fanNonRecovLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The high non-recoverable limit for the measured fan. If the + measured value falls above this limit a trap is sent." + ::= { fanEntry 4 } + + fanCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The high critical limit for the measured fan. If the + measured value rises above this limit a trap is sent." + ::= { fanEntry 5 } + + fanNonCritLimitHigh OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The high non-critical limit for the measured fan. If the + measured value rises above this limit a trap is sent." + ::= { fanEntry 6 } + + fanNonRecovLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The low non-recoverable limit for the measured fan. If the + measured value falls below this limit a trap is sent." + ::= { fanEntry 7 } + + fanCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The low critical limit for the measured fan. If the + measured value falls below this limit a trap is sent." + ::= { fanEntry 8 } + + fanNonCritLimitLow OBJECT-TYPE + SYNTAX INTEGER + UNITS "RPM" + ACCESS read-only + STATUS mandatory + DESCRIPTION "The low non-critical limit for the measured fan. If the + measured value falls below this limit a trap is sent." + ::= { fanEntry 9 } + + -- ************************************************************************ + -- System Health + -- ************************************************************************ + systemHealth OBJECT IDENTIFIER ::= { monitors 4 } + + -- *********************************************************************** + -- System Health Status + -- *********************************************************************** + systemHealthStat OBJECT-TYPE + SYNTAX INTEGER { + nonRecoverable(0), + critical(2), + nonCritical(4), + normal(255) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates status of system health for the + system in which the IMM resides. + Value of 'nonRecoverable' indicates a severe error has occurred + and the system may not be functioning. A value of + 'critical' indicates that a error has occurred but + the system is currently functioning properly. A value of + 'nonCritical' indicates that a condition has occurred + that may change the state of the system in the future but currently + the system is working properly. A value of + 'normal' indicates that the system is operating normally." + ::= { systemHealth 1 } + + -- *********************************************************************** + -- System Health Summary + -- *********************************************************************** + systemHealthSummaryTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemHealthSummaryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of System Health summary. Contains more detailed + information about the reasons for the overall system + health status." + ::= { systemHealth 2 } + + systemHealthSummaryEntry OBJECT-TYPE + SYNTAX SystemHealthSummaryEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System Health Summary entry" + INDEX { systemHealthSummaryIndex } + ::= { systemHealthSummaryTable 1 } + + + SystemHealthSummaryEntry ::= SEQUENCE { + systemHealthSummaryIndex INTEGER, + systemHealthSummarySeverity OCTET STRING, + systemHealthSummaryDescription OCTET STRING + } + + + systemHealthSummaryIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System health summary index." + ::= { systemHealthSummaryEntry 1 } + + systemHealthSummarySeverity OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System health summary severity." + ::= { systemHealthSummaryEntry 2 } + + systemHealthSummaryDescription OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System health summary description." + ::= { systemHealthSummaryEntry 3 } + + -- *********************************************************************** + -- Vital Product Data(VPD) information + -- *********************************************************************** + vpdInformation OBJECT IDENTIFIER ::= { monitors 5 } + + -- *********************************************************************** + -- IMM VPD + -- *********************************************************************** + + immVpdTable OBJECT-TYPE + SYNTAX SEQUENCE OF IMMVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of IMM VPD." + ::= { vpdInformation 1 } + + immVpdEntry OBJECT-TYPE + SYNTAX IMMVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "iMBC VPD entry." + INDEX { immVpdIndex } + ::= { immVpdTable 1 } + + + IMMVpdEntry ::= SEQUENCE { + immVpdIndex INTEGER, + immVpdType OCTET STRING, + immVpdVersionString OCTET STRING, + immVpdReleaseDate OCTET STRING + } + + + immVpdIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IMM VPD index." + ::= { immVpdEntry 1 } + + immVpdType OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IMM VPD Type. Indicates either Bios or Diag or spFimware VPD" + ::= { immVpdEntry 2 } + + immVpdVersionString OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IMM VPD Version Number of the software(Bios/Diag/spFirmware)." + ::= { immVpdEntry 3 } + + immVpdReleaseDate OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "IMM VPD Release Date of when the software(Bios/Diag/spFirmware) was released." + ::= { immVpdEntry 4 } + + + -- *********************************************************************** + -- Machine Level VPD + -- *********************************************************************** + machineVpd OBJECT IDENTIFIER ::= { vpdInformation 2 } + + + machineLevelVpd OBJECT IDENTIFIER ::= { machineVpd 1 } + + machineLevelVpdMachineType OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine type VPD information." + ::= { machineLevelVpd 1 } + + machineLevelVpdMachineModel OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine model VPD information." + ::= { machineLevelVpd 2 } + + machineLevelSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine serial number VPD information." + ::= { machineLevelVpd 3 } + + machineLevelUUID OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine UUID(Universal Unique ID information)." + ::= { machineLevelVpd 4 } + + machineLevelProductName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Machine Product Name (e.g. System x3650 M2)." + ::= { machineLevelVpd 5 } + -- *********************************************************************** + -- System Component Level VPD + -- *********************************************************************** + systemComponentLevelVpdTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemComponentLevelVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of the system component hardware VPD information. View as a + table and not as individual entries for consistent results." + ::= { vpdInformation 17 } + + systemComponentLevelVpdEntry OBJECT-TYPE + SYNTAX SystemComponentLevelVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System component hardware VPD entry. View as a table and not as + individual entries for consistent results." + INDEX { componentLevelVpdIndex } + ::= { systemComponentLevelVpdTable 1 } + + SystemComponentLevelVpdEntry ::= SEQUENCE { + componentLevelVpdIndex INTEGER, + componentLevelVpdFruNumber OCTET STRING, + componentLevelVpdFruName OCTET STRING, + componentLevelVpdSerialNumber OCTET STRING, + componentLevelVpdManufacturingId OCTET STRING + } + + componentLevelVpdIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD index. View as a table and not as individual + entries for consistent results." + ::= { systemComponentLevelVpdEntry 1 } + + componentLevelVpdFruNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD FRU number. View as a table and not as + individual entries for consistent results." + ::= { systemComponentLevelVpdEntry 2 } + + componentLevelVpdFruName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD FRU name. View as a table and not as + individual entries for consistent results." + ::= { systemComponentLevelVpdEntry 3 } + + componentLevelVpdSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD serial number. View as a table and not as + individual entries for consistent results." + ::= { systemComponentLevelVpdEntry 4 } + + componentLevelVpdManufacturingId OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD manufacturing ID. View as a table and not as + individual entries for consistent results." + ::= { systemComponentLevelVpdEntry 5 } + + -- *********************************************************************** + -- System Component Level VPD Tracking log + -- *********************************************************************** + systemComponentLevelVpdTrackingTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemComponentLevelVpdTrackingEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of system component hardware VPD tracking activity log. View as + a table and not as individual entries for consistent results." + ::= { vpdInformation 18 } + + systemComponentLevelVpdTrackingEntry OBJECT-TYPE + SYNTAX SystemComponentLevelVpdTrackingEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System component hardware VPD tracking activity log entry. View as a + table and not as individual entries for consistent results." + INDEX { componentLevelVpdTrackingIndex } + ::= { systemComponentLevelVpdTrackingTable 1 } + + SystemComponentLevelVpdTrackingEntry ::= SEQUENCE { + componentLevelVpdTrackingIndex INTEGER, + componentLevelVpdTrackingFruNumber OCTET STRING, + componentLevelVpdTrackingFruName OCTET STRING, + componentLevelVpdTrackingSerialNumber OCTET STRING, + componentLevelVpdTrackingManufacturingId OCTET STRING, + componentLevelVpdTrackingAction OCTET STRING, + componentLevelVpdTrackingTimestamp OCTET STRING + + } + + componentLevelVpdTrackingIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log index. View as a table + and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 1 } + + componentLevelVpdTrackingFruNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log FRU number. View as a + table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 2 } + + componentLevelVpdTrackingFruName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log FRU name. View as a + table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 3 } + + componentLevelVpdTrackingSerialNumber OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log serial number. View as + a table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 4 } + + componentLevelVpdTrackingManufacturingId OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log manufacturing ID. View + as a table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 5 } + + componentLevelVpdTrackingAction OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log action(added/removed). + View as a table and not as individual entries for consistent results." + ::= {systemComponentLevelVpdTrackingEntry 6 } + + componentLevelVpdTrackingTimestamp OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System component level VPD tracking activity log timestanp. + View as a table and not as individual entries for consistent results." + ::= { systemComponentLevelVpdTrackingEntry 7 } + + -- ******************************************************************************** + -- Host MAC Address VPD + -- ******************************************************************************** + + hostMACAddressTable OBJECT-TYPE + SYNTAX SEQUENCE OF HostMACAddressEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of MAC addresses of the host NICs. + For consistent results, view as a table and not as individual entries." + ::= { vpdInformation 19 } + + hostMACAddressEntry OBJECT-TYPE + SYNTAX HostMACAddressEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Host MAC address entry. + For consistent results, view as a table and not as individual entries." + INDEX { hostMACAddressIndex } + ::= { hostMACAddressTable 1 } + + HostMACAddressEntry ::= SEQUENCE { + hostMACAddressIndex INTEGER, + hostMACAddressDescription DisplayString, + hostMACAddress OCTET STRING} + + hostMACAddressIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Host MAC address index. View as a table and not as individual + entries for consistent results." + ::= { hostMACAddressEntry 1 } + + hostMACAddressDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Description of the MAC Address entry. View as a table and not as + individual entries for consistent results." + ::= { hostMACAddressEntry 2 } + + hostMACAddress OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Host MAC address must be a hexadecimal value between 000000000000 - FFFFFFFFFFFF. + This value must be in the form XX:XX:XX:XX:XX:XX View as a table and not as + individual entries for consistent results." + ::= { hostMACAddressEntry 3 } + + -- *********************************************************************** + -- System CPU VPD + -- *********************************************************************** + systemCPUVpdTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemCPUVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of the system CPU VPD information. View as a + table and not as individual entries for consistent results." + ::= { vpdInformation 20 } + + systemCPUVpdEntry OBJECT-TYPE + SYNTAX SystemCPUVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System CPU VPD entry. View as a table and not as + individual entries for consistent results." + INDEX { cpuVpdIndex } + ::= { systemCPUVpdTable 1 } + + SystemCPUVpdEntry ::= SEQUENCE { + cpuVpdIndex INTEGER, + cpuVpdDescription DisplayString, + cpuVpdSpeed INTEGER, + cpuVpdIdentifier DisplayString, + cpuVpdType DisplayString, + cpuVpdFamily DisplayString, + cpuVpdCores INTEGER, + cpuVpdThreads INTEGER, + cpuVpdVoltage INTEGER, + cpuVpdDataWidth INTEGER } + + cpuVpdIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System CPU level VPD index. View as a table and not as individual + entries for consistent results." + ::= { systemCPUVpdEntry 1 } + + cpuVpdDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System CPU Description. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 2 } + + + cpuVpdSpeed OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu speed in MHz. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 3 } + + cpuVpdIdentifier OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System CPU Identifier. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 4 } + + cpuVpdType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu Type. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 5 } + + cpuVpdFamily OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu Family. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 6 } + + cpuVpdCores OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu number of cores. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 7 } + + cpuVpdThreads OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu number of threads. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 8 } + + cpuVpdVoltage OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu voltage in millivolts (1125 = 1.125 volts). + View as a table and not as individual entries for consistent + results." + ::= { systemCPUVpdEntry 9 } + + cpuVpdDataWidth OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System cpu data width in bits. View as a table and not as + individual entries for consistent results." + ::= { systemCPUVpdEntry 10 } + + -- *********************************************************************** + -- System Memory VPD + -- *********************************************************************** + systemMemoryVpdTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemMemoryVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of the system Memory VPD information. View as a + table and not as individual entries for consistent results." + ::= { vpdInformation 21 } + + systemMemoryVpdEntry OBJECT-TYPE + SYNTAX SystemMemoryVpdEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "System Memory VPD entry. View as a table and not as + individual entries for consistent results." + INDEX { memoryVpdIndex } + ::= { systemMemoryVpdTable 1 } + + SystemMemoryVpdEntry ::= SEQUENCE { + memoryVpdIndex INTEGER, + memoryVpdDescription DisplayString, + memoryVpdPartNumber DisplayString, + memoryVpdFRUSerialNumber DisplayString, + memoryVpdManufactureDate DisplayString, + memoryVpdType DisplayString, + memoryVpdSize INTEGER } + + memoryVpdIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System Memory level VPD index. View as a table and not as individual + entries for consistent results." + ::= { systemMemoryVpdEntry 1 } + + memoryVpdDescription OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory Description (e.g. DIMM 1). View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 2 } + + memoryVpdPartNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System Memory Part Number. View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 3 } + + memoryVpdFRUSerialNumber OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory Serial Number. View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 4 } + + memoryVpdManufactureDate OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory Manufacture Date in week/year format (e.g. 3609). + View as a table and not as individual entries for consistent + results." + ::= { systemMemoryVpdEntry 5 } + + memoryVpdType OBJECT-TYPE + SYNTAX DisplayString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory Type (e.g. DDR III SDRAM). View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 6 } + + memoryVpdSize OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "System memory size in GigaBytes. View as a table and not as + individual entries for consistent results." + ::= { systemMemoryVpdEntry 7 } + + +-- *********************************************************************** +-- Error Log Information +-- *********************************************************************** + -- *********************************************************************** + -- Event Log Information + -- *********************************************************************** + eventLog OBJECT IDENTIFIER ::= { errorLogs 1 } + + eventLogTable OBJECT-TYPE + SYNTAX SEQUENCE OF EventLogEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of event logs. View as a table and not as individual entries + for consistent results." + ::= { eventLog 1 } + + eventLogEntry OBJECT-TYPE + SYNTAX EventLogEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Event log entries. View as a table and not as individual entries for + consistent results." + INDEX { eventLogIndex } + ::= { eventLogTable 1 } + + + EventLogEntry ::= SEQUENCE { + eventLogIndex INTEGER, + eventLogString OCTET STRING, + eventLogSeverity INTEGER, + eventLogDate OCTET STRING, + eventLogTime OCTET STRING + } + + + eventLogIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Event log index number. View as a table and not as individual entries for + consistent results." + ::= { eventLogEntry 1 } + + eventLogString OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains a string of information to detail the event. View as a table and + not as individual entries for consistent results." + ::= { eventLogEntry 2} + + eventLogSeverity OBJECT-TYPE + SYNTAX INTEGER{ + error(0), + warning(1), + information(2), + other(3) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains a information to detail the severity of the event. View as a table and + not as individual entries for consistent results." + ::= { eventLogEntry 3} + + eventLogDate OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Date of the Event occured. View as a table and + not as individual entries for consistent results." + ::= { eventLogEntry 4} + + eventLogTime OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The Time of the Event occured. View as a table and + not as individual entries for consistent results." + ::= { eventLogEntry 5} + + + eventLogClr OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Clear the event log." + ::= { eventLog 3 } + + +-- *********************************************************************** +-- Configure the IMM +-- *********************************************************************** + -- *********************************************************************** + -- Remote Access Configuration + -- *********************************************************************** + remoteAccessConfig OBJECT IDENTIFIER ::= { configureSP 1 } + + -- *********************************************************************** + -- General Remote Access and Remote Alerts Configuration + -- *********************************************************************** + generalRemoteCfg OBJECT IDENTIFIER ::= { remoteAccessConfig 1 } + + remoteAlertRetryDelay OBJECT-TYPE + SYNTAX INTEGER { + noDelay(0), + oneHalfMinute(30), + oneMinute(60), + oneAndHalfMinutes(90), + twoMinutes(120), + twoAndHalfMinutes(150), + threeMinutes(180), + threeAndHalfMinutes(210), + fourMinutes(240) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number in seconds to delay between retries if sending a + remote alert is unsuccessful." + ::= { generalRemoteCfg 1 } + + remoteAlertRetryCount OBJECT-TYPE + SYNTAX INTEGER { + noretry(0), + retry1(1), + retry2(2), + retry3(3), + retry4(4), + retry5(5), + retry6(6), + retry7(7), + retry8(8) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number of additional times a remote alert will be + retried if not succesfully sent. A value of zero indicates + no retries will be attempted." + ::= { generalRemoteCfg 2 } + + remoteAlertEntryDelay OBJECT-TYPE + SYNTAX INTEGER { + noDelay(0), + oneHalfMinute(30), + oneMinute(60), + oneAndHalfMinutes(90), + twoMinutes(120), + twoAndHalfMinutes(150), + threeMinutes(180), + threeAndHalfMinutes(210), + fourMinutes(240) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number in seconds to delay between entries if sending a + remote alert is unsuccessful." + ::= { generalRemoteCfg 3 } + + snmpCriticalAlerts OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,criticalAlerts will be sent to + SNMP , else critical alerts will not be sent." + ::= { generalRemoteCfg 4 } + + snmpWarningAlerts OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,warningAlerts will be sent to + SNMP , else warning alerts will not be sent." + ::= { generalRemoteCfg 5 } + + snmpSystemAlerts OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,systemAlerts will be sent to + SNMP , else system alerts will not be sent." + ::= { generalRemoteCfg 6 } + + remoteAccessTamperDelay OBJECT-TYPE + SYNTAX INTEGER { + oneMinute(1), + twoMinutes(2), + fiveMinutes(5), + tenMinutes(10), + fifteenMinutes(15), + twentyMinutes(20), + thirtyMinutes(30), + sixtyMinutes(60), + oneTwentyMinutes(120), + oneEightyMinutes(180), + twoFortyMinutes(240) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number in minutes to prohibit a remote login attempt + after more than 5 sequential login attempts have failed." + ::= { generalRemoteCfg 7 } + + userAuthenticationMethod OBJECT-TYPE + SYNTAX INTEGER { + localOnly(0), + ldapOnly(1), + localFirstThenLdap(2), + ldapFirstThenLocal(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Use this field to specify how users attempting to login should be authenticated. + There are two methods: + Local authentication. Userid and password are verified by searching the list + of users locally configured under Local Login Profiles. + LDAP based authentication. Users are authenticated via a remote LDAP server. + One or both authentication methods can be selected. If both methods should be + used, the order must be specified." + ::= { generalRemoteCfg 8 } + + + webInactivityTimeout OBJECT-TYPE + SYNTAX INTEGER { + oneMinutes(0), + fiveMinutes(1), + tenMinutes(2), + fifteenMinutes(3), + twentyMinutes(4), + noTimeout(5), + userPicksTimeout(6) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Use this field to indicate how long, in minutes, the IMM subsystem will wait + before disconnecting an inactive web session. Select the no timeout option to + disable this feature. Select the User picks timeout option if the timeout should + instead be selected by the user during the login process." + ::= { generalRemoteCfg 9 } + + + -- *********************************************************************** + -- SNMP alert filters + -- *********************************************************************** + + snmpAlertFilters OBJECT IDENTIFIER ::= { generalRemoteCfg 10 } + + safSpTrapTempC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Temperature threshold exceeded." + ::= { snmpAlertFilters 2 } + + safSpTrapVoltC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Voltage threshold exceeded." + ::= { snmpAlertFilters 3 } + + safSpTrapPowerC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Power failure." + ::= { snmpAlertFilters 4 } + + safSpTrapHdC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Hard disk drive failure." + ::= { snmpAlertFilters 5 } + + safSpTrapFanC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Single Fan failure." + ::= { snmpAlertFilters 6 } + + + safSpTrapIhcC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Incompatible hardware configuration." + ::= { snmpAlertFilters 7 } + + safSpTrapCPUC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: CPU Error." + ::= { snmpAlertFilters 8 } + + safSpTrapMemoryC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Memory Error." + ::= { snmpAlertFilters 9 } + + safSpTrapRdpsC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Redundant Power Supply failure." + ::= { snmpAlertFilters 10 } + + safSpTrapHardwareC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Other Failure - refer to Message ID for specific condition." + ::= { snmpAlertFilters 11 } + + + safSpTrapRdpsN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Redundant Power Supply failure." + ::= { snmpAlertFilters 12 } + + safSpTrapTempN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Temperature threshold exceeded." + ::= { snmpAlertFilters 13 } + + safSpTrapVoltN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Voltage threshold exceeded." + ::= { snmpAlertFilters 14 } + + safSpTrapPowerN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Power." + ::= { snmpAlertFilters 15 } + + safSpTrapFanN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Fan Error." + ::= { snmpAlertFilters 16 } + + safSpTrapCPUN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Memory Error." + ::= { snmpAlertFilters 17 } + + safSpTrapMemoryN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Memory Error." + ::= { snmpAlertFilters 18 } + + safSpTrapHardwareN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Warning - refer to Message ID for specific condition." + ::= { snmpAlertFilters 19 } + + safSpTrapRLogin OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Sev-Off Alert: Event Remote Login." + ::= { snmpAlertFilters 20 } + + + safSpTrapOsToS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: OS Timeout value exceeded." + ::= { snmpAlertFilters 21 } + + safSpTrapAppS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Application Alert. Refer to Message ID for specific condition." + ::= { snmpAlertFilters 22 } + + safSpTrapPowerS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Power Off." + ::= { snmpAlertFilters 23 } + + safSpTrapBootS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: System Boot Failure." + ::= { snmpAlertFilters 24 } + + safSpTrapLdrToS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: OS Loader Timeout." + ::= { snmpAlertFilters 25 } + + safSpTrapPFAS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Predictive Failure Analysis(PFA) information." + ::= { snmpAlertFilters 26 } + + safSpTrapSysLogS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: System Log 75% full." + ::= { snmpAlertFilters 27 } + + safSpTrapNwChangeS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Network change notification." + ::= { snmpAlertFilters 28 } + + -- *********************************************************************** + -- begin account security management + -- *********************************************************************** + customSecuritySettings OBJECT IDENTIFIER ::= { generalRemoteCfg 20 } + + loginPasswordRequired OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If enabled, all users require a login password to access the IMM + via the CLI and Web interfaces. The default value is disabled." + ::= { customSecuritySettings 1 } + + passwordExpirationPeriod OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of days before login passwords expire. The minimum + value is 1 day and the maximum value is 365 days. The default + value is 90 days. A value of 0 disables this option." + ::= { customSecuritySettings 2 } + + minimumPasswordReuseCycle OBJECT-TYPE + SYNTAX INTEGER { + none(0), + onePassword(1), + twoPasswords(2), + threePasswords(3), + fourPasswords(4), + fivePasswords(5) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of unique passwords a user must choose before + reusing a password. The default value is none." + ::= { customSecuritySettings 3 } + + complexPasswordRulesEnforced OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If enabled, password should contains at least one numeric and + one alphabetic character." + ::= { customSecuritySettings 4 } + + minimumPasswordLength OBJECT-TYPE + SYNTAX INTEGER { + passwordLengthOne(1), + passwordLengthTwo(2), + passwordLengthThree(3), + passwordLengthFour(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Minimum length of the password." + ::= { customSecuritySettings 5 } + -- *********************************************************************** + -- IMM Serial Port Configuration + -- *********************************************************************** + serialPortCfg OBJECT IDENTIFIER ::= { remoteAccessConfig 2 } + + + -- *********************************************************************** + -- Serial Redirect + -- *********************************************************************** + serialRedirect OBJECT IDENTIFIER ::= { serialPortCfg 3 } + + enterCLIkeySeq OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..15)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This is the keystroke sequence used to enter the CLI. The same restrictions as + the 'Enter CLI' sequence apply to this field. The sequence is not active for + the telnet interface, since either COM port may be available from the CLI session + for serial redirect (i.e. the meaning is ambiguous). The default value for this + field is '^[(\' i.e. ESC followed by (. + + Note: IMM on some servers does not have serial port support." + ::= { serialRedirect 1 } + + -- *********************************************************************** + -- Remote Alert Profiles + -- *********************************************************************** + remoteAlertIds OBJECT IDENTIFIER ::= { remoteAccessConfig 3 } + + + remoteAlertIdsTable OBJECT-TYPE + SYNTAX SEQUENCE OF RemoteAlertIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of remote alert entries. + This table lets you configure remote alert recipients. + You can define up to 12 unique recipients. + Note: All selected alert events will be sent to all + enabled alert recipients." + ::= { remoteAlertIds 1 } + + remoteAlertIdsEntry OBJECT-TYPE + SYNTAX RemoteAlertIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Remote alert entries." + INDEX { remoteAlertIdEntryIndex } + ::= { remoteAlertIdsTable 1 } + + + RemoteAlertIdsEntry ::= SEQUENCE { + remoteAlertIdEntryIndex INTEGER, + remoteAlertIdEntryStatus INTEGER, + remoteAlertIdEntryName OCTET STRING, + remoteAlertIdEmailAddr OCTET STRING, + remoteAlertIdEntryCriticalAlert INTEGER, + remoteAlertIdEntryWarningAlert INTEGER, + remoteAlertIdEntrySystemAlert INTEGER, + remoteAlertIdEntryAttachmentsToEmailAlerts INTEGER + } + + + remoteAlertIdEntryIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for remote alert entry." + ::= { remoteAlertIdsEntry 1 } + + remoteAlertIdEntryStatus OBJECT-TYPE + SYNTAX INTEGER { + disabled(1), + enabled(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If enabled alerts will be sent to this alert + recipient else alerts will not be sent." + ::= { remoteAlertIdsEntry 2 } + + + remoteAlertIdEntryName OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..50)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A null terminated string that contains + a text description of this entry." + + ::= { remoteAlertIdsEntry 3 } + + remoteAlertIdEmailAddr OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A null terminated string that + contains a E-Mail Address. For example 'jeb@us.ibm.com'. + Used only for a E-mail over Lan." + + ::= { remoteAlertIdsEntry 4} + + remoteAlertIdEntryCriticalAlert OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,criticalAlerts will be sent to this + remote alert receipient,else critical alerts will not be sent." + ::= { remoteAlertIdsEntry 5 } + + + remoteAlertIdEntryWarningAlert OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,warningAlerts will be sent to this + remote alert receipient,else warningAlerts will not be sent." + ::= { remoteAlertIdsEntry 6 } + + remoteAlertIdEntrySystemAlert OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If Enabled,systemAlerts will be sent to this + remote alert receipient,else systemAlerts will not be sent." + ::= { remoteAlertIdsEntry 7 } + + + remoteAlertIdEntryAttachmentsToEmailAlerts OBJECT-TYPE + SYNTAX INTEGER { + noAttachments(0), + attachEventLog(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Indicates if the event log should be attached to + a email alert." + ::= { remoteAlertIdsEntry 8 } + + remoteAlertFiltersTable OBJECT-TYPE + SYNTAX SEQUENCE OF RemoteAlertFiltersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of Alert Filters. The entries (rows) in this table correspond 1-1 with the entries in the + remoteAlertIdsTable. They are correlated by index. " + ::= { remoteAlertIds 2 } + + remoteAlertFiltersEntry OBJECT-TYPE + SYNTAX RemoteAlertFiltersEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Remote Filters entries." + INDEX { rafIndex } + ::= { remoteAlertFiltersTable 1 } + + RemoteAlertFiltersEntry ::= SEQUENCE { + rafIndex INTEGER(0..255), + rafSpTrapTempC INTEGER, + rafSpTrapVoltC INTEGER, + rafSpTrapPowerC INTEGER, + rafSpTrapHdC INTEGER, + rafSpTrapFanC INTEGER, + rafSpTrapIhcC INTEGER, + rafSpTrapCPUC INTEGER, + rafSpTrapMemoryC INTEGER, + rafSpTrapRdpsC INTEGER, + rafSpTrapHardwareC INTEGER, + rafSpTrapRdpsN INTEGER, + rafSpTrapTempN INTEGER, + rafSpTrapVoltN INTEGER, + rafSpTrapPowerN INTEGER, + rafSpTrapFanN INTEGER, + rafSpTrapCPUN INTEGER, + rafSpTrapMemoryN INTEGER, + rafSpTrapHardwareN INTEGER, + rafSpTrapRLogin INTEGER, + rafSpTrapOsToS INTEGER, + rafSpTrapAppS INTEGER, + rafSpTrapPowerS INTEGER, + rafSpTrapBootS INTEGER, + rafSpTrapLdrToS INTEGER, + rafSpTrapPFAS INTEGER, + rafSpTrapSysLogS INTEGER, + rafSpTrapNwChangeS INTEGER + } + + rafIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for User Authority Level entry." + ::= { remoteAlertFiltersEntry 1 } + + + rafSpTrapTempC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Temperature threshold exceeded." + ::= { remoteAlertFiltersEntry 2 } + + rafSpTrapVoltC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Voltage threshold exceeded." + ::= { remoteAlertFiltersEntry 3 } + + rafSpTrapPowerC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Power failure." + ::= { remoteAlertFiltersEntry 4 } + + rafSpTrapHdC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Hard disk drive failure." + ::= { remoteAlertFiltersEntry 5 } + + rafSpTrapFanC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Single Fan failure." + ::= { remoteAlertFiltersEntry 6 } + + + rafSpTrapIhcC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Incompatible hardware configuration." + ::= { remoteAlertFiltersEntry 7 } + + rafSpTrapCPUC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: CPU Error." + ::= { remoteAlertFiltersEntry 8 } + + rafSpTrapMemoryC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Memory Error." + ::= { remoteAlertFiltersEntry 9 } + + rafSpTrapRdpsC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Redundant Power Supply failure." + ::= { remoteAlertFiltersEntry 10 } + + rafSpTrapHardwareC OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Critical Alert: Other Failure - refer to Message ID for specific condition." + ::= { remoteAlertFiltersEntry 11 } + + + rafSpTrapRdpsN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Redundant Power Supply failure." + ::= { remoteAlertFiltersEntry 12 } + + rafSpTrapTempN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Temperature threshold exceeded." + ::= { remoteAlertFiltersEntry 13 } + + rafSpTrapVoltN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Voltage threshold exceeded." + ::= { remoteAlertFiltersEntry 14 } + + rafSpTrapPowerN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Power." + ::= { remoteAlertFiltersEntry 15 } + + rafSpTrapFanN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Fan Error." + ::= { remoteAlertFiltersEntry 16 } + + rafSpTrapCPUN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Memory Error." + ::= { remoteAlertFiltersEntry 17 } + + rafSpTrapMemoryN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Memory Error." + ::= { remoteAlertFiltersEntry 18 } + + rafSpTrapHardwareN OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Non-Critical Alert: Warning - refer to Message ID for specific condition." + ::= { remoteAlertFiltersEntry 19 } + + rafSpTrapRLogin OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Sev-Off Alert: Event Remote Login." + ::= { remoteAlertFiltersEntry 20 } + + + rafSpTrapOsToS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: OS Timeout value exceeded." + ::= { remoteAlertFiltersEntry 21 } + + rafSpTrapAppS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Application Alert. Refer to Message ID for specific condition." + ::= { remoteAlertFiltersEntry 22 } + + rafSpTrapPowerS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Power Off." + ::= { remoteAlertFiltersEntry 23 } + + rafSpTrapBootS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: System Boot Failure." + ::= { remoteAlertFiltersEntry 24 } + + rafSpTrapLdrToS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: OS Loader Timeout." + ::= { remoteAlertFiltersEntry 25 } + + rafSpTrapPFAS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Predictive Failure Analysis(PFA) information." + ::= { remoteAlertFiltersEntry 26 } + + rafSpTrapSysLogS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: System Log 75% full." + ::= { remoteAlertFiltersEntry 27 } + + rafSpTrapNwChangeS OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "System Alert: Network change notification." + ::= { remoteAlertFiltersEntry 28 } + generateTestAlert OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Generate a Test Alert. This will send a test alert to all configured + and enabled remote alert receipients. The text portion of the + alert will contain 'Application Posted Alert to IMM'." + ::= { remoteAlertIds 30 } + + -- *********************************************************************** + -- Remote Access Profiles + -- *********************************************************************** + remoteAccessIds OBJECT IDENTIFIER ::= { remoteAccessConfig 4 } + + + remoteAccessIdsTable OBJECT-TYPE + SYNTAX SEQUENCE OF RemoteAccessIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of remote access profiles. + + This table lets you to configure all login profiles. + You can define up to 12 unique profiles. + + Note: By default, the remote supervisor adapter + comes configured with one login profile that allows remote + access using a login ID of 'USERID' and a password of 'PASSW0RD' + (the 0 is a zero). To avoid a potential security exposure, + we strongly recommend that you change this default Login + Profile to values of your choice." + ::= { remoteAccessIds 1 } + + remoteAccessIdsEntry OBJECT-TYPE + SYNTAX RemoteAccessIdsEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Remote access entries." + INDEX { remoteAccessIdEntryIndex } + ::= { remoteAccessIdsTable 1 } + + + RemoteAccessIdsEntry ::= SEQUENCE { + remoteAccessIdEntryIndex INTEGER, + remoteAccessIdEntryUserId OCTET STRING, + remoteAccessIdEntryPassword OCTET STRING, + remoteAccessIdEntryUserPwdLeftDays INTEGER + } + + + remoteAccessIdEntryIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for Remote access entry." + ::= { remoteAccessIdsEntry 1 } + + remoteAccessIdEntryUserId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Remote access entry null terminated string that + contains the user-id. This can only be modified from + blank to non-blank, then back to blank." + ::= { remoteAccessIdsEntry 2 } + + remoteAccessIdEntryPassword OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..16)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Remote access entry null terminated string that + contains the password. On a read a NULL string + will be returned for security reasons." + ::= { remoteAccessIdsEntry 3 } + + -- made part of user structure instead of separate structure + remoteAccessIdEntryUserPwdLeftDays OBJECT-TYPE + SYNTAX INTEGER(0..365) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "left days before password expired for selected user" + ::= {remoteAccessIdsEntry 4 } + + -- 51.1.4.1.4.2 + remoteAccessUserAuthorityLevelTable OBJECT-TYPE + SYNTAX SEQUENCE OF RemoteAccessUserAuthorityLevelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of user authority level profiles." + ::= { remoteAccessIds 2 } + + remoteAccessUserAuthorityLevelEntry OBJECT-TYPE + SYNTAX RemoteAccessUserAuthorityLevelEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "User authority level entries." + INDEX { ualIndex } + ::= { remoteAccessUserAuthorityLevelTable 1 } + + RemoteAccessUserAuthorityLevelEntry ::= SEQUENCE { + ualIndex INTEGER(0..255), + ualId OCTET STRING (SIZE(0..16)), + ualSupervisor INTEGER, + ualReadOnly INTEGER, + ualAccountManagement INTEGER, + ualConsoleAccess INTEGER, + ualConsoleAndVirtualMediaAccess INTEGER, + ualServerPowerAccess INTEGER, + ualAllowClearLog INTEGER, + ualAdapterBasicConfig INTEGER, + ualAdapterNetworkAndSecurityConfig INTEGER, + ualAdapterAdvancedConfig INTEGER + } + + ualIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for User Authority Level entry." + ::= { remoteAccessUserAuthorityLevelEntry 1 } + + ualId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "User ID" + ::= { remoteAccessUserAuthorityLevelEntry 2 } + + ualSupervisor OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User has no restrictions." + ::= { remoteAccessUserAuthorityLevelEntry 3 } + + ualReadOnly OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User has only read-only access, and cannot perform any save, modify, + clear, or state affecting operations (eg. restart IMM, restore defaults, + upgrade the firmware, etc.)." + ::= { remoteAccessUserAuthorityLevelEntry 4 } + + ualAccountManagement OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can add/modify/delete users and change the global login settings in + the Login Profiles panel." + ::= { remoteAccessUserAuthorityLevelEntry 5 } + + ualConsoleAccess OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can access the remote console." + ::= { remoteAccessUserAuthorityLevelEntry 6 } + + ualConsoleAndVirtualMediaAccess OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can access both the remote console and the virtual media feature." + ::= { remoteAccessUserAuthorityLevelEntry 7 } + + ualServerPowerAccess OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can access the power on and restart functions for the remote server. + These functions are available via the Power/Restart panel." + ::= { remoteAccessUserAuthorityLevelEntry 8 } + + ualAllowClearLog OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can clear the event logs. Everyone can look at the + event logs, but this particular permission is required to clear the logs." + ::= { remoteAccessUserAuthorityLevelEntry 9 } + + ualAdapterBasicConfig OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can modify configuration parameters in the System Settings and Alerts + panels." + ::= { remoteAccessUserAuthorityLevelEntry 10 } + + ualAdapterNetworkAndSecurityConfig OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User can modify configuration parameters in the Security, Network Protocols, + Network Interface, Port Assignments, and Serial Port panels." + ::= { remoteAccessUserAuthorityLevelEntry 11 } + + ualAdapterAdvancedConfig OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "User has no restrictions when configuring the adapter. In addition, the + user is said to have administrative access to the IMM, meaning that the + user can also perform the following advanced functions: firmware upgrades, + PXE network boot, restore adapter factory defaults, modify and restore + adapter configuration from a configuration file, and restart/reset the + adapter." + ::= { remoteAccessUserAuthorityLevelEntry 12 } + + -- *********************************************************************** + -- SP Clock + -- *********************************************************************** + spClock OBJECT IDENTIFIER ::= { configureSP 2 } + + spClockDateAndTimeSetting OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IMM clock date and time setting. + A date-time specification for the local time of day. + For example to set the date and time to + March 4, 2001 at 06:00:00AM, set the value to:'03/04/2001,06:00:00'. + field contents range + _____ ________ _____ + 1 month 01..12 + 2 separator '/' + 3 day 01..31 + 4 separator '/' + 5 year 2000..2037 + 6 separator ',' + 7 hour 00..23 + 8 separator ':' + 9 minutes 00..59 + 10 separator ':' + 11 seconds 00..59 + " + ::= { spClock 1 } + + spClockTimezoneSetting OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IMM clock Greenwich Mean Time(GMT) offset and Daylight Saving Time(DST) + settings. + + The following table lists GMT offsets and associated DST + information. DST is not observed in time zones where + the 'Observe DST' value does not contain 'yes' in the table. + Also, note that in some cases additional information + is required to determine the clock adjustment when DST is + observed. The additional information is required when the + GMT offset being written is +2:00 or +10:00. + + Examples + -to set the GMT offset to +3:30, + set the value to:'+3:30,no' + + -for Eastern Standard Time and observing DST, + set the value to:'-5:00,yes' + + -for Egypt and observing DST, + set the value to:'+2:00,yes,6' + + + GMT Observe Additional + Offset DST? DST value + ______ _______ __________ + +0:00 yes|no + +1:00 yes|no + +2:00 yes|no When 'Observe DST?' value is 'yes': + 5 (for E.Europe) + 4 (for BEL) + 6 (for Egypt) + +3:00 yes|no + +3:30 yes|no + +4:00 yes|no + +4:30 no + +5:00 yes|no + +5:30 no + +6:00 yes|no + +7:00 no + +8:00 no + +9:00 yes|no + +9:30 yes|no + +10:00 yes|no When 'Observe DST?' value is 'yes': + 9 (for AUS Eastern) + 10 (for Tasmania) + 4 (for Vladivostok) + +11:00 yes|no + +12:00 yes|no When 'Observe DST?' value is 'yes': + 4 (for Fiji) + 11 (New Zealand) + 7 (Chatham) + -12:00 no + -11:00 no + -10:00 no + -9:00 yes|no + -8:00 yes|no + -7:00 yes|no + -6:00 yes|no + -5:00 yes|no + -4:00 yes|no + -3:30 yes|no + -3:00 yes|no When 'Observe DST?' value is 'yes': + 12 (Greenland) + 13 (Brasilia) + -2:00 no + -1:00 yes|no + " + ::= { spClock 2 } + + + -- *********************************************************************** + -- SP identification + -- *********************************************************************** + spIdentification OBJECT IDENTIFIER ::= { configureSP 3 } + + spTxtId OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IMM text ID. Note: Do not put any 'space + character' at end of the ID." + ::= { spIdentification 1 } + + + -- *********************************************************************** + -- Network Configuration + -- *********************************************************************** + networkConfiguration OBJECT IDENTIFIER ::= { configureSP 4 } + + -- *********************************************************************** + -- Network Interfaces + -- *********************************************************************** + networkInterfaces OBJECT IDENTIFIER ::= { networkConfiguration 1 } + -- *********************************************************************** + -- Ethernet Interface 1 + -- *********************************************************************** + ethernetInterface OBJECT IDENTIFIER ::= { networkInterfaces 1 } + + ethernetInterfaceType OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The type of interface. Indicates 'Ethernet-1'." + ::= { ethernetInterface 1 } + + ethernetInterfaceEnabled OBJECT-TYPE + SYNTAX INTEGER { + interfaceDisabled(0), + interfaceEnabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable the interface. + + Note: To alter any of the configuration settings for the ethernet + interface the following procedure should be used: + (1)This object should be written with 'interfaceDisabled' + (2)Make the modifications to other settings + (3)This object should be written with 'interfaceEnabled' + (4)Restart the remote supervisor adapter + + Also note that when this object has a value of interfaceEnabled + the following is verifed, if this verification fails a error + response will be returned for the set of this object and the + ethernet interface will be left in a disabled state. + (1)Is the range for the MTU between 60-1500 + (2)Are the speed settings one of 10Mb, 100Mb, AUTO + (3)Are the speed settings one of Half, Full, AUTO + (4)If DHCP is disabled then is there a valid IP address + " + ::= { ethernetInterface 2 } + + ethernetInterfaceHostName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the 64 byte null terminated DNS host name for this + interface." + ::= { ethernetInterface 3 } + + ethernetInterfaceIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IP address for the ethernet interface." + ::= { ethernetInterface 4 } + + ethernetInterfaceAutoNegotiate OBJECT-TYPE + SYNTAX INTEGER { + enabled(0), + disabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "If this is enabled, then we should ignore Speed/Duplex." + ::= { ethernetInterface 5 } + + ethernetInterfaceDataRate OBJECT-TYPE + SYNTAX INTEGER { + enet10Megabit(3), + enet100Megabit(4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specifies the data transfer rate to be used over the ethernet + interface 10Mb/100Mb/Auto." + ::= { ethernetInterface 6 } + + ethernetInterfaceDuplexSetting OBJECT-TYPE + SYNTAX INTEGER { + fullDuplex(1), + halfDuplex(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specifies the duplex settings for the data transfer rate to be used over + the ethernet interface Half/Full/Auto." + ::= { ethernetInterface 7 } + + ethernetInterfaceLAA OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(17)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Specifies the locally administered MAC address. The locally administered + address must be a hexadecimal value between 000000000000 - FFFFFFFFFFFF. This + value must be in the form XX:XX:XX:XX:XX:XX where 'X' is a number between 0 - 9 and + A - F. This IMM subsystem does not allow use of a multicast address. A multicast + address has the least significant bit of the first byte set to a 1. The first + byte must, therefore, be an even number." + ::= { ethernetInterface 8 } + + ethernetInterfaceDhcpEnabled OBJECT-TYPE + SYNTAX INTEGER { + dhcpDisabled(0), + dhcpEnabled(1), + dhcpTry(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable DHCP on this interface." + ::= { ethernetInterface 9 } + + ethernetInterfaceGatewayIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the IP address of the gateway/router for the ethernet + interface." + ::= { ethernetInterface 10 } + + ethernetInterfaceBIA OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(6)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Specifies the burned-in MAC (BIA) address." + ::= { ethernetInterface 11 } + + ethernetInterfaceMTU OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Maximum Transmission Unit(MTU) for the ethernet + interface" + ::= { ethernetInterface 12 } + + ethernetInterfaceSubnetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the Subnet Mask for the ethernet + interface" + ::= { ethernetInterface 13 } + + -- *********************************************************************** + -- DHCP Server Assigned Settings for ethernet interface 1 + -- *********************************************************************** + dhcpEthernetInterface OBJECT IDENTIFIER ::= { ethernetInterface 14 } + + dhcpHostName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the 64 byte null terminated DNS host name for this + interface, assigned by the DHCP server." + ::= { dhcpEthernetInterface 1 } + + dhcpIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the IP address for the ehternet interface, + assigned by the DHCP server." + ::= { dhcpEthernetInterface 2 } + + dhcpGatewayIPAddress OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the IP address of the gateway/router for the ethernet + interface, assigned by the DHCP server." + ::= { dhcpEthernetInterface 3 } + + dhcpSubnetMask OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the Subnet Mask for the ethernet + interface, assigned by the DHCP server." + ::= { dhcpEthernetInterface 4 } + + dhcpDomainName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the 64 byte null terminated Domain Name for this + interface, assigned by the DHCP server." + ::= { dhcpEthernetInterface 5 } + + dhcpPrimaryDNSServer OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the Primary DNS server, assigned by the DHCP server." + ::= { dhcpEthernetInterface 6 } + + dhcpSecondaryDNSServer OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the Secondary DNS server, assigned by the DHCP server." + ::= { dhcpEthernetInterface 7 } + + dhcpTertiaryDNSServer OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Contains the tertiary DNS server, assigned by the DHCP server." + ::= { dhcpEthernetInterface 8 } + + -- ******************************************************************************** + -- Ethernet Interface IPv6 + -- ******************************************************************************** + ethernetInterfaceIPv6 OBJECT IDENTIFIER ::= { networkInterfaces 4 } + +-- ethernetInterfaceIPv6Type OBJECT-TYPE +-- SYNTAX OCTET STRING (SIZE(0..16)) +-- ACCESS read-only +-- STATUS mandatory +-- DESCRIPTION +-- "The type of interface. Indicates 'Ethernet-1'." +-- ::= { ethernetInterfaceIPv6 1 } + + ethernetInterfaceIPv6Enabled OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The current IPv6 enabled or disabled state of this IMM. + + NOTE: If IPv6 address(es) have been configured for one or more + interfaces/protocols/services on this IMM, when you update + the firmware to a level which does not support IPv6, all IPv6 + connectivity will be lost, and services/interfaces for which an IPv6 + address was configured may not function properly. You will be required + to reconfigure these services/interfaces." + ::= { ethernetInterfaceIPv6 2 } + + ethernetInterfaceIPv6Config OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6 5 } + + ethernetInterfaceIPv6LocalAddress OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6Config 1 } + + ethernetInterfaceIPv6LinkLocalAddress OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IPv6 link local IP address for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6Enabled is currently disabled, this + object has the value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceIPv6LocalAddress 1 } + + ethernetInterfaceIPv6StaticIPConfig OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6Config 2 } + + ethernetInterfaceIPv6StaticIPConfigEnabled OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 static IP address enabled or disabled state for the ethernet interface." + ::= { ethernetInterfaceIPv6StaticIPConfig 1 } + + ethernetInterfaceIPv6StaticIPAddress OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 static IP address for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6Enabled is currently disabled, this + object has the value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceIPv6StaticIPConfig 2 } + + ethernetInterfaceIPv6StaticIPAddressPrefixLen OBJECT-TYPE + SYNTAX INTEGER (1..128) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 static IP address prefix length for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6Enabled is currently disabled, this + object has the value 0." + ::= { ethernetInterfaceIPv6StaticIPConfig 3 } + + ethernetInterfaceIPv6StaticIPDefaultRoute OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 static IP address default route for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6Enabled is currently disabled, this + object has the value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceIPv6StaticIPConfig 4 } + + ethernetInterfaceIPv6AutoIPConfig OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6Config 3 } + + ethernetInterfaceDHCPv6Config OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6AutoIPConfig 2 } + + ethernetInterfaceDHCPv6Enabled OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The DHCPv6 enabled or disabled state for the ethernet interface. + + NOTE: If ethernetInterfaceIPv6StatelessAutoConfigEnabled is currently disabled, Disabling + ethernetInterfaceDHCPv6Enabled will cause ethernetInterfaceIPv6AutoIPConfigEnabled to be disabled. + NOTE: If ethernetInterfaceIPv6StaticIPConfigEnabled and + ethernetInterfaceIPv6StatelessAutoConfigEnabled are currently disabled, Disabling + ethernetInterfaceDHCPv6Enabled will not be allowed." + ::= { ethernetInterfaceDHCPv6Config 1 } + + ethernetInterfaceDHCPv6IPAddress OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The IPv6 address for the ethernet interface, assigned by DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the value + '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 2 } + + ethernetInterfaceDHCPv6DomainName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The 64 byte Domain Name for the ethernet interface, + assigned by the DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '(Not available)'." + ::= { ethernetInterfaceDHCPv6Config 4 } + + ethernetInterfaceDHCPv6PrimaryDNSServer OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The primary DNS server, assigned by the DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 5 } + + ethernetInterfaceDHCPv6SecondaryDNSServer OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The secondary DNS server, assigned by the DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 6 } + + ethernetInterfaceDHCPv6TertiaryDNSServer OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The tertiary DNS server, assigned by the DHCPv6 server. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 7 } + + ethernetInterfaceDHCPv6Server OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The DHCPv6 server IPv6 address used to acquire the DHCP settings. + + NOTE: If ethernetInterfaceIPv6Enabled or ethernetInterfaceDHCPv6Enabled + is disabled or if DHCPv6 server is not available, this object has the + value '0:0:0:0:0:0:0:0'." + ::= { ethernetInterfaceDHCPv6Config 8 } + + ethernetInterfaceIPv6StatelessAutoConfig OBJECT IDENTIFIER ::= { ethernetInterfaceIPv6AutoIPConfig 3 } + + ethernetInterfaceIPv6StatelessAutoConfigEnabled OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The IPv6 stateless auto-configuration enabled or disabled state for the ethernet interface. + + NOTE: If EthernetfInterfaceDHCPv6Enabled is currently disabled, Disabling + ethernetInterfaceIPv6StatelessAutoConfigEnabled will cause ethernetInterfaceIPv6AutoIPConfigEnabled + to be disabled." + ::= { ethernetInterfaceIPv6StatelessAutoConfig 1 } + + ethernetInterfaceStatelessAutoConfigAddressesTable OBJECT-TYPE + SYNTAX SEQUENCE OF EthernetInterfaceStatelessAutoConfigAddressesEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of stateless Auto-Config addresses entries" + ::= { ethernetInterfaceIPv6StatelessAutoConfig 2 } + + ethernetInterfaceStatelessAutoConfigAddressesEntry OBJECT-TYPE + SYNTAX EthernetInterfaceStatelessAutoConfigAddressesEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Stateless Auto-Config address entries" + INDEX { ethernetInterfaceStatelessAutoConfigAddressesIndex } + ::= { ethernetInterfaceStatelessAutoConfigAddressesTable 1 } + + EthernetInterfaceStatelessAutoConfigAddressesEntry ::= SEQUENCE { + ethernetInterfaceStatelessAutoConfigAddressesIndex INTEGER, + ethernetInterfaceStatelessAutoConfigAddresses InetAddressIPv6, + ethernetInterfaceStatelessAutoConfigAddressesPrefixLen INTEGER + } + + ethernetInterfaceStatelessAutoConfigAddressesIndex OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for stateless Auto-Config addresses. + + NOTE: If ethernetInterfaceIPv6StatelessAutoConfigEnabled or + ethernetInterfaceIPv6Enabled is currently disabled, this + object will show nothing." + ::= { ethernetInterfaceStatelessAutoConfigAddressesEntry 1 } + + ethernetInterfaceStatelessAutoConfigAddresses OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The stateless Auto-Configuration IPv6 address. + + NOTE: If ethernetInterfaceIPv6StatelessAutoConfigEnabled or + ethernetInterfaceIPv6Enabled is currently disabled, this + object will show nothing." + ::= { ethernetInterfaceStatelessAutoConfigAddressesEntry 2 } + + ethernetInterfaceStatelessAutoConfigAddressesPrefixLen OBJECT-TYPE + SYNTAX INTEGER (1..128) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The stateless Auto-Configration address prefix length. + + NOTE: If ethernetInterfaceIPv6StatelessAutoConfigEnabled or + ethernetInterfaceIPv6Enabled is currently disabled, this + object will show nothing." + ::= { ethernetInterfaceStatelessAutoConfigAddressesEntry 3 } + + + ddnsStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Dynamic DNS provides the capability for a networked device + to notify a domain name server to change, in real time, the + active DNS configuration of its configured hostnames, addresses + or other information stored in DNS. With Dynamic DNS, host + computers gain the capability to notify their respective DNS + server of the IP address they have received from a DHCP server + or through self-configuration." + ::= { networkInterfaces 10 } + + hostName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the DNS host name for this system. This object + provides the exact same function as ethernetInterfaceHostName" + ::= { networkInterfaces 11 } + + ddnsDomainToUse OBJECT-TYPE + SYNTAX INTEGER { + dhcp(1), + manual(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The domain name to be used with Dynamic DNS. + The value shall be either dhcp or manual" + ::= { networkInterfaces 12 } + + domainName OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The user assigned DNS domain name." + ::= { networkInterfaces 13 } + -- *********************************************************************** + -- TCP/IP Protocol Configuration + -- *********************************************************************** + tcpProtocols OBJECT IDENTIFIER ::= { networkConfiguration 2 } + + -- *********************************************************************** + -- SNMP Agent Configuration + -- *********************************************************************** + snmpAgentConfig OBJECT IDENTIFIER ::= { tcpProtocols 1 } + + snmpSystemName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..48)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 48 byte string that contains the + SNMP agent name. Note: Set snmpSystemAgentEnable + to disabled before performing a set of this object." + ::= { snmpAgentConfig 1 } + + snmpSystemContact OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..48)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 48 byte string that contains the + SNMP agent contact name. Note: Set snmpSystemAgentEnable + to disabled before performing a set of this object." + ::= { snmpAgentConfig 2 } + + snmpSystemLocation OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..48)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 48 byte string that contains the + SNMP agent location name. Note: Set snmpSystemAgentEnable + to disabled before performing a set of this object." + ::= { snmpAgentConfig 3 } + + snmpSystemAgentTrapsDisable OBJECT-TYPE + SYNTAX INTEGER { + trapsEnabled(0), + trapsDisabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable SNMP traps. Note: Set snmpSystemAgentEnable + to disabled before performing a set of this object." + ::= { snmpAgentConfig 4 } + + -- *********************************************************************** + -- SNMP Agent Community Configuration + -- *********************************************************************** + snmpAgentCommunityConfig OBJECT IDENTIFIER ::= { snmpAgentConfig 5 } + + + -- *********************************************************************** + -- SNMP Community Configuration table + -- *********************************************************************** + + snmpCommunityTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnmpCommunityEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of SNMP Community entries" + ::= { snmpAgentCommunityConfig 1 } + + snmpCommunityEntry OBJECT-TYPE + SYNTAX SnmpCommunityEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "DASD temperature threshold entries" + INDEX { snmpCommunityEntryIndex } + ::= { snmpCommunityTable 1 } + + SnmpCommunityEntry ::= SEQUENCE { + snmpCommunityEntryIndex INTEGER(0..255), + snmpCommunityEntryCommunityName OCTET STRING (SIZE(0..15)), + snmpCommunityEntryCommunityIpAddress1 OCTET STRING (SIZE(0..63)), + snmpCommunityEntryCommunityIpAddress2 OCTET STRING (SIZE(0..63)), + snmpCommunityEntryCommunityIpAddress3 OCTET STRING (SIZE(0..63)), + snmpCommunityEntryCommunityViewType INTEGER(1..3) + } + + + snmpCommunityEntryIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for SNMP Agent Community entry." + ::= { snmpCommunityEntry 1 } + + snmpCommunityEntryCommunityName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..15)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Community entry name. Note: Set snmpSystemAgentEnable + to disabled before performing a set of this object." + ::= { snmpCommunityEntry 2 } + + snmpCommunityEntryCommunityIpAddress1 OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Community IP address or host name. + Can either be a dotted decimal IP string(eg. 9.37.44.2) + or if DNS is enabled a host name. This field also allows two + wildcard values for read-Traps and write-Read-Traps communities: + 0.0.0.0 - allow any IPv4 address + 0::0 - allow any IPv6 address + Note: Set snmpSystemAgentEnable to disabled before performing a + set of this object." + ::= { snmpCommunityEntry 3 } + + snmpCommunityEntryCommunityIpAddress2 OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Community IP address or host name. + Can either be a dotted decimal IP string(eg. 9.37.44.2) + or if DNS is enabled a host name. This field also allows two + wildcard values for read-Traps and write-Read-Traps communities: + 0.0.0.0 - allow any IPv4 address + 0::0 - allow any IPv6 address + Note: Set snmpSystemAgentEnable + to disabled before performing a set of this object." + ::= { snmpCommunityEntry 4 } + + snmpCommunityEntryCommunityIpAddress3 OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Community IP address or host name. + Can either be a dotted decimal IP string(eg. 9.37.44.2) + or if DNS is enabled a host name. This field also allows two + wildcard values for read-Traps and write-Read-Traps communities: + 0.0.0.0 - allow any IPv4 address + 0::0 - allow any IPv6 address + Note: Set snmpSystemAgentEnable + to disabled before performing a set of this object." + ::= { snmpCommunityEntry 5 } + + -- 4.9.3.1.4.5 + snmpCommunityEntryCommunityViewType OBJECT-TYPE + SYNTAX INTEGER { + read-Traps(1), + write-Read-Traps(2), + traps-Only(3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Access Level of the SNMPv1 managers. Note this parameter + is set for each community. Therefore all three managers + in the same community have the same access level." + ::= { snmpCommunityEntry 6 } + + + snmpv1SystemAgentEnable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable the SNMPv1 agent. + + Note: To alter any of the configuration settings for the SNMP Agent + the following procedure should be used: + (1)This object should be written with 'disabled' + (2)Make the modifications to other settings + (3)This object should be written with 'enabled' + (4)Restart the remote supervisor adapter + + Also note that when this object has a value of enabled + that the following is verifed, if this verification fails a error + response will be returned for the set of this object and the SNMP + agent will be left in a disabled state. + (1)Is there a valid system contact + (2)Is there a valid system name + (3)Is there at least one valid community name and for that + community name is there one valid IP address or hostname + " + ::= { snmpAgentConfig 6 } + + snmpv3SystemAgentEnable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable the SNMPv3 agent. + + Note: To alter any of the configuration settings for the SNMP Agent + the following procedure should be used: + (1)This object should be written with 'disabled' + (2)Make the modifications to other settings + (3)This object should be written with 'enabled' + (4)Restart the remote supervisor adapter + + Also note that when this object has a value of enabled + that the following is verifed, if this verification fails a error + response will be returned for the set of this object and the SNMP + agent will be left in a disabled state. + (1)Is there a valid system contact + (2)Is there a valid system name + (3)Is there at least one valid community name and for that + community name is there one valid IP address or hostname + " + ::= { snmpAgentConfig 7 } + + + -- ******************************************************************************** + -- SNMP Agent User Profile Configuration + -- ******************************************************************************** + + snmpAgentUserProfileConfig OBJECT IDENTIFIER ::= { snmpAgentConfig 8 } + + + -- ******************************************************************************** + -- SNMP User Profile Configuration table + -- ******************************************************************************** + + snmpUserProfileTable OBJECT-TYPE + SYNTAX SEQUENCE OF SnmpUserProfileEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "Table of SNMPv3 User Profile entries" + ::= { snmpAgentUserProfileConfig 1 } + + snmpUserProfileEntry OBJECT-TYPE + SYNTAX SnmpUserProfileEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "SNMP User Profile entries" + INDEX { snmpUserProfileEntryIndex } + ::= { snmpUserProfileTable 1 } + + SnmpUserProfileEntry ::= SEQUENCE { + snmpUserProfileEntryIndex INTEGER, + snmpUserProfileEntryAuthProt INTEGER, + snmpUserProfileEntryPrivProt INTEGER, + snmpUserProfileEntryPrivPassword OCTET STRING, + snmpUserProfileEntryViewType INTEGER, + snmpUserProfileEntryIpAddress OCTET STRING + } + + + snmpUserProfileEntryIndex OBJECT-TYPE + SYNTAX INTEGER(0..255) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Index for SNMPv3 Agent User Profile entry." + ::= { snmpUserProfileEntry 1 } + + snmpUserProfileEntryAuthProt OBJECT-TYPE + SYNTAX INTEGER { + none (1), + md5 (2), + sha (3) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - Authentication Protocol + supported by the user." + ::= { snmpUserProfileEntry 2 } + + snmpUserProfileEntryPrivProt OBJECT-TYPE + SYNTAX INTEGER { + none (1), + des (2), + aes (4) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - Privacy Protocol + supported by the user. The Privacy Password must be set + and the Authentication Protocol must be md5 or sha + before this field may be set to des or aes." + ::= { snmpUserProfileEntry 3 } + + snmpUserProfileEntryPrivPassword OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..31)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - Privacy password + for the user. + + NOTE: Value returned for the GET command is + meaningless for this MIB object for security reason." + ::= { snmpUserProfileEntry 4 } + + snmpUserProfileEntryViewType OBJECT-TYPE + SYNTAX INTEGER { + read-Traps(1), + read-Write-Traps(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - Access level (Get and Set) + of the user. " + ::= { snmpUserProfileEntry 5 } + + + snmpUserProfileEntryIpAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMPv3 User Profile entry - IP address or host name. + Can either be a dotted decimal IP string (e.g. 9.37.44.2) + or if DNS is enabled a host name." + ::= { snmpUserProfileEntry 6 } + + -- *********************************************************************** + -- DNS Configuration + -- *********************************************************************** + dnsConfig OBJECT IDENTIFIER ::= { tcpProtocols 2 } + + dnsEnabled OBJECT-TYPE + SYNTAX INTEGER { + dnsDisabled(0), + dnsEnabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable or enable the DNS agent. + + Note that when this object has a value of enabled + that the following is verifed, if this verification fails a error + response will be returned for the set of this object and the DNS + resolver will be left in a disabled state. + (1)Is there at least one valid DNS server IP address + " + ::= { dnsConfig 1 } + + dnsServerIPAddress1 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the primary DNS server IP address." + ::= { dnsConfig 2 } + + dnsServerIPAddress2 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the secondary DNS server IP address." + ::= { dnsConfig 3 } + + dnsServerIPAddress3 OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the tertiary DNS server IP address." + ::= { dnsConfig 4 } + + dnsServerIPv6Address1 OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the primary IPv6 DNS server address." + ::= { dnsConfig 12 } + + dnsServerIPv6Address2 OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the secondary IPv6 DNS server address." + ::= { dnsConfig 13 } + + dnsServerIPv6Address3 OBJECT-TYPE + SYNTAX InetAddressIPv6 + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Contains the tertiary IPv6 DNS server address." + ::= { dnsConfig 14 } + + dnsPriority OBJECT-TYPE + SYNTAX INTEGER { + ipv6(1), + ipv4(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Tells the order host names are resolved. The options are + to either first resolve with an IPv6 DNS server or to first + resolve with an IPv6 DNS server." + ::= { dnsConfig 20 } + -- *********************************************************************** + -- SMTP Configuration + -- *********************************************************************** + smtpConfig OBJECT IDENTIFIER ::= { tcpProtocols 3 } + + + smtpServerNameOrIPAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 64 byte string that contains the + SMTP server Host name or IP address(a.b.c.d)." + ::= { smtpConfig 1 } + + + -- *********************************************************************** + -- Telnet Configuration + -- *********************************************************************** + + -- 4.9.3.4.1 + tcpApplicationConfig OBJECT IDENTIFIER ::= { tcpProtocols 4 } + + -- 4.9.3.4.3 + telnetConnectionCounts OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + one(1), + two(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of telnet connections that can be active + concurrently." + ::= { tcpApplicationConfig 1 } + + -- 4.9.3.4.5 + slpAddrType OBJECT-TYPE + SYNTAX INTEGER { + multicast(0), + broadcast(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Set SLP address type to 0 (multicast) or 1 (broadcast). Note that when + slpAddrType is set to broadast value then the multicast address set in in + slpMulticastAddt will be ignored." + ::= { tcpApplicationConfig 2 } + + -- 4.9.3.4.6 + slpMulticastAddr OBJECT-TYPE + SYNTAX IpAddress + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Service Locator Protocol Multicast address" + ::= { tcpApplicationConfig 3 } + + -- *********************************************************************** + -- TCP Port Assignment + -- *********************************************************************** + tcpPortAssignmentCfg OBJECT IDENTIFIER ::= { tcpProtocols 5 } + + tcpPortsRestoreDefault OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Reset all the ports to the factory defaults. SP has to be reset + for change to take effect." + ::= { tcpPortAssignmentCfg 1 } + + httpPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "HTTP port number. Default value is 80. Once changed, the url's have to + include :port at the end. SP has to be reset for change to take effect." + ::= { tcpPortAssignmentCfg 2 } + + httpsPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SSL port number. Default value is 443. Once changed, the url's have to + include :port at the end. SP has to be reset for change to take effect." + ::= { tcpPortAssignmentCfg 3 } + + telnetLegacyCLIPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "telnet port number. Default value is 23. SP has to be reset for change + to take effect." + ::= { tcpPortAssignmentCfg 4 } + + + sshLegacyCLIPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SSH port number. Default value is 22. SP has to be reset for change + to take effect." + ::= { tcpPortAssignmentCfg 6 } + + + + snmpAgentPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Agent port number. Default value is 161. SP has to be reset for change + to take effect." + ::= { tcpPortAssignmentCfg 8 } + + snmpTrapsPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "SNMP Traps port number. Default value is 162. SP has to be reset for change + to take effect." + ::= { tcpPortAssignmentCfg 9 } + + remvidPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Remote Console port number. Default value is 2000. SP has to be reset for change + to take effect." + ::= { tcpPortAssignmentCfg 10 } + + ibmSystemDirectorHttpPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IBM Systems Director Http port number.SP has to be reset for change + to take effect." + ::= { tcpPortAssignmentCfg 11 } + + + ibmSystemDirectorHttpsPortAssignment OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IBM Systems Director Https port number.SP has to be reset for change." + ::= { tcpPortAssignmentCfg 12 } + + + -- *********************************************************************** + -- LDAP Clinet Configuration + -- *********************************************************************** + + ldapClientCfg OBJECT IDENTIFIER ::= { tcpProtocols 6 } + + ldapServer1NameOrIPAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 64 byte string that contains the + LDAP server host name or IP address (a.b.c.d)." + ::= { ldapClientCfg 1 } + + ldapServer1PortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "LDAP server port number." + ::= { ldapClientCfg 2 } + + ldapServer2NameOrIPAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 64 byte string that contains the + LDAP server host name or IP address (a.b.c.d)." + ::= { ldapClientCfg 3 } + + ldapServer2PortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "LDAP server port number." + ::= { ldapClientCfg 4 } + + ldapServer3NameOrIPAddress OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A NULL terminated 64 byte string that contains the + LDAP server host name or IP address (a.b.c.d)." + ::= { ldapClientCfg 5 } + + ldapServer3PortNumber OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "LDAP server port number." + ::= { ldapClientCfg 6 } + + ldapRootDN OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Distinguished Name for root entry of directory tree. + An example might look like dn=foobar,dn=com." + ::= { ldapClientCfg 7 } + + ldapUserSearchBaseDN OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "As part of the user authentication process, it is necessary to search + the LDAP server for one or more attributes associated with a particular + user. Any search request must specify the base DN for the actual search. + This field specifies the base DN which should be used to search the User + directory. An example might look like cn=users,dn=foobar,dn=com. If this + field is left blank, the Root DN will be used as the search base instead. + As mentioned, user searches are part of the authentication process. They + are carried out to retrieve information about the user such as login + permissions, callback number, and group memberships. For Version 2.0 LDAP + clients, it is strongly encouraged that this parameter be configured, + otherwise a search using the root DN may not succeed (as seen on Active + Directory servers)." + ::= { ldapClientCfg 8 } + + ldapGroupFilter OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This filter is used for group authentication. It specifies what group or + groups that this MM belongs to. If left blank, group authentication is + disabled. Otherwise, group authentication will be performed against the + filter. The filter can be a specific group name (eg. IMMWest), a wildcard (*) + which matches everything, or a wildcard with a prefix (eg. IMM*). The default + filter is IMM*. + After user authentication, group authentication will take place, whereby an + attempt will be made to match the group or groups (that the user belongs to) + to the group filter defined here. If there is no match, the user will not pass + authentication and will be blocked. If there is a match, the login permissions + for the user will be retrieved from the matched group(s), unless the user + already has login permissions assigned directly from the user record retrieved + from the LDAP server." + ::= { ldapClientCfg 9 } + + + ldapBindingMethod OBJECT-TYPE + SYNTAX INTEGER { + anonymousAuthentication(0), + clientAuthentication(1), + userPrincipalName(2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "On initial binds to the LDAP server during user authentication, there are + three options: + Anonymous authentication: Bind attempt is made without a client DN or password. + If the bind is successful, a search will be requested in order to find an entry + on the LDAP server for the user attempting to login. If an entry is found, a + second attempt to bind will be attempted, this time with the user's DN and + password. If this succeeds, the user is deemed to have passed the user + authentication phase. Group authentication is then attempted if it is enabled. + Client authentication: Bind attempt is made with client DN and password + specified by this configuration parameter. If the bind is successful, we + proceed as above. + User Principal Name (UPN): Bind attempt is made directly with the credentials + used during the login process. If this succeeds, the user is deemed to have + passed the user authentication phase. Note that for Active Directory servers, + the userid can have the form someuser@somedomain or simply someuser." + ::= { ldapClientCfg 10 } + + ldapClientAuthenticationDN OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The initial bind to the LDAP server during user authentication can be + performed with anonymous authentication, client based authentication, or UPN. + The client based option requires a client DN and password as parameters to + the bind request. These parameters are configured here. Note that the password + can be left blank." + ::= { ldapClientCfg 11 } + + ldapClientAuthenticationPassword OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..25)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The client authentication password" + ::= { ldapClientCfg 12 } + + ldapRoleBasedSecurityEnabled OBJECT-TYPE + SYNTAX INTEGER { + enabled(1), + disabled(0) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "A value of true for RoleBasedSecurityEnabled indicates enhanced + will be used by the service processor. A value of false for + RoleBasedSecurityEnabled indicates the legacy bit mask based + security is being used." + ::= { ldapClientCfg 13 } + + ldapServerTargetName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When administrator chooses Enhanced Role Based Security authentication model, + he can associate one IMM with one managed target object in Snap-in (one tool + to configure LDAP users permission) via one target name. The IMM target name can + be looked as alias of IMM, administrator can change it according to his + configuration requirements. This is a string of up to 63 characters (plus the + null character)" + ::= { ldapClientCfg 14 } + + + ldapUIDsearchAttribute OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When the binding method selected is Anonymous authentication or Client + authentication, the initial bind to the LDAP server is followed by a search + request aimed at retrieving specific information about the user, including the + user's DN, login permissions, and group ownerships. In order to retrieve this + information, the search request must specify the attribute name used to + represent userids on that server. Specifically, this name is used as a search + filter against the login id entered by the user. This attribute name is + configured here. If this field is left blank, a default of uid is used during + user authentication. + For example, on Active Directory servers, the attribute name used for userids + is often sAMAccoutName. + When the binding method selected is UPN or Strict UPN, this field defaults + automatically to userPrincipalName during user authentication if the userid + entered has the form userid@somedomain." + ::= { ldapClientCfg 15 } + + ldapGroupSearchAttribute OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When the MM Group Filter name is configured, it is necessary to retrieve + from the LDAP server the list of groups that a particular user belongs to. + This is required to do group authentication. In order to retrieve this list, + the search filter sent to the server must specify the attribute name associated + with groups. This field specifies this attribute name. + If this field is left blank, the attribute name in the filter will default + to memberOf." + ::= { ldapClientCfg 16 } + + ldapLoginPermissionAttribute OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "When a user successfully authenticates via a LDAP server, it is necessary + to retrieve the login permissions for this user. In order to retrieve these + permissions, the search filter sent to the server must specify the attribute + name associated with login permissions. This field specifies this attribute + name." + ::= { ldapClientCfg 17 } + + ldapUseDNSOrPreConfiguredServers OBJECT-TYPE + SYNTAX INTEGER { + usePreConfiguredLDAPServers (0), + useDNSToFindLDAPServers (1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The MM contains a Version 2.0 LDAP Client that may be configured to provide + user authentication through one or more LDAP servers. The LDAP server(s) to be + used for authentication can be discovered dynamically or manually pre-configured. + + If the usePreConfiguredLDAPServers option is selected, up to 3 LDAP servers can + be configured. Simply enter the server's IP address or hostname (assuming DNS + is enabled). The port number for each server is optional. If left blank, + the default value of 389 is used for non-secured LDAP connections. For secured + connections, the default is 636. At least one server must be configured. + + If the useDNSToFindLDAPServers is selected, the mechanisms described by RFC2782 + (A DNS RR for specifying the location of services) are applied to find the + server(s). This is known as DNS SRV." + ::= { ldapClientCfg 18 } + + ldapDomainSource OBJECT-TYPE + SYNTAX INTEGER { + extractSearchDomainFromLoginID (0), + useOnlyConfiguredSearchDomainBelow (1), + tryLoginFirstThenConfiguredValue (2) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The DNS SRV request sent to the DNS server must specify a domain name. + The LDAP client will determine where to get this domain name based on one + of the following three options: + + - extractSearchDomainFromLoginID: With this option, the LDAP client will + use the domain name in the login id. For example, if the login id is + joesmith@mycompany.com, the domain name equals mycompany.com. If the domain + name cannot be extracted, the DNS SRV will fail, causing the user + authentication to fail automatically. + + - useOnlyConfiguredSearchDomainBelow: With this option, the LDAP client + will use the domain name configured in the Search Domain parameter. + + - tryLoginFirstThenConfiguredValue: With this option, the LDAP client will + first attempt to extract the domain name from the login id. If this succeeds, + this domain name will be used in the DNS SRV request. If there is no domain + name present in the login id, the LDAP client will instead use the configured + Search Domain parameter as the domain name in the DNS SRV request. + If nothing is configured, user authentication will fail immediately." + ::= { ldapClientCfg 19 } + + ldapSearchDomain OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..64)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "This parameter may be used as the domain name in the DNS SRV request, + depending on how the Domain Source parameter is configured." + ::= { ldapClientCfg 20 } + + ldapServiceName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..16)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The DNS SRV request sent to the DNS server must also specify a service name. + The configured value will be used for this purpose. If left blank, the default + value used is 'ldap'. Note that the DNS SRV request must also specify a protocol + name. This defaults to 'tcp' and is not configurable." + ::= { ldapClientCfg 21 } + + + -- ******************************************************************************** + -- NTP Configuration + -- ******************************************************************************** + ntpConfig OBJECT IDENTIFIER ::= { tcpProtocols 8 } + + -- 4.9.3.8.1 + ntpEnable OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Disable/Enable the NTP client. The client will update + the IMM system clock at the frequency specified." + ::= { ntpConfig 1 } + + -- 4.9.3.8.2 + ntpIpAddressHostname OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "NTP server's IP address or hostname if DNS is enabled + and configured." + ::= { ntpConfig 2 } + + -- 4.9.3.8.3 + ntpUpdateFrequency OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The frequency in minutes that the NTP service runs. + The value range is 3 to 1440." + ::= { ntpConfig 3 } + + -- 4.9.3.8.5 + ntpUpdateClock OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Update the IMM system clock with the specified NTP server. + A valid NTP server must be configured first." + ::= { ntpConfig 5 } + +-- *********************************************************************** +-- System Services +-- *********************************************************************** + -- *********************************************************************** + -- System Watch Dog Timers + -- *********************************************************************** + serverTimers OBJECT IDENTIFIER ::= { generalSystemSettings 1 } + + oSHang OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + twoAndHalfMinutes(150), + threeMinutes(180), + threeAndHalfMinutes(210), + fourMinutes(240), + tenMinutes(600) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number, in 1 second intervals, the IMM will + check to insure the OS is operating properly. + If the operating system fails to respond within 6 seconds to one + of these checks, the remote supervisor adapter will generate + an O/S Timeout alert(if enabled) and automatically restart the + system one time. Once the system is restarted, the O/S Watchdog + is automatically disabled until the operating + system is shutdown and the server is power cycled." + ::= { serverTimers 1 } + + oSLoader OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + oneHalfMinutes(1), + oneMinutes(2), + oneAndHalfMinutes(3), + twoMinutes(4), + twoAndHalfMinutes(5), + threeMinutes(6), + threeAndHalfMinutes(7), + fourMinutes(8), + fourAndHalfMinutes(9), + fiveMinutes(10), + sevenAndHalfMinutes(15), + tenMinutes(20), + fifteenMinutes(30), + twentyMinutes(40), + thirtyMinutes(60), + oneHour(120), + twoHours(240) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Number in 30 second intervals the remote IMM will wait + between completion of POST and the end of loading the OS. + If this interval is exceeded, the IMM will + generate a Loader Timeout alert(if enabled) and automatically restart + the system one time. Once the system is restarted, the + Loader Timeout is automatically disabled until the operating + system is shutdown and the server is power cycled." + ::= { serverTimers 2 } + + + -- *********************************************************************** + -- PXE Boot + -- *********************************************************************** + networkPXEboot OBJECT-TYPE + SYNTAX INTEGER { + networkPXEBootDisabled(0), + networkPXEBootEnabled(1) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Modify the system's boot sequence for the next system restart + in order to attempt a PXE/DHCP network boot. The system's boot + sequence(set via the BIOS settings) will be altered only if the + system is not under PAP (Privileged Access Protection)." + ::= { generalSystemSettings 2 } + +-- *********************************************************************** +-- System Power Control +-- *********************************************************************** + + -- *********************************************************************** + -- Power Statistics for the system + -- *********************************************************************** + powerStatistics OBJECT IDENTIFIER ::= { systemPower 1 } + currentSysPowerStatus OBJECT-TYPE + SYNTAX INTEGER { + poweredOff(0), + poweredOn(255) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Indicates if the system is currently powered on or off." + ::= { powerStatistics 1 } + + + powerOnHours OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of hours the system has been powered on." + ::= { powerStatistics 2 } + + restartCount OBJECT-TYPE + SYNTAX INTEGER + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Number of times the system has been restarted." + ::= { powerStatistics 3 } + + systemState OBJECT-TYPE + SYNTAX INTEGER { + systemPowerOfforStateUnknown(0), + systemPowerOnorStartingUEFI(1), + systemInUEFI(2), + uEFIErrorDetected(3), + bootingOSorInUnsupportedOS(4), + oSBooted(5) + } + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Shows the current operational state of the system." + ::= { powerStatistics 4 } + + -- *********************************************************************** + -- System Power off configuration + -- *********************************************************************** + powerSysConfig OBJECT IDENTIFIER ::= { systemPower 2 } + + + powerSysOffDelay OBJECT-TYPE + SYNTAX INTEGER { + noDelay(0), + oneHalfMinute(30), + oneMinute(60), + twoMinutes(120), + threeMinutes(180), + fourMinutes(240), + fiveMinute(300), + sevenAndHalfMinutes(450), + tenMinutes(600), + fifteenMinutes(900), + twentyMinutes(1200), + thirtyMinutes(1800), + oneHour(3600), + twoHours(7200) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The number of 1 second interval the IMM will + wait before powering off the system." + ::= { powerSysConfig 1 } + + + powerSysOnClockSetting OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "The clock setting used to determine when the IMM + will power on the system. The examples and the format follow: + + (1)For example to set the value so the system will power on + March 4, 2001 at 06:00AM set the value to: '03/04/2001,06:00'. + In order to insure correct operation, it is advisable for the + user to read the date and time of the IMM + clock before setting this value to a future time. + (2)Setting the reset value will cause the + power off timer to be reset and be deactivated. For example + to reset the clock set the value to: '01/01/2000,00:00', + + field contents range + _____ ________ _____ + 1 month 01..12 (reset value - 01) + 2 separator '/' + 3 day 01..31 (reset value - 01) + 4 separator '/' + 5 year 2000..2037 (reset value - 2000) + 6 separator ',' + 7 hour 00..23 (reset value - 00) + 8 separator ':' + 9 minutes 00..59 (reset value - 00) + " + ::= { powerSysConfig 2 } + + -- *********************************************************************** + -- System Power off control + -- *********************************************************************** + powerOffSystemControl OBJECT IDENTIFIER ::= { systemPower 3 } + + powerOffWithOsShutdown OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Power off the system after performing a OS shutdown." + ::= { powerOffSystemControl 1 } + + powerOffImmediately OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Power off the system immediately." + ::= { powerOffSystemControl 2 } + + -- *********************************************************************** + -- System Power on control + -- *********************************************************************** + powerOnSystemControl OBJECT IDENTIFIER ::= { systemPower 4 } + + powerOnImmediately OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Power on the system immediately." + ::= { powerOnSystemControl 2 } + + -- *********************************************************************** + -- Schedule Power Actions + -- *********************************************************************** + powerCyclingSchedule OBJECT IDENTIFIER ::= { systemPower 5 } + + schedulePowerOffWithOsShutdown OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Power Off the system after performing a OS shutdown at specified time and day of the week. + Example: Monday,09:00 + + field contents range + _____ ________ _____ + 1 day EveryDayOfWeek,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Never (reset value - Never) + 2 separator ',' + 3 hour 00..23 (reset value - 00) + 4 separator ':' + 5 minutes 00..59 (reset value - 00) + day is case insensitive. + It is invalid to set a non zero time with day as Never. + To reset, set as Never,00:00." + ::= { powerCyclingSchedule 1 } + + schedulePowerOnSystem OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Power On the system at specified time and day of the week. + Example: Monday,09:00 + + field contents range + _____ ________ _____ + 1 day EveryDayOfWeek,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Never (reset value - Never) + 2 separator ',' + 3 hour 00..23 (reset value - 00) + 4 separator ':' + 5 minutes 00..59 (reset value - 00) + day is case insensitive. + It is invalid to set a non zero time with day as Never. + To reset, set as Never,00:00." + ::= { powerCyclingSchedule 2 } + +-- *********************************************************************** +-- Restart Control +-- *********************************************************************** + + shutdownOsThenRestart OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Shutdown the OS and then restart the system and boot the OS." + ::= { restartReset 1 } + + restartSystemImmediately OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Restart the system immediately and then the boot OS." + ::= { restartReset 2 } + + + restartSPImmediately OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Restart the IMM immediately." + ::= { restartReset 3 } + + resetSPConfigAndRestart OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Will cause all the IMM information to + be reset to it's initial factory defaults(all previous + configuration information is lost) and the IMM + will be re-started." + ::= { restartReset 4 } + + scheduleShutdownOsThenRestart OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Shutdown the OS and then restart the system and boot the OS + at specified Time and Day of the week. + Example: Monday,09:00 + + field contents range + _____ ________ _____ + 1 day EveryDayOfWeek,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Never (reset value - Never) + 2 separator ',' + 3 hour 00..23 (reset value - 00) + 4 separator ':' + 5 minutes 00..59 (reset value - 00) + day is case insensitive. + It is invalid to set a non zero time with day as Never. + To reset, set as Never,00:00." + ::= { restartReset 5 } + + resetPowerSchedules OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "reset all power schedules. + schedulePowerOnSystem,schedulePowerOffWithOsShutdown, scheduleShutdownOsThenRestart. + This does not reset powerSysOnClockSetting" + ::= { restartReset 6 } + + + +-- *********************************************************************** +-- Firmware Update +-- *********************************************************************** + firmwareUpdateTarget OBJECT-TYPE + SYNTAX INTEGER { + immCard(0) + } + ACCESS read-write + STATUS mandatory + DESCRIPTION + "Target module whose firmware will be updated." + ::= { firmwareUpdate 1 } + + firmwareUpdateTftpServer OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "IP address of the TFTP server where the firmware file resides. + The address must be entered in a dotted decimal IP string + (eg. 9.37.44.2)." + ::= { firmwareUpdate 2 } + + firmwareUpdateFileName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..63)) + ACCESS read-write + STATUS mandatory + DESCRIPTION + "File name of the firmware file." + ::= { firmwareUpdate 3 } + + firmwareUpdateStart OBJECT-TYPE + SYNTAX INTEGER { + execute(1) + } + ACCESS write-only + STATUS mandatory + DESCRIPTION + "Start updating the firmware of the specified IMM Card. + Note 1: The firmware update might take up to several + minutes to complete. Do not reset the IMM Card until + the control has been returned. At this point, the results + will be displayed. + Note 2: Use firmwareUpdateStatus to confirm the status of + the last firmware update initiated by SNMP method. The + IMM Card must be restarted for the new firmware to + take affect." + ::= { firmwareUpdate 4 } + + + firmwareUpdateStatus OBJECT-TYPE + SYNTAX OCTET STRING + ACCESS read-only + STATUS mandatory + DESCRIPTION + "Get the status of the last firmware update which was + initiated through SNMP method." + ::= { firmwareUpdate 5 } + + + +END diff --git a/mibs/SCTP-MIB b/mibs/SCTP-MIB new file mode 100644 index 0000000000..9d809d2823 --- /dev/null +++ b/mibs/SCTP-MIB @@ -0,0 +1,1342 @@ +SCTP-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Gauge32, + Counter32, Counter64, mib-2 + FROM SNMPv2-SMI -- [RFC2578] + TimeStamp, TruthValue + FROM SNMPv2-TC -- [RFC2579] + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF -- [RFC2580] + InetAddressType, InetAddress, InetPortNumber + FROM INET-ADDRESS-MIB; -- [RFC3291] + +sctpMIB MODULE-IDENTITY + LAST-UPDATED "200409020000Z" -- 2nd September 2004 + ORGANIZATION "IETF SIGTRAN Working Group" + CONTACT-INFO + " + WG EMail: sigtran@ietf.org + + Web Page: + http://www.ietf.org/html.charters/sigtran-charter.html + + Chair: Lyndon Ong + Ciena Corporation + 0480 Ridgeview Drive + Cupertino, CA 95014 + USA + Tel: + Email: lyong@ciena.com + + Editors: Maria-Carmen Belinchon + R&D Department + Ericsson Espana S. A. + Via de los Poblados, 13 + 28033 Madrid + Spain + Tel: +34 91 339 3535 + Email: Maria.C.Belinchon@ericsson.com + + Jose-Javier Pastor-Balbas + R&D Department + Ericsson Espana S. A. + Via de los Poblados, 13 + 28033 Madrid + Spain + Tel: +34 91 339 1397 + Email: J.Javier.Pastor@ericsson.com + " + DESCRIPTION + "The MIB module for managing SCTP implementations. + + Copyright (C) The Internet Society (2004). This version of + this MIB module is part of RFC 3873; see the RFC itself for + full legal notices. " + + REVISION "200409020000Z" -- 2nd September 2004 + DESCRIPTION " Initial version, published as RFC 3873" + ::= { mib-2 104 } + +-- the SCTP base variables group + +sctpObjects OBJECT IDENTIFIER ::= { sctpMIB 1 } + +sctpStats OBJECT IDENTIFIER ::= { sctpObjects 1 } +sctpParams OBJECT IDENTIFIER ::= { sctpObjects 2 } + +-- STATISTICS +-- ********** + +-- STATE-RELATED STATISTICS + +sctpCurrEstab OBJECT-TYPE + SYNTAX Gauge32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of associations for which the current state is + either ESTABLISHED, SHUTDOWN-RECEIVED or SHUTDOWN-PENDING." + REFERENCE + "Section 4 in RFC2960 covers the SCTP Association state + diagram." + ::= { sctpStats 1 } + +sctpActiveEstabs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times that associations have made a direct + transition to the ESTABLISHED state from the COOKIE-ECHOED + state: COOKIE-ECHOED -> ESTABLISHED. The upper layer initiated + the association attempt." + REFERENCE + "Section 4 in RFC2960 covers the SCTP Association state + diagram." + ::= { sctpStats 2 } + +sctpPassiveEstabs OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times that associations have made a direct + transition to the ESTABLISHED state from the CLOSED state: + CLOSED -> ESTABLISHED. The remote endpoint initiated the + association attempt." + REFERENCE + "Section 4 in RFC2960 covers the SCTP Association state + diagram." + ::= { sctpStats 3 } + +sctpAborteds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times that associations have made a direct + transition to the CLOSED state from any state using the + primitive 'ABORT': AnyState --Abort--> CLOSED. Ungraceful + termination of the association." + REFERENCE + "Section 4 in RFC2960 covers the SCTP Association state + diagram." + ::= { sctpStats 4 } + +sctpShutdowns OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of times that associations have made a direct + transition to the CLOSED state from either the SHUTDOWN-SENT + state or the SHUTDOWN-ACK-SENT state. Graceful termination of + the association." + REFERENCE + "Section 4 in RFC2960 covers the SCTP Association state + diagram." + ::= { sctpStats 5 } + +-- OTHER LAYER STATISTICS + +sctpOutOfBlues OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of out of the blue packets received by the host. + An out of the blue packet is an SCTP packet correctly formed, + including the proper checksum, but for which the receiver was + unable to identify an appropriate association." + REFERENCE + "Section 8.4 in RFC2960 deals with the Out-Of-The-Blue + (OOTB) packet definition and procedures." + ::= { sctpStats 6 } + +sctpChecksumErrors OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SCTP packets received with an invalid + checksum." + REFERENCE + "The checksum is located at the end of the SCTP packet as per + Section 3.1 in RFC2960. RFC3309 updates SCTP to use a 32 bit + CRC checksum." +::= { sctpStats 7 } + +sctpOutCtrlChunks OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SCTP control chunks sent (retransmissions are + not included). Control chunks are those chunks different from + DATA." + REFERENCE + "Sections 1.3.5 and 1.4 in RFC2960 refer to control chunk as + those chunks different from those that contain user + information, i.e., DATA chunks." + ::= { sctpStats 8 } + +sctpOutOrderChunks OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SCTP ordered data chunks sent (retransmissions + are not included)." + REFERENCE + "Section 3.3.1 in RFC2960 defines the ordered data chunk." + ::= { sctpStats 9 } + +sctpOutUnorderChunks OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SCTP unordered chunks (data chunks in which the + U bit is set to 1) sent (retransmissions are not included)." + REFERENCE + "Section 3.3.1 in RFC2960 defines the unordered data chunk." + ::= { sctpStats 10 } + +sctpInCtrlChunks OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SCTP control chunks received (no duplicate + chunks included)." + REFERENCE + "Sections 1.3.5 and 1.4 in RFC2960 refer to control chunk as + those chunks different from those that contain user + information, i.e., DATA chunks." + ::= { sctpStats 11 } + +sctpInOrderChunks OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SCTP ordered data chunks received (no duplicate + chunks included)." + REFERENCE + "Section 3.3.1 in RFC2960 defines the ordered data chunk." + ::= { sctpStats 12 } + +sctpInUnorderChunks OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SCTP unordered chunks (data chunks in which the + U bit is set to 1) received (no duplicate chunks included)." + REFERENCE + "Section 3.3.1 in RFC2960 defines the unordered data chunk." + ::= { sctpStats 13 } + +sctpFragUsrMsgs OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of user messages that have to be fragmented + because of the MTU." + ::= { sctpStats 14 } + +sctpReasmUsrMsgs OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of user messages reassembled, after conversion + into DATA chunks." + REFERENCE + "Section 6.9 in RFC2960 includes a description of the + reassembly process." + ::= { sctpStats 15 } + +sctpOutSCTPPacks OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SCTP packets sent. Retransmitted DATA chunks + are included." + ::= { sctpStats 16 } + +sctpInSCTPPacks OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of SCTP packets received. Duplicates are + included." + ::= { sctpStats 17 } + +sctpDiscontinuityTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime on the most recent occasion at which + any one or more of this general statistics counters suffered a + discontinuity. The relevant counters are the specific + instances associated with this interface of any Counter32 or + Counter64 object contained in the SCTP layer statistics + (defined below sctpStats branch). If no such discontinuities + have occurred since the last re-initialization of the local + management subsystem, then this object contains a zero value." + REFERENCE + "The inclusion of this object is recommended by RFC2578." + ::= { sctpStats 18 } + +-- PROTOCOL GENERAL VARIABLES +-- ************************** + +sctpRtoAlgorithm OBJECT-TYPE + SYNTAX INTEGER { + other(1), -- Other new one. Future use + vanj(2) -- Van Jacobson's algorithm + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The algorithm used to determine the timeout value (T3-rtx) + used for re-transmitting unacknowledged chunks." + REFERENCE + "Section 6.3.1 and 6.3.2 in RFC2960 cover the RTO calculation + and retransmission timer rules." + DEFVAL {vanj} -- vanj(2) + ::= { sctpParams 1 } + +sctpRtoMin OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum value permitted by a SCTP implementation for the + retransmission timeout value, measured in milliseconds. More + refined semantics for objects of this type depend upon the + algorithm used to determine the retransmission timeout value. + + A retransmission time value of zero means immediate + retransmission. + + The value of this object has to be lower than or equal to + stcpRtoMax's value." + DEFVAL {1000} -- milliseconds + ::= { sctpParams 2 } + +sctpRtoMax OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum value permitted by a SCTP implementation for the + retransmission timeout value, measured in milliseconds. More + refined semantics for objects of this type depend upon the + algorithm used to determine the retransmission timeout value. + + A retransmission time value of zero means immediate re- + transmission. + + The value of this object has to be greater than or equal to + stcpRtoMin's value." + DEFVAL {60000} -- milliseconds + ::= { sctpParams 3 } + +sctpRtoInitial OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The initial value for the retransmission timer. + + A retransmission time value of zero means immediate re- + transmission." + DEFVAL {3000} -- milliseconds + ::= { sctpParams 4 } + +sctpMaxAssocs OBJECT-TYPE + SYNTAX Integer32 (-1 | 0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The limit on the total number of associations the entity can + support. In entities where the maximum number of associations + is dynamic, this object should contain the value -1." + ::= { sctpParams 5 } + +sctpValCookieLife OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Valid cookie life in the 4-way start-up handshake procedure." + REFERENCE + "Section 5.1.3 in RFC2960 explains the cookie generation + process. Recommended value is per section 14 in RFC2960." + DEFVAL {60000} -- milliseconds + ::= { sctpParams 6 } + +sctpMaxInitRetr OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of retransmissions at the start-up phase + (INIT and COOKIE ECHO chunks). " + REFERENCE + "Section 5.1.4, 5.1.6 in RFC2960 refers to Max.Init.Retransmit + parameter. Recommended value is per section 14 in RFC2960." + DEFVAL {8} -- number of attempts + ::= { sctpParams 7 } + +-- TABLES +-- ****** + +-- the SCTP Association TABLE + +-- The SCTP association table contains information about each +-- association in which the local endpoint is involved. + +sctpAssocTable OBJECT-TYPE + SYNTAX SEQUENCE OF SctpAssocEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table containing SCTP association-specific information." + ::= { sctpObjects 3 } + +sctpAssocEntry OBJECT-TYPE + SYNTAX SctpAssocEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "General common variables and statistics for the whole + association." + INDEX { sctpAssocId } + ::= { sctpAssocTable 1 } + +SctpAssocEntry ::= SEQUENCE { + sctpAssocId Unsigned32, + sctpAssocRemHostName OCTET STRING, + sctpAssocLocalPort InetPortNumber, + sctpAssocRemPort InetPortNumber, + sctpAssocRemPrimAddrType InetAddressType, + sctpAssocRemPrimAddr InetAddress, + sctpAssocHeartBeatInterval Unsigned32, + sctpAssocState INTEGER, + sctpAssocInStreams Unsigned32, + sctpAssocOutStreams Unsigned32, + sctpAssocMaxRetr Unsigned32, + sctpAssocPrimProcess Unsigned32, + sctpAssocT1expireds Counter32, -- Statistic + sctpAssocT2expireds Counter32, -- Statistic + sctpAssocRtxChunks Counter32, -- Statistic + sctpAssocStartTime TimeStamp, + sctpAssocDiscontinuityTime TimeStamp + } + +sctpAssocId OBJECT-TYPE + SYNTAX Unsigned32 (1..4294967295) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Association Identification. Value identifying the + association. " + ::= { sctpAssocEntry 1 } + +sctpAssocRemHostName OBJECT-TYPE + SYNTAX OCTET STRING (SIZE(0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The peer's DNS name. This object needs to have the same + format as the encoding in the DNS protocol. This implies that + the domain name can be up to 255 octets long, each octet being + 0<=x<=255 as value with US-ASCII A-Z having a case insensitive + matching. + + If no DNS domain name was received from the peer at init time + (embedded in the INIT or INIT-ACK chunk), this object is + meaningless. In such cases the object MUST contain a zero- + length string value. Otherwise, it contains the remote host + name received at init time." + ::= { sctpAssocEntry 2 } + +sctpAssocLocalPort OBJECT-TYPE + SYNTAX InetPortNumber (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local SCTP port number used for this association." + ::= { sctpAssocEntry 3 } + +sctpAssocRemPort OBJECT-TYPE + SYNTAX InetPortNumber (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The remote SCTP port number used for this association." + ::= { sctpAssocEntry 4 } + +sctpAssocRemPrimAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internet type of primary remote IP address. " + ::= { sctpAssocEntry 5 } + +sctpAssocRemPrimAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The primary remote IP address. The type of this address is + determined by the value of sctpAssocRemPrimAddrType. + + The client side will know this value after INIT_ACK message + reception, the server side will know this value when sending + INIT_ACK message. However, values will be filled in at + established(4) state." + ::= { sctpAssocEntry 6 } + +sctpAssocHeartBeatInterval OBJECT-TYPE + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current heartbeat interval.. + + Zero value means no HeartBeat, even when the concerned + sctpAssocRemAddrHBFlag object is true." + DEFVAL {30000} -- milliseconds + ::= { sctpAssocEntry 7 } + +sctpAssocState OBJECT-TYPE + SYNTAX INTEGER { + closed(1), + cookieWait(2), + cookieEchoed(3), + established(4), + shutdownPending(5), + shutdownSent(6), + shutdownReceived(7), + shutdownAckSent(8), + deleteTCB(9) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The state of this SCTP association. + + As in TCP, deleteTCB(9) is the only value that may be set by a + management station. If any other value is received, then the + agent must return a wrongValue error. + + If a management station sets this object to the value + deleteTCB(9), then this has the effect of deleting the TCB (as + defined in SCTP) of the corresponding association on the + managed node, resulting in immediate termination of the + association. + + As an implementation-specific option, an ABORT chunk may be + sent from the managed node to the other SCTP endpoint as a + result of setting the deleteTCB(9) value. The ABORT chunk + implies an ungraceful association shutdown." + REFERENCE + "Section 4 in RFC2960 covers the SCTP Association state + diagram." + ::= { sctpAssocEntry 8 } + +sctpAssocInStreams OBJECT-TYPE + SYNTAX Unsigned32 (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Inbound Streams according to the negotiation at association + start up." + REFERENCE + "Section 1.3 in RFC2960 includes a definition of stream. + Section 5.1.1 in RFC2960 covers the streams negotiation + process." + ::= { sctpAssocEntry 9 } + +sctpAssocOutStreams OBJECT-TYPE + SYNTAX Unsigned32 (1..65535) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outbound Streams according to the negotiation at association + start up. " + REFERENCE + "Section 1.3 in RFC2960 includes a definition of stream. + Section 5.1.1 in RFC2960 covers the streams negotiation + process." + ::= { sctpAssocEntry 10 } + +sctpAssocMaxRetr OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum number of data retransmissions in the association + context. This value is specific for each association and the + upper layer can change it by calling the appropriate + primitives. This value has to be smaller than the addition of + all the maximum number for all the paths + (sctpAssocRemAddrMaxPathRtx). + + A value of zero value means no retransmissions." + DEFVAL {10} -- number of attempts + ::= { sctpAssocEntry 11 } + +sctpAssocPrimProcess OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object identifies the system level process which holds + primary responsibility for the SCTP association. + Wherever possible, this should be the system's native unique + identification number. The special value 0 can be used to + indicate that no primary process is known. + + Note that the value of this object can be used as a pointer + into the swRunTable of the HOST-RESOURCES-MIB(if the value is + smaller than 2147483647) or into the sysApplElmtRunTable of + the SYSAPPL-MIB." + ::= { sctpAssocEntry 12 } + +-- Association Statistics + +sctpAssocT1expireds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The T1 timer determines how long to wait for an + acknowledgement after sending an INIT or COOKIE-ECHO chunk. + This object reflects the number of times the T1 timer expires + without having received the acknowledgement. + + Discontinuities in the value of this counter can occur at re- + initialization of the management system, and at other times as + indicated by the value of sctpAssocDiscontinuityTime." + REFERENCE + "Section 5 in RFC2960." + ::= { sctpAssocEntry 13 } + +sctpAssocT2expireds OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The T2 timer determines how long to wait for an + acknowledgement after sending a SHUTDOWN or SHUTDOWN-ACK + chunk. This object reflects the number of times that T2- timer + expired. + + Discontinuities in the value of this counter can occur at re- + initialization of the management system, and at other times as + indicated by the value of sctpAssocDiscontinuityTime." +REFERENCE + "Section 9.2 in RFC2960." + ::= { sctpAssocEntry 14 } + +sctpAssocRtxChunks OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "When T3-rtx expires, the DATA chunks that triggered the T3 + timer will be re-sent according with the retransmissions + rules. Every DATA chunk that was included in the SCTP packet + that triggered the T3-rtx timer must be added to the value of + this counter. + + Discontinuities in the value of this counter can occur at re- + initialization of the management system, and at other times as + indicated by the value of sctpAssocDiscontinuityTime." + REFERENCE + "Section 6 in RFC2960 covers the retransmission process and + rules." + ::= { sctpAssocEntry 15 } + +sctpAssocStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time that the association + represented by this row enters the ESTABLISHED state, i.e., + the sctpAssocState object is set to established(4). The + value of this object will be zero: + - before the association enters the established(4) + state, or + + - if the established(4) state was entered prior to + the last re-initialization of the local network management + subsystem." + ::= { sctpAssocEntry 16 } + +sctpAssocDiscontinuityTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime on the most recent occasion at which + any one or more of this SCTP association counters suffered a + discontinuity. The relevant counters are the specific + instances associated with this interface of any Counter32 or + Counter64 object contained in the sctpAssocTable or + sctpLocalAddrTable or sctpRemAddrTable. If no such + discontinuities have occurred since the last re-initialization + of the local management subsystem, then this object contains a + zero value. " + REFERENCE + "The inclusion of this object is recommended by RFC2578." + ::= { sctpAssocEntry 17 } + +-- Expanded tables: Including Multi-home feature + +-- Local Address TABLE +-- ******************* + +sctpAssocLocalAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF SctpAssocLocalAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Expanded table of sctpAssocTable based on the AssocId index. + This table shows data related to each local IP address which + is used by this association." + ::= { sctpObjects 4 } + +sctpAssocLocalAddrEntry OBJECT-TYPE + SYNTAX SctpAssocLocalAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Local information about the available addresses. There will + be an entry for every local IP address defined for this + + association. + Implementors need to be aware that if the size of + sctpAssocLocalAddr exceeds 114 octets then OIDs of column + instances in this table will have more than 128 sub- + identifiers and cannot be accessed using SNMPv1, SNMPv2c, or + SNMPv3." + INDEX { sctpAssocId, -- shared index + sctpAssocLocalAddrType, + sctpAssocLocalAddr } + ::= { sctpAssocLocalAddrTable 1 } + +SctpAssocLocalAddrEntry ::= SEQUENCE { + sctpAssocLocalAddrType InetAddressType, + sctpAssocLocalAddr InetAddress, + sctpAssocLocalAddrStartTime TimeStamp + } + +sctpAssocLocalAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Internet type of local IP address used for this association." + ::= { sctpAssocLocalAddrEntry 1 } + +sctpAssocLocalAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of a local IP address available for this + association. The type of this address is determined by the + value of sctpAssocLocalAddrType." + ::= { sctpAssocLocalAddrEntry 2 } + +sctpAssocLocalAddrStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time that this row was + created." + ::= { sctpAssocLocalAddrEntry 3 } + +-- Remote Addresses TABLE +-- ********************** + +sctpAssocRemAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF SctpAssocRemAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Expanded table of sctpAssocTable based on the AssocId index. + This table shows data related to each remote peer IP address + which is used by this association." + ::= { sctpObjects 5 } + +sctpAssocRemAddrEntry OBJECT-TYPE + SYNTAX SctpAssocRemAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Information about the most important variables for every + remote IP address. There will be an entry for every remote IP + address defined for this association. + + Implementors need to be aware that if the size of + sctpAssocRemAddr exceeds 114 octets then OIDs of column + instances in this table will have more than 128 sub- + identifiers and cannot be accessed using SNMPv1, SNMPv2c, or + SNMPv3." + INDEX { sctpAssocId, -- shared index + sctpAssocRemAddrType, + sctpAssocRemAddr } + ::= { sctpAssocRemAddrTable 1 } + +SctpAssocRemAddrEntry ::= SEQUENCE { + sctpAssocRemAddrType InetAddressType, + sctpAssocRemAddr InetAddress, + sctpAssocRemAddrActive TruthValue, + sctpAssocRemAddrHBActive TruthValue, + sctpAssocRemAddrRTO Unsigned32, + sctpAssocRemAddrMaxPathRtx Unsigned32, + sctpAssocRemAddrRtx Counter32, -- Statistic + sctpAssocRemAddrStartTime TimeStamp + } + +sctpAssocRemAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Internet type of a remote IP address available for this + association." + ::= { sctpAssocRemAddrEntry 1 } + +sctpAssocRemAddr OBJECT-TYPE + SYNTAX InetAddress + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The value of a remote IP address available for this + association. The type of this address is determined by the + value of sctpAssocLocalAddrType." + ::= { sctpAssocRemAddrEntry 2 } + +sctpAssocRemAddrActive OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object gives information about the reachability of this + specific remote IP address. + + When the object is set to 'true' (1), the remote IP address is + understood as Active. Active means that the threshold of no + answers received from this IP address has not been reached. + + When the object is set to 'false' (2), the remote IP address + is understood as Inactive. Inactive means that either no + heartbeat or any other message was received from this address, + reaching the threshold defined by the protocol." + REFERENCE + "The remote transport states are defined as Active and + Inactive in the SCTP, RFC2960." + ::= { sctpAssocRemAddrEntry 3 } + +sctpAssocRemAddrHBActive OBJECT-TYPE + SYNTAX TruthValue + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "This object indicates whether the optional Heartbeat check + associated to one destination transport address is activated + or not (value equal to true or false, respectively). " + ::= { sctpAssocRemAddrEntry 4 } + +sctpAssocRemAddrRTO OBJECT-TYPE -- T3-rtx- Timer + SYNTAX Unsigned32 + UNITS "milliseconds" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current Retransmission Timeout. T3-rtx timer as defined + in the protocol SCTP." + REFERENCE + "Section 6.3 in RFC2960 deals with the Retransmission Timer + Management." + ::= { sctpAssocRemAddrEntry 5 } + +sctpAssocRemAddrMaxPathRtx OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of DATA chunks retransmissions allowed to a + remote IP address before it is considered inactive, as defined + in RFC2960." + REFERENCE + "Section 8.2, 8.3 and 14 in RFC2960." + DEFVAL {5} -- number of attempts + ::= { sctpAssocRemAddrEntry 6 } + +-- Remote Address Statistic + +sctpAssocRemAddrRtx OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of DATA chunks retransmissions to this specific IP + address. When T3-rtx expires, the DATA chunk that triggered + the T3 timer will be re-sent according to the retransmissions + rules. Every DATA chunk that is included in a SCTP packet and + was transmitted to this specific IP address before, will be + included in this counter. + + Discontinuities in the value of this counter can occur at re- + initialization of the management system, and at other times as + indicated by the value of sctpAssocDiscontinuityTime." + ::= { sctpAssocRemAddrEntry 7 } + +sctpAssocRemAddrStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time that this row was + created." + ::= { sctpAssocRemAddrEntry 8 } + +-- ASSOCIATION INVERSE TABLE +-- ************************* + +-- BY LOCAL PORT + +sctpLookupLocalPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF SctpLookupLocalPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "With the use of this table, a list of associations which are + + using the specified local port can be retrieved." + ::= { sctpObjects 6 } + +sctpLookupLocalPortEntry OBJECT-TYPE + SYNTAX SctpLookupLocalPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table is indexed by local port and association ID. + Specifying a local port, we would get a list of the + associations whose local port is the one specified." + INDEX { sctpAssocLocalPort, + sctpAssocId } + ::= { sctpLookupLocalPortTable 1 } + +SctpLookupLocalPortEntry::= SEQUENCE { + sctpLookupLocalPortStartTime TimeStamp + } + +sctpLookupLocalPortStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time that this row was created. + + As the table will be created after the sctpAssocTable + creation, this value could be equal to the sctpAssocStartTime + object from the main table." + ::= { sctpLookupLocalPortEntry 1 } + +-- BY REMOTE PORT + +sctpLookupRemPortTable OBJECT-TYPE + SYNTAX SEQUENCE OF SctpLookupRemPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "With the use of this table, a list of associations which are + using the specified remote port can be got" + ::= { sctpObjects 7 } + +sctpLookupRemPortEntry OBJECT-TYPE + SYNTAX SctpLookupRemPortEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table is indexed by remote port and association ID. + Specifying a remote port we would get a list of the + associations whose local port is the one specified " + INDEX { sctpAssocRemPort, + sctpAssocId } + ::= { sctpLookupRemPortTable 1 } + +SctpLookupRemPortEntry::= SEQUENCE { + sctpLookupRemPortStartTime TimeStamp + } + +sctpLookupRemPortStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time that this row was created. + + As the table will be created after the sctpAssocTable + creation, this value could be equal to the sctpAssocStartTime + object from the main table." + ::= { sctpLookupRemPortEntry 1 } + +-- BY REMOTE HOST NAME + +sctpLookupRemHostNameTable OBJECT-TYPE + SYNTAX SEQUENCE OF SctpLookupRemHostNameEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "With the use of this table, a list of associations with that + particular host can be retrieved." + ::= { sctpObjects 8 } + +sctpLookupRemHostNameEntry OBJECT-TYPE + SYNTAX SctpLookupRemHostNameEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table is indexed by remote host name and association ID. + Specifying a host name we would get a list of the associations + specifying that host name as the remote one. + + Implementors need to be aware that if the size of + sctpAssocRemHostName exceeds 115 octets then OIDs of column + instances in this table will have more than 128 sub- + identifiers and cannot be accessed using SNMPv1, SNMPv2c, or + SNMPv3." + INDEX { sctpAssocRemHostName, + sctpAssocId } + ::= { sctpLookupRemHostNameTable 1 } + +SctpLookupRemHostNameEntry::= SEQUENCE { + sctpLookupRemHostNameStartTime TimeStamp + } + +sctpLookupRemHostNameStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of sysUpTime at the time that this row was created. + + As the table will be created after the sctpAssocTable + creation, this value could be equal to the sctpAssocStartTime + object from the main table." + ::= { sctpLookupRemHostNameEntry 1 } + +-- BY REMOTE PRIMARY IP ADDRESS + +sctpLookupRemPrimIPAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF SctpLookupRemPrimIPAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "With the use of this table, a list of associations that have + the specified IP address as primary within the remote set of + active addresses can be retrieved." + ::= { sctpObjects 9 } + +sctpLookupRemPrimIPAddrEntry OBJECT-TYPE + SYNTAX SctpLookupRemPrimIPAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table is indexed by primary address and association ID. + Specifying a primary address, we would get a list of the + associations that have the specified remote IP address marked + as primary. + Implementors need to be aware that if the size of + sctpAssocRemPrimAddr exceeds 114 octets then OIDs of column + instances in this table will have more than 128 sub- + identifiers and cannot be accessed using SNMPv1, SNMPv2c, or + SNMPv3." + INDEX { sctpAssocRemPrimAddrType, + sctpAssocRemPrimAddr, + sctpAssocId } + ::= { sctpLookupRemPrimIPAddrTable 1 } + +SctpLookupRemPrimIPAddrEntry::= SEQUENCE { + sctpLookupRemPrimIPAddrStartTime TimeStamp + } + +sctpLookupRemPrimIPAddrStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of SysUpTime at the time that this row was created. + + As the table will be created after the sctpAssocTable + creation, this value could be equal to the sctpAssocStartTime + object from the main table." + ::= { sctpLookupRemPrimIPAddrEntry 1 } + +-- BY REMOTE IP ADDRESS + +sctpLookupRemIPAddrTable OBJECT-TYPE + SYNTAX SEQUENCE OF SctpLookupRemIPAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "With the use of this table, a list of associations that have + the specified IP address as one of the remote ones can be + retrieved. " + ::= { sctpObjects 10 } + +sctpLookupRemIPAddrEntry OBJECT-TYPE + SYNTAX SctpLookupRemIPAddrEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "This table is indexed by a remote IP address and association + ID. Specifying an IP address we would get a list of the + associations that have the specified IP address included + within the set of remote IP addresses." + INDEX { sctpAssocRemAddrType, + sctpAssocRemAddr, + sctpAssocId } + ::= { sctpLookupRemIPAddrTable 1 } + +SctpLookupRemIPAddrEntry::= SEQUENCE { + + sctpLookupRemIPAddrStartTime TimeStamp + } + +sctpLookupRemIPAddrStartTime OBJECT-TYPE + SYNTAX TimeStamp + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The value of SysUpTime at the time that this row was created. + + As the table will be created after the sctpAssocTable + creation, this value could be equal to the sctpAssocStartTime + object from the main table." + ::= { sctpLookupRemIPAddrEntry 1 } + +-- 4.1 Conformance Information + +sctpMibConformance OBJECT IDENTIFIER ::= { sctpMIB 2 } +sctpMibCompliances OBJECT IDENTIFIER ::= { sctpMibConformance 1 } +sctpMibGroups OBJECT IDENTIFIER ::= { sctpMibConformance 2 } + +-- 4.1.1 Units of conformance + +-- +-- MODULE GROUPS +-- + +sctpLayerParamsGroup OBJECT-GROUP + OBJECTS { sctpRtoAlgorithm, + sctpRtoMin, + sctpRtoMax, + sctpRtoInitial, + sctpMaxAssocs, + sctpValCookieLife, + sctpMaxInitRetr + } + STATUS current + DESCRIPTION + "Common parameters for the SCTP layer, i.e., for all the + associations. They can usually be referred to as configuration + parameters." + ::= { sctpMibGroups 1 } + +sctpStatsGroup OBJECT-GROUP + OBJECTS { sctpCurrEstab, + sctpActiveEstabs, + sctpPassiveEstabs, + sctpAborteds, + sctpShutdowns, + sctpOutOfBlues, + sctpChecksumErrors, + sctpOutCtrlChunks, + sctpOutOrderChunks, + sctpOutUnorderChunks, + sctpInCtrlChunks, + sctpInOrderChunks, + sctpInUnorderChunks, + sctpFragUsrMsgs, + sctpReasmUsrMsgs, + sctpOutSCTPPacks, + sctpInSCTPPacks, + sctpDiscontinuityTime, + sctpAssocT1expireds, + sctpAssocT2expireds, + sctpAssocRtxChunks, + sctpAssocRemAddrRtx + } + STATUS current + DESCRIPTION + "Statistics group. It includes the objects to collect state + changes in the SCTP protocol local layer and flow control + statistics." + ::= { sctpMibGroups 2 } + +sctpPerAssocParamsGroup OBJECT-GROUP + OBJECTS { sctpAssocRemHostName, + sctpAssocLocalPort, + sctpAssocRemPort, + sctpAssocRemPrimAddrType, + sctpAssocRemPrimAddr, + sctpAssocHeartBeatInterval, + sctpAssocState, + sctpAssocInStreams, + sctpAssocOutStreams, + sctpAssocMaxRetr, + sctpAssocPrimProcess, + sctpAssocStartTime, + sctpAssocDiscontinuityTime, + sctpAssocLocalAddrStartTime, + sctpAssocRemAddrActive, + sctpAssocRemAddrHBActive, + sctpAssocRemAddrRTO, + sctpAssocRemAddrMaxPathRtx, + sctpAssocRemAddrStartTime + } + STATUS current + DESCRIPTION + "The SCTP group of objects to manage per-association + parameters. These variables include all the SCTP basic + features." + ::= { sctpMibGroups 3 } + +sctpPerAssocStatsGroup OBJECT-GROUP + OBJECTS + { sctpAssocT1expireds, + sctpAssocT2expireds, + sctpAssocRtxChunks, + sctpAssocRemAddrRtx + } + STATUS current + DESCRIPTION + "Per Association Statistics group. It includes the objects to + collect flow control statistics per association." + ::= { sctpMibGroups 4 } + +sctpInverseGroup OBJECT-GROUP + OBJECTS { sctpLookupLocalPortStartTime, + sctpLookupRemPortStartTime, + sctpLookupRemHostNameStartTime, + sctpLookupRemPrimIPAddrStartTime, + sctpLookupRemIPAddrStartTime + } + STATUS current + DESCRIPTION + "Objects used in the inverse lookup tables." + ::= { sctpMibGroups 5 } + +-- 4.1.2 Compliance Statements + +-- +-- MODULE COMPLIANCES +-- + +sctpMibCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMP entities which implement + this SCTP MIB Module. + + There are a number of INDEX objects that cannot be represented + in the form of OBJECT clauses in SMIv2, but for which we have + the following compliance requirements, expressed in OBJECT + clause form in this description clause: + +-- OBJECT sctpAssocLocalAddrType +-- SYNTAX InetAddressType {ipv4(1), ipv6(2)} +-- DESCRIPTION +-- It is only required to have IPv4 and IPv6 addresses without +-- zone indices. +-- The address with zone indices is required if an +-- implementation can connect multiple zones. +-- +-- OBJECT sctpAssocLocalAddr +-- SYNTAX InetAddress (SIZE(4|16)) +-- DESCRIPTION +-- An implementation is only required to support globally +-- unique IPv4 and IPv6 addresses. +-- +-- OBJECT sctpAssocRemAddrType +-- SYNTAX InetAddressType {ipv4(1), ipv6(2)} +-- DESCRIPTION +-- It is only required to have IPv4 and IPv6 addresses without +-- zone indices. +-- The address with zone indices is required if an +-- implementation can connect multiple zones. +-- +-- OBJECT sctpAssocRemAddr +-- SYNTAX InetAddress (SIZE(4|16)) +-- DESCRIPTION +-- An implementation is only required to support globally +-- unique IPv4 and IPv6 addresses. +-- + " -- closes DESCRIPTION clause of MODULE-COMPLIANCE + + MODULE -- this module + + MANDATORY-GROUPS { sctpLayerParamsGroup, + sctpPerAssocParamsGroup, + sctpStatsGroup, + sctpPerAssocStatsGroup + } + + OBJECT sctpAssocRemPrimAddrType + SYNTAX InetAddressType { ipv4(1), + ipv6(2) + } + DESCRIPTION + "It is only required to have IPv4 and IPv6 addresses + without zone indices. + + The address with zone indices is required if an + implementation can connect multiple zones." + + OBJECT sctpAssocRemPrimAddr + SYNTAX InetAddress (SIZE(4|16)) + DESCRIPTION + "An implementation is only required to support globally + unique IPv4 and globally unique IPv6 addresses." + + OBJECT sctpAssocState + WRITE-SYNTAX INTEGER { deleteTCB(9) } + MIN-ACCESS read-only + DESCRIPTION + "Only the deleteTCB(9) value MAY be set by a management + station at most. A read-only option is also considered to + be compliant with this MIB module description." + + GROUP sctpInverseGroup + DESCRIPTION + "Objects used in inverse lookup tables. This should be + implemented, at the discretion of the implementers, for + easier lookups in the association tables" + ::= { sctpMibCompliances 1 } + +END diff --git a/mibs/STE-MIB b/mibs/STE-MIB new file mode 100644 index 0000000000..4f7e1bdb16 --- /dev/null +++ b/mibs/STE-MIB @@ -0,0 +1,160 @@ +-- HWg-STE MIB 1.02 +-- History: +-- +-- 1.00 08.12.2008 Marek Hummel - Created +-- 1.01 03.08.2009 Marek Hummel - Add SensorID, Change SensorState values +-- 1.02 14.05.2010 Marek Hummel - Fix Syntax +-- + +STE-MIB DEFINITIONS ::= BEGIN +IMPORTS + OBJECT-TYPE FROM RFC-1212 + enterprises FROM RFC1155-SMI + DisplayString,sysName FROM RFC1213-MIB + TRAP-TYPE FROM RFC-1215; + +-- +-- Type Definitions +-- +PositiveInteger ::= INTEGER (1..2147483647) -- 0x7FFF FFFF + +UnitType ::= INTEGER { + none (0), + celsius (1), + fahrenheit (2), + kelvin (3), + percent(4) + } + +SensorState ::= INTEGER { + invalid (0), + normal (1), + outofrangelo (2), + outofrangehi (3), + alarmlo (4), + alarmhi (5) + } + +SensorSN ::= DisplayString (SIZE (0..16)) +SensorName ::= DisplayString (SIZE (0..16)) +SensorValue ::= INTEGER +SensorID ::= INTEGER +SensorString ::= DisplayString (SIZE (0..10)) + +-- +-- Node Definitions +-- + +hwgroup OBJECT IDENTIFIER ::= { enterprises 21796 } +x390 OBJECT IDENTIFIER ::= { hwgroup 4 } +ste OBJECT IDENTIFIER ::= { x390 1 } + +-- Application Info +info OBJECT IDENTIFIER ::= { ste 70 } + +infoAddressMAC OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..17)) + ACCESS read-only + STATUS mandatory + DESCRIPTION + "MAC address in text form. + It is here to distinguish devices in trap messages." + ::= { info 1 } + +-- Table has to be last in a branch to satisfy snmp walk engine implementation +sensTable OBJECT-TYPE + SYNTAX SEQUENCE OF SensEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "A list of sensor table entries. The number + of entries corresponds with number of detected sensors." + ::= { ste 3 } + +sensEntry OBJECT-TYPE + SYNTAX SensEntry + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "An entry containing information applicable to a + particular sensor." + INDEX { sensIndex } + ::= { sensTable 1 } + +SensEntry ::= SEQUENCE { + sensIndex PositiveInteger, + sensName SensorName, + sensState SensorState, + sensString SensorString, + sensValue SensorValue, + sensSN SensorSN, + sensUnit UnitType, + sensID SensorID +} + +sensIndex OBJECT-TYPE + SYNTAX PositiveInteger + ACCESS not-accessible + STATUS mandatory + DESCRIPTION + "The sensor index." + ::= { sensEntry 1 } + +sensName OBJECT-TYPE + SYNTAX SensorName + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The sensor name." + ::= { sensEntry 2 } + +sensState OBJECT-TYPE + SYNTAX SensorState + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The sensor state." + ::= { sensEntry 3 } + +sensString OBJECT-TYPE + SYNTAX SensorString + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The string representation of sensor value." + ::= { sensEntry 4 } + +sensValue OBJECT-TYPE + SYNTAX SensorValue + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The integer (decimal * 10) representation + of sensor value." + ::= { sensEntry 5 } + +sensSN OBJECT-TYPE + SYNTAX SensorSN + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The sensor Serial number." + ::= { sensEntry 6 } + +sensUnit OBJECT-TYPE + SYNTAX UnitType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The sensor unit." + ::= { sensEntry 7 } + +sensID OBJECT-TYPE + SYNTAX UnitType + ACCESS read-only + STATUS mandatory + DESCRIPTION + "The sensor ID." + ::= { sensEntry 8 } + +END diff --git a/mibs/Sentry4.mib b/mibs/Sentry4.mib new file mode 100644 index 0000000000..cb7650c37e --- /dev/null +++ b/mibs/Sentry4.mib @@ -0,0 +1,4466 @@ +-- +-- Copyright(C) 2003-2015 Server Technology, Inc. +-- + + Sentry4-MIB DEFINITIONS ::= BEGIN + + IMPORTS + MODULE-IDENTITY, enterprises, Integer32, + OBJECT-TYPE, NOTIFICATION-TYPE FROM SNMPv2-SMI + OBJECT-GROUP, NOTIFICATION-GROUP, MODULE-COMPLIANCE FROM SNMPv2-CONF + TEXTUAL-CONVENTION, DisplayString FROM SNMPv2-TC; + + + sentry4 MODULE-IDENTITY + LAST-UPDATED "201502191000Z" -- 19 February 2015 + ORGANIZATION "Server Technology, Inc." + CONTACT-INFO + "Server Technology, Inc. + 1040 Sandhill Road + Reno, NV 89521 + Tel: (775) 284-2000 + Fax: (775) 284-2065 + Email: mibmaster@servertech.com" + DESCRIPTION + "This is the MIB module for the fourth generation of the + Sentry product family. This includes the PRO2 series of + Smart and Switched Cabinet Distribution Unit (CDU) and + Power Distribution Unit (PDU) products." + REVISION "201502191000Z" -- 19 February 2015 + DESCRIPTION + "Corrected the UNITS and value range of temperature sensor + threshold objects." + REVISION "201412231130Z" -- 23 December 2014 + DESCRIPTION + "Initial release." + ::= { serverTech 4 } + + serverTech OBJECT IDENTIFIER ::= { enterprises 1718 } + + +-- Common Definitions + + DeviceStatus ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Status returned by devices." + SYNTAX INTEGER { + normal(0), -- operating properly + disabled(1), -- disabled + purged(2), -- purged + reading(5), -- read in process + settle(6), -- is settling + notFound(7), -- never connected + lost(8), -- disconnected + readError(9), -- read failure + noComm(10), -- unreachable + pwrError(11), -- power detection error + breakerTripped(12), -- breaker error + fuseBlown(13), -- fuse error + lowAlarm(14), -- under user set alarm + lowWarning(15), -- under user set threshold + highWarning(16), -- over user set threshold + highAlarm(17), -- over user set threshold + alarm(18), -- general alarm + underLimit(19), -- under limit alarm + overLimit(20), -- over limit alarm + nvmFail(21), -- NVM failure + profileError(22), -- profile error + conflict(23) -- conflict + } + + DeviceState ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "On or off state of devices." + SYNTAX INTEGER { + unknown(0), -- on / off state is unknown + on(1), -- is on + off(2) -- is off + } + + EventNotificationMethods ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "Bits to enable event notification methods." + SYNTAX BITS { + snmpTrap(0), -- enables notifications by SNMP traps + email(1) -- enables notifications by Email + } + +-- Object Definitions + + st4Objects OBJECT IDENTIFIER ::= { sentry4 1 } + + -- System + + st4System OBJECT IDENTIFIER ::= { st4Objects 1 } + + -- System Configuration + + st4SystemConfig OBJECT IDENTIFIER ::= { st4System 1 } + + st4SystemProductName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The product name." + ::= { st4SystemConfig 1 } + + st4SystemLocation OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..63)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The location of the system." + ::= { st4SystemConfig 2 } + + st4SystemFirmwareVersion OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The firmware version." + ::= { st4SystemConfig 3 } + + st4SystemFirmwareBuildInfo OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The firmware build information." + ::= { st4SystemConfig 4 } + + st4SystemNICSerialNumber OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..8)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The serial number of the network interface card." + ::= { st4SystemConfig 5 } + + st4SystemNICHardwareInfo OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..63)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hardware information about the network interface card." + ::= { st4SystemConfig 6 } + + st4SystemFeatures OBJECT-TYPE + SYNTAX BITS { + smartLoadShedding(0), + reserved(1), + outletControlInhibit(2) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The key-activated features enabled in the system." + ::= { st4SystemConfig 10 } + + st4SystemFeatureKey OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..19)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "A valid feature key written to this object will enable a + feature in the system. A valid feature key is in the form + xxxx-xxxx-xxxx-xxxx. A read of this object returns an + empty string." + ::= { st4SystemConfig 11 } + + st4SystemConfigModifiedCount OBJECT-TYPE + SYNTAX Integer32(0..2147483647) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total number of times the system configuration has changed." + ::= { st4SystemConfig 20 } + + st4SystemUnitCount OBJECT-TYPE + SYNTAX Integer32(0..8) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of units in the system." + ::= { st4SystemConfig 21 } + + -- Units + + st4Units OBJECT IDENTIFIER ::= { st4Objects 2 } + + -- Unit Common Configuration + + st4UnitCommonConfig OBJECT IDENTIFIER ::= { st4Units 1 } + + -- Unit Configuration Table + + st4UnitConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4UnitConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Unit configuration table." + ::= { st4Units 2 } + + st4UnitConfigEntry OBJECT-TYPE + SYNTAX St4UnitConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular unit." + INDEX { st4UnitIndex } + ::= { st4UnitConfigTable 1 } + + St4UnitConfigEntry ::= SEQUENCE { + st4UnitIndex Integer32, + st4UnitID DisplayString, + st4UnitName DisplayString, + st4UnitProductSN DisplayString, + st4UnitModel DisplayString, + st4UnitAssetTag DisplayString, + st4UnitType INTEGER, + st4UnitCapabilities BITS, + st4UnitDisplayOrientation INTEGER, + st4UnitOutletSequenceOrder INTEGER, + st4UnitInputCordCount Integer32, + st4UnitTempSensorCount Integer32, + st4UnitHumidSensorCount Integer32, + st4UnitWaterSensorCount Integer32, + st4UnitCcSensorCount Integer32, + st4UnitAdcSensorCount Integer32 + } + + st4UnitIndex OBJECT-TYPE + SYNTAX Integer32(1..6) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Unit index. A=1, B=2, C=3, D=4, E=5, F=6." + ::= { st4UnitConfigEntry 1 } + + st4UnitID OBJECT-TYPE + SYNTAX DisplayString(SIZE(1)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the unit. Format=A." + ::= { st4UnitConfigEntry 2 } + + st4UnitName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the unit." + ::= { st4UnitConfigEntry 3 } + + st4UnitProductSN OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The product serial number of the unit." + ::= { st4UnitConfigEntry 4 } + + st4UnitModel OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The model of the unit." + ::= { st4UnitConfigEntry 5 } + + st4UnitAssetTag OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The asset tag of the unit." + ::= { st4UnitConfigEntry 6 } + + st4UnitType OBJECT-TYPE + SYNTAX INTEGER { + masterPdu(0), + linkPdu(1), + controller(2), + emcu(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of the unit." + ::= { st4UnitConfigEntry 7 } + + st4UnitCapabilities OBJECT-TYPE + SYNTAX BITS { + dc(0), -- unit is DC + phase3(1), -- unit is 3 phase + wye(2), -- unit has Wye circuits + delta(3) -- unit has Delta circuits + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The capabilities of the unit." + ::= { st4UnitConfigEntry 8 } + + st4UnitDisplayOrientation OBJECT-TYPE + SYNTAX INTEGER { + normal(0), + inverted(1), + auto(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The orientation of all displays in the unit." + ::= { st4UnitConfigEntry 20 } + + st4UnitOutletSequenceOrder OBJECT-TYPE + SYNTAX INTEGER { + normal(0), + reversed(1) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The sequencing order of all outlets in the unit." + ::= { st4UnitConfigEntry 21 } + + st4UnitInputCordCount OBJECT-TYPE + SYNTAX Integer32(0..4) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of power input cords into the unit." + ::= { st4UnitConfigEntry 30 } + + st4UnitTempSensorCount OBJECT-TYPE + SYNTAX Integer32(0..2) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of external temperature sensors supported by the unit." + ::= { st4UnitConfigEntry 31 } + + st4UnitHumidSensorCount OBJECT-TYPE + SYNTAX Integer32(0..2) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of external humidity sensors supported by the unit." + ::= { st4UnitConfigEntry 32 } + + st4UnitWaterSensorCount OBJECT-TYPE + SYNTAX Integer32(0..1) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of external water sensors supported by the unit." + ::= { st4UnitConfigEntry 33 } + + st4UnitCcSensorCount OBJECT-TYPE + SYNTAX Integer32(0..4) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of external contact closure sensors supported by the + unit." + ::= { st4UnitConfigEntry 34 } + + st4UnitAdcSensorCount OBJECT-TYPE + SYNTAX Integer32(0..1) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of analog-to-digital converter sensors supported by the + unit." + ::= { st4UnitConfigEntry 35 } + + -- Unit Monitor Table + + st4UnitMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4UnitMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Unit monitor table." + ::= { st4Units 3 } + + st4UnitMonitorEntry OBJECT-TYPE + SYNTAX St4UnitMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular unit." + INDEX { st4UnitIndex } + ::= { st4UnitMonitorTable 1 } + + St4UnitMonitorEntry ::= SEQUENCE { + st4UnitStatus DeviceStatus + } + + st4UnitStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the unit." + ::= { st4UnitMonitorEntry 1 } + + -- Unit Event Configuration Table + + st4UnitEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4UnitEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Unit event configuration table." + ::= { st4Units 4 } + + st4UnitEventConfigEntry OBJECT-TYPE + SYNTAX St4UnitEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular unit." + INDEX { st4UnitIndex } + ::= { st4UnitEventConfigTable 1 } + + St4UnitEventConfigEntry ::= SEQUENCE { + st4UnitNotifications EventNotificationMethods + } + + st4UnitNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for unit events." + ::= { st4UnitEventConfigEntry 1 } + + -- Input Cords + + st4InputCords OBJECT IDENTIFIER ::= { st4Objects 3 } + + -- Input Cord Common Configuration + + st4InputCordCommonConfig OBJECT IDENTIFIER ::= { st4InputCords 1 } + + st4InputCordActivePowerHysteresis OBJECT-TYPE + SYNTAX Integer32(0..1000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The active power hysteresis of the input cord in Watts." + ::= { st4InputCordCommonConfig 1 } + + st4InputCordApparentPowerHysteresis OBJECT-TYPE + SYNTAX Integer32(0..1000) + UNITS "Volt-Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The apparent power hysteresis of the input cord in Volt-Amps." + ::= { st4InputCordCommonConfig 2 } + + st4InputCordPowerFactorHysteresis OBJECT-TYPE + SYNTAX Integer32(0..20) + UNITS "hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The power factor hysteresis of the input cord in hundredths." + ::= { st4InputCordCommonConfig 3 } + + st4InputCordOutOfBalanceHysteresis OBJECT-TYPE + SYNTAX Integer32(0..10) + UNITS "percent" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The 3 phase out-of-balance hysteresis of the input cord in + percent." + ::= { st4InputCordCommonConfig 4 } + + -- Input Cord Configuration Table + + st4InputCordConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4InputCordConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Input cord configuration table." + ::= { st4InputCords 2 } + + st4InputCordConfigEntry OBJECT-TYPE + SYNTAX St4InputCordConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular input cord." + INDEX { st4UnitIndex, st4InputCordIndex } + ::= { st4InputCordConfigTable 1 } + + St4InputCordConfigEntry ::= SEQUENCE { + st4InputCordIndex Integer32, + st4InputCordID DisplayString, + st4InputCordName DisplayString, + st4InputCordInletType DisplayString, + st4InputCordNominalVoltage Integer32, + st4InputCordNominalVoltageMin Integer32, + st4InputCordNominalVoltageMax Integer32, + st4InputCordCurrentCapacity Integer32, + st4InputCordCurrentCapacityMax Integer32, + st4InputCordPowerCapacity Integer32, + st4InputCordLineCount Integer32, + st4InputCordPhaseCount Integer32, + st4InputCordOcpCount Integer32, + st4InputCordBranchCount Integer32, + st4InputCordOutletCount Integer32 + } + + st4InputCordIndex OBJECT-TYPE + SYNTAX Integer32(1..4) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Input cord index. A=1, B=2, C=3, D=4." + ::= { st4InputCordConfigEntry 1 } + + st4InputCordID OBJECT-TYPE + SYNTAX DisplayString(SIZE(2)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the input cord. Format=AA." + ::= { st4InputCordConfigEntry 2 } + + st4InputCordName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the input cord." + ::= { st4InputCordConfigEntry 3 } + + st4InputCordInletType OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of plug on the input cord, or socket for the input cord." + ::= { st4InputCordConfigEntry 6} + + st4InputCordNominalVoltage OBJECT-TYPE + SYNTAX Integer32(850..3000) + UNITS "tenth Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The user-configured nominal voltage of the input cord in tenth + Volts." + ::= { st4InputCordConfigEntry 7 } + + st4InputCordNominalVoltageMin OBJECT-TYPE + SYNTAX Integer32(85..300) + UNITS "Volts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The factory-set minimum allowed for the user-configured nominal + voltage of the input cord in Volts." + ::= { st4InputCordConfigEntry 8 } + + st4InputCordNominalVoltageMax OBJECT-TYPE + SYNTAX Integer32(85..300) + UNITS "Volts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The factory-set maximum allowed for the user-configured nominal + voltage of the input cord in Volts." + ::= { st4InputCordConfigEntry 9 } + + st4InputCordCurrentCapacity OBJECT-TYPE + SYNTAX Integer32(-1..300) + UNITS "Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The user-configured current capacity of the input cord in Amps." + ::= { st4InputCordConfigEntry 10 } + + st4InputCordCurrentCapacityMax OBJECT-TYPE + SYNTAX Integer32(-1..300) + UNITS "Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The factory-set maximum allowed for the user-configured current + capacity of the input cord in Amps." + ::= { st4InputCordConfigEntry 11 } + + st4InputCordPowerCapacity OBJECT-TYPE + SYNTAX Integer32(-1..50000) + UNITS "Volt-Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The power capacity of the input cord in Volt-Amps. For DC + products, this is identical to power capacity in Watts." + ::= { st4InputCordConfigEntry 12 } + + st4InputCordLineCount OBJECT-TYPE + SYNTAX Integer32(0..4) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of current-carrying lines in the input cord." + ::= { st4InputCordConfigEntry 20 } + + st4InputCordPhaseCount OBJECT-TYPE + SYNTAX Integer32(0..6) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of active phases from the lines in the input cord." + ::= { st4InputCordConfigEntry 21 } + + st4InputCordOcpCount OBJECT-TYPE + SYNTAX Integer32(0..12) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of over-current protectors downstream from the input + cord." + ::= { st4InputCordConfigEntry 22 } + + st4InputCordBranchCount OBJECT-TYPE + SYNTAX Integer32(0..12) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of branches downstream from the input cord." + ::= { st4InputCordConfigEntry 23 } + + st4InputCordOutletCount OBJECT-TYPE + SYNTAX Integer32(0..128) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outlets powered from the input cord." + ::= { st4InputCordConfigEntry 24 } + + -- Input Cord Monitor Table + + st4InputCordMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4InputCordMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Input cord monitor table." + ::= { st4InputCords 3 } + + st4InputCordMonitorEntry OBJECT-TYPE + SYNTAX St4InputCordMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular input cord." + INDEX { st4UnitIndex, st4InputCordIndex } + ::= { st4InputCordMonitorTable 1 } + + St4InputCordMonitorEntry ::= SEQUENCE { + st4InputCordState DeviceState, + st4InputCordStatus DeviceStatus, + st4InputCordActivePower Integer32, + st4InputCordActivePowerStatus DeviceStatus, + st4InputCordApparentPower Integer32, + st4InputCordApparentPowerStatus DeviceStatus, + st4InputCordPowerUtilized Integer32, + st4InputCordPowerFactor Integer32, + st4InputCordPowerFactorStatus DeviceStatus, + st4InputCordEnergy Integer32, + st4InputCordFrequency Integer32, + st4InputCordOutOfBalance Integer32, + st4InputCordOutOfBalanceStatus DeviceStatus + } + + st4InputCordState OBJECT-TYPE + SYNTAX DeviceState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The on/off state of the input cord." + ::= { st4InputCordMonitorEntry 1 } + + st4InputCordStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the input cord." + ::= { st4InputCordMonitorEntry 2 } + + st4InputCordActivePower OBJECT-TYPE + SYNTAX Integer32(-1..50000) + UNITS "Watts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured active power of the input cord in Watts." + ::= { st4InputCordMonitorEntry 3 } + + st4InputCordActivePowerStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured active power of the input cord." + ::= { st4InputCordMonitorEntry 4 } + + st4InputCordApparentPower OBJECT-TYPE + SYNTAX Integer32(-1..50000) + UNITS "Volt-Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured apparent power of the input cord in Volt-Amps." + ::= { st4InputCordMonitorEntry 5 } + + st4InputCordApparentPowerStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured apparent power of the input cord." + ::= { st4InputCordMonitorEntry 6 } + + st4InputCordPowerUtilized OBJECT-TYPE + SYNTAX Integer32(-1..1200) + UNITS "tenth percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of the input cord power capacity used in tenth percent. + For AC products, this is the ratio of the apparent power to the + power capacity. For DC products, this is the ratio of the active + power to the power capacity." + ::= { st4InputCordMonitorEntry 7 } + + st4InputCordPowerFactor OBJECT-TYPE + SYNTAX Integer32(-1..100) + UNITS "hundredths" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured power factor of the input cord in hundredths." + ::= { st4InputCordMonitorEntry 8 } + + st4InputCordPowerFactorStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured power factor of the input cord." + ::= { st4InputCordMonitorEntry 9 } + + st4InputCordEnergy OBJECT-TYPE + SYNTAX Integer32(-1..2147483647) + UNITS "tenth Kilowatt-Hours" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total energy consumption of loads through the input cord in + tenth Kilowatt-Hours." + ::= { st4InputCordMonitorEntry 10 } + + st4InputCordFrequency OBJECT-TYPE + SYNTAX Integer32(-1..1000) + UNITS "tenth Hertz" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The frequency of the input cord voltage in tenth Hertz." + ::= { st4InputCordMonitorEntry 11 } + + st4InputCordOutOfBalance OBJECT-TYPE + SYNTAX Integer32(-1..2000) + UNITS "tenth percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current imbalance on the lines of the input cord in tenth + percent." + ::= { st4InputCordMonitorEntry 12 } + + st4InputCordOutOfBalanceStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the current imbalance on the lines of the input + cord." + ::= { st4InputCordMonitorEntry 13 } + + -- Input Cord Event Configuration Table + + st4InputCordEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4InputCordEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Input cord event configuration table." + ::= { st4InputCords 4 } + + st4InputCordEventConfigEntry OBJECT-TYPE + SYNTAX St4InputCordEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular input cord." + INDEX { st4UnitIndex, st4InputCordIndex } + ::= { st4InputCordEventConfigTable 1 } + + St4InputCordEventConfigEntry ::= SEQUENCE { + st4InputCordNotifications EventNotificationMethods, + st4InputCordActivePowerLowAlarm Integer32, + st4InputCordActivePowerLowWarning Integer32, + st4InputCordActivePowerHighWarning Integer32, + st4InputCordActivePowerHighAlarm Integer32, + st4InputCordApparentPowerLowAlarm Integer32, + st4InputCordApparentPowerLowWarning Integer32, + st4InputCordApparentPowerHighWarning Integer32, + st4InputCordApparentPowerHighAlarm Integer32, + st4InputCordPowerFactorLowAlarm Integer32, + st4InputCordPowerFactorLowWarning Integer32, + st4InputCordOutOfBalanceHighWarning Integer32, + st4InputCordOutOfBalanceHighAlarm Integer32 + } + + st4InputCordNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for input cord events." + ::= { st4InputCordEventConfigEntry 1 } + + st4InputCordActivePowerLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..50000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The active power low alarm threshold of the input cord in Watts." + ::= { st4InputCordEventConfigEntry 2 } + + st4InputCordActivePowerLowWarning OBJECT-TYPE + SYNTAX Integer32(0..50000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The active power low warning threshold of the input cord in + Watts." + ::= { st4InputCordEventConfigEntry 3 } + + st4InputCordActivePowerHighWarning OBJECT-TYPE + SYNTAX Integer32(0..50000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The active power high warning threshold of the input cord in + Watts." + ::= { st4InputCordEventConfigEntry 4 } + + st4InputCordActivePowerHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..50000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The active power high alarm threshold of the input cord in Watts." + ::= { st4InputCordEventConfigEntry 5 } + + st4InputCordApparentPowerLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..50000) + UNITS "Volt-Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The apparent power low alarm threshold of the input cord in + Volt-Amps." + ::= { st4InputCordEventConfigEntry 6 } + + st4InputCordApparentPowerLowWarning OBJECT-TYPE + SYNTAX Integer32(0..50000) + UNITS "Volt-Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The apparent power low warning threshold of the input cord in + Volt-Amps." + ::= { st4InputCordEventConfigEntry 7 } + + st4InputCordApparentPowerHighWarning OBJECT-TYPE + SYNTAX Integer32(0..50000) + UNITS "Volt-Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The apparent power high warning threshold of the input cord in + Volt-Amps." + ::= { st4InputCordEventConfigEntry 8 } + + st4InputCordApparentPowerHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..50000) + UNITS "Volt-Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The apparent power high alarm threshold of the input cord in + Volt-Amps." + ::= { st4InputCordEventConfigEntry 9 } + + st4InputCordPowerFactorLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The power factor low alarm threshold of the input cord in + hundredths." + ::= { st4InputCordEventConfigEntry 10 } + + st4InputCordPowerFactorLowWarning OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The power factor low warning threshold of the input cord in + hundredths." + ::= { st4InputCordEventConfigEntry 11 } + + st4InputCordOutOfBalanceHighWarning OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "percent" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The 3 phase out-of-balance high warning threshold of the input + cord in percent." + ::= { st4InputCordEventConfigEntry 12 } + + st4InputCordOutOfBalanceHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "percent" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The 3 phase out-of-balance high alarm threshold of the input cord + in percent." + ::= { st4InputCordEventConfigEntry 13 } + + -- Lines + + st4Lines OBJECT IDENTIFIER ::= { st4Objects 4 } + + -- Line Common Configuration + + st4LineCommonConfig OBJECT IDENTIFIER ::= { st4Lines 1 } + + st4LineCurrentHysteresis OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current hysteresis of the line in tenth Amps." + ::= { st4LineCommonConfig 1 } + + -- Line Configuration Table + + st4LineConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4LineConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Line configuration table." + ::= { st4Lines 2 } + + st4LineConfigEntry OBJECT-TYPE + SYNTAX St4LineConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular line." + INDEX { st4UnitIndex, st4InputCordIndex, st4LineIndex } + ::= { st4LineConfigTable 1 } + + St4LineConfigEntry ::= SEQUENCE { + st4LineIndex Integer32, + st4LineID DisplayString, + st4LineLabel DisplayString, + st4LineCurrentCapacity Integer32 + } + + st4LineIndex OBJECT-TYPE + SYNTAX Integer32(1..4) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Line index. L1=1, L2=2, L3=3, N=4." + ::= { st4LineConfigEntry 1 } + + st4LineID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the line. Format=AAN." + ::= { st4LineConfigEntry 2 } + + st4LineLabel OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The system label assigned to the line for identification." + ::= { st4LineConfigEntry 4 } + + st4LineCurrentCapacity OBJECT-TYPE + SYNTAX Integer32(-1..300) + UNITS "Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current capacity of the line in Amps." + ::= { st4LineConfigEntry 6 } + + -- Line Monitor Table + + st4LineMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4LineMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Line monitor table." + ::= { st4Lines 3 } + + st4LineMonitorEntry OBJECT-TYPE + SYNTAX St4LineMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular line." + INDEX { st4UnitIndex, st4InputCordIndex, st4LineIndex } + ::= { st4LineMonitorTable 1 } + + St4LineMonitorEntry ::= SEQUENCE { + st4LineState DeviceState, + st4LineStatus DeviceStatus, + st4LineCurrent Integer32, + st4LineCurrentStatus DeviceStatus, + st4LineCurrentUtilized Integer32 + } + + st4LineState OBJECT-TYPE + SYNTAX DeviceState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The on/off state of the line." + ::= { st4LineMonitorEntry 1 } + + st4LineStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the line." + ::= { st4LineMonitorEntry 2 } + + st4LineCurrent OBJECT-TYPE + SYNTAX Integer32(-1..30000) + UNITS "hundredth Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured current on the line in hundredth Amps." + ::= { st4LineMonitorEntry 3 } + + st4LineCurrentStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured current on the line." + ::= { st4LineMonitorEntry 4 } + + st4LineCurrentUtilized OBJECT-TYPE + SYNTAX Integer32(-1..1200) + UNITS "tenth percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of the line current capacity used in tenth percent." + ::= { st4LineMonitorEntry 5 } + + -- Line Event Configuration Table + + st4LineEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4LineEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Line event configuration table." + ::= { st4Lines 4 } + + st4LineEventConfigEntry OBJECT-TYPE + SYNTAX St4LineEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular line." + INDEX { st4UnitIndex, st4InputCordIndex, st4LineIndex } + ::= { st4LineEventConfigTable 1 } + + St4LineEventConfigEntry ::= SEQUENCE { + st4LineNotifications EventNotificationMethods, + st4LineCurrentLowAlarm Integer32, + st4LineCurrentLowWarning Integer32, + st4LineCurrentHighWarning Integer32, + st4LineCurrentHighAlarm Integer32 + } + + st4LineNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for line events." + ::= { st4LineEventConfigEntry 1 } + + st4LineCurrentLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..3000) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current low alarm threshold of the line in tenth Amps." + ::= { st4LineEventConfigEntry 2 } + + st4LineCurrentLowWarning OBJECT-TYPE + SYNTAX Integer32(0..3000) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current low warning threshold of the line in tenth Amps." + ::= { st4LineEventConfigEntry 3 } + + st4LineCurrentHighWarning OBJECT-TYPE + SYNTAX Integer32(0..3000) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current high warning threshold of the line in tenth Amps." + ::= { st4LineEventConfigEntry 4 } + + st4LineCurrentHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..3000) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current high alarm threshold of the line in tenth Amps." + ::= { st4LineEventConfigEntry 5 } + + -- Phases + + st4Phases OBJECT IDENTIFIER ::= { st4Objects 5 } + + -- Phase Common Configuration + + st4PhaseCommonConfig OBJECT IDENTIFIER ::= { st4Phases 1 } + + st4PhaseVoltageHysteresis OBJECT-TYPE + SYNTAX Integer32(0..200) + UNITS "tenth Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The voltage hysteresis of the phase in tenth Volts." + ::= { st4PhaseCommonConfig 1 } + + st4PhasePowerFactorHysteresis OBJECT-TYPE + SYNTAX Integer32(0..20) + UNITS "hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The power factor hysteresis of the phase in hundredths." + ::= { st4PhaseCommonConfig 2 } + + -- Phase Configuration Table + + st4PhaseConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4PhaseConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Phase configuration table." + ::= { st4Phases 2 } + + st4PhaseConfigEntry OBJECT-TYPE + SYNTAX St4PhaseConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular phase." + INDEX { st4UnitIndex, st4InputCordIndex, st4PhaseIndex } + ::= { st4PhaseConfigTable 1 } + + St4PhaseConfigEntry ::= SEQUENCE { + st4PhaseIndex Integer32, + st4PhaseID DisplayString, + st4PhaseLabel DisplayString, + st4PhaseNominalVoltage Integer32, + st4PhaseBranchCount Integer32, + st4PhaseOutletCount Integer32 + } + + st4PhaseIndex OBJECT-TYPE + SYNTAX Integer32(1..6) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Phase index. Three-phase AC Wye: L1-N=1, L2-N=2, L3-N=3; + Three-phase AC Delta: L1-L2=1, L2-L3=2, L3-L1=3; Single Phase: + L1-R=1; DC: L1-R=1; Three-phase AC Wye & Delta: L1-N=1, L2-N=2, + L3-N=3, L1-L2=4, L2-L3=5; L3-L1=6." + ::= { st4PhaseConfigEntry 1 } + + st4PhaseID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the phase. Format=AAN." + ::= { st4PhaseConfigEntry 2 } + + st4PhaseLabel OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The system label assigned to the phase for identification." + ::= { st4PhaseConfigEntry 4 } + + st4PhaseNominalVoltage OBJECT-TYPE + SYNTAX Integer32(850..3000) + UNITS "tenth Volts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The nominal voltage of the phase in tenth Volts." + ::= { st4PhaseConfigEntry 6 } + + st4PhaseBranchCount OBJECT-TYPE + SYNTAX Integer32(0..12) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of branches downstream from the phase." + ::= { st4PhaseConfigEntry 20 } + + st4PhaseOutletCount OBJECT-TYPE + SYNTAX Integer32(0..128) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outlets powered from the phase." + ::= { st4PhaseConfigEntry 21 } + + -- Phase Monitor Table + + st4PhaseMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4PhaseMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Phase monitor table." + ::= { st4Phases 3 } + + st4PhaseMonitorEntry OBJECT-TYPE + SYNTAX St4PhaseMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular phase." + INDEX { st4UnitIndex, st4InputCordIndex, st4PhaseIndex } + ::= { st4PhaseMonitorTable 1 } + + St4PhaseMonitorEntry ::= SEQUENCE { + st4PhaseState DeviceState, + st4PhaseStatus DeviceStatus, + st4PhaseVoltage Integer32, + st4PhaseVoltageStatus DeviceStatus, + st4PhaseVoltageDeviation Integer32, + st4PhaseCurrent Integer32, + st4PhaseCurrentCrestFactor Integer32, + st4PhaseActivePower Integer32, + st4PhaseApparentPower Integer32, + st4PhasePowerFactor Integer32, + st4PhasePowerFactorStatus DeviceStatus, + st4PhaseReactance Integer32, + st4PhaseEnergy Integer32 + } + + st4PhaseState OBJECT-TYPE + SYNTAX DeviceState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The on/off state of the phase." + ::= { st4PhaseMonitorEntry 1 } + + st4PhaseStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the phase." + ::= { st4PhaseMonitorEntry 2 } + + st4PhaseVoltage OBJECT-TYPE + SYNTAX Integer32(-1..3000) + UNITS "tenth Volts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured voltage on the phase in tenth Volts." + ::= { st4PhaseMonitorEntry 3 } + + st4PhaseVoltageStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured voltage on the phase." + ::= { st4PhaseMonitorEntry 4 } + + st4PhaseVoltageDeviation OBJECT-TYPE + SYNTAX Integer32(-1000..1000) + UNITS "tenth percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The deviation from the nominal voltage on the phase in tenth + percent." + ::= { st4PhaseMonitorEntry 5 } + + st4PhaseCurrent OBJECT-TYPE + SYNTAX Integer32(-1..30000) + UNITS "hundredth Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured current on the phase in hundredth Amps." + ::= { st4PhaseMonitorEntry 6 } + + st4PhaseCurrentCrestFactor OBJECT-TYPE + SYNTAX Integer32(-1..250) + UNITS "tenths" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured crest factor of the current waveform on the phase in + tenths." + ::= { st4PhaseMonitorEntry 7 } + + st4PhaseActivePower OBJECT-TYPE + SYNTAX Integer32(-1..25000) + UNITS "Watts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured active power on the phase in Watts." + ::= { st4PhaseMonitorEntry 8 } + + st4PhaseApparentPower OBJECT-TYPE + SYNTAX Integer32(-1..25000) + UNITS "Volt-Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured apparent power on the phase in Volt-Amps." + ::= { st4PhaseMonitorEntry 9 } + + st4PhasePowerFactor OBJECT-TYPE + SYNTAX Integer32(-1..100) + UNITS "hundredths" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured power factor on the phase in hundredths." + ::= { st4PhaseMonitorEntry 10 } + + st4PhasePowerFactorStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured power factor on the phase." + ::= { st4PhaseMonitorEntry 11 } + + st4PhaseReactance OBJECT-TYPE + SYNTAX INTEGER { + unknown(0), + capacitive(1), + inductive(2), + resistive(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured reactance of the phase." + ::= { st4PhaseMonitorEntry 12 } + + st4PhaseEnergy OBJECT-TYPE + SYNTAX Integer32(-1..2147483647) + UNITS "tenth Kilowatt-Hours" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total energy consumption of loads through the phase in tenth + Kilowatt-Hours." + ::= { st4PhaseMonitorEntry 13 } + + -- Phase Event Configuration Table + + st4PhaseEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4PhaseEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Phase event configuration table." + ::= { st4Phases 4 } + + st4PhaseEventConfigEntry OBJECT-TYPE + SYNTAX St4PhaseEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular phase." + INDEX { st4UnitIndex, st4InputCordIndex, st4PhaseIndex } + ::= { st4PhaseEventConfigTable 1 } + + St4PhaseEventConfigEntry ::= SEQUENCE { + st4PhaseNotifications EventNotificationMethods, + st4PhaseVoltageLowAlarm Integer32, + st4PhaseVoltageLowWarning Integer32, + st4PhaseVoltageHighWarning Integer32, + st4PhaseVoltageHighAlarm Integer32, + st4PhasePowerFactorLowAlarm Integer32, + st4PhasePowerFactorLowWarning Integer32 + } + + st4PhaseNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for phase events." + ::= { st4PhaseEventConfigEntry 1 } + + st4PhaseVoltageLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..3000) + UNITS "tenth Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current low alarm threshold of the phase in tenth Volts." + ::= { st4PhaseEventConfigEntry 2 } + + st4PhaseVoltageLowWarning OBJECT-TYPE + SYNTAX Integer32(0..3000) + UNITS "tenth Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current low warning threshold of the phase in tenth Volts." + ::= { st4PhaseEventConfigEntry 3 } + + st4PhaseVoltageHighWarning OBJECT-TYPE + SYNTAX Integer32(0..3000) + UNITS "tenth Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current high warning threshold of the phase in tenth Volts." + ::= { st4PhaseEventConfigEntry 4 } + + st4PhaseVoltageHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..3000) + UNITS "tenth Volts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current high alarm threshold of the phase in tenth Volts." + ::= { st4PhaseEventConfigEntry 5 } + + st4PhasePowerFactorLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The low power factor alarm threshold of the phase in hundredths." + ::= { st4PhaseEventConfigEntry 6 } + + st4PhasePowerFactorLowWarning OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The low power factor warning threshold of the phase in + hundredths." + ::= { st4PhaseEventConfigEntry 7 } + + -- Over-Current Protectors + + st4OverCurrentProtectors OBJECT IDENTIFIER ::= { st4Objects 6 } + + -- Over-Current Protector Common Configuration + + st4OcpCommonConfig OBJECT IDENTIFIER ::= { st4OverCurrentProtectors 1 } + + -- Over-Current Protector Configuration Table + + st4OcpConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4OcpConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Over-current protector configuration table." + ::= { st4OverCurrentProtectors 2 } + + st4OcpConfigEntry OBJECT-TYPE + SYNTAX St4OcpConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular over-current protector." + INDEX { st4UnitIndex, st4InputCordIndex, st4OcpIndex } + ::= { st4OcpConfigTable 1 } + + St4OcpConfigEntry ::= SEQUENCE { + st4OcpIndex Integer32, + st4OcpID DisplayString, + st4OcpLabel DisplayString, + st4OcpType INTEGER, + st4OcpCurrentCapacity Integer32, + st4OcpCurrentCapacityMax Integer32, + st4OcpBranchCount Integer32, + st4OcpOutletCount Integer32 + } + + st4OcpIndex OBJECT-TYPE + SYNTAX Integer32(1..64) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Over-current protector index." + ::= { st4OcpConfigEntry 1 } + + st4OcpID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3..4)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the over-current protector. Format=AAN[N]." + ::= { st4OcpConfigEntry 2 } + + st4OcpLabel OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The system label assigned to the over-current protector for + identification." + ::= { st4OcpConfigEntry 4 } + + st4OcpType OBJECT-TYPE + SYNTAX INTEGER { + fuse(0), + breaker(1) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The type of over-current protector." + ::= { st4OcpConfigEntry 6 } + + st4OcpCurrentCapacity OBJECT-TYPE + SYNTAX Integer32(-1..125) + UNITS "Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The user-configured current capacity of the over-current protector + in Amps." + ::= { st4OcpConfigEntry 7 } + + st4OcpCurrentCapacityMax OBJECT-TYPE + SYNTAX Integer32(-1..125) + UNITS "Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The factory-set maximum allowed for the user-configured current + capacity of the over-current protector in Amps." + ::= { st4OcpConfigEntry 8 } + + st4OcpBranchCount OBJECT-TYPE + SYNTAX Integer32(0..12) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of branches downstream from the over-current + protector." + ::= { st4OcpConfigEntry 20 } + + st4OcpOutletCount OBJECT-TYPE + SYNTAX Integer32(0..128) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outlets powered from the over-current protector." + ::= { st4OcpConfigEntry 21 } + + -- Over-Current Protector Monitor Table + + st4OcpMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4OcpMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Over-current protector monitor table." + ::= { st4OverCurrentProtectors 3 } + + st4OcpMonitorEntry OBJECT-TYPE + SYNTAX St4OcpMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular over-current protector." + INDEX { st4UnitIndex, st4InputCordIndex, st4OcpIndex } + ::= { st4OcpMonitorTable 1 } + + St4OcpMonitorEntry ::= SEQUENCE { + st4OcpStatus DeviceStatus + } + + st4OcpStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the over-current protector." + ::= { st4OcpMonitorEntry 1 } + + -- Over-Current Protector Event Configuration Table + + st4OcpEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4OcpEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Over-current protector event configuration table." + ::= { st4OverCurrentProtectors 4 } + + st4OcpEventConfigEntry OBJECT-TYPE + SYNTAX St4OcpEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular over-current + protector." + INDEX { st4UnitIndex, st4InputCordIndex, st4OcpIndex } + ::= { st4OcpEventConfigTable 1 } + + St4OcpEventConfigEntry ::= SEQUENCE { + st4OcpNotifications EventNotificationMethods + } + + st4OcpNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for over-current protector + events." + ::= { st4OcpEventConfigEntry 1 } + + -- Branches + + st4Branches OBJECT IDENTIFIER ::= { st4Objects 7 } + + -- Branch Common Configuration + + st4BranchCommonConfig OBJECT IDENTIFIER ::= { st4Branches 1 } + + st4BranchCurrentHysteresis OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current hysteresis of the branch in tenth Amps." + ::= { st4BranchCommonConfig 1 } + + -- Branch Configuration Table + + st4BranchConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4BranchConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Branch configuration table." + ::= { st4Branches 2 } + + st4BranchConfigEntry OBJECT-TYPE + SYNTAX St4BranchConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular branch." + INDEX { st4UnitIndex, st4InputCordIndex, st4BranchIndex } + ::= { st4BranchConfigTable 1 } + + St4BranchConfigEntry ::= SEQUENCE { + st4BranchIndex Integer32, + st4BranchID DisplayString, + st4BranchLabel DisplayString, + st4BranchCurrentCapacity Integer32, + st4BranchPhaseID DisplayString, + st4BranchOcpID DisplayString, + st4BranchOutletCount Integer32 + } + + st4BranchIndex OBJECT-TYPE + SYNTAX Integer32(1..64) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Branch index." + ::= { st4BranchConfigEntry 1 } + + st4BranchID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3..4)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the branch. Format=AAN[N]." + ::= { st4BranchConfigEntry 2 } + + st4BranchLabel OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The system label assigned to the branch for identification." + ::= { st4BranchConfigEntry 4 } + + st4BranchCurrentCapacity OBJECT-TYPE + SYNTAX Integer32(-1..125) + UNITS "Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current capacity of the branch in Amps." + ::= { st4BranchConfigEntry 6 } + + st4BranchPhaseID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the phase powering this branch. + Format=AAN." + ::= { st4BranchConfigEntry 20 } + + st4BranchOcpID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3..4)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the over-current protector powering this + outlet. Format=AAN[N]." + ::= { st4BranchConfigEntry 21 } + + st4BranchOutletCount OBJECT-TYPE + SYNTAX Integer32(0..128) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of outlets powered from the branch." + ::= { st4BranchConfigEntry 30 } + + -- Branch Monitor Table + + st4BranchMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4BranchMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Branch monitor table." + ::= { st4Branches 3 } + + st4BranchMonitorEntry OBJECT-TYPE + SYNTAX St4BranchMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular branch." + INDEX { st4UnitIndex, st4InputCordIndex, st4BranchIndex } + ::= { st4BranchMonitorTable 1 } + + St4BranchMonitorEntry ::= SEQUENCE { + st4BranchState DeviceState, + st4BranchStatus DeviceStatus, + st4BranchCurrent Integer32, + st4BranchCurrentStatus DeviceStatus, + st4BranchCurrentUtilized Integer32 + } + + st4BranchState OBJECT-TYPE + SYNTAX DeviceState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The on/off state of the branch." + ::= { st4BranchMonitorEntry 1 } + + st4BranchStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the branch." + ::= { st4BranchMonitorEntry 2 } + + st4BranchCurrent OBJECT-TYPE + SYNTAX Integer32(-1..12500) + UNITS "hundredth Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured current on the branch in hundredth Amps." + ::= { st4BranchMonitorEntry 3 } + + st4BranchCurrentStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured current on the branch." + ::= { st4BranchMonitorEntry 4 } + + st4BranchCurrentUtilized OBJECT-TYPE + SYNTAX Integer32(-1..1200) + UNITS "tenth percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of the branch current capacity used in tenth percent." + ::= { st4BranchMonitorEntry 5 } + + -- Branch Event Configuration Table + + st4BranchEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4BranchEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Branch event configuration table." + ::= { st4Branches 4 } + + st4BranchEventConfigEntry OBJECT-TYPE + SYNTAX St4BranchEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular branch." + INDEX { st4UnitIndex, st4InputCordIndex, st4BranchIndex } + ::= { st4BranchEventConfigTable 1 } + + St4BranchEventConfigEntry ::= SEQUENCE { + st4BranchNotifications EventNotificationMethods, + st4BranchCurrentLowAlarm Integer32, + st4BranchCurrentLowWarning Integer32, + st4BranchCurrentHighWarning Integer32, + st4BranchCurrentHighAlarm Integer32 + } + + st4BranchNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for branch events." + ::= { st4BranchEventConfigEntry 1 } + + st4BranchCurrentLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..1250) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current low alarm threshold of the branch in tenth Amps." + ::= { st4BranchEventConfigEntry 2 } + + st4BranchCurrentLowWarning OBJECT-TYPE + SYNTAX Integer32(0..1250) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current low warning threshold of the branch in tenth Amps." + ::= { st4BranchEventConfigEntry 3 } + + st4BranchCurrentHighWarning OBJECT-TYPE + SYNTAX Integer32(0..1250) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current high warning threshold of the branch in tenth Amps." + ::= { st4BranchEventConfigEntry 4 } + + st4BranchCurrentHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..1250) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current high alarm threshold of the branch in tenth Amps." + ::= { st4BranchEventConfigEntry 5 } + + -- Outlets + + st4Outlets OBJECT IDENTIFIER ::= { st4Objects 8 } + + -- Outlet Common Configuration + + st4OutletCommonConfig OBJECT IDENTIFIER ::= { st4Outlets 1 } + + st4OutletCurrentHysteresis OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current hysteresis of the outlet in tenth Amps." + ::= { st4OutletCommonConfig 1 } + + st4OutletActivePowerHysteresis OBJECT-TYPE + SYNTAX Integer32(0..1000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The power hysteresis of the outlet in Watts." + ::= { st4OutletCommonConfig 2 } + + st4OutletPowerFactorHysteresis OBJECT-TYPE + SYNTAX Integer32(0..20) + UNITS "hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The power factor hysteresis of the outlet in hundredths." + ::= { st4OutletCommonConfig 3 } + + st4OutletSequenceInterval OBJECT-TYPE + SYNTAX Integer32(0..15) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The power-on sequencing interval for all outlets in seconds." + ::= { st4OutletCommonConfig 10 } + + st4OutletRebootDelay OBJECT-TYPE + SYNTAX Integer32(5..600) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The reboot delay for all outlets in seconds." + ::= { st4OutletCommonConfig 11 } + + st4OutletStateChangeLogging OBJECT-TYPE + SYNTAX INTEGER { + disabled(0), + enabled(1) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enables or disables informational Outlet State Change event + logging." + ::= { st4OutletCommonConfig 12 } + + -- Outlet Configuration Table + + st4OutletConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4OutletConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Outlet configuration table." + ::= { st4Outlets 2 } + + st4OutletConfigEntry OBJECT-TYPE + SYNTAX St4OutletConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular outlet." + INDEX { st4UnitIndex, st4InputCordIndex, st4OutletIndex } + ::= { st4OutletConfigTable 1 } + + St4OutletConfigEntry ::= SEQUENCE { + st4OutletIndex Integer32, + st4OutletID DisplayString, + st4OutletName DisplayString, + st4OutletCapabilities BITS, + st4OutletSocketType DisplayString, + st4OutletCurrentCapacity Integer32, + st4OutletPowerCapacity Integer32, + st4OutletWakeupState INTEGER, + st4OutletPostOnDelay Integer32, + st4OutletPhaseID DisplayString, + st4OutletOcpID DisplayString, + st4OutletBranchID DisplayString + } + + st4OutletIndex OBJECT-TYPE + SYNTAX Integer32(1..128) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Outlet index." + ::= { st4OutletConfigEntry 1 } + + st4OutletID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3..5)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the outlet. Format=AAN[N[N]]." + ::= { st4OutletConfigEntry 2 } + + st4OutletName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the outlet." + ::= { st4OutletConfigEntry 3 } + + st4OutletCapabilities OBJECT-TYPE + SYNTAX BITS { + switched(0), -- outlet supports power control + pops(1) -- outlet has pops + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The capabilities of the outlet." + ::= { st4OutletConfigEntry 5 } + + st4OutletSocketType OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The socket type of the outlet." + ::= { st4OutletConfigEntry 6 } + + st4OutletCurrentCapacity OBJECT-TYPE + SYNTAX Integer32(0..125) + UNITS "Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current capacity of the outlet in Amps." + ::= { st4OutletConfigEntry 7 } + + st4OutletPowerCapacity OBJECT-TYPE + SYNTAX Integer32(0..10000) + UNITS "Volt-Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The power capacity of the outlet in Volt-Amps. For DC products, + this is identical to power capacity in Watts." + ::= { st4OutletConfigEntry 8 } + + st4OutletWakeupState OBJECT-TYPE + SYNTAX INTEGER { + on(0), + off(1), + last(2) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The wakeup state of the outlet." + ::= { st4OutletConfigEntry 20 } + + st4OutletPostOnDelay OBJECT-TYPE + SYNTAX Integer32(0..900) + UNITS "seconds" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The post-on delay of the outlet in seconds." + ::= { st4OutletConfigEntry 21 } + + st4OutletPhaseID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the phase powering this outlet. + Format=AAN." + ::= { st4OutletConfigEntry 30 } + + st4OutletOcpID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3..4)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the over-current protector powering this + outlet. Format=AAN[N]." + ::= { st4OutletConfigEntry 31 } + + st4OutletBranchID OBJECT-TYPE + SYNTAX DisplayString(SIZE(3..4)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the branch powering this outlet. + Format=AAN[N]." + ::= { st4OutletConfigEntry 32 } + + -- Outlet Monitor Table + + st4OutletMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4OutletMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Outlet monitor table." + ::= { st4Outlets 3 } + + st4OutletMonitorEntry OBJECT-TYPE + SYNTAX St4OutletMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular outlet." + INDEX { st4UnitIndex, st4InputCordIndex, st4OutletIndex } + ::= { st4OutletMonitorTable 1 } + + St4OutletMonitorEntry ::= SEQUENCE { + st4OutletState DeviceState, + st4OutletStatus DeviceStatus, + st4OutletCurrent Integer32, + st4OutletCurrentStatus DeviceStatus, + st4OutletCurrentUtilized Integer32, + st4OutletVoltage Integer32, + st4OutletActivePower Integer32, + st4OutletActivePowerStatus DeviceStatus, + st4OutletApparentPower Integer32, + st4OutletPowerFactor Integer32, + st4OutletPowerFactorStatus DeviceStatus, + st4OutletCurrentCrestFactor Integer32, + st4OutletReactance INTEGER, + st4OutletEnergy Integer32 + } + + st4OutletState OBJECT-TYPE + SYNTAX DeviceState + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The on/off state of the outlet." + ::= { st4OutletMonitorEntry 1 } + + st4OutletStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the outlet." + ::= { st4OutletMonitorEntry 2 } + + st4OutletCurrent OBJECT-TYPE + SYNTAX Integer32(-1..12500) + UNITS "hundredth Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured current on the outlet in hundredth Amps." + ::= { st4OutletMonitorEntry 3 } + + st4OutletCurrentStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured current on the outlet." + ::= { st4OutletMonitorEntry 4 } + + st4OutletCurrentUtilized OBJECT-TYPE + SYNTAX Integer32(-1..1200) + UNITS "tenth percent" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of the outlet current capacity used in tenth percent." + ::= { st4OutletMonitorEntry 5 } + + st4OutletVoltage OBJECT-TYPE + SYNTAX Integer32(-1..3000) + UNITS "tenth Volts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured voltage of the outlet in tenth Volts." + ::= { st4OutletMonitorEntry 6 } + + st4OutletActivePower OBJECT-TYPE + SYNTAX Integer32(-1..10000) + UNITS "Watts" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured active power of the outlet in Watts." + ::= { st4OutletMonitorEntry 7 } + + st4OutletActivePowerStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured active power of the outlet." + ::= { st4OutletMonitorEntry 8 } + + st4OutletApparentPower OBJECT-TYPE + SYNTAX Integer32(-1..10000) + UNITS "Volt-Amps" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured apparent power of the outlet in Volt-Amps." + ::= { st4OutletMonitorEntry 9 } + + st4OutletPowerFactor OBJECT-TYPE + SYNTAX Integer32(-1..100) + UNITS "hundredths" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured power factor of the outlet in hundredths." + ::= { st4OutletMonitorEntry 10 } + + st4OutletPowerFactorStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured power factor of the outlet." + ::= { st4OutletMonitorEntry 11 } + + st4OutletCurrentCrestFactor OBJECT-TYPE + SYNTAX Integer32(-1..250) + UNITS "tenths" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured crest factor of the outlet in tenths." + ::= { st4OutletMonitorEntry 12 } + + st4OutletReactance OBJECT-TYPE + SYNTAX INTEGER { + unknown(0), + capacitive(1), + inductive(2), + resistive(3) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the measured reactance of the outlet." + ::= { st4OutletMonitorEntry 13 } + + st4OutletEnergy OBJECT-TYPE + SYNTAX Integer32(-1..2147483647) + UNITS "Watt-Hours" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The total energy consumption of the device plugged into the outlet + in Watt-Hours." + ::= { st4OutletMonitorEntry 14 } + + -- Outlet Event Configuration Table + + st4OutletEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4OutletEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Outlet event configuration table." + ::= { st4Outlets 4 } + + st4OutletEventConfigEntry OBJECT-TYPE + SYNTAX St4OutletEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular outlet." + INDEX { st4UnitIndex, st4InputCordIndex, st4OutletIndex } + ::= { st4OutletEventConfigTable 1 } + + St4OutletEventConfigEntry ::= SEQUENCE { + st4OutletNotifications EventNotificationMethods, + st4OutletCurrentLowAlarm Integer32, + st4OutletCurrentLowWarning Integer32, + st4OutletCurrentHighWarning Integer32, + st4OutletCurrentHighAlarm Integer32, + st4OutletActivePowerLowAlarm Integer32, + st4OutletActivePowerLowWarning Integer32, + st4OutletActivePowerHighWarning Integer32, + st4OutletActivePowerHighAlarm Integer32, + st4OutletPowerFactorLowAlarm Integer32, + st4OutletPowerFactorLowWarning Integer32 + } + + st4OutletNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for outlet events." + ::= { st4OutletEventConfigEntry 1 } + + st4OutletCurrentLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..1250) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current low alarm threshold of the outlet in tenth Amps." + ::= { st4OutletEventConfigEntry 2 } + + st4OutletCurrentLowWarning OBJECT-TYPE + SYNTAX Integer32(0..1250) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current low warning threshold of the outlet in tenth Amps." + ::= { st4OutletEventConfigEntry 3 } + + st4OutletCurrentHighWarning OBJECT-TYPE + SYNTAX Integer32(0..1250) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current high warning threshold of the outlet in tenth Amps." + ::= { st4OutletEventConfigEntry 4 } + + st4OutletCurrentHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..1250) + UNITS "tenth Amps" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current high alarm threshold of the outlet in tenth Amps." + ::= { st4OutletEventConfigEntry 5 } + + st4OutletActivePowerLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..10000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The active power low alarm threshold of the outlet in Watts." + ::= { st4OutletEventConfigEntry 6 } + + st4OutletActivePowerLowWarning OBJECT-TYPE + SYNTAX Integer32(0..10000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The active power low warning threshold of the outlet in Watts." + ::= { st4OutletEventConfigEntry 7 } + + st4OutletActivePowerHighWarning OBJECT-TYPE + SYNTAX Integer32(0..10000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The active power high warning threshold of the outlet in Watts." + ::= { st4OutletEventConfigEntry 8 } + + st4OutletActivePowerHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..10000) + UNITS "Watts" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The active power high alarm threshold of the outlet in Watts." + ::= { st4OutletEventConfigEntry 9 } + + st4OutletPowerFactorLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The low power factor alarm threshold of the outlet in hundredths." + ::= { st4OutletEventConfigEntry 10 } + + st4OutletPowerFactorLowWarning OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "hundredths" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The low power factor warning threshold of the outlet in + hundredths." + ::= { st4OutletEventConfigEntry 11 } + + -- Outlet Control Table + + st4OutletControlTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4OutletControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Outlet control table." + ::= { st4Outlets 5 } + + st4OutletControlEntry OBJECT-TYPE + SYNTAX St4OutletControlEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects for control of a particular outlet." + INDEX { st4UnitIndex, st4InputCordIndex, st4OutletIndex } + ::= { st4OutletControlTable 1 } + + St4OutletControlEntry ::= SEQUENCE { + st4OutletControlState INTEGER, + st4OutletControlAction INTEGER + } + + st4OutletControlState OBJECT-TYPE + SYNTAX INTEGER { + notSet(0), -- outlet state is unknown + fixedOn(1), -- outlet is uncontrolled (assumed on) + idleOff(2), -- outlet has defaulted to off state + idleOn(3), -- outlet has defaulted to on state + wakeOff(4), -- outlet has been set to off by wakeup + wakeOn(5), -- outlet has been set to on by wakeup + ocpOff(6), -- outlet is off due to OCP failure + ocpOn(7), -- outlet had OCP power loss + pendOn(8), -- outlet is off, but will be turning on + pendOff(9), -- outlet is on, but will be turning off + off(10), -- outlet was turned off by user + on(11), -- outlet was turned on by user or reboot event + reboot(12), -- outlet is preparing to turn on + shutdown(13), -- outlet is preparing to turn off + lockedOff(14), -- outlet was locked off by admin + lockedOn(15), -- outlet was locked on by admin + eventOff(16), -- outlet was turned off by an event + eventOn(17), -- outlet was turned on by an event + eventReboot(18), -- outlet rebooting due to an event + eventShutdown(19) -- outlet shutting down due to an event + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The control state of the outlet." + ::= { st4OutletControlEntry 1 } + + st4OutletControlAction OBJECT-TYPE + SYNTAX INTEGER { + none(0), + on(1), + off(2), + reboot(3), + queueOn(4), + queueOff(5), + queueReboot(6) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An action to change the control state of the outlet, or to queue + an action." + ::= { st4OutletControlEntry 2 } + + -- Outlet Common Control + + st4OutletCommonControl OBJECT IDENTIFIER ::= { st4Outlets 6 } + + st4OutletQueueControl OBJECT-TYPE + SYNTAX INTEGER { + clear(0), + commit(1) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "An action to clear or commit queued outlet control actions. A + read of this object returns clear(0) if queue is empty, and + commit(1) if the queue is not empty." + ::= { st4OutletCommonControl 1 } + + -- Temperature Sensors + + st4TemperatureSensors OBJECT IDENTIFIER ::= { st4Objects 9 } + + -- Temperature Sensor Common Configuration + + st4TempSensorCommonConfig OBJECT IDENTIFIER ::= { st4TemperatureSensors 1 } + + st4TempSensorHysteresis OBJECT-TYPE + SYNTAX Integer32(0..54) + UNITS "degrees" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The temperature hysteresis of the sensor in degrees, using the + scale selected by st4TempSensorScale." + ::= { st4TempSensorCommonConfig 1 } + + st4TempSensorScale OBJECT-TYPE + SYNTAX INTEGER { + celsius(0), + fahrenheit(1) + } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The current scale used for all temperature values." + ::= { st4TempSensorCommonConfig 10 } + + -- Temperature Sensor Configuration Table + + st4TempSensorConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4TempSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Temperature sensor configuration table." + ::= { st4TemperatureSensors 2 } + + st4TempSensorConfigEntry OBJECT-TYPE + SYNTAX St4TempSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular temperature sensor." + INDEX { st4UnitIndex, st4TempSensorIndex } + ::= { st4TempSensorConfigTable 1 } + + St4TempSensorConfigEntry ::= SEQUENCE { + st4TempSensorIndex Integer32, + st4TempSensorID DisplayString, + st4TempSensorName DisplayString, + st4TempSensorValueMin Integer32, + st4TempSensorValueMax Integer32 + } + + st4TempSensorIndex OBJECT-TYPE + SYNTAX Integer32(0..2) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Temperature sensor index." + ::= { st4TempSensorConfigEntry 1 } + + st4TempSensorID OBJECT-TYPE + SYNTAX DisplayString(SIZE(2)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the temperature sensor. Format=AN." + ::= { st4TempSensorConfigEntry 2 } + + st4TempSensorName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the temperature sensor." + ::= { st4TempSensorConfigEntry 3 } + + st4TempSensorValueMin OBJECT-TYPE + SYNTAX Integer32(-40..253) + UNITS "degrees" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The minimum temperature limit of the sensor in degrees, using the + scale selected by st4TempSensorScale." + ::= { st4TempSensorConfigEntry 4 } + + st4TempSensorValueMax OBJECT-TYPE + SYNTAX Integer32(-40..253) + UNITS "degrees" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The maximum temperature limit of the sensor in degrees, using the + scale selected by st4TempSensorScale." + ::= { st4TempSensorConfigEntry 5 } + + -- Temperature Sensor Monitor Table + + st4TempSensorMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4TempSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Temperature sensor monitor table." + ::= { st4TemperatureSensors 3 } + + st4TempSensorMonitorEntry OBJECT-TYPE + SYNTAX St4TempSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular temperature sensor." + INDEX { st4UnitIndex, st4TempSensorIndex } + ::= { st4TempSensorMonitorTable 1 } + + St4TempSensorMonitorEntry ::= SEQUENCE { + st4TempSensorValue Integer32, + st4TempSensorStatus DeviceStatus + } + + st4TempSensorValue OBJECT-TYPE + SYNTAX Integer32(-410..2540) + UNITS "tenth degrees" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured temperature on the sensor in tenth degrees using the + scale selected by st4TempSensorScale. -410 means the temperature + reading is invalid." + ::= { st4TempSensorMonitorEntry 1 } + + st4TempSensorStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the temperature sensor." + ::= { st4TempSensorMonitorEntry 2 } + + -- Temperature Sensor Event Configuration Table + + st4TempSensorEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4TempSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Temperature sensor event configuration table." + ::= { st4TemperatureSensors 4 } + + st4TempSensorEventConfigEntry OBJECT-TYPE + SYNTAX St4TempSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular temperature sensor." + INDEX { st4UnitIndex, st4TempSensorIndex } + ::= { st4TempSensorEventConfigTable 1 } + + St4TempSensorEventConfigEntry ::= SEQUENCE { + st4TempSensorNotifications EventNotificationMethods, + st4TempSensorLowAlarm Integer32, + st4TempSensorLowWarning Integer32, + st4TempSensorHighWarning Integer32, + st4TempSensorHighAlarm Integer32 + } + + st4TempSensorNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for temperature sensor events." + ::= { st4TempSensorEventConfigEntry 1 } + + st4TempSensorLowAlarm OBJECT-TYPE + SYNTAX Integer32(-40..253) + UNITS "degrees" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The low alarm threshold of the temperature sensor in degrees." + ::= { st4TempSensorEventConfigEntry 2 } + + st4TempSensorLowWarning OBJECT-TYPE + SYNTAX Integer32(-40..253) + UNITS "degrees" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The low warning threshold of the temperature sensor in degrees." + ::= { st4TempSensorEventConfigEntry 3 } + + st4TempSensorHighWarning OBJECT-TYPE + SYNTAX Integer32(-40..253) + UNITS "degrees" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The high warning threshold of the temperature sensor in degrees." + ::= { st4TempSensorEventConfigEntry 4 } + + st4TempSensorHighAlarm OBJECT-TYPE + SYNTAX Integer32(-40..253) + UNITS "degrees" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The high alarm threshold of the temperature sensor in degrees." + ::= { st4TempSensorEventConfigEntry 5 } + + -- Humidity Sensors + + st4HumiditySensors OBJECT IDENTIFIER ::= { st4Objects 10 } + + -- Humidity Sensor Common Configuration + + st4HumidSensorCommonConfig OBJECT IDENTIFIER ::= { st4HumiditySensors 1 } + + st4HumidSensorHysteresis OBJECT-TYPE + SYNTAX Integer32(0..20) + UNITS "percentage relative humidity" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The humidity hysteresis of the sensor in percent relative + humidity." + ::= { st4HumidSensorCommonConfig 1 } + + -- Humidity Sensor Configuration Table + + st4HumidSensorConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4HumidSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Humidity sensor configuration table." + ::= { st4HumiditySensors 2 } + + st4HumidSensorConfigEntry OBJECT-TYPE + SYNTAX St4HumidSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular humidity sensor." + INDEX { st4UnitIndex, st4HumidSensorIndex } + ::= { st4HumidSensorConfigTable 1 } + + St4HumidSensorConfigEntry ::= SEQUENCE { + st4HumidSensorIndex Integer32, + st4HumidSensorID DisplayString, + st4HumidSensorName DisplayString + } + + st4HumidSensorIndex OBJECT-TYPE + SYNTAX Integer32(0..2) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Humidity sensor index." + ::= { st4HumidSensorConfigEntry 1 } + + st4HumidSensorID OBJECT-TYPE + SYNTAX DisplayString(SIZE(2)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the humidity sensor. Format=AN." + ::= { st4HumidSensorConfigEntry 2 } + + st4HumidSensorName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the humidity sensor." + ::= { st4HumidSensorConfigEntry 3 } + + -- Humidity Sensor Monitor Table + + st4HumidSensorMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4HumidSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Humidity sensor monitor table." + ::= { st4HumiditySensors 3 } + + st4HumidSensorMonitorEntry OBJECT-TYPE + SYNTAX St4HumidSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular humidity sensor." + INDEX { st4UnitIndex, st4HumidSensorIndex } + ::= { st4HumidSensorMonitorTable 1 } + + St4HumidSensorMonitorEntry ::= SEQUENCE { + st4HumidSensorValue Integer32, + st4HumidSensorStatus DeviceStatus + } + + st4HumidSensorValue OBJECT-TYPE + SYNTAX Integer32(-1..100) + UNITS "percentage relative humidity" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The measured humidity on the sensor in percentage relative + humidity." + ::= { st4HumidSensorMonitorEntry 1 } + + st4HumidSensorStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the humidity sensor." + ::= { st4HumidSensorMonitorEntry 2 } + + -- Humidity Sensor Event Configuration Table + + st4HumidSensorEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4HumidSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Humidity sensor event configuration table." + ::= { st4HumiditySensors 4 } + + st4HumidSensorEventConfigEntry OBJECT-TYPE + SYNTAX St4HumidSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular humidity sensor." + INDEX { st4UnitIndex, st4HumidSensorIndex } + ::= { st4HumidSensorEventConfigTable 1 } + + St4HumidSensorEventConfigEntry ::= SEQUENCE { + st4HumidSensorNotifications EventNotificationMethods, + st4HumidSensorLowAlarm Integer32, + st4HumidSensorLowWarning Integer32, + st4HumidSensorHighWarning Integer32, + st4HumidSensorHighAlarm Integer32 + } + + st4HumidSensorNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for humidity sensor events." + ::= { st4HumidSensorEventConfigEntry 1 } + + st4HumidSensorLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "percentage relative humidity" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The low alarm threshold of the humidity sensor in percentage + relative humidity." + ::= { st4HumidSensorEventConfigEntry 2 } + + st4HumidSensorLowWarning OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "percentage relative humidity" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The low warning threshold of the humidity sensor in percentage + relative humidity." + ::= { st4HumidSensorEventConfigEntry 3 } + + st4HumidSensorHighWarning OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "percentage relative humidity" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The high warning threshold of the humidity sensor in percentage + relative humidity." + ::= { st4HumidSensorEventConfigEntry 4 } + + st4HumidSensorHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..100) + UNITS "percentage relative humidity" + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The high alarm threshold of the humidity sensor in percentage + relative humidity." + ::= { st4HumidSensorEventConfigEntry 5 } + + -- Water Sensors + + st4WaterSensors OBJECT IDENTIFIER ::= { st4Objects 11 } + + -- Water Sensor Common Configuration + + st4WaterSensorCommonConfig OBJECT IDENTIFIER ::= { st4WaterSensors 1 } + + -- Water Sensor Configuration Table + + st4WaterSensorConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4WaterSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Water sensor configuration table." + ::= { st4WaterSensors 2 } + + st4WaterSensorConfigEntry OBJECT-TYPE + SYNTAX St4WaterSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular water sensor." + INDEX { st4UnitIndex, st4WaterSensorIndex } + ::= { st4WaterSensorConfigTable 1 } + + St4WaterSensorConfigEntry ::= SEQUENCE { + st4WaterSensorIndex Integer32, + st4WaterSensorID DisplayString, + st4WaterSensorName DisplayString + } + + st4WaterSensorIndex OBJECT-TYPE + SYNTAX Integer32(0..1) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Water sensor index." + ::= { st4WaterSensorConfigEntry 1 } + + st4WaterSensorID OBJECT-TYPE + SYNTAX DisplayString(SIZE(2)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the water sensor. Format=AN." + ::= { st4WaterSensorConfigEntry 2 } + + st4WaterSensorName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the water sensor." + ::= { st4WaterSensorConfigEntry 3 } + + -- Water Sensor Monitor Table + + st4WaterSensorMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4WaterSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Water sensor monitor table." + ::= { st4WaterSensors 3 } + + st4WaterSensorMonitorEntry OBJECT-TYPE + SYNTAX St4WaterSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular water sensor." + INDEX { st4UnitIndex, st4WaterSensorIndex } + ::= { st4WaterSensorMonitorTable 1 } + + St4WaterSensorMonitorEntry ::= SEQUENCE { + st4WaterSensorStatus DeviceStatus + } + + st4WaterSensorStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the water sensor." + ::= { st4WaterSensorMonitorEntry 1 } + + -- Water Sensor Event Configuration Table + + st4WaterSensorEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4WaterSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Water sensor event configuration table." + ::= { st4WaterSensors 4 } + + st4WaterSensorEventConfigEntry OBJECT-TYPE + SYNTAX St4WaterSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular water sensor." + INDEX { st4UnitIndex, st4WaterSensorIndex } + ::= { st4WaterSensorEventConfigTable 1 } + + St4WaterSensorEventConfigEntry ::= SEQUENCE { + st4WaterSensorNotifications EventNotificationMethods + } + + st4WaterSensorNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for water sensor events." + ::= { st4WaterSensorEventConfigEntry 1 } + + -- Contact Closures Sensors + + st4ContactClosureSensors OBJECT IDENTIFIER ::= { st4Objects 12 } + + -- Contact Closure Sensor Common Configuration + + st4CcSensorCommonConfig OBJECT IDENTIFIER ::= { st4ContactClosureSensors 1 } + + -- Contact Closure Sensor Configuration Table + + st4CcSensorConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4CcSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Contact closure sensor configuration table." + ::= { st4ContactClosureSensors 2 } + + st4CcSensorConfigEntry OBJECT-TYPE + SYNTAX St4CcSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular contact closure sensor." + INDEX { st4UnitIndex, st4CcSensorIndex } + ::= { st4CcSensorConfigTable 1 } + + St4CcSensorConfigEntry ::= SEQUENCE { + st4CcSensorIndex Integer32, + st4CcSensorID DisplayString, + st4CcSensorName DisplayString + } + + st4CcSensorIndex OBJECT-TYPE + SYNTAX Integer32(0..4) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Contact closure sensor index." + ::= { st4CcSensorConfigEntry 1 } + + st4CcSensorID OBJECT-TYPE + SYNTAX DisplayString(SIZE(2)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the contact closure sensor. Format=AN." + ::= { st4CcSensorConfigEntry 2 } + + st4CcSensorName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the contact closure sensor." + ::= { st4CcSensorConfigEntry 3 } + + -- Contact Closure Sensor Monitor Table + + st4CcSensorMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4CcSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Contact closure sensor monitor table." + ::= { st4ContactClosureSensors 3 } + + st4CcSensorMonitorEntry OBJECT-TYPE + SYNTAX St4CcSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular contact closure sensor." + INDEX { st4UnitIndex, st4CcSensorIndex } + ::= { st4CcSensorMonitorTable 1 } + + St4CcSensorMonitorEntry ::= SEQUENCE { + st4CcSensorStatus DeviceStatus + } + + st4CcSensorStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the contact closure." + ::= { st4CcSensorMonitorEntry 1 } + + -- Contact Closure Sensor Event Configuration Table + + st4CcSensorEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4CcSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Contact closure sensor event configuration table." + ::= { st4ContactClosureSensors 4 } + + st4CcSensorEventConfigEntry OBJECT-TYPE + SYNTAX St4CcSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular contact closure + sensor." + INDEX { st4UnitIndex, st4CcSensorIndex } + ::= { st4CcSensorEventConfigTable 1 } + + St4CcSensorEventConfigEntry ::= SEQUENCE { + st4CcSensorNotifications EventNotificationMethods + } + + st4CcSensorNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for contact closure sensor + events." + ::= { st4CcSensorEventConfigEntry 1 } + + -- Analog-to-Digital Converter Sensors + + st4AnalogToDigitalConvSensors OBJECT IDENTIFIER ::= { st4Objects 13 } + + -- Analog-to-Digital Converter Sensor Common Configuration + + st4AdcSensorCommonConfig OBJECT IDENTIFIER ::= { st4AnalogToDigitalConvSensors 1 } + + st4AdcSensorHysteresis OBJECT-TYPE + SYNTAX Integer32(0..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The 8-bit count hysteresis of the analog-to-digital converter + sensor." + ::= { st4AdcSensorCommonConfig 1 } + + -- Analog-to-Digital Converter Sensor Configuration Table + + st4AdcSensorConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4AdcSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Analog-to-digital converter sensor configuration table." + ::= { st4AnalogToDigitalConvSensors 2 } + + st4AdcSensorConfigEntry OBJECT-TYPE + SYNTAX St4AdcSensorConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Configuration objects for a particular analog-to-digital + converter sensor." + INDEX { st4UnitIndex, st4AdcSensorIndex } + ::= { st4AdcSensorConfigTable 1 } + + St4AdcSensorConfigEntry ::= SEQUENCE { + st4AdcSensorIndex Integer32, + st4AdcSensorID DisplayString, + st4AdcSensorName DisplayString + } + + st4AdcSensorIndex OBJECT-TYPE + SYNTAX Integer32(0..1) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Analog-to-digital converter sensor index." + ::= { st4AdcSensorConfigEntry 1 } + + st4AdcSensorID OBJECT-TYPE + SYNTAX DisplayString(SIZE(2)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The internal ID of the analog-to-digital converter sensor. + Format=AN." + ::= { st4AdcSensorConfigEntry 2 } + + st4AdcSensorName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The name of the analog-to-digital converter sensor." + ::= { st4AdcSensorConfigEntry 3 } + + -- Analog-to-Digital Converter Sensor Monitor Table + + st4AdcSensorMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4AdcSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Analog-to-digital converter sensor monitor table." + ::= { st4AnalogToDigitalConvSensors 3 } + + st4AdcSensorMonitorEntry OBJECT-TYPE + SYNTAX St4AdcSensorMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Objects to monitor for a particular analog-to-digital converter + sensor." + INDEX { st4UnitIndex, st4AdcSensorIndex } + ::= { st4AdcSensorMonitorTable 1 } + + St4AdcSensorMonitorEntry ::= SEQUENCE { + st4AdcSensorValue Integer32, + st4AdcSensorStatus DeviceStatus + } + + st4AdcSensorValue OBJECT-TYPE + SYNTAX Integer32(-1..255) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The 8-bit value from the analog-to-digital converter sensor." + ::= { st4AdcSensorMonitorEntry 1 } + + st4AdcSensorStatus OBJECT-TYPE + SYNTAX DeviceStatus + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The status of the analog-to-digital converter sensor." + ::= { st4AdcSensorMonitorEntry 2 } + + -- Analog-to-Digital Converter Sensor Event Configuration Table + + st4AdcSensorEventConfigTable OBJECT-TYPE + SYNTAX SEQUENCE OF St4AdcSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Analog-to-digital converter sensor event configuration table." + ::= { st4AnalogToDigitalConvSensors 4 } + + st4AdcSensorEventConfigEntry OBJECT-TYPE + SYNTAX St4AdcSensorEventConfigEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event configuration objects for a particular + analog-to-digital converter sensor." + INDEX { st4UnitIndex, st4AdcSensorIndex } + ::= { st4AdcSensorEventConfigTable 1 } + + St4AdcSensorEventConfigEntry ::= SEQUENCE { + st4AdcSensorNotifications EventNotificationMethods, + st4AdcSensorLowAlarm Integer32, + st4AdcSensorLowWarning Integer32, + st4AdcSensorHighWarning Integer32, + st4AdcSensorHighAlarm Integer32 + } + + st4AdcSensorNotifications OBJECT-TYPE + SYNTAX EventNotificationMethods + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The notification methods enabled for analog-to-digital converter + sensor events." + ::= { st4AdcSensorEventConfigEntry 1 } + + st4AdcSensorLowAlarm OBJECT-TYPE + SYNTAX Integer32(0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The 8-bit value for the low alarm threshold of the + analog-to-digital converter sensor." + ::= { st4AdcSensorEventConfigEntry 2 } + + st4AdcSensorLowWarning OBJECT-TYPE + SYNTAX Integer32(0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The 8-bit value for the low warning threshold of the + analog-to-digital converter sensor." + ::= { st4AdcSensorEventConfigEntry 3 } + + st4AdcSensorHighWarning OBJECT-TYPE + SYNTAX Integer32(0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The 8-bit value for the high warning threshold of the + analog-to-digital converter sensor." + ::= { st4AdcSensorEventConfigEntry 4 } + + st4AdcSensorHighAlarm OBJECT-TYPE + SYNTAX Integer32(0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "The 8-bit value for the high alarm threshold of the + analog-to-digital converter sensor." + ::= { st4AdcSensorEventConfigEntry 5 } + + -- Event Information + + st4EventInformation OBJECT IDENTIFIER ::= { st4Objects 99 } + + st4EventStatusText OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..20)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The text representation of the enumerated integer value of + the most-relevant status or state object included in a trap. + The value of this object is set only when sent with a trap. + A read of this object will return a NULL string." + ::= { st4EventInformation 1 } + + st4EventStatusCondition OBJECT-TYPE + SYNTAX INTEGER { + nonError(0), + error(1) + } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The condition of the enumerated integer value of the status + object included in a trap. The value of this object is set + only when sent with a trap. A read of this object will + return zero." + ::= { st4EventInformation 2 } + +-- Notification Definitions + + st4Notifications OBJECT IDENTIFIER ::= { sentry4 100 } + + -- Events + + st4Events OBJECT IDENTIFIER ::= { st4Notifications 0 } + -- The 0 is for V1 compatibility + + st4UnitStatusEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4UnitID, + st4UnitName, + st4UnitStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Unit status event." + --#TYPE "Sentry: Unit Status Event." + --#SUMMARY "Status of Unit '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 4 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 1 } + + st4InputCordStatusEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4InputCordID, + st4InputCordName, + st4InputCordState, + st4InputCordStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Input cord status event." + --#TYPE "Sentry: Input Cord Status Event." + --#SUMMARY "Status of Input Cord '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 2 } + + st4InputCordActivePowerEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4InputCordID, + st4InputCordName, + st4InputCordActivePower, + st4InputCordActivePowerStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Input cord active power event." + --#TYPE "Sentry: Input Cord Active Power Event." + --#SUMMARY "Active Power Status of Input Cord '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 3 } + + st4InputCordApparentPowerEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4InputCordID, + st4InputCordName, + st4InputCordApparentPower, + st4InputCordApparentPowerStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Input cord apparent power event." + --#TYPE "Sentry: Input Cord Apparent Power Event." + --#SUMMARY "Apparent Power Status of Input Cord '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 4 } + + st4InputCordPowerFactorEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4InputCordID, + st4InputCordName, + st4InputCordPowerFactor, + st4InputCordPowerFactorStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Input cord power factor event." + --#TYPE "Sentry: Input Cord Power Factor Event." + --#SUMMARY "Power Factor Status of Input Cord '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 5 } + + st4InputCordOutOfBalanceEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4InputCordID, + st4InputCordName, + st4InputCordActivePower, + st4InputCordActivePowerStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Input cord out-of-balance event." + --#TYPE "Sentry: Input Cord Out-of-Balance Event." + --#SUMMARY "Out-of-Balance Status of Input Cord '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 6 } + + st4LineStatusEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4LineID, + st4LineLabel, + st4LineState, + st4LineStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Line status event." + --#TYPE "Sentry: Line Status Event." + --#SUMMARY "Status of Line '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 7 } + + st4LineCurrentEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4LineID, + st4LineLabel, + st4LineCurrent, + st4LineCurrentStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Line current event." + --#TYPE "Sentry: Line Current Event." + --#SUMMARY "Current Status of Line '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 8 } + + st4PhaseStatusEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4PhaseID, + st4PhaseLabel, + st4PhaseState, + st4PhaseStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Phase status event." + --#TYPE "Sentry: Phase Status Event." + --#SUMMARY "Status of Phase '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 9 } + + st4PhaseVoltageEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4PhaseID, + st4PhaseLabel, + st4PhaseVoltage, + st4PhaseVoltageStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Phase voltage event." + --#TYPE "Sentry: Phase Voltage Event." + --#SUMMARY "Voltage Status of Phase '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 10 } + + st4PhasePowerFactorEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4PhaseID, + st4PhaseLabel, + st4PhasePowerFactor, + st4PhasePowerFactorStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Phase voltage event." + --#TYPE "Sentry: Phase Power Factor Event." + --#SUMMARY "Power Factor Status of Phase '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 11 } + + st4OcpStatusEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4OcpID, + st4OcpLabel, + st4OcpStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Over-current protector status event." + --#TYPE "Sentry: Over-current Protector Status Event." + --#SUMMARY "Status of Over-current Protector '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 4 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 12 } + + st4BranchStatusEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4BranchID, + st4BranchLabel, + st4BranchState, + st4BranchStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Branch status event." + --#TYPE "Sentry: Branch Status Event." + --#SUMMARY "Status of Branch '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 13 } + + st4BranchCurrentEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4BranchID, + st4BranchLabel, + st4BranchCurrent, + st4BranchCurrentStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Branch current event." + --#TYPE "Sentry: Branch Current Event." + --#SUMMARY "Current Status of Branch '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 14 } + + st4OutletStatusEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4OutletID, + st4OutletName, + st4OutletState, + st4OutletStatus, + st4OutletControlState, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Outlet status event." + --#TYPE "Sentry: Outlet Status Event." + --#SUMMARY "Status of Outlet '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 6 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 15 } + + st4OutletStateChangeEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4OutletID, + st4OutletName, + st4OutletState, + st4OutletStatus, + st4OutletControlState, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Outlet state change event." + --#TYPE "Sentry: Outlet State Change Event." + --#SUMMARY "Outlet '%s' (%s) state has changed to '%s'." + --#ARGUMENTS { 2, 1, 6 } + --#SEVERITY INFORMATIONAL + --#GENERIC 6 + --#CATEGORY "Information Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 16 } + + st4OutletCurrentEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4OutletID, + st4OutletName, + st4OutletCurrent, + st4OutletCurrentStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Outlet current event." + --#TYPE "Sentry: Outlet Current Event." + --#SUMMARY "Current Status of Outlet '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 17 } + + st4OutletActivePowerEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4OutletID, + st4OutletName, + st4OutletActivePower, + st4OutletActivePowerStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Outlet active power event." + --#TYPE "Sentry: Outlet Active Power Event." + --#SUMMARY "Active Power Status of Outlet '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 18 } + + st4OutletPowerFactorEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4OutletID, + st4OutletName, + st4OutletPowerFactor, + st4OutletPowerFactorStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Outlet power factor event." + --#TYPE "Sentry: Outlet Power Factor Event." + --#SUMMARY "Power Factor Status of Outlet '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 19 } + + st4TempSensorEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4TempSensorID, + st4TempSensorName, + st4TempSensorValue, + st4TempSensorStatus, + st4TempSensorScale, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Temperature sensor event." + --#TYPE "Sentry: Temperature Sensor Event." + --#SUMMARY "Status of Temperature Sensor '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 6 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 20 } + + st4HumidSensorEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4HumidSensorID, + st4HumidSensorName, + st4HumidSensorValue, + st4HumidSensorStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Humidity sensor event." + --#TYPE "Sentry: Humidity Sensor Event." + --#SUMMARY "Status of Humidity Sensor '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 21 } + + st4WaterSensorStatusEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4WaterSensorID, + st4WaterSensorName, + st4WaterSensorStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Water sensor status event." + --#TYPE "Sentry: Water Sensor Status Event." + --#SUMMARY "Status of Water Sensor '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 4 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 22 } + + st4CcSensorStatusEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4CcSensorID, + st4CcSensorName, + st4CcSensorStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Contact closure sensor status event." + --#TYPE "Sentry: Contact Closure Sensor Status Event." + --#SUMMARY "Status of Contact Closure Sensor '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 4 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 23 } + + st4AdcSensorEvent NOTIFICATION-TYPE + OBJECTS { + st4SystemLocation, + st4AdcSensorID, + st4AdcSensorName, + st4AdcSensorValue, + st4AdcSensorStatus, + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Analog-to-digital converter sensor event." + --#TYPE "Sentry: Analog-to-Digital Converter Sensor Event." + --#SUMMARY "Status of Analog-to-Digital Converter Sensor '%s' (%s) is '%s'." + --#ARGUMENTS { 2, 1, 5 } + --#SEVERITY CRITICAL + --#GENERIC 6 + --#CATEGORY "Error Events" + --#SOURCE_ID "A" + --#TIMEINDEX 255 + --#HELP "" + --#HELPTAG 0 + --#STATE UNKNOWN + ::= { st4Events 24 } + +-- Conformance Definitions + + st4Conformance OBJECT IDENTIFIER ::= { sentry4 200 } + + -- Object/Notification Groups + + st4Groups OBJECT IDENTIFIER ::= { st4Conformance 1 } + + st4SystemObjectsGroup OBJECT-GROUP + OBJECTS { + st4SystemProductName, + st4SystemLocation, + st4SystemFirmwareVersion, + st4SystemFirmwareBuildInfo, + st4SystemNICSerialNumber, + st4SystemNICHardwareInfo, + st4SystemFeatures, + st4SystemFeatureKey, + st4SystemConfigModifiedCount, + st4SystemUnitCount + } + STATUS current + DESCRIPTION + "System objects group." + ::= { st4Groups 1 } + + st4UnitObjectsGroup OBJECT-GROUP + OBJECTS { + st4UnitID, + st4UnitName, + st4UnitProductSN, + st4UnitModel, + st4UnitAssetTag, + st4UnitType, + st4UnitCapabilities, + st4UnitDisplayOrientation, + st4UnitOutletSequenceOrder, + st4UnitInputCordCount, + st4UnitTempSensorCount, + st4UnitHumidSensorCount, + st4UnitWaterSensorCount, + st4UnitCcSensorCount, + st4UnitAdcSensorCount, + st4UnitStatus, + st4UnitNotifications + } + STATUS current + DESCRIPTION + "Unit objects group." + ::= { st4Groups 2 } + + st4InputCordObjectsGroup OBJECT-GROUP + OBJECTS { + st4InputCordActivePowerHysteresis, + st4InputCordApparentPowerHysteresis, + st4InputCordPowerFactorHysteresis, + st4InputCordOutOfBalanceHysteresis, + st4InputCordID, + st4InputCordName, + st4InputCordInletType, + st4InputCordNominalVoltage, + st4InputCordNominalVoltageMin, + st4InputCordNominalVoltageMax, + st4InputCordCurrentCapacity, + st4InputCordCurrentCapacityMax, + st4InputCordPowerCapacity, + st4InputCordLineCount, + st4InputCordPhaseCount, + st4InputCordOcpCount, + st4InputCordBranchCount, + st4InputCordOutletCount, + st4InputCordState, + st4InputCordStatus, + st4InputCordActivePower, + st4InputCordActivePowerStatus, + st4InputCordApparentPower, + st4InputCordApparentPowerStatus, + st4InputCordPowerUtilized, + st4InputCordPowerFactor, + st4InputCordPowerFactorStatus, + st4InputCordEnergy, + st4InputCordFrequency, + st4InputCordOutOfBalance, + st4InputCordOutOfBalanceStatus, + st4InputCordNotifications, + st4InputCordActivePowerLowAlarm, + st4InputCordActivePowerLowWarning, + st4InputCordActivePowerHighWarning, + st4InputCordActivePowerHighAlarm, + st4InputCordApparentPowerLowAlarm, + st4InputCordApparentPowerLowWarning, + st4InputCordApparentPowerHighWarning, + st4InputCordApparentPowerHighAlarm, + st4InputCordPowerFactorLowAlarm, + st4InputCordPowerFactorLowWarning, + st4InputCordOutOfBalanceHighWarning, + st4InputCordOutOfBalanceHighAlarm + } + STATUS current + DESCRIPTION + "Input cord objects group." + ::= { st4Groups 3 } + + st4LineObjectsGroup OBJECT-GROUP + OBJECTS { + st4LineCurrentHysteresis, + st4LineID, + st4LineLabel, + st4LineCurrentCapacity, + st4LineState, + st4LineStatus, + st4LineCurrent, + st4LineCurrentStatus, + st4LineCurrentUtilized, + st4LineNotifications, + st4LineCurrentLowAlarm, + st4LineCurrentLowWarning, + st4LineCurrentHighWarning, + st4LineCurrentHighAlarm + } + STATUS current + DESCRIPTION + "Line objects group." + ::= { st4Groups 4 } + + st4PhaseObjectsGroup OBJECT-GROUP + OBJECTS { + st4PhaseVoltageHysteresis, + st4PhasePowerFactorHysteresis, + st4PhaseID, + st4PhaseLabel, + st4PhaseNominalVoltage, + st4PhaseBranchCount, + st4PhaseOutletCount, + st4PhaseState, + st4PhaseStatus, + st4PhaseVoltage, + st4PhaseVoltageStatus, + st4PhaseVoltageDeviation, + st4PhaseCurrent, + st4PhaseCurrentCrestFactor, + st4PhaseActivePower, + st4PhaseApparentPower, + st4PhasePowerFactor, + st4PhasePowerFactorStatus, + st4PhaseReactance, + st4PhaseEnergy, + st4PhaseNotifications, + st4PhaseVoltageLowAlarm, + st4PhaseVoltageLowWarning, + st4PhaseVoltageHighWarning, + st4PhaseVoltageHighAlarm, + st4PhasePowerFactorLowAlarm, + st4PhasePowerFactorLowWarning + } + STATUS current + DESCRIPTION + "Phase objects group." + ::= { st4Groups 5 } + + st4OcpObjectsGroup OBJECT-GROUP + OBJECTS { + st4OcpID, + st4OcpLabel, + st4OcpType, + st4OcpCurrentCapacity, + st4OcpCurrentCapacityMax, + st4OcpBranchCount, + st4OcpOutletCount, + st4OcpStatus, + st4OcpNotifications + } + STATUS current + DESCRIPTION + "Over-current protector objects group." + ::= { st4Groups 6 } + + st4BranchObjectsGroup OBJECT-GROUP + OBJECTS { + st4BranchCurrentHysteresis, + st4BranchID, + st4BranchLabel, + st4BranchCurrentCapacity, + st4BranchPhaseID, + st4BranchOcpID, + st4BranchOutletCount, + st4BranchState, + st4BranchStatus, + st4BranchCurrent, + st4BranchCurrentStatus, + st4BranchCurrentUtilized, + st4BranchNotifications, + st4BranchCurrentLowAlarm, + st4BranchCurrentLowWarning, + st4BranchCurrentHighWarning, + st4BranchCurrentHighAlarm + } + STATUS current + DESCRIPTION + "Branch objects group." + ::= { st4Groups 7 } + + st4OutletObjectsGroup OBJECT-GROUP + OBJECTS { + st4OutletCurrentHysteresis, + st4OutletActivePowerHysteresis, + st4OutletPowerFactorHysteresis, + st4OutletSequenceInterval, + st4OutletRebootDelay, + st4OutletStateChangeLogging, + st4OutletID, + st4OutletName, + st4OutletCapabilities, + st4OutletSocketType, + st4OutletCurrentCapacity, + st4OutletPowerCapacity, + st4OutletWakeupState, + st4OutletPostOnDelay, + st4OutletPhaseID, + st4OutletOcpID, + st4OutletBranchID, + st4OutletState, + st4OutletStatus, + st4OutletCurrent, + st4OutletCurrentStatus, + st4OutletCurrentUtilized, + st4OutletVoltage, + st4OutletActivePower, + st4OutletActivePowerStatus, + st4OutletApparentPower, + st4OutletPowerFactor, + st4OutletPowerFactorStatus, + st4OutletCurrentCrestFactor, + st4OutletReactance, + st4OutletEnergy, + st4OutletNotifications, + st4OutletCurrentLowAlarm, + st4OutletCurrentLowWarning, + st4OutletCurrentHighWarning, + st4OutletCurrentHighAlarm, + st4OutletActivePowerLowAlarm, + st4OutletActivePowerLowWarning, + st4OutletActivePowerHighWarning, + st4OutletActivePowerHighAlarm, + st4OutletPowerFactorLowAlarm, + st4OutletPowerFactorLowWarning, + st4OutletControlState, + st4OutletControlAction, + st4OutletQueueControl + } + STATUS current + DESCRIPTION + "Outlet objects group." + ::= { st4Groups 8 } + + st4TempSensorObjectsGroup OBJECT-GROUP + OBJECTS { + st4TempSensorHysteresis, + st4TempSensorScale, + st4TempSensorID, + st4TempSensorName, + st4TempSensorValueMin, + st4TempSensorValueMax, + st4TempSensorValue, + st4TempSensorStatus, + st4TempSensorNotifications, + st4TempSensorLowAlarm, + st4TempSensorLowWarning, + st4TempSensorHighWarning, + st4TempSensorHighAlarm + } + STATUS current + DESCRIPTION + "Temperature sensor objects group." + ::= { st4Groups 9 } + + st4HumidSensorObjectsGroup OBJECT-GROUP + OBJECTS { + st4HumidSensorHysteresis, + st4HumidSensorID, + st4HumidSensorName, + st4HumidSensorValue, + st4HumidSensorStatus, + st4HumidSensorNotifications, + st4HumidSensorLowAlarm, + st4HumidSensorLowWarning, + st4HumidSensorHighWarning, + st4HumidSensorHighAlarm + } + STATUS current + DESCRIPTION + "Humidity sensor objects group." + ::= { st4Groups 10 } + + st4WaterSensorObjectsGroup OBJECT-GROUP + OBJECTS { + st4WaterSensorID, + st4WaterSensorName, + st4WaterSensorStatus, + st4WaterSensorNotifications + } + STATUS current + DESCRIPTION + "Water sensor objects group." + ::= { st4Groups 11 } + + st4CcSensorObjectsGroup OBJECT-GROUP + OBJECTS { + st4CcSensorID, + st4CcSensorName, + st4CcSensorStatus, + st4CcSensorNotifications + } + STATUS current + DESCRIPTION + "Contact closure sensor objects group." + ::= { st4Groups 12 } + + st4AdcSensorObjectsGroup OBJECT-GROUP + OBJECTS { + st4AdcSensorHysteresis, + st4AdcSensorID, + st4AdcSensorName, + st4AdcSensorValue, + st4AdcSensorStatus, + st4AdcSensorNotifications, + st4AdcSensorLowAlarm, + st4AdcSensorLowWarning, + st4AdcSensorHighWarning, + st4AdcSensorHighAlarm + } + STATUS current + DESCRIPTION + "Analog-to-digital converter sensor objects group." + ::= { st4Groups 13 } + + st4EventInfoObjectsGroup OBJECT-GROUP + OBJECTS { + st4EventStatusText, + st4EventStatusCondition + } + STATUS current + DESCRIPTION + "Event information objects group." + ::= { st4Groups 99 } + + st4EventNotificationsGroup NOTIFICATION-GROUP + NOTIFICATIONS { + st4UnitStatusEvent, + st4InputCordStatusEvent, + st4InputCordActivePowerEvent, + st4InputCordApparentPowerEvent, + st4InputCordPowerFactorEvent, + st4InputCordOutOfBalanceEvent, + st4LineStatusEvent, + st4LineCurrentEvent, + st4PhaseStatusEvent, + st4PhaseVoltageEvent, + st4PhasePowerFactorEvent, + st4OcpStatusEvent, + st4BranchStatusEvent, + st4BranchCurrentEvent, + st4OutletStatusEvent, + st4OutletStateChangeEvent, + st4OutletCurrentEvent, + st4OutletActivePowerEvent, + st4OutletPowerFactorEvent, + st4TempSensorEvent, + st4HumidSensorEvent, + st4WaterSensorStatusEvent, + st4CcSensorStatusEvent, + st4AdcSensorEvent + } + STATUS current + DESCRIPTION + "Event notifications group." + ::= { st4Groups 100 } + + -- Compliance Statements + + st4Compliances OBJECT IDENTIFIER ::= { st4Conformance 2 } + + st4ModuleCompliances MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The requirements for conformance to the Sentry4-MIB." + MODULE + GROUP st4SystemObjectsGroup + DESCRIPTION + "System objects group." + GROUP st4UnitObjectsGroup + DESCRIPTION + "Unit objects group." + GROUP st4InputCordObjectsGroup + DESCRIPTION + "Input cord objects group." + GROUP st4LineObjectsGroup + DESCRIPTION + "Line objects group." + GROUP st4PhaseObjectsGroup + DESCRIPTION + "Phase objects group." + GROUP st4OcpObjectsGroup + DESCRIPTION + "Over-current protector objects group." + GROUP st4BranchObjectsGroup + DESCRIPTION + "Branch objects group." + GROUP st4OutletObjectsGroup + DESCRIPTION + "Outlet objects group." + GROUP st4TempSensorObjectsGroup + DESCRIPTION + "Temperature sensor objects group." + GROUP st4HumidSensorObjectsGroup + DESCRIPTION + "Humidity sensor objects group." + GROUP st4WaterSensorObjectsGroup + DESCRIPTION + "Water sensor objects group." + GROUP st4CcSensorObjectsGroup + DESCRIPTION + "Contact closure sensor objects group." + GROUP st4AdcSensorObjectsGroup + DESCRIPTION + "Analog-to-digital converter sensor objects group." + GROUP st4EventInfoObjectsGroup + DESCRIPTION + "Event information objects group." + GROUP st4EventNotificationsGroup + DESCRIPTION + "Event notifications group." + ::= { st4Compliances 1 } + +END diff --git a/mibs/XIRRUS-MIB b/mibs/XIRRUS-MIB new file mode 100644 index 0000000000..8eb8f30a70 --- /dev/null +++ b/mibs/XIRRUS-MIB @@ -0,0 +1,17437 @@ +XIRRUS-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, enterprises, + IpAddress, Counter32, Counter64 FROM SNMPv2-SMI + + DisplayString, MacAddress, RowStatus FROM SNMPv2-TC; + + xirrus MODULE-IDENTITY + LAST-UPDATED "201412081200Z" + ORGANIZATION "Xirrus" + CONTACT-INFO "support@xirrus.com" + DESCRIPTION "Xirrus enterprise MIB tree" + REVISION "201412081200Z" + DESCRIPTION "xirrus mib" + ::= { enterprises 21013 } + + + products OBJECT IDENTIFIER ::= { xirrus 1 } + + + xmManage OBJECT IDENTIFIER ::= { products 1 } + xsArray OBJECT IDENTIFIER ::= { products 2 } + xs3500Array OBJECT IDENTIFIER ::= { products 100 } + xs3700Array OBJECT IDENTIFIER ::= { products 101 } + xs3900Array OBJECT IDENTIFIER ::= { products 102 } + xs3500-512Array OBJECT IDENTIFIER ::= { products 103 } + xs3700-1GArray OBJECT IDENTIFIER ::= { products 104 } + xs3900-1GArray OBJECT IDENTIFIER ::= { products 105 } + xs4Array OBJECT IDENTIFIER ::= { products 106 } + xs8Array OBJECT IDENTIFIER ::= { products 107 } + xs16Array OBJECT IDENTIFIER ::= { products 108 } + xn4Array OBJECT IDENTIFIER ::= { products 109 } + xn8Array OBJECT IDENTIFIER ::= { products 110 } + xn16Array OBJECT IDENTIFIER ::= { products 111 } + xs12Array OBJECT IDENTIFIER ::= { products 112 } + xn12Array OBJECT IDENTIFIER ::= { products 113 } + xr4420Array OBJECT IDENTIFIER ::= { products 114 } + xr4430Array OBJECT IDENTIFIER ::= { products 115 } + xr4820Array OBJECT IDENTIFIER ::= { products 116 } + xr4830Array OBJECT IDENTIFIER ::= { products 117 } + xr6820Array OBJECT IDENTIFIER ::= { products 118 } + xr6830Array OBJECT IDENTIFIER ::= { products 119 } + xr7220Array OBJECT IDENTIFIER ::= { products 120 } + xr7230Array OBJECT IDENTIFIER ::= { products 121 } + xr7620Array OBJECT IDENTIFIER ::= { products 122 } + xr7630Array OBJECT IDENTIFIER ::= { products 123 } + xr1220Array OBJECT IDENTIFIER ::= { products 124 } + xr1230Array OBJECT IDENTIFIER ::= { products 125 } + xr2420Array OBJECT IDENTIFIER ::= { products 126 } + xr2430Array OBJECT IDENTIFIER ::= { products 127 } + xr2220Array OBJECT IDENTIFIER ::= { products 128 } + xr2230Array OBJECT IDENTIFIER ::= { products 129 } + xr1120Array OBJECT IDENTIFIER ::= { products 130 } + xr1130Array OBJECT IDENTIFIER ::= { products 131 } + xr1120hArray OBJECT IDENTIFIER ::= { products 132 } + xr1130hArray OBJECT IDENTIFIER ::= { products 133 } + xr520hArray OBJECT IDENTIFIER ::= { products 134 } + xr1230hArray OBJECT IDENTIFIER ::= { products 135 } + xr2420hArray OBJECT IDENTIFIER ::= { products 136 } + xr2430hArray OBJECT IDENTIFIER ::= { products 137 } + xr2220hArray OBJECT IDENTIFIER ::= { products 138 } + xr2230hArray OBJECT IDENTIFIER ::= { products 139 } + xr520Array OBJECT IDENTIFIER ::= { products 142 } + xr530Array OBJECT IDENTIFIER ::= { products 143 } + xr1220hArray OBJECT IDENTIFIER ::= { products 144 } + xr530hArray OBJECT IDENTIFIER ::= { products 145 } + xr420hArray OBJECT IDENTIFIER ::= { products 146 } + xr430hArray OBJECT IDENTIFIER ::= { products 147 } + xr2425Array OBJECT IDENTIFIER ::= { products 148 } + xr2435Array OBJECT IDENTIFIER ::= { products 149 } + xr2425hArray OBJECT IDENTIFIER ::= { products 150 } + xr2225Array OBJECT IDENTIFIER ::= { products 151 } + xr2235Array OBJECT IDENTIFIER ::= { products 152 } + xr620Array OBJECT IDENTIFIER ::= { products 153 } + xr620hArray OBJECT IDENTIFIER ::= { products 154 } + xr630Array OBJECT IDENTIFIER ::= { products 155 } + xr2426Array OBJECT IDENTIFIER ::= { products 156 } + xr2436Array OBJECT IDENTIFIER ::= { products 157 } + xr2426hArray OBJECT IDENTIFIER ::= { products 158 } + xr2226Array OBJECT IDENTIFIER ::= { products 159 } + xr2226hArray OBJECT IDENTIFIER ::= { products 160 } + xr2236Array OBJECT IDENTIFIER ::= { products 161 } + xr630hArray OBJECT IDENTIFIER ::= { products 162 } + xr2225hArray OBJECT IDENTIFIER ::= { products 163 } + xr2235hArray OBJECT IDENTIFIER ::= { products 164 } + xr2236hArray OBJECT IDENTIFIER ::= { products 165 } + xr2435hArray OBJECT IDENTIFIER ::= { products 166 } + xr2436hArray OBJECT IDENTIFIER ::= { products 167 } + xr1126Array OBJECT IDENTIFIER ::= { products 168 } + xr1136Array OBJECT IDENTIFIER ::= { products 169 } + xr1226Array OBJECT IDENTIFIER ::= { products 170 } + xr1236Array OBJECT IDENTIFIER ::= { products 171 } + xr1126hArray OBJECT IDENTIFIER ::= { products 172 } + xr1136hArray OBJECT IDENTIFIER ::= { products 173 } + xr1226hArray OBJECT IDENTIFIER ::= { products 174 } + xr1236hArray OBJECT IDENTIFIER ::= { products 175 } + xr4426Array OBJECT IDENTIFIER ::= { products 176 } + xr4436Array OBJECT IDENTIFIER ::= { products 177 } + xr4826Array OBJECT IDENTIFIER ::= { products 178 } + xr4836Array OBJECT IDENTIFIER ::= { products 179 } + xr6826Array OBJECT IDENTIFIER ::= { products 180 } + xr6836Array OBJECT IDENTIFIER ::= { products 181 } + xr7226Array OBJECT IDENTIFIER ::= { products 182 } + xr7236Array OBJECT IDENTIFIER ::= { products 183 } + xr7626Array OBJECT IDENTIFIER ::= { products 184 } + xr7636Array OBJECT IDENTIFIER ::= { products 185 } + +-- xsArray + + acl OBJECT IDENTIFIER ::= { xsArray 2 } + admin OBJECT IDENTIFIER ::= { xsArray 4 } + cdp OBJECT IDENTIFIER ::= { xsArray 5 } + dateTime OBJECT IDENTIFIER ::= { xsArray 6 } + dhcp OBJECT IDENTIFIER ::= { xsArray 8 } + dns OBJECT IDENTIFIER ::= { xsArray 10 } + filter OBJECT IDENTIFIER ::= { xsArray 11 } + interface OBJECT IDENTIFIER ::= { xsArray 12 } + networkMap OBJECT IDENTIFIER ::= { xsArray 13 } + radius OBJECT IDENTIFIER ::= { xsArray 14 } + roamAssist OBJECT IDENTIFIER ::= { xsArray 15 } + security OBJECT IDENTIFIER ::= { xsArray 16 } + snmpAgent OBJECT IDENTIFIER ::= { xsArray 18 } + ssid OBJECT IDENTIFIER ::= { xsArray 20 } + stations OBJECT IDENTIFIER ::= { xsArray 22 } + statistics OBJECT IDENTIFIER ::= { xsArray 24 } + syslog OBJECT IDENTIFIER ::= { xsArray 26 } + system OBJECT IDENTIFIER ::= { xsArray 28 } + tunnel OBJECT IDENTIFIER ::= { xsArray 29 } + vlan OBJECT IDENTIFIER ::= { xsArray 30 } + cluster OBJECT IDENTIFIER ::= { xsArray 31 } + envCtrl OBJECT IDENTIFIER ::= { xsArray 32 } + location OBJECT IDENTIFIER ::= { xsArray 33 } + group OBJECT IDENTIFIER ::= { xsArray 34 } + mdm OBJECT IDENTIFIER ::= { xsArray 35 } + netflow OBJECT IDENTIFIER ::= { xsArray 36 } + wifiTag OBJECT IDENTIFIER ::= { xsArray 37 } + wpr OBJECT IDENTIFIER ::= { xsArray 38 } + oauth OBJECT IDENTIFIER ::= { xsArray 39 } + proxyFwd OBJECT IDENTIFIER ::= { xsArray 40 } + proxyMgmt OBJECT IDENTIFIER ::= { xsArray 41 } + traps OBJECT IDENTIFIER ::= { xsArray 50 } + + +-- +-- ACL +-- + + aclEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), allow(1) , deny(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Access Control List enable" + ::= { acl 1 } + + aclTable OBJECT-TYPE + SYNTAX SEQUENCE OF AclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Control List for the Array" + ::= { acl 2 } + + aclEntry OBJECT-TYPE + SYNTAX AclEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "ACL table entry" + INDEX { aclIndex } + ::= { aclTable 1 } + + AclEntry ::= SEQUENCE { + aclIndex Integer32, + aclMacAddress DisplayString, + aclRowStatus RowStatus + } + + aclIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Control List Index" + ::= { aclEntry 1 } + + aclMacAddress OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..17)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Mac address to be allowed or denied" + ::= { aclEntry 2 } + + aclRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the ACL row entry" + ::= { aclEntry 3 } + + aclTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset Access Control List (clear all entries)" + ::= { acl 3 } + + aclSsidTable OBJECT-TYPE + SYNTAX SEQUENCE OF AclSsidEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Access Control List per SSID" + ::= { acl 4 } + + aclSsidEntry OBJECT-TYPE + SYNTAX AclSsidEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "ACL per SSID table entry" + INDEX { aclSsidIndex } + ::= { aclSsidTable 1 } + + AclSsidEntry ::= SEQUENCE { + aclSsidIndex Integer32, + aclSsidMacAddress DisplayString, + aclSsidName DisplayString, + aclSsidRowStatus RowStatus + } + + aclSsidIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "ACL per SSID index" + ::= { aclSsidEntry 1 } + + aclSsidMacAddress OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..17)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Mac address to be allowed or denied" + ::= { aclSsidEntry 2 } + + aclSsidName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID this ACL entry belongs to" + ::= { aclSsidEntry 3 } + + aclSsidRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the ACL row entry" + ::= { aclSsidEntry 4 } + + aclSsidTableReset OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset ACL (clear all entries) for given SSID" + ::= { acl 5 } + +-- +-- ADMIN +-- + + adminTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Administrator List for the Array" + ::= { admin 1 } + + adminEntry OBJECT-TYPE + SYNTAX AdminEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Admin table entry" + INDEX { adminIndex } + ::= { adminTable 1 } + + AdminEntry ::= SEQUENCE { + adminIndex Integer32, + adminUsername DisplayString, + adminPassword DisplayString, + adminPasswordForm INTEGER, + adminPrivilege INTEGER, + adminRowStatus RowStatus, + adminPrivilegeLevel Integer32 + } + + adminIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Admin Index" + ::= { adminEntry 1 } + + adminUsername OBJECT-TYPE + SYNTAX DisplayString(SIZE(5..50)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Admin username" + ::= { adminEntry 2 } + + adminPassword OBJECT-TYPE + SYNTAX DisplayString(SIZE(5..50)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Admin password" + ::= { adminEntry 3 } + + adminPasswordForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Admin password form" + ::= { adminEntry 4 } + + adminPrivilege OBJECT-TYPE + SYNTAX INTEGER { read-only(0), read-write(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Admin privilege" + ::= { adminEntry 5 } + + adminRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the admin row entry" + ::= { adminEntry 6 } + + adminPrivilegeLevel OBJECT-TYPE + SYNTAX Integer32(0..7) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Admin privilege level" + ::= { adminEntry 7 } + + adminTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset administrator list (clear all entries and restore default)" + ::= { admin 2 } + + adminTableClear OBJECT-TYPE + SYNTAX INTEGER { clear(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Clear all entries in administrator list" + ::= { admin 3 } + + adminRadius OBJECT IDENTIFIER ::= { admin 4 } + +-- +-- ADMIN RADIUS +-- + + adminRadiusEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable admin authentication via Radius" + ::= { adminRadius 1 } + + adminRadiusPriServer OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Admin Primary Radius server host name or IP address" + ::= { adminRadius 2 } + + adminRadiusPriServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Admin Primary Radius server port" + ::= { adminRadius 3 } + + adminRadiusPriServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Admin Primary Radius server secret" + ::= { adminRadius 4 } + + adminRadiusPriServerSecretEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Admin Primary Radius server secret (encrypted)" + ::= { adminRadius 5 } + + adminRadiusSecServer OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Admin Secondary Radius server host name or IP address" + ::= { adminRadius 6 } + + adminRadiusSecServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Admin Secondary Radius server port" + ::= { adminRadius 7 } + + adminRadiusSecServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Admin Secondary Radius server secret" + ::= { adminRadius 8 } + + adminRadiusSecServerSecretEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Admin Secondary Radius server secret (encrypted)" + ::= { adminRadius 9 } + + adminRadiusTimeout OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Timeout before server is retried after it initially failed" + ::= { adminRadius 10 } + + adminRadiusAuthType OBJECT-TYPE + SYNTAX INTEGER { chap(0), pap(1), ms-chap(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set authentication protocol for admin authentication via RADIUS" + ::= { adminRadius 11 } + + adminHistoryTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdminHistoryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Administrator history list" + ::= { admin 5 } + + adminHistoryEntry OBJECT-TYPE + SYNTAX AdminHistoryEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Administrator history table entry" + INDEX { adminHistoryIndex } + ::= { adminHistoryTable 1 } + + AdminHistoryEntry ::= SEQUENCE { + adminHistoryIndex Integer32, + adminHistoryUsername DisplayString, + adminHistoryIPAddress DisplayString, + adminHistoryInterface INTEGER, + adminHistoryLoginTime DisplayString, + adminHistoryLogoutTime DisplayString + } + + adminHistoryIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Admin history table index" + ::= { adminHistoryEntry 1 } + + adminHistoryUsername OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Admin username" + ::= { adminHistoryEntry 2 } + + adminHistoryIPAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IP Address admin logged in from" + ::= { adminHistoryEntry 3 } + + adminHistoryInterface OBJECT-TYPE + SYNTAX INTEGER { console(0), telnet(1), ssh(2), https(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface admin logged in via" + ::= { adminHistoryEntry 4 } + + adminHistoryLoginTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Admin login time" + ::= { adminHistoryEntry 5 } + + adminHistoryLogoutTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Admin logout time" + ::= { adminHistoryEntry 6 } + + adminPrivLevelTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdminPrivLevelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Administrator privilege level table" + ::= { admin 6 } + + adminPrivLevelEntry OBJECT-TYPE + SYNTAX AdminPrivLevelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Administrator privilege level table entry" + INDEX { adminPrivLevelNumber } + ::= { adminPrivLevelTable 1 } + + AdminPrivLevelEntry ::= SEQUENCE { + adminPrivLevelNumber Integer32, + adminPrivLevelName DisplayString + } + + adminPrivLevelNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Administrator privilege level number" + ::= { adminPrivLevelEntry 1 } + + adminPrivLevelName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Administrator privilege level name" + ::= { adminPrivLevelEntry 2 } + + adminPrivSectionTable OBJECT-TYPE + SYNTAX SEQUENCE OF AdminPrivSectionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Administrator privilege section table" + ::= { admin 7 } + + adminPrivSectionEntry OBJECT-TYPE + SYNTAX AdminPrivSectionEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Administrator privilege section table entry" + INDEX { adminPrivSectionIndex } + ::= { adminPrivSectionTable 1 } + + AdminPrivSectionEntry ::= SEQUENCE { + adminPrivSectionIndex Integer32, + adminPrivSectionName DisplayString, + adminPrivSectionLevel Integer32 + } + + adminPrivSectionIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Administrator privilege section table index" + ::= { adminPrivSectionEntry 1 } + + adminPrivSectionName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Administrator privilege section name" + ::= { adminPrivSectionEntry 2 } + + adminPrivSectionLevel OBJECT-TYPE + SYNTAX Integer32(0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Administrator privilege level required by config section" + ::= { adminPrivSectionEntry 3 } + +-- +-- CDP +-- + + cdpInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF CdpInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Cisco Discovery Protocol information table" + ::= { cdp 1 } + + cdpInfoEntry OBJECT-TYPE + SYNTAX CdpInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "CDP info table entry" + INDEX { cdpInfoIndex } + ::= { cdpInfoTable 1 } + + CdpInfoEntry ::= SEQUENCE { + cdpInfoIndex Integer32, + cdpInfoHostname DisplayString, + cdpInfoIPAddress DisplayString, + cdpInfoModel DisplayString, + cdpInfoInterface DisplayString, + cdpInfoNativeVlan DisplayString, + cdpInfoCapabilities DisplayString, + cdpInfoSoftware DisplayString + } + + cdpInfoIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "CDP info table index" + ::= { cdpInfoEntry 1 } + + cdpInfoHostname OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Device hostname" + ::= { cdpInfoEntry 2 } + + cdpInfoIPAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Device IP Address" + ::= { cdpInfoEntry 3 } + + cdpInfoModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Device model" + ::= { cdpInfoEntry 4 } + + cdpInfoInterface OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Device interface" + ::= { cdpInfoEntry 5 } + + cdpInfoNativeVlan OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Device native vlan" + ::= { cdpInfoEntry 6 } + + cdpInfoCapabilities OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Device capabilities" + ::= { cdpInfoEntry 7 } + + cdpInfoSoftware OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Device software" + ::= { cdpInfoEntry 8 } + + cdpEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable CDP" + ::= { cdp 2 } + + cdpInterval OBJECT-TYPE + SYNTAX Integer32(5..900) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "CDP message interval (in seconds)" + ::= { cdp 3 } + + cdpHoldTime OBJECT-TYPE + SYNTAX Integer32(10..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "CDP message hold time (in seconds)" + ::= { cdp 4 } + +-- +-- DATE/TIME +-- + + dateTimeSet OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..12)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Date and time. To set use the following format: MMDDhhmmYYYY" + ::= { dateTime 1 } + + dateTimeZoneHours OBJECT-TYPE + SYNTAX Integer32(-12..12) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Hours offset from UTC" + ::= { dateTime 2 } + + dateTimeZoneMins OBJECT-TYPE + SYNTAX Integer32(0..59) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Minutes offset from UTC" + ::= { dateTime 3 } + + dateTimeDSTAdjust OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable DST adjustment" + ::= { dateTime 4 } + + ntp OBJECT IDENTIFIER ::= { dateTime 5 } + +-- +-- DATE/TIME NTP +-- + + ntpEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable NTP" + ::= { ntp 1 } + + ntpPrimary OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary NTP IP address" + ::= { ntp 2 } + + ntpSecondary OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary NTP IP address" + ::= { ntp 3 } + + ntpPrimaryAuthType OBJECT-TYPE + SYNTAX INTEGER { none(0), md5(1), sha1(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary NTP server authentication type" + ::= { ntp 4 } + + ntpPrimaryAuthKeyID OBJECT-TYPE + SYNTAX Integer32(1..65534) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary NTP server authentication key ID" + ::= { ntp 5 } + + ntpPrimaryAuthKey OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary NTP server authentication key" + ::= { ntp 6 } + + ntpPrimaryAuthKeyEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..40)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary NTP server authentication key (encrypted)" + ::= { ntp 7 } + + ntpSecondaryAuthType OBJECT-TYPE + SYNTAX INTEGER { none(0), md5(1), sha1(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary NTP server authentication type" + ::= { ntp 8 } + + ntpSecondaryAuthKeyID OBJECT-TYPE + SYNTAX Integer32(1..65534) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary NTP server authentication key ID" + ::= { ntp 9 } + + ntpSecondaryAuthKey OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary NTP server authentication key" + ::= { ntp 10 } + + ntpSecondaryAuthKeyEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..40)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary NTP server authentication key (encrypted)" + ::= { ntp 11 } + +-- +-- DHCP +-- + + dhcpPoolTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset DHCP table (clear all entries)" + ::= { dhcp 1 } + + dhcpPoolTable OBJECT-TYPE + SYNTAX SEQUENCE OF DhcpPoolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "DHCP pool table for the Array" + ::= { dhcp 2 } + + dhcpPoolEntry OBJECT-TYPE + SYNTAX DhcpPoolEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "DHCP pool table entry" + INDEX { dhcpPoolIndex } + ::= { dhcpPoolTable 1 } + + DhcpPoolEntry ::= SEQUENCE { + dhcpPoolIndex Integer32, + dhcpPoolName DisplayString, + dhcpPoolEnable INTEGER, + dhcpPoolRangeStartIP IpAddress, + dhcpPoolRangeEndIP IpAddress, + dhcpPoolDefaultLease Integer32, + dhcpPoolMaxLease Integer32, + dhcpPoolMask IpAddress, + dhcpPoolGateway IpAddress, + dhcpPoolDNSDomain DisplayString, + dhcpPoolDNSServer1 IpAddress, + dhcpPoolDNSServer2 IpAddress, + dhcpPoolDNSServer3 IpAddress, + dhcpPoolNAT INTEGER, + dhcpPoolRowStatus RowStatus + } + + dhcpPoolIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "DHCP pool table index" + ::= { dhcpPoolEntry 1 } + + dhcpPoolName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool name" + ::= { dhcpPoolEntry 2 } + + dhcpPoolEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable or disable DHCP pool" + ::= { dhcpPoolEntry 3 } + + dhcpPoolRangeStartIP OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool address range start" + ::= { dhcpPoolEntry 4 } + + dhcpPoolRangeEndIP OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool address range end" + ::= { dhcpPoolEntry 5 } + + dhcpPoolDefaultLease OBJECT-TYPE + SYNTAX Integer32(60..3000000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool default lease (in seconds)" + ::= { dhcpPoolEntry 6 } + + dhcpPoolMaxLease OBJECT-TYPE + SYNTAX Integer32(60..3000000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool max lease (in seconds)" + ::= { dhcpPoolEntry 7 } + + dhcpPoolMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool subnet mask" + ::= { dhcpPoolEntry 8 } + + dhcpPoolGateway OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool gateway" + ::= { dhcpPoolEntry 9 } + + dhcpPoolDNSDomain OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool DNS domain" + ::= { dhcpPoolEntry 10 } + + dhcpPoolDNSServer1 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool DNS first server" + ::= { dhcpPoolEntry 11 } + + dhcpPoolDNSServer2 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool DNS second server" + ::= { dhcpPoolEntry 12 } + + dhcpPoolDNSServer3 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "DHCP pool DNS third server" + ::= { dhcpPoolEntry 13 } + + dhcpPoolNAT OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable or disable NAT" + ::= { dhcpPoolEntry 14 } + + dhcpPoolRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the DHCP pool row entry" + ::= { dhcpPoolEntry 15 } + +-- +-- DNS +-- + + dnsDomain OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "DNS Domain" + ::= { dns 1 } + + dnsSrv1 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "DNS first server" + ::= { dns 2 } + + dnsSrv2 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "DNS second server" + ::= { dns 3 } + + dnsSrv3 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "DNS third server" + ::= { dns 4 } + + dnsUseDhcp OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable updates to DNS settings via DHCP" + ::= { dns 5 } + +-- +-- FILTER +-- + + filterMoveDown OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Decrease filter priority (Global filter list)" + ::= { filter 1 } + + filterMoveUp OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Increase filter priority (Global filter list)" + ::= { filter 2 } + + filterTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset filter table and filter list table (clear all entries)" + ::= { filter 3 } + + filterTable OBJECT-TYPE + SYNTAX SEQUENCE OF FilterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter table for the Array" + ::= { filter 4 } + + filterEntry OBJECT-TYPE + SYNTAX FilterEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter table entry" + INDEX { filterIndex } + ::= { filterTable 1 } + + FilterEntry ::= SEQUENCE { + filterIndex Integer32, + filterName DisplayString, + filterEnable INTEGER, + filterType INTEGER, + filterProtocol Integer32, + filterPort Integer32, + filterSrcType INTEGER, + filterSrcInvertSense INTEGER, + filterSrcSsid DisplayString, + filterSrcVlan Integer32, + filterSrcIPAddress IpAddress, + filterSrcIPAddressMask IpAddress, + filterSrcMacAddress DisplayString, + filterSrcMacAddressMask DisplayString, + filterSrcIface INTEGER, + filterDstType INTEGER, + filterDstInvertSense INTEGER, + filterDstSsid DisplayString, + filterDstVlan Integer32, + filterDstIPAddress IpAddress, + filterDstIPAddressMask IpAddress, + filterDstMacAddress DisplayString, + filterDstMacAddressMask DisplayString, + filterDstIface INTEGER, + filterSetQOS Integer32, + filterSetVlan Integer32, + filterPriority Integer32, + filterRowStatus RowStatus, + filterList DisplayString, + filterPortRange Integer32, + filterSrcGroup DisplayString, + filterDstGroup DisplayString, + filterLog INTEGER, + filterPackets Counter64, + filterBytes Counter64, + filterApplication DisplayString, + filterLayer INTEGER, + filterSetDSCP Integer32, + filterTrafficLimit Integer32, + filterTrafficLimitType INTEGER, + filterTimeOn Integer32, + filterTimeOff Integer32, + filterDays DisplayString + } + + filterIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter table index" + ::= { filterEntry 1 } + + filterName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter name" + ::= { filterEntry 2 } + + filterEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable/disable filter" + ::= { filterEntry 3 } + + filterType OBJECT-TYPE + SYNTAX INTEGER { allow(1), deny(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter type: allow/deny traffic" + ::= { filterEntry 4 } + + filterProtocol OBJECT-TYPE + SYNTAX Integer32(0..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Protocol to filter on (0 - any protocol, 255 - any IP protocol)" + ::= { filterEntry 5 } + + filterPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Port to filter on (0 - any port)" + ::= { filterEntry 6 } + + filterSrcType OBJECT-TYPE + SYNTAX INTEGER { any(0), ssid(1), vlan(2), ip(3), + mac(4), interface(5), group(6) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter source type" + ::= { filterEntry 7 } + + filterSrcInvertSense OBJECT-TYPE + SYNTAX INTEGER { no(0), yes(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Invert sense of filter source address" + ::= { filterEntry 8 } + + filterSrcSsid OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter source SSID" + ::= { filterEntry 9 } + + filterSrcVlan OBJECT-TYPE + SYNTAX Integer32(0..4095) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter source VLAN" + ::= { filterEntry 10 } + + filterSrcIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter source IP address" + ::= { filterEntry 11 } + + filterSrcIPAddressMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter source IP address mask" + ::= { filterEntry 12 } + + filterSrcMacAddress OBJECT-TYPE + SYNTAX DisplayString(SIZE(12..17)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter source MAC address" + ::= { filterEntry 13 } + + filterSrcMacAddressMask OBJECT-TYPE + SYNTAX DisplayString(SIZE(12..17)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter source MAC address mask" + ::= { filterEntry 14 } + + filterSrcIface OBJECT-TYPE + SYNTAX INTEGER { iap(0), wds-client-1(1), wds-client-2(2), + wds-client-3(3), wds-client-4(4), wds-all(5), + gig(6), wds-host-1(7), wds-host-2(8), + wds-host-3(9), wds-host-4(10), tunnel(11) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter source interface" + ::= { filterEntry 15 } + + filterDstType OBJECT-TYPE + SYNTAX INTEGER { any(0), ssid(1), vlan(2), ip(3), + mac(4), interface(5), group(6) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter destination type" + ::= { filterEntry 16 } + + filterDstInvertSense OBJECT-TYPE + SYNTAX INTEGER { no(0), yes(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Invert sense of filter destination address" + ::= { filterEntry 17 } + + filterDstSsid OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter destination SSID" + ::= { filterEntry 18 } + + filterDstVlan OBJECT-TYPE + SYNTAX Integer32(0..4095) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter destination VLAN" + ::= { filterEntry 19 } + + filterDstIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter destination IP address" + ::= { filterEntry 20 } + + filterDstIPAddressMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter destination IP address mask" + ::= { filterEntry 21 } + + filterDstMacAddress OBJECT-TYPE + SYNTAX DisplayString(SIZE(12..17)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter destination MAC address" + ::= { filterEntry 22 } + + filterDstMacAddressMask OBJECT-TYPE + SYNTAX DisplayString(SIZE(12..17)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter destination MAC address mask" + ::= { filterEntry 23 } + + filterDstIface OBJECT-TYPE + SYNTAX INTEGER { iap(0), wds-client-1(1), wds-client-2(2), + wds-client-3(3), wds-client-4(4), wds-all(5), + gig(6), wds-host-1(7), wds-host-2(8), + wds-host-3(9), wds-host-4(10), tunnel(11) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter destination interface" + ::= { filterEntry 24 } + + filterSetQOS OBJECT-TYPE + SYNTAX Integer32(-1..3) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Modify QoS setting for this filter (0..3), if -1 - do not modify QoS setting" + ::= { filterEntry 25 } + + filterSetVlan OBJECT-TYPE + SYNTAX Integer32(-1..4095) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Modify VLAN setting for this filter (0..4095), if -1 - do not modify VLAN setting" + ::= { filterEntry 26 } + + filterPriority OBJECT-TYPE + SYNTAX Integer32(1..50) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter priority" + ::= { filterEntry 27 } + + filterRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the filter row entry" + ::= { filterEntry 28 } + + filterList OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter list this filter belongs to" + ::= { filterEntry 29 } + + filterPortRange OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Port range ending number (0 - no range)" + ::= { filterEntry 30 } + + filterSrcGroup OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter source user group" + ::= { filterEntry 31 } + + filterDstGroup OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter destination user group" + ::= { filterEntry 32 } + + filterLog OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable/disable filter packet logging" + ::= { filterEntry 33 } + + filterPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of packets that matched the filter" + ::= { filterEntry 34 } + + filterBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The number of bytes that matched the filter" + ::= { filterEntry 35 } + + filterApplication OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..8)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Application GUID to filter on" + ::= { filterEntry 36 } + + filterLayer OBJECT-TYPE + SYNTAX INTEGER { layer-2(0), layer-3(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter layer" + ::= { filterEntry 37 } + + filterSetDSCP OBJECT-TYPE + SYNTAX Integer32(-1..63) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Modify QoS setting for this filter (0..63), if -1 - do not modify DSCP setting" + ::= { filterEntry 38 } + + filterTrafficLimit OBJECT-TYPE + SYNTAX Integer32(10..4000000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter traffic limit (10 to 1000000 if pps, 10 to 4000000 if Kbps)" + ::= { filterEntry 39 } + + filterTrafficLimitType OBJECT-TYPE + SYNTAX INTEGER { none(0), all-pps(1), all-kbps(2), sta-pps(3), sta-kbps(4) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter traffic limit type" + ::= { filterEntry 40 } + + filterTimeOn OBJECT-TYPE + SYNTAX Integer32(-1..1439) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Time on for this filter in minutes after midnight" + ::= { filterEntry 41 } + + filterTimeOff OBJECT-TYPE + SYNTAX Integer32(-1..1439) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Time off for this filter in minutes after midnight" + ::= { filterEntry 42 } + + filterDays OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..100)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Days of the week the filter is active" + ::= { filterEntry 43 } + + filterListTable OBJECT-TYPE + SYNTAX SEQUENCE OF FilterListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter list table for the Array" + ::= { filter 5 } + + filterListEntry OBJECT-TYPE + SYNTAX FilterListEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter list table entry" + INDEX { filterListIndex } + ::= { filterListTable 1 } + + FilterListEntry ::= SEQUENCE { + filterListIndex Integer32, + filterListName DisplayString, + filterListEnable INTEGER, + filterListLength Integer32, + filterListReset INTEGER, + filterListRowStatus RowStatus + } + + filterListIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter list table index" + ::= { filterListEntry 1 } + + filterListName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Filter list name" + ::= { filterListEntry 2 } + + filterListEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable/disable filter list" + ::= { filterListEntry 3 } + + filterListLength OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of filters in filter list" + ::= { filterListEntry 4 } + + filterListReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Delete all filters from filter list" + ::= { filterListEntry 5 } + + filterListRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the filter list row entry" + ::= { filterListEntry 6 } + + filterStateful OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable stateful filtering" + ::= { filter 6 } + + filterTrackApps OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable application tracking" + ::= { filter 7 } + + filterAppTable OBJECT-TYPE + SYNTAX SEQUENCE OF FilterAppEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter application table for the Array" + ::= { filter 8 } + + filterAppEntry OBJECT-TYPE + SYNTAX FilterAppEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter application table entry" + INDEX { filterAppIndex } + ::= { filterAppTable 1 } + + FilterAppEntry ::= SEQUENCE { + filterAppIndex Integer32, + filterAppGuid DisplayString, + filterAppCategory DisplayString, + filterAppDescription DisplayString + } + + filterAppIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter application table index" + ::= { filterAppEntry 1 } + + filterAppGuid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Filter application global unique identifier" + ::= { filterAppEntry 2 } + + filterAppCategory OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Filter application category global unique identifier" + ::= { filterAppEntry 3 } + + filterAppDescription OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Filter application description" + ::= { filterAppEntry 4 } + + filterAppCatTable OBJECT-TYPE + SYNTAX SEQUENCE OF FilterAppCatEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter application category table for the Array" + ::= { filter 9 } + + filterAppCatEntry OBJECT-TYPE + SYNTAX FilterAppCatEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter application category table entry" + INDEX { filterAppCatIndex } + ::= { filterAppCatTable 1 } + + FilterAppCatEntry ::= SEQUENCE { + filterAppCatIndex Integer32, + filterAppCatGuid DisplayString, + filterAppCatDescription DisplayString + } + + filterAppCatIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Filter application category table index" + ::= { filterAppCatEntry 1 } + + filterAppCatGuid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Filter application category global unique identifier" + ::= { filterAppCatEntry 2 } + + filterAppCatDescription OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Filter application category description" + ::= { filterAppCatEntry 3 } + +-- +-- INTERFACE +-- + + iap OBJECT IDENTIFIER ::= { interface 1 } + ethernet OBJECT IDENTIFIER ::= { interface 2 } + console OBJECT IDENTIFIER ::= { interface 3 } + +-- +-- INTERFACE IAP +-- + + iapTable OBJECT-TYPE + SYNTAX SEQUENCE OF IapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of IAPs" + ::= { iap 1 } + + iapEntry OBJECT-TYPE + SYNTAX IapEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "IAP table entry" + INDEX { iapIndex } + ::= { iapTable 1 } + + IapEntry ::= SEQUENCE { + iapIndex Integer32, + iapName DisplayString, + iapMacAddress DisplayString, + iapNumStations Integer32, + iapEnable INTEGER, + iapCellSize INTEGER, + iapTxPwr Integer32, + iapRxThreshold Integer32, + iapChannel Integer32, + iapDot11Mode INTEGER, + iapAntenna INTEGER, + iapDescription DisplayString, + iapWdsClientLink Integer32, + iapWdsHostLink Integer32, + iapChannelBondMode INTEGER, + iapBondedChannel Integer32, + iapMaxStationsHour Integer32, + iapMaxStationsDay Integer32, + iapMaxStationsWeek Integer32, + iapMaxStationsMonth Integer32, + iapMaxStationsYear Integer32, + iapChannelMode INTEGER, + iapWifiMode INTEGER, + iapPresent INTEGER, + iapWdsLinkDistance Integer32, + iapResetsMonitor Counter64, + iapResetsBeacon Counter64, + iapResetsPhy Counter64, + iapResetsMac Counter64, + iapResetsSystem Counter64, + iapSpatialStreams INTEGER, + iapChannelBond80Mhz INTEGER, + iapBondedChannelList DisplayString, + iapType INTEGER + } + + iapIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "IAP table index" + ::= { iapEntry 1 } + + iapName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IAP name" + ::= { iapEntry 2 } + + iapMacAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IAP Mac address" + ::= { iapEntry 3 } + + iapNumStations OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of associated stations per IAP" + ::= { iapEntry 4 } + + iapEnable OBJECT-TYPE + SYNTAX INTEGER { down(0), up(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Bring IAP up or down" + ::= { iapEntry 5 } + + iapCellSize OBJECT-TYPE + SYNTAX INTEGER { manual(0), small(1), medium(2), large(3), + max(4), auto(5), monitor(6) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set up RF cell size base on Tx pwr and Rx Threshold" + ::= { iapEntry 6 } + + iapTxPwr OBJECT-TYPE + SYNTAX Integer32(-15..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum Tx power output from radio" + ::= { iapEntry 7 } + + iapRxThreshold OBJECT-TYPE + SYNTAX Integer32(-100..0) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Rx (deferred) threshold setting" + ::= { iapEntry 8 } + + iapChannel OBJECT-TYPE + SYNTAX Integer32(0..256) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set channel (0 to set monitor mode for abg2 only)" + ::= { iapEntry 9 } + + iapAntenna OBJECT-TYPE + SYNTAX INTEGER { internal(1), external(2), omni(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set antenna (abg only radios)" + ::= { iapEntry 10 } + + iapDot11Mode OBJECT-TYPE + SYNTAX INTEGER { dot11a(0), dot11g(1), monitor(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set 802.11 mode (band), where dot11a mode is 5GHz band and dot11g mode is 2.4GHz band (abg only radios)" + ::= { iapEntry 11 } + + iapDescription OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "IAP description" + ::= { iapEntry 12 } + + iapWdsClientLink OBJECT-TYPE + SYNTAX Integer32(0..4) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Assign this IAP to a WDS client link (1-4), 0 means no link" + ::= { iapEntry 13 } + + iapWdsHostLink OBJECT-TYPE + SYNTAX Integer32(0..4) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Assign this IAP to a WDS host link (1-4), 0 means no link" + ::= { iapEntry 14 } + + iapChannelBondMode OBJECT-TYPE + SYNTAX INTEGER { minus1(-1), off(0), plus1(1), auto(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Channel bonding setting (802.11n)" + ::= { iapEntry 15 } + + iapBondedChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bonded channel (802.11n)" + ::= { iapEntry 16 } + + iapMaxStationsHour OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of associated stations over last hour" + ::= { iapEntry 17 } + + iapMaxStationsDay OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of associated stations over last day" + ::= { iapEntry 18 } + + iapMaxStationsWeek OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of associated stations over last week" + ::= { iapEntry 19 } + + iapMaxStationsMonth OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of associated stations over last month" + ::= { iapEntry 20 } + + iapMaxStationsYear OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Maximum number of associated stations over last year" + ::= { iapEntry 21 } + + iapChannelMode OBJECT-TYPE + SYNTAX INTEGER { default(0), manual(1), auto(2), radar(3), + locked(4), monitor(5), timeshare(6) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Channel mode (on set, use 4 to lock, 0 to unlock channel)" + ::= { iapEntry 22 } + + iapWifiMode OBJECT-TYPE + SYNTAX INTEGER { dot11a(1), dot11b(2), dot11ab(3), dot11g(4), + dot11ag(5), dot11bg(6), dot11abg(7), dot11n(8), + dot11an(9), dot11bn(10), dot11abn(11), dot11gn(12), + dot11agn(13), dot11bgn(14), dot11abgn(15), + dot11ac(16), dot11nac(24), dot11anac(25), dot11abgnac(31) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Wifi mode" + ::= { iapEntry 23 } + + iapPresent OBJECT-TYPE + SYNTAX INTEGER { not-present(0), present(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Indicates whether IAP slot is populated" + ::= { iapEntry 24 } + + iapWdsLinkDistance OBJECT-TYPE + SYNTAX Integer32(0..30) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "WDS link distance (in miles)" + ::= { iapEntry 25 } + + iapResetsMonitor OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of monitor radio resets" + ::= { iapEntry 26 } + + iapResetsBeacon OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of interface beacon resets" + ::= { iapEntry 27 } + + iapResetsPhy OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of interface PHY resets" + ::= { iapEntry 28 } + + iapResetsMac OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of interface MAC resets" + ::= { iapEntry 29 } + + iapResetsSystem OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of system resets" + ::= { iapEntry 30 } + + iapSpatialStreams OBJECT-TYPE + SYNTAX INTEGER { not-present(0), type-1x1(1), type-2x2(2), type-2x3(3), type-3x3(4) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of spatial streams on the IAP" + ::= { iapEntry 31 } + + iapChannelBond80Mhz OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Channel bonding 80Mhz setting" + ::= { iapEntry 32 } + + iapBondedChannelList OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IAP Bonded Channel List" + ::= { iapEntry 33 } + + iapType OBJECT-TYPE + SYNTAX INTEGER { not-present(0), unknown(1), dot11abgn(2), dot11abgnac(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IAP type" + ::= { iapEntry 34 } + + global OBJECT IDENTIFIER ::= { iap 2 } + global11a OBJECT IDENTIFIER ::= { iap 3 } + global11bg OBJECT IDENTIFIER ::= { iap 4 } + wds OBJECT IDENTIFIER ::= { iap 5 } + global11n OBJECT IDENTIFIER ::= { iap 6 } + global11ac OBJECT IDENTIFIER ::= { iap 8 } + +-- +-- INTERFACE IAP GLOBAL +-- + + globalIAPEnable OBJECT-TYPE + SYNTAX INTEGER { all-down(0), all-up(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Bring all IAPs up or down" + ::= { global 1 } + + globalIAPCellSize OBJECT-TYPE + SYNTAX INTEGER { none(0), small(1), medium(2), large(3), + max(4), auto(5), monitor(6) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set up RF cell size base on Tx pwr and Rx Threshold" + ::= { global 2 } + + globalIAPTxPwr OBJECT-TYPE + SYNTAX Integer32(-15..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum Tx power output from any radio" + ::= { global 3 } + + globalIAPRxThreshold OBJECT-TYPE + SYNTAX Integer32(-100..0) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Rx (deferred) threshold setting" + ::= { global 4 } + + globalIAPBeaconRate OBJECT-TYPE + SYNTAX Integer32(100..1000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time between beacons in kilo_microseconds" + ::= { global 5 } + + globalIAPBeaconDTIM OBJECT-TYPE + SYNTAX Integer32(1..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of beacons between DTIM being transmitted" + ::= { global 6 } + + globalIAPLongRetry OBJECT-TYPE + SYNTAX Integer32(1..128) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Long retry" + ::= { global 7 } + + globalIAPShortRetry OBJECT-TYPE + SYNTAX Integer32(1..128) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Short retry" + ::= { global 8 } + + globalIAPMaxStations OBJECT-TYPE + SYNTAX Integer32(1..240) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Limit the number of STA that can be associated per IAP" + ::= { global 9 } + + globalIAPInactiveTime OBJECT-TYPE + SYNTAX Integer32(1..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time, in seconds, without any activity before removing the client from the association table" + ::= { global 10 } + + globalIAPReauthPeriod OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time (sec) between 802.1x re_authentication attempts" + ::= { global 11 } + + globalIAPSta2Sta OBJECT-TYPE + SYNTAX INTEGER { forward(0), block(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Block or forward intra-Array STA to STA traffic" + ::= { global 12 } + + globalMgmt OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable management on the WLAN interfaces" + ::= { global 13 } + + leds OBJECT IDENTIFIER ::= { global 14 } + autoChannel OBJECT IDENTIFIER ::= { global 15 } + rogueDetect OBJECT IDENTIFIER ::= { global 16 } + fastRoaming OBJECT IDENTIFIER ::= { global 17 } + autoCell OBJECT IDENTIFIER ::= { global 24 } + ids OBJECT IDENTIFIER ::= { global 33 } + rfMonitor OBJECT IDENTIFIER ::= { global 40 } + + globalLoadBalancing OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable load balancing across IAPs" + ::= { global 18 } + + globalCountryCode OBJECT-TYPE + SYNTAX INTEGER { not-set(0), united-states(1), canada(2), + australia(3), new-zealand(4), austria(5), + belgium(6), denmark(7), finland(8), + france(9), germany(10), hungary(11), + ireland(12), italy(13), luxembourg(14), + netherlands(15), norway(16), poland(17), + portugal(18), slovenia(19), spain(20), + sweden(21), switzerland(22), united-kingdom(23), + japan(24), united-states-ext(25), mexico(26), + thailand(27), greece(28), israel(29), + south-africa(30), brazil(31), india(32), + singapore(33), malaysia(34), korea(35), + hong-kong(36), china(37), macao (38), + united-states-outdoor (39), united-status-weather-radar (40), + russia (41), united-states-non-dfs (42), + united-arab-emirates (43), argentina (44), bahrain (45), + brunei (46), bahamas (47), chile (48), + columbia (49), dominican-republic (50), egypt (51), + indonesia (52), kuwait (53), lebanon (54), + oman (55), peru (56), philippines (57), + qatar (58), saudi-arabia (59), taiwan (60), + turkey (61), trinidad (62), ukraine (63), + venezuela (64) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Country code" + ::= { global 19 } + + globalSharpCell OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable sharp cell TX power shaping" + ::= { global 20 } + + globalIAPMaxPhones OBJECT-TYPE + SYNTAX Integer32(0..16) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Limit the number of phones that can be associated per IAP. Note this is not used and essentially deprecated." + ::= { global 21 } + + globalNumStations OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of stations associated with array" + ::= { global 22 } + + globalBroadcastRates OBJECT-TYPE + SYNTAX INTEGER { standard(0), optimized(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Select standard or optimized broadcast rates" + ::= { global 23 } + + globalPublicSafety OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable public safety band" + ::= { global 25 } + + globalDot11hSupport OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable support for 802.11h beacons" + ::= { global 26 } + + globalLoopbackTest OBJECT-TYPE + SYNTAX INTEGER { disabled(0), alert-only(1), + repair-without-reboot(2), reboot-allowed(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "IAP radio assurance mode" + ::= { global 27 } + + globalArpFilter OBJECT-TYPE + SYNTAX INTEGER { disable(0), passthru(1), proxy(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable ARP filtering" + ::= { global 28 } + + globalIAPChannelReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset all channels back to factory defaults" + ::= { global 29 } + + globalWfaMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable WiFi Alliance mode" + ::= { global 30 } + + globalMaxStations OBJECT-TYPE + SYNTAX Integer32(1..3840) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum number of associated stations per array" + ::= { global 31 } + + globalMulticastMode OBJECT-TYPE + SYNTAX INTEGER { standard(0), convert(1), snoop(2), prune(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Select multicast mode" + ::= { global 32 } + + globalAutoBandEnable OBJECT-TYPE + SYNTAX INTEGER { enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Automatically assign bands (2.4GHz or 5GHz) to all IAPs" + ::= { global 34 } + + globalWmmPowerSave OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable WMM power save mode" + ::= { global 35 } + + globalDscpMappingMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable DSCP to QoS mapping" + ::= { global 36 } + + globalDscpMappingTable OBJECT-TYPE + SYNTAX SEQUENCE OF GlobalDscpMappingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "DSCP to QoS mapping" + ::= { global 37 } + + globalDscpMappingEntry OBJECT-TYPE + SYNTAX GlobalDscpMappingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "DSCP to QoS mapping entry" + INDEX { globalDscpMappingIndex } + ::= { globalDscpMappingTable 1 } + + GlobalDscpMappingEntry ::= SEQUENCE { + globalDscpMappingIndex Integer32, + globalDscpMappingDscp Integer32, + globalDscpMappingQos Integer32 + } + + globalDscpMappingIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "DSCP to QoS mapping index" + ::= { globalDscpMappingEntry 1 } + + globalDscpMappingDscp OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "DSCP value mapped" + ::= { globalDscpMappingEntry 2 } + + globalDscpMappingQos OBJECT-TYPE + SYNTAX Integer32(0..3) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "QoS setting" + ::= { globalDscpMappingEntry 3 } + + globalMulticastExcludeTable OBJECT-TYPE + SYNTAX SEQUENCE OF GlobalMulticastExcludeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast conversion exclude list" + ::= { global 38 } + + globalMulticastExcludeEntry OBJECT-TYPE + SYNTAX GlobalMulticastExcludeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast conversion exclude list entry" + INDEX { globalMulticastExcludeIndex } + ::= { globalMulticastExcludeTable 1 } + + GlobalMulticastExcludeEntry ::= SEQUENCE { + globalMulticastExcludeIndex Integer32, + globalMulticastExcludeIpAddress IpAddress, + globalMulticastExcludeRowStatus RowStatus + } + + globalMulticastExcludeIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast conversion exclude list Index" + ::= { globalMulticastExcludeEntry 1 } + + globalMulticastExcludeIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Multicast IP address excluded from conversion" + ::= { globalMulticastExcludeEntry 2 } + + globalMulticastExcludeRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the multicast conversion exclude list row entry" + ::= { globalMulticastExcludeEntry 3 } + + globalMulticastExcludeTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset multicast conversion exclude list" + ::= { global 39 } + + globalExtractStaInfoTable OBJECT-TYPE + SYNTAX SEQUENCE OF GlobalExtractStaInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station information to be extracted table" + ::= { global 41 } + + globalExtractStaInfoEntry OBJECT-TYPE + SYNTAX GlobalExtractStaInfoEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station information to be extracted table entry" + INDEX { globalExtractStaInfoIndex } + ::= { globalExtractStaInfoTable 1 } + + GlobalExtractStaInfoEntry ::= SEQUENCE { + globalExtractStaInfoIndex Integer32, + globalExtractStaInfoType DisplayString, + globalExtractStaInfoStatus INTEGER + } + + globalExtractStaInfoIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station information to be extracted table index" + ::= { globalExtractStaInfoEntry 1 } + + globalExtractStaInfoType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Type of station information to be extracted" + ::= { globalExtractStaInfoEntry 2 } + + globalExtractStaInfoStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable station information to be extracted" + ::= { globalExtractStaInfoEntry 3 } + + globalStaAuthTimeout OBJECT-TYPE + SYNTAX Integer32(60..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time to complete 802.1x authentication (seconds)" + ::= { global 42 } + + globalIPv6Filter OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable IPv6 packet filtering" + ::= { global 43 } + + globalMulticastForwardingTable OBJECT-TYPE + SYNTAX SEQUENCE OF GlobalMulticastForwardingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast conversion forwarding list" + ::= { global 44 } + + globalMulticastForwardingEntry OBJECT-TYPE + SYNTAX GlobalMulticastForwardingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast conversion forwarding list entry" + INDEX { globalMulticastForwardingIndex } + ::= { globalMulticastForwardingTable 1 } + + GlobalMulticastForwardingEntry ::= SEQUENCE { + globalMulticastForwardingIndex Integer32, + globalMulticastForwardingIpAddress IpAddress, + globalMulticastForwardingRowStatus RowStatus + } + + globalMulticastForwardingIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast conversion forwarding list Index" + ::= { globalMulticastForwardingEntry 1 } + + globalMulticastForwardingIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Multicast IP address forwarding from conversion" + ::= { globalMulticastForwardingEntry 2 } + + globalMulticastForwardingRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the multicast conversion forwarding list row entry" + ::= { globalMulticastForwardingEntry 3 } + + globalMulticastForwardingTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset multicast conversion forwarding list" + ::= { global 45 } + + globalMulticastVlanForwardingTable OBJECT-TYPE + SYNTAX SEQUENCE OF GlobalMulticastVlanForwardingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast conversion vlan forwarding list" + ::= { global 46 } + + globalMulticastVlanForwardingEntry OBJECT-TYPE + SYNTAX GlobalMulticastVlanForwardingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast conversion vlan forwarding list entry" + INDEX { globalMulticastVlanForwardingIndex } + ::= { globalMulticastVlanForwardingTable 1 } + + GlobalMulticastVlanForwardingEntry ::= SEQUENCE { + globalMulticastVlanForwardingIndex Integer32, + globalMulticastVlanForwardingVlanNumber Integer32, + globalMulticastVlanForwardingRowStatus RowStatus + } + + globalMulticastVlanForwardingIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast conversion vlan forwarding list Index" + ::= { globalMulticastVlanForwardingEntry 1 } + + globalMulticastVlanForwardingVlanNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Multicast IP vlan forwarding from conversion" + ::= { globalMulticastVlanForwardingEntry 2 } + + globalMulticastVlanForwardingRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the multicast conversion vlan forwarding list row entry" + ::= { globalMulticastVlanForwardingEntry 3 } + + globalMulticastVlanForwardingTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset multicast conversion vlan forwarding list" + ::= { global 47 } + + globalMulticastDnsFilteringTable OBJECT-TYPE + SYNTAX SEQUENCE OF GlobalMulticastDnsFilteringEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast DNS filtering list" + ::= { global 48 } + + globalMulticastDnsFilteringEntry OBJECT-TYPE + SYNTAX GlobalMulticastDnsFilteringEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast DNS filtering list entry" + INDEX { globalMulticastDnsFilteringIndex } + ::= { globalMulticastDnsFilteringTable 1 } + + GlobalMulticastDnsFilteringEntry ::= SEQUENCE { + globalMulticastDnsFilteringIndex Integer32, + globalMulticastDnsFilteringName DisplayString, + globalMulticastDnsFilteringRowStatus RowStatus + } + + globalMulticastDnsFilteringIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Multicast DNS filtering list Index" + ::= { globalMulticastDnsFilteringEntry 1 } + + globalMulticastDnsFilteringName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..24)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Multicast DNS filtering list" + ::= { globalMulticastDnsFilteringEntry 2 } + + globalMulticastDnsFilteringRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the multicast DNS filtering list row entry" + ::= { globalMulticastDnsFilteringEntry 3 } + + globalMulticastDnsFilteringTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset multicast DNS filtering list" + ::= { global 49 } + + globalDot11kSupport OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable support for 802.11k beacons" + ::= { global 50 } + + globalDot11wProtectedManagement OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable support for 802.11w Protected Management" + ::= { global 51 } + + globalExtractIpAddrDhcpPeriod OBJECT-TYPE + SYNTAX Integer32(0..300) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Station IP address extraction via DHCP period" + ::= { global 52 } + +-- +-- INTERFACE IAP GLOBAL LEDS +-- + + ledsEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), iapUp(1), associated(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/Disable LED operations" + ::= { leds 1 } + + ledsActivityTable OBJECT-TYPE + SYNTAX SEQUENCE OF LedsActivityEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "LED activity table" + ::= { leds 2 } + + ledsActivityEntry OBJECT-TYPE + SYNTAX LedsActivityEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "LED activity table entry" + INDEX { ledsActivityIndex } + ::= { ledsActivityTable 1 } + + LedsActivityEntry ::= SEQUENCE { + ledsActivityIndex Integer32, + ledsActivityPacketType DisplayString, + ledsActivityStatus INTEGER + } + + ledsActivityIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "LED activity table index" + ::= { ledsActivityEntry 1 } + + ledsActivityPacketType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packet type" + ::= { ledsActivityEntry 2 } + + ledsActivityStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable blinking" + ::= { ledsActivityEntry 3 } + +-- +-- INTERFACE IAP GLOBAL AUTO CHANNEL +-- + + autoChannelEnable OBJECT-TYPE + SYNTAX INTEGER { enable(1), negotiate(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set to 1 to enable auto channel configuration, 2 to negotiate airtime with other arrays before enabling auto channel configuration" + ::= { autoChannel 1 } + + autoChannelPowerUp OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable auto channel configuration at power up" + ::= { autoChannel 2 } + + autoChannelSchedule OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Times to run auto channel in 'hh:mm hh:mm ...' format" + ::= { autoChannel 3 } + +-- +-- INTERFACE IAP GLOBAL ROGUE DETECT +-- + + rogueDetectEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), standard(1), advanced(2), + standard-auto-block(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable rogue AP detection" + ::= { rogueDetect 1 } + + rogueDetectSSIDTable OBJECT-TYPE + SYNTAX SEQUENCE OF RogueDetectSSIDEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue detect SSID table for the Array" + ::= { rogueDetect 2 } + + rogueDetectSSIDEntry OBJECT-TYPE + SYNTAX RogueDetectSSIDEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue detect SSID table entry" + INDEX { rogueDetectSSIDIndex } + ::= { rogueDetectSSIDTable 1 } + + RogueDetectSSIDEntry ::= SEQUENCE { + rogueDetectSSIDIndex Integer32, + rogueDetectSSIDName DisplayString, + rogueDetectSSIDStatus INTEGER, + rogueDetectSSIDRowStatus RowStatus, + rogueDetectSSIDMatch INTEGER + } + + rogueDetectSSIDIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue detect SSID table index" + ::= { rogueDetectSSIDEntry 1 } + + rogueDetectSSIDName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID" + ::= { rogueDetectSSIDEntry 2 } + + rogueDetectSSIDStatus OBJECT-TYPE + SYNTAX INTEGER { known(1), approved(2), blocked(3) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID status" + ::= { rogueDetectSSIDEntry 3 } + + rogueDetectSSIDRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the rogue detect SSID table row entry" + ::= { rogueDetectSSIDEntry 4 } + + rogueDetectSSIDMatch OBJECT-TYPE + SYNTAX INTEGER { bssid-or-ssid(0), bssid(1), ssid(2), manufacturer(3) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID match" + ::= { rogueDetectSSIDEntry 5 } + + rogueDetectAPTable OBJECT-TYPE + SYNTAX SEQUENCE OF RogueDetectAPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of rogue AP's" + ::= { rogueDetect 3 } + + rogueDetectAPEntry OBJECT-TYPE + SYNTAX RogueDetectAPEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue AP table entry" + INDEX { rogueDetectAPIndex } + ::= { rogueDetectAPTable 1 } + + RogueDetectAPEntry ::= SEQUENCE { + rogueDetectAPIndex Integer32, + rogueDetectAPStatus INTEGER, + rogueDetectAPSSID DisplayString, + rogueDetectAPBSSID DisplayString, + rogueDetectAPManufacturer DisplayString, + rogueDetectAPChannel Integer32, + rogueDetectAPRSSI Integer32, + rogueDetectAPSecurity DisplayString, + rogueDetectAPIPAddress DisplayString, + rogueDetectAPTimeDiscovered DisplayString, + rogueDetectAPTimeLastActive DisplayString, + rogueDetectAPType INTEGER + } + + rogueDetectAPIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue AP index" + ::= { rogueDetectAPEntry 1 } + + rogueDetectAPStatus OBJECT-TYPE + SYNTAX INTEGER { unknown(0), known(1), approved(2), blocked(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP status" + ::= { rogueDetectAPEntry 2 } + + rogueDetectAPSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP SSID" + ::= { rogueDetectAPEntry 3 } + + rogueDetectAPBSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP BSSID" + ::= { rogueDetectAPEntry 4 } + + rogueDetectAPManufacturer OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP manufacturer" + ::= { rogueDetectAPEntry 5 } + + rogueDetectAPChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP channel" + ::= { rogueDetectAPEntry 6 } + + rogueDetectAPRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP RSSI" + ::= { rogueDetectAPEntry 7 } + + rogueDetectAPSecurity OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP security" + ::= { rogueDetectAPEntry 8 } + + rogueDetectAPIPAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP IP Address" + ::= { rogueDetectAPEntry 9 } + + rogueDetectAPTimeDiscovered OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP time discovered" + ::= { rogueDetectAPEntry 10 } + + rogueDetectAPTimeLastActive OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP IP time last active" + ::= { rogueDetectAPEntry 11 } + + rogueDetectAPType OBJECT-TYPE + SYNTAX INTEGER { ibss(1), ess(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP type" + ::= { rogueDetectAPEntry 12 } + + rogueDetectSSIDTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset rogue detect SSID table (clear all entries)" + ::= { rogueDetect 4 } + + rogueDetectAPOrigTable OBJECT-TYPE + SYNTAX SEQUENCE OF RogueDetectAPOrigTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of rogue AP's (original)" + ::= { rogueDetect 5 } + + rogueDetectAPOrigTableEntry OBJECT-TYPE + SYNTAX RogueDetectAPOrigTableEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue AP original table entry" + INDEX { rogueDetectAPOrigTableIndex } + ::= { rogueDetectAPOrigTable 1 } + + RogueDetectAPOrigTableEntry ::= SEQUENCE { + rogueDetectAPOrigTableIndex Integer32, + rogueDetectAPOrigTableSSID DisplayString, + rogueDetectAPOrigTableBSSID DisplayString, + rogueDetectAPOrigTableManufacturer DisplayString, + rogueDetectAPOrigTableChannel Integer32, + rogueDetectAPOrigTableBand INTEGER, + rogueDetectAPOrigTableRSSI Integer32, + rogueDetectAPOrigTableSecurity DisplayString, + rogueDetectAPOrigTableIPAddress DisplayString, + rogueDetectAPOrigTableTimeDiscovered Counter32, + rogueDetectAPOrigTableTimeLastActive Counter32, + rogueDetectAPOrigTableActive INTEGER, + rogueDetectAPOrigTableType INTEGER + } + + rogueDetectAPOrigTableIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue AP index" + ::= { rogueDetectAPOrigTableEntry 1 } + + rogueDetectAPOrigTableSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP SSID" + ::= { rogueDetectAPOrigTableEntry 2 } + + rogueDetectAPOrigTableBSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP BSSID" + ::= { rogueDetectAPOrigTableEntry 3 } + + rogueDetectAPOrigTableManufacturer OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP manufacturer" + ::= { rogueDetectAPOrigTableEntry 4 } + + rogueDetectAPOrigTableChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP channel" + ::= { rogueDetectAPOrigTableEntry 5 } + + rogueDetectAPOrigTableBand OBJECT-TYPE + SYNTAX INTEGER { dot11a(1), dot11g(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP 802.11 band" + ::= { rogueDetectAPOrigTableEntry 6 } + + rogueDetectAPOrigTableRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP RSSI" + ::= { rogueDetectAPOrigTableEntry 7 } + + rogueDetectAPOrigTableSecurity OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP security" + ::= { rogueDetectAPOrigTableEntry 8 } + + rogueDetectAPOrigTableIPAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP IP Address" + ::= { rogueDetectAPOrigTableEntry 9 } + + rogueDetectAPOrigTableTimeDiscovered OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP time discovered" + ::= { rogueDetectAPOrigTableEntry 10 } + + rogueDetectAPOrigTableTimeLastActive OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP IP time last active" + ::= { rogueDetectAPOrigTableEntry 11 } + + rogueDetectAPOrigTableActive OBJECT-TYPE + SYNTAX INTEGER { active(1), not-active(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Is Rogue AP active?" + ::= { rogueDetectAPOrigTableEntry 12 } + + rogueDetectAPOrigTableType OBJECT-TYPE + SYNTAX INTEGER { ibss(1), ess(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rogue AP type" + ::= { rogueDetectAPOrigTableEntry 13 } + + rogueDetectAutoBlockEnc OBJECT-TYPE + SYNTAX INTEGER { none(0), wep-and-none(1), all(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Encryption type for automatic blocking of unknown rogue APs" + ::= { rogueDetect 6 } + + rogueDetectAutoBlockRSSI OBJECT-TYPE + SYNTAX Integer32(-95..-50) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Minimum RSSI value for automatic blocking of unknown rogue APs" + ::= { rogueDetect 7 } + + rogueDetectAutoBlockType OBJECT-TYPE + SYNTAX INTEGER { all(0), ibss(1), ess(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Type of rogue AP networks to automatically block" + ::= { rogueDetect 8 } + + rogueDetectAPOrigTablePeriod OBJECT-TYPE + SYNTAX Counter32(0..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify period for rogue AP table entries (in seconds, 0 - all table entries)" + ::= { rogueDetect 9 } + + rogueDetectAutoBlockWhitelistTable OBJECT-TYPE + SYNTAX SEQUENCE OF RogueDetectAutoBlockWhitelistEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue AP Auto Block channel whitelist" + ::= { rogueDetect 10 } + + rogueDetectAutoBlockWhitelistEntry OBJECT-TYPE + SYNTAX RogueDetectAutoBlockWhitelistEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue AP Auto Block channel whitelist entry" + INDEX { rogueDetectAutoBlockWhitelistIndex } + ::= { rogueDetectAutoBlockWhitelistTable 1 } + + RogueDetectAutoBlockWhitelistEntry ::= SEQUENCE { + rogueDetectAutoBlockWhitelistIndex Integer32, + rogueDetectAutoBlockWhitelistChannel Integer32, + rogueDetectAutoBlockWhitelistRowStatus RowStatus + } + + rogueDetectAutoBlockWhitelistIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rogue AP Auto Block channel whitelist Index" + ::= { rogueDetectAutoBlockWhitelistEntry 1 } + + rogueDetectAutoBlockWhitelistChannel OBJECT-TYPE + SYNTAX Integer32(1..255) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Rogue AP Auto Block channel whitelist channel" + ::= { rogueDetectAutoBlockWhitelistEntry 2 } + + rogueDetectAutoBlockWhitelistRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the Rogue AP Auto Block channel whitelist row entry" + ::= { rogueDetectAutoBlockWhitelistEntry 3 } + + rogueDetectAutoBlockWhitelistTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset Rogue AP Auto Block channel whitelist" + ::= { rogueDetect 11 } + +-- +-- INTERFACE IAP GLOBAL FAST ROAMING +-- + + fastRoamingEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), broadcast(1), tunnel(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable fast roaming" + ::= { fastRoaming 1 } + + fastRoamingPeerMode OBJECT-TYPE + SYNTAX INTEGER { target-only(0), in-range(1), all(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set fast roaming peer mode" + ::= { fastRoaming 2 } + + fastRoamingTargetArrayTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset fast roaming target array table (clear all entries)" + ::= { fastRoaming 3 } + + fastRoamingLayer OBJECT-TYPE + SYNTAX INTEGER { layer-2-only(0), layer-2-and-3(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set fast roaming layer" + ::= { fastRoaming 5 } + + fastRoamingTargetTable OBJECT-TYPE + SYNTAX SEQUENCE OF FastRoamingTargetEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Fast roaming target array table" + ::= { fastRoaming 6 } + + fastRoamingTargetEntry OBJECT-TYPE + SYNTAX FastRoamingTargetEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Fast roaming target array table entry" + INDEX { fastRoamingTargetIndex } + ::= { fastRoamingTargetTable 1 } + + FastRoamingTargetEntry ::= SEQUENCE { + fastRoamingTargetIndex Integer32, + fastRoamingTargetType INTEGER, + fastRoamingTargetMacAddress DisplayString, + fastRoamingTargetIpAddress IpAddress, + fastRoamingTargetHostname DisplayString, + fastRoamingTargetRowStatus RowStatus + } + + fastRoamingTargetIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Fast roaming target array table index" + ::= { fastRoamingTargetEntry 1 } + + fastRoamingTargetType OBJECT-TYPE + SYNTAX INTEGER { mac(0), ip(1), hostname(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Type of the fast roaming target array table row entry" + ::= { fastRoamingTargetEntry 2 } + + fastRoamingTargetMacAddress OBJECT-TYPE + SYNTAX DisplayString(SIZE(12..17)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Base IAP MAC address of the target array" + ::= { fastRoamingTargetEntry 3 } + + fastRoamingTargetIpAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "IP address of the target array" + ::= { fastRoamingTargetEntry 4 } + + fastRoamingTargetHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(1.. 255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Hostname of the target array" + ::= { fastRoamingTargetEntry 5 } + + fastRoamingTargetRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the fast roaming target array table row entry" + ::= { fastRoamingTargetEntry 6 } + +-- +-- INTERFACE IAP GLOBAL AUTO CELL +-- + + autoCellEnable OBJECT-TYPE + SYNTAX INTEGER { enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable auto cell size configuration" + ::= { autoCell 1 } + + autoCellOverlap OBJECT-TYPE + SYNTAX Integer32(0..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set auto cell size overlap (in percents)" + ::= { autoCell 2 } + + autoCellPeriod OBJECT-TYPE + SYNTAX Integer32(0..3000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set period to run auto cell size assignment (in seconds from 60 to 3000000, 0 - none)" + ::= { autoCell 3 } + + autoCellMinTxPwr OBJECT-TYPE + SYNTAX Integer32(-15..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set auto cell size minimum Tx power" + ::= { autoCell 4 } + +-- +-- INTERFACE IAP GLOBAL IDS +-- + + idsEventTable OBJECT-TYPE + SYNTAX SEQUENCE OF IdsEventEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "IDS event table" + ::= { ids 1 } + + idsEventEntry OBJECT-TYPE + SYNTAX IdsEventEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "IDS event table entry" + INDEX { idsEventIndex } + ::= { idsEventTable 1 } + + IdsEventEntry ::= SEQUENCE { + idsEventIndex Integer32, + idsEventId INTEGER, + idsEventTime DisplayString, + idsEventTimestamp Counter32, + idsEventIAP DisplayString, + idsEventChannel Integer32, + idsEventPeriod Counter32, + idsEventCurPackets Counter32, + idsEventAvgPackets Counter32, + idsEventMaxPackets Counter32, + idsEventMacAddress DisplayString, + idsEventSSID DisplayString + } + + idsEventIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "IDS event index" + ::= { idsEventEntry 1 } + + idsEventId OBJECT-TYPE + SYNTAX INTEGER { beacon-flood(1), probe-req-flood(2), auth-flood(3), + assoc-flood(4), disassoc-flood(5), deauth-flood(6), + eap-flood(7), ap-impersonation(8), disassoc-attack(9), + deauth-attack(10), duration-attack(11), mic-error-attack(12), + null-probe-resp(13), seq-num-anomaly(14), sta-impersonation(15), + sta-broadcast(16), evil-twin-attack(17), rf-jamming(18) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IDS event detected" + ::= { idsEventEntry 2 } + + idsEventTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IDS event detection time" + ::= { idsEventEntry 3 } + + idsEventTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IDS event detection time (in seconds)" + ::= { idsEventEntry 4 } + + idsEventIAP OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IAP IDS event was detected on" + ::= { idsEventEntry 5 } + + idsEventChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Channel IDS event was detected on" + ::= { idsEventEntry 6 } + + idsEventPeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IDS event detection time period (in seconds)" + ::= { idsEventEntry 7 } + + idsEventCurPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IDS event current number of packets received" + ::= { idsEventEntry 8 } + + idsEventAvgPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IDS event average number of packets received" + ::= { idsEventEntry 9 } + + idsEventMaxPackets OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IDS event maximum number of packets received" + ::= { idsEventEntry 10 } + + idsEventMacAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IDS event MAC address" + ::= { idsEventEntry 11 } + + idsEventSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IDS event SSID" + ::= { idsEventEntry 12 } + + idsDosAttack OBJECT IDENTIFIER ::= { ids 2 } + idsImpersonation OBJECT IDENTIFIER ::= { ids 3 } + +-- +-- INTERFACE IAP GLOBAL IDS DOS ATTACK +-- + + idsBeaconFloodMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), manual(1), auto(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Beacon flood detection mode" + ::= { idsDosAttack 1 } + + idsBeaconFloodThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of packets received in a period of time to trigger beacon flood detection" + ::= { idsDosAttack 2 } + + idsBeaconFloodPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for beacon flood detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 3 } + + idsProbeReqFloodMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), manual(1), auto(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Probe request flood detection mode" + ::= { idsDosAttack 4 } + + idsProbeReqFloodThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of packets received in a period of time to trigger probe request flood detection" + ::= { idsDosAttack 5 } + + idsProbeReqFloodPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for probe request flood detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 6 } + + idsAuthFloodMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), manual(1), auto(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Authentication flood detection mode" + ::= { idsDosAttack 7 } + + idsAuthFloodThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of packets received in a period of time to trigger authentication flood detection" + ::= { idsDosAttack 8 } + + idsAuthFloodPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for authentication flood detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 9 } + + idsAssocFloodMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), manual(1), auto(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Association flood detection mode" + ::= { idsDosAttack 10 } + + idsAssocFloodThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of packets received in a period of time to trigger association flood detection" + ::= { idsDosAttack 11 } + + idsAssocFloodPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for association flood detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 12 } + + idsDisassocFloodMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), manual(1), auto(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Disassociation flood detection mode" + ::= { idsDosAttack 13 } + + idsDisassocFloodThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of packets received in a period of time to trigger disassociation flood detection" + ::= { idsDosAttack 14 } + + idsDisassocFloodPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for disassociation flood detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 15 } + + idsDeauthFloodMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), manual(1), auto(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Deauthentication flood detection mode" + ::= { idsDosAttack 16 } + + idsDeauthFloodThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of packets received in a period of time to trigger deauthentication flood detection" + ::= { idsDosAttack 17 } + + idsDeauthFloodPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for deauthentication flood detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 18 } + + idsEAPFloodMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), manual(1), auto(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "EAP flood detection mode" + ::= { idsDosAttack 19 } + + idsEAPFloodThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of packets received in a period of time to trigger EAP flood detection" + ::= { idsDosAttack 20 } + + idsEAPFloodPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for EAP flood detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 21 } + + idsNullProbeRespEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable null probe response detection" + ::= { idsDosAttack 22 } + + idsNullProbeRespThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of packets received in a period of time to trigger null probe response detection" + ::= { idsDosAttack 23 } + + idsNullProbeRespPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for null probe response detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 24 } + + idsMICErrorAttackEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable MIC error attack detection" + ::= { idsDosAttack 25 } + + idsMICErrorAttackThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of errors captured in a period of time to trigger MIC error attack detection" + ::= { idsDosAttack 26 } + + idsMICErrorAttackPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for MIC error attack detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 27 } + + idsDisassocAttackEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable disassociation attack detection" + ::= { idsDosAttack 28 } + + idsDisassocAttackThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of spoofed packets captured in a period of time to trigger disassociation attack detection" + ::= { idsDosAttack 29 } + + idsDisassocAttackPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for disassociation attack detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 30 } + + idsDeauthAttackEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable deauthentication attack detection" + ::= { idsDosAttack 31 } + + idsDeauthAttackThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of spoofed packets captured in a period of time to trigger deauthentication attack detection" + ::= { idsDosAttack 32 } + + idsDeauthAttackPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for deauthentication attack detection (in seconds, must be an increment of 10)" + ::= { idsDosAttack 33 } + + idsDurationAttackEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable duration attack detection" + ::= { idsDosAttack 34 } + + idsDurationAttackThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of bad NAV occurrences in a period of time to trigger duration attack detection" + ::= { idsDosAttack 35 } + + idsDurationAttackPeriod OBJECT-TYPE + SYNTAX Integer32(1..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for duration attack detection (in seconds)" + ::= { idsDosAttack 36 } + + idsDurationAttackNAV OBJECT-TYPE + SYNTAX Integer32(1..32767) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "NAV value to trigger duration attack detection" + ::= { idsDosAttack 37 } + +-- +-- INTERFACE IAP GLOBAL IDS IMPERSONATION +-- + + idsAPImpersonationEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable AP impersonation detection" + ::= { idsImpersonation 1 } + + idsAPImpersonationThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of spoofed packets captured in a period of time to trigger AP impersonation detection" + ::= { idsImpersonation 2 } + + idsAPImpersonationPeriod OBJECT-TYPE + SYNTAX Integer32(10..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for AP impersonation detection (in seconds, must be an increment of 10)" + ::= { idsImpersonation 3 } + + idsStationImpersonationEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable station impersonation detection" + ::= { idsImpersonation 4 } + + idsStationImpersonationThreshold OBJECT-TYPE + SYNTAX Integer32(1..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of events detected in a period of time to trigger station impersonation detection" + ::= { idsImpersonation 5 } + + idsStationImpersonationPeriod OBJECT-TYPE + SYNTAX Integer32(1..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time period for station impersonation detection (in seconds)" + ::= { idsImpersonation 6 } + + idsSeqNumAnomalyMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), mgmt(1), data(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Packet sequence number anomaly detection mode" + ::= { idsImpersonation 7 } + + idsEvilTwinAttackEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable evil twin attack detection" + ::= { idsImpersonation 8 } + + idsSeqNumAnomalyGap OBJECT-TYPE + SYNTAX Integer32(5..1000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Sequence number gap considered as a normal sequence number change" + ::= { idsImpersonation 9 } + + idsEventTablePeriod OBJECT-TYPE + SYNTAX Counter32(0..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify period for IDS event table entries (in seconds, 0 - all table entries)" + ::= { ids 4 } + +-- +-- INTERFACE IAP GLOBAL RF MONITOR +-- + + rfMonitorMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), dedicated(1), timeshare(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set RF monitor mode" + ::= { rfMonitor 1 } + + rfMonitorTimeshareScanInterval OBJECT-TYPE + SYNTAX Integer32(6..600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set RF monitor timeshare scanning interval (seconds between off channel scans)" + ::= { rfMonitor 2 } + + rfMonitorTimeshareStationThreshold OBJECT-TYPE + SYNTAX Integer32(0..240) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set RF monitor timeshare station threshold (station count above which scanning stops)" + ::= { rfMonitor 3 } + + rfMonitorTimeshareTrafficThreshold OBJECT-TYPE + SYNTAX Integer32(0..50000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set RF monitor timeshare traffic threshold (packets/second above which scanning stops)" + ::= { rfMonitor 4 } + +-- +-- INTERFACE IAP GLOBAL 11A +-- + + global11aIAPEnable OBJECT-TYPE + SYNTAX INTEGER { all-down(0), all-up(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Bring all IAPs up or down" + ::= { global11a 1 } + + global11aIAPCellSize OBJECT-TYPE + SYNTAX INTEGER { none(0), small(1), medium(2), large(3), + max(4), auto(5), monitor(6) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set up RF cell size base on Tx pwr and Rx Threshold" + ::= { global11a 2 } + + global11aIAPTxPwr OBJECT-TYPE + SYNTAX Integer32(-15..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum Tx power output from any radio" + ::= { global11a 3 } + + global11aIAPRxThreshold OBJECT-TYPE + SYNTAX Integer32(-100..0) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Rx (deferred) threshold setting" + ::= { global11a 4 } + + global11aIAPAutoChannelEnable OBJECT-TYPE + SYNTAX INTEGER { enable(1), negotiate(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set to 1 to enable auto channel configuration, 2 to negotiate airtime with other arrays before enabling auto channel configuration" + ::= { global11a 5 } + + global11aIAPFragThreshold OBJECT-TYPE + SYNTAX Integer32(256..2346) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Fragmentation threshold" + ::= { global11a 6 } + + global11aIAPRTSThreshold OBJECT-TYPE + SYNTAX Integer32(1..2347) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "RTS threshold" + ::= { global11a 7 } + + rates11a OBJECT IDENTIFIER ::= { global11a 8 } + + global11aIAPAutoCellEnable OBJECT-TYPE + SYNTAX INTEGER { enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable auto cell size configuration" + ::= { global11a 9 } + + autoChannelList11a OBJECT IDENTIFIER ::= { global11a 10 } + + global11aIAPChannelReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset all 5GHz channels back to factory defaults" + ::= { global11a 11 } + + global11aIAPAutoCellOverlap OBJECT-TYPE + SYNTAX Integer32(0..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set auto cell size overlap (in percents)" + ::= { global11a 12 } + + global11aIAPAutoCellPeriod OBJECT-TYPE + SYNTAX Integer32(0..3000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set period to run auto cell size assignment (in seconds from 60 to 3000000, 0 - none)" + ::= { global11a 13 } + + global11aIAPAutoCellMinTxPwr OBJECT-TYPE + SYNTAX Integer32(-15..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set auto cell size minimum Tx power" + ::= { global11a 14 } + + global11aIAPMaxStations OBJECT-TYPE + SYNTAX Integer32(1..3840) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum number of associated stations per array" + ::= { global11a 15 } + + global11aIAPMaxIapStations OBJECT-TYPE + SYNTAX Integer32(1..240) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum number of associated stations per IAP" + ::= { global11a 16 } + +-- +-- INTERFACE IAP GLOBAL 11A RATES +-- + + rates11aSet OBJECT-TYPE + SYNTAX INTEGER { default(1), optimize-range(2), + optimize-throughput(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set rates to a pre-defined set" + ::= { rates11a 1 } + + rates11aTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rates11aEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "802.11a Rates for the Array" + ::= { rates11a 2 } + + rates11aEntry OBJECT-TYPE + SYNTAX Rates11aEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rates table entry" + INDEX { rates11aIndex } + ::= { rates11aTable 1 } + + Rates11aEntry ::= SEQUENCE { + rates11aIndex Integer32, + rates11aRate DisplayString, + rates11aStatus INTEGER + } + + rates11aIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rates table index" + ::= { rates11aEntry 1 } + + rates11aRate OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "802.11a rate" + ::= { rates11aEntry 2 } + + rates11aStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), basic(1), supported(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "802.11a rate status" + ::= { rates11aEntry 3 } + +-- +-- INTERFACE IAP GLOBAL 11A AUTO CHANNEL LIST +-- + + autoChannelList11aSet OBJECT-TYPE + SYNTAX INTEGER { default(1), use-all(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set channel list to defaults or all available channels" + ::= { autoChannelList11a 1 } + + autoChannelList11aTable OBJECT-TYPE + SYNTAX SEQUENCE OF AutoChannelList11aEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "802.11a auto channel list" + ::= { autoChannelList11a 2 } + + autoChannelList11aEntry OBJECT-TYPE + SYNTAX AutoChannelList11aEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Auto channel list entry" + INDEX { autoChannelList11aIndex } + ::= { autoChannelList11aTable 1 } + + AutoChannelList11aEntry ::= SEQUENCE { + autoChannelList11aIndex Integer32, + autoChannelList11aChannel Integer32, + autoChannelList11aStatus INTEGER + } + + autoChannelList11aIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Auto channel list index" + ::= { autoChannelList11aEntry 1 } + + autoChannelList11aChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Channel number" + ::= { autoChannelList11aEntry 2 } + + autoChannelList11aStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Channel status" + ::= { autoChannelList11aEntry 3 } + +-- +-- INTERFACE IAP GLOBAL 11BG +-- + + global11bgIAPEnable OBJECT-TYPE + SYNTAX INTEGER { all-down(0), all-up(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Bring all IAPs up or down" + ::= { global11bg 1 } + + global11bgIAPCellSize OBJECT-TYPE + SYNTAX INTEGER { none(0), small(1), medium(2), large(3), + max(4), auto(5), monitor(6) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set up RF cell size base on Tx pwr and Rx Threshold" + ::= { global11bg 2 } + + global11bgIAPTxPwr OBJECT-TYPE + SYNTAX Integer32(-15..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum Tx power output from any radio" + ::= { global11bg 3 } + + global11bgIAPRxThreshold OBJECT-TYPE + SYNTAX Integer32(-100..0) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Rx (deferred) threshold setting" + ::= { global11bg 4 } + + global11bgIAPAutoChannelEnable OBJECT-TYPE + SYNTAX INTEGER { enable(1), negotiate(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set to 1 to enable auto channel configuration, 2 to negotiate airtime with other arrays before enabling auto channel configuration" + ::= { global11bg 5 } + + global11bgIAPFragThreshold OBJECT-TYPE + SYNTAX Integer32(256..2346) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Fragmentation threshold" + ::= { global11bg 6 } + + global11bgIAPRTSThreshold OBJECT-TYPE + SYNTAX Integer32(1..2347) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "RTS threshold" + ::= { global11bg 7 } + + global11bgIAPgOnly OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable 802.11g only mode" + ::= { global11bg 8 } + + global11bgIAPgProtect OBJECT-TYPE + SYNTAX INTEGER { disable(0), auto-cts(1), auto-rts(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable automatic 802.11g protection" + ::= { global11bg 9 } + + global11bgIAPPreamble OBJECT-TYPE + SYNTAX INTEGER { long-only(0), auto-length(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set preamble" + ::= { global11bg 10 } + + global11bgIAPSlotTime OBJECT-TYPE + SYNTAX INTEGER { auto-time(0), short-only(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set slot time" + ::= { global11bg 11 } + + rates11bg OBJECT IDENTIFIER ::= { global11bg 12 } + + global11bgIAPAutoCellEnable OBJECT-TYPE + SYNTAX INTEGER { enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable auto cell size configuration" + ::= { global11bg 13 } + + autoChannelList11bg OBJECT IDENTIFIER ::= { global11bg 14 } + + global11bgIAPChannelReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset all 2.4GHz channels back to factory defaults" + ::= { global11bg 15 } + + global11bgIAPAutoCellOverlap OBJECT-TYPE + SYNTAX Integer32(0..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set auto cell size overlap (in percents)" + ::= { global11bg 16 } + + global11bgIAPAutoCellPeriod OBJECT-TYPE + SYNTAX Integer32(0..3000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set period to run auto cell size assignment (in seconds from 60 to 3000000, 0 - none)" + ::= { global11bg 17 } + + global11bgIAPAutoCellMinTxPwr OBJECT-TYPE + SYNTAX Integer32(-15..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set auto cell size minimum Tx power" + ::= { global11bg 18 } + + global11bgIAPMaxStations OBJECT-TYPE + SYNTAX Integer32(1..3840) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum number of associated stations per array" + ::= { global11bg 19 } + + global11bgIAPMaxIapStations OBJECT-TYPE + SYNTAX Integer32(1..240) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum number of associated stations per IAP" + ::= { global11bg 20 } + +-- +-- INTERFACE IAP GLOBAL 11BG RATES +-- + + rates11bgSet OBJECT-TYPE + SYNTAX INTEGER { default(1), optimize-range(2), + optimize-throughput(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set rates to a pre-defined set" + ::= { rates11bg 1 } + + rates11bgTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rates11bgEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "802.11bg Rates for the Array" + ::= { rates11bg 2 } + + rates11bgEntry OBJECT-TYPE + SYNTAX Rates11bgEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rates table entry" + INDEX { rates11bgIndex } + ::= { rates11bgTable 1 } + + Rates11bgEntry ::= SEQUENCE { + rates11bgIndex Integer32, + rates11bgRate DisplayString, + rates11bgStatus INTEGER + } + + rates11bgIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rates table index" + ::= { rates11bgEntry 1 } + + rates11bgRate OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "802.11bg rate" + ::= { rates11bgEntry 2 } + + rates11bgStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), basic(1), supported(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "802.11bg rate status" + ::= { rates11bgEntry 3 } + +-- +-- INTERFACE IAP GLOBAL 11BG AUTO CHANNEL LIST +-- + + autoChannelList11bgSet OBJECT-TYPE + SYNTAX INTEGER { default(1), use-all(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set channel list to defaults or all available channels" + ::= { autoChannelList11bg 1 } + + autoChannelList11bgTable OBJECT-TYPE + SYNTAX SEQUENCE OF AutoChannelList11bgEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "802.11bg auto channel list" + ::= { autoChannelList11bg 2 } + + autoChannelList11bgEntry OBJECT-TYPE + SYNTAX AutoChannelList11bgEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Auto channel list entry" + INDEX { autoChannelList11bgIndex } + ::= { autoChannelList11bgTable 1 } + + AutoChannelList11bgEntry ::= SEQUENCE { + autoChannelList11bgIndex Integer32, + autoChannelList11bgChannel Integer32, + autoChannelList11bgStatus INTEGER + } + + autoChannelList11bgIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Auto channel list index" + ::= { autoChannelList11bgEntry 1 } + + autoChannelList11bgChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Channel number" + ::= { autoChannelList11bgEntry 2 } + + autoChannelList11bgStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Channel status" + ::= { autoChannelList11bgEntry 3 } + +-- +-- INTERFACE IAP WDS +-- + + wdsAutoChannel OBJECT-TYPE + SYNTAX INTEGER { enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Automatically assign IAPs and channels for WDS client links" + ::= { wds 1 } + + wdsClientLinkTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset all WDS client links to off" + ::= { wds 2 } + + wdsClientLinkTable OBJECT-TYPE + SYNTAX SEQUENCE OF WdsClientLinkEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of WDS client links" + ::= { wds 3 } + + wdsClientLinkEntry OBJECT-TYPE + SYNTAX WdsClientLinkEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WDS client link table entry" + INDEX { wdsClientLinkIndex } + ::= { wdsClientLinkTable 1 } + + WdsClientLinkEntry ::= SEQUENCE { + wdsClientLinkIndex Integer32, + wdsClientLinkEnable INTEGER, + wdsClientLinkMaxIAPs Integer32, + wdsClientLinkTarget DisplayString, + wdsClientLinkSSID DisplayString, + wdsClientLinkUsername DisplayString, + wdsClientLinkPassword DisplayString, + wdsClientLinkPasswordForm INTEGER + } + + wdsClientLinkIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WDS client link table index" + ::= { wdsClientLinkEntry 1 } + + wdsClientLinkEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable WDS client link" + ::= { wdsClientLinkEntry 2 } + + wdsClientLinkMaxIAPs OBJECT-TYPE + SYNTAX Integer32(1..3) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum number of IAPs for WDS client link during auto channel" + ::= { wdsClientLinkEntry 3 } + + wdsClientLinkTarget OBJECT-TYPE + SYNTAX DisplayString(SIZE(12..17)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Base IAP MAC address of target array for WDS client link" + ::= { wdsClientLinkEntry 4 } + + wdsClientLinkSSID OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SSID to use for association to target array" + ::= { wdsClientLinkEntry 5 } + + wdsClientLinkUsername OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Username to use for association to target array" + ::= { wdsClientLinkEntry 6 } + + wdsClientLinkPassword OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Password to use for association to target array" + ::= { wdsClientLinkEntry 7 } + + wdsClientLinkPasswordForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Password form" + ::= { wdsClientLinkEntry 8 } + + wdsHostLinkTable OBJECT-TYPE + SYNTAX SEQUENCE OF WdsHostLinkEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of WDS host links" + ::= { wds 4 } + + wdsHostLinkEntry OBJECT-TYPE + SYNTAX WdsHostLinkEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WDS host link table entry" + INDEX { wdsHostLinkIndex } + ::= { wdsHostLinkTable 1 } + + WdsHostLinkEntry ::= SEQUENCE { + wdsHostLinkIndex Integer32, + wdsHostLinkState INTEGER, + wdsHostLinkNumIAPs Integer32, + wdsHostLinkSource DisplayString, + wdsHostLinkSSID DisplayString + } + + wdsHostLinkIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WDS host link table index" + ::= { wdsHostLinkEntry 1 } + + wdsHostLinkState OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS host link state" + ::= { wdsHostLinkEntry 2 } + + wdsHostLinkNumIAPs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of IAPs for WDS host link" + ::= { wdsHostLinkEntry 3 } + + wdsHostLinkSource OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Base IAP MAC address of source array for WDS host link" + ::= { wdsHostLinkEntry 4 } + + wdsHostLinkSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS host link SSID" + ::= { wdsHostLinkEntry 5 } + + wdsAllowStations OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable stations on WDS host links" + ::= { wds 5 } + + wdsStpEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable Spanning Tree Protocol on WDS links" + ::= { wds 6 } + + wdsRoamThreshold OBJECT-TYPE + SYNTAX Integer32(1..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Minimum RSSI difference (in dB) required to trigger a roam" + ::= { wds 7 } + + wdsRoamAvgWeight OBJECT-TYPE + SYNTAX Integer32(0..99) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "RSSI averaging weight for roaming (0 = no averaging)" + ::= { wds 8 } + +-- +-- INTERFACE IAP GLOBAL 11N +-- + + global11nEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable 802.11n MIMO operation" + ::= { global11n 1 } + + global11nTxChains OBJECT-TYPE + SYNTAX Integer32(1..3) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set number of TX chains used for 802.11n operation" + ::= { global11n 2 } + + global11nRxChains OBJECT-TYPE + SYNTAX Integer32(1..3) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set number of RX chains used for 802.11n operation" + ::= { global11n 3 } + + global11nGuardInterval OBJECT-TYPE + SYNTAX INTEGER { long(0), short(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set 802.11n guard interval" + ::= { global11n 4 } + + global11nAutoBond OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable 802.11n 5GHz automatic channel bonding" + ::= { global11n 5 } + + global11nBondedChannelWidth5GHz OBJECT-TYPE + SYNTAX INTEGER { dynamic(0), static(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set 5GHz band 802.11n bonded channel width" + ::= { global11n 6 } + + global11nBondedChannelWidth2GHz OBJECT-TYPE + SYNTAX INTEGER { dynamic(0), static(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set 2.4GHz band 802.11n bonded channel width" + ::= { global11n 7 } + + rates11n OBJECT IDENTIFIER ::= { global11n 8 } + +-- +-- INTERFACE IAP GLOBAL 11N RATES +-- + + rates11nSet OBJECT-TYPE + SYNTAX INTEGER { default(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set 802.11n rates to a pre-defined set" + ::= { rates11n 1 } + + rates11nTable OBJECT-TYPE + SYNTAX SEQUENCE OF Rates11nEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Set 802.11n rates" + ::= { rates11n 2 } + + rates11nEntry OBJECT-TYPE + SYNTAX Rates11nEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Rates table entry" + INDEX { rates11nMCSIndex } + ::= { rates11nTable 1 } + + Rates11nEntry ::= SEQUENCE { + rates11nMCSIndex Integer32, + rates11nMCSStatus INTEGER + } + + rates11nMCSIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Modulation & coding scheme (MCS) index" + ::= { rates11nEntry 1 } + + rates11nMCSStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), basic(1), supported(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set status for MCS index" + ::= { rates11nEntry 2 } + + iapSsidToBssidMappingTable OBJECT-TYPE + SYNTAX SEQUENCE OF IapSsidToBssidMappingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID to BSSID mapping table" + ::= { iap 7 } + + iapSsidToBssidMappingEntry OBJECT-TYPE + SYNTAX IapSsidToBssidMappingEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID to BSSID mapping table entry" + INDEX { iapSsidToBssidMappingIndex } + ::= { iapSsidToBssidMappingTable 1 } + + IapSsidToBssidMappingEntry ::= SEQUENCE { + iapSsidToBssidMappingIndex Integer32, + iapSsidToBssidMappingIAP DisplayString, + iapSsidToBssidMappingSSID DisplayString, + iapSsidToBssidMappingBSSID DisplayString + } + + iapSsidToBssidMappingIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID to BSSID mapping table index" + ::= { iapSsidToBssidMappingEntry 1 } + + iapSsidToBssidMappingIAP OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IAP name" + ::= { iapSsidToBssidMappingEntry 2 } + + iapSsidToBssidMappingSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "SSID name" + ::= { iapSsidToBssidMappingEntry 3 } + + iapSsidToBssidMappingBSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "BSSID for IAP/SSID specified" + ::= { iapSsidToBssidMappingEntry 4 } + +-- +-- INTERFACE IAP GLOBAL 11AC +-- + + global11acEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable 802.11ac MIMO operation" + ::= { global11ac 1 } + + global11acGuardInterval OBJECT-TYPE + SYNTAX INTEGER { long(0), short(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set 802.11ac guard interval" + ::= { global11ac 2 } + + global11acMaxMCS1SS OBJECT-TYPE + SYNTAX INTEGER { mcs7(0), mcs8(1), mcs9(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set max MCS for 1 spatial stream for 802.11ac operation" + ::= { global11ac 3 } + + global11acMaxMCS2SS OBJECT-TYPE + SYNTAX INTEGER { mcs7(0), mcs8(1), mcs9(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set max MCS for 2 spatial streams for 802.11ac operation" + ::= { global11ac 4 } + + global11acMaxMCS3SS OBJECT-TYPE + SYNTAX INTEGER { mcs7(0), mcs8(1), mcs9(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set max MCS for 3 spatial streams for 802.11ac operation" + ::= { global11ac 5 } + +-- +-- INTERFACE ETHERNET +-- + + ethTable OBJECT-TYPE + SYNTAX SEQUENCE OF EthEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of ethernet interfaces" + ::= { ethernet 1 } + + ethEntry OBJECT-TYPE + SYNTAX EthEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Ethernet table entry" + INDEX { ethIndex } + ::= { ethTable 1 } + + EthEntry ::= SEQUENCE { + ethIndex Integer32, + ethName DisplayString, + ethEnable INTEGER, + ethDHCPBind INTEGER, + ethIPAddress IpAddress, + ethIPMask IpAddress, + ethGateway IpAddress, + ethAutoneg INTEGER, + ethDuplex INTEGER, + ethSpeed INTEGER, + ethMTU Integer32, + ethMgmt INTEGER, + ethDefault INTEGER, + ethPortMode INTEGER, + ethBond DisplayString, + ethLED INTEGER + } + + ethIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Ethernet table index" + ::= { ethEntry 1 } + + ethName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Ethernet interface name" + ::= { ethEntry 2 } + + ethEnable OBJECT-TYPE + SYNTAX INTEGER { down(0), up (1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable this interface" + ::= { ethEntry 3 } + + ethDHCPBind OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Use DHCP" + ::= { ethEntry 4 } + + ethIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "IP address" + ::= { ethEntry 5 } + + ethIPMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "IP Mask" + ::= { ethEntry 6 } + + ethGateway OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Gateway IP address" + ::= { ethEntry 7 } + + ethAutoneg OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable autonegotiation" + ::= { ethEntry 8 } + + ethDuplex OBJECT-TYPE + SYNTAX INTEGER { half(0), full(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Duplex settings" + ::= { ethEntry 9 } + + ethSpeed OBJECT-TYPE + SYNTAX INTEGER { speed-10Mbps(1), speed-100Mbps(2), speed-1000Mbps(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Speed settings: 10 and 100 for fast eth, 100 and 1000 for gig eth" + ::= { ethEntry 10 } + + ethMTU OBJECT-TYPE + SYNTAX Integer32(64..1732) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "MTU size" + ::= { ethEntry 11 } + + ethMgmt OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable management (gig eth only)" + ::= { ethEntry 12 } + + ethDefault OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset to default values" + ::= { ethEntry 13 } + + ethPortMode OBJECT-TYPE + SYNTAX INTEGER { link-backup(0), load-balance(3), bridge(4), + ieee802dot3ad(5), broadcast(6), mirror(7) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Select the configuration of the gig eth ports" + ::= { ethEntry 14 } + + ethBond OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify bond for this gig eth port" + ::= { ethEntry 15 } + + ethLED OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable LED operation" + ::= { ethEntry 16 } + + bondTable OBJECT-TYPE + SYNTAX SEQUENCE OF BondEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of bond interfaces" + ::= { ethernet 2 } + + bondEntry OBJECT-TYPE + SYNTAX BondEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Bond table entry" + INDEX { bondIndex } + ::= { bondTable 1 } + + BondEntry ::= SEQUENCE { + bondIndex Integer32, + bondName DisplayString, + bondMode INTEGER, + bondMirror DisplayString, + bondActiveVlans DisplayString + } + + bondIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Bond table index" + ::= { bondEntry 1 } + + bondName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bond name" + ::= { bondEntry 2 } + + bondMode OBJECT-TYPE + SYNTAX INTEGER { link-backup(0), load-balance(3), + ieee802dot3ad(5), broadcast(6) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Bond mode" + ::= { bondEntry 3 } + + bondMirror OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..20)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify mirror bond to mirror traffic" + ::= { bondEntry 4 } + + bondActiveVlans OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..160)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify VLANs active on bond" + ::= { bondEntry 5 } + +-- +-- INTERFACE CONSOLE +-- + + consoleBaud OBJECT-TYPE + SYNTAX Integer32(300..115200) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Baud rate" + ::= { console 1 } + + consoleByteSize OBJECT-TYPE + SYNTAX Integer32(7..8) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Byte/word size in bits" + ::= { console 2 } + + consoleParity OBJECT-TYPE + SYNTAX INTEGER { none(0), odd(1), even(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of parity bits" + ::= { console 3 } + + consoleStopBits OBJECT-TYPE + SYNTAX Integer32(1..2) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Number of stop bits" + ::= { console 4 } + + consoleTimeout OBJECT-TYPE + SYNTAX Integer32(30..100000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Inactivity timeout" + ::= { console 5 } + + consoleMgmt OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable management" + ::= { console 6 } + +-- +-- NETWORK MAP +-- + + neighborArrayTable OBJECT-TYPE + SYNTAX SEQUENCE OF NeighborArrayEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of neighbor arrays seen by our array" + ::= { networkMap 1 } + + neighborArrayEntry OBJECT-TYPE + SYNTAX NeighborArrayEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for neighbor array" + INDEX { neighborArrayIndex } + ::= { neighborArrayTable 1 } + + NeighborArrayEntry ::= SEQUENCE { + neighborArrayIndex Integer32, + neighborArrayHostname DisplayString, + neighborArrayLocation DisplayString, + neighborArrayIPAddress DisplayString, + neighborArrayModel INTEGER, + neighborArrayNumIAPsUp Integer32, + neighborArrayNumSSIDs Integer32, + neighborArrayNumActiveSSIDs Integer32, + neighborArrayNumStationsAssoc Integer32, + neighborArrayInRange INTEGER, + neighborArrayFastRoam INTEGER, + neighborArrayUptime DisplayString + } + + neighborArrayIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Neighbor array index" + ::= { neighborArrayEntry 1 } + + neighborArrayHostname OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Hostname of the neighbor array" + ::= { neighborArrayEntry 2 } + + neighborArrayLocation OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Location of the neighbor array" + ::= { neighborArrayEntry 3 } + + neighborArrayIPAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IP Address of the neighbor array" + ::= { neighborArrayEntry 4 } + + neighborArrayModel OBJECT-TYPE + SYNTAX INTEGER { xs-3500(1), xs-3700(2), xs-3900(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Model of the neighbor array" + ::= { neighborArrayEntry 5 } + + neighborArrayNumIAPsUp OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of IAPs enabled on the neighbor array" + ::= { neighborArrayEntry 6 } + + neighborArrayNumSSIDs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of SSIDs defined on the neighbor array" + ::= { neighborArrayEntry 7 } + + neighborArrayNumActiveSSIDs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of active SSIDs on the neighbor array" + ::= { neighborArrayEntry 8 } + + neighborArrayNumStationsAssoc OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of stations associated with the neighbor array" + ::= { neighborArrayEntry 9 } + + neighborArrayInRange OBJECT-TYPE + SYNTAX INTEGER { not-in-range(0), in-range(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether neighbor array is in our range" + ::= { neighborArrayEntry 10 } + + neighborArrayFastRoam OBJECT-TYPE + SYNTAX INTEGER { no-fast-roam(0), fast-roam(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether stations can fast roam between us and neighbor array" + ::= { neighborArrayEntry 11 } + + neighborArrayUptime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Uptime (in D:H:M) of the neighbor array" + ::= { neighborArrayEntry 12 } + +-- +-- RADIUS +-- + + radiusEnable OBJECT-TYPE + SYNTAX INTEGER { external(1), internal(2), active-directory(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Radius server enabled" + ::= { radius 1 } + + radiusServerExternal OBJECT IDENTIFIER ::= { radius 2 } + radiusServerInternal OBJECT IDENTIFIER ::= { radius 3 } + radiusServerAD OBJECT IDENTIFIER ::= { radius 4 } + +-- +-- RADIUS SERVER EXTERNAL +-- + + radiusPriServerIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius server IP address" + ::= { radiusServerExternal 1 } + + radiusPriServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius server port" + ::= { radiusServerExternal 2 } + + radiusPriServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius server secret" + ::= { radiusServerExternal 3 } + + radiusSecServerIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius server IP address" + ::= { radiusServerExternal 4 } + + radiusSecServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius server port" + ::= { radiusServerExternal 5 } + + radiusSecServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius server secret" + ::= { radiusServerExternal 6 } + + radiusTimeout OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Timeout until the primary server is retired _ given up on" + ::= { radiusServerExternal 7 } + + radiusAcctEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable Radius Accounting" + ::= { radiusServerExternal 8 } + + radiusAcctPriServerIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius Accounting server IP address" + ::= { radiusServerExternal 9 } + + radiusAcctPriServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius Accounting server port" + ::= { radiusServerExternal 10 } + + radiusAcctPriServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius Accounting server secret" + ::= { radiusServerExternal 11 } + + radiusAcctSecServerIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius Accounting server IP address" + ::= { radiusServerExternal 12 } + + radiusAcctSecServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius Accounting server port" + ::= { radiusServerExternal 13 } + + radiusAcctSecServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius Accounting server secret" + ::= { radiusServerExternal 14 } + + radiusAcctInterval OBJECT-TYPE + SYNTAX Integer32(60..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Interim accounting update interval" + ::= { radiusServerExternal 15 } + + radiusNasIdentifier OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Radius NAS Identifier" + ::= { radiusServerExternal 16 } + + radiusPriServerHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius server hostname" + ::= { radiusServerExternal 17 } + + radiusSecServerHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius server hostname" + ::= { radiusServerExternal 18 } + + radiusAcctPriServerHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius Accounting server hostname" + ::= { radiusServerExternal 19 } + + radiusAcctSecServerHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius Accounting server hostname" + ::= { radiusServerExternal 20 } + + radiusPriServerSecretEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius server secret (encrypted)" + ::= { radiusServerExternal 21 } + + radiusSecServerSecretEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius server secret (encrypted)" + ::= { radiusServerExternal 22 } + + radiusAcctPriServerSecretEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary Radius Accounting server secret (encrypted)" + ::= { radiusServerExternal 23 } + + radiusAcctSecServerSecretEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary Radius Accounting server secret (encrypted)" + ::= { radiusServerExternal 24 } + + radiusDASPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "RADIUS Dynamic Authorization port" + ::= { radiusServerExternal 25 } + + radiusDASTimeWindow OBJECT-TYPE + SYNTAX Integer32(5..10000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "RADIUS Dynamic Authorization time window (in seconds)" + ::= { radiusServerExternal 26 } + + radiusDASEventTimestamp OBJECT-TYPE + SYNTAX INTEGER { optional(0), required(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify whether Event-Timestamp attribute is required for RADIUS Dynamic Authorization replay protection" + ::= { radiusServerExternal 27 } + + radiusCalledStationIdFormat OBJECT-TYPE + SYNTAX INTEGER { bssid-ssid(0), bssid(1), ethernet-mac(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify Called-Station-Id attribute format used in RADIUS packets" + ::= { radiusServerExternal 28 } + + radiusStationMACFormat OBJECT-TYPE + SYNTAX INTEGER { lower(0), upper(1), lower-hyphen(2), upper-hyphen(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify station MAC address format used in a User-Name attribute during RADIUS MAC authentication" + ::= { radiusServerExternal 29 } + +-- +-- RADIUS SERVER INTERNAL +-- + + radiusUserTable OBJECT-TYPE + SYNTAX SEQUENCE OF RadiusUserEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table containing Radius User details" + ::= { radiusServerInternal 1 } + + radiusUserEntry OBJECT-TYPE + SYNTAX RadiusUserEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Radius user table entry" + INDEX { radiusUserIndex } + ::= { radiusUserTable 1 } + + RadiusUserEntry ::= SEQUENCE { + radiusUserIndex Integer32, + radiusUserID DisplayString, + radiusUserPassword DisplayString, + radiusUserSSID DisplayString, + radiusUserRowStatus RowStatus, + radiusUserGroup DisplayString, + radiusUserPasswordForm INTEGER + } + + radiusUserIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Radius user table index" + ::= { radiusUserEntry 1 } + + radiusUserID OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..50)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Radius user ID" + ::= { radiusUserEntry 2 } + + radiusUserPassword OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..100)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Radius user password" + ::= { radiusUserEntry 3 } + + radiusUserSSID OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Radius user SSID" + ::= { radiusUserEntry 4 } + + radiusUserRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the radius user table entry" + ::= { radiusUserEntry 5 } + + radiusUserGroup OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Radius user group" + ::= { radiusUserEntry 6 } + + radiusUserPasswordForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Password form" + ::= { radiusUserEntry 7 } + + radiusUserTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset Radius user table (clear all entries)" + ::= { radiusServerInternal 2 } + +-- +-- RADIUS SERVER ACTIVE DIRECTORY +-- + + activeDirectoryUser OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Active Directory domain administrator user name" + ::= { radiusServerAD 1 } + + activeDirectoryPassword OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Active Directory domain administrator password" + ::= { radiusServerAD 2 } + + activeDirectoryDomainController OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Active Directory domain controller" + ::= { radiusServerAD 3 } + + activeDirectoryWorkgroup OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Active Directory workgroup" + ::= { radiusServerAD 4 } + + activeDirectoryRealm OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Active Directory realm" + ::= { radiusServerAD 5 } + + activeDirectoryJoin OBJECT-TYPE + SYNTAX INTEGER { join(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Join Active Directory domain" + ::= { radiusServerAD 6 } + + activeDirectoryLeave OBJECT-TYPE + SYNTAX INTEGER { leave(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Leave Active Directory domain" + ::= { radiusServerAD 7 } + +-- +-- ROAM ASSIST +-- + + roamAssistEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable roaming assist" + ::= { roamAssist 1 } + + roamAssistPeriod OBJECT-TYPE + SYNTAX Integer32(60..9999) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Roaming assist backoff period (in seconds)" + ::= { roamAssist 2 } + + roamAssistThreshold OBJECT-TYPE + SYNTAX Integer32(-50..50) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Roaming RSSI threshold in db relative to nearest array RSSI" + ::= { roamAssist 3 } + + roamAssistDataRate OBJECT-TYPE + SYNTAX Integer32(1..99) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Minimum packet data rate before roaming (in Mbps)" + ::= { roamAssist 4 } + + roamAssistDevices OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Device types or classes to assist" + ::= { roamAssist 5 } + +-- +-- SECURITY +-- + + wep OBJECT IDENTIFIER ::= { security 1 } + wpa OBJECT IDENTIFIER ::= { security 2 } + +-- +-- SECURITY WEP +-- + + wepDefaultKeyID OBJECT-TYPE + SYNTAX Integer32(1..4) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Default encryption key id for WEP" + ::= { wep 1 } + + wepKeyTable OBJECT-TYPE + SYNTAX SEQUENCE OF WepKeyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WEP encryption key table for the Array" + ::= { wep 2 } + + wepKeyEntry OBJECT-TYPE + SYNTAX WepKeyEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WEP key table entry" + INDEX { wepKeyNum } + ::= { wepKeyTable 1 } + + WepKeyEntry ::= SEQUENCE { + wepKeyNum Integer32, + wepKeySize INTEGER, + wepKeyString DisplayString, + wepKeyStringForm INTEGER + } + + wepKeyNum OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WEP key number" + ::= { wepKeyEntry 1 } + + wepKeySize OBJECT-TYPE + SYNTAX INTEGER{ wep40(1), wep128(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WEP key size - 40 or 128 bits" + ::= { wepKeyEntry 2 } + + wepKeyString OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..26)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "WEP encryption key" + ::= { wepKeyEntry 3 } + + wepKeyStringForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Key string form" + ::= { wepKeyEntry 4 } + +-- +-- SECURITY WPA +-- + + wpaTKIP OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "TKIP enable or disable" + ::= { wpa 1 } + + wpaAES OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AES enable or disable" + ::= { wpa 2 } + + wpaEAP OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "EAP enable or disable" + ::= { wpa 3 } + + wpaPSK OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "PSK enable or disable" + ::= { wpa 4 } + + wpaPassphrase OBJECT-TYPE + SYNTAX DisplayString(SIZE(0|8..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "PSK ASCII passphrase or Hex key" + ::= { wpa 5 } + + wpaRekey OBJECT-TYPE + SYNTAX Integer32(0..1000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Rekey every 100 to 1000000 seconds, 0 - never" + ::= { wpa 6 } + + wpaPassphraseEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(16..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "PSK ASCII passphrase or Hex key (encrypted)" + ::= { wpa 7 } + +-- +-- SNMP AGENT +-- + + snmpAgentEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable SNMPv2" + ::= { snmpAgent 1 } + + snmpAgentReadWriteCommunity OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP read-write community string" + ::= { snmpAgent 2 } + + snmpAgentTrapHost OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP trap IP address or host name" + ::= { snmpAgent 3 } + + snmpAgentTrapPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP trap port" + ::= { snmpAgent 4 } + + snmpAgentTrapAuth OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable traps for authentication failures" + ::= { snmpAgent 5 } + + snmpAgentReadOnlyCommunity OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP read-only community string" + ::= { snmpAgent 6 } + + snmpAgentTrapHost2 OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP trap IP address or host name (host 2)" + ::= { snmpAgent 7 } + + snmpAgentTrapPort2 OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP trap port (host 2)" + ::= { snmpAgent 8 } + + snmpAgentTrapHost3 OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP trap IP address or host name (host 3)" + ::= { snmpAgent 9 } + + snmpAgentTrapPort3 OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP trap port (host 3) " + ::= { snmpAgent 10 } + + snmpAgentTrapHost4 OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP trap IP address or host name (host 4)" + ::= { snmpAgent 11 } + + snmpAgentTrapPort4 OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP trap port (host 4)" + ::= { snmpAgent 12 } + + snmpAgentV3Enable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable SNMPv3" + ::= { snmpAgent 13 } + + snmpAgentV3AuthType OBJECT-TYPE + SYNTAX INTEGER { md5(0), sha(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 authentication type" + ::= { snmpAgent 14 } + + snmpAgentV3PrivProtocol OBJECT-TYPE + SYNTAX INTEGER { des(0), aes(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 privacy protocol" + ::= { snmpAgent 15 } + + snmpAgentV3ReadWriteUser OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..30)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-write user" + ::= { snmpAgent 16 } + + snmpAgentV3ReadWriteUserAuthPassphrase OBJECT-TYPE + SYNTAX DisplayString(SIZE(8..30)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-write user authentication passphrase" + ::= { snmpAgent 17 } + + snmpAgentV3ReadWriteUserAuthPassphraseEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(16..60)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-write user authentication passphrase (encrypted)" + ::= { snmpAgent 18 } + + snmpAgentV3ReadWriteUserPrivPassphrase OBJECT-TYPE + SYNTAX DisplayString(SIZE(8..30)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-write user privacy passphrase" + ::= { snmpAgent 19 } + + snmpAgentV3ReadWriteUserPrivPassphraseEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(16..60)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-write user privacy passphrase (encrypted)" + ::= { snmpAgent 20 } + + snmpAgentV3ReadOnlyUser OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..30)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-only user" + ::= { snmpAgent 21 } + + snmpAgentV3ReadOnlyUserAuthPassphrase OBJECT-TYPE + SYNTAX DisplayString(SIZE(8..30)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-only user authentication passphrase" + ::= { snmpAgent 22 } + + snmpAgentV3ReadOnlyUserAuthPassphraseEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(16..60)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-only user authentication passphrase (encrypted)" + ::= { snmpAgent 23 } + + snmpAgentV3ReadOnlyUserPrivPassphrase OBJECT-TYPE + SYNTAX DisplayString(SIZE(8..30)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-only user privacy passphrase" + ::= { snmpAgent 24 } + + snmpAgentV3ReadOnlyUserPrivPassphraseEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(16..60)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMPv3 read-only user privacy passphrase (encrypted)" + ::= { snmpAgent 25 } + + snmpAgentEngineID OBJECT-TYPE + SYNTAX DisplayString(SIZE(24..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP agent engine ID (in hex)" + ::= { snmpAgent 26 } + + snmpAgentRestart OBJECT-TYPE + SYNTAX INTEGER { restart(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Restart SNMP agent" + ::= { snmpAgent 27 } + + snmpAgentKeepAlive OBJECT-TYPE + SYNTAX Integer32(0..999) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP trap keepalive time (in minutes)" + ::= { snmpAgent 28 } + + snmpAgentReadWriteCommunityEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..100)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP read-write community string (encrypted)" + ::= { snmpAgent 29 } + + snmpAgentReadOnlyCommunityEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..100)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SNMP read-only community string (encrypted)" + ::= { snmpAgent 30 } + +-- +-- SSID +-- + + ssidTable OBJECT-TYPE + SYNTAX SEQUENCE OF SsidEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID table for the Array" + ::= { ssid 1 } + + ssidEntry OBJECT-TYPE + SYNTAX SsidEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID table entry" + INDEX { ssidIndex } + ::= { ssidTable 1 } + + SsidEntry ::= SEQUENCE { + ssidIndex Integer32, + ssidName DisplayString, + ssidBroadcast INTEGER, + ssidBand INTEGER, + ssidQOS Integer32, + ssidVlan Integer32, + ssidDhcpPool DisplayString, + ssidEncryption INTEGER, + ssidDefaultSecurity INTEGER, + ssidWepDefaultKeyID Integer32, + ssidWepKey1Size INTEGER, + ssidWepKey1String DisplayString, + ssidWepKey2Size INTEGER, + ssidWepKey2String DisplayString, + ssidWepKey3Size INTEGER, + ssidWepKey3String DisplayString, + ssidWepKey4Size INTEGER, + ssidWepKey4String DisplayString, + ssidWpaEAP INTEGER, + ssidWpaPSK INTEGER, + ssidWpaPassphrase DisplayString, + ssidRadiusEnable INTEGER, + ssidRadiusPriServerIPAddress IpAddress, + ssidRadiusPriServerPort Integer32, + ssidRadiusPriServerSecret DisplayString, + ssidRadiusSecServerIPAddress IpAddress, + ssidRadiusSecServerPort Integer32, + ssidRadiusSecServerSecret DisplayString, + ssidRadiusTimeout Integer32, + ssidRadiusAcctEnable INTEGER, + ssidRadiusAcctPriServerIPAddress IpAddress, + ssidRadiusAcctPriServerPort Integer32, + ssidRadiusAcctPriServerSecret DisplayString, + ssidRadiusAcctSecServerIPAddress IpAddress, + ssidRadiusAcctSecServerPort Integer32, + ssidRadiusAcctSecServerSecret DisplayString, + ssidRadiusAcctInterval Integer32, + ssidAuthentication INTEGER, + ssidRowStatus RowStatus, + ssidRoamingLayer INTEGER, + ssidRadiusPriServerHostname DisplayString, + ssidRadiusSecServerHostname DisplayString, + ssidRadiusAcctPriServerHostname DisplayString, + ssidRadiusAcctSecServerHostname DisplayString, + ssidWepKey1StringForm INTEGER, + ssidWepKey2StringForm INTEGER, + ssidWepKey3StringForm INTEGER, + ssidWepKey4StringForm INTEGER, + ssidWpaPassphraseForm INTEGER, + ssidRadiusPriServerSecretForm INTEGER, + ssidRadiusSecServerSecretForm INTEGER, + ssidRadiusAcctPriServerSecretForm INTEGER, + ssidRadiusAcctSecServerSecretForm INTEGER, + ssidFilterList DisplayString, + ssidWpaTKIP INTEGER, + ssidWpaAES INTEGER, + ssidActiveIAPs Integer32, + ssidAclEnable INTEGER, + ssidFallback INTEGER, + ssidTunnel DisplayString, + ssidMdmAuth INTEGER, + ssidDhcpOption INTEGER + } + + ssidIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID table index" + ::= { ssidEntry 1 } + + ssidName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID name" + ::= { ssidEntry 2 } + + ssidBroadcast OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable/disable SSID broadcast" + ::= { ssidEntry 3 } + + ssidBand OBJECT-TYPE + SYNTAX INTEGER { both(1), dot11a(2), dot11bg(3) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID 802.11 band" + ::= { ssidEntry 4 } + + ssidQOS OBJECT-TYPE + SYNTAX Integer32(0..3) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID QoS level" + ::= { ssidEntry 5 } + + ssidVlan OBJECT-TYPE + SYNTAX Integer32(0..4095) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID vlan ID" + ::= { ssidEntry 6 } + + ssidDhcpPool OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID DHCP pool" + ::= { ssidEntry 7 } + + ssidEncryption OBJECT-TYPE + SYNTAX INTEGER { none(0), wep(1), wpa(2), wpa2(3), wpa-both(4) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID encryption type" + ::= { ssidEntry 8 } + + ssidDefaultSecurity OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Use default security settings" + ::= { ssidEntry 9 } + + ssidWepDefaultKeyID OBJECT-TYPE + SYNTAX Integer32(1..4) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Default encryption key id for WEP" + ::= { ssidEntry 10 } + + ssidWepKey1Size OBJECT-TYPE + SYNTAX INTEGER{ wep40(1), wep128(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WEP key 1 size - 40 or 128 bits" + ::= { ssidEntry 11 } + + ssidWepKey1String OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..26)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WEP encryption key 1" + ::= { ssidEntry 12 } + + ssidWepKey2Size OBJECT-TYPE + SYNTAX INTEGER{ wep40(1), wep128(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WEP key 2 size - 40 or 128 bits" + ::= { ssidEntry 13 } + + ssidWepKey2String OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..26)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WEP encryption key 2" + ::= { ssidEntry 14 } + + ssidWepKey3Size OBJECT-TYPE + SYNTAX INTEGER{ wep40(1), wep128(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WEP key 3 size - 40 or 128 bits" + ::= { ssidEntry 15 } + + ssidWepKey3String OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..26)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WEP encryption key 3" + ::= { ssidEntry 16 } + + ssidWepKey4Size OBJECT-TYPE + SYNTAX INTEGER{ wep40(1), wep128(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WEP key 4 size - 40 or 128 bits" + ::= { ssidEntry 17 } + + ssidWepKey4String OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..26)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WEP encryption key 4" + ::= { ssidEntry 18 } + + ssidWpaEAP OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "EAP enable or disable" + ::= { ssidEntry 19 } + + ssidWpaPSK OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "PSK enable or disable" + ::= { ssidEntry 20 } + + ssidWpaPassphrase OBJECT-TYPE + SYNTAX DisplayString(SIZE(0|8..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "PSK ASCII passphrase or Hex key" + ::= { ssidEntry 21 } + + ssidRadiusEnable OBJECT-TYPE + SYNTAX INTEGER { external(1), internal(2), active-directory(3) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Radius server enabled" + ::= { ssidEntry 22 } + + ssidRadiusPriServerIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius server IP address" + ::= { ssidEntry 23 } + + ssidRadiusPriServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius server port" + ::= { ssidEntry 24 } + + ssidRadiusPriServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius server secret" + ::= { ssidEntry 25 } + + ssidRadiusSecServerIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius server IP address" + ::= { ssidEntry 26 } + + ssidRadiusSecServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius server port" + ::= { ssidEntry 27 } + + ssidRadiusSecServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius server secret" + ::= { ssidEntry 28 } + + ssidRadiusTimeout OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Timeout until the primary server is retired _ given up on" + ::= { ssidEntry 29 } + + ssidRadiusAcctEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable or disable Radius Accounting" + ::= { ssidEntry 30 } + + ssidRadiusAcctPriServerIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius Accounting server IP address" + ::= { ssidEntry 31 } + + ssidRadiusAcctPriServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius Accounting server port" + ::= { ssidEntry 32 } + + ssidRadiusAcctPriServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius Accounting server secret" + ::= { ssidEntry 33 } + + ssidRadiusAcctSecServerIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius Accounting server IP address" + ::= { ssidEntry 34 } + + ssidRadiusAcctSecServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius Accounting server port" + ::= { ssidEntry 35 } + + ssidRadiusAcctSecServerSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius Accounting server secret" + ::= { ssidEntry 36} + + ssidRadiusAcctInterval OBJECT-TYPE + SYNTAX Integer32(60..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Interim accounting update interval" + ::= { ssidEntry 37 } + + ssidAuthentication OBJECT-TYPE + SYNTAX INTEGER { open(0), radius-mac(1), dot1x(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID authentication type" + ::= { ssidEntry 38 } + + ssidRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the SSID row entry" + ::= { ssidEntry 39 } + + ssidRoamingLayer OBJECT-TYPE + SYNTAX INTEGER { layer-2-only(0), layer-2-and-3(1), none(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Fast roaming layer allowed for this SSID" + ::= { ssidEntry 40 } + + ssidRadiusPriServerHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius server hostname" + ::= { ssidEntry 41 } + + ssidRadiusSecServerHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius server hostname" + ::= { ssidEntry 42 } + + ssidRadiusAcctPriServerHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius Accounting server hostname" + ::= { ssidEntry 43 } + + ssidRadiusAcctSecServerHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius Accounting server hostname" + ::= { ssidEntry 44 } + + ssidWepKey1StringForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WEP key 1 string form" + ::= { ssidEntry 45 } + + ssidWepKey2StringForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WEP key 2 string form" + ::= { ssidEntry 46 } + + ssidWepKey3StringForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WEP key 3 string form" + ::= { ssidEntry 47 } + + ssidWepKey4StringForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WEP key 4 string form" + ::= { ssidEntry 48 } + + ssidWpaPassphraseForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "PSK passphrase form" + ::= { ssidEntry 49 } + + ssidRadiusPriServerSecretForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius server secret form" + ::= { ssidEntry 50 } + + ssidRadiusSecServerSecretForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius server secret form" + ::= { ssidEntry 51 } + + ssidRadiusAcctPriServerSecretForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Primary Radius Accounting server secret form" + ::= { ssidEntry 52 } + + ssidRadiusAcctSecServerSecretForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Secondary Radius Accounting server secret form" + ::= { ssidEntry 53 } + + ssidFilterList OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID filter list" + ::= { ssidEntry 54 } + + ssidWpaTKIP OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "TKIP enable or disable" + ::= { ssidEntry 55 } + + ssidWpaAES OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "AES enable or disable" + ::= { ssidEntry 56 } + + ssidActiveIAPs OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Define active IAPs for this SSID" + ::= { ssidEntry 57 } + + ssidAclEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), allow(1) , deny(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID access control list enable/disable" + ::= { ssidEntry 58 } + + ssidFallback OBJECT-TYPE + SYNTAX INTEGER { none(0), disable-ssid(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Define network connectivity fallback mode for this SSID" + ::= { ssidEntry 59 } + + ssidTunnel OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Specify tunnel for bridging SSID data traffic" + ::= { ssidEntry 60 } + + ssidMdmAuth OBJECT-TYPE + SYNTAX INTEGER { none(0), airwatch(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "MDM authentication type used by this SSID" + ::= { ssidEntry 61 } + + ssidDhcpOption OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable or disable insertion of relay agent information option in station DHCP requests" + ::= { ssidEntry 62 } + + ssidTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset SSID table (clear all entries and restore default)" + ::= { ssid 2 } + + ssidTableClear OBJECT-TYPE + SYNTAX INTEGER { clear(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Clear all entries in SSID table" + ::= { ssid 3 } + + ssidLimitsTable OBJECT-TYPE + SYNTAX SEQUENCE OF SsidLimitsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID limits table for the Array" + ::= { ssid 4 } + + ssidLimitsEntry OBJECT-TYPE + SYNTAX SsidLimitsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID limits table entry" + INDEX { ssidLimitsIndex } + ::= { ssidLimitsTable 1 } + + SsidLimitsEntry ::= SEQUENCE { + ssidLimitsIndex Integer32, + ssidLimitsSsidName DisplayString, + ssidLimitsEnable INTEGER, + ssidLimitsTrafficLimit Integer32, + ssidLimitsTrafficLimitSta Integer32, + ssidLimitsTimeOn Integer32, + ssidLimitsTimeOff Integer32, + ssidLimitsDaysOnMon INTEGER, + ssidLimitsDaysOnTue INTEGER, + ssidLimitsDaysOnWed INTEGER, + ssidLimitsDaysOnThu INTEGER, + ssidLimitsDaysOnFri INTEGER, + ssidLimitsDaysOnSat INTEGER, + ssidLimitsDaysOnSun INTEGER, + ssidLimitsActive INTEGER, + ssidLimitsStationLimit Integer32, + ssidLimitsTrafficLimitKbps Integer32, + ssidLimitsTrafficLimitKbpsSta Integer32 + } + + ssidLimitsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID limits table index" + ::= { ssidLimitsEntry 1 } + + ssidLimitsSsidName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "SSID name" + ::= { ssidLimitsEntry 2 } + + ssidLimitsEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable SSID" + ::= { ssidLimitsEntry 3 } + + ssidLimitsTrafficLimit OBJECT-TYPE + SYNTAX Integer32(0..1000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Traffic limit for SSID (10 to 1000000 pps, 0 - unlimited)" + ::= { ssidLimitsEntry 4 } + + ssidLimitsTrafficLimitSta OBJECT-TYPE + SYNTAX Integer32(0..100000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Traffic limit per station for SSID (10 to 100000 pps, 0 - unlimited)" + ::= { ssidLimitsEntry 5 } + + ssidLimitsTimeOn OBJECT-TYPE + SYNTAX Integer32(-1..1439) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set daily time SSID is active (in minutes, -1 - always)" + ::= { ssidLimitsEntry 6 } + + ssidLimitsTimeOff OBJECT-TYPE + SYNTAX Integer32(-1..1439) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set daily time SSID is inactive (in minutes, -1 - never)" + ::= { ssidLimitsEntry 7 } + + ssidLimitsDaysOnMon OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SSID is on/off on Monday" + ::= { ssidLimitsEntry 8 } + + ssidLimitsDaysOnTue OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SSID is on/off on Tuesday" + ::= { ssidLimitsEntry 9 } + + ssidLimitsDaysOnWed OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SSID is on/off on Wednesday" + ::= { ssidLimitsEntry 10 } + + ssidLimitsDaysOnThu OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SSID is on/off on Thursday" + ::= { ssidLimitsEntry 11 } + + ssidLimitsDaysOnFri OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SSID is on/off on Friday" + ::= { ssidLimitsEntry 12 } + + ssidLimitsDaysOnSat OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SSID is on/off on Saturday" + ::= { ssidLimitsEntry 13 } + + ssidLimitsDaysOnSun OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SSID is on/off on Sunday" + ::= { ssidLimitsEntry 14 } + + ssidLimitsActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether SSID is currently active" + ::= { ssidLimitsEntry 15 } + + ssidLimitsStationLimit OBJECT-TYPE + SYNTAX Integer32(1..3840) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Station limit for SSID" + ::= { ssidLimitsEntry 16 } + + ssidLimitsTrafficLimitKbps OBJECT-TYPE + SYNTAX Integer32(0..4000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Traffic limit for SSID (10 to 4000000 kbps, 0 - unlimited)" + ::= { ssidLimitsEntry 17 } + + ssidLimitsTrafficLimitKbpsSta OBJECT-TYPE + SYNTAX Integer32(0..400000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Traffic limit per station for SSID (10 to 400000 kbps, 0 - unlimited)" + ::= { ssidLimitsEntry 18 } + + ssidWprTable OBJECT-TYPE + SYNTAX SEQUENCE OF SsidWprEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID Web Page Redirect (WPR) table for the Array" + ::= { ssid 5 } + + ssidWprEntry OBJECT-TYPE + SYNTAX SsidWprEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID WPR table entry" + INDEX { ssidWprIndex } + ::= { ssidWprTable 1 } + + SsidWprEntry ::= SEQUENCE { + ssidWprIndex Integer32, + ssidWprSsidName DisplayString, + ssidWprEnable INTEGER, + ssidWprServerType INTEGER, + ssidWprUrl DisplayString, + ssidWprSharedSecret DisplayString, + ssidWprScreenType INTEGER, + ssidWprScreenTimeout Integer32, + ssidWprLandingPage DisplayString, + ssidWprSharedSecretForm INTEGER, + ssidWprAuthType INTEGER, + ssidWprHttpsEnable INTEGER, + ssidWprBackground DisplayString, + ssidWprLogoImage DisplayString, + ssidWprHeaderText DisplayString, + ssidWprFooterText DisplayString, + ssidWprAuthTimeout Integer32 + } + + ssidWprIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID WPR table index" + ::= { ssidWprEntry 1 } + + ssidWprSsidName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "SSID name" + ::= { ssidWprEntry 2 } + + ssidWprEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable WPR for SSID" + ::= { ssidWprEntry 3 } + + ssidWprServerType OBJECT-TYPE + SYNTAX INTEGER { external(0), internal(1), cloud(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Server type for WPR" + ::= { ssidWprEntry 6 } + + ssidWprUrl OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "URL for WPR" + ::= { ssidWprEntry 7 } + + ssidWprSharedSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Shared secret for WPR" + ::= { ssidWprEntry 8 } + + ssidWprScreenType OBJECT-TYPE + SYNTAX INTEGER { splash(0), login(1), none(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Screen type for WPR" + ::= { ssidWprEntry 9 } + + ssidWprScreenTimeout OBJECT-TYPE + SYNTAX Integer32(0..100) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Splash screen timeout (0 - no timeout)" + ::= { ssidWprEntry 10 } + + ssidWprLandingPage OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Landing page URL for WPR" + ::= { ssidWprEntry 11 } + + ssidWprSharedSecretForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "WPR shared secret form" + ::= { ssidWprEntry 12 } + + ssidWprAuthType OBJECT-TYPE + SYNTAX INTEGER { chap(0), pap(1), ms-chap(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "WPR authentication protocol" + ::= { ssidWprEntry 13 } + + ssidWprHttpsEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable HTTPS login for WPR" + ::= { ssidWprEntry 14 } + + ssidWprBackground OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Custom background file for WPR" + ::= { ssidWprEntry 15 } + + ssidWprLogoImage OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Custom logo file for WPR" + ::= { ssidWprEntry 16 } + + ssidWprHeaderText OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Custom header text file for WPR" + ::= { ssidWprEntry 17 } + + ssidWprFooterText OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Custom footer text file for WPR" + ::= { ssidWprEntry 18 } + + ssidWprAuthTimeout OBJECT-TYPE + SYNTAX Integer32(0..10080) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "WPR station authentication timeout in minutes (0 - no timeout)" + ::= { ssidWprEntry 19 } + + ssidHoneypotWhitelistTable OBJECT-TYPE + SYNTAX SEQUENCE OF SsidHoneypotWhitelistEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID honeypot whitelist" + ::= { ssid 6 } + + ssidHoneypotWhitelistEntry OBJECT-TYPE + SYNTAX SsidHoneypotWhitelistEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID honeypot whitelist table entry" + INDEX { ssidHoneypotWhitelistIndex } + ::= { ssidHoneypotWhitelistTable 1 } + + SsidHoneypotWhitelistEntry ::= SEQUENCE { + ssidHoneypotWhitelistIndex Integer32, + ssidHoneypotWhitelistSSID DisplayString, + ssidHoneypotWhitelistRowStatus RowStatus + } + + ssidHoneypotWhitelistIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID honeypot whitelist index" + ::= { ssidHoneypotWhitelistEntry 1 } + + ssidHoneypotWhitelistSSID OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID name" + ::= { ssidHoneypotWhitelistEntry 2 } + + ssidHoneypotWhitelistRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the SSID honeypot whitelist row entry" + ::= { ssidHoneypotWhitelistEntry 3 } + + ssidHoneypotWhitelistTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset SSID honeypot whitelist (clear all entries)" + ::= { ssid 7 } + + ssidHoneypotBroadcastTable OBJECT-TYPE + SYNTAX SEQUENCE OF SsidHoneypotBroadcastEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID honeypot broadcast" + ::= { ssid 8 } + + ssidHoneypotBroadcastEntry OBJECT-TYPE + SYNTAX SsidHoneypotBroadcastEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID honeypot broadcast table entry" + INDEX { ssidHoneypotBroadcastIndex } + ::= { ssidHoneypotBroadcastTable 1 } + + SsidHoneypotBroadcastEntry ::= SEQUENCE { + ssidHoneypotBroadcastIndex Integer32, + ssidHoneypotBroadcastSSID DisplayString, + ssidHoneypotBroadcastRowStatus RowStatus + } + + ssidHoneypotBroadcastIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "SSID honeypot broadcast index" + ::= { ssidHoneypotBroadcastEntry 1 } + + ssidHoneypotBroadcastSSID OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID name" + ::= { ssidHoneypotBroadcastEntry 2 } + + ssidHoneypotBroadcastRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the SSID honeypot broadcast row entry" + ::= { ssidHoneypotBroadcastEntry 3 } + + ssidHoneypotBroadcastTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset SSID honeypot broadcast (clear all entries)" + ::= { ssid 9 } + +-- +-- STATIONS +-- + + stationAssociationTable OBJECT-TYPE + SYNTAX SEQUENCE OF StationAssociationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of stations associated with array" + ::= { stations 1 } + + stationAssociationEntry OBJECT-TYPE + SYNTAX StationAssociationEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for associated station" + INDEX { stationAssociationIndex } + ::= { stationAssociationTable 1 } + + StationAssociationEntry ::= SEQUENCE { + stationAssociationIndex Integer32, + stationAssociationMACAddress DisplayString, + stationAssociationManufacturer DisplayString, + stationAssociationIPAddress DisplayString, + stationAssociationNetbiosName DisplayString, + stationAssociationIAP DisplayString, + stationAssociationSSID DisplayString, + stationAssociationVLAN Integer32, + stationAssociationRSSI Integer32, + stationAssociationTime DisplayString, + stationAssociationTxRate Integer32, + stationAssociationRxRate Integer32, + stationAssociationRSSIa1 Integer32, + stationAssociationRSSIa2 Integer32, + stationAssociationRSSIa3 Integer32, + stationAssociationRSSIa4 Integer32, + stationAssociationRSSIa5 Integer32, + stationAssociationRSSIa6 Integer32, + stationAssociationRSSIa7 Integer32, + stationAssociationRSSIa8 Integer32, + stationAssociationRSSIa9 Integer32, + stationAssociationRSSIa10 Integer32, + stationAssociationRSSIa11 Integer32, + stationAssociationRSSIa12 Integer32, + stationAssociationRSSIabg1 Integer32, + stationAssociationRSSIabg2 Integer32, + stationAssociationRSSIabg3 Integer32, + stationAssociationRSSIabg4 Integer32, + stationAssociationEncType INTEGER, + stationAssociationCipher INTEGER, + stationAssociationKeyMgmt INTEGER, + stationAssociationBand INTEGER, + stationAssociationChannel Integer32, + stationAssociationMediaType INTEGER, + stationAssociationUserName DisplayString, + stationAssociationTimeRSSIa1 Counter32, + stationAssociationTimeRSSIa2 Counter32, + stationAssociationTimeRSSIa3 Counter32, + stationAssociationTimeRSSIa4 Counter32, + stationAssociationTimeRSSIa5 Counter32, + stationAssociationTimeRSSIa6 Counter32, + stationAssociationTimeRSSIa7 Counter32, + stationAssociationTimeRSSIa8 Counter32, + stationAssociationTimeRSSIa9 Counter32, + stationAssociationTimeRSSIa10 Counter32, + stationAssociationTimeRSSIa11 Counter32, + stationAssociationTimeRSSIa12 Counter32, + stationAssociationTimeRSSIabg1 Counter32, + stationAssociationTimeRSSIabg2 Counter32, + stationAssociationTimeRSSIabg3 Counter32, + stationAssociationTimeRSSIabg4 Counter32, + stationAssociationHostname DisplayString, + stationAssociationDeviceType DisplayString, + stationAssociationDeviceClass DisplayString, + stationAssociationUserAgent DisplayString, + stationAssociationDeviceSource INTEGER, + stationAssociationDeviceSourceIndex Integer32 + } + + stationAssociationIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station association index" + ::= { stationAssociationEntry 1 } + + stationAssociationMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "MAC address of the station" + ::= { stationAssociationEntry 2 } + + stationAssociationManufacturer OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Manufacturer of the station's network card" + ::= { stationAssociationEntry 3 } + + stationAssociationIPAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IP Address of the station" + ::= { stationAssociationEntry 4 } + + stationAssociationNetbiosName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Netbios name of the station" + ::= { stationAssociationEntry 5 } + + stationAssociationIAP OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IAP station associated with" + ::= { stationAssociationEntry 6 } + + stationAssociationSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "SSID station associated with" + ::= { stationAssociationEntry 7 } + + stationAssociationVLAN OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN of the station" + ::= { stationAssociationEntry 8 } + + stationAssociationRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI (last packet received)" + ::= { stationAssociationEntry 9 } + + stationAssociationTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time (in D:H:M) station is associated" + ::= { stationAssociationEntry 10 } + + stationAssociationTxRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx rate of the station" + ::= { stationAssociationEntry 11 } + + stationAssociationRxRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx rate of the station" + ::= { stationAssociationEntry 12 } + + stationAssociationRSSIa1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a1" + ::= { stationAssociationEntry 13 } + + stationAssociationRSSIa2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a2" + ::= { stationAssociationEntry 14 } + + stationAssociationRSSIa3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a3" + ::= { stationAssociationEntry 15 } + + stationAssociationRSSIa4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a4" + ::= { stationAssociationEntry 16 } + + stationAssociationRSSIa5 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a5" + ::= { stationAssociationEntry 17 } + + stationAssociationRSSIa6 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a6" + ::= { stationAssociationEntry 18 } + + stationAssociationRSSIa7 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a7" + ::= { stationAssociationEntry 19 } + + stationAssociationRSSIa8 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a8" + ::= { stationAssociationEntry 20 } + + stationAssociationRSSIa9 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a9" + ::= { stationAssociationEntry 21 } + + stationAssociationRSSIa10 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a10" + ::= { stationAssociationEntry 22 } + + stationAssociationRSSIa11 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a11" + ::= { stationAssociationEntry 23 } + + stationAssociationRSSIa12 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a12" + ::= { stationAssociationEntry 24 } + + stationAssociationRSSIabg1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg1" + ::= { stationAssociationEntry 25 } + + stationAssociationRSSIabg2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg2" + ::= { stationAssociationEntry 26 } + + stationAssociationRSSIabg3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg3" + ::= { stationAssociationEntry 27 } + + stationAssociationRSSIabg4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg4" + ::= { stationAssociationEntry 28 } + + stationAssociationEncType OBJECT-TYPE + SYNTAX INTEGER { none(0), wep(1), wpa(2), wpa2(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station encryption type" + ::= { stationAssociationEntry 29 } + + stationAssociationCipher OBJECT-TYPE + SYNTAX INTEGER { none(0), rc4(1), tkip(2), aes(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Cipher suite used by station" + ::= { stationAssociationEntry 30 } + + stationAssociationKeyMgmt OBJECT-TYPE + SYNTAX INTEGER { none(0), eap(1), psk(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Key management algorithm used by station" + ::= { stationAssociationEntry 31 } + + stationAssociationBand OBJECT-TYPE + SYNTAX INTEGER { dot11a(0), dot11bg(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "802.11 band station is on" + ::= { stationAssociationEntry 32 } + + stationAssociationChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Channel station is on" + ::= { stationAssociationEntry 33 } + + stationAssociationMediaType OBJECT-TYPE + SYNTAX INTEGER { dot11b(1), dot11bg(2), dot11abg(3), dot11a(4), + dot11ab(5), dot11ag(6), dot11g(7), dot11n(8), + dot11bn(9), dot11gn(10), dot11bgn(11), dot11an(12), + dot11abn(13), dot11agn(14), dot11abgn(15), + dot11anac(16), dot11abgnac(17) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station media type" + ::= { stationAssociationEntry 34 } + + stationAssociationUserName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station user name" + ::= { stationAssociationEntry 35 } + + stationAssociationTimeRSSIa1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a1 (milliseconds)" + ::= { stationAssociationEntry 36 } + + stationAssociationTimeRSSIa2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a2 (milliseconds)" + ::= { stationAssociationEntry 37 } + + stationAssociationTimeRSSIa3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a3 (milliseconds)" + ::= { stationAssociationEntry 38 } + + stationAssociationTimeRSSIa4 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a4 (milliseconds)" + ::= { stationAssociationEntry 39 } + + stationAssociationTimeRSSIa5 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a5 (milliseconds)" + ::= { stationAssociationEntry 40 } + + stationAssociationTimeRSSIa6 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a6 (milliseconds)" + ::= { stationAssociationEntry 41 } + + stationAssociationTimeRSSIa7 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a7 (milliseconds)" + ::= { stationAssociationEntry 42 } + + stationAssociationTimeRSSIa8 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a8 (milliseconds)" + ::= { stationAssociationEntry 43 } + + stationAssociationTimeRSSIa9 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a9 (milliseconds)" + ::= { stationAssociationEntry 44 } + + stationAssociationTimeRSSIa10 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a10 (milliseconds)" + ::= { stationAssociationEntry 45 } + + stationAssociationTimeRSSIa11 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a11 (milliseconds)" + ::= { stationAssociationEntry 46 } + + stationAssociationTimeRSSIa12 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a12 (milliseconds)" + ::= { stationAssociationEntry 47 } + + stationAssociationTimeRSSIabg1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg1 (milliseconds)" + ::= { stationAssociationEntry 48 } + + stationAssociationTimeRSSIabg2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg2 (milliseconds)" + ::= { stationAssociationEntry 49 } + + stationAssociationTimeRSSIabg3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg3 (milliseconds)" + ::= { stationAssociationEntry 50 } + + stationAssociationTimeRSSIabg4 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg4 (milliseconds)" + ::= { stationAssociationEntry 51 } + + stationAssociationHostname OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station hostname" + ::= { stationAssociationEntry 52 } + + stationAssociationDeviceType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device type" + ::= { stationAssociationEntry 53 } + + stationAssociationDeviceClass OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device class" + ::= { stationAssociationEntry 54 } + + stationAssociationUserAgent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "User-agent string" + ::= { stationAssociationEntry 55 } + + stationAssociationDeviceSource OBJECT-TYPE + SYNTAX INTEGER { none(0), manufacturer(1), netbios-name(2), + dhcp-hostname(3), user-agent-string(4), + internal-rules(5), external-rules(6), cache(7) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device source" + ::= { stationAssociationEntry 56 } + + stationAssociationDeviceSourceIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device source index" + ::= { stationAssociationEntry 57 } + + stationUnassociatedTable OBJECT-TYPE + SYNTAX SEQUENCE OF StationUnassociatedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of unassociated stations" + ::= { stations 2 } + + stationUnassociatedEntry OBJECT-TYPE + SYNTAX StationUnassociatedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for unassociated station" + INDEX { stationUnassociatedIndex } + ::= { stationUnassociatedTable 1 } + + StationUnassociatedEntry ::= SEQUENCE { + stationUnassociatedIndex Integer32, + stationUnassociatedMACAddress DisplayString, + stationUnassociatedManufacturer DisplayString, + stationUnassociatedNetbiosName DisplayString, + stationUnassociatedMediaType INTEGER, + stationUnassociatedTxRate Integer32, + stationUnassociatedRxRate Integer32, + stationUnassociatedRSSI Integer32, + stationUnassociatedTime Counter32, + stationUnassociatedRSSIa1 Integer32, + stationUnassociatedRSSIa2 Integer32, + stationUnassociatedRSSIa3 Integer32, + stationUnassociatedRSSIa4 Integer32, + stationUnassociatedRSSIa5 Integer32, + stationUnassociatedRSSIa6 Integer32, + stationUnassociatedRSSIa7 Integer32, + stationUnassociatedRSSIa8 Integer32, + stationUnassociatedRSSIa9 Integer32, + stationUnassociatedRSSIa10 Integer32, + stationUnassociatedRSSIa11 Integer32, + stationUnassociatedRSSIa12 Integer32, + stationUnassociatedRSSIabg1 Integer32, + stationUnassociatedRSSIabg2 Integer32, + stationUnassociatedRSSIabg3 Integer32, + stationUnassociatedRSSIabg4 Integer32, + stationUnassociatedTimeRSSIa1 Counter32, + stationUnassociatedTimeRSSIa2 Counter32, + stationUnassociatedTimeRSSIa3 Counter32, + stationUnassociatedTimeRSSIa4 Counter32, + stationUnassociatedTimeRSSIa5 Counter32, + stationUnassociatedTimeRSSIa6 Counter32, + stationUnassociatedTimeRSSIa7 Counter32, + stationUnassociatedTimeRSSIa8 Counter32, + stationUnassociatedTimeRSSIa9 Counter32, + stationUnassociatedTimeRSSIa10 Counter32, + stationUnassociatedTimeRSSIa11 Counter32, + stationUnassociatedTimeRSSIa12 Counter32, + stationUnassociatedTimeRSSIabg1 Counter32, + stationUnassociatedTimeRSSIabg2 Counter32, + stationUnassociatedTimeRSSIabg3 Counter32, + stationUnassociatedTimeRSSIabg4 Counter32 + } + + stationUnassociatedIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station index" + ::= { stationUnassociatedEntry 1 } + + stationUnassociatedMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "MAC address of the station" + ::= { stationUnassociatedEntry 2 } + + stationUnassociatedManufacturer OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Manufacturer of the station's network card" + ::= { stationUnassociatedEntry 3 } + + stationUnassociatedNetbiosName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Netbios name of the station" + ::= { stationUnassociatedEntry 4 } + + stationUnassociatedMediaType OBJECT-TYPE + SYNTAX INTEGER { dot11b(1), dot11bg(2), dot11abg(3), dot11a(4), + dot11ab(5), dot11ag(6), dot11g(7), dot11n(8), + dot11bn(9), dot11gn(10), dot11bgn(11), dot11an(12), + dot11abn(13), dot11agn(14), dot11abgn(15), + dot11anac(16), dot11abgnac(17) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station media type" + ::= { stationUnassociatedEntry 5 } + + stationUnassociatedTxRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx rate of the station" + ::= { stationUnassociatedEntry 6 } + + stationUnassociatedRxRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx rate of the station" + ::= { stationUnassociatedEntry 7 } + + stationUnassociatedRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI (last packet received)" + ::= { stationUnassociatedEntry 8 } + + stationUnassociatedTime OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time (in seconds) since Rx" + ::= { stationUnassociatedEntry 9 } + + stationUnassociatedRSSIa1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a1" + ::= { stationUnassociatedEntry 10 } + + stationUnassociatedRSSIa2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a2" + ::= { stationUnassociatedEntry 11 } + + stationUnassociatedRSSIa3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a3" + ::= { stationUnassociatedEntry 12 } + + stationUnassociatedRSSIa4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a4" + ::= { stationUnassociatedEntry 13 } + + stationUnassociatedRSSIa5 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a5" + ::= { stationUnassociatedEntry 14 } + + stationUnassociatedRSSIa6 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a6" + ::= { stationUnassociatedEntry 15 } + + stationUnassociatedRSSIa7 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a7" + ::= { stationUnassociatedEntry 16 } + + stationUnassociatedRSSIa8 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a8" + ::= { stationUnassociatedEntry 17 } + + stationUnassociatedRSSIa9 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a9" + ::= { stationUnassociatedEntry 18 } + + stationUnassociatedRSSIa10 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a10" + ::= { stationUnassociatedEntry 19 } + + stationUnassociatedRSSIa11 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a11" + ::= { stationUnassociatedEntry 20 } + + stationUnassociatedRSSIa12 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a12" + ::= { stationUnassociatedEntry 21 } + + stationUnassociatedRSSIabg1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg1" + ::= { stationUnassociatedEntry 22 } + + stationUnassociatedRSSIabg2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg2" + ::= { stationUnassociatedEntry 23 } + + stationUnassociatedRSSIabg3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg3" + ::= { stationUnassociatedEntry 24 } + + stationUnassociatedRSSIabg4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg4" + ::= { stationUnassociatedEntry 25 } + + stationUnassociatedTimeRSSIa1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a1 (milliseconds)" + ::= { stationUnassociatedEntry 26 } + + stationUnassociatedTimeRSSIa2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a2 (milliseconds)" + ::= { stationUnassociatedEntry 27 } + + stationUnassociatedTimeRSSIa3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a3 (milliseconds)" + ::= { stationUnassociatedEntry 28 } + + stationUnassociatedTimeRSSIa4 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a4 (milliseconds)" + ::= { stationUnassociatedEntry 29 } + + stationUnassociatedTimeRSSIa5 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a5 (milliseconds)" + ::= { stationUnassociatedEntry 30 } + + stationUnassociatedTimeRSSIa6 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a6 (milliseconds)" + ::= { stationUnassociatedEntry 31 } + + stationUnassociatedTimeRSSIa7 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a7 (milliseconds)" + ::= { stationUnassociatedEntry 32 } + + stationUnassociatedTimeRSSIa8 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a8 (milliseconds)" + ::= { stationUnassociatedEntry 33 } + + stationUnassociatedTimeRSSIa9 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a9 (milliseconds)" + ::= { stationUnassociatedEntry 34 } + + stationUnassociatedTimeRSSIa10 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a10 (milliseconds)" + ::= { stationUnassociatedEntry 35 } + + stationUnassociatedTimeRSSIa11 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a11 (milliseconds)" + ::= { stationUnassociatedEntry 36 } + + stationUnassociatedTimeRSSIa12 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP a12 (milliseconds)" + ::= { stationUnassociatedEntry 37 } + + stationUnassociatedTimeRSSIabg1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP abg1 (milliseconds)" + ::= { stationUnassociatedEntry 38 } + + stationUnassociatedTimeRSSIabg2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP abg2 (milliseconds)" + ::= { stationUnassociatedEntry 39 } + + stationUnassociatedTimeRSSIabg3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP abg3 (milliseconds)" + ::= { stationUnassociatedEntry 40 } + + stationUnassociatedTimeRSSIabg4 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on last Probe Request on IAP abg4 (milliseconds)" + ::= { stationUnassociatedEntry 41 } + + stationDeauthMacAddress OBJECT-TYPE + SYNTAX DisplayString(SIZE(12..17)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Mac address of the station to deauthenticate" + ::= { stations 3 } + + stationAssocTable OBJECT-TYPE + SYNTAX SEQUENCE OF StationAssocEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of stations (indexed by station MAC address) associated with array" + ::= { stations 4 } + + stationAssocEntry OBJECT-TYPE + SYNTAX StationAssocEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for associated station" + INDEX { stationAssocMACAddress } + ::= { stationAssocTable 1 } + + StationAssocEntry ::= SEQUENCE { + stationAssocMACAddress DisplayString, + stationAssocManufacturer DisplayString, + stationAssocIPAddress DisplayString, + stationAssocNetbiosName DisplayString, + stationAssocIAP DisplayString, + stationAssocSSID DisplayString, + stationAssocVLAN Integer32, + stationAssocRSSI Integer32, + stationAssocTime DisplayString, + stationAssocTxRate Integer32, + stationAssocRxRate Integer32, + stationAssocRSSIa1 Integer32, + stationAssocRSSIa2 Integer32, + stationAssocRSSIa3 Integer32, + stationAssocRSSIa4 Integer32, + stationAssocRSSIa5 Integer32, + stationAssocRSSIa6 Integer32, + stationAssocRSSIa7 Integer32, + stationAssocRSSIa8 Integer32, + stationAssocRSSIa9 Integer32, + stationAssocRSSIa10 Integer32, + stationAssocRSSIa11 Integer32, + stationAssocRSSIa12 Integer32, + stationAssocRSSIabg1 Integer32, + stationAssocRSSIabg2 Integer32, + stationAssocRSSIabg3 Integer32, + stationAssocRSSIabg4 Integer32, + stationAssocEncType INTEGER, + stationAssocCipher INTEGER, + stationAssocKeyMgmt INTEGER, + stationAssocBand INTEGER, + stationAssocChannel Integer32, + stationAssocMediaType INTEGER, + stationAssocUserName DisplayString, + stationAssocTimeRSSIa1 Counter32, + stationAssocTimeRSSIa2 Counter32, + stationAssocTimeRSSIa3 Counter32, + stationAssocTimeRSSIa4 Counter32, + stationAssocTimeRSSIa5 Counter32, + stationAssocTimeRSSIa6 Counter32, + stationAssocTimeRSSIa7 Counter32, + stationAssocTimeRSSIa8 Counter32, + stationAssocTimeRSSIa9 Counter32, + stationAssocTimeRSSIa10 Counter32, + stationAssocTimeRSSIa11 Counter32, + stationAssocTimeRSSIa12 Counter32, + stationAssocTimeRSSIabg1 Counter32, + stationAssocTimeRSSIabg2 Counter32, + stationAssocTimeRSSIabg3 Counter32, + stationAssocTimeRSSIabg4 Counter32, + stationAssocHostname DisplayString, + stationAssocDeviceType DisplayString, + stationAssocDeviceClass DisplayString, + stationAssocUserAgent DisplayString, + stationAssocDeviceSource INTEGER, + stationAssocDeviceSourceIndex Integer32 + } + + stationAssocMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "MAC address of the station" + ::= { stationAssocEntry 1 } + + stationAssocManufacturer OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Manufacturer of the station's network card" + ::= { stationAssocEntry 2 } + + stationAssocIPAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IP Address of the station" + ::= { stationAssocEntry 3 } + + stationAssocNetbiosName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Netbios name of the station" + ::= { stationAssocEntry 4 } + + stationAssocIAP OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IAP station associated with" + ::= { stationAssocEntry 5 } + + stationAssocSSID OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "SSID station associated with" + ::= { stationAssocEntry 6 } + + stationAssocVLAN OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN of the station" + ::= { stationAssocEntry 7 } + + stationAssocRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI (last packet received)" + ::= { stationAssocEntry 8 } + + stationAssocTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time (in D:H:M) station is associated" + ::= { stationAssocEntry 9 } + + stationAssocTxRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx rate of the station" + ::= { stationAssocEntry 10 } + + stationAssocRxRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx rate of the station" + ::= { stationAssocEntry 11 } + + stationAssocRSSIa1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a1" + ::= { stationAssocEntry 12 } + + stationAssocRSSIa2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a2" + ::= { stationAssocEntry 13 } + + stationAssocRSSIa3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a3" + ::= { stationAssocEntry 14 } + + stationAssocRSSIa4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a4" + ::= { stationAssocEntry 15 } + + stationAssocRSSIa5 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a5" + ::= { stationAssocEntry 16 } + + stationAssocRSSIa6 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a6" + ::= { stationAssocEntry 17 } + + stationAssocRSSIa7 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a7" + ::= { stationAssocEntry 18 } + + stationAssocRSSIa8 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a8" + ::= { stationAssocEntry 19 } + + stationAssocRSSIa9 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a9" + ::= { stationAssocEntry 20 } + + stationAssocRSSIa10 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a10" + ::= { stationAssocEntry 21 } + + stationAssocRSSIa11 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a11" + ::= { stationAssocEntry 22 } + + stationAssocRSSIa12 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a12" + ::= { stationAssocEntry 23 } + + stationAssocRSSIabg1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg1" + ::= { stationAssocEntry 24 } + + stationAssocRSSIabg2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg2" + ::= { stationAssocEntry 25 } + + stationAssocRSSIabg3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg3" + ::= { stationAssocEntry 26 } + + stationAssocRSSIabg4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg4" + ::= { stationAssocEntry 27 } + + stationAssocEncType OBJECT-TYPE + SYNTAX INTEGER { none(0), wep(1), wpa(2), wpa2(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station encryption type" + ::= { stationAssocEntry 28 } + + stationAssocCipher OBJECT-TYPE + SYNTAX INTEGER { none(0), rc4(1), tkip(2), aes(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Cipher suite used by station" + ::= { stationAssocEntry 29 } + + stationAssocKeyMgmt OBJECT-TYPE + SYNTAX INTEGER { none(0), eap(1), psk(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Key management algorithm used by station" + ::= { stationAssocEntry 30 } + + stationAssocBand OBJECT-TYPE + SYNTAX INTEGER { dot11a(0), dot11bg(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "802.11 band station is on" + ::= { stationAssocEntry 31 } + + stationAssocChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Channel station is on" + ::= { stationAssocEntry 32 } + + stationAssocMediaType OBJECT-TYPE + SYNTAX INTEGER { dot11b(1), dot11bg(2), dot11abg(3), dot11a(4), + dot11ab(5), dot11ag(6), dot11g(7), dot11n(8), + dot11bn(9), dot11gn(10), dot11bgn(11), dot11an(12), + dot11abn(13), dot11agn(14), dot11abgn(15), + dot11anac(16), dot11abgnac(17) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station media type" + ::= { stationAssocEntry 33 } + + stationAssocUserName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station user name" + ::= { stationAssocEntry 34 } + + stationAssocTimeRSSIa1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a1 (milliseconds)" + ::= { stationAssocEntry 35 } + + stationAssocTimeRSSIa2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a2 (milliseconds)" + ::= { stationAssocEntry 36 } + + stationAssocTimeRSSIa3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a3 (milliseconds)" + ::= { stationAssocEntry 37 } + + stationAssocTimeRSSIa4 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a4 (milliseconds)" + ::= { stationAssocEntry 38 } + + stationAssocTimeRSSIa5 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a5 (milliseconds)" + ::= { stationAssocEntry 39 } + + stationAssocTimeRSSIa6 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a6 (milliseconds)" + ::= { stationAssocEntry 40 } + + stationAssocTimeRSSIa7 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a7 (milliseconds)" + ::= { stationAssocEntry 41 } + + stationAssocTimeRSSIa8 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a8 (milliseconds)" + ::= { stationAssocEntry 42 } + + stationAssocTimeRSSIa9 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a9 (milliseconds)" + ::= { stationAssocEntry 43 } + + stationAssocTimeRSSIa10 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a10 (milliseconds)" + ::= { stationAssocEntry 44 } + + stationAssocTimeRSSIa11 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a11 (milliseconds)" + ::= { stationAssocEntry 45 } + + stationAssocTimeRSSIa12 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a12 (milliseconds)" + ::= { stationAssocEntry 46 } + + stationAssocTimeRSSIabg1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg1 (milliseconds)" + ::= { stationAssocEntry 47 } + + stationAssocTimeRSSIabg2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg2 (milliseconds)" + ::= { stationAssocEntry 48 } + + stationAssocTimeRSSIabg3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg3 (milliseconds)" + ::= { stationAssocEntry 49 } + + stationAssocTimeRSSIabg4 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg4 (milliseconds)" + ::= { stationAssocEntry 50 } + + stationAssocHostname OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station hostname" + ::= { stationAssocEntry 51 } + + stationAssocDeviceType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device type" + ::= { stationAssocEntry 52 } + + stationAssocDeviceClass OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device class" + ::= { stationAssocEntry 53 } + + stationAssocUserAgent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "User-agent string" + ::= { stationAssocEntry 54 } + + stationAssocDeviceSource OBJECT-TYPE + SYNTAX INTEGER { none(0), manufacturer(1), netbios-name(2), + dhcp-hostname(3), user-agent-string(4), + internal-rules(5), external-rules(6), cache(7) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device source" + ::= { stationAssocEntry 55 } + + stationAssocDeviceSourceIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device source index" + ::= { stationAssocEntry 56 } + + stationUnassocTable OBJECT-TYPE + SYNTAX SEQUENCE OF StationUnassocEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of unassociated stations (indexed by station MAC address)" + ::= { stations 5 } + + stationUnassocEntry OBJECT-TYPE + SYNTAX StationUnassocEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for unassociated station" + INDEX { stationUnassocMACAddress } + ::= { stationUnassocTable 1 } + + StationUnassocEntry ::= SEQUENCE { + stationUnassocMACAddress DisplayString, + stationUnassocManufacturer DisplayString, + stationUnassocNetbiosName DisplayString, + stationUnassocMediaType INTEGER, + stationUnassocTxRate Integer32, + stationUnassocRxRate Integer32, + stationUnassocRSSI Integer32, + stationUnassocTime Counter32, + stationUnassocRSSIa1 Integer32, + stationUnassocRSSIa2 Integer32, + stationUnassocRSSIa3 Integer32, + stationUnassocRSSIa4 Integer32, + stationUnassocRSSIa5 Integer32, + stationUnassocRSSIa6 Integer32, + stationUnassocRSSIa7 Integer32, + stationUnassocRSSIa8 Integer32, + stationUnassocRSSIa9 Integer32, + stationUnassocRSSIa10 Integer32, + stationUnassocRSSIa11 Integer32, + stationUnassocRSSIa12 Integer32, + stationUnassocRSSIabg1 Integer32, + stationUnassocRSSIabg2 Integer32, + stationUnassocRSSIabg3 Integer32, + stationUnassocRSSIabg4 Integer32, + stationUnassocTimeRSSIa1 Counter32, + stationUnassocTimeRSSIa2 Counter32, + stationUnassocTimeRSSIa3 Counter32, + stationUnassocTimeRSSIa4 Counter32, + stationUnassocTimeRSSIa5 Counter32, + stationUnassocTimeRSSIa6 Counter32, + stationUnassocTimeRSSIa7 Counter32, + stationUnassocTimeRSSIa8 Counter32, + stationUnassocTimeRSSIa9 Counter32, + stationUnassocTimeRSSIa10 Counter32, + stationUnassocTimeRSSIa11 Counter32, + stationUnassocTimeRSSIa12 Counter32, + stationUnassocTimeRSSIabg1 Counter32, + stationUnassocTimeRSSIabg2 Counter32, + stationUnassocTimeRSSIabg3 Counter32, + stationUnassocTimeRSSIabg4 Counter32 + } + + stationUnassocMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "MAC address of the station" + ::= { stationUnassocEntry 1 } + + stationUnassocManufacturer OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Manufacturer of the station's network card" + ::= { stationUnassocEntry 2 } + + stationUnassocNetbiosName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Netbios name of the station" + ::= { stationUnassocEntry 3 } + + stationUnassocMediaType OBJECT-TYPE + SYNTAX INTEGER { dot11b(1), dot11bg(2), dot11abg(3), dot11a(4), + dot11ab(5), dot11ag(6), dot11g(7), dot11n(8), + dot11bn(9), dot11gn(10), dot11bgn(11), dot11an(12), + dot11abn(13), dot11agn(14), dot11abgn(15), + dot11anac(16), dot11abgnac(17) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station media type" + ::= { stationUnassocEntry 4 } + + stationUnassocTxRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx rate of the station" + ::= { stationUnassocEntry 5 } + + stationUnassocRxRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx rate of the station" + ::= { stationUnassocEntry 6 } + + stationUnassocRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI (last packet received)" + ::= { stationUnassocEntry 7 } + + stationUnassocTime OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time (in seconds) since Rx" + ::= { stationUnassocEntry 8 } + + stationUnassocRSSIa1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a1" + ::= { stationUnassocEntry 9 } + + stationUnassocRSSIa2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a2" + ::= { stationUnassocEntry 10 } + + stationUnassocRSSIa3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a3" + ::= { stationUnassocEntry 11 } + + stationUnassocRSSIa4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a4" + ::= { stationUnassocEntry 12 } + + stationUnassocRSSIa5 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a5" + ::= { stationUnassocEntry 13 } + + stationUnassocRSSIa6 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a6" + ::= { stationUnassocEntry 14 } + + stationUnassocRSSIa7 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a7" + ::= { stationUnassocEntry 15 } + + stationUnassocRSSIa8 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a8" + ::= { stationUnassocEntry 16 } + + stationUnassocRSSIa9 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a9" + ::= { stationUnassocEntry 17 } + + stationUnassocRSSIa10 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a10" + ::= { stationUnassocEntry 18 } + + stationUnassocRSSIa11 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a11" + ::= { stationUnassocEntry 19 } + + stationUnassocRSSIa12 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP a12" + ::= { stationUnassocEntry 20 } + + stationUnassocRSSIabg1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg1" + ::= { stationUnassocEntry 21 } + + stationUnassocRSSIabg2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg2" + ::= { stationUnassocEntry 22 } + + stationUnassocRSSIabg3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg3" + ::= { stationUnassocEntry 23 } + + stationUnassocRSSIabg4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's RSSI for last Probe Request on IAP abg4" + ::= { stationUnassocEntry 24 } + + stationUnassocTimeRSSIa1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a1 (milliseconds)" + ::= { stationUnassocEntry 25 } + + stationUnassocTimeRSSIa2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a2 (milliseconds)" + ::= { stationUnassocEntry 26 } + + stationUnassocTimeRSSIa3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a3 (milliseconds)" + ::= { stationUnassocEntry 27 } + + stationUnassocTimeRSSIa4 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a4 (milliseconds)" + ::= { stationUnassocEntry 28 } + + stationUnassocTimeRSSIa5 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a5 (milliseconds)" + ::= { stationUnassocEntry 29 } + + stationUnassocTimeRSSIa6 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a6 (milliseconds)" + ::= { stationUnassocEntry 30 } + + stationUnassocTimeRSSIa7 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a7 (milliseconds)" + ::= { stationUnassocEntry 31 } + + stationUnassocTimeRSSIa8 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a8 (milliseconds)" + ::= { stationUnassocEntry 32 } + + stationUnassocTimeRSSIa9 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a9 (milliseconds)" + ::= { stationUnassocEntry 33 } + + stationUnassocTimeRSSIa10 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a10 (milliseconds)" + ::= { stationUnassocEntry 34 } + + stationUnassocTimeRSSIa11 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a11 (milliseconds)" + ::= { stationUnassocEntry 35 } + + stationUnassocTimeRSSIa12 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP a12 (milliseconds)" + ::= { stationUnassocEntry 36 } + + stationUnassocTimeRSSIabg1 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg1 (milliseconds)" + ::= { stationUnassocEntry 37 } + + stationUnassocTimeRSSIabg2 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg2 (milliseconds)" + ::= { stationUnassocEntry 38 } + + stationUnassocTimeRSSIabg3 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg3 (milliseconds)" + ::= { stationUnassocEntry 39 } + + stationUnassocTimeRSSIabg4 OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station's elapsed time since last Probe Request on IAP abg4 (milliseconds)" + ::= { stationUnassocEntry 40 } + + stationAssurance OBJECT IDENTIFIER ::= { stations 6 } + +-- +-- STATION ASSURANCE +-- + + stationAssuranceEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable station assurance" + ::= { stationAssurance 1 } + + stationAssurancePeriod OBJECT-TYPE + SYNTAX Integer32(60..9999) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Station assurance check period (in seconds)" + ::= { stationAssurance 2 } + + stationAssuranceAssocTime OBJECT-TYPE + SYNTAX Integer32(1..999) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Minimum average associated time (in seconds)" + ::= { stationAssurance 3 } + + stationAssuranceAuthFailures OBJECT-TYPE + SYNTAX Integer32(1..99) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum number of authentication failures" + ::= { stationAssurance 4 } + + stationAssuranceErrorRate OBJECT-TYPE + SYNTAX Integer32(1..99) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum packet error rate (as a percentage)" + ::= { stationAssurance 5 } + + stationAssuranceRetryRate OBJECT-TYPE + SYNTAX Integer32(1..99) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum packet retry rate (as a percentage)" + ::= { stationAssurance 6 } + + stationAssuranceDataRate OBJECT-TYPE + SYNTAX Integer32(1..99) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Minimum packet data rate (in Mbps)" + ::= { stationAssurance 7 } + + stationAssuranceRSSI OBJECT-TYPE + SYNTAX Integer32(-90..-50) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Minimum received signal strength (in dB)" + ::= { stationAssurance 8 } + + stationAssuranceSNR OBJECT-TYPE + SYNTAX Integer32(1..25) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Minimum signal to noise ratio (in dB)" + ::= { stationAssurance 9 } + + stationAssuranceDistance OBJECT-TYPE + SYNTAX Integer32(1..9999) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum distance from array (in feet)" + ::= { stationAssurance 10 } + + stationAssuranceTable OBJECT-TYPE + SYNTAX SEQUENCE OF StationAssuranceEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station assurance table" + ::= { stationAssurance 11 } + + stationAssuranceEntry OBJECT-TYPE + SYNTAX StationAssuranceEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station assurance table entry" + INDEX { staAssuranceIndex } + ::= { stationAssuranceTable 1 } + + StationAssuranceEntry ::= SEQUENCE { + staAssuranceIndex Integer32, + staAssuranceMACAddress DisplayString, + staAssuranceIPAddress DisplayString, + staAssuranceNetbiosName DisplayString, + staAssuranceManufacturer DisplayString, + staAssuranceTime DisplayString, + staAssuranceTimestamp Counter32, + staAssuranceAssocTime Integer32, + staAssuranceAuthFailures Integer32, + staAssuranceErrorRate Integer32, + staAssuranceRetryRate Integer32, + staAssuranceDataRate Integer32, + staAssuranceRSSI Integer32, + staAssuranceSNR Integer32, + staAssuranceDistance Integer32, + staAssuranceDeviceType DisplayString, + staAssuranceDeviceClass DisplayString, + staAssuranceActiveAlarmTimestamp Counter32, + staAssuranceActiveAlarmType INTEGER, + staAssuranceAssocTimeTimestamp Counter32, + staAssuranceAuthFailuresTimestamp Counter32, + staAssuranceErrorRateTimestamp Counter32, + staAssuranceRetryRateTimestamp Counter32, + staAssuranceDataRateTimestamp Counter32, + staAssuranceRSSITimestamp Counter32, + staAssuranceSNRTimestamp Counter32, + staAssuranceDistanceTimestamp Counter32, + staAssuranceAssocTimeActive INTEGER, + staAssuranceAuthFailuresActive INTEGER, + staAssuranceErrorRateActive INTEGER, + staAssuranceRetryRateActive INTEGER, + staAssuranceDataRateActive INTEGER, + staAssuranceRSSIActive INTEGER, + staAssuranceSNRActive INTEGER, + staAssuranceDistanceActive INTEGER, + staAssuranceAlarmType INTEGER + } + + staAssuranceIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station assurance index" + ::= { stationAssuranceEntry 1 } + + staAssuranceMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station MAC address" + ::= { stationAssuranceEntry 2 } + + staAssuranceIPAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station IP Address" + ::= { stationAssuranceEntry 3 } + + staAssuranceNetbiosName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station netbios name" + ::= { stationAssuranceEntry 4 } + + staAssuranceManufacturer OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Manufacturer of the station's network card" + ::= { stationAssuranceEntry 5 } + + staAssuranceTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last alarm time" + ::= { stationAssuranceEntry 6 } + + staAssuranceTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last alarm time (in seconds)" + ::= { stationAssuranceEntry 7 } + + staAssuranceAssocTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Associated time" + ::= { stationAssuranceEntry 8 } + + staAssuranceAuthFailures OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of authentication failures" + ::= { stationAssuranceEntry 9 } + + staAssuranceErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packet error rate" + ::= { stationAssuranceEntry 10 } + + staAssuranceRetryRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packet retry rate" + ::= { stationAssuranceEntry 11 } + + staAssuranceDataRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packet data rate" + ::= { stationAssuranceEntry 12 } + + staAssuranceRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received signal strength" + ::= { stationAssuranceEntry 13 } + + staAssuranceSNR OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Signal to noise ratio" + ::= { stationAssuranceEntry 14 } + + staAssuranceDistance OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Distance from array" + ::= { stationAssuranceEntry 15 } + + staAssuranceDeviceType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device type" + ::= { stationAssuranceEntry 16 } + + staAssuranceDeviceClass OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device class" + ::= { stationAssuranceEntry 17 } + + staAssuranceActiveAlarmTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last active alarm time (in seconds)" + ::= { stationAssuranceEntry 18 } + + staAssuranceActiveAlarmType OBJECT-TYPE + SYNTAX INTEGER { none(0), assoc-time(1), auth-fails(2), + error-rate(3), retry-rate(4), data-rate(5), + rssi(6), snr(7), distance(8) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last active alarm type" + ::= { stationAssuranceEntry 19 } + + staAssuranceAssocTimeTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last associated time alarm time (in seconds)" + ::= { stationAssuranceEntry 20 } + + staAssuranceAuthFailuresTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last authentication failures alarm time (in seconds)" + ::= { stationAssuranceEntry 21 } + + staAssuranceErrorRateTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last packet error rate alarm time (in seconds)" + ::= { stationAssuranceEntry 22 } + + staAssuranceRetryRateTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last packet retry rate alarm time (in seconds)" + ::= { stationAssuranceEntry 23 } + + staAssuranceDataRateTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last packet data rate alarm time (in seconds)" + ::= { stationAssuranceEntry 24 } + + staAssuranceRSSITimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last RSSI alarm time (in seconds)" + ::= { stationAssuranceEntry 25 } + + staAssuranceSNRTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last SNR alarm time (in seconds)" + ::= { stationAssuranceEntry 26 } + + staAssuranceDistanceTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last distance alarm time (in seconds)" + ::= { stationAssuranceEntry 27 } + + staAssuranceAssocTimeActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether associated time alarm is currently active" + ::= { stationAssuranceEntry 28 } + + staAssuranceAuthFailuresActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether authentication failures alarm is currently active" + ::= { stationAssuranceEntry 29 } + + staAssuranceErrorRateActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether error rate alarm is currently active" + ::= { stationAssuranceEntry 30 } + + staAssuranceRetryRateActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether retry rate alarm is currently active" + ::= { stationAssuranceEntry 31 } + + staAssuranceDataRateActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether data rate alarm is currently active" + ::= { stationAssuranceEntry 32 } + + staAssuranceRSSIActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether RSSI alarm is currently active" + ::= { stationAssuranceEntry 33 } + + staAssuranceSNRActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether SNR alarm is currently active" + ::= { stationAssuranceEntry 34 } + + staAssuranceDistanceActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether distance alarm is currently active" + ::= { stationAssuranceEntry 35 } + + staAssuranceAlarmType OBJECT-TYPE + SYNTAX INTEGER { none(0), assoc-time(1), auth-fails(2), + error-rate(3), retry-rate(4), data-rate(5), + rssi(6), snr(7), distance(8) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last alarm type" + ::= { stationAssuranceEntry 36 } + + stationAssurTable OBJECT-TYPE + SYNTAX SEQUENCE OF StationAssurEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station assurance table (indexed by station MAC address)" + ::= { stationAssurance 12 } + + stationAssurEntry OBJECT-TYPE + SYNTAX StationAssurEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station assurance table entry" + INDEX { staAssurMACAddress } + ::= { stationAssurTable 1 } + + StationAssurEntry ::= SEQUENCE { + staAssurMACAddress DisplayString, + staAssurIPAddress DisplayString, + staAssurNetbiosName DisplayString, + staAssurManufacturer DisplayString, + staAssurTime DisplayString, + staAssurTimestamp Counter32, + staAssurAssocTime Integer32, + staAssurAuthFailures Integer32, + staAssurErrorRate Integer32, + staAssurRetryRate Integer32, + staAssurDataRate Integer32, + staAssurRSSI Integer32, + staAssurSNR Integer32, + staAssurDistance Integer32, + staAssurDeviceType DisplayString, + staAssurDeviceClass DisplayString, + staAssurActiveAlarmTimestamp Counter32, + staAssurActiveAlarmType INTEGER, + staAssurAssocTimeTimestamp Counter32, + staAssurAuthFailuresTimestamp Counter32, + staAssurErrorRateTimestamp Counter32, + staAssurRetryRateTimestamp Counter32, + staAssurDataRateTimestamp Counter32, + staAssurRSSITimestamp Counter32, + staAssurSNRTimestamp Counter32, + staAssurDistanceTimestamp Counter32, + staAssurAssocTimeActive INTEGER, + staAssurAuthFailuresActive INTEGER, + staAssurErrorRateActive INTEGER, + staAssurRetryRateActive INTEGER, + staAssurDataRateActive INTEGER, + staAssurRSSIActive INTEGER, + staAssurSNRActive INTEGER, + staAssurDistanceActive INTEGER, + staAssurAlarmType INTEGER + } + + staAssurMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station MAC address" + ::= { stationAssurEntry 1 } + + staAssurIPAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station IP Address" + ::= { stationAssurEntry 2 } + + staAssurNetbiosName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station netbios name" + ::= { stationAssurEntry 3 } + + staAssurManufacturer OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Manufacturer of the station's network card" + ::= { stationAssurEntry 4 } + + staAssurTime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last alarm time" + ::= { stationAssurEntry 5 } + + staAssurTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last alarm time (in seconds)" + ::= { stationAssurEntry 6 } + + staAssurAssocTime OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Associated time" + ::= { stationAssurEntry 7 } + + staAssurAuthFailures OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Number of authentication failures" + ::= { stationAssurEntry 8 } + + staAssurErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packet error rate" + ::= { stationAssurEntry 9 } + + staAssurRetryRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packet retry rate" + ::= { stationAssurEntry 10 } + + staAssurDataRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packet data rate" + ::= { stationAssurEntry 11 } + + staAssurRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Received signal strength" + ::= { stationAssurEntry 12 } + + staAssurSNR OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Signal to noise ratio" + ::= { stationAssurEntry 13 } + + staAssurDistance OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Distance from array" + ::= { stationAssurEntry 14 } + + staAssurDeviceType OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device type" + ::= { stationAssurEntry 15 } + + staAssurDeviceClass OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Station device class" + ::= { stationAssurEntry 16 } + + staAssurActiveAlarmTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last active alarm time (in seconds)" + ::= { stationAssurEntry 17 } + + staAssurActiveAlarmType OBJECT-TYPE + SYNTAX INTEGER { none(0), assoc-time(1), auth-fails(2), + error-rate(3), retry-rate(4), data-rate(5), + rssi(6), snr(7), distance(8) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last active alarm type" + ::= { stationAssurEntry 18 } + + staAssurAssocTimeTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last associated time alarm time (in seconds)" + ::= { stationAssurEntry 19 } + + staAssurAuthFailuresTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last authentication failures alarm time (in seconds)" + ::= { stationAssurEntry 20 } + + staAssurErrorRateTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last packet error rate alarm time (in seconds)" + ::= { stationAssurEntry 21 } + + staAssurRetryRateTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last packet retry rate alarm time (in seconds)" + ::= { stationAssurEntry 22 } + + staAssurDataRateTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last packet data rate alarm time (in seconds)" + ::= { stationAssurEntry 23 } + + staAssurRSSITimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last RSSI alarm time (in seconds)" + ::= { stationAssurEntry 24 } + + staAssurSNRTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last SNR alarm time (in seconds)" + ::= { stationAssurEntry 25 } + + staAssurDistanceTimestamp OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last distance alarm time (in seconds)" + ::= { stationAssurEntry 26 } + + staAssurAssocTimeActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether associated time alarm is currently active" + ::= { stationAssurEntry 27 } + + staAssurAuthFailuresActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether authentication failures alarm is currently active" + ::= { stationAssurEntry 28 } + + staAssurErrorRateActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether error rate alarm is currently active" + ::= { stationAssurEntry 29 } + + staAssurRetryRateActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether retry rate alarm is currently active" + ::= { stationAssurEntry 30 } + + staAssurDataRateActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether data rate alarm is currently active" + ::= { stationAssurEntry 31 } + + staAssurRSSIActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether RSSI alarm is currently active" + ::= { stationAssurEntry 32 } + + staAssurSNRActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether SNR alarm is currently active" + ::= { stationAssurEntry 33 } + + staAssurDistanceActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether distance alarm is currently active" + ::= { stationAssurEntry 34 } + + staAssurAlarmType OBJECT-TYPE + SYNTAX INTEGER { none(0), assoc-time(1), auth-fails(2), + error-rate(3), retry-rate(4), data-rate(5), + rssi(6), snr(7), distance(8) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Last alarm type" + ::= { stationAssurEntry 35 } + + stationAssuranceTableClear OBJECT-TYPE + SYNTAX INTEGER { history(0), all (1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Clear station assurance table information" + ::= { stationAssurance 13 } + + stationAssuranceTablePeriod OBJECT-TYPE + SYNTAX Counter32(0..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify period for station assurance table entries (in seconds, 0 - all table entries)" + ::= { stationAssurance 14 } + + stationUnassociatedTablePeriod OBJECT-TYPE + SYNTAX Counter32(0..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify period for unassociated station table entries (in seconds, 0 - all table entries)" + ::= { stations 7 } + +-- +-- STATISTICS +-- + + ethStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF EthStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of ethernet statistics" + ::= { statistics 1 } + + ethStatsEntry OBJECT-TYPE + SYNTAX EthStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for ethernet statistics" + INDEX { ethStatsIndex } + ::= { ethStatsTable 1 } + + EthStatsEntry ::= SEQUENCE { + ethStatsIndex Integer32, + ethStatsIfaceName DisplayString, + ethStatsIfaceStatus INTEGER, + ethStatsIfaceLink INTEGER, + ethStatsIfaceDuplex INTEGER, + ethStatsIfaceSpeed Integer32, + ethStatsRxBytes Counter64, + ethStatsRxPackets Counter64, + ethStatsRxCompressed Counter64, + ethStatsRxMulticast Counter64, + ethStatsRxDropped Counter64, + ethStatsRxFifoErrors Counter64, + ethStatsRxFrameErrors Counter64, + ethStatsRxTotalErrors Counter64, + ethStatsTxBytes Counter64, + ethStatsTxPackets Counter64, + ethStatsTxCompressed Counter64, + ethStatsTxCarrierErrors Counter64, + ethStatsTxDropped Counter64, + ethStatsTxFifoErrors Counter64, + ethStatsTxCollisions Counter64, + ethStatsTxTotalErrors Counter64, + ethStatsTimePeriod Counter32 + } + + ethStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Ethernet statistics index" + ::= { ethStatsEntry 1 } + + ethStatsIfaceName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface name" + ::= { ethStatsEntry 2 } + + ethStatsIfaceStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface status" + ::= { ethStatsEntry 3 } + + ethStatsIfaceLink OBJECT-TYPE + SYNTAX INTEGER { down(0), up(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface link status" + ::= { ethStatsEntry 4 } + + ethStatsIfaceDuplex OBJECT-TYPE + SYNTAX INTEGER { half(0), full(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface duplex" + ::= { ethStatsEntry 5 } + + ethStatsIfaceSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface speed" + ::= { ethStatsEntry 6 } + + ethStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { ethStatsEntry 7 } + + ethStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { ethStatsEntry 8 } + + ethStatsRxCompressed OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Compressed packets received" + ::= { ethStatsEntry 9 } + + ethStatsRxMulticast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Multicast packets received" + ::= { ethStatsEntry 10 } + + ethStatsRxDropped OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx dropped packets" + ::= { ethStatsEntry 11 } + + ethStatsRxFifoErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx fifo errors" + ::= { ethStatsEntry 12 } + + ethStatsRxFrameErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx frame errors" + ::= { ethStatsEntry 13 } + + ethStatsRxTotalErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx total errors" + ::= { ethStatsEntry 14 } + + ethStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { ethStatsEntry 15 } + + ethStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { ethStatsEntry 16 } + + ethStatsTxCompressed OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Compressed packets transmitted" + ::= { ethStatsEntry 17 } + + ethStatsTxCarrierErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx carrier errors" + ::= { ethStatsEntry 18 } + + ethStatsTxDropped OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx dropped packets" + ::= { ethStatsEntry 19 } + + ethStatsTxFifoErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx fifo errors" + ::= { ethStatsEntry 20 } + + ethStatsTxCollisions OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx collisions" + ::= { ethStatsEntry 21 } + + ethStatsTxTotalErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx total errors" + ::= { ethStatsEntry 22 } + + ethStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which stats were collected" + ::= { ethStatsEntry 23 } + + iapStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF IapStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of IAP statistics" + ::= { statistics 2 } + + iapStatsEntry OBJECT-TYPE + SYNTAX IapStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for IAP statistics" + INDEX { iapStatsIndex } + ::= { iapStatsTable 1 } + + IapStatsEntry ::= SEQUENCE { + iapStatsIndex Integer32, + iapStatsIfaceName DisplayString, + iapStatsRxBytes Counter64, + iapStatsRxPackets Counter64, + iapStatsRxUnicast Counter64, + iapStatsRxMulticast Counter64, + iapStatsRxBroadcast Counter64, + iapStatsRxManagement Counter64, + iapStatsRxBeacons Counter64, + iapStatsRxRTS Counter64, + iapStatsRxCTS Counter64, + iapStatsRxFragments Counter64, + iapStatsRxTotalErrors Counter64, + iapStatsRxTotalRetries Counter64, + iapStatsRxDropped Counter64, + iapStatsRxUnassociated Counter64, + iapStatsRxCRCErrors Counter64, + iapStatsRxFragErrors Counter64, + iapStatsRxEncErrors Counter64, + iapStatsRxOverruns Counter64, + iapStatsRxDuplicates Counter64, + iapStatsRxRate1Bytes Counter64, + iapStatsRxRate1Packets Counter64, + iapStatsRxRate1Errors Counter64, + iapStatsRxRate1Retries Counter64, + iapStatsRxRate2Bytes Counter64, + iapStatsRxRate2Packets Counter64, + iapStatsRxRate2Errors Counter64, + iapStatsRxRate2Retries Counter64, + iapStatsRxRate5Bytes Counter64, + iapStatsRxRate5Packets Counter64, + iapStatsRxRate5Errors Counter64, + iapStatsRxRate5Retries Counter64, + iapStatsRxRate11Bytes Counter64, + iapStatsRxRate11Packets Counter64, + iapStatsRxRate11Errors Counter64, + iapStatsRxRate11Retries Counter64, + iapStatsRxRate6Bytes Counter64, + iapStatsRxRate6Packets Counter64, + iapStatsRxRate6Errors Counter64, + iapStatsRxRate6Retries Counter64, + iapStatsRxRate9Bytes Counter64, + iapStatsRxRate9Packets Counter64, + iapStatsRxRate9Errors Counter64, + iapStatsRxRate9Retries Counter64, + iapStatsRxRate12Bytes Counter64, + iapStatsRxRate12Packets Counter64, + iapStatsRxRate12Errors Counter64, + iapStatsRxRate12Retries Counter64, + iapStatsRxRate18Bytes Counter64, + iapStatsRxRate18Packets Counter64, + iapStatsRxRate18Errors Counter64, + iapStatsRxRate18Retries Counter64, + iapStatsRxRate24Bytes Counter64, + iapStatsRxRate24Packets Counter64, + iapStatsRxRate24Errors Counter64, + iapStatsRxRate24Retries Counter64, + iapStatsRxRate36Bytes Counter64, + iapStatsRxRate36Packets Counter64, + iapStatsRxRate36Errors Counter64, + iapStatsRxRate36Retries Counter64, + iapStatsRxRate48Bytes Counter64, + iapStatsRxRate48Packets Counter64, + iapStatsRxRate48Errors Counter64, + iapStatsRxRate48Retries Counter64, + iapStatsRxRate54Bytes Counter64, + iapStatsRxRate54Packets Counter64, + iapStatsRxRate54Errors Counter64, + iapStatsRxRate54Retries Counter64, + iapStatsTxBytes Counter64, + iapStatsTxPackets Counter64, + iapStatsTxUnicast Counter64, + iapStatsTxMulticast Counter64, + iapStatsTxBroadcast Counter64, + iapStatsTxManagement Counter64, + iapStatsTxBeacons Counter64, + iapStatsTxRTS Counter64, + iapStatsTxCTS Counter64, + iapStatsTxFragments Counter64, + iapStatsTxTotalErrors Counter64, + iapStatsTxTotalRetries Counter64, + iapStatsTxDropped Counter64, + iapStatsTxUnassociated Counter64, + iapStatsTxACKFailures Counter64, + iapStatsTxRTSFailures Counter64, + iapStatsTxRTSRetries Counter64, + iapStatsTxSingleRetries Counter64, + iapStatsTxMultipleRetries Counter64, + iapStatsTxRate1Bytes Counter64, + iapStatsTxRate1Packets Counter64, + iapStatsTxRate1Errors Counter64, + iapStatsTxRate1Retries Counter64, + iapStatsTxRate2Bytes Counter64, + iapStatsTxRate2Packets Counter64, + iapStatsTxRate2Errors Counter64, + iapStatsTxRate2Retries Counter64, + iapStatsTxRate5Bytes Counter64, + iapStatsTxRate5Packets Counter64, + iapStatsTxRate5Errors Counter64, + iapStatsTxRate5Retries Counter64, + iapStatsTxRate11Bytes Counter64, + iapStatsTxRate11Packets Counter64, + iapStatsTxRate11Errors Counter64, + iapStatsTxRate11Retries Counter64, + iapStatsTxRate6Bytes Counter64, + iapStatsTxRate6Packets Counter64, + iapStatsTxRate6Errors Counter64, + iapStatsTxRate6Retries Counter64, + iapStatsTxRate9Bytes Counter64, + iapStatsTxRate9Packets Counter64, + iapStatsTxRate9Errors Counter64, + iapStatsTxRate9Retries Counter64, + iapStatsTxRate12Bytes Counter64, + iapStatsTxRate12Packets Counter64, + iapStatsTxRate12Errors Counter64, + iapStatsTxRate12Retries Counter64, + iapStatsTxRate18Bytes Counter64, + iapStatsTxRate18Packets Counter64, + iapStatsTxRate18Errors Counter64, + iapStatsTxRate18Retries Counter64, + iapStatsTxRate24Bytes Counter64, + iapStatsTxRate24Packets Counter64, + iapStatsTxRate24Errors Counter64, + iapStatsTxRate24Retries Counter64, + iapStatsTxRate36Bytes Counter64, + iapStatsTxRate36Packets Counter64, + iapStatsTxRate36Errors Counter64, + iapStatsTxRate36Retries Counter64, + iapStatsTxRate48Bytes Counter64, + iapStatsTxRate48Packets Counter64, + iapStatsTxRate48Errors Counter64, + iapStatsTxRate48Retries Counter64, + iapStatsTxRate54Bytes Counter64, + iapStatsTxRate54Packets Counter64, + iapStatsTxRate54Errors Counter64, + iapStatsTxRate54Retries Counter64, + iapStatsTxUtilization Counter64, + iapStatsNoiseTotal Counter64, + iapStatsNoiseDenominator Counter64, + iapStatsTimePeriod Counter32 + } + + iapStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "IAP statistics index" + ::= { iapStatsEntry 1 } + + iapStatsIfaceName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface name" + ::= { iapStatsEntry 2 } + + iapStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { iapStatsEntry 3 } + + iapStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { iapStatsEntry 4 } + + iapStatsRxUnicast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Unicast packets received" + ::= { iapStatsEntry 5 } + + iapStatsRxMulticast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Multicast packets received" + ::= { iapStatsEntry 6 } + + iapStatsRxBroadcast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Broadcast packets received" + ::= { iapStatsEntry 7 } + + iapStatsRxManagement OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Management packets received" + ::= { iapStatsEntry 8 } + + iapStatsRxBeacons OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Beacons received" + ::= { iapStatsEntry 9 } + + iapStatsRxRTS OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RTS packets received" + ::= { iapStatsEntry 10 } + + iapStatsRxCTS OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "CTS packets received" + ::= { iapStatsEntry 11 } + + iapStatsRxFragments OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Fragments received" + ::= { iapStatsEntry 12 } + + iapStatsRxTotalErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx total errors" + ::= { iapStatsEntry 13 } + + iapStatsRxTotalRetries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx total retries" + ::= { iapStatsEntry 14 } + + iapStatsRxDropped OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx dropped packets" + ::= { iapStatsEntry 15 } + + iapStatsRxUnassociated OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx packets from unassociated stations" + ::= { iapStatsEntry 16 } + + iapStatsRxCRCErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx CRC errors" + ::= { iapStatsEntry 17 } + + iapStatsRxFragErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx fragment errors" + ::= { iapStatsEntry 18 } + + iapStatsRxEncErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx encryption errors" + ::= { iapStatsEntry 19 } + + iapStatsRxOverruns OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx overruns" + ::= { iapStatsEntry 20 } + + iapStatsRxDuplicates OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx duplicates" + ::= { iapStatsEntry 21 } + + iapStatsRxRate1Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 1Mbps" + ::= { iapStatsEntry 22 } + + iapStatsRxRate1Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 1Mbps" + ::= { iapStatsEntry 23 } + + iapStatsRxRate1Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 1Mbps" + ::= { iapStatsEntry 24 } + + iapStatsRxRate1Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 1Mbps" + ::= { iapStatsEntry 25 } + + iapStatsRxRate2Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 2Mbps" + ::= { iapStatsEntry 26 } + + iapStatsRxRate2Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 2Mbps" + ::= { iapStatsEntry 27 } + + iapStatsRxRate2Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 2Mbps" + ::= { iapStatsEntry 28 } + + iapStatsRxRate2Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 2Mbps" + ::= { iapStatsEntry 29 } + + iapStatsRxRate5Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 5.5Mbps" + ::= { iapStatsEntry 30 } + + iapStatsRxRate5Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 5.5Mbps" + ::= { iapStatsEntry 31 } + + iapStatsRxRate5Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 5.5Mbps" + ::= { iapStatsEntry 32 } + + iapStatsRxRate5Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 5.5Mbps" + ::= { iapStatsEntry 33 } + + iapStatsRxRate11Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 11Mbps" + ::= { iapStatsEntry 34 } + + iapStatsRxRate11Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 11Mbps" + ::= { iapStatsEntry 35 } + + iapStatsRxRate11Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 11Mbps" + ::= { iapStatsEntry 36 } + + iapStatsRxRate11Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 11Mbps" + ::= { iapStatsEntry 37 } + + iapStatsRxRate6Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 6Mbps" + ::= { iapStatsEntry 38 } + + iapStatsRxRate6Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 6Mbps" + ::= { iapStatsEntry 39 } + + iapStatsRxRate6Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 6Mbps" + ::= { iapStatsEntry 40 } + + iapStatsRxRate6Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 6Mbps" + ::= { iapStatsEntry 41 } + + iapStatsRxRate9Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 9Mbps" + ::= { iapStatsEntry 42 } + + iapStatsRxRate9Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 9Mbps" + ::= { iapStatsEntry 43 } + + iapStatsRxRate9Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 9Mbps" + ::= { iapStatsEntry 44 } + + iapStatsRxRate9Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 9Mbps" + ::= { iapStatsEntry 45 } + + iapStatsRxRate12Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 12Mbps" + ::= { iapStatsEntry 46 } + + iapStatsRxRate12Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 12Mbps" + ::= { iapStatsEntry 47 } + + iapStatsRxRate12Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 12Mbps" + ::= { iapStatsEntry 48 } + + iapStatsRxRate12Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 12Mbps" + ::= { iapStatsEntry 49 } + + iapStatsRxRate18Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 18Mbps" + ::= { iapStatsEntry 50 } + + iapStatsRxRate18Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 18Mbps" + ::= { iapStatsEntry 51 } + + iapStatsRxRate18Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 18Mbps" + ::= { iapStatsEntry 52 } + + iapStatsRxRate18Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 18Mbps" + ::= { iapStatsEntry 53 } + + iapStatsRxRate24Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 24Mbps" + ::= { iapStatsEntry 54 } + + iapStatsRxRate24Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 24Mbps" + ::= { iapStatsEntry 55 } + + iapStatsRxRate24Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 24Mbps" + ::= { iapStatsEntry 56 } + + iapStatsRxRate24Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 24Mbps" + ::= { iapStatsEntry 57 } + + iapStatsRxRate36Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 36Mbps" + ::= { iapStatsEntry 58 } + + iapStatsRxRate36Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 36Mbps" + ::= { iapStatsEntry 59 } + + iapStatsRxRate36Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 36Mbps" + ::= { iapStatsEntry 60 } + + iapStatsRxRate36Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 36Mbps" + ::= { iapStatsEntry 61 } + + iapStatsRxRate48Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 48Mbps" + ::= { iapStatsEntry 62 } + + iapStatsRxRate48Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 48Mbps" + ::= { iapStatsEntry 63 } + + iapStatsRxRate48Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 48Mbps" + ::= { iapStatsEntry 64 } + + iapStatsRxRate48Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 48Mbps" + ::= { iapStatsEntry 65 } + + iapStatsRxRate54Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 54Mbps" + ::= { iapStatsEntry 66 } + + iapStatsRxRate54Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 54Mbps" + ::= { iapStatsEntry 67 } + + iapStatsRxRate54Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 54Mbps" + ::= { iapStatsEntry 68 } + + iapStatsRxRate54Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 54Mbps" + ::= { iapStatsEntry 69 } + + iapStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { iapStatsEntry 70 } + + iapStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { iapStatsEntry 71 } + + iapStatsTxUnicast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Unicast packets transmitted" + ::= { iapStatsEntry 72 } + + iapStatsTxMulticast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Multicast packets transmitted" + ::= { iapStatsEntry 73 } + + iapStatsTxBroadcast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Broadcast packets transmitted" + ::= { iapStatsEntry 74 } + + iapStatsTxManagement OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Management packets transmitted" + ::= { iapStatsEntry 75 } + + iapStatsTxBeacons OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Beacons transmitted" + ::= { iapStatsEntry 76 } + + iapStatsTxRTS OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "RTS packets transmitted" + ::= { iapStatsEntry 77 } + + iapStatsTxCTS OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "CTS packets transmitted" + ::= { iapStatsEntry 78 } + + iapStatsTxFragments OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Fragments transmitted" + ::= { iapStatsEntry 79 } + + iapStatsTxTotalErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx total errors" + ::= { iapStatsEntry 80 } + + iapStatsTxTotalRetries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx total retries" + ::= { iapStatsEntry 81 } + + iapStatsTxDropped OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx dropped packets" + ::= { iapStatsEntry 82 } + + iapStatsTxUnassociated OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx packets to unassociated stations" + ::= { iapStatsEntry 83 } + + iapStatsTxACKFailures OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx ACK failures" + ::= { iapStatsEntry 84 } + + iapStatsTxRTSFailures OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx RTS failures" + ::= { iapStatsEntry 85 } + + iapStatsTxRTSRetries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx RTS retries" + ::= { iapStatsEntry 86 } + + iapStatsTxSingleRetries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx single retries" + ::= { iapStatsEntry 87 } + + iapStatsTxMultipleRetries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx multiple retries" + ::= { iapStatsEntry 88 } + + iapStatsTxRate1Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 1Mbps" + ::= { iapStatsEntry 89 } + + iapStatsTxRate1Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 1Mbps" + ::= { iapStatsEntry 90 } + + iapStatsTxRate1Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 1Mbps" + ::= { iapStatsEntry 91 } + + iapStatsTxRate1Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 1Mbps" + ::= { iapStatsEntry 92 } + + iapStatsTxRate2Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 2Mbps" + ::= { iapStatsEntry 93 } + + iapStatsTxRate2Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 2Mbps" + ::= { iapStatsEntry 94 } + + iapStatsTxRate2Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 2Mbps" + ::= { iapStatsEntry 95 } + + iapStatsTxRate2Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 2Mbps" + ::= { iapStatsEntry 96 } + + iapStatsTxRate5Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 5.5Mbps" + ::= { iapStatsEntry 97 } + + iapStatsTxRate5Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 5.5Mbps" + ::= { iapStatsEntry 98 } + + iapStatsTxRate5Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 5.5Mbps" + ::= { iapStatsEntry 99 } + + iapStatsTxRate5Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 5.5Mbps" + ::= { iapStatsEntry 100 } + + iapStatsTxRate11Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 11Mbps" + ::= { iapStatsEntry 101 } + + iapStatsTxRate11Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 11Mbps" + ::= { iapStatsEntry 102 } + + iapStatsTxRate11Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 11Mbps" + ::= { iapStatsEntry 103 } + + iapStatsTxRate11Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 11Mbps" + ::= { iapStatsEntry 104 } + + iapStatsTxRate6Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 6Mbps" + ::= { iapStatsEntry 105 } + + iapStatsTxRate6Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 6Mbps" + ::= { iapStatsEntry 106 } + + iapStatsTxRate6Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 6Mbps" + ::= { iapStatsEntry 107 } + + iapStatsTxRate6Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 6Mbps" + ::= { iapStatsEntry 108 } + + iapStatsTxRate9Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 9Mbps" + ::= { iapStatsEntry 109 } + + iapStatsTxRate9Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 9Mbps" + ::= { iapStatsEntry 110 } + + iapStatsTxRate9Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 9Mbps" + ::= { iapStatsEntry 111 } + + iapStatsTxRate9Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 9Mbps" + ::= { iapStatsEntry 112 } + + iapStatsTxRate12Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 12Mbps" + ::= { iapStatsEntry 113 } + + iapStatsTxRate12Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 12Mbps" + ::= { iapStatsEntry 114 } + + iapStatsTxRate12Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 12Mbps" + ::= { iapStatsEntry 115 } + + iapStatsTxRate12Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 12Mbps" + ::= { iapStatsEntry 116 } + + iapStatsTxRate18Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 18Mbps" + ::= { iapStatsEntry 117 } + + iapStatsTxRate18Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 18Mbps" + ::= { iapStatsEntry 118 } + + iapStatsTxRate18Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 18Mbps" + ::= { iapStatsEntry 119 } + + iapStatsTxRate18Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 18Mbps" + ::= { iapStatsEntry 120 } + + iapStatsTxRate24Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 24Mbps" + ::= { iapStatsEntry 121 } + + iapStatsTxRate24Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 24Mbps" + ::= { iapStatsEntry 122 } + + iapStatsTxRate24Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 24Mbps" + ::= { iapStatsEntry 123 } + + iapStatsTxRate24Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 24Mbps" + ::= { iapStatsEntry 124 } + + iapStatsTxRate36Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 36Mbps" + ::= { iapStatsEntry 125 } + + iapStatsTxRate36Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 36Mbps" + ::= { iapStatsEntry 126 } + + iapStatsTxRate36Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 36Mbps" + ::= { iapStatsEntry 127 } + + iapStatsTxRate36Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 36Mbps" + ::= { iapStatsEntry 128 } + + iapStatsTxRate48Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 48Mbps" + ::= { iapStatsEntry 129 } + + iapStatsTxRate48Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 48Mbps" + ::= { iapStatsEntry 130 } + + iapStatsTxRate48Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 48Mbps" + ::= { iapStatsEntry 131 } + + iapStatsTxRate48Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 48Mbps" + ::= { iapStatsEntry 132 } + + iapStatsTxRate54Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 54Mbps" + ::= { iapStatsEntry 133 } + + iapStatsTxRate54Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 54Mbps" + ::= { iapStatsEntry 134 } + + iapStatsTxRate54Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 54Mbps" + ::= { iapStatsEntry 135 } + + iapStatsTxRate54Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 54Mbps" + ::= { iapStatsEntry 136 } + + iapStatsTxUtilization OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total mS during which IAP has been transmitting" + ::= { iapStatsEntry 137 } + + iapStatsNoiseTotal OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total silence*bytes for all packets received by IAP" + ::= { iapStatsEntry 138 } + + iapStatsNoiseDenominator OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Total bytes in all packets received by IAP" + ::= { iapStatsEntry 139 } + + iapStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which stats were collected" + ::= { iapStatsEntry 140 } + + stationStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF StationStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of station statistics" + ::= { statistics 3 } + + stationStatsEntry OBJECT-TYPE + SYNTAX StationStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for station statistics" + INDEX { stationStatsIndex } + ::= { stationStatsTable 1 } + + StationStatsEntry ::= SEQUENCE { + stationStatsIndex Integer32, + stationStatsMACAddress DisplayString, + stationStatsRxBytes Counter64, + stationStatsRxPackets Counter64, + stationStatsRxErrors Counter64, + stationStatsRxRetries Counter64, + stationStatsRxRate1Bytes Counter64, + stationStatsRxRate1Packets Counter64, + stationStatsRxRate1Errors Counter64, + stationStatsRxRate1Retries Counter64, + stationStatsRxRate2Bytes Counter64, + stationStatsRxRate2Packets Counter64, + stationStatsRxRate2Errors Counter64, + stationStatsRxRate2Retries Counter64, + stationStatsRxRate5Bytes Counter64, + stationStatsRxRate5Packets Counter64, + stationStatsRxRate5Errors Counter64, + stationStatsRxRate5Retries Counter64, + stationStatsRxRate11Bytes Counter64, + stationStatsRxRate11Packets Counter64, + stationStatsRxRate11Errors Counter64, + stationStatsRxRate11Retries Counter64, + stationStatsRxRate6Bytes Counter64, + stationStatsRxRate6Packets Counter64, + stationStatsRxRate6Errors Counter64, + stationStatsRxRate6Retries Counter64, + stationStatsRxRate9Bytes Counter64, + stationStatsRxRate9Packets Counter64, + stationStatsRxRate9Errors Counter64, + stationStatsRxRate9Retries Counter64, + stationStatsRxRate12Bytes Counter64, + stationStatsRxRate12Packets Counter64, + stationStatsRxRate12Errors Counter64, + stationStatsRxRate12Retries Counter64, + stationStatsRxRate18Bytes Counter64, + stationStatsRxRate18Packets Counter64, + stationStatsRxRate18Errors Counter64, + stationStatsRxRate18Retries Counter64, + stationStatsRxRate24Bytes Counter64, + stationStatsRxRate24Packets Counter64, + stationStatsRxRate24Errors Counter64, + stationStatsRxRate24Retries Counter64, + stationStatsRxRate36Bytes Counter64, + stationStatsRxRate36Packets Counter64, + stationStatsRxRate36Errors Counter64, + stationStatsRxRate36Retries Counter64, + stationStatsRxRate48Bytes Counter64, + stationStatsRxRate48Packets Counter64, + stationStatsRxRate48Errors Counter64, + stationStatsRxRate48Retries Counter64, + stationStatsRxRate54Bytes Counter64, + stationStatsRxRate54Packets Counter64, + stationStatsRxRate54Errors Counter64, + stationStatsRxRate54Retries Counter64, + stationStatsTxBytes Counter64, + stationStatsTxPackets Counter64, + stationStatsTxErrors Counter64, + stationStatsTxRetries Counter64, + stationStatsTxRate1Bytes Counter64, + stationStatsTxRate1Packets Counter64, + stationStatsTxRate1Errors Counter64, + stationStatsTxRate1Retries Counter64, + stationStatsTxRate2Bytes Counter64, + stationStatsTxRate2Packets Counter64, + stationStatsTxRate2Errors Counter64, + stationStatsTxRate2Retries Counter64, + stationStatsTxRate5Bytes Counter64, + stationStatsTxRate5Packets Counter64, + stationStatsTxRate5Errors Counter64, + stationStatsTxRate5Retries Counter64, + stationStatsTxRate11Bytes Counter64, + stationStatsTxRate11Packets Counter64, + stationStatsTxRate11Errors Counter64, + stationStatsTxRate11Retries Counter64, + stationStatsTxRate6Bytes Counter64, + stationStatsTxRate6Packets Counter64, + stationStatsTxRate6Errors Counter64, + stationStatsTxRate6Retries Counter64, + stationStatsTxRate9Bytes Counter64, + stationStatsTxRate9Packets Counter64, + stationStatsTxRate9Errors Counter64, + stationStatsTxRate9Retries Counter64, + stationStatsTxRate12Bytes Counter64, + stationStatsTxRate12Packets Counter64, + stationStatsTxRate12Errors Counter64, + stationStatsTxRate12Retries Counter64, + stationStatsTxRate18Bytes Counter64, + stationStatsTxRate18Packets Counter64, + stationStatsTxRate18Errors Counter64, + stationStatsTxRate18Retries Counter64, + stationStatsTxRate24Bytes Counter64, + stationStatsTxRate24Packets Counter64, + stationStatsTxRate24Errors Counter64, + stationStatsTxRate24Retries Counter64, + stationStatsTxRate36Bytes Counter64, + stationStatsTxRate36Packets Counter64, + stationStatsTxRate36Errors Counter64, + stationStatsTxRate36Retries Counter64, + stationStatsTxRate48Bytes Counter64, + stationStatsTxRate48Packets Counter64, + stationStatsTxRate48Errors Counter64, + stationStatsTxRate48Retries Counter64, + stationStatsTxRate54Bytes Counter64, + stationStatsTxRate54Packets Counter64, + stationStatsTxRate54Errors Counter64, + stationStatsTxRate54Retries Counter64, + stationStatsTimePeriod Counter32 + } + + stationStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station statistics index" + ::= { stationStatsEntry 1 } + + stationStatsMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "MAC address of the station" + ::= { stationStatsEntry 2 } + + stationStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { stationStatsEntry 3 } + + stationStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { stationStatsEntry 4 } + + stationStatsRxErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors" + ::= { stationStatsEntry 5 } + + stationStatsRxRetries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries" + ::= { stationStatsEntry 6 } + + stationStatsRxRate1Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 1Mbps" + ::= { stationStatsEntry 7 } + + stationStatsRxRate1Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 1Mbps" + ::= { stationStatsEntry 8 } + + stationStatsRxRate1Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 1Mbps" + ::= { stationStatsEntry 9 } + + stationStatsRxRate1Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 1Mbps" + ::= { stationStatsEntry 10 } + + stationStatsRxRate2Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 2Mbps" + ::= { stationStatsEntry 11 } + + stationStatsRxRate2Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 2Mbps" + ::= { stationStatsEntry 12 } + + stationStatsRxRate2Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 2Mbps" + ::= { stationStatsEntry 13 } + + stationStatsRxRate2Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 2Mbps" + ::= { stationStatsEntry 14 } + + stationStatsRxRate5Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 5.5Mbps" + ::= { stationStatsEntry 15 } + + stationStatsRxRate5Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 5.5Mbps" + ::= { stationStatsEntry 16 } + + stationStatsRxRate5Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 5.5Mbps" + ::= { stationStatsEntry 17 } + + stationStatsRxRate5Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 5.5Mbps" + ::= { stationStatsEntry 18 } + + stationStatsRxRate11Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 11Mbps" + ::= { stationStatsEntry 19 } + + stationStatsRxRate11Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 11Mbps" + ::= { stationStatsEntry 20 } + + stationStatsRxRate11Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 11Mbps" + ::= { stationStatsEntry 21 } + + stationStatsRxRate11Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 11Mbps" + ::= { stationStatsEntry 22 } + + stationStatsRxRate6Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 6Mbps" + ::= { stationStatsEntry 23 } + + stationStatsRxRate6Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 6Mbps" + ::= { stationStatsEntry 24 } + + stationStatsRxRate6Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 6Mbps" + ::= { stationStatsEntry 25 } + + stationStatsRxRate6Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 6Mbps" + ::= { stationStatsEntry 26 } + + stationStatsRxRate9Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 9Mbps" + ::= { stationStatsEntry 27 } + + stationStatsRxRate9Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 9Mbps" + ::= { stationStatsEntry 28 } + + stationStatsRxRate9Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 9Mbps" + ::= { stationStatsEntry 29 } + + stationStatsRxRate9Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 9Mbps" + ::= { stationStatsEntry 30 } + + stationStatsRxRate12Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 12Mbps" + ::= { stationStatsEntry 31 } + + stationStatsRxRate12Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 12Mbps" + ::= { stationStatsEntry 32 } + + stationStatsRxRate12Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 12Mbps" + ::= { stationStatsEntry 33 } + + stationStatsRxRate12Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 12Mbps" + ::= { stationStatsEntry 34 } + + stationStatsRxRate18Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 18Mbps" + ::= { stationStatsEntry 35 } + + stationStatsRxRate18Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 18Mbps" + ::= { stationStatsEntry 36 } + + stationStatsRxRate18Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 18Mbps" + ::= { stationStatsEntry 37 } + + stationStatsRxRate18Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 18Mbps" + ::= { stationStatsEntry 38 } + + stationStatsRxRate24Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 24Mbps" + ::= { stationStatsEntry 39 } + + stationStatsRxRate24Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 24Mbps" + ::= { stationStatsEntry 40 } + + stationStatsRxRate24Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 24Mbps" + ::= { stationStatsEntry 41 } + + stationStatsRxRate24Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 24Mbps" + ::= { stationStatsEntry 42 } + + stationStatsRxRate36Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 36Mbps" + ::= { stationStatsEntry 43 } + + stationStatsRxRate36Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 36Mbps" + ::= { stationStatsEntry 44 } + + stationStatsRxRate36Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 36Mbps" + ::= { stationStatsEntry 45 } + + stationStatsRxRate36Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 36Mbps" + ::= { stationStatsEntry 46 } + + stationStatsRxRate48Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 48Mbps" + ::= { stationStatsEntry 47 } + + stationStatsRxRate48Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 48Mbps" + ::= { stationStatsEntry 48 } + + stationStatsRxRate48Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 48Mbps" + ::= { stationStatsEntry 49 } + + stationStatsRxRate48Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 48Mbps" + ::= { stationStatsEntry 50 } + + stationStatsRxRate54Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 54Mbps" + ::= { stationStatsEntry 51 } + + stationStatsRxRate54Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 54Mbps" + ::= { stationStatsEntry 52 } + + stationStatsRxRate54Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 54Mbps" + ::= { stationStatsEntry 53 } + + stationStatsRxRate54Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 54Mbps" + ::= { stationStatsEntry 54 } + + stationStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { stationStatsEntry 55 } + + stationStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { stationStatsEntry 56 } + + stationStatsTxErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors" + ::= { stationStatsEntry 57 } + + stationStatsTxRetries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries" + ::= { stationStatsEntry 58 } + + stationStatsTxRate1Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 1Mbps" + ::= { stationStatsEntry 59 } + + stationStatsTxRate1Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 1Mbps" + ::= { stationStatsEntry 60 } + + stationStatsTxRate1Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 1Mbps" + ::= { stationStatsEntry 61 } + + stationStatsTxRate1Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 1Mbps" + ::= { stationStatsEntry 62 } + + stationStatsTxRate2Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 2Mbps" + ::= { stationStatsEntry 63 } + + stationStatsTxRate2Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 2Mbps" + ::= { stationStatsEntry 64 } + + stationStatsTxRate2Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 2Mbps" + ::= { stationStatsEntry 65 } + + stationStatsTxRate2Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 2Mbps" + ::= { stationStatsEntry 66 } + + stationStatsTxRate5Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 5.5Mbps" + ::= { stationStatsEntry 67 } + + stationStatsTxRate5Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 5.5Mbps" + ::= { stationStatsEntry 68 } + + stationStatsTxRate5Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 5.5Mbps" + ::= { stationStatsEntry 69 } + + stationStatsTxRate5Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 5.5Mbps" + ::= { stationStatsEntry 70 } + + stationStatsTxRate11Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 11Mbps" + ::= { stationStatsEntry 71 } + + stationStatsTxRate11Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 11Mbps" + ::= { stationStatsEntry 72 } + + stationStatsTxRate11Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 11Mbps" + ::= { stationStatsEntry 73 } + + stationStatsTxRate11Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 11Mbps" + ::= { stationStatsEntry 74 } + + stationStatsTxRate6Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 6Mbps" + ::= { stationStatsEntry 75 } + + stationStatsTxRate6Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 6Mbps" + ::= { stationStatsEntry 76 } + + stationStatsTxRate6Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 6Mbps" + ::= { stationStatsEntry 77 } + + stationStatsTxRate6Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 6Mbps" + ::= { stationStatsEntry 78 } + + stationStatsTxRate9Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 9Mbps" + ::= { stationStatsEntry 79 } + + stationStatsTxRate9Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 9Mbps" + ::= { stationStatsEntry 80 } + + stationStatsTxRate9Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 9Mbps" + ::= { stationStatsEntry 81 } + + stationStatsTxRate9Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 9Mbps" + ::= { stationStatsEntry 82 } + + stationStatsTxRate12Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 12Mbps" + ::= { stationStatsEntry 83 } + + stationStatsTxRate12Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 12Mbps" + ::= { stationStatsEntry 84 } + + stationStatsTxRate12Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 12Mbps" + ::= { stationStatsEntry 85 } + + stationStatsTxRate12Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 12Mbps" + ::= { stationStatsEntry 86 } + + stationStatsTxRate18Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 18Mbps" + ::= { stationStatsEntry 87 } + + stationStatsTxRate18Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 18Mbps" + ::= { stationStatsEntry 88 } + + stationStatsTxRate18Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 18Mbps" + ::= { stationStatsEntry 89 } + + stationStatsTxRate18Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 18Mbps" + ::= { stationStatsEntry 90 } + + stationStatsTxRate24Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 24Mbps" + ::= { stationStatsEntry 91 } + + stationStatsTxRate24Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 24Mbps" + ::= { stationStatsEntry 92 } + + stationStatsTxRate24Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 24Mbps" + ::= { stationStatsEntry 93 } + + stationStatsTxRate24Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 24Mbps" + ::= { stationStatsEntry 94 } + + stationStatsTxRate36Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 36Mbps" + ::= { stationStatsEntry 95 } + + stationStatsTxRate36Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 36Mbps" + ::= { stationStatsEntry 96 } + + stationStatsTxRate36Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 36Mbps" + ::= { stationStatsEntry 97 } + + stationStatsTxRate36Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 36Mbps" + ::= { stationStatsEntry 98 } + + stationStatsTxRate48Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 48Mbps" + ::= { stationStatsEntry 99 } + + stationStatsTxRate48Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 48Mbps" + ::= { stationStatsEntry 100 } + + stationStatsTxRate48Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 48Mbps" + ::= { stationStatsEntry 101 } + + stationStatsTxRate48Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 48Mbps" + ::= { stationStatsEntry 102 } + + stationStatsTxRate54Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 54Mbps" + ::= { stationStatsEntry 103 } + + stationStatsTxRate54Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 54Mbps" + ::= { stationStatsEntry 104 } + + stationStatsTxRate54Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 54Mbps" + ::= { stationStatsEntry 105 } + + stationStatsTxRate54Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 54Mbps" + ::= { stationStatsEntry 106 } + + stationStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which stats were collected" + ::= { stationStatsEntry 107 } + + vlanStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of VLAN statistics" + ::= { statistics 4 } + + vlanStatsEntry OBJECT-TYPE + SYNTAX VlanStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for VLAN statistics" + INDEX { vlanStatsIndex } + ::= { vlanStatsTable 1 } + + VlanStatsEntry ::= SEQUENCE { + vlanStatsIndex Integer32, + vlanStatsName DisplayString, + vlanStatsNumber Integer32, + vlanStatsRxBytes Counter64, + vlanStatsRxPackets Counter64, + vlanStatsRxCompressed Counter64, + vlanStatsRxMulticast Counter64, + vlanStatsRxDropped Counter64, + vlanStatsRxFifoErrors Counter64, + vlanStatsRxFrameErrors Counter64, + vlanStatsRxTotalErrors Counter64, + vlanStatsTxBytes Counter64, + vlanStatsTxPackets Counter64, + vlanStatsTxCompressed Counter64, + vlanStatsTxCarrierErrors Counter64, + vlanStatsTxDropped Counter64, + vlanStatsTxFifoErrors Counter64, + vlanStatsTxCollisions Counter64, + vlanStatsTxTotalErrors Counter64, + vlanStatsTimePeriod Counter32 + } + + vlanStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "VLAN statistics index" + ::= { vlanStatsEntry 1 } + + vlanStatsName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN name" + ::= { vlanStatsEntry 2 } + + vlanStatsNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN number" + ::= { vlanStatsEntry 3 } + + vlanStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { vlanStatsEntry 4 } + + vlanStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { vlanStatsEntry 5 } + + vlanStatsRxCompressed OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Compressed packets received" + ::= { vlanStatsEntry 6 } + + vlanStatsRxMulticast OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Multicast packets received" + ::= { vlanStatsEntry 7 } + + vlanStatsRxDropped OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx dropped packets" + ::= { vlanStatsEntry 8 } + + vlanStatsRxFifoErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx fifo errors" + ::= { vlanStatsEntry 9 } + + vlanStatsRxFrameErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx frame errors" + ::= { vlanStatsEntry 10 } + + vlanStatsRxTotalErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx total errors" + ::= { vlanStatsEntry 11 } + + vlanStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { vlanStatsEntry 12 } + + vlanStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { vlanStatsEntry 13 } + + vlanStatsTxCompressed OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Compressed packets transmitted" + ::= { vlanStatsEntry 14 } + + vlanStatsTxCarrierErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx carrier errors" + ::= { vlanStatsEntry 15 } + + vlanStatsTxDropped OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx dropped packets" + ::= { vlanStatsEntry 16 } + + vlanStatsTxFifoErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx fifo errors" + ::= { vlanStatsEntry 17 } + + vlanStatsTxCollisions OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx collisions" + ::= { vlanStatsEntry 18 } + + vlanStatsTxTotalErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx total errors" + ::= { vlanStatsEntry 19 } + + vlanStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which stats were collected" + ::= { vlanStatsEntry 20 } + + wdsStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF WdsStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of statistics for WDS links" + ::= { statistics 5 } + + wdsStatsEntry OBJECT-TYPE + SYNTAX WdsStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for WDS link statistics" + INDEX { wdsStatsIndex } + ::= { wdsStatsTable 1 } + + WdsStatsEntry ::= SEQUENCE { + wdsStatsIndex Integer32, + wdsStatsLinkName DisplayString, + wdsStatsRxBytes Counter64, + wdsStatsRxPackets Counter64, + wdsStatsRxErrors Counter64, + wdsStatsRxRetries Counter64, + wdsStatsRxRate1Bytes Counter64, + wdsStatsRxRate1Packets Counter64, + wdsStatsRxRate1Errors Counter64, + wdsStatsRxRate1Retries Counter64, + wdsStatsRxRate2Bytes Counter64, + wdsStatsRxRate2Packets Counter64, + wdsStatsRxRate2Errors Counter64, + wdsStatsRxRate2Retries Counter64, + wdsStatsRxRate5Bytes Counter64, + wdsStatsRxRate5Packets Counter64, + wdsStatsRxRate5Errors Counter64, + wdsStatsRxRate5Retries Counter64, + wdsStatsRxRate11Bytes Counter64, + wdsStatsRxRate11Packets Counter64, + wdsStatsRxRate11Errors Counter64, + wdsStatsRxRate11Retries Counter64, + wdsStatsRxRate6Bytes Counter64, + wdsStatsRxRate6Packets Counter64, + wdsStatsRxRate6Errors Counter64, + wdsStatsRxRate6Retries Counter64, + wdsStatsRxRate9Bytes Counter64, + wdsStatsRxRate9Packets Counter64, + wdsStatsRxRate9Errors Counter64, + wdsStatsRxRate9Retries Counter64, + wdsStatsRxRate12Bytes Counter64, + wdsStatsRxRate12Packets Counter64, + wdsStatsRxRate12Errors Counter64, + wdsStatsRxRate12Retries Counter64, + wdsStatsRxRate18Bytes Counter64, + wdsStatsRxRate18Packets Counter64, + wdsStatsRxRate18Errors Counter64, + wdsStatsRxRate18Retries Counter64, + wdsStatsRxRate24Bytes Counter64, + wdsStatsRxRate24Packets Counter64, + wdsStatsRxRate24Errors Counter64, + wdsStatsRxRate24Retries Counter64, + wdsStatsRxRate36Bytes Counter64, + wdsStatsRxRate36Packets Counter64, + wdsStatsRxRate36Errors Counter64, + wdsStatsRxRate36Retries Counter64, + wdsStatsRxRate48Bytes Counter64, + wdsStatsRxRate48Packets Counter64, + wdsStatsRxRate48Errors Counter64, + wdsStatsRxRate48Retries Counter64, + wdsStatsRxRate54Bytes Counter64, + wdsStatsRxRate54Packets Counter64, + wdsStatsRxRate54Errors Counter64, + wdsStatsRxRate54Retries Counter64, + wdsStatsTxBytes Counter64, + wdsStatsTxPackets Counter64, + wdsStatsTxErrors Counter64, + wdsStatsTxRetries Counter64, + wdsStatsTxRate1Bytes Counter64, + wdsStatsTxRate1Packets Counter64, + wdsStatsTxRate1Errors Counter64, + wdsStatsTxRate1Retries Counter64, + wdsStatsTxRate2Bytes Counter64, + wdsStatsTxRate2Packets Counter64, + wdsStatsTxRate2Errors Counter64, + wdsStatsTxRate2Retries Counter64, + wdsStatsTxRate5Bytes Counter64, + wdsStatsTxRate5Packets Counter64, + wdsStatsTxRate5Errors Counter64, + wdsStatsTxRate5Retries Counter64, + wdsStatsTxRate11Bytes Counter64, + wdsStatsTxRate11Packets Counter64, + wdsStatsTxRate11Errors Counter64, + wdsStatsTxRate11Retries Counter64, + wdsStatsTxRate6Bytes Counter64, + wdsStatsTxRate6Packets Counter64, + wdsStatsTxRate6Errors Counter64, + wdsStatsTxRate6Retries Counter64, + wdsStatsTxRate9Bytes Counter64, + wdsStatsTxRate9Packets Counter64, + wdsStatsTxRate9Errors Counter64, + wdsStatsTxRate9Retries Counter64, + wdsStatsTxRate12Bytes Counter64, + wdsStatsTxRate12Packets Counter64, + wdsStatsTxRate12Errors Counter64, + wdsStatsTxRate12Retries Counter64, + wdsStatsTxRate18Bytes Counter64, + wdsStatsTxRate18Packets Counter64, + wdsStatsTxRate18Errors Counter64, + wdsStatsTxRate18Retries Counter64, + wdsStatsTxRate24Bytes Counter64, + wdsStatsTxRate24Packets Counter64, + wdsStatsTxRate24Errors Counter64, + wdsStatsTxRate24Retries Counter64, + wdsStatsTxRate36Bytes Counter64, + wdsStatsTxRate36Packets Counter64, + wdsStatsTxRate36Errors Counter64, + wdsStatsTxRate36Retries Counter64, + wdsStatsTxRate48Bytes Counter64, + wdsStatsTxRate48Packets Counter64, + wdsStatsTxRate48Errors Counter64, + wdsStatsTxRate48Retries Counter64, + wdsStatsTxRate54Bytes Counter64, + wdsStatsTxRate54Packets Counter64, + wdsStatsTxRate54Errors Counter64, + wdsStatsTxRate54Retries Counter64 + } + + wdsStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WDS link statistics index" + ::= { wdsStatsEntry 1 } + + wdsStatsLinkName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Name of the WDS lnk" + ::= { wdsStatsEntry 2 } + + wdsStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { wdsStatsEntry 3 } + + wdsStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { wdsStatsEntry 4 } + + wdsStatsRxErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors" + ::= { wdsStatsEntry 5 } + + wdsStatsRxRetries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries" + ::= { wdsStatsEntry 6 } + + wdsStatsRxRate1Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 1Mbps" + ::= { wdsStatsEntry 7 } + + wdsStatsRxRate1Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 1Mbps" + ::= { wdsStatsEntry 8 } + + wdsStatsRxRate1Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 1Mbps" + ::= { wdsStatsEntry 9 } + + wdsStatsRxRate1Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 1Mbps" + ::= { wdsStatsEntry 10 } + + wdsStatsRxRate2Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 2Mbps" + ::= { wdsStatsEntry 11 } + + wdsStatsRxRate2Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 2Mbps" + ::= { wdsStatsEntry 12 } + + wdsStatsRxRate2Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 2Mbps" + ::= { wdsStatsEntry 13 } + + wdsStatsRxRate2Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 2Mbps" + ::= { wdsStatsEntry 14 } + + wdsStatsRxRate5Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 5.5Mbps" + ::= { wdsStatsEntry 15 } + + wdsStatsRxRate5Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 5.5Mbps" + ::= { wdsStatsEntry 16 } + + wdsStatsRxRate5Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 5.5Mbps" + ::= { wdsStatsEntry 17 } + + wdsStatsRxRate5Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 5.5Mbps" + ::= { wdsStatsEntry 18 } + + wdsStatsRxRate11Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 11Mbps" + ::= { wdsStatsEntry 19 } + + wdsStatsRxRate11Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 11Mbps" + ::= { wdsStatsEntry 20 } + + wdsStatsRxRate11Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 11Mbps" + ::= { wdsStatsEntry 21 } + + wdsStatsRxRate11Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 11Mbps" + ::= { wdsStatsEntry 22 } + + wdsStatsRxRate6Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 6Mbps" + ::= { wdsStatsEntry 23 } + + wdsStatsRxRate6Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 6Mbps" + ::= { wdsStatsEntry 24 } + + wdsStatsRxRate6Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 6Mbps" + ::= { wdsStatsEntry 25 } + + wdsStatsRxRate6Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 6Mbps" + ::= { wdsStatsEntry 26 } + + wdsStatsRxRate9Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 9Mbps" + ::= { wdsStatsEntry 27 } + + wdsStatsRxRate9Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 9Mbps" + ::= { wdsStatsEntry 28 } + + wdsStatsRxRate9Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 9Mbps" + ::= { wdsStatsEntry 29 } + + wdsStatsRxRate9Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 9Mbps" + ::= { wdsStatsEntry 30 } + + wdsStatsRxRate12Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 12Mbps" + ::= { wdsStatsEntry 31 } + + wdsStatsRxRate12Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 12Mbps" + ::= { wdsStatsEntry 32 } + + wdsStatsRxRate12Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 12Mbps" + ::= { wdsStatsEntry 33 } + + wdsStatsRxRate12Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 12Mbps" + ::= { wdsStatsEntry 34 } + + wdsStatsRxRate18Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 18Mbps" + ::= { wdsStatsEntry 35 } + + wdsStatsRxRate18Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 18Mbps" + ::= { wdsStatsEntry 36 } + + wdsStatsRxRate18Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 18Mbps" + ::= { wdsStatsEntry 37 } + + wdsStatsRxRate18Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 18Mbps" + ::= { wdsStatsEntry 38 } + + wdsStatsRxRate24Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 24Mbps" + ::= { wdsStatsEntry 39 } + + wdsStatsRxRate24Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 24Mbps" + ::= { wdsStatsEntry 40 } + + wdsStatsRxRate24Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 24Mbps" + ::= { wdsStatsEntry 41 } + + wdsStatsRxRate24Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 24Mbps" + ::= { wdsStatsEntry 42 } + + wdsStatsRxRate36Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 36Mbps" + ::= { wdsStatsEntry 43 } + + wdsStatsRxRate36Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 36Mbps" + ::= { wdsStatsEntry 44 } + + wdsStatsRxRate36Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 36Mbps" + ::= { wdsStatsEntry 45 } + + wdsStatsRxRate36Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 36Mbps" + ::= { wdsStatsEntry 46 } + + wdsStatsRxRate48Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 48Mbps" + ::= { wdsStatsEntry 47 } + + wdsStatsRxRate48Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 48Mbps" + ::= { wdsStatsEntry 48 } + + wdsStatsRxRate48Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 48Mbps" + ::= { wdsStatsEntry 49 } + + wdsStatsRxRate48Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 48Mbps" + ::= { wdsStatsEntry 50 } + + wdsStatsRxRate54Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received at rate 54Mbps" + ::= { wdsStatsEntry 51 } + + wdsStatsRxRate54Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received at rate 54Mbps" + ::= { wdsStatsEntry 52 } + + wdsStatsRxRate54Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx errors at rate 54Mbps" + ::= { wdsStatsEntry 53 } + + wdsStatsRxRate54Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rx retries at rate 54Mbps" + ::= { wdsStatsEntry 54 } + + wdsStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { wdsStatsEntry 55 } + + wdsStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { wdsStatsEntry 56 } + + wdsStatsTxErrors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors" + ::= { wdsStatsEntry 57 } + + wdsStatsTxRetries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries" + ::= { wdsStatsEntry 58 } + + wdsStatsTxRate1Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 1Mbps" + ::= { wdsStatsEntry 59 } + + wdsStatsTxRate1Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 1Mbps" + ::= { wdsStatsEntry 60 } + + wdsStatsTxRate1Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 1Mbps" + ::= { wdsStatsEntry 61 } + + wdsStatsTxRate1Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 1Mbps" + ::= { wdsStatsEntry 62 } + + wdsStatsTxRate2Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 2Mbps" + ::= { wdsStatsEntry 63 } + + wdsStatsTxRate2Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 2Mbps" + ::= { wdsStatsEntry 64 } + + wdsStatsTxRate2Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 2Mbps" + ::= { wdsStatsEntry 65 } + + wdsStatsTxRate2Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 2Mbps" + ::= { wdsStatsEntry 66 } + + wdsStatsTxRate5Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 5.5Mbps" + ::= { wdsStatsEntry 67 } + + wdsStatsTxRate5Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 5.5Mbps" + ::= { wdsStatsEntry 68 } + + wdsStatsTxRate5Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 5.5Mbps" + ::= { wdsStatsEntry 69 } + + wdsStatsTxRate5Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 5.5Mbps" + ::= { wdsStatsEntry 70 } + + wdsStatsTxRate11Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 11Mbps" + ::= { wdsStatsEntry 71 } + + wdsStatsTxRate11Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 11Mbps" + ::= { wdsStatsEntry 72 } + + wdsStatsTxRate11Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 11Mbps" + ::= { wdsStatsEntry 73 } + + wdsStatsTxRate11Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 11Mbps" + ::= { wdsStatsEntry 74 } + + wdsStatsTxRate6Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 6Mbps" + ::= { wdsStatsEntry 75 } + + wdsStatsTxRate6Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 6Mbps" + ::= { wdsStatsEntry 76 } + + wdsStatsTxRate6Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 6Mbps" + ::= { wdsStatsEntry 77 } + + wdsStatsTxRate6Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 6Mbps" + ::= { wdsStatsEntry 78 } + + wdsStatsTxRate9Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 9Mbps" + ::= { wdsStatsEntry 79 } + + wdsStatsTxRate9Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 9Mbps" + ::= { wdsStatsEntry 80 } + + wdsStatsTxRate9Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 9Mbps" + ::= { wdsStatsEntry 81 } + + wdsStatsTxRate9Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 9Mbps" + ::= { wdsStatsEntry 82 } + + wdsStatsTxRate12Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 12Mbps" + ::= { wdsStatsEntry 83 } + + wdsStatsTxRate12Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 12Mbps" + ::= { wdsStatsEntry 84 } + + wdsStatsTxRate12Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 12Mbps" + ::= { wdsStatsEntry 85 } + + wdsStatsTxRate12Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 12Mbps" + ::= { wdsStatsEntry 86 } + + wdsStatsTxRate18Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 18Mbps" + ::= { wdsStatsEntry 87 } + + wdsStatsTxRate18Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 18Mbps" + ::= { wdsStatsEntry 88 } + + wdsStatsTxRate18Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 18Mbps" + ::= { wdsStatsEntry 89 } + + wdsStatsTxRate18Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 18Mbps" + ::= { wdsStatsEntry 90 } + + wdsStatsTxRate24Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 24Mbps" + ::= { wdsStatsEntry 91 } + + wdsStatsTxRate24Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 24Mbps" + ::= { wdsStatsEntry 92 } + + wdsStatsTxRate24Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 24Mbps" + ::= { wdsStatsEntry 93 } + + wdsStatsTxRate24Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 24Mbps" + ::= { wdsStatsEntry 94 } + + wdsStatsTxRate36Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 36Mbps" + ::= { wdsStatsEntry 95 } + + wdsStatsTxRate36Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 36Mbps" + ::= { wdsStatsEntry 96 } + + wdsStatsTxRate36Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 36Mbps" + ::= { wdsStatsEntry 97 } + + wdsStatsTxRate36Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 36Mbps" + ::= { wdsStatsEntry 98 } + + wdsStatsTxRate48Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 48Mbps" + ::= { wdsStatsEntry 99 } + + wdsStatsTxRate48Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 48Mbps" + ::= { wdsStatsEntry 100 } + + wdsStatsTxRate48Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 48Mbps" + ::= { wdsStatsEntry 101 } + + wdsStatsTxRate48Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 48Mbps" + ::= { wdsStatsEntry 102 } + + wdsStatsTxRate54Bytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted at rate 54Mbps" + ::= { wdsStatsEntry 103 } + + wdsStatsTxRate54Packets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted at rate 54Mbps" + ::= { wdsStatsEntry 104 } + + wdsStatsTxRate54Errors OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx errors at rate 54Mbps" + ::= { wdsStatsEntry 105 } + + wdsStatsTxRate54Retries OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Tx retries at rate 54Mbps" + ::= { wdsStatsEntry 106 } + + spectrumAnalysisTable OBJECT-TYPE + SYNTAX SEQUENCE OF SpectrumAnalysisEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Spectrum analysis information table" + ::= { statistics 6 } + + spectrumAnalysisEntry OBJECT-TYPE + SYNTAX SpectrumAnalysisEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for spectrum analysis information" + INDEX { spectrumAnalysisIndex } + ::= { spectrumAnalysisTable 1 } + + SpectrumAnalysisEntry ::= SEQUENCE { + spectrumAnalysisIndex Integer32, + spectrumAnalysisChannel Integer32, + spectrumAnalysisPackets Integer32, + spectrumAnalysisBytes Integer32, + spectrumAnalysisErrorRate Integer32, + spectrumAnalysisAverageDataRate Integer32, + spectrumAnalysisAverageRSSI Integer32, + spectrumAnalysisSignalToNoiseRatio Integer32, + spectrumAnalysisNoiseFloor Integer32, + spectrumAnalysisDot11Busy Integer32, + spectrumAnalysisNoise Integer32 + } + + spectrumAnalysisIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Spectrum analysis information index" + ::= { spectrumAnalysisEntry 1 } + + spectrumAnalysisChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Channel number" + ::= { spectrumAnalysisEntry 2 } + + spectrumAnalysisPackets OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets per second" + ::= { spectrumAnalysisEntry 3 } + + spectrumAnalysisBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes per second" + ::= { spectrumAnalysisEntry 4 } + + spectrumAnalysisErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Error rate (in percent)" + ::= { spectrumAnalysisEntry 5 } + + spectrumAnalysisAverageDataRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average data rate (in Mbps)" + ::= { spectrumAnalysisEntry 6 } + + spectrumAnalysisAverageRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average RSSI" + ::= { spectrumAnalysisEntry 7 } + + spectrumAnalysisSignalToNoiseRatio OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Signal to noise ratio" + ::= { spectrumAnalysisEntry 8 } + + spectrumAnalysisNoiseFloor OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Noise floor" + ::= { spectrumAnalysisEntry 9 } + + spectrumAnalysisDot11Busy OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "802.11 medium busy (in percent)" + ::= { spectrumAnalysisEntry 10 } + + spectrumAnalysisNoise OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Noise (in percent)" + ::= { spectrumAnalysisEntry 11 } + + realtimeMonitorTable OBJECT-TYPE + SYNTAX SEQUENCE OF RealtimeMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Real time IAP information table" + ::= { statistics 7 } + + realtimeMonitorEntry OBJECT-TYPE + SYNTAX RealtimeMonitorEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for real time IAP information" + INDEX { realtimeMonitorIndex } + ::= { realtimeMonitorTable 1 } + + RealtimeMonitorEntry ::= SEQUENCE { + realtimeMonitorIndex Integer32, + realtimeMonitorIfaceName DisplayString, + realtimeMonitorChannel Integer32, + realtimeMonitorPackets Integer32, + realtimeMonitorBytes Integer32, + realtimeMonitorErrorRate Integer32, + realtimeMonitorAverageDataRate Integer32, + realtimeMonitorAverageRSSI Integer32, + realtimeMonitorSignalToNoiseRatio Integer32, + realtimeMonitorNoiseFloor Integer32, + realtimeMonitorDot11Busy Integer32, + realtimeMonitorNoise Integer32 + } + + realtimeMonitorIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Real time IAP information index" + ::= { realtimeMonitorEntry 1 } + + realtimeMonitorIfaceName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface name" + ::= { realtimeMonitorEntry 2 } + + realtimeMonitorChannel OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Channel number" + ::= { realtimeMonitorEntry 3 } + + realtimeMonitorPackets OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets per second" + ::= { realtimeMonitorEntry 4 } + + realtimeMonitorBytes OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes per second" + ::= { realtimeMonitorEntry 5 } + + realtimeMonitorErrorRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Error rate (in percent)" + ::= { realtimeMonitorEntry 6 } + + realtimeMonitorAverageDataRate OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average data rate (in Mbps)" + ::= { realtimeMonitorEntry 7 } + + realtimeMonitorAverageRSSI OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Average RSSI" + ::= { realtimeMonitorEntry 8 } + + realtimeMonitorSignalToNoiseRatio OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Signal to noise ratio" + ::= { realtimeMonitorEntry 9 } + + realtimeMonitorNoiseFloor OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Noise floor" + ::= { realtimeMonitorEntry 10 } + + realtimeMonitorDot11Busy OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "802.11 medium busy (in percent)" + ::= { realtimeMonitorEntry 11 } + + realtimeMonitorNoise OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Noise (in percent)" + ::= { realtimeMonitorEntry 12 } + + stationAppStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF StationAppStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of station application statistics" + ::= { statistics 8 } + + stationAppStatsEntry OBJECT-TYPE + SYNTAX StationAppStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for station application statistics" + INDEX { stationAppStatsIndex } + ::= { stationAppStatsTable 1 } + + StationAppStatsEntry ::= SEQUENCE { + stationAppStatsIndex Integer32, + stationAppStatsMACAddress DisplayString, + stationAppStatsGuid DisplayString, + stationAppStatsTxPackets Counter64, + stationAppStatsRxPackets Counter64, + stationAppStatsTxBytes Counter64, + stationAppStatsRxBytes Counter64, + stationAppStatsTimePeriod Counter32 + } + + stationAppStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station application statistics index" + ::= { stationAppStatsEntry 1 } + + stationAppStatsMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "MAC address of the station" + ::= { stationAppStatsEntry 2 } + + stationAppStatsGuid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Global Unique ID of the application" + ::= { stationAppStatsEntry 3 } + + stationAppStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { stationAppStatsEntry 4 } + + stationAppStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { stationAppStatsEntry 5 } + + stationAppStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { stationAppStatsEntry 6 } + + stationAppStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { stationAppStatsEntry 7 } + + stationAppStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which application stats were collected" + ::= { stationAppStatsEntry 8 } + + stationAppCatStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF StationAppCatStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of station application category statistics" + ::= { statistics 9 } + + stationAppCatStatsEntry OBJECT-TYPE + SYNTAX StationAppCatStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for station application category statistics" + INDEX { stationAppCatStatsIndex } + ::= { stationAppCatStatsTable 1 } + + StationAppCatStatsEntry ::= SEQUENCE { + stationAppCatStatsIndex Integer32, + stationAppCatStatsMACAddress DisplayString, + stationAppCatStatsGuid DisplayString, + stationAppCatStatsTxPackets Counter64, + stationAppCatStatsRxPackets Counter64, + stationAppCatStatsTxBytes Counter64, + stationAppCatStatsRxBytes Counter64, + stationAppCatStatsTimePeriod Counter32 + } + + stationAppCatStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Station application category statistics index" + ::= { stationAppCatStatsEntry 1 } + + stationAppCatStatsMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "MAC address of the station" + ::= { stationAppCatStatsEntry 2 } + + stationAppCatStatsGuid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Global Unique ID of the application category" + ::= { stationAppCatStatsEntry 3 } + + stationAppCatStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { stationAppCatStatsEntry 4 } + + stationAppCatStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { stationAppCatStatsEntry 5 } + + stationAppCatStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { stationAppCatStatsEntry 6 } + + stationAppCatStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { stationAppCatStatsEntry 7 } + + stationAppCatStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which application category stats were collected" + ::= { stationAppCatStatsEntry 8 } + + vlanMgmtAppStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanMgmtAppStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of VLAN management application statistics" + ::= { statistics 10 } + + vlanMgmtAppStatsEntry OBJECT-TYPE + SYNTAX VlanMgmtAppStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for VLAN management application statistics" + INDEX { vlanMgmtAppStatsIndex } + ::= { vlanMgmtAppStatsTable 1 } + + VlanMgmtAppStatsEntry ::= SEQUENCE { + vlanMgmtAppStatsIndex Integer32, + vlanMgmtAppStatsVlan Integer32, + vlanMgmtAppStatsGuid DisplayString, + vlanMgmtAppStatsTxPackets Counter64, + vlanMgmtAppStatsRxPackets Counter64, + vlanMgmtAppStatsTxBytes Counter64, + vlanMgmtAppStatsRxBytes Counter64, + vlanMgmtAppStatsTimePeriod Counter32 + } + + vlanMgmtAppStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "VLAN management application statistics index" + ::= { vlanMgmtAppStatsEntry 1 } + + vlanMgmtAppStatsVlan OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN" + ::= { vlanMgmtAppStatsEntry 2 } + + vlanMgmtAppStatsGuid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Global Unique ID of the application" + ::= { vlanMgmtAppStatsEntry 3 } + + vlanMgmtAppStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { vlanMgmtAppStatsEntry 4 } + + vlanMgmtAppStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { vlanMgmtAppStatsEntry 5 } + + vlanMgmtAppStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { vlanMgmtAppStatsEntry 6 } + + vlanMgmtAppStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { vlanMgmtAppStatsEntry 7 } + + vlanMgmtAppStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which management application stats were collected" + ::= { vlanMgmtAppStatsEntry 8 } + + vlanMgmtAppCatStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanMgmtAppCatStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of VLAN management application category statistics" + ::= { statistics 11 } + + vlanMgmtAppCatStatsEntry OBJECT-TYPE + SYNTAX VlanMgmtAppCatStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for VLAN management application category statistics" + INDEX { vlanMgmtAppCatStatsIndex } + ::= { vlanMgmtAppCatStatsTable 1 } + + VlanMgmtAppCatStatsEntry ::= SEQUENCE { + vlanMgmtAppCatStatsIndex Integer32, + vlanMgmtAppCatStatsVlan Integer32, + vlanMgmtAppCatStatsGuid DisplayString, + vlanMgmtAppCatStatsTxPackets Counter64, + vlanMgmtAppCatStatsRxPackets Counter64, + vlanMgmtAppCatStatsTxBytes Counter64, + vlanMgmtAppCatStatsRxBytes Counter64, + vlanMgmtAppCatStatsTimePeriod Counter32 + } + + vlanMgmtAppCatStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "VLAN management application category statistics index" + ::= { vlanMgmtAppCatStatsEntry 1 } + + vlanMgmtAppCatStatsVlan OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN" + ::= { vlanMgmtAppCatStatsEntry 2 } + + vlanMgmtAppCatStatsGuid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Global Unique ID of the application category" + ::= { vlanMgmtAppCatStatsEntry 3 } + + vlanMgmtAppCatStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { vlanMgmtAppCatStatsEntry 4 } + + vlanMgmtAppCatStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { vlanMgmtAppCatStatsEntry 5 } + + vlanMgmtAppCatStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { vlanMgmtAppCatStatsEntry 6 } + + vlanMgmtAppCatStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { vlanMgmtAppCatStatsEntry 7 } + + vlanMgmtAppCatStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which management application category stats were collected" + ::= { vlanMgmtAppCatStatsEntry 8 } + + vlanStaAppStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanStaAppStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of VLAN station application statistics" + ::= { statistics 12 } + + vlanStaAppStatsEntry OBJECT-TYPE + SYNTAX VlanStaAppStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for VLAN station application statistics" + INDEX { vlanStaAppStatsIndex } + ::= { vlanStaAppStatsTable 1 } + + VlanStaAppStatsEntry ::= SEQUENCE { + vlanStaAppStatsIndex Integer32, + vlanStaAppStatsVlan Integer32, + vlanStaAppStatsGuid DisplayString, + vlanStaAppStatsTxPackets Counter64, + vlanStaAppStatsRxPackets Counter64, + vlanStaAppStatsTxBytes Counter64, + vlanStaAppStatsRxBytes Counter64, + vlanStaAppStatsTimePeriod Counter32 + } + + vlanStaAppStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "VLAN station application statistics index" + ::= { vlanStaAppStatsEntry 1 } + + vlanStaAppStatsVlan OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN" + ::= { vlanStaAppStatsEntry 2 } + + vlanStaAppStatsGuid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Global Unique ID of the application" + ::= { vlanStaAppStatsEntry 3 } + + vlanStaAppStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { vlanStaAppStatsEntry 4 } + + vlanStaAppStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { vlanStaAppStatsEntry 5 } + + vlanStaAppStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { vlanStaAppStatsEntry 6 } + + vlanStaAppStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { vlanStaAppStatsEntry 7 } + + vlanStaAppStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which station application stats were collected" + ::= { vlanStaAppStatsEntry 8 } + + vlanStaAppCatStatsTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanStaAppCatStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of VLAN station application category statistics" + ::= { statistics 13 } + + vlanStaAppCatStatsEntry OBJECT-TYPE + SYNTAX VlanStaAppCatStatsEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table entry for VLAN station application category statistics" + INDEX { vlanStaAppCatStatsIndex } + ::= { vlanStaAppCatStatsTable 1 } + + VlanStaAppCatStatsEntry ::= SEQUENCE { + vlanStaAppCatStatsIndex Integer32, + vlanStaAppCatStatsVlan Integer32, + vlanStaAppCatStatsGuid DisplayString, + vlanStaAppCatStatsTxPackets Counter64, + vlanStaAppCatStatsRxPackets Counter64, + vlanStaAppCatStatsTxBytes Counter64, + vlanStaAppCatStatsRxBytes Counter64, + vlanStaAppCatStatsTimePeriod Counter32 + } + + vlanStaAppCatStatsIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "VLAN station application category statistics index" + ::= { vlanStaAppCatStatsEntry 1 } + + vlanStaAppCatStatsVlan OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN" + ::= { vlanStaAppCatStatsEntry 2 } + + vlanStaAppCatStatsGuid OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Global Unique ID of the application category" + ::= { vlanStaAppCatStatsEntry 3 } + + vlanStaAppCatStatsTxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets transmitted" + ::= { vlanStaAppCatStatsEntry 4 } + + vlanStaAppCatStatsRxPackets OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Packets received" + ::= { vlanStaAppCatStatsEntry 5 } + + vlanStaAppCatStatsTxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes transmitted" + ::= { vlanStaAppCatStatsEntry 6 } + + vlanStaAppCatStatsRxBytes OBJECT-TYPE + SYNTAX Counter64 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Bytes received" + ::= { vlanStaAppCatStatsEntry 7 } + + vlanStaAppCatStatsTimePeriod OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time period over which station application category stats were collected" + ::= { vlanStaAppCatStatsEntry 8 } + + stationAppStatsTablePeriod OBJECT-TYPE + SYNTAX Counter32(0..100000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify period for station application statistics table entries (in seconds, 0 - all table entries)" + ::= { statistics 14 } + + stationAppStatsTableClear OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Clear the application statistics table (zero all counts)" + ::= { statistics 15 } + +-- +-- SYSLOG +-- + + syslogEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable syslog feature" + ::= { syslog 1 } + + syslogLevel OBJECT-TYPE + SYNTAX Integer32(0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Local syslog level" + ::= { syslog 2 } + + syslogServer OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary syslog server IP address or host name" + ::= { syslog 3 } + + syslogConsole OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable displaying log messages on the console" + ::= { syslog 4 } + + syslogSize OBJECT-TYPE + SYNTAX Integer32(1..2000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Local log file size" + ::= { syslog 5 } + + syslogTable OBJECT-TYPE + SYNTAX SEQUENCE OF SyslogEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Event log table" + ::= { syslog 6 } + + syslogEntry OBJECT-TYPE + SYNTAX SyslogEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Syslog table entry" + INDEX { syslogIndex } + ::= { syslogTable 1 } + + SyslogEntry ::= SEQUENCE { + syslogIndex Integer32, + syslogTimestamp DisplayString, + syslogPriority DisplayString, + syslogMessage OCTET STRING + } + + syslogIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Syslog index" + ::= { syslogEntry 1 } + + syslogTimestamp OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Syslog timestamp" + ::= { syslogEntry 2 } + + syslogPriority OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Syslog priority" + ::= { syslogEntry 3 } + + syslogMessage OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..500)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Syslog message" + ::= { syslogEntry 4 } + + syslogSecServer OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary syslog server IP address or host name" + ::= { syslog 7 } + + syslogLevelConsole OBJECT-TYPE + SYNTAX Integer32(0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Console syslog level" + ::= { syslog 8 } + + syslogLevelPriServer OBJECT-TYPE + SYNTAX Integer32(0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary server syslog level" + ::= { syslog 9 } + + syslogLevelSecServer OBJECT-TYPE + SYNTAX Integer32(0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary server syslog level" + ::= { syslog 10 } + + syslogTerServer OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Tertiary syslog server IP address or host name" + ::= { syslog 11 } + + syslogLevelTerServer OBJECT-TYPE + SYNTAX Integer32(0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Tertiary server syslog level" + ::= { syslog 12 } + + syslogEmailServer OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Email syslog SMTP server IP address or host name" + ::= { syslog 13 } + + syslogEmailLevel OBJECT-TYPE + SYNTAX Integer32(0..7) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Email syslog level" + ::= { syslog 14 } + + syslogEmailFromAddress OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Email Syslog from address" + ::= { syslog 15 } + + syslogEmailToAddress OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Email Syslog recipient addresses" + ::= { syslog 16 } + + syslogEmailUsername OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Email Syslog SMTP server username" + ::= { syslog 17 } + + syslogEmailPassword OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..64)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Email Syslog SMTP server user password" + ::= { syslog 18 } + + syslogEmailPasswordEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Email Syslog SMTP server user password (encrypted)" + ::= { syslog 19 } + + syslogEmailPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Email Syslog SMTP server port" + ::= { syslog 20 } + + syslogPriServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Primary syslog server port" + ::= { syslog 21 } + + syslogSecServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Secondary syslog server port" + ::= { syslog 22 } + + syslogTerServerPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Tertiary syslog server port" + ::= { syslog 23 } + + syslogStationFormat OBJECT-TYPE + SYNTAX INTEGER { standard(0), key-value(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Station information format in syslog messages" + ::= { syslog 24 } + + syslogTimeFormat OBJECT-TYPE + SYNTAX INTEGER { rfc3164(0), rfc3339(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time format in syslog messages" + ::= { syslog 25 } + + syslogStationUrlLog OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable station URL logging" + ::= { syslog 26 } + +-- +-- SYSTEM +-- + + systemHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(1.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Array hostname" + ::= { system 1 } + + systemLocation OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Array location" + ::= { system 2 } + + systemContactName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Contact name" + ::= { system 3 } + + systemContactEmail OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Contact email address" + ::= { system 4 } + + systemContactPhone OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Contact telephone number" + ::= { system 5 } + + systemTelnetEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable telnet" + ::= { system 6 } + + systemTelnetTimeout OBJECT-TYPE + SYNTAX Integer32(30..100000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Telnet timeout" + ::= { system 7 } + + systemSshEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable ssh" + ::= { system 8 } + + systemSshTimeout OBJECT-TYPE + SYNTAX Integer32(30..100000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Ssh timeout" + ::= { system 9 } + + systemHttpsEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable https" + ::= { system 10 } + + systemHttpsTimeout OBJECT-TYPE + SYNTAX Integer32(30..100000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Https timeout" + ::= { system 11 } + + systemReboot OBJECT-TYPE + SYNTAX INTEGER { reboot(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reboot array" + ::= { system 12 } + + systemReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset all settings to factory defaults and reboot" + ::= { system 13 } + + systemSaveCfg OBJECT-TYPE + SYNTAX INTEGER { save(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Save running configuration to flash" + ::= { system 14 } + + systemUptime OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Display time since last boot" + ::= { system 15 } + + systemArrayInfo OBJECT IDENTIFIER ::= { system 16 } + +-- +-- SYSTEM ARRAY INFO +-- + + hardwareConfig OBJECT IDENTIFIER ::= { systemArrayInfo 1 } + softwareConfig OBJECT IDENTIFIER ::= { systemArrayInfo 2 } + +-- +-- SYSTEM ARRAY INFO HARDWARE CONFIGURATION +-- + + componentTable OBJECT-TYPE + SYNTAX SEQUENCE OF ComponentEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Hardware component info table" + ::= { hardwareConfig 1 } + + componentEntry OBJECT-TYPE + SYNTAX ComponentEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Component table entry" + INDEX { componentIndex } + ::= { componentTable 1 } + + ComponentEntry ::= SEQUENCE { + componentIndex Integer32, + componentName DisplayString, + componentPart DisplayString, + componentSerial DisplayString, + componentDate DisplayString + } + + componentIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Component table index" + ::= { componentEntry 1 } + + componentName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Component name" + ::= { componentEntry 2 } + + componentPart OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Component part number" + ::= { componentEntry 3 } + + componentSerial OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Component serial number" + ::= { componentEntry 4 } + + componentDate OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Component date" + ::= { componentEntry 5 } + + fpgaTable OBJECT-TYPE + SYNTAX SEQUENCE OF FpgaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "FPGA info table" + ::= { hardwareConfig 2 } + + fpgaEntry OBJECT-TYPE + SYNTAX FpgaEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "FPGA table entry" + INDEX { fpgaIndex } + ::= { fpgaTable 1 } + + FpgaEntry ::= SEQUENCE { + fpgaIndex Integer32, + fpgaName DisplayString, + fpgaBootVersion DisplayString, + fpgaSWVersion DisplayString + } + + fpgaIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "FPGA table index" + ::= { fpgaEntry 1 } + + fpgaName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "FPGA name" + ::= { fpgaEntry 2 } + + fpgaBootVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "FPGA boot version" + ::= { fpgaEntry 3 } + + fpgaSWVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "FPGA software version" + ::= { fpgaEntry 4 } + + interfaceMACAddressTable OBJECT-TYPE + SYNTAX SEQUENCE OF InterfaceMACAddressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Interface MAC address table" + ::= { hardwareConfig 3 } + + interfaceMACAddressEntry OBJECT-TYPE + SYNTAX InterfaceMACAddressEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Interface MAC address table entry" + INDEX { interfaceMACAddressIndex } + ::= { interfaceMACAddressTable 1 } + + InterfaceMACAddressEntry ::= SEQUENCE { + interfaceMACAddressIndex Integer32, + interfaceName DisplayString, + interfaceMACAddress DisplayString + } + + interfaceMACAddressIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Interface MAC address table index" + ::= { interfaceMACAddressEntry 1 } + + interfaceName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface name" + ::= { interfaceMACAddressEntry 2 } + + interfaceMACAddress OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Interface MAC address" + ::= { interfaceMACAddressEntry 3 } + + arrayModel OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Array model" + ::= { hardwareConfig 4 } + +-- +-- SYSTEM ARRAY INFO SOFTWARE CONFIGURATION +-- + + bootLoaderVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Boot loader version" + ::= { softwareConfig 1 } + + iapDriverVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "IAP driver version" + ::= { softwareConfig 2 } + + softwareVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Software version" + ::= { softwareConfig 3 } + + timeThisBoot OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time of this boot" + ::= { softwareConfig 4 } + + timeLastBoot OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Time of the last boot" + ::= { softwareConfig 5 } + + scdFirmwareVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "SCD firmware version" + ::= { softwareConfig 6 } + + systemMIBVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "MIB version" + ::= { system 17 } + + systemGroupName OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Array group name" + ::= { system 18 } + + systemStandbyEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable standby" + ::= { system 19 } + + systemStandbyTarget OBJECT-TYPE + SYNTAX DisplayString(SIZE(17..17)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Target array to monitor for failure" + ::= { system 20 } + + systemTempTable OBJECT-TYPE + SYNTAX SEQUENCE OF SystemTempEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "System temperature table" + ::= { system 21 } + + systemTempEntry OBJECT-TYPE + SYNTAX SystemTempEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "System temperature table entry" + INDEX { systemTempIndex } + ::= { systemTempTable 1 } + + SystemTempEntry ::= SEQUENCE { + systemTempIndex Integer32, + systemTempComponent DisplayString, + systemTempCelsius Integer32, + systemTempFahrenheit Integer32 + } + + systemTempIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "System temperature table index" + ::= { systemTempEntry 1 } + + systemTempComponent OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System component name" + ::= { systemTempEntry 2 } + + systemTempCelsius OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System component temperature (Celsius)" + ::= { systemTempEntry 3 } + + systemTempFahrenheit OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System component temperature (Fahrenheit)" + ::= { systemTempEntry 4 } + + systemFipsMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable FIPS mode" + ::= { system 22 } + + systemTelnetPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Telnet port" + ::= { system 23 } + + systemSshPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Ssh port" + ::= { system 24 } + + systemHttpsPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Https port" + ::= { system 25 } + + systemLicenseKey OBJECT-TYPE + SYNTAX DisplayString(SIZE(23..23)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set array software license key" + ::= { system 26 } + + systemLicenseFeatures OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Software license features" + ::= { system 27 } + + systemRemoteServer OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify TFTP server for remote software image" + ::= { system 28 } + + systemRemoteImage OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify a remote array software image" + ::= { system 29 } + + systemRemoteConfigFile OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specify a remote array configuration file" + ::= { system 30 } + + systemHttpsCertificate OBJECT-TYPE + SYNTAX INTEGER { reset(0), self(1), xirrus(2), new(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set HTTPS certificate" + ::= { system 31 } + + systemPCIAuditMode OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable PCI (Payment Card Industry) audit mode" + ::= { system 32 } + + systemNetworkAssurance OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable network assurance" + ::= { system 33 } + + systemLicenseVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Software license version" + ::= { system 34 } + + systemLicenseExpDate OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Software license expiration date" + ::= { system 35 } + + licenseFeatureTable OBJECT-TYPE + SYNTAX SEQUENCE OF LicenseFeatureEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Software license feature list" + ::= { system 36} + + licenseFeatureEntry OBJECT-TYPE + SYNTAX LicenseFeatureEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Software license feature table entry" + INDEX { licenseFeatureIndex } + ::= { licenseFeatureTable 1 } + + LicenseFeatureEntry ::= SEQUENCE { + licenseFeatureIndex Integer32, + licenseFeatureName DisplayString, + licenseFeatureStatus INTEGER, + licenseFeatureDesc DisplayString + } + + licenseFeatureIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "License feature table index" + ::= { licenseFeatureEntry 1 } + + licenseFeatureName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "License feature name" + ::= { licenseFeatureEntry 2 } + + licenseFeatureStatus OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "License feature status" + ::= { licenseFeatureEntry 3 } + + licenseFeatureDesc OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "License feature description" + ::= { licenseFeatureEntry 4 } + + systemRDKMode OBJECT-TYPE + SYNTAX INTEGER { disabled(0), enabled(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Rapid Deployment Kit mode" + ::= { system 37 } + + systemMaxAuthAttempts OBJECT-TYPE + SYNTAX Integer32(0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Maximum number of authentication (login) attempts (0 means unlimited)" + ::= { system 38 } + + systemLoginReauthPeriod OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Time between failed CLI login attempts" + ::= { system 39 } + + systemPreLoginBanner OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..1000)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set pre-login banner message" + ::= { system 40 } + + systemPostLoginBanner OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..1000)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set post-login banner message" + ::= { system 41 } + + systemResetReason OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Reason for last reboot" + ::= { system 42 } + + systemResetCode OBJECT-TYPE + SYNTAX INTEGER { reboot-req(0), power-on(1), power-brown-out(2), + scd-restart(3), gpc(4), unavailable(5) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Code for last reboot" + ::= { system 43 } + + systemNetworkAssurancePeriod OBJECT-TYPE + SYNTAX Integer32(60..900) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Set network assurance period (in seconds)" + ::= { system 44 } + + systemLicenseProductType OBJECT-TYPE + SYNTAX INTEGER { unknown(0), array2x3(1), array2x2(2), array3x3(3) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Software license product type" + ::= { system 45 } + + systemLicenseMaxNumIAPs OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Software license maximum number of IAPs" + ::= { system 46 } + + systemCrashInfo OBJECT-TYPE + SYNTAX OCTET STRING(SIZE(0..4096)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System crash information" + ::= { system 47 } + + systemCompassHeading OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System compass heading (in degrees, -1 - unknown)" + ::= { system 48 } + + systemXirconEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable-aos-only(1), + enable-boot-only(2), enable-aos-boot(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable xircon access" + ::= { system 49 } + + systemXirconTimeout OBJECT-TYPE + SYNTAX Integer32(30..100000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Xircon inactivity timeout" + ::= { system 50 } + + systemXirconPort OBJECT-TYPE + SYNTAX Integer32(1025..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Xircon port" + ::= { system 51 } + + systemStpEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable Spanning Tree Protocol" + ::= { system 52 } + + systemFanSpeed OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "System fan speed (RPM)" + ::= { system 53 } + + systemXmsControl OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Allow all user management or restrict to console and XMS only" + ::= { system 54 } + + systemActivation OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable/disable array activation" + ::= { system 55 } + + systemActivationInterval OBJECT-TYPE + SYNTAX Integer32(1..1000000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Array activation polling interval (minutes)" + ::= { system 56 } + +-- +-- TUNNEL +-- + + tunnelTable OBJECT-TYPE + SYNTAX SEQUENCE OF TunnelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Tunnel table" + ::= { tunnel 1 } + + tunnelEntry OBJECT-TYPE + SYNTAX TunnelEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Tunnel table entry" + INDEX { tunnelIndex } + ::= { tunnelTable 1 } + + TunnelEntry ::= SEQUENCE { + tunnelIndex Integer32, + tunnelName DisplayString, + tunnelEnable INTEGER, + tunnelType INTEGER, + tunnelLocalEndpoint IpAddress, + tunnelPriRemoteEndpoint IpAddress, + tunnelSecRemoteEndpoint IpAddress, + tunnelMTU Integer32, + tunnelSsids Integer32, + tunnelDhcpOption INTEGER, + tunnelFailoverInterval Integer32, + tunnelFailoverNumFailures Integer32, + tunnelRowStatus RowStatus + } + + tunnelIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Tunnel table index" + ::= { tunnelEntry 1 } + + tunnelName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Tunnel name" + ::= { tunnelEntry 2 } + + tunnelEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable or disable tunnel" + ::= { tunnelEntry 3 } + + tunnelType OBJECT-TYPE + SYNTAX INTEGER { none(0), gre(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Tunnel type" + ::= { tunnelEntry 4 } + + tunnelLocalEndpoint OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Tunnel local endpoint" + ::= { tunnelEntry 5 } + + tunnelPriRemoteEndpoint OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Tunnel primary remote endpoint" + ::= { tunnelEntry 6 } + + tunnelSecRemoteEndpoint OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Tunnel secondary remote endpoint" + ::= { tunnelEntry 7 } + + tunnelMTU OBJECT-TYPE + SYNTAX Integer32(68..1732) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Tunnel MTU" + ::= { tunnelEntry 8 } + + tunnelSsids OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Define SSIDs for which data traffic should be bridged via this tunnel" + ::= { tunnelEntry 9 } + + tunnelDhcpOption OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable or disable insertion of relay agent information option in station DHCP requests" + ::= { tunnelEntry 10 } + + tunnelFailoverInterval OBJECT-TYPE + SYNTAX Integer32(5..3600) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Ping interval for remote endpoint failover mechanism" + ::= { tunnelEntry 11 } + + tunnelFailoverNumFailures OBJECT-TYPE + SYNTAX Integer32(3..1000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Number of ping failures for remote endpoint failover mechanism" + ::= { tunnelEntry 12 } + + tunnelRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the tunnel row entry" + ::= { tunnelEntry 13 } + + tunnelTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Delete all tunnels" + ::= { tunnel 2 } + +-- +-- VLAN +-- + + vlanTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset VLAN table (clear all entries)" + ::= { vlan 1 } + + vlanTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "VLAN table for the Array" + ::= { vlan 2 } + + vlanEntry OBJECT-TYPE + SYNTAX VlanEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "VLAN table entry" + INDEX { vlanIndex } + ::= { vlanTable 1 } + + VlanEntry ::= SEQUENCE { + vlanIndex Integer32, + vlanName DisplayString, + vlanNumber Integer32, + vlanMgmt INTEGER, + vlanDHCPBind INTEGER, + vlanIPAddress IpAddress, + vlanIPMask IpAddress, + vlanGateway IpAddress, + vlanRowStatus RowStatus, + vlanTunnelServer DisplayString, + vlanTunnelSecret DisplayString, + vlanTunnelPort Integer32, + vlanTunnelState INTEGER, + vlanTunnelSecretForm INTEGER, + vlanFastRoaming INTEGER + } + + vlanIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "VLAN table index" + ::= { vlanEntry 1 } + + vlanName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "VLAN name" + ::= { vlanEntry 2 } + + vlanNumber OBJECT-TYPE + SYNTAX Integer32(1..4095) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "VLAN number" + ::= { vlanEntry 3 } + + vlanMgmt OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable/disable management via VLAN" + ::= { vlanEntry 4 } + + vlanDHCPBind OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Use DHCP to get IP settings for VLAN" + ::= { vlanEntry 5 } + + vlanIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "VLAN IP address" + ::= { vlanEntry 6 } + + vlanIPMask OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "VLAN IP Mask" + ::= { vlanEntry 7 } + + vlanGateway OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "VLAN gateway IP address" + ::= { vlanEntry 8 } + + vlanRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the VLAN row entry" + ::= { vlanEntry 9 } + + vlanTunnelServer OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "VLAN tunnel server IP address or host name" + ::= { vlanEntry 10 } + + vlanTunnelSecret OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..128)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "VLAN tunnel server password" + ::= { vlanEntry 11 } + + vlanTunnelPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "VLAN tunnel server port number" + ::= { vlanEntry 12 } + + vlanTunnelState OBJECT-TYPE + SYNTAX INTEGER { not-connected(0), connected(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN tunnel state" + ::= { vlanEntry 13 } + + vlanTunnelSecretForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "VLAN tunnel server password form" + ::= { vlanEntry 14 } + + vlanFastRoaming OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable/disable fast roaming (at layer 3) for VLAN" + ::= { vlanEntry 15 } + + spanningTreeTable OBJECT-TYPE + SYNTAX SEQUENCE OF SpanningTreeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Spanning tree state table" + ::= { vlan 3 } + + spanningTreeEntry OBJECT-TYPE + SYNTAX SpanningTreeEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Spanning tree table entry" + INDEX { spanningTreeIndex } + ::= { spanningTreeTable 1 } + + SpanningTreeEntry ::= SEQUENCE { + spanningTreeIndex Integer32, + spanningTreeVlanName DisplayString, + spanningTreeVlanNumber Integer32, + spanningTreeGigLinkState DisplayString, + spanningTreeWDSClientLink1State DisplayString, + spanningTreeWDSClientLink2State DisplayString, + spanningTreeWDSClientLink3State DisplayString, + spanningTreeWDSClientLink4State DisplayString, + spanningTreeWDSHostLink1State DisplayString, + spanningTreeWDSHostLink2State DisplayString, + spanningTreeWDSHostLink3State DisplayString, + spanningTreeWDSHostLink4State DisplayString + } + + spanningTreeIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Spanning tree table index" + ::= { spanningTreeEntry 1 } + + spanningTreeVlanName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN name" + ::= { spanningTreeEntry 2 } + + spanningTreeVlanNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "VLAN number" + ::= { spanningTreeEntry 3 } + + spanningTreeGigLinkState OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Gigabit link state" + ::= { spanningTreeEntry 4 } + + spanningTreeWDSClientLink1State OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS client link 1 state" + ::= { spanningTreeEntry 5 } + + spanningTreeWDSClientLink2State OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS client link 2 state" + ::= { spanningTreeEntry 6 } + + spanningTreeWDSClientLink3State OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS client link 3 state" + ::= { spanningTreeEntry 7 } + + spanningTreeWDSClientLink4State OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS client link 4 state" + ::= { spanningTreeEntry 8 } + + spanningTreeWDSHostLink1State OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS host link 1 state" + ::= { spanningTreeEntry 9 } + + spanningTreeWDSHostLink2State OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS host link 2 state" + ::= { spanningTreeEntry 10 } + + spanningTreeWDSHostLink3State OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS host link 3 state" + ::= { spanningTreeEntry 11 } + + spanningTreeWDSHostLink4State OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "WDS host link 4 state" + ::= { spanningTreeEntry 12 } + + vlanDefaultNumber OBJECT-TYPE + SYNTAX Integer32(0..4095) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "VLAN number(1-4095) to assign as default, 0 - no VLAN as default" + ::= { vlan 4 } + + vlanNativeNumber OBJECT-TYPE + SYNTAX Integer32(0..4095) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "VLAN number(1-4095) to assign as native, 0 - no VLAN as native" + ::= { vlan 5 } + + vlanUndefinedTable OBJECT-TYPE + SYNTAX SEQUENCE OF VlanUndefinedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of undefined VLANs detected" + ::= { vlan 6 } + + vlanUndefinedEntry OBJECT-TYPE + SYNTAX VlanUndefinedEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Undefined VLAN table entry" + INDEX { vlanUndefinedIndex } + ::= { vlanUndefinedTable 1 } + + VlanUndefinedEntry ::= SEQUENCE { + vlanUndefinedIndex Integer32, + vlanUndefinedNumber Integer32 + } + + vlanUndefinedIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Undefined VLAN table index" + ::= { vlanUndefinedEntry 1 } + + vlanUndefinedNumber OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undefined VLAN number" + ::= { vlanUndefinedEntry 2 } + + vlanUndefinedInfo OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Undefined VLANs detected" + ::= { vlan 7 } + + vlanUndefinedClear OBJECT-TYPE + SYNTAX INTEGER { clear(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Clear undefined VLAN information" + ::= { vlan 8 } + +-- +-- CLUSTER +-- + + clusterArrayTable OBJECT-TYPE + SYNTAX SEQUENCE OF ClusterArrayEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Table of cluster arrays" + ::= { cluster 1 } + + clusterArrayEntry OBJECT-TYPE + SYNTAX ClusterArrayEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Cluster array table entry" + INDEX { clusterArrayIndex } + ::= { clusterArrayTable 1 } + + ClusterArrayEntry ::= SEQUENCE { + clusterArrayIndex Integer32, + clusterArrayHostname DisplayString, + clusterArrayIPAddress IpAddress, + clusterArrayUsername DisplayString, + clusterArrayPassword DisplayString, + clusterArrayPasswordForm INTEGER, + clusterArrayCluster DisplayString, + clusterArrayRowStatus RowStatus + } + + clusterArrayIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Cluster array table index" + ::= { clusterArrayEntry 1 } + + clusterArrayHostname OBJECT-TYPE + SYNTAX DisplayString(SIZE(1.. 255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Hostname or IP address of the cluster array" + ::= { clusterArrayEntry 2 } + + clusterArrayIPAddress OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "IP address of the cluster array" + ::= { clusterArrayEntry 3 } + + clusterArrayUsername OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Username for cluster array login" + ::= { clusterArrayEntry 4 } + + clusterArrayPassword OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..100)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Password for cluster array login" + ::= { clusterArrayEntry 5 } + + clusterArrayPasswordForm OBJECT-TYPE + SYNTAX INTEGER { clear(0), encrypted(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Password form" + ::= { clusterArrayEntry 6 } + + clusterArrayCluster OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Name of the array parent cluster" + ::= { clusterArrayEntry 7 } + + clusterArrayRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the cluster array row entry" + ::= { clusterArrayEntry 8 } + + clusterArrayTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset cluster array table (clear all entries)" + ::= { cluster 2 } + +-- +-- EnvCtrl +-- + + envCtrlTemperature OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller temperature (Celsius)" + ::= { envCtrl 1 } + + envCtrlHumidity OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller humidity (percent)" + ::= { envCtrl 2 } + + envCtrlCoolRPM1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller cooling fan 1 RPM" + ::= { envCtrl 3 } + + envCtrlCoolRPM2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller cooling fan 2 RPM" + ::= { envCtrl 4 } + + envCtrlCoolRPM3 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller cooling fan 3 RPM" + ::= { envCtrl 5 } + + envCtrlCoolRPM4 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller cooling fan 4 RPM" + ::= { envCtrl 6 } + + envCtrlHeatRPM1 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller heating fan 1 RPM" + ::= { envCtrl 7 } + + envCtrlHeatRPM2 OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller heating fan 2 RPM" + ::= { envCtrl 8 } + + envCtrlArrayOn OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller installed" + ::= { envCtrl 9 } + + envCtrlCoolOn OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller cooling fan on" + ::= { envCtrl 10 } + + envCtrlHeatOn OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller heating fan on" + ::= { envCtrl 11 } + + envCtrlSoftwareVersion OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Outdoor enclosure environmental controller software version" + ::= { envCtrl 12 } + +-- +-- LOCATION +-- + + locationReportingOn OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Location server reporting enable/disable" + ::= { location 1 } + + locationReportingUrl OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Location server URL" + ::= { location 2 } + + locationReportingKey OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..49)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Location server key" + ::= { location 3 } + + locationReportingPeriod OBJECT-TYPE + SYNTAX Integer32(15..50000) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Location server reporting period" + ::= { location 4 } + +-- +-- GROUP +-- + + groupTable OBJECT-TYPE + SYNTAX SEQUENCE OF GroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Group table for the array" + ::= { group 1 } + + groupEntry OBJECT-TYPE + SYNTAX GroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Group table entry" + INDEX { groupIndex } + ::= { groupTable 1 } + + GroupEntry ::= SEQUENCE { + groupIndex Integer32, + groupName DisplayString, + groupRadiusFilterID DisplayString, + groupEnable INTEGER, + groupVlan Integer32, + groupQOS Integer32, + groupDhcpPool DisplayString, + groupFilterList DisplayString, + groupRoamingLayer INTEGER, + groupStationLimit Integer32, + groupTrafficLimit Integer32, + groupTrafficLimitSta Integer32, + groupTimeOn Integer32, + groupTimeOff Integer32, + groupDaysOnMon INTEGER, + groupDaysOnTue INTEGER, + groupDaysOnWed INTEGER, + groupDaysOnThu INTEGER, + groupDaysOnFri INTEGER, + groupDaysOnSat INTEGER, + groupDaysOnSun INTEGER, + groupWprEnable INTEGER, + groupWprSplashEnable INTEGER, + groupWprSplashTimeout Integer32, + groupWprLandingPage DisplayString, + groupActive INTEGER, + groupRowStatus RowStatus, + groupWprBackground DisplayString, + groupWprLogoImage DisplayString, + groupWprHeaderText DisplayString, + groupWprFooterText DisplayString, + groupFallback INTEGER, + groupDeviceID DisplayString, + groupTrafficLimitKbps Integer32, + groupTrafficLimitKbpsSta Integer32 + } + + groupIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Group table index" + ::= { groupEntry 1 } + + groupName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group name" + ::= { groupEntry 2 } + + groupRadiusFilterID OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Radius Filter-ID (Attribute Type 11) mapped to this group" + ::= { groupEntry 3 } + + groupEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable or disable group" + ::= { groupEntry 4 } + + groupVlan OBJECT-TYPE + SYNTAX Integer32(0..4095) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group VLAN ID" + ::= { groupEntry 5 } + + groupQOS OBJECT-TYPE + SYNTAX Integer32(0..3) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group QoS level" + ::= { groupEntry 6 } + + groupDhcpPool OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group DHCP pool" + ::= { groupEntry 7 } + + groupFilterList OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..20)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group filter list" + ::= { groupEntry 8 } + + groupRoamingLayer OBJECT-TYPE + SYNTAX INTEGER { layer-2-only(0), layer-2-and-3(1), none(2) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Fast roaming layer allowed for this group" + ::= { groupEntry 9 } + + groupStationLimit OBJECT-TYPE + SYNTAX Integer32(1..3840) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Station limit for group" + ::= { groupEntry 10 } + + groupTrafficLimit OBJECT-TYPE + SYNTAX Integer32(0..1000000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Traffic limit for group (10 to 1000000 pps, 0 - unlimited)" + ::= { groupEntry 11 } + + groupTrafficLimitSta OBJECT-TYPE + SYNTAX Integer32(0..100000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Traffic limit per station for group (10 to 100000 pps, 0 - unlimited)" + ::= { groupEntry 12 } + + groupTimeOn OBJECT-TYPE + SYNTAX Integer32(-1..1439) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Set daily time group is active (in minutes, -1 - always)" + ::= { groupEntry 13 } + + groupTimeOff OBJECT-TYPE + SYNTAX Integer32(-1..1439) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Set daily time group is inactive (in minutes, -1 - never)" + ::= { groupEntry 14 } + + groupDaysOnMon OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group is on/off on Monday" + ::= { groupEntry 15 } + + groupDaysOnTue OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group is on/off on Tuesday" + ::= { groupEntry 16 } + + groupDaysOnWed OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group is on/off on Wednesday" + ::= { groupEntry 17 } + + groupDaysOnThu OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group is on/off on Thursday" + ::= { groupEntry 18 } + + groupDaysOnFri OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group is on/off on Friday" + ::= { groupEntry 19 } + + groupDaysOnSat OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group is on/off on Saturday" + ::= { groupEntry 20 } + + groupDaysOnSun OBJECT-TYPE + SYNTAX INTEGER { off(0), on(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Group is on/off on Sunday" + ::= { groupEntry 21 } + + groupWprEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable or disable WPR for group" + ::= { groupEntry 22 } + + groupWprSplashEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Enable or disable splash screen for WPR" + ::= { groupEntry 23 } + + groupWprSplashTimeout OBJECT-TYPE + SYNTAX Integer32(0..100) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Splash screen timeout (0 - no timeout)" + ::= { groupEntry 24 } + + groupWprLandingPage OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Landing page URL for WPR" + ::= { groupEntry 25 } + + groupActive OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Flag indicating whether group is currently active" + ::= { groupEntry 26 } + + groupRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the group row entry" + ::= { groupEntry 27 } + + groupWprBackground OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Custom background file for WPR" + ::= { groupEntry 28 } + + groupWprLogoImage OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Custom logo file for WPR" + ::= { groupEntry 29 } + + groupWprHeaderText OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Custom header text file for WPR" + ::= { groupEntry 30 } + + groupWprFooterText OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Custom footer text file for WPR" + ::= { groupEntry 31 } + + groupFallback OBJECT-TYPE + SYNTAX INTEGER { none(0), disable-group(1) } + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Define network connectivity fallback mode for this group" + ::= { groupEntry 32 } + + groupDeviceID OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Device ID mapped to this group" + ::= { groupEntry 33 } + + groupTrafficLimitKbps OBJECT-TYPE + SYNTAX Integer32(0..4000000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Traffic limit for group (10 to 4000000 kbps, 0 - unlimited)" + ::= { groupEntry 34 } + + groupTrafficLimitKbpsSta OBJECT-TYPE + SYNTAX Integer32(0..400000) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Traffic limit per station for group (10 to 400000 kbps, 0 - unlimited)" + ::= { groupEntry 35 } + + groupTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset group table (clear all entries)" + ::= { group 2 } + +-- +-- MDM +-- + + mdmAirWatchApiURL OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AirWatch API URL" + ::= { mdm 1 } + + mdmAirWatchApiKey OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AirWatch API key" + ::= { mdm 2 } + + mdmAirWatchApiUsername OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AirWatch API username" + ::= { mdm 3 } + + mdmAirWatchApiPassword OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..50)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AirWatch API password" + ::= { mdm 4 } + + mdmAirWatchApiPasswordEnc OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..100)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AirWatch API password (encrypted)" + ::= { mdm 5 } + + mdmAirWatchApiTimeout OBJECT-TYPE + SYNTAX Integer32(1..20) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AirWatch API timeout (in seconds)" + ::= { mdm 6 } + + mdmAirWatchApiPollPeriod OBJECT-TYPE + SYNTAX Integer32(1..3600) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AirWatch API poll period (in seconds)" + ::= { mdm 7 } + + mdmAirWatchApiAccessError OBJECT-TYPE + SYNTAX INTEGER { block(0), allow(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AirWatch API access error action" + ::= { mdm 8 } + + mdmAirWatchRedirectURL OBJECT-TYPE + SYNTAX DisplayString(SIZE(0..255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "AirWatch station redirect URL" + ::= { mdm 9 } + +-- +-- NETFLOW +-- + + netflowEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), v5(1), v9(2), ipfix(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable NetFlow probe" + ::= { netflow 1 } + + netflowCollectorHost OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Netflow collector IP address or host name" + ::= { netflow 2 } + + netflowCollectorPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "NetFlow collector port" + ::= { netflow 3 } + +-- +-- WIFI_TAG +-- + + wifiTagEnable OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Enable or disable WiFi Tag" + ::= { wifiTag 1 } + + wifiTagUdpPort OBJECT-TYPE + SYNTAX Integer32(0..65535) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "WiFi Tag UDP Port" + ::= { wifiTag 2 } + + wifiTagChannel1 OBJECT-TYPE + SYNTAX Integer32(0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "WiFi Tag Channel 1" + ::= { wifiTag 3 } + + wifiTagChannel2 OBJECT-TYPE + SYNTAX Integer32(0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "WiFi Tag Channel 2" + ::= { wifiTag 4 } + + wifiTagChannel3 OBJECT-TYPE + SYNTAX Integer32(0..255) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "WiFi Tag Channel 3" + ::= { wifiTag 5 } + + wifiTagEkahauServer OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Ekahau server host name or IP address" + ::= { wifiTag 6 } + +-- +-- WPR +-- + + wprWhitelistSsidTable OBJECT-TYPE + SYNTAX SEQUENCE OF WprWhitelistSsidEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WPR whitelist per SSID" + ::= { wpr 1 } + + wprWhitelistSsidEntry OBJECT-TYPE + SYNTAX WprWhitelistSsidEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WPR whitelist per SSID table entry" + INDEX { wprWhitelistSsidIndex } + ::= { wprWhitelistSsidTable 1 } + + WprWhitelistSsidEntry ::= SEQUENCE { + wprWhitelistSsidIndex Integer32, + wprWhitelistSsidDomain DisplayString, + wprWhitelistSsidName DisplayString, + wprWhitelistSsidRowStatus RowStatus + } + + wprWhitelistSsidIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WPR whitelist per SSID index" + ::= { wprWhitelistSsidEntry 1 } + + wprWhitelistSsidDomain OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WPR whitelist domain name" + ::= { wprWhitelistSsidEntry 2 } + + wprWhitelistSsidName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "SSID this WPR whitelist domain belongs to" + ::= { wprWhitelistSsidEntry 3 } + + wprWhitelistSsidRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the WPR whitelist row entry" + ::= { wprWhitelistSsidEntry 4 } + + wprWhitelistGroupTable OBJECT-TYPE + SYNTAX SEQUENCE OF WprWhitelistGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WPR whitelist per user group" + ::= { wpr 2 } + + wprWhitelistGroupEntry OBJECT-TYPE + SYNTAX WprWhitelistGroupEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WPR whitelist per user group table entry" + INDEX { wprWhitelistGroupIndex } + ::= { wprWhitelistGroupTable 1 } + + WprWhitelistGroupEntry ::= SEQUENCE { + wprWhitelistGroupIndex Integer32, + wprWhitelistGroupDomain DisplayString, + wprWhitelistGroupName DisplayString, + wprWhitelistGroupRowStatus RowStatus + } + + wprWhitelistGroupIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "WPR whitelist per user group index" + ::= { wprWhitelistGroupEntry 1 } + + wprWhitelistGroupDomain OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..255)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "WPR whitelist domain name" + ::= { wprWhitelistGroupEntry 2 } + + wprWhitelistGroupName OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "User group this WPR whitelist domain belongs to" + ::= { wprWhitelistGroupEntry 3 } + + wprWhitelistGroupRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Status of the WPR whitelist row entry" + ::= { wprWhitelistGroupEntry 4 } + + wprWhitelistSsidTableReset OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset WPR whitelist (clear all entries) for given SSID" + ::= { wpr 3 } + + wprWhitelistGroupTableReset OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..32)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset WPR whitelist (clear all entries) for given user group" + ::= { wpr 4 } + +-- +-- OAUTH - Open Authentication +-- + + oauthTokenTable OBJECT-TYPE + SYNTAX SEQUENCE OF OauthTokenEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "OAUTH Token table" + ::= { oauth 1 } + + oauthTokenEntry OBJECT-TYPE + SYNTAX OauthTokenEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "OAUTH token table entry" + INDEX { oauthTokenIndex } + ::= { oauthTokenTable 1 } + + OauthTokenEntry ::= SEQUENCE { + oauthTokenIndex Integer32, + oauthTokenId DisplayString, + oauthTokenClientId DisplayString, + oauthTokenGrantType DisplayString, + oauthTokenExpiration Counter32, + oauthTokenUserAgent DisplayString, + oauthTokenScope DisplayString, + oauthTokenCode DisplayString, + oauthTokenType DisplayString, + oauthTokenRowStatus RowStatus + } + + oauthTokenIndex OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "OAUTH Token index" + ::= { oauthTokenEntry 1 } + + + oauthTokenId OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..50)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OAUTH Token Id" + ::= { oauthTokenEntry 2 } + + oauthTokenClientId OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..50)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OAUTH Token Client ID" + ::= { oauthTokenEntry 3 } + + oauthTokenGrantType OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..50)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OAUTH Token Grant Type" + ::= { oauthTokenEntry 4 } + + oauthTokenExpiration OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OAUTH Token Expiration" + ::= { oauthTokenEntry 5 } + + oauthTokenUserAgent OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..50)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OAUTH Token User Agent" + ::= { oauthTokenEntry 6 } + + oauthTokenScope OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..50)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OAUTH Token Scope" + ::= { oauthTokenEntry 7 } + + oauthTokenCode OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..50)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OAUTH Token Code" + ::= { oauthTokenEntry 8 } + + oauthTokenType OBJECT-TYPE + SYNTAX DisplayString(SIZE(1..50)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "OAUTH Token Type" + ::= { oauthTokenEntry 9 } + + oauthTokenRowStatus OBJECT-TYPE + SYNTAX RowStatus + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Status of the OAUTH Token row entry" + ::= { oauthTokenEntry 10 } + + oauthTableReset OBJECT-TYPE + SYNTAX INTEGER { reset(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Reset OAUTH table (clear all entries)" + ::= { oauth 2 } + +-- +-- PROXY FORWARDING +-- + + proxyFwdProxyType OBJECT-TYPE + SYNTAX INTEGER { off(0), bluecoat(1), netboxblue(2) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Disable or enable proxy forwarding" + ::= { proxyFwd 1 } + + proxyFwdBlueCoatUrl OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "URL of BlueCoat proxy server" + ::= { proxyFwd 2 } + + proxyFwdNetBoxBlueUrl OBJECT-TYPE + SYNTAX DisplayString(SIZE(0.. 255)) + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "URL of NetBoxBlue proxy server" + ::= { proxyFwd 3 } + + +-- +-- TRAPS +-- + + adminTraps OBJECT IDENTIFIER ::= { traps 1 } + stationTraps OBJECT IDENTIFIER ::= { traps 2 } + generalTraps OBJECT IDENTIFIER ::= { traps 3 } + envCtrlTraps OBJECT IDENTIFIER ::= { traps 4 } + iapTraps OBJECT IDENTIFIER ::= { traps 5 } + trapObjects OBJECT IDENTIFIER ::= { traps 100 } + +-- +-- TRAPS ADMIN +-- + + adminLogin NOTIFICATION-TYPE + OBJECTS { adminUsername } + STATUS current + DESCRIPTION + "Admin Logged into Array" + ::= { adminTraps 1 } + + adminLogout NOTIFICATION-TYPE + OBJECTS { adminUsername } + STATUS current + DESCRIPTION + "Admin Logged out from Array" + ::= { adminTraps 2 } + +-- +-- TRAPS STATION +-- + + stationACLFailure NOTIFICATION-TYPE + OBJECTS { stationAssociationMACAddress } + STATUS current + DESCRIPTION + "Station rejected by ACL" + ::= { stationTraps 1 } + + stationRadiusAuthFailure NOTIFICATION-TYPE + OBJECTS { stationAssociationMACAddress } + STATUS current + DESCRIPTION + "Station failed Radius server authentication" + ::= { stationTraps 2 } + +-- +-- TRAPS GENERAL +-- + resetArray NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Admin requested reset of the Array" + ::= { generalTraps 1 } + + rebootArray NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Administrator requested a reboot of Array" + ::= { generalTraps 2 } + + softwareUploadFailure NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Array software image upload failed" + ::= { generalTraps 3 } + + softwareUploadSuccess NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Array software image upload succeeded" + ::= { generalTraps 4 } + + softwareUpgradeFailure NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Array software upgrade failed" + ::= { generalTraps 5 } + + softwareUpgradeSuccess NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Array software upgrade succeeded" + ::= { generalTraps 6 } + + dhcpRenewFailure NOTIFICATION-TYPE + OBJECTS { ethStatsIfaceName } + STATUS current + DESCRIPTION + "Unable to get DHCP Address" + ::= { generalTraps 7 } + + cfgChange NOTIFICATION-TYPE + OBJECTS { cfgModuleOID } + STATUS current + DESCRIPTION + "Configuration change" + ::= { generalTraps 8 } + + keepAlive NOTIFICATION-TYPE + OBJECTS { systemHostname } + STATUS current + DESCRIPTION + "Keepalive notice" + ::= { generalTraps 9 } + + encDoorOpened NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Enclosure door opened" + ::= { generalTraps 10 } + + encDoorClosed NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Enclosure door closed" + ::= { generalTraps 11 } + + flashPartitionCorrupt NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Flash partition corrupt" + ::= { generalTraps 12 } + + licenseUpdate NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "License updated" + ::= { generalTraps 13 } + +-- +-- TRAPS ENVIRONMENTAL CONTROLLER +-- + + envCtrlTempOver NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Outdoor enclosure temperature too high" + ::= { envCtrlTraps 1 } + + envCtrlTempUnder NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Outdoor enclosure temperature too low" + ::= { envCtrlTraps 2 } + + envCtrlHumidOver NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Outdoor enclosure humidity too high" + ::= { envCtrlTraps 3 } + + envCtrlFanFail NOTIFICATION-TYPE + STATUS current + DESCRIPTION + "Outdoor enclosure fan failure" + ::= { envCtrlTraps 4 } + +-- +-- TRAPS IAP +-- + + iapBeaconProbeFailure NOTIFICATION-TYPE + OBJECTS { iapStatsIfaceName } + STATUS current + DESCRIPTION + "No received beacons (or probe responses) from IAP, alert only" + ::= { iapTraps 1 } + + iapBeaconProbeFailurePhyReset NOTIFICATION-TYPE + OBJECTS { iapStatsIfaceName } + STATUS current + DESCRIPTION + "No received beacons (or probe responses) from IAP, resetting interface PHY" + ::= { iapTraps 2 } + + iapBeaconProbeFailureMacReset NOTIFICATION-TYPE + OBJECTS { iapStatsIfaceName } + STATUS current + DESCRIPTION + "No received beacons (or probe responses) from IAP, resetting interface MAC" + ::= { iapTraps 3 } + + iapBeaconProbeFailureArrayReboot NOTIFICATION-TYPE + OBJECTS { iapStatsIfaceName } + STATUS current + DESCRIPTION + "No received beacons (or probe responses) from IAP, scheduling array reboot" + ::= { iapTraps 4 } + +-- +-- TRAP OBJECTS +-- + + cfgModuleOID OBJECT-TYPE + SYNTAX OBJECT IDENTIFIER + MAX-ACCESS accessible-for-notify + STATUS current + DESCRIPTION + "Configuration module OID" + ::= { trapObjects 1 } + +-- +-- PROXY CLIENT for MANAGEMENT TRAFFIC (PROXY MGMT) +-- + proxyMgmtEnabled OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Disable or enable all proxy client services for management traffic" + ::= { proxyMgmt 1 } + + proxyMgmtCustom OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Disable or enable custom tsocks configuration for proxy client" + ::= { proxyMgmt 2 } + + proxyMgmtHttpEnabled OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Disable or enable HTTP proxy client" + ::= { proxyMgmt 3 } + + proxyMgmtHttpIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Ip Address used with HTTP proxy client" + ::= { proxyMgmt 4 } + + proxyMgmtHttpPort OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Port used with HTTP proxy client" + ::= { proxyMgmt 5 } + + proxyMgmtHttpUsername OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Username used with HTTP proxy client" + ::= { proxyMgmt 6 } + + proxyMgmtHttpPassword OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Password used with HTTP proxy client" + ::= { proxyMgmt 7 } + + proxyMgmtHttpType OBJECT-TYPE + SYNTAX INTEGER { http(0) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "HTTP proxy client Type" + ::= { proxyMgmt 8 } + + proxyMgmtHttpsEnabled OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Disable or enable HTTPS proxy client" + ::= { proxyMgmt 9 } + + proxyMgmtHttpsIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Ip Address used with HTTPS proxy client" + ::= { proxyMgmt 10 } + + proxyMgmtHttpsPort OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Port used with HTTPS proxy client" + ::= { proxyMgmt 11 } + + proxyMgmtHttpsUsername OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Username used with HTTPS proxy client" + ::= { proxyMgmt 12 } + + proxyMgmtHttpsPassword OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Password used with HTTPS proxy client" + ::= { proxyMgmt 13 } + + proxyMgmtHttpsType OBJECT-TYPE + SYNTAX INTEGER { https(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "HTTPS proxy client Type" + ::= { proxyMgmt 14 } + + proxyMgmtSocksEnabled OBJECT-TYPE + SYNTAX INTEGER { disable(0), enable(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Disable or enable SOCKS proxy client" + ::= { proxyMgmt 15 } + + proxyMgmtSocksIpAddr OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Ip Address used with SOCKS proxy client" + ::= { proxyMgmt 16 } + + proxyMgmtSocksPort OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Port used with SOCKS proxy client" + ::= { proxyMgmt 17 } + + proxyMgmtSocksUsername OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Username used with SOCKS proxy client" + ::= { proxyMgmt 18 } + + proxyMgmtSocksPassword OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Password used with SOCKS proxy client" + ::= { proxyMgmt 19 } + + proxyMgmtSocksType OBJECT-TYPE + SYNTAX INTEGER { socks4(2), socks5(3) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "SOCKS proxy client Type" + ::= { proxyMgmt 20 } + + + proxyMgmtSubnet01 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 01" + ::= { proxyMgmt 21 } + + proxyMgmtMask01 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 01" + ::= { proxyMgmt 22 } + + proxyMgmtSubnet02 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 02" + ::= { proxyMgmt 23 } + + proxyMgmtMask02 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 02" + ::= { proxyMgmt 24 } + + + proxyMgmtSubnet03 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 03" + ::= { proxyMgmt 25 } + + proxyMgmtMask03 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 03" + ::= { proxyMgmt 26 } + + proxyMgmtSubnet04 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 04" + ::= { proxyMgmt 27 } + + proxyMgmtMask04 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 04" + ::= { proxyMgmt 28 } + + proxyMgmtSubnet05 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 05" + ::= { proxyMgmt 29 } + + proxyMgmtMask05 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 05" + ::= { proxyMgmt 30 } + + proxyMgmtSubnet06 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 06" + ::= { proxyMgmt 31 } + + proxyMgmtMask06 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 06" + ::= { proxyMgmt 32 } + + proxyMgmtSubnet07 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 07" + ::= { proxyMgmt 33 } + + proxyMgmtMask07 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 07" + ::= { proxyMgmt 34 } + + proxyMgmtSubnet08 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 08" + ::= { proxyMgmt 35 } + + proxyMgmtMask08 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 08" + ::= { proxyMgmt 36 } + + proxyMgmtSubnet09 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 09" + ::= { proxyMgmt 37 } + + proxyMgmtMask09 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 09" + ::= { proxyMgmt 38 } + + proxyMgmtSubnet10 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network 10" + ::= { proxyMgmt 39 } + + proxyMgmtMask10 OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Socks Proxy Client Whitelist Local Network Mask 10" + ::= { proxyMgmt 40 } + + +END diff --git a/poller-wrapper.py b/poller-wrapper.py index 1fa00b461b..69d0fb5859 100755 --- a/poller-wrapper.py +++ b/poller-wrapper.py @@ -146,7 +146,7 @@ if ('distributed_poller' in config and memc = memcache.Client([config['distributed_poller_memcached_host'] + ':' + str(config['distributed_poller_memcached_port'])]) if str(memc.get("poller.master")) == config['distributed_poller_name']: - print "This sytem is already joined as the poller master." + print "This system is already joined as the poller master." sys.exit(2) if memc_alive(): if memc.get("poller.master") is None: diff --git a/scripts/distro b/scripts/distro index 8a2ebd02ef..11fc5d5076 100755 --- a/scripts/distro +++ b/scripts/distro @@ -67,10 +67,12 @@ elif [ "${OS}" = "Linux" ] ; then fi if [ -f /etc/lsb-release -a "${IGNORE_LSB}" != 1 ] ; then - LSB_DIST="`cat /etc/lsb-release | grep DISTRIB_ID | cut -d "=" -f2`" - LSB_REV="`cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d "=" -f2`" + LSB_DIST=$(lsb_release -si) + LSB_REV=$(lsb_release -sr) if [ "$LSB_DIST" != "" ] ; then DIST=$LSB_DIST + fi + if [ "$LSB_REV" != "" ] ; then REV=$LSB_REV fi fi diff --git a/scripts/gen_smokeping.php b/scripts/gen_smokeping.php index cd4baacfe5..5763f7349e 100755 --- a/scripts/gen_smokeping.php +++ b/scripts/gen_smokeping.php @@ -11,8 +11,8 @@ * the source code distribution for details. */ -include_once("../config.php"); include_once("../includes/defaults.inc.php"); +include_once("../config.php"); include_once("../includes/definitions.inc.php"); ?> diff --git a/sql-schema/115.sql b/sql-schema/115.sql new file mode 100644 index 0000000000..c4ef10ab83 --- /dev/null +++ b/sql-schema/115.sql @@ -0,0 +1,2 @@ +UPDATE `config` SET `config_value` = '((%ports.ifInOctets_rate*8) / %ports.ifSpeed)*100' WHERE `config_value` = '((%ports.ifInOctets_rate*8)/%ports.ifSpeed)*100'; +UPDATE `config` SET `config_default` = '((%ports.ifInOctets_rate*8) / %ports.ifSpeed)*100' WHERE `config_default` = '((%ports.ifInOctets_rate*8)/%ports.ifSpeed)*100'; diff --git a/sql-schema/116.sql b/sql-schema/116.sql new file mode 100644 index 0000000000..800a240246 --- /dev/null +++ b/sql-schema/116.sql @@ -0,0 +1,3 @@ +ALTER TABLE `devices` CHANGE `device_id` `device_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT; +ALTER TABLE `device_groups` CHANGE `id` `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT; +CREATE TABLE `device_group_device` (`device_group_id` int(10) unsigned NOT NULL, `device_id` int(10) unsigned NOT NULL, PRIMARY KEY (`device_group_id`,`device_id`), KEY `device_group_device_device_group_id_index` (`device_group_id`), KEY `device_group_device_device_id_index` (`device_id`), CONSTRAINT `device_group_device_device_group_id_foreign` FOREIGN KEY (`device_group_id`) REFERENCES `device_groups` (`id`) ON DELETE CASCADE, CONSTRAINT `device_group_device_device_id_foreign` FOREIGN KEY (`device_id`) REFERENCES `devices` (`device_id`) ON DELETE CASCADE); diff --git a/sql-schema/117.sql b/sql-schema/117.sql new file mode 100644 index 0000000000..a7f9f6ad85 --- /dev/null +++ b/sql-schema/117.sql @@ -0,0 +1 @@ +ALTER TABLE alert_rules ADD COLUMN proc VARCHAR(80) AFTER name;