#-MIBFILE: switch.mib

SnetSwitch-MIB DEFINITIONS ::= BEGIN


DisplayString ::=
	OCTET STRING

PhysAddress ::=
	OCTET STRING

tandem OBJECT IDENTIFIER ::= { enterprises 169 }

serverNet OBJECT IDENTIFIER ::= { tandem 8 }

serverNetSwitch OBJECT IDENTIFIER ::= { serverNet 3 }

snetSwitchNetworkData OBJECT IDENTIFIER ::= { serverNetSwitch 1 }

snetSwitchTrapEnables OBJECT IDENTIFIER ::= { snetSwitchNetworkData 7 }

snetSwitchInfo OBJECT IDENTIFIER ::= { serverNetSwitch 2 }

snetSwitchConfigData OBJECT IDENTIFIER ::= { snetSwitchInfo 1 }

snetSwitchPortData OBJECT IDENTIFIER ::= { snetSwitchInfo 2 }

snetSwitchRoutingData OBJECT IDENTIFIER ::= { snetSwitchInfo 3 }

snetSwitchPerformanceData OBJECT IDENTIFIER ::= { snetSwitchInfo 4 }

snetSwitchErrorStatusData OBJECT IDENTIFIER ::= { snetSwitchInfo 5 }

snetSwitchTotal OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The number of ServerNet Switches (regardless of state)
known in the network. X and Y fabric switches are
considered separate switches in this Total count."
	::= { snetSwitchNetworkData 1 }


snetSwitchRefreshTime OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies the minimum time in seconds between refreshes
of Mib data. Mib data is refreshed each time it is requested 
unless the refresh interval time has not yet been reached. 
If the specified time interval has not elapsed, the mib data
will be retrieved from cache.  Minimum time is 5 seconds.  
Default is 60 seconds.  Changing this to a low value can have 
a negative impact on performance.  Changing this to a high
value could allow mib data to become outdated."
	::= { snetSwitchNetworkData 2 }


snetSwitchMibRevMajor OBJECT-TYPE
	SYNTAX INTEGER (1..65535)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The Major Revision level of the Switch MIB.

A change in the major revision level represents a major change
in the architecture of the MIB.  A change in the major revision
level may indicate a significant change in the information
supported and/or the meaning of the supported information.
Correct interpretation of data may require a MIB document with
the same major revision level."
	::= { snetSwitchNetworkData 3 }


snetSwitchMibRevMinor OBJECT-TYPE
	SYNTAX INTEGER (0..65535)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The Minor Revision level of the Switch MIB.

A change in the minor revision level may represent some minor
additional support, no changes to any pre-existing information
has occurred."
	::= { snetSwitchNetworkData 4 }


snetSwitchIDTable OBJECT-TYPE
	SYNTAX SEQUENCE OF SnetSwitchIDEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Table containing the Switch IDs of all switches
known in the network."
	::= { snetSwitchNetworkData 5 }


snetSwitchIDEntry OBJECT-TYPE
	SYNTAX SnetSwitchIDEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Entry in switch table    "
	INDEX { snetSwitchIDIndex  }

	::= { snetSwitchIDTable 1 }

snetSwitchIDEntry ::=
	SEQUENCE {
		snetSwitchIDIndex INTEGER,
		snetSwitchID DisplayString,
		snetSwitchType INTEGER
		}

snetSwitchIDIndex OBJECT-TYPE
	SYNTAX INTEGER (1..1000)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Index in Switch ServerNet ID Entry Table."
	::= { snetSwitchIDEntry 1 }


snetSwitchID OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Switch ID. The switch id is displayed
as a hexidecimal value. "
	::= { snetSwitchIDEntry 2 }


snetSwitchType OBJECT-TYPE
	SYNTAX INTEGER {
	sixport(1),
	twelveport(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the Switch type. Switch can be either a 
6-port or 12-port switch. "
	::= { snetSwitchIDEntry 3 }


snetSwitchSANMapTable OBJECT-TYPE
	SYNTAX SEQUENCE OF SnetSwitchSANMapEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Table containing the System Area Network map information.
This table has an entry for each switch in the network as
indexed by the snetSwitchIDIndex from the snetSwitchIDtable.
There is a separate entry for each port defined on 
the switch."
	::= { snetSwitchNetworkData 6 }


snetSwitchSANMapEntry OBJECT-TYPE
	SYNTAX SnetSwitchSANMapEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Entry in SAN Map table. "
	INDEX { snetSwitchIDIndex , snetSwitchSANMapPortIndex }

	::= { snetSwitchSANMapTable 1 }

snetSwitchSANMapEntry ::=
	SEQUENCE {
		snetSwitchSANMapPortIndex INTEGER,
		snetSwitchSANNodeType INTEGER,
		snetSwitchSANNodeState INTEGER,
		snetSwitchSANNodeDomain DisplayString,
		snetSwitchSANNodeID DisplayString,
		snetSwitchSANNodeName DisplayString,
		snetSwitchSANNodeFabric INTEGER,
		snetSwitchSANNodeManufacturingID DisplayString,
		snetSwitchSANNodePartNumber DisplayString,
		snetSwitchSANNodeSerialNumber DisplayString
		}

snetSwitchSANMapPortIndex OBJECT-TYPE
	SYNTAX INTEGER (0..11)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the switch port number. "
	::= { snetSwitchSANMapEntry 1 }


snetSwitchSANNodeType OBJECT-TYPE
	SYNTAX INTEGER {
	unknown(1),
	endNode(2),
	autoConfiguredIO(3),
	manualConfiguredIO(4),
	switch(5)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the type of the Node connected to the switch.
Valid values are
Unknown(1), 
End Node(2), 
Auto-Configured IO(3), 
Manual-Configured IO(4),
Switch(5). "
	::= { snetSwitchSANMapEntry 2 }


snetSwitchSANNodeState OBJECT-TYPE
	SYNTAX INTEGER {
	unConfigured(1),
	configured(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the current state of the Node connected to the
switch. Valid values are 
Unconfigured(1),
Configured(2). "
	::= { snetSwitchSANMapEntry 3 }


snetSwitchSANNodeDomain OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the domain the node belongs to.  If the port
is not configured, Domain will be blank. "
	::= { snetSwitchSANMapEntry 4 }


snetSwitchSANNodeID OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "For end nodes, this is the Node ID.  For switches, this is
a Switch ID.  If port is not configured, NodeID will be 0."
	::= { snetSwitchSANMapEntry 5 }


snetSwitchSANNodeName OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The ServerNet node name.  If the port is not configured, 
NodeName will be blank. "
	::= { snetSwitchSANMapEntry 6 }


snetSwitchSANNodeFabric OBJECT-TYPE
	SYNTAX INTEGER {
	xFabric(1),
	yFabric(2),
	bothFabrics(3),
	notDefined(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the X or Y Fabric this node connects to.
X Fabric(1), 
Y Fabric(2), 
Both Fabrics(3), 
Not Defined(4). "
	::= { snetSwitchSANMapEntry 7 }


snetSwitchSANNodeManufacturingID OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The Manufacturing ID of connected switch or node. "
	::= { snetSwitchSANMapEntry 8 }


snetSwitchSANNodePartNumber OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Part Number of connected switch or node. "
	::= { snetSwitchSANMapEntry 9 }


snetSwitchSANNodeSerialNumber OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Serial Number of connected switch or node. "
	::= { snetSwitchSANMapEntry 10 }


snetSwitchLinkAliveTrapEnable OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " Enables Link Alive Trap generation. Asynchronous events 
can be generated by the switch whenever a change in 
link alive is detected.  
Valid values are 
off(0), 
on(1)  (default)."
	::= { snetSwitchTrapEnables 1 }


snetSwitchNeighborChgTrapEnable OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " Enables Neighbor Change Trap generation.  Asynchronous 
events can be generated by the switch whenever a change in
neighbor id is detected. 
Valid values are 
off(0), 
on(1)  (default)."
	::= { snetSwitchTrapEnables 2 }


snetSwitchThresholdErrorTrapEnable OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " Enables Link/Packet Error Trap generation.  Asynchronous 
events can be generated by the switch whenever a link, 
packet, or IBC errors have exceeded a pre-defined threshold. 
Valid values are 
off(0), 
on(1)  (default)."
	::= { snetSwitchTrapEnables 3 }


snetSwitchAccessViolationTrapEnable OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " Enables AccessViolation Trap generation.  Asynchronous events can be
generated by the switch whenever a packet is received from an
unknown ServerNet ID. 
Valid values are 
off(0), 
on(1)  (default)."
	::= { snetSwitchTrapEnables 4 }


snetSwitchTakeoverTrapEnable OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " Enables notification of switch takeover Trap generation.  Asynchronous 
events can be generated by the switch whenever the switch
ownership changes. 
Valid values are 
off(0), 
on(1)  (default)."
	::= { snetSwitchTrapEnables 5 }


snetSwitchSWFWTrapEnable OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " Enables generation of firmware upgrade traps.  Asynchronous events can be
generated by the administrative node whenever a firmware upgrade of the
switch occurs.  
Valid values are 
off(0), 
on(1)  (default)."
	::= { snetSwitchTrapEnables 6 }


snetSwitchPrimarySANManSNetID OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the ServerNet ID of the current primary
administrative node in the ServerNet SAN. "
	::= { snetSwitchNetworkData 8 }


snetSwitchBackupSANManSNetID OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the ServerNet ID of the current backup
administrative node in the ServerNet SAN. "
	::= { snetSwitchNetworkData 9 }


snetSwitchFailoverEventType OBJECT-TYPE
	SYNTAX INTEGER {
	noFailoversDetected(1),
	backupNotReachable(2),
	backupTookOver(3),
	primaryNotReachable(4),
	primaryTookOver(5)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Indicates the most recent failover event type. 
Valid values include
NoFailoversDetected(1), 
BackupNotReachable(2), 
BackupTookOver(3),
PrimaryNotReachable(4),
PrimaryTookOver(5). "
	::= { snetSwitchNetworkData 10 }


snetSwitchPrimarySANManName OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Name of the current primary administrative node in the ServerNet SAN. "
	::= { snetSwitchNetworkData 11 }


snetSwitchBackupSANManName OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Name of the current backup administrative node in the ServerNet SAN. "
	::= { snetSwitchNetworkData 12 }


snetSwitchConfigTable OBJECT-TYPE
	SYNTAX SEQUENCE OF SnetSwitchConfigEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "ServerNet Switch Configuration data."
	::= { snetSwitchConfigData 1 }


snetSwitchConfigEntry OBJECT-TYPE
	SYNTAX SnetSwitchConfigEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An entry containing ServerNet Switch configuration data."
	INDEX { snetSwitchIDIndex  }

	::= { snetSwitchConfigTable 1 }

snetSwitchConfigEntry ::=
	SEQUENCE {
		snetSwitchSnetID DisplayString,
		snetSwitchManufacturingID DisplayString,
		snetSwitchPartNumber DisplayString,
		snetSwitchSerialNumber DisplayString,
		snetSwitchHWMajorRev INTEGER,
		snetSwitchHWMinorRev INTEGER,
		snetSwitchFWRelease INTEGER,
		snetSwitchFWMajorRev INTEGER,
		snetSwitchFWMinorRev INTEGER,
		snetSwitchSANManSNetID DisplayString,
		snetSwitchState INTEGER,
		snetSwitchDomain DisplayString,
		snetSwitchName DisplayString,
		snetSwitchFabric INTEGER
		}

snetSwitchSnetID OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Switch Identifier.  The switch id is displayed as a hexidecimal value. "
	::= { snetSwitchConfigEntry 1 }


snetSwitchManufacturingID OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The Manufacturing ID "
	::= { snetSwitchConfigEntry 2 }


snetSwitchPartNumber OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Switch Part Number "
	::= { snetSwitchConfigEntry 3 }


snetSwitchSerialNumber OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Switch Serial Number "
	::= { snetSwitchConfigEntry 4 }


snetSwitchHWMajorRev OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Switch Hardware Major Revision "
	::= { snetSwitchConfigEntry 5 }


snetSwitchHWMinorRev OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Switch Hardware Minor Revision"
	::= { snetSwitchConfigEntry 6 }


snetSwitchFWRelease OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Switch Firmware Release"
	::= { snetSwitchConfigEntry 7 }


snetSwitchFWMajorRev OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Switch Firmware Major Revision"
	::= { snetSwitchConfigEntry 8 }


snetSwitchFWMinorRev OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Switch Firmware Minor Revision"
	::= { snetSwitchConfigEntry 9 }


snetSwitchSANManSNetID OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "ServerNet ID of the primary administrative node. "
	::= { snetSwitchConfigEntry 10 }


snetSwitchState OBJECT-TYPE
	SYNTAX INTEGER {
	unConfigured(1),
	configured(2)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the current state of the Switch. 
Unconfigured(1),
Configured(2). "
	::= { snetSwitchConfigEntry 11 }


snetSwitchDomain OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The domain the switch belongs to.  If no domain is defined,
the default is blank. "
	::= { snetSwitchConfigEntry 12 }


snetSwitchName OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The switch name. If no name is defined, this field
will be blank. "
	::= { snetSwitchConfigEntry 13 }


snetSwitchFabric OBJECT-TYPE
	SYNTAX INTEGER {
	xFabric(1),
	yFabric(2),
	bothFabrics(3),
	notDefined(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the X or Y Fabric this node connects to.
X Fabric(1),
Y Fabric(2), 
Both Fabrics(3), 
Not Defined(4). "
	::= { snetSwitchConfigEntry 14 }


snetSwitchPortErrorStatusTable OBJECT-TYPE
	SYNTAX SEQUENCE OF SnetSwitchPortErrorStatusEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Table containing error and status information for each
of the configured ports."
	::= { snetSwitchPortData 1 }


snetSwitchPortErrorStatusEntry OBJECT-TYPE
	SYNTAX SnetSwitchPortErrorStatusEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A table of per-port error and status data"
	INDEX { snetSwitchIDIndex , snetSwitchPortErrorStatusIndex }

	::= { snetSwitchPortErrorStatusTable 1 }

snetSwitchPortErrorStatusEntry ::=
	SEQUENCE {
		snetSwitchPortErrorStatusIndex INTEGER,
		snetSwitchLinkErrorCounter Counter,
		snetSwitchPacketErrorCounter Counter,
		snetSwitchIBCErrorCounter Counter,
		snetSwitchPortStatus INTEGER,
		snetSwitchDaughterCardType INTEGER,
		snetSwitchDaughterCardStatus INTEGER
		}

snetSwitchPortErrorStatusIndex OBJECT-TYPE
	SYNTAX INTEGER (0..11)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Identifies the switch port number. "
	::= { snetSwitchPortErrorStatusEntry 1 }


snetSwitchLinkErrorCounter OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Number of link errors which have occurred on the selected port. "
	::= { snetSwitchPortErrorStatusEntry 2 }


snetSwitchPacketErrorCounter OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Number of packet errors which have occurred on the selected port. "
	::= { snetSwitchPortErrorStatusEntry 3 }


snetSwitchIBCErrorCounter OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Number of IBC errors which have occurred on the selected port. "
	::= { snetSwitchPortErrorStatusEntry 4 }


snetSwitchPortStatus OBJECT-TYPE
	SYNTAX INTEGER {
	unavailable(1),
	uninstalled(2),
	noLinkAlive(3),
	alive(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Current state of the specified port.
Valid values are  
Unavailable(1), 
Uninstalled(2), 
NoLinkAlive(3), 
Alive(4). "
	::= { snetSwitchPortErrorStatusEntry 5 }


snetSwitchDaughterCardType OBJECT-TYPE
	SYNTAX INTEGER {
	unknown(1),
	other(2),
	notPresent(3),
	lvds(4),
	fiberChannel(5),
	copperSerial(6),
	longHaulOptical(7),
	shortHaulOptical(8),
	ecl(9)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Daughter card type installed on the specified port.
Valid values are  
Unknown(1), (port can't be reached)
Other (2), (daughter board installed but type not defined)  
Not Present(3), (no daughter board installed) 
LVDS(4),  (Low Voltage Differential Signal)
Fiber Channel(5),
Copper Serial(6),
Long Haul Optical (7),
Short Haul Optical (8),
ECL (9),(Emitter Coupled Logic). "
	::= { snetSwitchPortErrorStatusEntry 6 }


snetSwitchDaughterCardStatus OBJECT-TYPE
	SYNTAX INTEGER {
	notProvided(1),
	cableConnected(2),
	cableNotTerminated(3)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Current status of the specified daughter card
Valid values are  
Not Provided(1), (some daughter cards do not provide a status)
Cable Connected (2), 
Cable Not Terminated(3). "
	::= { snetSwitchPortErrorStatusEntry 7 }


snetSwitchRoutingTable OBJECT-TYPE
	SYNTAX SEQUENCE OF SnetSwitchRoutingTableEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The routing table is 1024 entries "
	::= { snetSwitchRoutingData 1 }


snetSwitchRoutingTableEntry OBJECT-TYPE
	SYNTAX SnetSwitchRoutingTableEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The routing table entry has an index and a port address."
	INDEX { snetSwitchIDIndex , snetSwitchRoutingTableIndex }

	::= { snetSwitchRoutingTable 1 }

snetSwitchRoutingTableEntry ::=
	SEQUENCE {
		snetSwitchRoutingTableIndex INTEGER,
		snetSwitchDest INTEGER
		}

snetSwitchRoutingTableIndex OBJECT-TYPE
	SYNTAX INTEGER (1..1024)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "ServerNet Switch Routing Table Index.

An index into the routing table."
	::= { snetSwitchRoutingTableEntry 1 }


snetSwitchDest OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A port address."
	::= { snetSwitchRoutingTableEntry 2 }


snetSwitchRoutingLeafTable OBJECT-TYPE
	SYNTAX SEQUENCE OF SnetSwitchRoutingLeafTableEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The routing table is 64 entries "
	::= { snetSwitchRoutingData 2 }


snetSwitchRoutingLeafTableEntry OBJECT-TYPE
	SYNTAX SnetSwitchRoutingLeafTableEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The routing table entry has an index and a port address."
	INDEX { snetSwitchIDIndex , snetSwitchRoutingLeafTableIndex }

	::= { snetSwitchRoutingLeafTable 1 }

snetSwitchRoutingLeafTableEntry ::=
	SEQUENCE {
		snetSwitchRoutingLeafTableIndex INTEGER,
		snetSwitchLeafDest INTEGER
		}

snetSwitchRoutingLeafTableIndex OBJECT-TYPE
	SYNTAX INTEGER (1..64)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "ServerNet Switch Routing Leaf Table Index.

An index into the routing table."
	::= { snetSwitchRoutingLeafTableEntry 1 }


snetSwitchLeafDest OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "A port address."
	::= { snetSwitchRoutingLeafTableEntry 2 }

snetSwitchLeafDest ::=
	SEQUENCE {
		snetSwitchPerfType1 INTEGER,
		snetSwitchPerfType2 INTEGER,
		snetSwitchPerfInPort1 INTEGER(0..11),
		snetSwitchPerfOutPort1 INTEGER(0..11),
		snetSwitchPerfInPort2 INTEGER(0..11),
		snetSwitchPerfOutPort2 INTEGER(0..11),
		snetSwitchPerfTimerSelect INTEGER,
		snetSwitchPerfTimerInterval INTEGER,
		snetSwitchPerfStart INTEGER,
		snetSwitchPerfStatus INTEGER,
		snetSwitchPerfElapsedTime INTEGER,
		snetSwitchPerfCounter1 Counter,
		snetSwitchPerfCounter2 Counter
		}

snetSwitchPerfTable OBJECT-TYPE
	SYNTAX SEQUENCE OF SnetSwitchPerfTableEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The switch performance data. "
	::= { snetSwitchPerformanceData 1 }


snetSwitchPerfTableEntry OBJECT-TYPE
	SYNTAX SnetSwitchPerfTableEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An entry in the performance table.  Performance data is
maintained per switch."
	INDEX { snetSwitchIDIndex  }

	::= { snetSwitchPerfTable 1 }


snetSwitchPerfType1 OBJECT-TYPE
	SYNTAX INTEGER (0..33)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Selects the type of performance count to be run in counter 1."
	::= { snetSwitchPerfTableEntry 1 }


snetSwitchPerfType2 OBJECT-TYPE
	SYNTAX INTEGER (0..27)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Selects the type of performance count to be run in counter 2."
	::= { snetSwitchPerfTableEntry 2 }


snetSwitchPerfInPort1 OBJECT-TYPE
	SYNTAX INTEGER (0..11)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Input port to be used for performance counts for Performance Counter 1."
	::= { snetSwitchPerfTableEntry 3 }


snetSwitchPerfOutPort1 OBJECT-TYPE
	SYNTAX INTEGER (0..11)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Output port to be used for performance counts for Performance Counter 1."
	::= { snetSwitchPerfTableEntry 4 }


snetSwitchPerfInPort2 OBJECT-TYPE
	SYNTAX INTEGER (0..11)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Input port to be used for performance counts for Performance Counter 2."
	::= { snetSwitchPerfTableEntry 5 }


snetSwitchPerfOutPort2 OBJECT-TYPE
	SYNTAX INTEGER (0..11)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Output port to be used for performance counts for Performance Counter 2."
	::= { snetSwitchPerfTableEntry 6 }


snetSwitchPerfTimerSelect OBJECT-TYPE
	SYNTAX INTEGER (1..4)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Specifies the duration the performance count should run. 
1= 16 nanoseconds per count, maximum 68.72 second timer
2= 256 nanoseconds per count, maximum 18.33 minute timer
3= 1.024 microseconds per count, maximum 73.30 minute timer
4= 8.129 microseconds per count, maximum 9.77 hour timer 

This value is automatically determined based on the Performance
timer interval specified by the user."
	::= { snetSwitchPerfTableEntry 7 }


snetSwitchPerfTimerInterval OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "This is the amount of time the counter will run in milliseconds. 
The default is 0 and must be changed before a performance count
will run.  The maximum value is 35172000 milliseconds which is
9.77 hours."
	::= { snetSwitchPerfTableEntry 8 }


snetSwitchPerfStart OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Setting this variable to 1 causes the request to start the
performance count to be sent.  The Types, Inports, Outports, 
and TimerInterval should all be set prior to setting
Start. If they are not set, default values will be used.  At a
minimum, the TimerInterval must be reset to a value other than
zero before a performance count will run."
	::= { snetSwitchPerfTableEntry 9 }


snetSwitchPerfStatus OBJECT-TYPE
	SYNTAX INTEGER {
	validData(1),
	countInProgress(2),
	counter1Overflow(3),
	counter2Overflow(4),
	timerOverflow(5),
	unknown(6)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "GETting this variable causes a request to be made to the 
switch to retrieve the latest values for the  Performance 
count status  (snetSwitchPerfStatus), Performance  counters 
(snetSwitchPerfCounter1 and snetSwitchPerfCounter2) and 
time left (snetSwitchTimeLeft).

Possible Values for Status: 
Data is valid(1), 
Counting is still in process(2),
Counter 1 overflowed(3), 
Counter 2 overflowed(4), 
Timer overflowed(5), 
Unknown.  Switch not reachable(6). "
	::= { snetSwitchPerfTableEntry 10 }


snetSwitchPerfElapsedTime OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The amount of time elapsed on the current performance count in milliseconds. 
If this value is zero, the performance counters have completed."
	::= { snetSwitchPerfTableEntry 11 }


snetSwitchPerfCounter1 OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The result of the last performance count for counter 1.  To 
check the validity and get the latest Counter1 value from 
the switch, first Get the snetSwitchPerfStatus."
	::= { snetSwitchPerfTableEntry 12 }


snetSwitchPerfCounter2 OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The result of the last performance count for counter 2. 
To check the validity and get the latest Counter2 value
from the switch, first Get the snetSwitchPerfStatus."
	::= { snetSwitchPerfTableEntry 13 }


snetSwitchErrorStatusTable OBJECT-TYPE
	SYNTAX SEQUENCE OF SnetSwitchErrorStatusEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Table of switch error and status data."
	::= { snetSwitchErrorStatusData 1 }


snetSwitchErrorStatusEntry OBJECT-TYPE
	SYNTAX SnetSwitchErrorStatusEntry
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "An entry containing status and error data for each switch."
	INDEX { snetSwitchIDIndex  }

	::= { snetSwitchErrorStatusTable 1 }

snetSwitchErrorStatusEntry ::=
	SEQUENCE {
		snetSwitchLinkErrorThreshold INTEGER,
		snetSwitchPacketErrorThreshold INTEGER,
		snetSwitchIBCErrorThreshold INTEGER,
		snetSwitchNeighborID DisplayString,
		snetSwitchAccessViolationID INTEGER,
		snetSwitchFWStatus INTEGER,
		snetSwitchHWStatus INTEGER,
		snetSwitchStatus INTEGER,
		snetSwitchFanStatus INTEGER
		}

snetSwitchLinkErrorThreshold OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Number of link errors which occur before an asynchronous
event notification is generated by the switch. "
	::= { snetSwitchErrorStatusEntry 1 }


snetSwitchPacketErrorThreshold OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Number of packet errors which occur before an asynchronous 
event notification is generated by the switch. "
	::= { snetSwitchErrorStatusEntry 2 }


snetSwitchIBCErrorThreshold OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "Number of packet errors which occur before an asynchronous
event notification is generated by the switch. "
	::= { snetSwitchErrorStatusEntry 3 }


snetSwitchNeighborID OBJECT-TYPE
	SYNTAX DisplayString
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " This field contains the latest value of the Neighbor ID 
which has changed. Whenever a change in a neighbor ID is
detected by a switch, the switch generates an asynchronous 
event.  The neighbor ID which was detected by the switch is
saved here.  It is valid only for the last event which 
occurred.  If no neighbor ID changes have occurred, the 
value will be blank. "
	::= { snetSwitchErrorStatusEntry 4 }


snetSwitchAccessViolationID OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " This field contains the latest value for the invalid ID 
which was detected by the switch.  Whenever an invalid
id is detected by a switch, the switch generates an 
asynchronous event.  The ID which was detected by the 
switch is saved here.  It is valid only for the last event 
which occurred.  If no invalid IDs have been detected, the 
value will be zero(0). "
	::= { snetSwitchErrorStatusEntry 5 }


snetSwitchFWStatus OBJECT-TYPE
	SYNTAX INTEGER {
	validStatusBlock(1),
	hwErrorDetected(2),
	unknownFirmwareErrorDetected(3),
	badProgramCheckSum(4),
	configFailedDefaultInUse(5),
	unknownFWStatus(6)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " The Firmware Status for the Switch
Firmware Status OK(1),  
Hardware Error Detected(2), 
Unknown Firmware Error Detected(3), 
Bad Program CheckSum(4), 
Current Configuration failed. Switch is using factory default configuration(5),   
Switch cannot be reached. Firmware status is unknown(6). "
	::= { snetSwitchErrorStatusEntry 6 }


snetSwitchHWStatus OBJECT-TYPE
	SYNTAX INTEGER {
	noError(1),
	errSramFail(2),
	errFlashSector(3),
	errSeepromCheckSum(4),
	errSbusy(5),
	errFlashProgram(6),
	errUnknownHWStatus(7),
	errOtherHWError(8)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " The Hardware Status for the Switch  
Hardware Status OK(1), 
SRAM Memory test failed(2), 
Flash sector test failed(3), 
Bad SEEPROM checksum(4), 
SBUSY error(5), 
FLASH program error(6),  
Switch cannot be reached.  Hardware status is unknown.(7), 
Other Hardware Error, such as fan failure may be indicated.(8) "
	::= { snetSwitchErrorStatusEntry 7 }


snetSwitchStatus OBJECT-TYPE
	SYNTAX INTEGER {
	other(1),
	ok(2),
	degraded(3),
	failed(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION " The Overall Status for the Switch.  This is determined by a combination
of port status values and configuration values.  If a port is configured,
it should detect Link Alive.  If the port is not in LinkAlive state, the
switch status will be degraded. If all configured ports are in 
LinkAlive state, the switch status will be ok.  Hardware, Firmware and Fan
status are also used to determine switch status as described below.

This represents the overall condition of the specified switch.

Other(1): 
Switch not installed or status unknown

OK(2):
All ports, Hardware, Firmware and Fan status are OK.

Degraded(3):
One or more ports are down.  Hardware or Firmware status
show an error condition. 

Failed(4):
All ports are Failed, switch is not reachable, Fan status
is failed. "
	::= { snetSwitchErrorStatusEntry 8 }


snetSwitchFanStatus OBJECT-TYPE
	SYNTAX INTEGER {
	other(1),
	ok(2),
	degraded(3),
	failed(4)
	}
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The status of the switch fans. 
Other(1):    Unknown or not reported.  This is the status if
the switch cannot be reached.

OK(2):       OK is reported if both fans are working as designed

Degraded(3): This status is not reported but is listed for 
consistency with other status fields

Failed(4):   One or more fans have failed.  The power module
should be replaced immediately to prevent damage
to switch components. "
	::= { snetSwitchErrorStatusEntry 9 }



snetSwitchLinkAliveChange TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchSnetID, snetSwitchName, snetSwitchPortErrorStatusIndex, snetSwitchPortStatus }

	--#TYPE "ServerNet Switch Port Status Change"

	--#SUMMARY "Switch %d (%s) has detected a change in status on

	--#ARGUMENTS {4}

	--#SEVERITY MAJOR
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99
DESCRIPTION "The switch has detected a change in the status of a port. 

Possible Cause / Solution:   
If Port is nonfunctional,
Disconnected, loose or defective SAN Cable:  Reattach or replace cable. 
Distant switch or node powered off:  apply power to switch or node. 
Distant daughter card defective:  replace defective daughter card.  

If Port is functional,
Port is now active:  No action necessary. 

If Port is intermittent,
Intermittent problems could be caused by a defective switch, cable or
daughter card.  Replace components until problem is isolated. "
	::= 100


snetSwitchNeighborValidationFailed TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchSnetID, snetSwitchName, snetSwitchPortErrorStatusIndex, snetSwitchNeighborID }

	--#TYPE "ServerNet Switch Neighbor Validation Failure"

	--#SUMMARY "The neighbor on Switch %d (%s) port %d could not be validated

	--#ARGUMENTS {4}

	--#SEVERITY MAJOR
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99
DESCRIPTION "A ServerNet Switch failed neighbor validation on one of its ports.
The offending node will not be able to receive or transmit 
ServerNet data packets until the situation is corrected.

Possible Cause / Solution:  
Ports not configured:  If a port is not configured or disabled,
this event is generated whenever the topology is changed, or
firmware is updated.  The snetSwitchNeighborID will indicate that
the link is down with LD.  If the snetSwitchNeighborID is AF, this 
indicates the specified port is disabled and assumed failed. 
If the specified port is not configured, this event may be ignored. 

Bad Node: Run diagnostics to validate offending nodes. 

Incorrect cabling: verify cabling and correct if necessary. 

Incorrect configuration: switch configruation may be incorrect.
Reconfigure switch.

Node not added to SAN: Offending node may not have been added to 
the SAN.  Run ServerNet II Administrative Utility to add node.

Incorrect SAN installation:  Offending node may not have been correctly
added to SAN.  Run Administrator GUI to verify status and add if 
necessary.

To force the switch to rerun neighbor checks, the user may have to
manually cycle the power on the offending node. "
	::= 101


snetSwitchLinkLevelError TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchSnetID, snetSwitchName, snetSwitchPortErrorStatusIndex, snetSwitchLinkErrorCounter, snetSwitchPacketErrorCounter, snetSwitchIBCErrorCounter }

	--#TYPE "ServerNet Switch Link Level Error"

	--#SUMMARY "Switch %d (%s), port %d has detected %d link level

	--#ARGUMENTS {6}

	--#SEVERITY MINOR
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99
DESCRIPTION "ServerNet Switch has detected link level errors.

Possible Cause / Solution:  

Bad node:  Run diagnostics to validate offending nodes are 
operating correctly.

Loose cable:  Check cable connections.

Bad cable: Check for link error and replace cable.

Incorrect configuration:  Switch configuration may be incorrect.
Check EFIFO register to make sure it is set correctly for
cable type/length.  Reconfigure switch if necessary.

Blabbering Node:  Run diagnostics to ensure that nodes at both
ends of the cable are communicating properly.  Replace if necessary. "
	::= 102


snetSwitchPacketLevelError TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchSnetID, snetSwitchName, snetSwitchPortErrorStatusIndex, snetSwitchLinkErrorCounter, snetSwitchPacketErrorCounter, snetSwitchIBCErrorCounter }

	--#TYPE "ServerNet Switch Packet Level Error"

	--#SUMMARY "Switch %d (%s), port %d has detected packet level 

	--#ARGUMENTS {6}

	--#SEVERITY MINOR
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99
DESCRIPTION "ServerNet Switch has detected packet level errors.

Possible Cause / Solution:  

Bad node:  Run diagnostics to validate offending nodes are 
operating correctly.

Loose cable:  Check cable connections.

Bad cable: Check for link error and replace cable.

Incorrect configuration:  Switch configuration may be incorrect.
Check router table to make sure it is set.  Reconfigure switch 
if necessary.

Blabbering Node:  Run diagnostics to ensure that nodes at both
ends of the cable are communicating properly.  Replace if necessary.

Probing node: A node may be trying to break into the network.  
Isolate the node and verify SAN membership. "
	::= 103


snetSwitchIBCError TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchSnetID, snetSwitchName, snetSwitchPortErrorStatusIndex, snetSwitchLinkErrorCounter, snetSwitchPacketErrorCounter, snetSwitchIBCErrorCounter }

	--#TYPE "ServerNet Switch IBC Error"

	--#SUMMARY "Switch %d (%s), port %d has detected IBC

	--#ARGUMENTS {6}

	--#SEVERITY MINOR
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99
DESCRIPTION "ServerNet Switch has detected IBC errors.

Possible Cause / Solution:  

Firmware upgrade or Configuration change:  This event can be
safely ignored if preceding events indicate a firmware upgrade 
or configuration change caused the event to be generated.

Bad node:  Run diagnostics to validate offending nodes are 
operating correctly.

Loose cable:  Check cable connections.

Bad cable: Check for link error and replace cable.

Incompatible software version: Ensure that compatible versions
of software and firmware are installed on the offending nodes.

Blabbering node:  Run diagnostics to ensure that nodes at both
ends of the cable are communicating properly.  Replace if necessary.

Probing node: A node may be trying to break into the network.  
Isolate the node and verify SAN membership.

Switch ownership may be incorrect:  Check ownership;  cycle power on
the offending switch to cause ownership update."
	::= 104


snetSwitchAccessViolation TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchSnetID, snetSwitchName, snetSwitchPortErrorStatusIndex, snetSwitchAccessViolationID }

	--#TYPE "ServerNet Switch Access Violation"

	--#SUMMARY "Switch %d (%s), port %d has detected invalid id %d." 

	--#ARGUMENTS {4}

	--#SEVERITY CRITICAL
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99
DESCRIPTION "The switch has detected a request to or from an invalid id.

Possible Cause / Solution:  

Blabbering node:  Run diagnostics to ensure that nodes at both
ends of the cable are communicating properly.  Replace if necessary.

Probing node: A node may be trying to break into the network.  
Isolate the node and verify SAN membership.

Switch ownership may be incorrect:  Check ownership;  cycle power on
the offending switch to cause ownership update. "
	::= 105


snetSwitchOwnerChange TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchSnetID, snetSwitchName, snetSwitchSANManSNetID }

	--#TYPE "ServerNet Switch detected new owner"

	--#SUMMARY "Switch %d (%s), takeover by %d."

	--#ARGUMENTS {3}

	--#SEVERITY MINOR
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99   
DESCRIPTION "ServerNet Switch Primary Administrative node change.

Possible Cause / Solution:  

Primary node failed over:  If this was by user request, this is a notification
only and no action is needed.  Refer to snetSwitchSANManFailover for other
possibilities.

Administrator changed primary Administrative node: Notification only.  No action 
is necessary. "
	::= 106


snetSwitchFirmwareUpgrade TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchSANManSNetID, snetSwitchSnetID, snetSwitchName, snetSwitchFWRelease, snetSwitchFWMajorRev, snetSwitchFWMinorRev }

	--#TYPE "ServerNet Switch Firmware Upgrade"

	--#SUMMARY "Administrative node %d upgraded Switch %d(%s), Firmware release %d,

	--#ARGUMENTS {6}

	--#SEVERITY INFORMATIONAL
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99
DESCRIPTION "A firmware upgrade has been performed on the specified switch.

Possible Cause / Solution:  

Switch firmware has been upgraded.  Notification only.  No action 
in needed. "
	::= 107


snetSwitchSANManFailover TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchPrimarySANManSNetID, snetSwitchPrimarySANManName, snetSwitchBackupSANManSNetID, snetSwitchBackupSANManName, snetSwitchFailoverEventType }

	--#TYPE "ServerNet Switch failover detected"

	--#SUMMARY "Primary Administrative node %s (%d), Backup node %s (%d), detected Failover %d."

	--#ARGUMENTS {5}

	--#SEVERITY MINOR
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99   
DESCRIPTION "Administrative node failover has been detected. 
The type of failure detected is reflected in the event type.

Possible Cause / Solution:  

Primary or backup administrative node has failed:  if powered off, apply power.
If hung, reboot node.  If doing maintenance, this is a notification
message only.  Restart node when maintenance is complete.

Backup administrative node not configured:  use the ServerNet II Administrative Utility 
to define a backup. "
	::= 108


snetSwitchTopologyConfigUpdate TRAP-TYPE
	ENTERPRISE serverNet

	--#TYPE "ServerNet Topology Update"

	--#SUMMARY "ServerNet topology has been updated"

	--#ARGUMENTS {0}

	--#SEVERITY INFORMATIONAL
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99
DESCRIPTION "Configuration of the ServerNet topology has changed.

Possible Cause / Solution:  

Switch or end node configuration has been updated.  Notification only,
no action required.  May also be generated when switch firmware is upgraded or
new primary or backup nodes are designated."
	::= 109


snetSwitchFanFailure TRAP-TYPE
	ENTERPRISE serverNet
	VARIABLES { snetSwitchSnetID, snetSwitchName }

	--#TYPE "ServerNet Switch Fan Failure"

	--#SUMMARY "Switch %d (%s), detected a fan failure."

	--#ARGUMENTS {2}

	--#SEVERITY CRITICAL
--#CATEGORY "ServerNet Events"
	--#TIMEINDEX 99   
DESCRIPTION "ServerNet Switch detected a fan failure.  The power module should be
replaced immediately to prevent switch component damage.

Possible Cause / Solution:  

A switch fan has failed: replace switch power module to prevent switch
component damage. "
	::= 110


END

