-- *****************************************************************
-- CISCO-BUS-MIB.my: LANE BUS MIB file
--
-- July 1995, Chris Young
--
-- Copyright (c) 1995-1997 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
 CISCO-BUS-MIB DEFINITIONS ::= BEGIN

 IMPORTS
	ciscoMgmt                       FROM CISCO-SMI
	AtmLaneAddress			FROM LAN-EMULATION-CLIENT-MIB
	MODULE-IDENTITY, OBJECT-TYPE,	
	Counter32, Integer32   		FROM SNMPv2-SMI
	MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
	TEXTUAL-CONVENTION,
	RowStatus, DisplayString, 
	TimeStamp                       FROM SNMPv2-TC;

 ciscoBusMIB	MODULE-IDENTITY
	LAST-UPDATED "9509151702Z"
	ORGANIZATION "Cisco Systems Inc."
	CONTACT-INFO
		" Cisco Systems Inc."
	DESCRIPTION
		" The MIB module for the management of LANE broadcast and 
		unknown servers."
	::= { ciscoMgmt 40 }

 ciscoBusMIBObjects OBJECT IDENTIFIER ::= { ciscoBusMIB 1 }

 CiscoVpiInteger ::= TEXTUAL-CONVENTION
	STATUS current
	DESCRIPTION
		" An integer large enough to hold a VPI.  In the event
		that VC does not  exist, the value  of an  object with
		this syntax shall be -1."
	SYNTAX	INTEGER (-1..255)

 CiscoVciInteger ::= TEXTUAL-CONVENTION
	STATUS current
	DESCRIPTION
		" An integer large enough to hold a VCI.  In the event
		that  VC does not exist, the   value on an object with
		this syntax shall be -1."
	SYNTAX 	INTEGER (-1..65535)

 busTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF BusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A (conceptual) table representing all the instantiations
		of BUSs on the designated device.  This table may or may not
		allow the creation of rows depending on whether the LANE
		service elements allow the separate creation of LES and BUS
		components.  In the event that separate components are not
		allowed then the MINIMUM-ACCESS detailed in the 
		MODULE-COMPLIANCE should be used by those BUS implementations"
	::= { ciscoBusMIBObjects 1 }

 busEntry OBJECT-TYPE
	SYNTAX     BusEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry (conceptual row) in the busTable."
	INDEX      { busElanName, busIndex }
	::= { busTable 1 }

 BusEntry ::= SEQUENCE {
	busElanName              DisplayString,
	busIndex                 INTEGER,
	busAtmAddrSpec           AtmLaneAddress,
	busAtmAddrMask           OCTET STRING,
	busAtmAddrActl           AtmLaneAddress,
	busIfIndex               Integer32,
	busSubIfNum              Integer32,
	busUpTime                TimeStamp,
	busLanType               INTEGER,
        busMaxFrm                INTEGER,
	busMaxFrmAge             INTEGER,
	busOutFwdOctets          Counter32,
	busOutFwdUcastFrms       Counter32,
	busOutFwdNUcastFrms      Counter32,
	busFrmTimeOuts           Counter32,
	busMultiFwdVpi           CiscoVpiInteger,
	busMultiFwdVci           CiscoVciInteger,
	busOperStatus            INTEGER,
	busAdminStatus           INTEGER,
	busStatus                RowStatus
 }

 busElanName OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (1..32))
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" The ELAN name of the designated bridge."
	::= { busEntry 1 }

 busIndex OBJECT-TYPE
	SYNTAX     INTEGER (1..2147483647)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A unique identifier  for this particular BUS on this
		ELAN. This value must remain  constant while the entry
		is in existence	and during the  operation of the agent
		(i.e.   It is allowed to change  after  reboot).  For 
		implementations that do not support  more than one BUS
		entity per ELAN per device, it is sufficient to always
		report 1 for this object and  only to accept the value
		1 for row creation."
	::= { busEntry 2 }

 busAtmAddrSpec OBJECT-TYPE
	SYNTAX     AtmLaneAddress
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The specified ATM address of the BUS on the interface
		of interest.  Note  that setting this object will have
		the side effect   of   reinitializing  the  BUS    and
		consequently dropping all clients connected to it.  If
		this object is not specified at row creation time then
		the BUS will choose a value  for itself and attempt to
		register  with the  switch  with  that  value.  If  an
		address is  specified  which is not acceptable  to the
		switch   then the busOperStatus  will remain  inactive
		until an acceptable address is set."
	::= { busEntry 3 }

 busAtmAddrMask OBJECT-TYPE
	SYNTAX     OCTET STRING (SIZE (0 | 20))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"   An    address mask  that     when  used  with  the
		busAtmAddrSpec, specifies  the portion of the BUS' ATM
		address  that is desired  to be  configured. Note that
		setting    this     object   will   result   in    the
		reinitialization of the BUS, consequently dropping all
		clients connected to  it.   At row creation  time this
		object  cannot be set  without also  supplying a value
		for  the busAtmAddrSpec.  If   the BUS ATM  address is
		omitted at creation time then this object defaults to
		the  value of all  zeros  (none of the  busAtmAddrSpec
		value   is  relevant).  If the    BUS  ATM address  is
		specified  at creation time   but this object omitted,
		then this object  defaults  to the  value of all  ones
		(all of the busAtmAddrSpec is relevant)." 
	::= { busEntry 4 }

 busAtmAddrActl OBJECT-TYPE
	SYNTAX     AtmLaneAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The  resultant ATM address in use  by the BUS.  This
		object is a product of the specified ATM address, mask
		and interaction with the switch via the ILMI."
	::= { busEntry 5 }

 busIfIndex OBJECT-TYPE
	SYNTAX     Integer32
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"  The interface that a BUS will forward traffic over.
                The value specified for this object must equate to a
                value of ifIndex in the ifTable.  The interface  will
                be for that particular ATM port (the physical
                interface, not a logical layer on top of it). This
                object can only be specified upon row creation and
                cannot be altered there after." 
	::= { busEntry 6 }

 busSubIfNum OBJECT-TYPE
	SYNTAX     Integer32
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" Specifies   the  sub-interface number that  the  BUS
		will reside on.  This sub-interface may be shared with
		a LEC or BUS of the same ELAN  but is not required to
		do  so.  If no value  is  specified for this object at
		row creation time, then a sub-interface will be chosen
		by  the agent. This   object may only be  specified at
		row creation time and cannot be altered thereafter."  
	::= { busEntry 7 }

 busUpTime OBJECT-TYPE
	SYNTAX     TimeStamp
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The  value    of sysUpTime  when  this  BUS   became
		enabled." 
	::= { busEntry 8 }

 busLanType OBJECT-TYPE
	SYNTAX     INTEGER { dot3(1), dot5(2) }
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The type of legacy LAN that this LES emulates."
	DEFVAL { dot3 }
	::= { busEntry 9 }

 busMaxFrm OBJECT-TYPE
	SYNTAX     INTEGER { dot3    (1516), 
			     tr4Mb   (4544), 
			     rfc1626 (9234),
			     tr16Mb  (18190) }
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"  The maximum  frame size  that  the emulated LAN may
		accept." 
	DEFVAL { dot3 }
	::= { busEntry 10 }

 busMaxFrmAge OBJECT-TYPE
	SYNTAX     INTEGER (1..4)
	UNITS      "seconds"
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The maximum number of seconds a BUS will hold onto a
		packet for forwarding until it is dropped.  Dropping a
		packet  will   result  in  the   incrementing   of the
		busFrmTimeOuts counter." 
	DEFVAL { 1 } 
	::= { busEntry 11 }

 busOutFwdOctets OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"  The number of  octets that  this  BUS has forwarded
		since its initialization."
	::= { busEntry 12 }

 busOutFwdUcastFrms OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The number  of  frames that  the BUS  has  forwarded
		which were  unicast data frames  including all control
		frames (i.e. they were flooded from the client)." 
	::= { busEntry 13 }

 busOutFwdNUcastFrms OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"  The number of  frames  that  the BUS has  forwarded
		which were multicast frames."
	::= { busEntry 14 } 

 busFrmTimeOuts OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The number of frames dropped by  the BUS due to time
		out." 
	::= { busEntry 15 }

 busMultiFwdVpi	OBJECT-TYPE
	SYNTAX     CiscoVpiInteger
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The   virtual  path  identifier for    the multicast
		forward VCC. " 
	::= { busEntry 16 }

 busMultiFwdVci	OBJECT-TYPE
	SYNTAX     CiscoVciInteger
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"   The virtual channel   identifier for the multicast
		forward VCC."
	::= { busEntry 17 }

 busOperStatus OBJECT-TYPE
	SYNTAX     INTEGER { active(1), inactive(2) } 
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"  This object  reflects the actual   state of the BUS
		which may  differ  from  that  of  the  busAdminStatus
		object.    This  can   occur     when  the   interface
		ifOperStatus is  'down'     but    the   corresponding
		busAdminStatus is 'active'." 
	::= { busEntry 18 } 

 busAdminStatus OBJECT-TYPE
	SYNTAX     INTEGER { active(1), inactive(2) }
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"    The desired   state  of  the   designated BUS  as
		prescribed by the operator.  The  actions of the agent
		will,  if at  all possible,  eventually  result in the
		desired state being  reflected in  the busOperStatus."
	DEFVAL     { active } 
	::= { busEntry 19 }

 busStatus OBJECT-TYPE
	SYNTAX     RowStatus
 	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The status of the BUS  entry.  This object cannot be
		set  to active until   the  busIfIndex object  has  an
		appropiate  value.   Note  that implementations   that
		do    not  support  separate     LES/BUS entities  may
		refuse row  creation in  this table. 	Creation  of
		BUS entities  for those implementation  is facilitated
		in the LES MIB."  
	::= { busEntry 20 }

 busClientTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF BusClientEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A (conceptual) table listing the clients associated
		with a BUS.  Note that the local or network management
		will not create or destroy rows in this table but
		may only inspect what LECs are currently joined
		with the BUS."
	::= { ciscoBusMIBObjects 2 }

 busClientEntry OBJECT-TYPE
	SYNTAX     BusClientEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry (conceptual) row that denotes a client that
		is establishing/has established a multicast send VC to
                the BUS."
	INDEX      { busElanName, busIndex, busClientId }
	::= { busClientTable 1 }

 BusClientEntry ::= SEQUENCE {
	busClientId           Integer32,
	busClientIfIndex      Integer32,
	busClientMSendVpi     CiscoVpiInteger,
	busClientMSendVci     CiscoVciInteger,
        busClientAtmAddress   AtmLaneAddress
 }
 
 busClientId OBJECT-TYPE
	SYNTAX     Integer32
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
                " A unique identifier for a LEC which is establishing/
                has-established a multicast send VC to the BUS.  The
                identifier only persists for as long as the LEC is
                associated with this particular BUS.  If the LEC is
                dropped and rejoins the ELAN then a new identifier may
                be attributed to it."
	::= { busClientEntry 1 }

 busClientIfIndex OBJECT-TYPE
	SYNTAX     Integer32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The interface of the uni-directional multicast send
                connection between the LEC and BUS."
	::= { busClientEntry 2 }

 busClientMSendVpi OBJECT-TYPE
	SYNTAX     CiscoVpiInteger
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The VPI of the uni-directional multicast send
                connection between the LEC and BUS."
	::= { busClientEntry 3 }

 busClientMSendVci OBJECT-TYPE
	SYNTAX     CiscoVciInteger 
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The VCI of the uni-directional multicast send
                connection between the LEC and BUS."
	::= { busClientEntry 4 }

 busClientAtmAddress OBJECT-TYPE
        SYNTAX     AtmLaneAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
                " The address associated with the LANE client on the 
                mulicast send VCC."
        ::= { busClientEntry 5 }

ciscoBusMIBConformance OBJECT IDENTIFIER ::= { ciscoBusMIB 2 }	

ciscoBusMIBGroups OBJECT IDENTIFIER ::= { ciscoBusMIBConformance 1 }

ciscoBusMIBCompliances OBJECT IDENTIFIER ::= { ciscoBusMIBConformance 2 }

ciscoBusGroup OBJECT-GROUP
	OBJECTS   { busAtmAddrSpec, busAtmAddrMask, busAtmAddrActl,
		    busIfIndex, busUpTime, busLanType, busMaxFrm,
		    busMaxFrmAge, busOutFwdOctets, busOutFwdUcastFrms,
		    busOutFwdNUcastFrms, busFrmTimeOuts,
		    busMultiFwdVpi, busMultiFwdVci, busOperStatus,
                    busAdminStatus, busStatus }  
	STATUS    current
	DESCRIPTION
		" A collection of objects for the managing of BUS operation."
	::= { ciscoBusMIBGroups 1 }

ciscoBusSubIfGroup OBJECT-GROUP
	OBJECTS   { busSubIfNum } 
	STATUS    current
	DESCRIPTION
		" For those implementations that wish to tie their LE service
                components to an aflane_802x ifIndex."
	::= { ciscoBusMIBGroups 2 }

ciscoBusClientGroup OBJECT-GROUP
        OBJECTS   { busClientIfIndex, busClientMSendVpi,
                    busClientMSendVci, busClientAtmAddress }
        STATUS    current
        DESCRIPTION
                " A collection of objects for the identification of a
                BUS's multicast send VCs."
        ::= { ciscoBusMIBGroups 3 }

ciscoBusMIBCompliance MODULE-COMPLIANCE
	STATUS current
	DESCRIPTION 
		" The compliance statement for SNMP entities that support
		Cisco's BUS MIB."
	MODULE -- this module
		MANDATORY-GROUPS    { ciscoBusGroup } 
		
		GROUP        ciscoBusSubIfGroup
		DESCRIPTION
			" The group of objects necessary to allow multiple LANE
			components to share a common ifIndex."
		
		OBJECT       busAtmAddrSpec
		MIN-ACCESS   read-only
		DESCRIPTION  
			"Those implementations that do not support separately
			configured broadcast/unknown and LAN emulation servers
			are not required to provide write access to the
			busAtmAddrSpec object."

		OBJECT       busAtmAddrMask
		MIN-ACCESS   read-only
		DESCRIPTION  
			"Those implementations that do not support separately
			configured broadcast/unknown and LAN emulation servers
			are not required to provide write access to the
			busAtmAddrMask object."

		OBJECT       busIfIndex
		MIN-ACCESS   read-only
		DESCRIPTION
			"Those implementations that do not support separately
			configured broadcast/unknown and LAN emulation servers
			are not required to provide write access to the
			busIfIndex object."

		OBJECT       busSubIfNum
		MIN-ACCESS   read-only
		DESCRIPTION
			" Those implementations that do not support separately
			configured broadcast/unknown and LAN emulation servers 
			are not required to provide write access to the 
			busSubIfNum object."

		OBJECT      busLanType
		MIN-ACCESS  read-only
		DESCRIPTION
			" Those implementations that do not support separately
			configured broadcast/unknown and LAN emulation servers 
			are not required to provide write access to the 
			busLanType object."

		OBJECT      busMaxFrm
		MIN-ACCESS  read-only
		DESCRIPTION
			" Those implementations that do not support separately
			configured broadcast/unknown and LAN emulation servers 
			are not required to provide write access to the 
			busMaxFrm object."

		OBJECT      busAdminStatus
		MIN-ACCESS  read-only
		DESCRIPTION
			" Those implementations that do not support separately
			configured broadcast/unknown and LAN emulation servers 
			are not required to provide write access to the 
			busAdminStatus object.  The BUS's administrative status
			should be controlled via access to the lesAdminStatus.
			Refer to CISCO-LES-MIB for details."

	::= { ciscoBusMIBCompliances 1 }

END






