diff --git a/html/includes/graphs/mac_acc_bits.inc.php b/html/includes/graphs/mac_acc_bits.inc.php
new file mode 100644
index 000000000..b0561a52d
--- /dev/null
+++ b/html/includes/graphs/mac_acc_bits.inc.php
@@ -0,0 +1,13 @@
+
diff --git a/html/includes/graphs/multi_bits_separate.inc.php b/html/includes/graphs/multi_bits_separate.inc.php
new file mode 100644
index 000000000..e21fd5f2f
--- /dev/null
+++ b/html/includes/graphs/multi_bits_separate.inc.php
@@ -0,0 +1,76 @@
+
diff --git a/html/includes/graphs/pagp_bits.inc.php b/html/includes/graphs/pagp_bits.inc.php
new file mode 100644
index 000000000..048925964
--- /dev/null
+++ b/html/includes/graphs/pagp_bits.inc.php
@@ -0,0 +1,22 @@
+
diff --git a/html/pages/device/overview.inc.php b/html/pages/device/overview.inc.php
index 173ba89ba..0612e49a6 100644
--- a/html/pages/device/overview.inc.php
+++ b/html/pages/device/overview.inc.php
@@ -71,6 +71,8 @@ if(mysql_result(mysql_query("SELECT count(*) from cempMemPool WHERE device_id =
$mempool['descr_fixed'] = str_replace("Routing Processor", "RP", $mempool['descr_fixed']);
$mempool['descr_fixed'] = str_replace("Switching Processor", "SP", $mempool['descr_fixed']);
$mempool['descr_fixed'] = str_replace("Processor", "Proc", $mempool['descr_fixed']);
+ $mempool['descr_fixed'] = str_replace("Sub-Module", "Mod", $mempool['descr_fixed']);
+ $mempool['descr_fixed'] = str_replace("DFC Card", "DFC", $mempool['descr_fixed']);
$proc_url = "?page=device/".$device['device_id']."/sensors/mempools/";
diff --git a/includes/polling/interfaces.inc.php b/includes/polling/interfaces.inc.php
index 72967ca53..cee6eb951 100644
--- a/includes/polling/interfaces.inc.php
+++ b/includes/polling/interfaces.inc.php
@@ -98,7 +98,7 @@ while ($interface = mysql_fetch_array($interface_query)) {
}
if ( $interface['ifAlias'] != $ifAlias && $ifAlias != "" ) {
- $update .= $seperator . "`ifAlias` = '$ifAlias'";
+ $update .= $seperator . "`ifAlias` = '".mysql_real_escape_string($ifAlias)."'";
$seperator = ", ";
mysql_query("INSERT INTO eventlog (`host`, `interface`, `datetime`, `message`) VALUES ('" . $interface['device_id'] . "', '" . $interface['interface_id'] . "', NOW(), 'ifAlias -> $ifAlias')");
}
@@ -118,7 +118,7 @@ while ($interface = mysql_fetch_array($interface_query)) {
$update_query = "UPDATE `interfaces` SET ";
$update_query .= $update;
$update_query .= " WHERE `interface_id` = '" . $interface['interface_id'] . "'";
-# echo("Updating : " . $device['hostname'] . " $ifDescr\nSQL :$update_query\n\n");
+ echo("Updating : " . $device['hostname'] . " $ifDescr\nSQL :$update_query\n\n");
$update_result = mysql_query($update_query);
} else {
# echo("Not Updating : " . $device['hostname'] ." $ifDescr ( " . $interface['ifDescr'] . " )\n\n");
diff --git a/includes/static-config.php b/includes/static-config.php
index 6bda7188e..f102adc04 100644
--- a/includes/static-config.php
+++ b/includes/static-config.php
@@ -71,11 +71,16 @@ $exists = false;
$columns = mysql_query("SHOW columns FROM `interfaces`");
while($c = mysql_fetch_assoc($columns)){
if($c['Field'] == "pagpOperationMode"){
- $pagp = true;
- break;
+ $db_pagp = true;
+ }
+ if($c['Field'] == "portName"){
+ $db_portName = true;
+ }
+ if($c['Field'] == "ifHighSpeed"){
+ $db_ifHighSpeed = true;
}
}
-if(!$pagp) {
+if(!$db_pagp) {
mysql_query("ALTER TABLE `interfaces` ADD `pagpOperationMode` VARCHAR( 32 ) NULL ,
ADD `pagpPortState` VARCHAR( 16 ) NULL ,
ADD `pagpPartnerDeviceId` VARCHAR( 48 ) NULL ,
@@ -85,7 +90,10 @@ ADD `pagpPartnerGroupIfIndex` INT NULL ,
ADD `pagpPartnerDeviceName` VARCHAR( 128 ) NULL ,
ADD `pagpEthcOperationMode` VARCHAR( 16 ) NULL ,
ADD `pagpDeviceId` VARCHAR( 48 ) NULL ,
-ADD `pagpGroupIfIndex` INT NULL");
-}
+ADD `pagpGroupIfIndex` INT NULL"); }
+
+if(!$db_portName) { mysql_query("ALTER TABLE `interfaces` ADD `portName` VARCHAR( 128 ) NULL DEFAULT NULL AFTER `ifName`"); }
+if(!$db_ifHighSpeed) { mysql_query("ALTER TABLE `interfaces` ADD `ifHighSpeed` INT ( 11 ) NULL DEFAULT NULL AFTER `ifSpeed`"); }
+
?>
diff --git a/mibs/CISCO-LAG-MIB.my b/mibs/CISCO-LAG-MIB.my
new file mode 100644
index 000000000..36ae3f768
--- /dev/null
+++ b/mibs/CISCO-LAG-MIB.my
@@ -0,0 +1,623 @@
+-- *****************************************************************
+-- CISCO-LAG-MIB.my: Cisco LAG MIB
+--
+-- October 2001, Liwei Lue
+--
+-- Copyright (c) 2001-2003, 2004, 2006, 2008 by cisco Systems, Inc.
+-- All rights reserved.
+--
+-- *****************************************************************
+
+CISCO-LAG-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY,
+ OBJECT-TYPE,
+ Unsigned32
+ FROM SNMPv2-SMI
+ MODULE-COMPLIANCE,
+ OBJECT-GROUP
+ FROM SNMPv2-CONF
+ TEXTUAL-CONVENTION
+ FROM SNMPv2-TC
+ ciscoMgmt
+ FROM CISCO-SMI
+ dot3adAggPortEntry,
+ dot3adAggPortListEntry
+ FROM IEEE8023-LAG-MIB
+ ifIndex
+ FROM IF-MIB;
+
+
+ciscoLagMIB MODULE-IDENTITY
+ LAST-UPDATED "200801080000Z"
+ ORGANIZATION "Cisco Systems, Inc."
+ CONTACT-INFO
+ "Cisco Systems
+ Customer Service
+
+ Postal: 170 W Tasman Drive
+ San Jose, CA 95134
+ USA
+
+ Tel: +1 800 553-NETS
+
+ E-mail: cs-etherchan@cisco.com
+ cs-lan-switch-snmp@cisco.com"
+ DESCRIPTION
+ "Cisco Link Aggregation module for managing IEEE Std
+ 802.3ad.
+
+ This MIB provides Link Aggregation information that are
+ either excluded by IEEE Std 802.3ad (IEEE8023-LAG-MIB)
+ or specific to Cisco products."
+ REVISION "200801080000Z"
+ DESCRIPTION
+ "Modified the description of clagAggPortListPorts."
+ REVISION "200606210000Z"
+ DESCRIPTION
+ "Added clagAggMaxAggregatorsGroup and modified the
+ description of clagAggPortListPorts."
+ REVISION "200406110000Z"
+ DESCRIPTION
+ "Added clagAggPortListTable."
+ REVISION "200212130000Z"
+ DESCRIPTION
+ "Added a new value vlanIpPort(4) in TEXTUAL-CONVENTION
+ ClagDistributionProtocol.
+ Added a new object clagAggDistributionMplsProtocol."
+ REVISION "200201020000Z"
+ DESCRIPTION
+ "Modified Description of clagAggDistributionProtocol."
+ REVISION "200110230000Z"
+ DESCRIPTION
+ "Initial version of this MIB module.
+ Support Distribution configuration for LACP, Aggregation
+ protocol control, and Administrative status for LACP."
+ ::= { ciscoMgmt 225 }
+
+
+clagMIBObjects OBJECT IDENTIFIER
+ ::= { ciscoLagMIB 1 }
+
+
+-- -------------------------------------------------------------
+-- Textual Conventions
+-- -------------------------------------------------------------
+
+ClagDistributionProtocol ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "An enumerated type for all the supported load balancing
+ algorithms used on the LACP interface to distribute
+ outgoing data frames among its component interaces, such
+ as IP address.
+
+ ip(1) IP address
+ mac(2) MAC address
+ port(3) port number
+ vlanIpPort(4) vlan number, IP address and
+ port number"
+ SYNTAX INTEGER {
+ ip(1),
+ mac(2),
+ port(3),
+ vlanIpPort(4)
+ }
+
+ClagDistributionAddressMode ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "An enumerated type for all the supported load
+ balancing address modes to distribute traffic
+ across multiple links. The address mode can be
+ source, destination, or both used on this LACP
+ interface to distribute outgoing data frames among
+ its component interfaces.
+
+ source(1) Source address.
+ destination(2) Destination address.
+ both(3) both, Source and Destination."
+ SYNTAX INTEGER {
+ source(1),
+ destination(2),
+ both(3)
+ }
+
+ClagDistributionMplsProtocol ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "An enumerated type for all the supported load balancing
+ algorithms used on the LACP interface to distribute
+ outgoing MPLS (Multi-Protocol Label Switching) data
+ frames among its component interfaces, such as
+ MPLS label.
+
+ label(1) MPLS label
+ labelIp(2) MPLS label or IP address"
+ SYNTAX INTEGER {
+ label(1),
+ labelIp(2)
+ }
+
+ClagAggregationProtocol ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "An enumerated type for all the supported aggregation
+ protocols.
+
+ lacp(1) Link Aggregation Control Protocol(LACP),
+ IEEE 802.3ad
+ pagp(2) Port Aggregation Protocol"
+ SYNTAX INTEGER {
+ lacp(1),
+ pagp(2)
+ }
+
+ClagPortAdminStatus ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "An enumerated type for all the LACP administrative states on
+ a particular aggregation port.
+
+ off(1) No LACP involved on the aggregation port.
+
+ on(2) The aggregation port always join link
+ aggregation whithout any LACP protocol
+ involved.
+
+ active(3) Active LACP indicates the port's preference
+ to participate in the protocol regardless of
+ Partner's control value.
+
+ passive(4) Passive indicates the port's preference for
+ not transmitting LACP PDU unless its Partner's
+ control value is Active LACP."
+ SYNTAX INTEGER {
+ off(1),
+ on(2),
+ active(3),
+ passive(4)
+ }
+-- -------------------------------------------------------------
+--
+-- -------------------------------------------------------------
+-- groups in the LAG MIB
+-- -------------------------------------------------------------
+
+clagGlobalConfigObjects OBJECT IDENTIFIER
+ ::= { clagMIBObjects 1 }
+
+clagAgg OBJECT IDENTIFIER
+ ::= { clagMIBObjects 2 }
+
+clagAggPort OBJECT IDENTIFIER
+ ::= { clagMIBObjects 3 }
+
+clagAggPortList OBJECT IDENTIFIER
+ ::= { clagMIBObjects 4 }
+
+
+-- -------------------------------------------------------------
+--
+-- -------------------------------------------------------------
+-- The Aggregation Global Configuration
+-- -------------------------------------------------------------
+
+clagAggDistributionProtocol OBJECT-TYPE
+ SYNTAX ClagDistributionProtocol
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object controls the load balancing algorithms
+ used on this LACP interface to distribute outgoing data
+ frames among its component interfaces."
+ ::= { clagGlobalConfigObjects 1 }
+
+clagAggDistributionAddressMode OBJECT-TYPE
+ SYNTAX ClagDistributionAddressMode
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The load balancing address mode for the device."
+ ::= { clagGlobalConfigObjects 2 }
+
+clagAggDistributionMplsProtocol OBJECT-TYPE
+ SYNTAX ClagDistributionMplsProtocol
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object controls the load balancing algorithms
+ used on this LACP interface to distribute outgoing MPLS
+ data frames among its component interfaces.
+
+ This object is only instantiated on platforms which
+ support aggregation load balancing for MPLS packets."
+ ::= { clagGlobalConfigObjects 3 }
+
+clagAggMaxAggregators OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object indicates the maximum number of aggregators
+ supported by the device."
+ ::= { clagGlobalConfigObjects 4 }
+-- -------------------------------------------------------------
+-- The Aggregation Protocol Table
+-- -------------------------------------------------------------
+
+clagAggProtocolTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ClagAggProtocolEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table that contains protocol information about every
+ interface which supports link aggregation."
+ ::= { clagAgg 1 }
+
+clagAggProtocolEntry OBJECT-TYPE
+ SYNTAX ClagAggProtocolEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Entry containing aggregation protocol type for a
+ particular interface. An entry is created in this
+ table when its associated ifEntry is created and that
+ interface supports link aggregation. The entry of this
+ table is deleted when the associated ifEntry is removed."
+ INDEX { ifIndex }
+ ::= { clagAggProtocolTable 1 }
+
+ClagAggProtocolEntry ::= SEQUENCE {
+ clagAggProtocolType ClagAggregationProtocol
+}
+
+clagAggProtocolType OBJECT-TYPE
+ SYNTAX ClagAggregationProtocol
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The aggregation protocol type for the interface.
+
+ On some platforms, aggregation protocol may be assigned per
+ group. The group can be a collection of the ports which belong
+ to a module or system. If the aggregation protocol is assigned
+ to any of the ports in such group then the aggregation protocol
+ will apply to all ports in the same group.
+
+ On some platforms, aggregation protocol type can be assigned
+ per aggregator. If multiple ports belong to a aggregator,
+ the aggregation protocol assigned to any of the ports in such
+ aggregator will apply to all ports in the same."
+ ::= { clagAggProtocolEntry 1 }
+
+
+-- -------------------------------------------------------------
+-- The Aggregation Port Configuration Table
+-- -------------------------------------------------------------
+
+clagAggPortTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ClagAggPortEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table that contains information about every
+ aggregation port that is associated with this system.
+ This table contains additional objects for the
+ dot3adAggPortTable."
+ REFERENCE "IEEE 802.3 Subclause 30.7.2"
+ ::= { clagAggPort 1 }
+
+clagAggPortEntry OBJECT-TYPE
+ SYNTAX ClagAggPortEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry containing additional management information
+ applicable to a particular aggregation port."
+ AUGMENTS { dot3adAggPortEntry }
+
+ ::= { clagAggPortTable 1 }
+
+ClagAggPortEntry ::= SEQUENCE {
+ clagAggPortAdminStatus ClagPortAdminStatus
+}
+
+clagAggPortAdminStatus OBJECT-TYPE
+ SYNTAX ClagPortAdminStatus
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The administrative status of the LACP protocol on this
+ aggregation port."
+ ::= { clagAggPortEntry 1 }
+
+
+-- -------------------------------------------------------------
+-- The Port List Table
+-- -------------------------------------------------------------
+
+clagAggPortListTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ClagAggPortListEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table augments the dot3adAggPortListTable and
+ provides the complete list of ports associated with
+ each Aggregator."
+ REFERENCE "IEEE 802.3 Subclause 30.7.1.1.30"
+ ::= { clagAggPortList 1 }
+
+clagAggPortListEntry OBJECT-TYPE
+ SYNTAX ClagAggPortListEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of the ports associated with a given Aggregator."
+ AUGMENTS { dot3adAggPortListEntry }
+
+ ::= { clagAggPortListTable 1 }
+
+ClagAggPortListEntry ::= SEQUENCE {
+ clagAggPortListPorts OCTET STRING
+}
+
+clagAggPortListPorts OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE (2..256))
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object contains a list of ports currently associated
+ with this Aggregator in the format of
+ '[number_of_ports][cieIfDot1dBaseMappingPort1][...]
+ [cieIfDot1dBaseMappingPortn]'
+
+ where
+ [number_of_ports] is of size 2 octet and indicates
+ the number of ports contains in this object. It
+ also indicates the number of cieIfDot1dBaseMappingPort field
+ following this field.
+
+ [cieIfDot1dBaseMappingPort'n'] is the value of
+ cieIfDot1dBaseMappingPort of the 'n' port associated with this
+ Aggregation and has size of 2 octets where n is up to
+ [number_of_ports]."
+ REFERENCE "IEEE 802.3 Subclause 30.7.1.1.30"
+ ::= { clagAggPortListEntry 1 }
+
+
+-- -------------------------------------------------------------
+--
+-- -------------------------------------------------------------
+-- Notifications
+-- -------------------------------------------------------------
+
+clagMIBNotifications OBJECT IDENTIFIER
+ ::= { ciscoLagMIB 2 }
+
+-- no notifications defined
+--
+-- -------------------------------------------------------------
+-- Conformance
+-- -------------------------------------------------------------
+
+clagMIBConformance OBJECT IDENTIFIER
+ ::= { ciscoLagMIB 3 }
+
+clagMIBCompliances OBJECT IDENTIFIER
+ ::= { clagMIBConformance 1 }
+
+clagMIBGroups OBJECT IDENTIFIER
+ ::= { clagMIBConformance 2 }
+
+
+-- -------------------------------------------------------------
+--
+-- -------------------------------------------------------------
+-- Compliance
+-- -------------------------------------------------------------
+
+clagMIBCompliance MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for entities which implement
+ the Cisco Link Aggregation MIB"
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ clagAggProtocolGroup,
+ clagAggPortGroup
+ }
+
+ GROUP clagAggDistributionGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ supported aggregation load balancing."
+
+ OBJECT clagAggProtocolType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT clagAggPortAdminStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+ ::= { clagMIBCompliances 1 }
+
+clagMIBCompliance2 MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for entities which implement
+ the Cisco Link Aggregation MIB"
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ clagAggProtocolGroup,
+ clagAggPortGroup
+ }
+
+ GROUP clagAggDistributionGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ supported aggregation load balancing."
+
+ GROUP clagAggDistributionMplsGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ supported aggregation load balancing for MPLS
+ packets."
+
+ OBJECT clagAggProtocolType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT clagAggPortAdminStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+ ::= { clagMIBCompliances 2 }
+
+clagMIBCompliance3 MODULE-COMPLIANCE
+ STATUS deprecated
+ DESCRIPTION
+ "The compliance statement for entities which implement
+ the Cisco Link Aggregation MIB"
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ clagAggProtocolGroup,
+ clagAggPortGroup
+ }
+
+ GROUP clagAggDistributionGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ supported aggregation load balancing."
+
+ GROUP clagAggDistributionMplsGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ supported aggregation load balancing for MPLS
+ packets."
+
+ GROUP clagAggPortListGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ supports dot1dBasePort value greater than 2048."
+
+ OBJECT clagAggProtocolType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT clagAggPortAdminStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+ ::= { clagMIBCompliances 3 }
+
+clagMIBCompliance4 MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for entities which implement
+ the Cisco Link Aggregation MIB"
+ MODULE -- this module
+ MANDATORY-GROUPS {
+ clagAggProtocolGroup,
+ clagAggPortGroup
+ }
+
+ GROUP clagAggDistributionGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ supported aggregation load balancing."
+
+ GROUP clagAggDistributionMplsGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ supported aggregation load balancing for MPLS
+ packets."
+
+ GROUP clagAggPortListGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ supports dot1dBasePort value greater than 2048."
+
+ GROUP clagAggMaxAggregatorsGroup
+ DESCRIPTION
+ "This group is mandatory for the devices which
+ provides the information about the maximum number
+ of aggregators supported by the device."
+
+ OBJECT clagAggProtocolType
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+
+ OBJECT clagAggPortAdminStatus
+ MIN-ACCESS read-only
+ DESCRIPTION
+ "Write access is not required."
+ ::= { clagMIBCompliances 4 }
+
+-- -------------------------------------------------------------
+-- Units of Conformance
+-- -------------------------------------------------------------
+
+clagAggProtocolGroup OBJECT-GROUP
+ OBJECTS { clagAggProtocolType }
+ STATUS current
+ DESCRIPTION
+ "The object that provide aggregation protocol type of an
+ interface. These are additional to the IEEE Std 802.3ad
+ MIB."
+ ::= { clagMIBGroups 1 }
+
+clagAggPortGroup OBJECT-GROUP
+ OBJECTS { clagAggPortAdminStatus }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects that provide admin status
+ about an aggregation port. These are additional to the
+ IEEE Std 802.3ad MIB."
+ ::= { clagMIBGroups 2 }
+
+clagAggDistributionGroup OBJECT-GROUP
+ OBJECTS {
+ clagAggDistributionProtocol,
+ clagAggDistributionAddressMode
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects that provide the load balancing
+ information for an aggregator. These are additional to
+ the IEEE Std 802.3ad MIB."
+ ::= { clagMIBGroups 3 }
+
+clagAggDistributionMplsGroup OBJECT-GROUP
+ OBJECTS { clagAggDistributionMplsProtocol }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects that provide the load balancing
+ information for an aggregator for MPLS packets.
+ These are additional to the IEEE Std 802.3ad MIB."
+ ::= { clagMIBGroups 4 }
+
+clagAggPortListGroup OBJECT-GROUP
+ OBJECTS { clagAggPortListPorts }
+ STATUS current
+ DESCRIPTION
+ "A collection of object that provides information about
+ ports in an aggregation."
+ ::= { clagMIBGroups 5 }
+
+clagAggMaxAggregatorsGroup OBJECT-GROUP
+ OBJECTS { clagAggMaxAggregators }
+ STATUS current
+ DESCRIPTION
+ "A collection of object that provides information about
+ the maximum number of aggregators supported by the
+ device."
+ ::= { clagMIBGroups 6 }
+
+END
diff --git a/mibs/IEEE8023-LAG-MIB.my b/mibs/IEEE8023-LAG-MIB.my
new file mode 100644
index 000000000..f029f6d67
--- /dev/null
+++ b/mibs/IEEE8023-LAG-MIB.my
@@ -0,0 +1,1400 @@
+IEEE8023-LAG-MIB DEFINITIONS ::= BEGIN
+
+
+-- -------------------------------------------------------------
+-- IEEE 802.3ad MIB
+-- -------------------------------------------------------------
+
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Counter32, TimeTicks
+ FROM SNMPv2-SMI
+ DisplayString, MacAddress, TEXTUAL-CONVENTION, TruthValue
+ FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF
+ InterfaceIndex
+ FROM IF-MIB
+ PortList
+ FROM Q-BRIDGE-MIB
+ ;
+
+
+lagMIB MODULE-IDENTITY
+ LAST-UPDATED "200006270000Z"
+ ORGANIZATION "IEEE 802.3 Working Group"
+ CONTACT-INFO
+ " stds-802-3-trunking@majordomo.ieee.org"
+ DESCRIPTION
+ "The Link Aggregation module for managing IEEE Std
+ 802.3ad."
+ ::= { iso(1) member-body(2) us(840) ieee802dot3(10006)
+ snmpmibs(300) 43 }
+
+
+lagMIBObjects OBJECT IDENTIFIER ::= { lagMIB 1 }
+
+
+-- -------------------------------------------------------------
+-- Textual Conventions
+-- -------------------------------------------------------------
+
+
+LacpKey ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The Actor or Partner Key value."
+ SYNTAX INTEGER (0..65535)
+
+
+LacpState ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The Actor and Partner State values from the LACPDU."
+ SYNTAX BITS {
+ lacpActivity(0),
+ lacpTimeout(1),
+ aggregation(2),
+ synchronization(3),
+ collecting(4),
+ distributing(5),
+ defaulted(6),
+ expired(7)
+ }
+
+
+ChurnState ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "The state of the Churn Detection machine."
+ SYNTAX INTEGER {
+ noChurn(1),
+ churn(2),
+ churnMonitor(3)
+ }
+
+
+-- -------------------------------------------------------------
+
+
+-- -------------------------------------------------------------
+-- groups in the LAG MIB
+-- -------------------------------------------------------------
+
+
+dot3adAgg OBJECT IDENTIFIER ::= { lagMIBObjects 1 }
+dot3adAggPort OBJECT IDENTIFIER ::= { lagMIBObjects 2 }
+
+
+-- -------------------------------------------------------------
+
+-- -------------------------------------------------------------
+-- The Tables Last Changed Object
+-- -------------------------------------------------------------
+
+dot3adTablesLastChanged OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object indicates the time of the most recent
+ change to the dot3adAggTable, dot3adAggPortListTable, or
+ dot3adAggPortTable."
+::= { lagMIBObjects 3 }
+
+-- -------------------------------------------------------------
+-- The Aggregator Configuration Table
+-- -------------------------------------------------------------
+
+
+dot3adAggTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3adAggEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table that contains information about every
+ Aggregator that is associated with this System."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1"
+ ::= { dot3adAgg 1 }
+
+
+dot3adAggEntry OBJECT-TYPE
+ SYNTAX Dot3adAggEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of the Aggregator parameters. This is indexed
+ by the ifIndex of the Aggregator."
+ INDEX { dot3adAggIndex }
+ ::= { dot3adAggTable 1 }
+
+
+Dot3adAggEntry ::=
+ SEQUENCE {
+ dot3adAggIndex
+ InterfaceIndex,
+ dot3adAggMACAddress
+ MacAddress,
+ dot3adAggActorSystemPriority
+ INTEGER,
+ dot3adAggActorSystemID
+ MacAddress,
+ dot3adAggAggregateOrIndividual
+ TruthValue,
+ dot3adAggActorAdminKey
+ LacpKey,
+ dot3adAggActorOperKey
+ LacpKey,
+ dot3adAggPartnerSystemID
+ MacAddress,
+ dot3adAggPartnerSystemPriority
+ INTEGER,
+ dot3adAggPartnerOperKey
+ LacpKey,
+ dot3adAggCollectorMaxDelay
+ INTEGER
+ }
+
+
+dot3adAggIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The unique identifier allocated to this Aggregator by
+ the local System. This attribute identifies an
+ Aggregator instance among the subordinate managed
+ objects of the containing object.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.1"
+ ::= { dot3adAggEntry 1 }
+
+
+dot3adAggMACAddress OBJECT-TYPE
+ SYNTAX MacAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A 6-octet read-only value carrying the individual
+ MAC address assigned to the Aggregator."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.9"
+ ::= { dot3adAggEntry 2 }
+
+
+dot3adAggActorSystemPriority OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A 2-octet read-write value indicating the priority
+ value associated with the Actor's System ID."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.5"
+ ::= { dot3adAggEntry 3 }
+
+
+dot3adAggActorSystemID OBJECT-TYPE
+ SYNTAX MacAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A 6-octet read-write MAC address value used as a unique
+ identifier for the System that contains this Aggregator.
+ NOTE-From the perspective of the Link Aggregation
+ mechanisms described in Clause 43, only a single
+ combination of Actor's System ID and System Priority are
+ considered, and no distinction is made between the
+ values of these parameters for an Aggregator and the
+ port(s) that are associated with it; i.e., the protocol
+ is described in terms of the operation of aggregation
+ within a single System. However, the managed objects
+ provided for the Aggregator and the port both allow
+ management of these parameters. The result of this is to
+ permit a single piece of equipment to be configured by
+ management to contain more than one System from the
+ point of view of the operation of Link Aggregation. This
+ may be of particular use in the configuration of
+ equipment that has limited aggregation capability (see
+ 43.6)."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.4"
+ ::= { dot3adAggEntry 4 }
+
+
+dot3adAggAggregateOrIndividual OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A read-only Boolean value indicating whether the
+ Aggregator represents an Aggregate (`TRUE') or
+ an Individual link (`FALSE')."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.6"
+ ::= { dot3adAggEntry 5 }
+
+
+dot3adAggActorAdminKey OBJECT-TYPE
+ SYNTAX LacpKey
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The current administrative value of the Key for the
+ Aggregator. The administrative Key value may differ from
+ the operational Key value for the reasons discussed in
+ 43.6.2. This is a 16-bit, read-write value. The meaning
+ of particular Key values is of local significance."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.7"
+ ::= { dot3adAggEntry 6 }
+
+
+dot3adAggActorOperKey OBJECT-TYPE
+ SYNTAX LacpKey
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current operational value of the Key for the
+ Aggregator. The administrative Key value may differ from
+ the operational Key value for the reasons discussed in
+ 43.6.2. This is a 16-bit read-only value. The meaning
+ of particular Key values is of local significance."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.8"
+ ::= { dot3adAggEntry 7 }
+
+
+dot3adAggPartnerSystemID OBJECT-TYPE
+ SYNTAX MacAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A 6-octet read-only MAC address value consisting of the
+ unique identifier for the current protocol Partner of
+ this Aggregator. A value of zero indicates that there is
+ no known Partner. If the aggregation is manually
+ configured, this System ID value will be a value
+ assigned by the local System."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.10"
+ ::= { dot3adAggEntry 8 }
+
+
+dot3adAggPartnerSystemPriority OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A 2-octet read-only value that indicates the priority
+ value associated with the Partner's System ID. If the
+ aggregation is manually configured, this System Priority
+ value will be a value assigned by the local System."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.11"
+ ::= { dot3adAggEntry 9 }
+
+
+dot3adAggPartnerOperKey OBJECT-TYPE
+ SYNTAX LacpKey
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current operational value of the Key for the
+ Aggregator's current protocol Partner. This is a 16-bit
+ read-only value. If the aggregation is manually
+ configured, this Key value will be a value assigned by
+ the local System."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.12"
+ ::= { dot3adAggEntry 10 }
+
+
+dot3adAggCollectorMaxDelay OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The value of this 16-bit read-write attribute defines
+ the maximum delay, in tens of microseconds, that may be
+ imposed by the Frame Collector between receiving a frame
+ from an Aggregator Parser, and either delivering the
+ frame to its MAC Client or discarding the frame (see
+ 43.2.3.1.1)."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.32"
+ ::= { dot3adAggEntry 11 }
+
+
+-- -------------------------------------------------------------
+-- The Aggregation Port List Table
+-- -------------------------------------------------------------
+
+
+dot3adAggPortListTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3adAggPortListEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table that contains a list of all the ports
+ associated with each Aggregator."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.30"
+ ::= { dot3adAgg 2 }
+
+
+dot3adAggPortListEntry OBJECT-TYPE
+ SYNTAX Dot3adAggPortListEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of the ports associated with a given Aggregator.
+ This is indexed by the ifIndex of the Aggregator."
+ INDEX { dot3adAggIndex }
+ ::= { dot3adAggPortListTable 1 }
+
+
+Dot3adAggPortListEntry ::=
+ SEQUENCE {
+ dot3adAggPortListPorts
+ PortList
+ }
+
+
+dot3adAggPortListPorts OBJECT-TYPE
+ SYNTAX PortList
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The complete set of ports currently associated with
+ this Aggregator. Each bit set in this list represents
+ an Actor Port member of this Link Aggregation."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.1.1.30"
+ ::= { dot3adAggPortListEntry 1 }
+
+
+-- -------------------------------------------------------------
+-- The Aggregation Port Table
+-- -------------------------------------------------------------
+
+
+dot3adAggPortTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3adAggPortEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table that contains Link Aggregation Control
+ configuration information about every
+ Aggregation Port associated with this device.
+ A row appears in this table for each physical port."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2"
+ ::= { dot3adAggPort 1 }
+
+
+dot3adAggPortEntry OBJECT-TYPE
+ SYNTAX Dot3adAggPortEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of Link Aggregation Control configuration
+ parameters for each Aggregation Port on this device."
+ INDEX { dot3adAggPortIndex }
+ ::= { dot3adAggPortTable 1 }
+
+
+Dot3adAggPortEntry ::=
+ SEQUENCE {
+ dot3adAggPortIndex
+ InterfaceIndex,
+ dot3adAggPortActorSystemPriority
+ INTEGER,
+ dot3adAggPortActorSystemID
+ MacAddress,
+ dot3adAggPortActorAdminKey
+ LacpKey,
+ dot3adAggPortActorOperKey
+ LacpKey,
+ dot3adAggPortPartnerAdminSystemPriority
+ INTEGER,
+ dot3adAggPortPartnerOperSystemPriority
+ INTEGER,
+ dot3adAggPortPartnerAdminSystemID
+ MacAddress,
+ dot3adAggPortPartnerOperSystemID
+ MacAddress,
+ dot3adAggPortPartnerAdminKey
+ LacpKey,
+ dot3adAggPortPartnerOperKey
+ LacpKey,
+ dot3adAggPortSelectedAggID
+ InterfaceIndex,
+ dot3adAggPortAttachedAggID
+ InterfaceIndex,
+ dot3adAggPortActorPort
+ INTEGER,
+ dot3adAggPortActorPortPriority
+ INTEGER,
+ dot3adAggPortPartnerAdminPort
+ INTEGER,
+ dot3adAggPortPartnerOperPort
+ INTEGER,
+ dot3adAggPortPartnerAdminPortPriority
+ INTEGER,
+ dot3adAggPortPartnerOperPortPriority
+ INTEGER,
+ dot3adAggPortActorAdminState
+ LacpState,
+ dot3adAggPortActorOperState
+ LacpState,
+ dot3adAggPortPartnerAdminState
+ LacpState,
+ dot3adAggPortPartnerOperState
+ LacpState,
+ dot3adAggPortAggregateOrIndividual
+ TruthValue
+ }
+
+
+dot3adAggPortIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The ifIndex of the port"
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.1"
+ ::= { dot3adAggPortEntry 1 }
+
+
+dot3adAggPortActorSystemPriority OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A 2-octet read-write value used to define the priority
+ value associated with the Actor's System ID."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.2"
+ ::= { dot3adAggPortEntry 2 }
+
+
+dot3adAggPortActorSystemID OBJECT-TYPE
+ SYNTAX MacAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A 6-octet read-only MAC address value that defines the
+ value of the System ID for the System that contains this
+ Aggregation Port."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.3"
+ ::= { dot3adAggPortEntry 3 }
+
+
+dot3adAggPortActorAdminKey OBJECT-TYPE
+ SYNTAX LacpKey
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The current administrative value of the Key for the
+ Aggregation Port. This is a 16-bit read-write value.
+ The meaning of particular Key values is of local
+ significance."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.4"
+ ::= { dot3adAggPortEntry 4 }
+
+
+dot3adAggPortActorOperKey OBJECT-TYPE
+ SYNTAX LacpKey
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The current operational value of the Key for the
+ Aggregation Port. This is a 16-bit read-only value.
+ The meaning of particular Key values is of local
+ significance."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.5"
+ ::= { dot3adAggPortEntry 5 }
+
+
+dot3adAggPortPartnerAdminSystemPriority OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A 2-octet read-write value used to define the
+ administrative value of priority associated with the
+ Partner's System ID. The assigned value is used, along
+ with the value of aAggPortPartnerAdminSystemID,
+ aAggPortPartnerAdminKey, aAggPortPartnerAdminPort, and
+ aAggPortPartnerAdminPortPriority, in order to achieve
+ manually configured aggregation."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.6"
+ ::= { dot3adAggPortEntry 6 }
+
+
+dot3adAggPortPartnerOperSystemPriority OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A 2-octet read-only value indicating the operational
+ value of priority associated with the Partner's System
+ ID. The value of this attribute may contain the manually
+ configured value carried in
+ aAggPortPartnerAdminSystemPriority if there is no
+ protocol Partner."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.7"
+ ::= { dot3adAggPortEntry 7 }
+
+
+dot3adAggPortPartnerAdminSystemID OBJECT-TYPE
+ SYNTAX MacAddress
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A 6-octet read-write MACAddress value representing the
+ administrative value of the Aggregation Port's protocol
+ Partner's System ID. The assigned value is used, along
+ with the value of aAggPortPartnerAdminSystemPriority,
+ aAggPortPartnerAdminKey, aAggPortPartnerAdminPort, and
+ aAggPortPartnerAdminPortPriority, in order to achieve
+ manually configured aggregation."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.8"
+ ::= { dot3adAggPortEntry 8 }
+
+
+dot3adAggPortPartnerOperSystemID OBJECT-TYPE
+ SYNTAX MacAddress
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A 6-octet read-only MACAddress value representing the
+ current value of the Aggregation Port's protocol
+ Partner's System ID. A value of zero indicates that
+ there is no known protocol Partner. The value of this
+ attribute may contain the manually configured value
+ carried in aAggPortPartnerAdminSystemID if there is no
+ protocol Partner."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.9"
+ ::= { dot3adAggPortEntry 9 }
+
+
+dot3adAggPortPartnerAdminKey OBJECT-TYPE
+ SYNTAX LacpKey
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The current administrative value of the Key for the
+ protocol Partner. This is a 16-bit read-write value.
+ The assigned value is used, along with the value of
+ aAggPortPartnerAdminSystemPriority,
+ aAggPortPartnerAdminSystemID, aAggPortPartnerAdminPort,
+ and aAggPortPartnerAdminPortPriority, in order to
+ achieve manually configured aggregation."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.10"
+ ::= { dot3adAggPortEntry 10 }
+
+
+dot3adAggPortPartnerOperKey OBJECT-TYPE
+ SYNTAX LacpKey
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current operational value of the Key for the
+ protocol Partner. The value of this attribute may
+ contain the manually configured value carried in
+ aAggPortPartnerAdminKey if there is no protocol Partner.
+ This is a 16-bit read-only value."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.11"
+ ::= { dot3adAggPortEntry 11 }
+
+
+dot3adAggPortSelectedAggID OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The identifier value of the Aggregator that this
+ Aggregation Port has currently selected. Zero indicates
+ that the Aggregation Port has not selected an
+ Aggregator, either because it is in the process of
+ detaching from an Aggregator or because there is no
+ suitable Aggregator available for it to select.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.12"
+ ::= { dot3adAggPortEntry 12 }
+
+
+dot3adAggPortAttachedAggID OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The identifier value of the Aggregator that this
+ Aggregation Port is currently attached to. Zero
+ indicates that the Aggregation Port is not currently
+ attached to an Aggregator. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.13"
+ ::= { dot3adAggPortEntry 13 }
+
+
+dot3adAggPortActorPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The port number locally assigned to the Aggregation
+ Port. The port number is communicated in LACPDUs as the
+ Actor_Port. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.14"
+ ::= { dot3adAggPortEntry 14 }
+
+
+dot3adAggPortActorPortPriority OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The priority value assigned to this Aggregation Port.
+ This 16-bit value is read-write."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.15"
+ ::= { dot3adAggPortEntry 15 }
+
+
+dot3adAggPortPartnerAdminPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The current administrative value of the port number for
+ the protocol Partner. This is a 16-bit read-write value.
+ The assigned value is used, along with the value of
+ aAggPortPartnerAdminSystemPriority,
+ aAggPortPartnerAdminSystemID, aAggPortPartnerAdminKey,
+ and aAggPortPartnerAdminPortPriority, in order to
+ achieve manually configured aggregation."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.16"
+ ::= { dot3adAggPortEntry 16 }
+
+
+dot3adAggPortPartnerOperPort OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The operational port number assigned to this
+ Aggregation Port by the Aggregation Port's protocol
+ Partner. The value of this attribute may contain the
+ manually configured value carried in
+ aAggPortPartnerAdminPort if there is no protocol
+ Partner. This 16-bit value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.17"
+ ::= { dot3adAggPortEntry 17 }
+
+
+dot3adAggPortPartnerAdminPortPriority OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The current administrative value of the port priority
+ for the protocol Partner. This is a 16-bit read-write
+ value. The assigned value is used, along with the value
+ of aAggPortPartnerAdminSystemPriority,
+ aAggPortPartnerAdminSystemID, aAggPortPartnerAdminKey,
+ and aAggPortPartnerAdminPort, in order to achieve
+ manually configured aggregation."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.18"
+ ::= { dot3adAggPortEntry 18 }
+
+
+dot3adAggPortPartnerOperPortPriority OBJECT-TYPE
+ SYNTAX INTEGER (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The priority value assigned to this Aggregation Port by
+ the Partner. The value of this attribute may contain the
+ manually configured value carried in
+ aAggPortPartnerAdminPortPriority if there is no protocol
+ Partner. This 16-bit value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.19"
+ ::= { dot3adAggPortEntry 19 }
+
+
+dot3adAggPortActorAdminState OBJECT-TYPE
+ SYNTAX LacpState
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A string of 8 bits, corresponding to the administrative
+ values of Actor_State (43.4.2) as transmitted by the
+ Actor in LACPDUs. The first bit corresponds to bit 0 of
+ Actor_State (LACP_Activity),
+ the second bit corresponds to bit 1 (LACP_Timeout),
+ the third bit corresponds to bit 2 (Aggregation),
+ the fourth bit corresponds to bit 3 (Synchronization),
+ the fifth bit corresponds to bit 4 (Collecting),
+ the sixth bit corresponds to bit 5 (Distributing),
+ the seventh bit corresponds to bit 6 (Defaulted),
+ and the eighth bit corresponds to bit 7 (Expired).
+ These values allow administrative control over the
+ values of LACP_Activity, LACP_Timeout and Aggregation.
+ This attribute value is read-write."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.20"
+ ::= { dot3adAggPortEntry 20 }
+
+
+dot3adAggPortActorOperState OBJECT-TYPE
+ SYNTAX LacpState
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A string of 8 bits, corresponding to the current
+ operational values of Actor_State as transmitted by the
+ Actor in LACPDUs. The bit allocations are as defined in
+ 30.7.2.1.20. This attribute value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.21"
+ ::= { dot3adAggPortEntry 21 }
+
+
+dot3adAggPortPartnerAdminState OBJECT-TYPE
+ SYNTAX LacpState
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "A string of 8 bits, corresponding to the current
+ administrative value of Actor_State for the protocol
+ Partner. The bit allocations are as defined in
+ 30.7.2.1.20. This attribute value is read-write. The
+ assigned value is used in order to achieve manually
+ configured aggregation."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.22"
+ ::= { dot3adAggPortEntry 22 }
+
+
+dot3adAggPortPartnerOperState OBJECT-TYPE
+ SYNTAX LacpState
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A string of 8 bits, corresponding to the current values
+ of Actor_State in the most recently received LACPDU
+ transmitted by the protocol Partner. The bit allocations
+ are as defined in 30.7.2.1.20. In the absence of an
+ active protocol Partner, this value may reflect the
+ manually configured value aAggPortPartnerAdminState.
+ This attribute value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.23"
+ ::= { dot3adAggPortEntry 23 }
+
+
+dot3adAggPortAggregateOrIndividual OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A read-only Boolean value indicating whether the
+ Aggregation Port is able to Aggregate (`TRUE') or is
+ only able to operate as an Individual link (`FALSE')."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.2.1.24"
+ ::= { dot3adAggPortEntry 24 }
+
+
+-- -------------------------------------------------------------
+-- LACP Statistics Table
+-- -------------------------------------------------------------
+
+
+dot3adAggPortStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3adAggPortStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table that contains Link Aggregation information
+ about every port that is associated with this device.
+ A row appears in this table for each physical port."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.3"
+ ::= { dot3adAggPort 2 }
+
+
+dot3adAggPortStatsEntry OBJECT-TYPE
+ SYNTAX Dot3adAggPortStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of Link Aggregation Control Protocol statistics
+ for each port on this device."
+ INDEX { dot3adAggPortIndex }
+ ::= { dot3adAggPortStatsTable 1 }
+
+
+Dot3adAggPortStatsEntry ::=
+ SEQUENCE {
+ dot3adAggPortStatsLACPDUsRx
+ Counter32,
+ dot3adAggPortStatsMarkerPDUsRx
+ Counter32,
+ dot3adAggPortStatsMarkerResponsePDUsRx
+ Counter32,
+ dot3adAggPortStatsUnknownRx
+ Counter32,
+ dot3adAggPortStatsIllegalRx
+ Counter32,
+ dot3adAggPortStatsLACPDUsTx
+ Counter32,
+ dot3adAggPortStatsMarkerPDUsTx
+ Counter32,
+ dot3adAggPortStatsMarkerResponsePDUsTx
+ Counter32
+ }
+
+
+dot3adAggPortStatsLACPDUsRx OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of valid LACPDUs received on this
+ Aggregation Port. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.3.1.2"
+ ::= { dot3adAggPortStatsEntry 1 }
+
+
+dot3adAggPortStatsMarkerPDUsRx OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of valid Marker PDUs received on this
+ Aggregation Port. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.3.1.3"
+ ::= { dot3adAggPortStatsEntry 2 }
+
+
+dot3adAggPortStatsMarkerResponsePDUsRx OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of valid Marker Response PDUs received on
+ this Aggregation Port. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.3.1.4"
+ ::= { dot3adAggPortStatsEntry 3 }
+
+
+dot3adAggPortStatsUnknownRx OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of frames received that either:
+ - carry the Slow Protocols Ethernet Type value (43B.4),
+ but contain an unknown PDU, or:
+ - are addressed to the Slow Protocols group MAC
+ Address (43B.3), but do not carry the Slow Protocols
+ Ethernet Type.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.3.1.5"
+ ::= { dot3adAggPortStatsEntry 4 }
+
+
+dot3adAggPortStatsIllegalRx OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of frames received that carry the Slow
+ Protocols Ethernet Type value (43B.4), but contain a
+ badly formed PDU or an illegal value of Protocol Subtype
+ (43B.4). This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.3.1.6"
+ ::= { dot3adAggPortStatsEntry 5 }
+
+
+dot3adAggPortStatsLACPDUsTx OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of LACPDUs transmitted on this
+ Aggregation Port. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.3.1.7"
+ ::= { dot3adAggPortStatsEntry 6 }
+
+
+dot3adAggPortStatsMarkerPDUsTx OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of Marker PDUs transmitted on this
+ Aggregation Port. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.3.1.8"
+ ::= { dot3adAggPortStatsEntry 7 }
+
+
+dot3adAggPortStatsMarkerResponsePDUsTx OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of Marker Response PDUs transmitted
+ on this Aggregation Port. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.3.1.9"
+ ::= { dot3adAggPortStatsEntry 8 }
+
+
+-- -------------------------------------------------------------
+-- LACP Debug Table
+-- -------------------------------------------------------------
+dot3adAggPortDebugTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF Dot3adAggPortDebugEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table that contains Link Aggregation debug
+ information about every port that is associated with
+ this device. A row appears in this table for each
+ physical port."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4"
+ ::= { dot3adAggPort 3 }
+
+
+dot3adAggPortDebugEntry OBJECT-TYPE
+ SYNTAX Dot3adAggPortDebugEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A list of the debug parameters for a port."
+ INDEX { dot3adAggPortIndex }
+ ::= { dot3adAggPortDebugTable 1 }
+
+
+Dot3adAggPortDebugEntry ::=
+ SEQUENCE {
+ dot3adAggPortDebugRxState
+ INTEGER,
+ dot3adAggPortDebugLastRxTime
+ TimeTicks,
+ dot3adAggPortDebugMuxState
+ INTEGER,
+ dot3adAggPortDebugMuxReason
+ DisplayString,
+ dot3adAggPortDebugActorChurnState
+ ChurnState,
+ dot3adAggPortDebugPartnerChurnState
+ ChurnState,
+ dot3adAggPortDebugActorChurnCount
+ Counter32,
+ dot3adAggPortDebugPartnerChurnCount
+ Counter32,
+ dot3adAggPortDebugActorSyncTransitionCount
+ Counter32,
+ dot3adAggPortDebugPartnerSyncTransitionCount
+ Counter32,
+ dot3adAggPortDebugActorChangeCount
+ Counter32,
+ dot3adAggPortDebugPartnerChangeCount
+ Counter32
+ }
+
+
+dot3adAggPortDebugRxState OBJECT-TYPE
+ SYNTAX INTEGER {
+ currentRx(1),
+ expired(2),
+ defaulted(3),
+ initialize(4),
+ lacpDisabled(5),
+ portDisabled(6)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This attribute holds the value `currentRx' if the
+ Receive state machine for the Aggregation Port is in the
+ CURRENT state, `expired' if the Receive state machine is
+ in the EXPIRED state, `defaulted' if the Receive state
+ machine is in the DEFAULTED state, `initialize' if the
+ Receive state machine is in the INITIALIZE state,
+ `lacpDisabled' if the Receive state machine is in the
+ LACP_DISABLED state, or `portDisabled' if the Receive
+ state machine is in the PORT_DISABLED state.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.2"
+ ::= { dot3adAggPortDebugEntry 1 }
+
+
+dot3adAggPortDebugLastRxTime OBJECT-TYPE
+ SYNTAX TimeTicks
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of aTimeSinceSystemReset (F.2.1) when
+ the last LACPDU was received by this Aggregation Port.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.3"
+ ::= { dot3adAggPortDebugEntry 2 }
+
+
+dot3adAggPortDebugMuxState OBJECT-TYPE
+ SYNTAX INTEGER {
+ detached(1),
+ waiting(2),
+ attached(3),
+ collecting(4),
+ distributing(5),
+ collectingDistributing(6)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This attribute holds the value `detached' if the Mux
+ state machine (43.4.14) for the Aggregation Port is in
+ the DETACHED state, `waiting' if the Mux state machine
+ is in the WAITING state, `attached' if the Mux state
+ machine for the Aggregation Port is in the ATTACHED
+ state, `collecting' if the Mux state machine for the
+ Aggregation Port is in the COLLECTING state,
+ `distributing' if the Mux state machine for the
+ Aggregation Port is in the DISTRIBUTING state, and
+ `collectingDistributing' if the Mux state machine for
+ the Aggregation Port is in the COLLECTING_DISTRIBUTING
+ state. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.4"
+ ::= { dot3adAggPortDebugEntry 3 }
+
+
+dot3adAggPortDebugMuxReason OBJECT-TYPE
+ SYNTAX DisplayString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A human-readable text string indicating the reason
+ for the most recent change of Mux machine state.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.5"
+ ::= { dot3adAggPortDebugEntry 4 }
+
+
+dot3adAggPortDebugActorChurnState OBJECT-TYPE
+ SYNTAX ChurnState
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The state of the Actor Churn Detection machine
+ (43.4.17) for the Aggregation Port. A value of `noChurn'
+ indicates that the state machine is in either the
+ NO_ACTOR_CHURN or the ACTOR_CHURN_MONITOR state, and
+ `churn' indicates that the state machine is in the
+ ACTOR_CHURN state. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.6"
+ ::= { dot3adAggPortDebugEntry 5 }
+
+
+dot3adAggPortDebugPartnerChurnState OBJECT-TYPE
+ SYNTAX ChurnState
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The state of the Partner Churn Detection machine
+ (43.4.17) for the Aggregation Port. A value of `noChurn'
+ indicates that the state machine is in either the
+ NO_PARTNER_CHURN or the PARTNER_CHURN_MONITOR state, and
+ `churn' indicates that the state machine is in the
+ PARTNER_CHURN state. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.7"
+ ::= { dot3adAggPortDebugEntry 6 }
+
+
+dot3adAggPortDebugActorChurnCount OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Count of the number of times the Actor Churn state
+ machine has entered the ACTOR_CHURN state.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.8"
+ ::= { dot3adAggPortDebugEntry 7 }
+
+
+dot3adAggPortDebugPartnerChurnCount OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Count of the number of times the Partner Churn
+ state machine has entered the PARTNER_CHURN state.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.9"
+ ::= { dot3adAggPortDebugEntry 8 }
+
+
+dot3adAggPortDebugActorSyncTransitionCount OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Count of the number of times the Actor's Mux state
+ machine (43.4.15) has entered the IN_SYNC state.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.10"
+ ::= { dot3adAggPortDebugEntry 9 }
+
+
+dot3adAggPortDebugPartnerSyncTransitionCount OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Count of the number of times the Partner's Mux
+ state machine (43.4.15) has entered the IN_SYNC state.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.11"
+ ::= { dot3adAggPortDebugEntry 10 }
+
+
+dot3adAggPortDebugActorChangeCount OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Count of the number of times the Actor's perception of
+ the LAG ID for this Aggregation Port has changed.
+ This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.12"
+ ::= { dot3adAggPortDebugEntry 11 }
+
+
+dot3adAggPortDebugPartnerChangeCount OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Count of the number of times the Partner's perception
+ of the LAG ID (see 43.3.6.1) for this Aggregation Port
+ has changed. This value is read-only."
+ REFERENCE
+ "IEEE 802.3 Subclause 30.7.4.1.13"
+ ::= { dot3adAggPortDebugEntry 12 }
+
+-- -------------------------------------------------------------
+-- IEEE 802.3ad MIB - Conformance Information
+-- -------------------------------------------------------------
+
+dot3adAggConformance OBJECT IDENTIFIER ::= { lagMIB 2 }
+
+
+dot3adAggGroups OBJECT IDENTIFIER ::= { dot3adAggConformance 1 }
+
+
+dot3adAggCompliances OBJECT IDENTIFIER
+ ::= { dot3adAggConformance 2 }
+
+-- -------------------------------------------------------------
+-- units of conformance
+-- -------------------------------------------------------------
+
+dot3adAggGroup OBJECT-GROUP
+ OBJECTS {
+ dot3adAggActorSystemID,
+ dot3adAggActorSystemPriority,
+ dot3adAggAggregateOrIndividual,
+ dot3adAggActorAdminKey,
+ dot3adAggMACAddress,
+ dot3adAggActorOperKey,
+ dot3adAggPartnerSystemID,
+ dot3adAggPartnerSystemPriority,
+ dot3adAggPartnerOperKey,
+ dot3adAggCollectorMaxDelay
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information about an
+ aggregation."
+ ::= { dot3adAggGroups 1 }
+
+
+dot3adAggPortListGroup OBJECT-GROUP
+ OBJECTS {
+ dot3adAggPortListPorts
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information about
+ every port in an aggregation."
+ ::= { dot3adAggGroups 2 }
+
+
+dot3adAggPortGroup OBJECT-GROUP
+ OBJECTS {
+ dot3adAggPortActorSystemPriority,
+ dot3adAggPortActorSystemID,
+ dot3adAggPortActorAdminKey,
+ dot3adAggPortActorOperKey,
+ dot3adAggPortPartnerAdminSystemPriority,
+ dot3adAggPortPartnerOperSystemPriority,
+ dot3adAggPortPartnerAdminSystemID,
+ dot3adAggPortPartnerOperSystemID,
+ dot3adAggPortPartnerAdminKey,
+ dot3adAggPortPartnerOperKey,
+ dot3adAggPortSelectedAggID,
+ dot3adAggPortAttachedAggID,
+ dot3adAggPortActorPort,
+ dot3adAggPortActorPortPriority,
+ dot3adAggPortPartnerAdminPort,
+ dot3adAggPortPartnerOperPort,
+ dot3adAggPortPartnerAdminPortPriority,
+ dot3adAggPortPartnerOperPortPriority,
+ dot3adAggPortActorAdminState,
+ dot3adAggPortActorOperState,
+ dot3adAggPortPartnerAdminState,
+ dot3adAggPortPartnerOperState,
+ dot3adAggPortAggregateOrIndividual
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information about
+ every port in an aggregation."
+ ::= { dot3adAggGroups 3 }
+
+
+dot3adAggPortStatsGroup OBJECT-GROUP
+ OBJECTS {
+ dot3adAggPortStatsLACPDUsRx,
+ dot3adAggPortStatsMarkerPDUsRx,
+ dot3adAggPortStatsMarkerResponsePDUsRx,
+ dot3adAggPortStatsUnknownRx,
+ dot3adAggPortStatsIllegalRx,
+ dot3adAggPortStatsLACPDUsTx,
+ dot3adAggPortStatsMarkerPDUsTx,
+ dot3adAggPortStatsMarkerResponsePDUsTx
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information about
+ every port in an aggregation."
+ ::= { dot3adAggGroups 4 }
+
+
+dot3adAggPortDebugGroup OBJECT-GROUP
+ OBJECTS {
+ dot3adAggPortDebugRxState,
+ dot3adAggPortDebugLastRxTime,
+ dot3adAggPortDebugMuxState,
+ dot3adAggPortDebugMuxReason,
+ dot3adAggPortDebugActorChurnState,
+ dot3adAggPortDebugPartnerChurnState,
+ dot3adAggPortDebugActorChurnCount,
+ dot3adAggPortDebugPartnerChurnCount,
+ dot3adAggPortDebugActorSyncTransitionCount,
+ dot3adAggPortDebugPartnerSyncTransitionCount,
+ dot3adAggPortDebugActorChangeCount,
+ dot3adAggPortDebugPartnerChangeCount
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing debug information
+ about every aggregated port."
+ ::= { dot3adAggGroups 5 }
+
+dot3adTablesLastChangedGroup OBJECT-GROUP
+ OBJECTS {
+ dot3adTablesLastChanged
+ }
+ STATUS current
+ DESCRIPTION
+ "A collection of objects providing information about the
+ time of changes to the configuration of aggregations and
+ their ports."
+::= { dot3adAggGroup 6 }
+
+-- -------------------------------------------------------------
+-- compliance statements
+-- -------------------------------------------------------------
+
+
+dot3adAggCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "The compliance statement for device support of
+ Link Aggregation."
+
+
+ MODULE
+ MANDATORY-GROUPS {
+ dot3adAggGroup,
+ dot3adAggPortGroup,
+ dot3adTablesLastChangedGroup
+ }
+
+
+ GROUP dot3adAggPortListGroup
+ DESCRIPTION
+ "This group is optional."
+
+
+ GROUP dot3adAggPortStatsGroup
+ DESCRIPTION
+ "This group is optional."
+
+
+ GROUP dot3adAggPortDebugGroup
+ DESCRIPTION
+ "This group is optional."
+
+
+ ::= { dot3adAggCompliances 1 }
+
+
+END
+
diff --git a/mibs/SMON-MIB.mib b/mibs/SMON-MIB.mib
new file mode 100644
index 000000000..5677f8f6e
--- /dev/null
+++ b/mibs/SMON-MIB.mib
@@ -0,0 +1,1276 @@
+-- *****************************************************************
+-- SMON-MIB.my
+-- Remote Monitoring Extensions for Ethernet Switches
+-- from draft-ietf-rmonmib-smon-07.txt
+--
+-- April 1999, Andy Bierman
+--
+-- Copyright (c) 1998 - 1999 by cisco Systems, Inc.
+-- All rights reserved.
+-- *****************************************************************
+--
+
+ SMON-MIB DEFINITIONS ::= BEGIN
+
+ IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE, Counter32,
+ Integer32, Counter64
+ FROM SNMPv2-SMI
+ RowStatus, TEXTUAL-CONVENTION
+ FROM SNMPv2-TC
+ rmon, OwnerString
+ FROM RMON-MIB
+ LastCreateTime, DataSource, rmonConformance, probeConfig
+ FROM RMON2-MIB
+ InterfaceIndex
+ FROM IF-MIB
+ MODULE-COMPLIANCE, OBJECT-GROUP
+ FROM SNMPv2-CONF;
+
+ switchRMON MODULE-IDENTITY
+ LAST-UPDATED "9812160000Z"
+ ORGANIZATION "IETF RMON MIB Working Group"
+ CONTACT-INFO
+ "IETF RMONMIB WG Mailing list: rmonmib@cisco.com
+
+ Rich Waterman
+ Allot Networks Inc.
+ Tel: +1-408-559-0253
+ Email: rich@allot.com
+
+ Bill Lahaye
+ Xylan Corp.
+ Tel: +1-800-995-2612
+ Email: lahaye@ctron.com
+
+ Dan Romascanu
+ Lucent Technologies
+ Tel: +972-3-645-8414
+ Email: dromasca@lucent.com
+
+ Steven Waldbusser
+ International Network Services
+ Tel: +1-415-254-4251
+ Email: waldbusser@ins.com"
+
+ DESCRIPTION
+ "The MIB module for managing remote monitoring device
+ implementations for Switched Networks"
+ ::= { rmon 22 }
+
+ smonMIBObjects OBJECT IDENTIFIER ::= { switchRMON 1 }
+
+ dataSourceCaps OBJECT IDENTIFIER ::= {smonMIBObjects 1}
+ smonStats OBJECT IDENTIFIER ::= {smonMIBObjects 2}
+ portCopyConfig OBJECT IDENTIFIER ::= {smonMIBObjects 3}
+ smonRegistrationPoints OBJECT IDENTIFIER ::= {smonMIBObjects 4}
+
+ -- Textual Conventions
+ --
+
+ SmonDataSource ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Identifies the source of the data that the associated function
+ is configured to analyze. This Textual Convention
+ extends the DataSource Textual Convention defined by RMON 2
+ to the following data source types:
+
+ - ifIndex.
+ DataSources of this traditional form are called 'port-based',
+ but only if ifType. is not equal to 'propVirtual(53)'.
+
+ - smonVlanDataSource.
+ A dataSource of this form refers to a 'Packet-based VLAN'
+ and is called a 'VLAN-based' dataSource. is the VLAN
+ ID as defined by the IEEE 802.1Q standard [19]. The
+ value is between 1 and 4094 inclusive, and it represents
+ an 802.1Q VLAN-ID with global scope within a given
+ bridged domain, as defined by [19].
+
+ - entPhysicalEntry.
+ A dataSource of this form refers to a physical entity within
+ the agent (e.g. entPhysicalClass = backplane(4)) and is called
+ an 'entity-based' dataSource."
+ SYNTAX OBJECT IDENTIFIER
+
+ -- The smonCapabilities object describes SMON agent capabilities.
+
+ smonCapabilities OBJECT-TYPE
+ SYNTAX BITS {
+ smonVlanStats(0),
+ smonPrioStats(1),
+ dataSource(2),
+ smonUnusedBit(3),
+ portCopy(4)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "An indication of the SMON MIB groups supported
+ by this agent."
+ ::= { probeConfig 15 }
+
+ -- dataSourceCaps MIB group - defines SMON data source and port
+ -- copy capabilities for devices supporting SMON.
+
+ -- A NMS application will check this MIB group and retrieve
+ -- information about the SMON capabilities of the device before
+ -- applying SMON control operations to the device.
+
+
+ -- dataSourceCapsTable: defines capabilities of RMON data sources
+
+ dataSourceCapsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF DataSourceCapsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table describes RMON data sources and port copy
+ capabilities. An NMS MAY use this table to discover the
+ identity and attributes of the data sources on a given agent
+ implementation. Similar to the probeCapabilities object,
+ actual row-creation operations will succeed or fail based on
+ the resources available and parameter values used in each
+ row-creation operation.
+
+ Upon restart of the RMON agent, the dataSourceTable, ifTable,
+ and perhaps entPhysicalTable are initialized for the available
+ dataSources.
+
+ For each dataSourceCapsEntry representing a VLAN or
+ entPhysicalEntry the agent MUST create an associated ifEntry
+ with a ifType value of 'propVirtual(53)'. This ifEntry will be
+ used as the actual value in RMON control table dataSource
+ objects. The assigned ifIndex value is copied into the
+ associated dataSourceCapsIfIndex object.
+ It is understood that dataSources representing VLANs may not
+ always be instantiated immediately upon restart, but rather as
+ VLAN usage is detected by the agent. The agent SHOULD attempt
+ to create dataSource and interface entries for all dataSources
+ as soon as possible."
+ ::= { dataSourceCaps 1 }
+
+ dataSourceCapsEntry OBJECT-TYPE
+ SYNTAX DataSourceCapsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Entries per data source containing descriptions of data
+ source and port copy capabilities. This table is populated by
+ the SMON agent with one entry for each supported data
+ source."
+ INDEX { IMPLIED dataSourceCapsObject }
+ ::= { dataSourceCapsTable 1 }
+
+ DataSourceCapsEntry ::= SEQUENCE {
+ dataSourceCapsObject
+ SmonDataSource,
+ dataSourceRmonCaps
+ BITS,
+ dataSourceCopyCaps
+ BITS,
+ dataSourceCapsIfIndex
+ InterfaceIndex
+ }
+
+ dataSourceCapsObject OBJECT-TYPE
+ SYNTAX SmonDataSource
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines an object that can be a SMON data source or a
+ source or a destination for a port copy operation."
+ ::= { dataSourceCapsEntry 1 }
+
+ dataSourceRmonCaps OBJECT-TYPE
+ SYNTAX BITS {
+ countErrFrames(0),
+ countAllGoodFrames(1),
+ countAnyRmonTables(2),
+ babyGiantsCountAsGood(3)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ " General attributes of the specified dataSource. Note that
+ these are static attributes, which SHOULD NOT be adjusted
+ because of current resources or configuration.
+
+ - countErrFrames(0)
+ The agent sets this bit for the dataSource if errored frames
+ received on this dataSource can actually be monitored by the
+ agent The agent clears this bit if any errored frames are
+ not visible to the RMON data collector.
+
+ - countAllGoodFrames(1)
+ The agent sets this bit for the dataSource if all good
+ frames received on this dataSource can actually be monitored
+ by the agent. The agent clears this bit if any good frames
+ are not visible for RMON collection, e.g., the dataSource is
+ a non-promiscuous interface or an internal switch interface
+ which may not receive frames which were switched in hardware
+ or dropped by the bridge forwarding function.
+
+ - countAnyRmonTables(2)
+ The agent sets this bit if this dataSource can actually be
+ used in any of the implemented RMON tables, resources
+ notwithstanding. The agent clears this bit if this
+ dataSourceCapsEntry is present simply to identify a
+ dataSource that may only be used as portCopySource and/or a
+ portCopyDest, but not the source of an actual RMON data
+ collection.
+
+ - babyGiantsCountAsGood(3)
+ The agent sets this bit if it can distinguish, for counting
+ purposes, between true giant frames and frames that exceed
+ Ethernet maximum frame size 1518 due to VLAN tagging ('baby
+ giants'). Specifically, this BIT means that frames up to
+ 1522 octets are counted as good.
+
+ Agents not capable of detecting 'baby giants' will clear
+ this bit and will view all frames less than or equal to 1518
+ octets as 'good frames' and all frames larger than 1518
+ octets as 'bad frames' for the purpose of counting in the
+ smonVlanIdStats and smonPrioStats tables.
+
+ Agents capable of detecting 'baby giants' SHALL consider
+ them as 'good frames' for the purpose of counting in the
+ smonVlanIdStats and smonPrioStats tables."
+
+ ::= { dataSourceCapsEntry 2 }
+ dataSourceCopyCaps OBJECT-TYPE
+ SYNTAX BITS {
+ copySourcePort(0),
+ copyDestPort(1),
+ copySrcTxTraffic(2),
+ copySrcRxTraffic(3),
+ countDestDropEvents(4),
+ copyErrFrames(5),
+ copyUnalteredFrames(6),
+ copyAllGoodFrames(7)
+ }
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "PortCopy function capabilities of the specified dataSource.
+ Note that these are static capabilities, which SHOULD NOT be
+ adjusted because of current resources or configuration.
+
+ - copySourcePort(0)
+ The agent sets this bit if this dataSource is capable of
+ acting as a source of a portCopy operation. The agent clears
+ this bit otherwise.
+
+ - copyDestPort(1)
+ The agent sets this bit if this dataSource is capable of
+ acting as a destination of a portCopy operation. The agent
+ clears this bit otherwise.
+
+ - copySrcTxTraffic(2)
+ If the copySourcePort bit is set:
+ The agent sets this bit if this dataSource is capable of
+ copying frames transmitted out this portCopy source. The
+ agent clears this bit otherwise. This function is needed
+ to support full-duplex ports.
+ Else:
+ this bit SHOULD be cleared.
+
+ - copySrcRxTraffic(3)
+ If the copySourcePort bit is set:
+ The agent sets this bit if this dataSource is capable of
+ copying frames received on this portCopy source. The agent
+ clears this bit otherwise. This function is needed to
+ support full-duplex ports.
+ Else:
+ this bit SHOULD be cleared.
+
+ - countDestDropEvents(4)
+ If the copyDestPort bit is set:
+ The agent sets this bit if it is capable of incrementing
+ portCopyDestDropEvents, when this dataSource is the
+ target of a portCopy operation and a frame destined to
+ this dataSource is dropped (for RMON counting purposes).
+ Else:
+ this BIT SHOULD be cleared.
+
+ - copyErrFrames(5)
+ If the copySourcePort bit is set:
+ The agent sets this bit if it is capable of copying all
+ errored frames from this portCopy source-port, for
+ errored frames received on this dataSource.
+ Else:
+ this BIT SHOULD be cleared.
+
+ - copyUnalteredFrames(6)
+ If the copySourcePort bit is set:
+ The agent sets the copyUnalteredFrames bit If it is
+ capable of copying all frames from this portCopy
+ source-port without alteration in any way;
+ Else:
+ this bit SHOULD be cleared.
+
+ - copyAllGoodFrames(7)
+ If the copySourcePort bit is set:
+ The agent sets this bit for the dataSource if all good
+ frames received on this dataSource are normally capable
+ of being copied by the agent. The agent clears this bit
+ if any good frames are not visible for the RMON portCopy
+ operation, e.g., the dataSource is a non-promiscuous
+ interface or an internal switch interface which may not
+ receive frames which were switched in hardware or
+ dropped by the bridge forwarding function.
+ Else:
+ this bit SHOULD be cleared."
+
+ ::= { dataSourceCapsEntry 3 }
+
+ dataSourceCapsIfIndex OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "This object contains the ifIndex value of the ifEntry
+ associated with this smonDataSource. The agent MUST create
+ 'propVirtual' ifEntries for each dataSourceCapsEntry of type
+ VLAN or entPhysicalEntry."
+ ::= { dataSourceCapsEntry 4 }
+
+ -- The SMON Statistics MIB Group
+
+ -- aggregated statistics for IEEE 802.1Q VLAN environments.
+
+ -- VLAN statistics can be gathered by configuring smonVlanIdStats
+ -- and/or smonPrioStats collections. These functions allow a
+ -- VLAN-ID or user priority distributions per dataSource,
+ -- auto-populated by the agent in a manner similar to the RMON
+ -- hostTable.
+
+ -- Only good frames are counted in the tables described in this
+ -- section.
+
+ -- VLAN ID Stats
+
+ -- smonVlanStatsControlTable allows configuration of VLAN-ID
+ -- collections.
+
+ smonVlanStatsControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmonVlanStatsControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+
+ "Controls the setup of VLAN statistics tables.
+
+ The statistics collected represent a distribution based on
+ the IEEE 802.1Q VLAN-ID (VID), for each good frame attributed
+ to the data source for the collection."
+ ::= { smonStats 1 }
+
+ smonVlanStatsControlEntry OBJECT-TYPE
+ SYNTAX SmonVlanStatsControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in the smonVlanStatsControlTable."
+ INDEX { smonVlanStatsControlIndex }
+ ::= { smonVlanStatsControlTable 1 }
+
+ SmonVlanStatsControlEntry ::= SEQUENCE {
+ smonVlanStatsControlIndex Integer32,
+ smonVlanStatsControlDataSource DataSource,
+ smonVlanStatsControlCreateTime LastCreateTime,
+ smonVlanStatsControlOwner OwnerString,
+ smonVlanStatsControlStatus RowStatus
+ }
+
+ smonVlanStatsControlIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A unique arbitrary index for this smonVlanStatsControlEntry."
+ ::= { smonVlanStatsControlEntry 1 }
+
+ smonVlanStatsControlDataSource OBJECT-TYPE
+ SYNTAX DataSource
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The source of data for this set of VLAN statistics.
+
+ This object MAY NOT be modified if the associated
+ smonVlanStatsControlStatus object is equal to active(1)."
+ ::= { smonVlanStatsControlEntry 2 }
+
+ smonVlanStatsControlCreateTime OBJECT-TYPE
+ SYNTAX LastCreateTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when this control entry was last
+ activated. This object allows to a management station to
+ detect deletion and recreation cycles between polls."
+ ::= { smonVlanStatsControlEntry 3 }
+
+ smonVlanStatsControlOwner OBJECT-TYPE
+
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Administratively assigned named of the owner of this entry.
+ It usually defines the entity that created this entry and is
+ therefore using the resources assigned to it, though there is
+ no enforcement mechanism, nor assurance that rows created are
+ ever used."
+ ::= { smonVlanStatsControlEntry 4 }
+
+ smonVlanStatsControlStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this row.
+
+ An entry MAY NOT exist in the active state unless all
+ objects in the entry have an appropriate value.
+
+ If this object is not equal to active(1), all associated
+ entries in the smonVlanIdStatsTable SHALL be deleted."
+ ::= { smonVlanStatsControlEntry 5 }
+
+ -- The VLAN Statistics Table
+
+ smonVlanIdStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmonVlanIdStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Contains the VLAN statistics data.
+ The statistics collected represent a distribution based
+ on the IEEE 802.1Q VLAN-ID (VID), for each good frame
+ attributed to the data source for the collection.
+
+ This function applies the same rules for attributing frames
+ to VLAN-based collections. RMON VLAN statistics are collected
+ after the Ingress Rules defined in section 3.13 of the VLAN
+ Specification [20] are applied.
+
+ It is possible that entries in this table will be
+ garbage-collected, based on agent resources, and VLAN
+ configuration. Agents are encouraged to support all 4094
+ index values and not garbage collect this table."
+ ::= { smonStats 2 }
+
+ smonVlanIdStatsEntry OBJECT-TYPE
+ SYNTAX SmonVlanIdStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in smonVlanIdStatsTable."
+ INDEX { smonVlanStatsControlIndex, smonVlanIdStatsId }
+ ::= { smonVlanIdStatsTable 1 }
+
+ SmonVlanIdStatsEntry ::= SEQUENCE {
+ smonVlanIdStatsId Integer32,
+ smonVlanIdStatsTotalPkts Counter32,
+ smonVlanIdStatsTotalOverflowPkts Counter32,
+ smonVlanIdStatsTotalHCPkts Counter64,
+ smonVlanIdStatsTotalOctets Counter32,
+ smonVlanIdStatsTotalOverflowOctets Counter32,
+ smonVlanIdStatsTotalHCOctets Counter64,
+ smonVlanIdStatsNUcastPkts Counter32,
+ smonVlanIdStatsNUcastOverflowPkts Counter32,
+ smonVlanIdStatsNUcastHCPkts Counter64,
+ smonVlanIdStatsNUcastOctets Counter32,
+ smonVlanIdStatsNUcastOverflowOctets Counter32,
+ smonVlanIdStatsNUcastHCOctets Counter64,
+ smonVlanIdStatsCreateTime LastCreateTime
+ }
+
+ smonVlanIdStatsId OBJECT-TYPE
+ SYNTAX Integer32 (1..4094)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The unique identifier of the VLAN monitored for
+ this specific statistics collection.
+
+ Tagged packets match the VID for the range between 1 and 4094.
+ An external RMON probe MAY detect VID=0 on an Inter Switch
+ Link, in which case the packet belongs to a VLAN determined by
+ the PVID of the ingress port. The VLAN to which such a packet
+ belongs can be determined only by a RMON probe internal to the
+ switch."
+ REFERENCE
+ "Draft Standard for Virtual Bridged Local Area Networks,
+ P802.1Q/D10, chapter 3.13"
+ ::= { smonVlanIdStatsEntry 1 }
+
+ smonVlanIdStatsTotalPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets counted on this VLAN."
+ ::= { smonVlanIdStatsEntry 2 }
+
+ smonVlanIdStatsTotalOverflowPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times the associated smonVlanIdStatsTotalPkts
+ counter has overflowed."
+ ::= { smonVlanIdStatsEntry 3 }
+
+ smonVlanIdStatsTotalHCPkts OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets counted on this VLAN."
+ ::= { smonVlanIdStatsEntry 4 }
+
+ smonVlanIdStatsTotalOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets counted on this VLAN."
+ ::= { smonVlanIdStatsEntry 5 }
+
+ smonVlanIdStatsTotalOverflowOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times the associated smonVlanIdStatsTotalOctets
+ counter has overflowed."
+ ::= { smonVlanIdStatsEntry 6 }
+
+ smonVlanIdStatsTotalHCOctets OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets counted on this VLAN."
+ ::= { smonVlanIdStatsEntry 7 }
+
+ smonVlanIdStatsNUcastPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of non-unicast packets counted on this
+ VLAN."
+ ::= { smonVlanIdStatsEntry 8 }
+
+ smonVlanIdStatsNUcastOverflowPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times the associated smonVlanIdStatsNUcastPkts
+ counter has overflowed."
+ ::= { smonVlanIdStatsEntry 9 }
+
+ smonVlanIdStatsNUcastHCPkts OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of non-unicast packets counted on
+ this VLAN."
+ ::= { smonVlanIdStatsEntry 10 }
+
+ smonVlanIdStatsNUcastOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of non-unicast octets counted on
+ this VLAN."
+ ::= { smonVlanIdStatsEntry 11 }
+
+ smonVlanIdStatsNUcastOverflowOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times the associated
+ smonVlanIdStatsNUcastOctets counter has overflowed."
+ ::= { smonVlanIdStatsEntry 12 }
+
+ smonVlanIdStatsNUcastHCOctets OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of Non-unicast octets counted on
+ this VLAN."
+ ::= { smonVlanIdStatsEntry 13 }
+
+ smonVlanIdStatsCreateTime OBJECT-TYPE
+ SYNTAX LastCreateTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when this entry was last
+ activated. This object allows to a management station to
+ detect deletion and recreation cycles between polls."
+ ::= { smonVlanIdStatsEntry 14 }
+
+ -- smonPrioStatsControlTable
+
+ smonPrioStatsControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmonPrioStatsControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Controls the setup of priority statistics tables.
+
+ The smonPrioStatsControlTable allows configuration of
+ collections based on the value of the 3-bit user priority
+ field encoded in the Tag Control Information (TCI) field
+ according to [19],[20].
+
+ Note that this table merely reports priority as encoded in
+ the VLAN headers, not the priority (if any) given to the
+ frame for the actual switching purposes."
+
+ ::= { smonStats 3 }
+
+ smonPrioStatsControlEntry OBJECT-TYPE
+ SYNTAX SmonPrioStatsControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in the smonPrioStatsControlTable."
+ INDEX { smonPrioStatsControlIndex }
+ ::= { smonPrioStatsControlTable 1 }
+
+
+ SmonPrioStatsControlEntry ::= SEQUENCE {
+ smonPrioStatsControlIndex Integer32,
+ smonPrioStatsControlDataSource DataSource,
+ smonPrioStatsControlCreateTime LastCreateTime,
+ smonPrioStatsControlOwner OwnerString,
+ smonPrioStatsControlStatus RowStatus
+ }
+
+ smonPrioStatsControlIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A unique arbitrary index for this smonPrioStatsControlEntry."
+ ::= { smonPrioStatsControlEntry 1 }
+
+ smonPrioStatsControlDataSource OBJECT-TYPE
+ SYNTAX DataSource
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The source of data for this set of VLAN statistics.
+
+ This object MAY NOT be modified if the associated
+ smonPrioStatsControlStatus object is equal to active(1)."
+ ::= { smonPrioStatsControlEntry 2 }
+
+ smonPrioStatsControlCreateTime OBJECT-TYPE
+ SYNTAX LastCreateTime
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when this entry was created.
+ This object allows to a management station to
+ detect deletion and recreation cycles between polls."
+
+ ::= { smonPrioStatsControlEntry 3 }
+
+ smonPrioStatsControlOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Administratively assigned named of the owner of this entry.
+ It usually defines the entity that created this entry and is
+ therefore using the resources assigned to it, though there is
+ no enforcement mechanism, nor assurance that rows created are
+ ever used."
+ ::= { smonPrioStatsControlEntry 4 }
+
+ smonPrioStatsControlStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this row.
+ An entry MAY NOT exist in the active state unless all
+ objects in the entry have an appropriate value.
+
+ If this object is not equal to active(1), all associated
+ entries in the smonPrioStatsTable SHALL be deleted."
+ ::= { smonPrioStatsControlEntry 5 }
+
+ -- The Priority Statistics Table
+
+ smonPrioStatsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF SmonPrioStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Contains the priority statistics. The collections are based
+ on the value of the 3-bit user priority field encoded in the
+ Tag Control Information (TCI) field according to [19], [20].
+ Note that this table merely reports priority as encoded in
+ the VLAN headers, not the priority (if any) given to the
+ frame for the actual switching purposes.
+
+ No garbage collection is designed for this table, as there
+ always are at most eight rows per statistical set, and the
+ low memory requirements do not justify the implementation of
+ such a mechanism."
+ ::= { smonStats 4 }
+
+ smonPrioStatsEntry OBJECT-TYPE
+ SYNTAX SmonPrioStatsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in smonPrioStatsTable."
+ INDEX { smonPrioStatsControlIndex, smonPrioStatsId }
+ ::= { smonPrioStatsTable 1 }
+
+ SmonPrioStatsEntry ::= SEQUENCE {
+ smonPrioStatsId Integer32,
+ smonPrioStatsPkts Counter32,
+ smonPrioStatsOverflowPkts Counter32,
+ smonPrioStatsHCPkts Counter64,
+ smonPrioStatsOctets Counter32,
+ smonPrioStatsOverflowOctets Counter32,
+ smonPrioStatsHCOctets Counter64
+ }
+
+ smonPrioStatsId OBJECT-TYPE
+ SYNTAX Integer32 (0..7)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The unique identifier of the priority level monitored for
+ this specific statistics collection."
+ REFERENCE
+ " Draft Standard for Virtual Bridged Local Area Networks,
+ P802.1Q/D10, chapter 4.3.2.1"
+ ::= { smonPrioStatsEntry 1 }
+
+ smonPrioStatsPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets counted on
+ this priority level."
+ ::= { smonPrioStatsEntry 2 }
+
+ smonPrioStatsOverflowPkts OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times the associated smonPrioStatsPkts
+ counter has overflowed."
+ ::= { smonPrioStatsEntry 3 }
+
+ smonPrioStatsHCPkts OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "packets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of packets counted on
+ this priority level."
+ ::= { smonPrioStatsEntry 4 }
+
+ smonPrioStatsOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets counted on
+ this priority level."
+ ::= { smonPrioStatsEntry 5 }
+
+ smonPrioStatsOverflowOctets OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of times the associated smonPrioStatsOctets
+ counter has overflowed."
+ ::= { smonPrioStatsEntry 6 }
+
+ smonPrioStatsHCOctets OBJECT-TYPE
+ SYNTAX Counter64
+ UNITS "octets"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of octets counted on
+ this priority level."
+ ::= { smonPrioStatsEntry 7 }
+
+
+ portCopyTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF PortCopyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ " Port Copy provides the ability to copy all frames from a
+ specified source to specified destination within a switch.
+ Source and destinations MUST be ifEntries, as defined by [22].
+ One to one, one to many, many to one and many to many source to
+ destination relationships may be configured.
+
+ Applicable counters on the destination will increment for all
+ packets transiting the port, be it by normal bridging/switching
+ or due to packet copy.
+ Note that this table manages no RMON data collection by itself,
+ and an agent may possibly implement no RMON objects except
+ objects related to the port copy operation defined by the
+ portCopyCompliance conformance macro. That allows for a switch
+ with no other embedded RMON capability to perform port copy
+ operations to a destination port at which a different external
+ RMON probe is connected.
+
+ One to one, many to one and one to many source to destination
+ relationships may be configured.
+
+ Each row that exists in this table defines such a
+ relationship. By disabling a row in this table the port copy
+ relationship no longer exists.
+
+ The number of entries and the types of port copies (1-1,
+ many-1, 1-many) are implementation specific and could
+ possibly be dynamic due to changing resource availability.
+
+ In order to configure a source to destination portCopy
+ relationship, both source and destination interfaces MUST be
+ present as an ifEntry in the ifTable and their respective
+ ifAdminStatus and ifOperStatus values MUST be equal to
+ 'up(1)'. If the value of any of those two objects changes
+ after the portCopyEntry is activated, portCopyStatus will
+ transition to 'notReady(3)'.
+
+ The capability of an interface to be source or destination of
+ a port copy operation is described by the 'copySourcePort(0)'
+ and 'copyDestPort(1)' bits in dataSourceCopyCaps. Those bits
+ SHOULD be appropriately set by the agent, in order to allow
+ for a portCopyEntry to be created.
+
+ Applicable counters on the destination will increment for all
+ packets transmitted, be it by normal bridging/switching or
+ due to packet copy."
+ ::= { portCopyConfig 1 }
+
+ portCopyEntry OBJECT-TYPE
+ SYNTAX PortCopyEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Describes a particular port copy entry."
+ INDEX { portCopySource, portCopyDest }
+ ::= { portCopyTable 1 }
+
+ PortCopyEntry ::= SEQUENCE {
+ portCopySource
+ InterfaceIndex,
+ portCopyDest
+ InterfaceIndex,
+ portCopyDestDropEvents
+ Counter32,
+ portCopyDirection
+ INTEGER,
+ portCopyStatus
+ RowStatus
+ }
+
+
+ portCopySource OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The ifIndex of the source which will have all packets
+ redirected to the destination as defined by portCopyDest."
+ ::= { portCopyEntry 1 }
+
+ portCopyDest OBJECT-TYPE
+ SYNTAX InterfaceIndex
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Defines the ifIndex destination for the copy operation."
+ ::= { portCopyEntry 2 }
+
+ portCopyDestDropEvents OBJECT-TYPE
+ SYNTAX Counter32
+ UNITS "events"
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of events in which port copy packets were
+ dropped by the switch at the destination port due to lack of
+ resources.
+
+ Note that this number is not necessarily the number of
+ packets dropped; it is just the number of times this
+ condition has been detected.
+
+ A single dropped event counter is maintained for each
+ portCopyDest. Thus all instances associated with a given
+ portCopyDest will have the same portCopyDestDropEvents
+ value."
+ ::= { portCopyEntry 3 }
+
+ portCopyDirection OBJECT-TYPE
+ SYNTAX INTEGER {
+ copyRxOnly(1),
+ copyTxOnly(2),
+ copyBoth(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This object affects the way traffic is copied from a switch
+ source port, for the indicated port copy operation.
+
+
+ If this object has the value 'copyRxOnly(1)', then only
+ traffic received on the indicated source port will be copied
+ to the indicated destination port.
+
+ If this object has the value 'copyTxOnly(2)', then only
+ traffic transmitted out the indicated source port will be
+ copied to the indicated destination port.
+
+ If this object has the value 'copyBoth(3)', then all traffic
+ received or transmitted on the indicated source port will be
+ copied to the indicated destination port.
+
+ The creation and deletion of instances of this object is
+ controlled by the portCopyRowStatus object. Note that there
+ is no guarantee that changes in the value of this object
+ performed while the associated portCopyRowStatus object is
+ equal to active will not cause traffic discontinuities in the
+ packet stream."
+ DEFVAL { copyBoth }
+ ::= { portCopyEntry 4 }
+
+ portCopyStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "Defines the status of the port copy entry.
+
+ In order to configure a source to destination portCopy
+ relationship, both source and destination interfaces MUST be
+ present as an ifEntry in the ifTable and their respective
+ ifAdminStatus and ifOperStatus values MUST be equal to
+ 'up(1)'. If the value of any of those two objects changes
+ after the portCopyEntry is activated, portCopyStatus will
+ transition to 'notReady(3)'.
+
+ The capability of an interface to be source or destination of
+ a port copy operation is described by the 'copySourcePort(0)'
+ and 'copyDestPort(1)' bits in dataSourceCopyCaps. Those bits
+ SHOULD be appropriately set by the agent, in order to allow
+ for a portCopyEntry to be created."
+ ::= { portCopyEntry 5 }
+
+ -- smonRegistrationPoints
+ -- defines a set of OIDs for registration purposes of entities
+ -- supported by the SMON MIB.
+
+
+ smonVlanDataSource
+ OBJECT IDENTIFIER ::= { smonRegistrationPoints 1}
+
+ -- Defined for use as an SmonDataSource. A single integer parameter
+ -- is appended to the end of this OID when actually encountered in
+ -- the dataSourceCapsTable, which represents a positive, non-zero
+ -- VLAN identifier value.
+
+ -- Conformance Macros
+
+ smonMIBCompliances OBJECT IDENTIFIER ::= { rmonConformance 3}
+ smonMIBGroups OBJECT IDENTIFIER ::= { rmonConformance 4}
+
+ smonMIBCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "Describes the requirements for full conformance with the SMON
+ MIB"
+ MODULE -- this module
+ MANDATORY-GROUPS {dataSourceCapsGroup,
+ smonVlanStatsGroup,
+ smonPrioStatsGroup,
+ portCopyConfigGroup,
+ smonInformationGroup}
+
+ GROUP smonHcTo100mbGroup
+ DESCRIPTION
+ "This group of VLAN statistics counter are mandatory only for
+ those network interfaces for which the corresponding ifSpeed
+ can be greater than 10MB/sec and less than or equal to
+ 100MB/sec."
+
+ GROUP smonHc100mbPlusGroup
+ DESCRIPTION
+ "This group of VLAN statistics counters are mandatory only for
+ those network interfaces for which the corresponding ifSpeed
+ can be more than 100MB/sec. This group of VLAN statistics is
+ also mandatory for smonDataSources of type VLAN or
+ entPhysicalEntry."
+
+ ::= { smonMIBCompliances 1 }
+
+ smonMIBVlanStatsCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "Describes the requirements for conformance with the SMON MIB
+ with support for VLAN Statistics. Mandatory for a SMON probe
+ in environment where IEEE 802.1Q bridging is implemented."
+
+
+ MODULE -- this module
+ MANDATORY-GROUPS {dataSourceCapsGroup,
+ smonVlanStatsGroup,
+ smonInformationGroup}
+ GROUP hcVlanTo100mbGroup
+ DESCRIPTION
+ "This group of VLAN statistics counter are mandatory only
+ for those network interfaces for which the corresponding
+ ifSpeed can be up to and including 100MB/sec."
+
+ GROUP hcVlan100mbPlusGroup
+ DESCRIPTION
+ "This group of VLAN statistics counters are mandatory only for
+ those network interfaces for which the corresponding ifSpeed
+ is greater than 100MB/sec. This group of VLAN statistics is
+ also mandatory for smonDataSources of type VLAN or
+ entPhysicalEntry."
+
+ ::= { smonMIBCompliances 2 }
+
+ smonMIBPrioStatsCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "Describes the requirements for conformance with the SMON MIB
+ with support for priority level Statistics. Mandatory for a
+ SMON probe in a environment where IEEE 802.1p
+ priority-switching is implemented."
+ MODULE -- this module
+ MANDATORY-GROUPS {dataSourceCapsGroup,
+ smonPrioStatsGroup,
+ smonInformationGroup}
+
+ GROUP hcPrioTo100mbGroup
+ DESCRIPTION
+ "This group of VLAN priority statistics counters are mandatory
+ only for those network interfaces for which the corresponding
+ ifSpeed can be up to and including 100MB/sec."
+
+ GROUP hcPrio100mbPlusGroup
+ DESCRIPTION
+ "This group is mandatory only for those network
+ interfaces for which the corresponding ifSpeed is greater
+ than 100MB/sec. This group of VLAN priority
+ statistics is also mandatory for smonDataSources of type
+ VLAN or entPhysicalEntry"
+
+ ::= { smonMIBCompliances 3 }
+
+
+ portCopyCompliance MODULE-COMPLIANCE
+ STATUS current
+ DESCRIPTION
+ "Describes the requirements for conformance with the port copy
+ functionality defined by the SMON MIB"
+ MODULE -- this module
+ MANDATORY-GROUPS {dataSourceCapsGroup,
+ portCopyConfigGroup,
+ smonInformationGroup}
+
+ ::= { smonMIBCompliances 4}
+
+ dataSourceCapsGroup OBJECT-GROUP
+ OBJECTS { dataSourceRmonCaps,
+ dataSourceCopyCaps,
+ dataSourceCapsIfIndex}
+ STATUS current
+ DESCRIPTION
+ "Defines the objects that describe the capabilities of RMON
+ data sources."
+ ::= {smonMIBGroups 1 }
+
+ smonVlanStatsGroup OBJECT-GROUP
+ OBJECTS { smonVlanStatsControlDataSource,
+ smonVlanStatsControlCreateTime,
+ smonVlanStatsControlOwner,
+ smonVlanStatsControlStatus,
+ smonVlanIdStatsTotalPkts,
+ smonVlanIdStatsTotalOctets,
+ smonVlanIdStatsNUcastPkts,
+ smonVlanIdStatsCreateTime}
+ STATUS current
+ DESCRIPTION
+ "Defines the switch monitoring specific statistics - per VLAN
+ Id on interfaces of 10MB or less."
+ ::= { smonMIBGroups 2 }
+
+ smonPrioStatsGroup OBJECT-GROUP
+ OBJECTS { smonPrioStatsControlDataSource,
+ smonPrioStatsControlCreateTime,
+ smonPrioStatsControlOwner,
+ smonPrioStatsControlStatus,
+ smonPrioStatsPkts,
+ smonPrioStatsOctets}
+ STATUS current
+ DESCRIPTION
+ "Defines the switch monitoring specific statistics - per VLAN
+ Id on interface."
+
+
+ ::= { smonMIBGroups 3 }
+
+ smonHcTo100mbGroup OBJECT-GROUP
+ OBJECTS { smonVlanIdStatsTotalOverflowOctets,
+ smonVlanIdStatsTotalHCOctets,
+ smonPrioStatsOverflowOctets,
+ smonPrioStatsHCOctets}
+ STATUS current
+ DESCRIPTION
+ "Defines the additional high capacity statistics needed to be
+ kept on interfaces with ifSpeed greater than 10MB/sec and
+ less than or equal to 100MB/sec."
+ ::= { smonMIBGroups 4 }
+
+ smonHc100mbPlusGroup OBJECT-GROUP
+ OBJECTS { smonVlanIdStatsTotalOverflowPkts,
+ smonVlanIdStatsTotalHCPkts,
+ smonVlanIdStatsTotalOverflowOctets,
+ smonVlanIdStatsTotalHCOctets,
+ smonVlanIdStatsNUcastOverflowPkts,
+ smonVlanIdStatsNUcastHCPkts,
+ smonPrioStatsOverflowPkts,
+ smonPrioStatsHCPkts,
+ smonPrioStatsOverflowOctets,
+ smonPrioStatsHCOctets}
+ STATUS current
+ DESCRIPTION
+ "Defines the additional high capacity statistics needed to be
+ kept on interfaces with ifSpeed of more than 100MB/sec. These
+ statistics MUST also be kept on smonDataSources of type VLAN
+ or entPhysicalEntry."
+ ::= { smonMIBGroups 5 }
+
+ hcVlanTo100mbGroup OBJECT-GROUP
+ OBJECTS { smonVlanIdStatsTotalOverflowOctets,
+ smonVlanIdStatsTotalHCOctets}
+ STATUS current
+ DESCRIPTION
+ "Defines the additional high capacity VLAN statistics
+ needed to be kept on interfaces with ifSpeed greater than
+ 10MB/sec and less than or equal to 100MB/sec."
+ ::= { smonMIBGroups 6 }
+
+ hcVlan100mbPlusGroup OBJECT-GROUP
+ OBJECTS { smonVlanIdStatsTotalOverflowPkts,
+ smonVlanIdStatsTotalHCPkts,
+ smonVlanIdStatsTotalOverflowOctets,
+ smonVlanIdStatsTotalHCOctets,
+ smonVlanIdStatsNUcastOverflowPkts,
+ smonVlanIdStatsNUcastHCPkts}
+ STATUS current
+ DESCRIPTION
+ "Defines the additional high capacity VLAN statistics
+ needed to be kept on interfaces with ifSpeed of more than
+ 100MB/sec. These statistics MUST also be kept on
+ smonDataSources of type VLAN or entPhysicalEntry."
+ ::= { smonMIBGroups 7 }
+
+ hcPrioTo100mbGroup OBJECT-GROUP
+ OBJECTS { smonPrioStatsOverflowOctets,
+ smonPrioStatsHCOctets }
+ STATUS current
+ DESCRIPTION
+ "Defines the additional high capacity VLAN priority
+ statistics needed to be kept on interfaces with
+ ifSpeed of greater than 10MB/sec and less than or equal
+ to 100MB/sec."
+ ::= { smonMIBGroups 8 }
+
+ hcPrio100mbPlusGroup OBJECT-GROUP
+ OBJECTS { smonPrioStatsOverflowPkts,
+ smonPrioStatsHCPkts,
+ smonPrioStatsOverflowOctets,
+ smonPrioStatsHCOctets}
+ STATUS current
+ DESCRIPTION
+ "Defines the additional high capacity VLAN priority
+ statistics needed to be kept on interfaces with
+ ifSpeed of greater than 100MB/sec. These statistics MUST
+ also be kept on smonDataSources of type VLAN or
+ entPhysicalEntry."
+ ::= { smonMIBGroups 9 }
+
+ smonVlanStatsExtGroup OBJECT-GROUP
+ OBJECTS {smonVlanIdStatsNUcastOctets,
+ smonVlanIdStatsNUcastOverflowOctets,
+ smonVlanIdStatsNUcastHCOctets}
+ STATUS current
+ DESCRIPTION
+ "Defines the switch monitoring specific statistics for systems
+ capable of counting non-unicast octets for a given dataSource
+ (as described in the dataSourceRmonCaps object)."
+ ::= { smonMIBGroups 10 }
+
+ smonInformationGroup OBJECT-GROUP
+ OBJECTS { smonCapabilities }
+ STATUS current
+ DESCRIPTION
+ "An indication of the SMON capabilities supported by this
+ agent."
+ ::= { smonMIBGroups 11 }
+
+ portCopyConfigGroup OBJECT-GROUP
+ OBJECTS { portCopyDestDropEvents,
+ portCopyDirection,
+ portCopyStatus
+ }
+ STATUS current
+ DESCRIPTION
+ "Defines the control objects for copy port operations."
+ ::= { smonMIBGroups 12 }
+
+ END
diff --git a/new-mac.php b/new-mac.php
new file mode 100755
index 000000000..26768baf0
--- /dev/null
+++ b/new-mac.php
@@ -0,0 +1,112 @@
+#!/usr/bin/php
+ " . $device['hostname'] . "\n");
+ $i++;
+ $cip_oids = array('cipMacHCSwitchedBytes', 'cipMacHCSwitchedPkts');
+ foreach ($cip_oids as $oid) { $array = snmp_cache_cip($oid, $device, $array, "CISCO-IP-STAT-MIB"); }
+ echo("\n");
+}
+
+$mac_accounting_query = mysql_query("SELECT * FROM `mac_accounting` as A, `interfaces` AS I, `devices` AS D where A.interface_id = I.interface_id AND I.device_id = D.device_id AND D.status = '1'");
+while ($acc = mysql_fetch_array($mac_accounting_query)) {
+
+ $device_id = $acc['device_id'];
+ $ifIndex = $acc['ifIndex'];
+ $mac = $acc['mac'];
+ if($array[$device_id][$ifIndex][$mac]) {
+
+ $b_in = $array[$device_id][$ifIndex][$mac]['cipMacHCSwitchedBytes']['input'];
+ $b_out = $array[$device_id][$ifIndex][$mac]['cipMacHCSwitchedBytes']['output'];
+ $p_in = $array[$device_id][$ifIndex][$mac]['cipMacHCSwitchedPkts']['input'];
+ $p_out = $array[$device_id][$ifIndex][$mac]['cipMacHCSwitchedPkts']['output'];
+
+ #echo($acc['hostname']." ".$acc['ifDescr'] . " $mac -> $b_in:$b_out:$p_in:$p_out ");
+
+ $acc_rrd = $config['rrd_dir'] . "/" . $acc['hostname'] . "/mac-accounting";
+ if(!is_dir($acc_rrd)) { mkdir($acc_rrd); echo("Created directory : $acc_rrd\n"); }
+ $old_rrdfile = $acc_rrd . "/" . $acc['ifIndex'] . "-" . $acc['ip'] . ".rrd";
+ $rrdfile = $acc_rrd . "/" . $acc['ifIndex'] . "-" . $acc['mac'] . ".rrd";
+ if(is_file($old_rrdfile) && !is_file($rrdfile)) { rename($old_rrdfile, $rrdfile); echo("Moved $old_rrdfile -> $rrdfile \n"); };
+ $pkts_rrdfile = $acc_rrd . "/" . $acc['ifIndex'] . "-" . $acc['mac'] . "-pkts.rrd";
+
+ if(!is_file($pkts_rrdfile)) {
+ $woo = shell_exec($config['rrdtool'] ." create $pkts_rrdfile \
+ DS:IN:COUNTER:600:0:12500000000 \
+ DS:OUT:COUNTER:600:0:12500000000 \
+ RRA:AVERAGE:0.5:1:600 \
+ RRA:AVERAGE:0.5:6:700 \
+ RRA:AVERAGE:0.5:24:775 \
+ RRA:AVERAGE:0.5:288:797 \
+ RRA:MAX:0.5:1:600 \
+ RRA:MAX:0.5:6:700 \
+ RRA:MAX:0.5:24:775 \
+ RRA:MAX:0.5:288:797");
+ }
+
+ if(!is_file($rrdfile)) {
+ $woo = shell_exec($config['rrdtool'] ." create $rrdfile \
+ DS:IN:COUNTER:600:0:12500000000 \
+ DS:OUT:COUNTER:600:0:12500000000 \
+ RRA:AVERAGE:0.5:1:600 \
+ RRA:AVERAGE:0.5:6:700 \
+ RRA:AVERAGE:0.5:24:775 \
+ RRA:AVERAGE:0.5:288:797 \
+ RRA:MAX:0.5:1:600 \
+ RRA:MAX:0.5:6:700 \
+ RRA:MAX:0.5:24:775 \
+ RRA:MAX:0.5:288:797");
+ }
+
+ $woo = "N:".($b_in+0).":".($b_out+0);
+ $ret = rrdtool_update("$rrdfile", $woo);
+
+ $woo = "N:".($p_in+0).":".($p_out+0);
+ $ret = rrdtool_update("$pkts_rrdfile", $woo);
+
+ #echo(" R!\n");
+
+ }
+
+}
+
+echo("$i devices polled");
+
+?>
diff --git a/new-poller.php b/new-poller.php
index ab02a8274..e2a95c3f0 100755
--- a/new-poller.php
+++ b/new-poller.php
@@ -6,7 +6,7 @@ include("includes/functions.php");
if($argv[1]) { $where = "AND `device_id` = '$argv[1]'"; }
-function snmp_array($oid, $device, $array, $mib = 0) {
+function snmp_cache($oid, $device, $array, $mib = 0) {
global $config;
$cmd = $config['snmpbulkwalk'] . " -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " ";
if($mib) { $cmd .= "-m $mib "; }
@@ -23,10 +23,44 @@ function snmp_array($oid, $device, $array, $mib = 0) {
if(!strstr($this_value, "No Such Instance currently exists at this OID") && $this_index) {
$array[$device_id][$this_index][$this_oid] = $this_value;
}
+ $array[$device_id][$oid] = '1';
}
return $array;
}
+function snmp_cache_portIfIndex ($device, $array) {
+ global $config;
+ $cmd = $config['snmpwalk'] . " -CI -m CISCO-STACK-MIB -O q -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " portIfIndex";
+ $output = trim(shell_exec($cmd));
+ echo("Caching: portIfIndex\n");
+ foreach(explode("\n", $output) as $entry){
+ $entry = str_replace("CISCO-STACK-MIB::portIfIndex.", "", $entry);
+ list($slotport, $ifIndex) = explode(" ", $entry);
+ $array[$device_id][$ifIndex]['portIfIndex'] = $slotport;
+ $array[$device_id][$slotport]['ifIndex'] = $ifIndex;
+ }
+ return $array;
+}
+
+function snmp_cache_portName ($device, $array) {
+ global $config;
+ $cmd = $config['snmpwalk'] . " -CI -m CISCO-STACK-MIB -O Qs -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'].":".$device['port'] . " portName";
+ $output = trim(shell_exec($cmd));
+ echo("Caching: portName\n");
+ foreach(explode("\n", $output) as $entry){
+ $entry = str_replace("portName.", "", $entry);
+ list($slotport, $portName) = explode("=", $entry);
+ $slotport = trim($slotport); $portName = trim($portName);
+ if ($array[$device_id][$slotport]['ifIndex']) {
+ $ifIndex = $array[$device_id][$slotport]['ifIndex'];
+ $array[$device_id][$slotport]['portName'] = $portName;
+ $array[$device_id][$ifIndex]['portName'] = $portName;
+ }
+ }
+ return $array;
+}
+
+
$i = 0;
$device_query = mysql_query("SELECT * FROM `devices` WHERE `ignore` = '0' AND `disabled` = '0' AND `status` = '1' $where ORDER BY device_id DESC");
while ($device = mysql_fetch_array($device_query)) {
@@ -34,26 +68,34 @@ while ($device = mysql_fetch_array($device_query)) {
$i++;
// Build SNMP Cache Array
- $data_oids = array('ifName','ifDescr','ifAlias', 'ifAdminStatus', 'ifOperStatus', 'ifMtu', 'ifSpeed', 'ifHighSpeed', 'ifType', 'ifPhysAddress');
- $stat_oids = array('ifHCInOctets', 'ifHCOutOctets', 'ifInErrors', 'ifOutErrors', 'ifInUcastPkts', 'ifOutUcastPkts', 'ifInNUcastPkts', 'ifOutNUcastPkts');
- $etherlike_oids = array('dot3StatsAlignmentErrors', 'dot3StatsFCSErrors', 'dot3StatsSingleCollisionFrames', 'dot3StatsMultipleCollisionFrames', 'dot3StatsSQETestErrors', 'dot3StatsDeferredTransmissions', 'dot3StatsLateCollisions', 'dot3StatsExcessiveCollisions', 'dot3StatsInternalMacTransmitErrors', 'dot3StatsCarrierSenseErrors', 'dot3StatsFrameTooLongs', 'dot3StatsInternalMacReceiveErrors', 'dot3StatsSymbolErrors', 'dot3StatsDuplexStatus');
- $cisco_oids = array('locIfHardType', 'vmVlan', 'vlanTrunkPortEncapsulationOperType', 'vlanTrunkPortNativeVlan', 'locIfInRunts', 'locIfInGiants', 'locIfInCRC', 'locIfInFrame', 'locIfInOverrun', 'locIfInIgnored', 'locIfInAbort', 'locIfCollisions', 'locIfInputQueueDrops', 'locIfOutputQueueDrops');
- $pagp_oids = array('pagpOperationMode', 'pagpPortState', 'pagpPartnerDeviceId', 'pagpPartnerLearnMethod', 'pagpPartnerIfIndex', 'pagpPartnerGroupIfIndex', 'pagpPartnerDeviceName', 'pagpEthcOperationMode', 'pagpDeviceId', 'pagpGroupIfIndex');
- foreach ($data_oids as $oid) {
-# $array = snmp_array($oid, $device, $array);
- }
- foreach ($stat_oids as $oid) {
-# $array = snmp_array($oid, $device, $array);
- }
- foreach ($etherlike_oids as $oid) {
-# $array = snmp_array($oid, $device, $array, "EtherLike-MIB");
- }
- foreach ($cisco_oids as $oid) {
-# $array = snmp_array($oid, $device, $array, "CISCO-SMI:CISCO-VLAN-MEMBERSHIP-MIB:CISCO-VTP-MIB:OLD-CISCO-INTERFACES-MIB");
- }
- foreach ($pagp_oids as $oid) {
- $array = snmp_array($oid, $device, $array, "CISCO-PAGP-MIB");
- }
+ $data_oids = array('ifName','ifDescr','ifAlias', 'ifAdminStatus', 'ifOperStatus', 'ifMtu', 'ifSpeed', 'ifHighSpeed', 'ifType', 'ifPhysAddress',
+ 'ifPromiscuousMode','ifConnectorPresent');
+ $stat_oids = array('ifHCInOctets', 'ifHCOutOctets', 'ifInErrors', 'ifOutErrors', 'ifInUcastPkts', 'ifOutUcastPkts', 'ifInNUcastPkts', 'ifOutNUcastPkts',
+ 'ifHCInMulticastPkts', 'ifHCInBroadcastPkts', 'ifHCOutMulticastPkts', 'ifHCOutBroadcastPkts');
+ $etherlike_oids = array('dot3StatsAlignmentErrors', 'dot3StatsFCSErrors', 'dot3StatsSingleCollisionFrames', 'dot3StatsMultipleCollisionFrames',
+ 'dot3StatsSQETestErrors', 'dot3StatsDeferredTransmissions', 'dot3StatsLateCollisions', 'dot3StatsExcessiveCollisions',
+ 'dot3StatsInternalMacTransmitErrors', 'dot3StatsCarrierSenseErrors', 'dot3StatsFrameTooLongs', 'dot3StatsInternalMacReceiveErrors',
+ 'dot3StatsSymbolErrors', 'dot3StatsDuplexStatus');
+ $cisco_oids = array('locIfHardType', 'locIfInRunts', 'locIfInGiants', 'locIfInCRC', 'locIfInFrame', 'locIfInOverrun', 'locIfInIgnored', 'locIfInAbort',
+ 'locIfCollisions', 'locIfInputQueueDrops', 'locIfOutputQueueDrops');
+ $pagp_oids = array('pagpOperationMode', 'pagpPortState', 'pagpPartnerDeviceId', 'pagpPartnerLearnMethod', 'pagpPartnerIfIndex', 'pagpPartnerGroupIfIndex',
+ 'pagpPartnerDeviceName', 'pagpEthcOperationMode', 'pagpDeviceId', 'pagpGroupIfIndex');
+
+ $cip_oids = array('cipMacHCSwitchedBytes', 'cipMacHCSwitchedBytes', 'cipMacHCSwitchedPkts', 'cipMacHCSwitchedPkts');
+
+ $array = snmp_cache_portIfIndex ($device, $array);
+ $array = snmp_cache_portName ($device, $array);
+ foreach ($data_oids as $oid) { $array = snmp_cache($oid, $device, $array, "IF-MIB"); }
+ #foreach ($cip_oids as $oid) { $array = snmp_cache($oid, $device, $array, "CISCO-IP-STAT-MIB"); }
+ foreach ($stat_oids as $oid) { $array = snmp_cache($oid, $device, $array, "IF-MIB"); }
+ foreach ($etherlike_oids as $oid) { $array = snmp_cache($oid, $device, $array, "EtherLike-MIB"); }
+ foreach ($cisco_oids as $oid) { $array = snmp_cache($oid, $device, $array, "OLD-CISCO-INTERFACES-MIB"); }
+ foreach ($pagp_oids as $oid) { $array = snmp_cache($oid, $device, $array, "CISCO-PAGP-MIB"); }
+
+ snmp_cache("vmVlan", $device, $array, "CISCO-VLAN-MEMBERSHIP-MIB");
+ snmp_cache("vlanTrunkPortEncapsulationOperType", $device, $array, "CISCO-VTP-MIB");
+ snmp_cache("vlanTrunkPortNativeVlan", $device, $array, "CISCO-VTP-MIB");
+
// End Building SNMP Cache Array
// New interface detection
@@ -64,38 +106,57 @@ while ($device = mysql_fetch_array($device_query)) {
$port_query = mysql_query("SELECT * FROM `interfaces` WHERE `device_id` = '".$device['device_id']."'");
while ($port = mysql_fetch_array($port_query)) {
+
echo(" --> " . $port['ifDescr'] . " ");
if($array[$device[device_id]][$port[ifIndex]]) { // Check to make sure Port data is cached.
$this_port = $array[$device[device_id]][$port[ifIndex]];
- if($this_port['pagpOperationMode']) { // Check if this port has PAgP enabled.
- echo($this_port['pagpOperationMode'] ." -> " . $port['pagpOperationMode'] . " ");
+
+ /// Update IF-MIB
+ foreach ($data_oids as $oid) {
+ if ( $port[$oid] != $this_port[$oid]) {
+ $update .= $separator . "`$oid` = '".$this_port[$oid]."'";
+ $separator = ", ";
+ mysql_query("INSERT INTO eventlog (`host`, `interface`, `datetime`, `message`) VALUES ('" . $port['device_id'] . "', '" . $port['interface_id'] . "', NOW(), '".$oid . ": ".$port[$oid]." -> " . $this_port[$oid]."')");
+ #eventlog($device['device_id'], 'interface', $port['interface_id'], $oid . ": ".$port[$oid]." -> " . $this_port[$oid]);
+ echo($oid . " ");
+ }
+ }
+ /// End Update IF-MIB
+
+ /// Update PAgP
+ if($this_port['pagpOperationMode']) {
unset($separator); unset($update);
foreach ($pagp_oids as $oid) { // Loop the OIDs
if ( $this_port[$oid] != $port[$oid] ) { // If data has changed, build a query
$update .= $separator . "`$oid` = '".$this_port[$oid]."'";
$separator = ", ";
+ echo("PAgP ");
}
}
- if ($update) {
- $update_query = "UPDATE `interfaces` SET ";
- $update_query .= $update;
- $update_query .= " WHERE `interface_id` = '" . $port['interface_id'] . "'";
- @mysql_query($update_query);
- echo("PAgP ");
- unset($separator); unset($update_query); unset($update);
- }
- }
+ }
+ // End Update PAgP
+
+
+ if ($update) { /// Do Updates
+ $update_query = "UPDATE `interfaces` SET ";
+ $update_query .= $update;
+ $update_query .= " WHERE `interface_id` = '" . $port['interface_id'] . "'";
+ #@mysql_query($update_query);
+ #echo("$update_query");
+ if(mysql_affected_rows > '0') { echo("Updated "); }
+ } /// End Updates
+
+ unset($separator); unset($update_query); unset($update);
} else {
echo("Port Deleted?"); // Port missing from SNMP cache?
}
echo("\n");
}
- unset($array);
+ #unset($array);
echo("\n");
}
echo("$i devices polled");
?>
-
diff --git a/poll-mac_accounting.php b/poll-mac_accounting.php
index b2be7b4f1..cf484cb76 100755
--- a/poll-mac_accounting.php
+++ b/poll-mac_accounting.php
@@ -76,16 +76,16 @@
$woo = "N:".($pktin+0).":".($pktout+0);
$ret = rrdtool_update("$pkts_rrdfile", $woo);
- $rates = interface_rates ($rrdfile);
+# $rates = interface_rates ($rrdfile);
- $pkt_rates = interface_rates ($pkts_rrdfile);
+# $pkt_rates = interface_rates ($pkts_rrdfile);
$pkt_rate['in'] = round($pkt_rate['in'] / 8);
$pkt_rate['out'] = round($pkt_rate['out'] / 8);
- mysql_query("UPDATE `mac_accounting` SET bps_in = '" . $rates['in'] . "', bps_out = '" . $rates['out'] . "', pps_in = '" . $pkt_rates['in'] . "', pps_out = '" . $pkt_rates['out'] . "' WHERE ma_id= '" . $acc['ma_id'] . "'");
+# mysql_query("UPDATE `mac_accounting` SET bps_in = '" . $rates['in'] . "', bps_out = '" . $rates['out'] . "', pps_in = '" . $pkt_rates['in'] . "', pps_out = '" . $pkt_rates['out'] . "' WHERE ma_id= '" . $acc['ma_id'] . "'");
- echo(formatRates($rates['in']) . " (" . $pkt_rates['in'] . "pps) in " . formatRates($rates['out']) . " (" . $pkt_rates['out'] . "pps) out \n");
+# echo(formatRates($rates['in']) . " (" . $pkt_rates['in'] . "pps) in " . formatRates($rates['out']) . " (" . $pkt_rates['out'] . "pps) out \n");
}
?>