-- *****************************************************************
-- CISCO-ATM-DUAL-PHY-MIB.my: Cisco atm dual phy MIB file
--
-- July 1996, Steve Garcia and David Battle
--
-- Copyright (c) 1996-1998 by cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************




CISCO-ATM-DUAL-PHY-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	NOTIFICATION-TYPE,
	Counter32
		FROM SNMPv2-SMI
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF
	TruthValue
		FROM SNMPv2-TC
	InterfaceIndexOrZero
		FROM CISCO-TC
        ifIndex,
	InterfaceIndex
		FROM IF-MIB
	ciscoMgmt
		FROM CISCO-SMI;


ciscoAtmDualPhyMIB MODULE-IDENTITY
	LAST-UPDATED	"9608300000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service

		Postal:	170 W. Tasman Drive
			San Jose, CA  95134-1706
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-atm@cisco.com"
	DESCRIPTION
		"Initial version of this MIB module.


		Phy definition

		Throughout this document phy is used as an abbreviation
		for Physical Interface.  In particular it refers to a
		physical ATM jack on a Catalyst 5000 ATM card.  This card
		can be fitted with either one or two physical jacks, only
		one of which may be active at any given moment.  The second
		phy serves as a redundant connector to the ATM backbone.
		Note, however, that for logistical reasons, each phy has
		a separate ifIndex.


		Support of the phy by ifTable

		The dual phy entity on the c5K ATM line card is managed
		using the ifTable.  Specific interpretations of ifTable
		for the dual phy entity are as follows.

		Object   Use for dual phy entity
		======   =======================

		ifIndex  Each phy entity is represented by an ifEntry.

		ifDescr  Description of the phy entity.

		ifType   The value for the phy entity is other(1).

		ifSpeed  See [1].

		ifPhysAddress   An octet string of zero length, per [1].

		ifAdminStatus   See [1].

		ifOperStatus    See [1].  In addition, note that a phy can
                          be in the up state but still not be the
                          active phy.  However, the active phy will
                          always be up.

		ifLastChange    See [1].

		ifName   See [1].

		ifLinkUpDownTrapEnable     disabled(2).

		ifHighSpeed      See [1]. 

		ifConnectorPresent	true(1).


		References

		[1] McCloghrie, K. and F. Kastenholz, Evolution of the
		Interfaces Group of MIB-II, RFC 1573, Hughes LAN Systems,
		FTP Software, January 1994."
	::= { ciscoMgmt 60 }

ciscoAtmDualPhyMIBObjects OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIB 1 }

cadpStatistics OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIBObjects 1 }

cadpStatTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF CadpStatEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"A table of status information about ATM phy."
	::= { cadpStatistics 1 }

cadpStatEntry OBJECT-TYPE
	SYNTAX     CadpStatEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"An Atm Phy table entry, containing information about
		a phy on this ATM module."
	INDEX { ifIndex }
	::= { cadpStatTable 1 }

CadpStatEntry ::=
	SEQUENCE {
		-- index is ifIndex
		-- status items
		cadpStatLossOfSignal		TruthValue,
		cadpStatFarEndReceiveFailure	TruthValue,
		cadpStatActive			TruthValue,
		cadpStatSectionBIP8Errors	Counter32,
		cadpStatLineBIP824Errors	Counter32,
		cadpStatLineFEBErrors		Counter32,
		cadpStatPathBIP8Errors		Counter32,
		cadpStatPathFEBErrors		Counter32,
		cadpStatCorrectableHCSErrors	Counter32,
		cadpStatUncorrectableHCSErrors	Counter32
	}

cadpStatLossOfSignal OBJECT-TYPE
	SYNTAX     TruthValue
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Set to true if the phy is currently experiencing a
		loss of signal (LOS) from its connected port.  Set to false
		if the phy is not experiencing a loss of signal."
	::= { cadpStatEntry 1 }

cadpStatFarEndReceiveFailure OBJECT-TYPE
	SYNTAX     TruthValue
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Set to true if the phy is currently experiencing a far
		end receive failure (FERF) with its connected port.  Set to
		false if the phy is not experiencing a far end receive
		failure."
	::= { cadpStatEntry 2 }

cadpStatActive OBJECT-TYPE
	SYNTAX     TruthValue
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Set to true when this phy is currently the active phy.
		Set to false when this phy is not the currently active phy."
	::= { cadpStatEntry 5 }

cadpStatSectionBIP8Errors OBJECT-TYPE
	SYNTAX	  Counter32
	MAX-ACCESS read-only
	STATUS	current
	DESCRIPTION
		"The Bit Interleaved Parity 8 is an error checking code
		applied for quick isolation of faults.  Each bit in the
		B octets is set to 1 or 0 as necessary to obtain even
		parity over the previous frame.  The calculated BIP-8
		code for frame N is compared with the BIP-8 code extracted
		from the B1 byte of frame N+1.  Differences indicate that
		a section level bit error has occurred.

		Count of Section BIP-8 (Bit Interleaved Parity) errors
		that have been detected on this phy. "
	::= { cadpStatEntry 6 }

cadpStatLineBIP824Errors OBJECT-TYPE
	SYNTAX	 Counter32
	MAX-ACCESS read-only
	STATUS	current
	DESCRIPTION
	        "The Bit Interleaved Parity 8/24 is an error checking code
		based on even parity.  The calculated BIP code for frame N
		is compared with the BIP-8/24 code extracted from the B2
		byte(s) of frame N+1.  Any differences indicate that a
		line layer bit error has occurred.

		Count of line bit interleaved partiy (BIP-8/24) errors on
		this phy. "
	::= { cadpStatEntry 7 }

cadpStatLineFEBErrors OBJECT-TYPE
	SYNTAX	  Counter32
	MAX-ACCESS read-only
	STATUS	current
	DESCRIPTION
		"The number of bits (binary 000 to 1000) in the previous
		BIP-8 that didn't match the even parity check are inserted
		by the transmitter.  The receiver checks for this in the 
		M0/M1 byte of the frame.  A non-zero value (legal range 
		is binary 0000 - 1000) indicates a line layer error in 
		the remote end.  Any other value is treated as no error.

		Count of Line Far End Bit Errors (FEBE) on this phy."
	::= { cadpStatEntry 8 }

cadpStatPathBIP8Errors OBJECT-TYPE
	SYNTAX	  Counter32
	MAX-ACCESS read-only
	STATUS	current
	DESCRIPTION
		"The Bit Interleaved Parity 8 is an error checking code
		applied for quick isolation of faults.  Each bit in the
		B octets is set to 1 or 0 as necessary to obtain even
		parity over the previous frame.

		The calculated BIP-8 code for frame N is compared with
		the BIP-8 code extracted from the B3 byte of frame N+1.
		Differences indicate that a Path level bit error has
		occurred.

		Count of Path BIP-8 (Bit Interleaved Parity) errors that
		have been detected on this phy."
	::= { cadpStatEntry 9 }

cadpStatPathFEBErrors OBJECT-TYPE
	SYNTAX	  Counter32
	MAX-ACCESS read-only
	STATUS	current
	DESCRIPTION
		"The number of B3 errors in the previous frame inserted
		by the transmitter.  The receiver checks for this in the
		G1 byte of the frame.  A non-zero value (legal range is
		binary 0000 - 1000) indicates a line layer error in
		the remote end.  Any other value is treated as no error.

		Count of Path Far End Bit Errors (FEBE) on this phy."
	::= { cadpStatEntry 10 }

cadpStatCorrectableHCSErrors OBJECT-TYPE
	SYNTAX	  Counter32
	MAX-ACCESS read-only
	STATUS	current
	DESCRIPTION
		"The Header Checksum (HCS) is a CRC-8 calculation over
		the first 4 octets of the ATM cell header.  The received
		HCS is verified using the polynomial x^8 + x^2 + x + 1.
		The coset polynomial x^6 + x^4 + x^2 + 1, is added
		(modulo 2) to the received HCS octet before comparison
		with the calculated result.  Cells with single bit error
		in the HCS byte are corrected.  Cells with more than one
		bit error in the HCS byte are uncorrectable.

	        Count of incoming cells on this phy with single bit error
	        in the Header Checksum (HCS) byte"
	::= { cadpStatEntry 11 }

cadpStatUncorrectableHCSErrors OBJECT-TYPE
	SYNTAX	  Counter32
	MAX-ACCESS read-only
	STATUS	current
	DESCRIPTION
		"The Header Checksum (HCS) is a CRC-8 calculation over
		the first 4 octets of the ATM cell header. The received
		HCS is verified using the polynomial x^8 + x^2 + x + 1.
		The coset polynomial x^6 + x^4 + x^2 + 1, is added
		(modulo 2) to the received HCS octet before comparison
		with the calculated result.  Cells with single bit error
		in the HCS byte are corrected.  Cells with more than one
		bit error in the HCS byte are uncorrectable.

		Count of uncorrectable Header Checksum (HCS) errors on
		this phy."
	::= { cadpStatEntry 12 }


-- end of cadpStatTable

cadpStatOperActivePhy OBJECT-TYPE
	SYNTAX     InterfaceIndexOrZero
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"Returns the ifIndex of the phy which is currently the
		active phy.  A value of 0 indicates that no phy is
		currently active."
	::= { cadpStatistics 2 }

cadpStatAdminActivePhy OBJECT-TYPE
	SYNTAX     InterfaceIndex
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"Returns the ifIndex of the phy which is the preferred
		active phy.  A value of 0 indicates that no phy is
		currently active.

		Setting this object to a value different from its current
		value causes the ATM module to make the indicated phy active,
		and the active phy inactive.

		Setting this object to its current value has no effect.

		After performing the phy change, the agent will update
		all phy information (including cadpStatOperActivePhy)
		and send a ciscoAtmDualPhyChange trap."
	::= { cadpStatistics 3 }


ciscoAtmDualPhyMIBTrapPrefix OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIB 2 }
ciscoAtmDualPhyMIBTraps OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIBTrapPrefix 0 }

ciscoAtmDualPhyChange NOTIFICATION-TYPE
	OBJECTS	   {	cadpStatOperActivePhy -- the new active phy, or 0
		   }
	STATUS	   current
	DESCRIPTION
		"A ciscoAtmDualPhyChange trap is sent when the active phy
		changes either because of a failure or because of user
		intervention (setting cadpStatAdminActivePhy, for example)."
	::= { ciscoAtmDualPhyMIBTraps 1 }


-- conformance information

ciscoAtmDualPhyMIBConformance	OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIB 3 }
ciscoAtmDualPhyMIBCompliances	OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIBConformance 1 }
ciscoAtmDualPhyMIBGroups	OBJECT IDENTIFIER ::= { ciscoAtmDualPhyMIBConformance 2 }


-- compliance statements

ciscoAtmDualPhyMIBCompliance MODULE-COMPLIANCE
	STATUS	current
	DESCRIPTION
		"The compliance statement for entities which implement
		the Cisco Atm Dual Phy MIB.  This MIB is mandatory for
		all Cisco ATM products with multiple phy."
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoAtmDualPhyMIBGroup }
	::= { ciscoAtmDualPhyMIBCompliances 1 }

-- units of conformance

ciscoAtmDualPhyMIBGroup OBJECT-GROUP
	OBJECTS {
		cadpStatLossOfSignal,
		cadpStatFarEndReceiveFailure,
		cadpStatActive,
		cadpStatSectionBIP8Errors,
		cadpStatLineBIP824Errors,
		cadpStatLineFEBErrors,
		cadpStatPathBIP8Errors,
		cadpStatPathFEBErrors,
		cadpStatCorrectableHCSErrors,
		cadpStatUncorrectableHCSErrors,
		cadpStatAdminActivePhy,
		cadpStatOperActivePhy
	}
	STATUS	current
	DESCRIPTION
		"A collection of objects providing ATM dual phy monitoring."
	::= { ciscoAtmDualPhyMIBGroups 1 }
	
END
