--FROM SNMP-FRAMEWORK-MIB; -- RFC 2571 -- These are from draft-ietf-ops-rfc2851-update-00.txt -- You will have to work out the details with your own -- compiler being because they are so new. --equalLogic OBJECT IDENTIFIER ::= { enterprises 12740 } -- assigned by IANA to EqualLogic. EQLBALANCER-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Integer32,TimeTicks, enterprises, IpAddress, Opaque FROM SNMPv2-SMI DateAndTime, RowPointer FROM SNMPv2-TC TruthValue, RowStatus, DisplayString FROM SNMPv2-TC eqlGroupId, UTFString FROM EQLGROUP-MIB eqlMemberIndex FROM EQLMEMBER-MIB ifIndex FROM RFC1213-MIB; eqlbalancerModule MODULE-IDENTITY LAST-UPDATED "200804150215Z" -- time is actually local time ORGANIZATION "EqualLogic Inc." CONTACT-INFO "Contact: Customer Support Postal: EqualLogic Inc 9 Townsend st., Nashua, NH 03063 Tel: +1 603-579-9762 E-mail: support@equallogic.com WEB: www.equallogic.com" DESCRIPTION "Equallogic Inc. Storage Array load balancing information Mib files packaged on Tue Apr 15 02:15:37 EDT 2008 for Storage Array Firmware V3.3.2 (R73102) Copyright (c) 2002, 2004 by EqualLogic, Inc. All rights reserved. This software may not be copied, disclosed, transferred, or used except in accordance with a license granted by EqualLogic, Inc. This software embodies proprietary information and trade secrets of EqualLogic, Inc. " -- Revision history, in reverse chronological order REVISION "200306300000Z" -- 03-June-30 DESCRIPTION "Initial revision" ::= { enterprises equalLogic(12740) 13 } eqlbalancerObjects OBJECT IDENTIFIER ::= { eqlbalancerModule 1 } eqlbalancerNotifications OBJECT IDENTIFIER ::= { eqlbalancerModule 2 } eqlbalancerConformance OBJECT IDENTIFIER ::= { eqlbalancerModule 3 } --*********************************************************************************** -- The Balancer Config Group eqlbalancerConfigGroup OBJECT IDENTIFIER ::= { eqlbalancerObjects 1 } eqlbalancerConfigNumKeepSamples OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "Determines the number of samples to keep around." DEFVAL {3} ::= { eqlbalancerConfigGroup 1 } eqlbalancerConfigIFSampleFrequency OBJECT-TYPE SYNTAX Unsigned32 UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "Determines how frequently the connection balancer examines the interfaces on each PSA" DEFVAL {5} ::= { eqlbalancerConfigGroup 2 } eqlbalancerConfigConnectionSampleFrequency OBJECT-TYPE SYNTAX Unsigned32 UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "Determines how frequenctly the connection balancer examines the connections on each PSA" DEFVAL {15} ::= { eqlbalancerConfigGroup 3 } eqlbalancerConfigBalanceFrequency OBJECT-TYPE SYNTAX Unsigned32 UNITS "minutes" MAX-ACCESS read-write STATUS current DESCRIPTION "Determines how frequently the samples are evaluated and a potential balancing decision made" DEFVAL {15} ::= { eqlbalancerConfigGroup 4 } eqlbalancerConfigEnabled OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "Determines whether or not the connection balancer is enabled" DEFVAL {true} ::= { eqlbalancerConfigGroup 5 } --*********************************************************************************** eqlbalancerIFTable OBJECT-TYPE SYNTAX SEQUENCE OF EqlbalancerIFEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "EqualLogic-Persistent Connection Balancer Interface Statistics This table contains a statistics samplings for each interface in a member and for all members in a group." ::= { eqlbalancerObjects 2 } eqlbalancerIFEntry OBJECT-TYPE SYNTAX EqlbalancerIFEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (row) containing interface statistics." INDEX { eqlMemberIndex , ifIndex , eqlbalancerSample } ::= { eqlbalancerIFTable 1} EqlbalancerIFEntry ::= SEQUENCE { eqlbalancerSample Unsigned32, eqlbalancerSampleTimeStamp Unsigned32, eqlbalancerMegaBytesTransmitted Unsigned32, eqlbalancerMegaBytesReceived Unsigned32, eqlbalancerNumConnections Unsigned32, eqlbalancerNegotiatedSpeed Unsigned32, eqlbalancerFullDuplex TruthValue, eqlbalancerLoadValue Unsigned32 } eqlbalancerSample OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "An integer value explaining which sample this is, range is 1 to NumKeep" ::= { eqlbalancerIFEntry 1 } eqlbalancerSampleTimeStamp OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "Makes each sample unique by keeping the seconds since epoch this sample was taken" ::= { eqlbalancerIFEntry 2 } eqlbalancerMegaBytesTransmitted OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Number of bytes transferred in this sampling period." ::= { eqlbalancerIFEntry 3 } eqlbalancerMegaBytesReceived OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Number of bytes received in this sampling period." ::= { eqlbalancerIFEntry 4 } eqlbalancerNumConnections OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Number of connections at the time this sample was taken" ::= { eqlbalancerIFEntry 5 } eqlbalancerNegotiatedSpeed OBJECT-TYPE SYNTAX Unsigned32 (0..1000) UNITS "Megabits per second" MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Negotiated wirespeed of this interface at the time of sampling" DEFVAL {0} ::= { eqlbalancerIFEntry 6 } eqlbalancerFullDuplex OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY True if the interface has negotiated full-duplex, false if not" DEFVAL {false} ::= { eqlbalancerIFEntry 7 } eqlbalancerLoadValue OBJECT-TYPE SYNTAX Unsigned32 (0..100) MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Calculated value of how busy this interface is. 0 is the 100% busy and 100 is 0% busy." DEFVAL {0} ::= { eqlbalancerIFEntry 8 } --*********************************************************************************** eqlbalancerConnTable OBJECT-TYPE SYNTAX SEQUENCE OF EqlbalancerConnEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "EqualLogic-Persistent Connection Balancer Connection Statistics This table contains a statistics samplings for each connection in a member and for all members in a group." ::= { eqlbalancerObjects 3 } eqlbalancerConnEntry OBJECT-TYPE SYNTAX EqlbalancerConnEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (row) containing connection statistics." INDEX { eqlMemberIndex , eqlbalancerConnVolumeId , eqlbalancerConnSessionId , eqlbalancerConnSample } ::= { eqlbalancerConnTable 1} EqlbalancerConnEntry ::= SEQUENCE { eqlbalancerConnSessionId Unsigned32, eqlbalancerConnVolumeId OCTET STRING, eqlbalancerConnSample Unsigned32, eqlbalancerConnSampleTimeStamp Unsigned32, eqlbalancerConnMegaBytesTransmitted Unsigned32, eqlbalancerConnMegaBytesReceived Unsigned32, eqlbalancerConnRoutingTooMuch TruthValue, eqlbalancerConnLoadValue Unsigned32, eqlbalancerConnIFIndex Unsigned32, eqlbalancerConnRouteMembers Opaque, eqlbalancerConnMegaBytesRouted Opaque, eqlbalancerConnTotalMegaBytesRouted Unsigned32 } eqlbalancerConnSessionId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "The iSCSI session id for this connection" ::= { eqlbalancerConnEntry 1 } eqlbalancerConnVolumeId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The volume ID for which this session is connected to" ::= { eqlbalancerConnEntry 2 } eqlbalancerConnSample OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "EQL-SECONDARY-KEY Internal identifier describing which sample this is. The 1st sample is always a place holder with nothing but the index valid" ::= { eqlbalancerConnEntry 3 } eqlbalancerConnSampleTimeStamp OBJECT-TYPE SYNTAX Unsigned32 UNITS "seconds" MAX-ACCESS not-accessible STATUS current DESCRIPTION "What time was this sample taken" ::= { eqlbalancerConnEntry 4 } eqlbalancerConnMegaBytesTransmitted OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Number of bytes transferred in this sampling period." ::= { eqlbalancerConnEntry 5 } eqlbalancerConnMegaBytesReceived OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Number of bytes received in this sampling period." ::= { eqlbalancerConnEntry 6 } eqlbalancerConnRoutingTooMuch OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY True if this session seems to be routing too much traffic" DEFVAL {false} ::= { eqlbalancerConnEntry 7 } eqlbalancerConnLoadValue OBJECT-TYPE SYNTAX Unsigned32 (0..100) MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Calculated value of how busy this connection is. 0 is 100% busy, 100 is 0% busy" DEFVAL {0} ::= { eqlbalancerConnEntry 8 } eqlbalancerConnIFIndex OBJECT-TYPE SYNTAX Unsigned32 (0..3) MAX-ACCESS read-only STATUS current DESCRIPTION " Identifies which index this connection was connected to" ::= { eqlbalancerConnEntry 9 } eqlbalancerConnRouteMembers OBJECT-TYPE SYNTAX Opaque (SIZE (64)) MAX-ACCESS read-only STATUS current DESCRIPTION "List of members who are participating in this volume. This is sizeof(uint32_t) * VOLUME_MAX_PSS_COUNT defined in MgmtPDU.h" ::= { eqlbalancerConnEntry 10 } eqlbalancerConnMegaBytesRouted OBJECT-TYPE SYNTAX Opaque (SIZE (64)) MAX-ACCESS read-only STATUS current DESCRIPTION "Megabytes routed to each member. This is a 1 to 1 relation to the RouteMembers array. This is sizeof(uint32_t) * VOLUME_MAX_PSS_COUNT defined in MgmtPDU.h" ::= { eqlbalancerConnEntry 11 } eqlbalancerConnTotalMegaBytesRouted OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "Total megabytes routed to each member" ::= { eqlbalancerConnEntry 12 } --*********************************************************************************** eqlbalancerConnAvgTable OBJECT-TYPE SYNTAX SEQUENCE OF EqlbalancerConnAvgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "EqualLogic-Persistent Connection Balancer Eligible Connection list This table contains the listing of connections that have seen that other interfaces exist and are therefore eligible to be moved" ::= { eqlbalancerObjects 4 } eqlbalancerConnAvgEntry OBJECT-TYPE SYNTAX EqlbalancerConnAvgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (row) containing an eligible connection." INDEX { eqlMemberIndex , ifIndex , eqlbalancerConnVolumeId , eqlbalancerConnSessionId } ::= { eqlbalancerConnAvgTable 1 } EqlbalancerConnAvgEntry ::= SEQUENCE { eqlbalancerConnAvgRoutingTooMuch TruthValue, eqlbalancerConnAvgLoadValue Unsigned32, eqlbalancerMembers Opaque, eqlbalancerRouteStats Opaque, eqlbalancerInitiatorName UTFString, eqlbalancerConnAvgUptime Unsigned32, eqlbalancerInitiatorAddr IpAddress, eqlbalancerMeshAndConnOnSameIF TruthValue, eqlbalancerNotOnSameSubnet TruthValue } eqlbalancerConnAvgRoutingTooMuch OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY True if this session seems to be routing too much traffic" DEFVAL {false} ::= { eqlbalancerConnAvgEntry 1 } eqlbalancerConnAvgLoadValue OBJECT-TYPE SYNTAX Unsigned32 (0..100) MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Calculated value of how busy this connection is. 0 is 100% busy, 100 is 0% busy" DEFVAL {0} ::= { eqlbalancerConnAvgEntry 2 } eqlbalancerMembers OBJECT-TYPE SYNTAX Opaque (SIZE (64)) MAX-ACCESS read-only STATUS current DESCRIPTION "List of eligible member id's. This is sizeof(uint32_t) * VOLUME_MAX_PSS_COUNT defined in MgmtPDU.h" ::= { eqlbalancerConnAvgEntry 3 } eqlbalancerRouteStats OBJECT-TYPE SYNTAX Opaque (SIZE (64)) MAX-ACCESS read-only STATUS current DESCRIPTION "Array of the percentage of traffic being routed to each member. This is a 1 to 1 relationship to the Members array. This is sizeof(uint32_t) * VOLUME_MAX_PSS_COUNT defined in MgmtPDU.h" ::= { eqlbalancerConnAvgEntry 4 } eqlbalancerInitiatorName OBJECT-TYPE SYNTAX UTFString (SIZE (0..223)) MAX-ACCESS read-only STATUS current DESCRIPTION "Name of the initiator for this connection." ::= { eqlbalancerConnAvgEntry 5 } eqlbalancerConnAvgUptime OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION " How long has this connection been alive." ::= { eqlbalancerConnAvgEntry 6 } eqlbalancerInitiatorAddr OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION " IP Address of the connected initiator" ::= { eqlbalancerConnAvgEntry 7 } eqlbalancerMeshAndConnOnSameIF OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "True if this session has it's iSCSI connection and mesh connection on the same interface. This will only be true if another interface is available on the same PSA" DEFVAL {false} ::= { eqlbalancerConnAvgEntry 8 } eqlbalancerNotOnSameSubnet OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY True if this session is not on an interface with an exact subnet match and an exact subnet match exists within the group" DEFVAL {false} ::= { eqlbalancerConnAvgEntry 9 } --*********************************************************************************** eqlbalancerHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF EqlbalancerHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "EqualLogic-Persistent Connection Balancer history. This table contains the details on connections that were logged out and why they were logged out" ::= { eqlbalancerObjects 5 } eqlbalancerHistoryEntry OBJECT-TYPE SYNTAX EqlbalancerHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (row) containing details of a logout command and why we did it." INDEX { eqlMemberIndex , ifIndex , eqlbalancerConnVolumeId , eqlbalancerConnSessionId , eqlbalancerInitiatorName , eqlbalancerSampleTimeStamp} ::= { eqlbalancerHistoryTable 1 } EqlbalancerHistoryEntry ::= SEQUENCE { eqlbalancerHistoryExplanation INTEGER } eqlbalancerHistoryExplanation OBJECT-TYPE SYNTAX INTEGER { routing-too-much(1), available-interface(2), interface-connection-count-balance(3), mesh-optimization(4), subnet-optimization(5), volume-optimization(6) } MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Why did we logout this connection" ::= { eqlbalancerHistoryEntry 1 } --*********************************************************************************** eqlbalancerWantToMoveConnTable OBJECT-TYPE SYNTAX SEQUENCE OF EqlbalancerWantToMoveConnEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "EqualLogic-Persistent Connection Balancer desired connections to move. This table contains the details on connections that each balancer would like to move. All balancer's must agree." ::= { eqlbalancerObjects 6 } eqlbalancerWantToMoveConnEntry OBJECT-TYPE SYNTAX EqlbalancerWantToMoveConnEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (row) containing details of a desired connection to move." INDEX { eqlMemberIndex , ifIndex , eqlbalancerConnVolumeId , eqlbalancerConnSessionId , eqlbalancerBalancer , eqlbalancerInitiatorName } ::= { eqlbalancerWantToMoveConnTable 1 } EqlbalancerWantToMoveConnEntry ::= SEQUENCE { eqlbalancerBalancer INTEGER, eqlbalancerWantToMoveInitiatorAddr IpAddress, eqlbalancerWantToMoveExplanation INTEGER } eqlbalancerBalancer OBJECT-TYPE SYNTAX INTEGER { routing(1), subnet(2), interface(3), volume(4), connection-count(5) } MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Which balancer decided it was a good idea to move this connection" ::= { eqlbalancerWantToMoveConnEntry 1 } eqlbalancerWantToMoveInitiatorAddr OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY IP Address for the initiator that owns this connection" ::= { eqlbalancerWantToMoveConnEntry 2 } eqlbalancerWantToMoveExplanation OBJECT-TYPE SYNTAX INTEGER { no-details(1), mesh-optimization(2), subnet-optimization(3), volume-optimization(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "More details on why this connection was logged out" ::= { eqlbalancerWantToMoveConnEntry 3 } --*********************************************************************************** eqlbalancerLoginPreferenceTable OBJECT-TYPE SYNTAX SEQUENCE OF EqlbalancerLoginPreferenceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "EqualLogic-Persistent Connection Balancer preferred PSA table. When the balancer balances a connection it may write an entry here describing the preferred PSA to log that connection into upon relogin." ::= { eqlbalancerObjects 7 } eqlbalancerLoginPreferenceEntry OBJECT-TYPE SYNTAX EqlbalancerLoginPreferenceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (row) containing details of a login preference." INDEX { eqlbalancerConnVolumeId , eqlbalancerInitiatorName } ::= { eqlbalancerLoginPreferenceTable 1 } EqlbalancerLoginPreferenceEntry ::= SEQUENCE { eqlbalancerLoginPreferenceTimeStamp Unsigned32, eqlbalancerLoginPreferencePreferredMembers Opaque, eqlbalancerLoginPreferencePreferredMembersLoad Opaque } eqlbalancerLoginPreferenceTimeStamp OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "EQL-SECONDARY-KEY Time this preference was made. LoginPreference entries are are only good for some amount of time." ::= { eqlbalancerLoginPreferenceEntry 1 } eqlbalancerLoginPreferencePreferredMembers OBJECT-TYPE SYNTAX Opaque (SIZE (64)) MAX-ACCESS read-only STATUS current DESCRIPTION "Array of preferred member in order of preferrence. This is sizeof(uint32_t) * VOLUME_MAX_PSS_COUNT defined in MgmtPDU.h" ::= { eqlbalancerLoginPreferenceEntry 2 } eqlbalancerLoginPreferencePreferredMembersLoad OBJECT-TYPE SYNTAX Opaque (SIZE (64)) MAX-ACCESS read-only STATUS current DESCRIPTION "Percentage of the load that the corresponding PreferredMembers were experiencing at time of preference. This is used to determine how much we should really prefer a specific member This is sizeof(uint32_t) * VOLUME_MAX_PSS_COUNT defined in MgmtPDU.h" ::= { eqlbalancerLoginPreferenceEntry 3 } ------------------------------------------------------------------------------------------------ END