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

 IMPORTS
	ciscoMgmt			FROM CISCO-SMI
	MODULE-IDENTITY, OBJECT-TYPE,
	Counter32, Integer32		FROM SNMPv2-SMI
	ifIndex 			FROM IF-MIB
	MODULE-COMPLIANCE, OBJECT-GROUP	FROM SNMPv2-CONF
	RowStatus, DisplayString, 
	MacAddress, TimeStamp, 
	TruthValue			FROM SNMPv2-TC
	VpiInteger, 
	VciInteger,
	AtmLaneAddress			FROM LAN-EMULATION-CLIENT-MIB;

 ciscoLecsMIB	MODULE-IDENTITY
	LAST-UPDATED "9605291437Z"
	ORGANIZATION "Cisco System Inc."
	CONTACT-INFO
		" Cisco System Inc."
	DESCRIPTION
		" The   MIB   module  for   the  management    of LANE
	Configuration in Cisco devices."
	::= { ciscoMgmt 38 }
	
 ciscoLecsMIBObjects OBJECT IDENTIFIER ::= { ciscoLecsMIB 1 }

 lecs	OBJECT IDENTIFIER ::= { ciscoLecsMIBObjects 1 }
 config OBJECT IDENTIFIER ::= { ciscoLecsMIBObjects 2 }

-- A management  station that wishes to  set up a  LECS on the current
-- device using  this MIB should  perform  the following  steps.  Some
-- parts are  order dependent  while others are  not (more  detail  to
-- follow). An entry  must be entered  into the lecsConfigTblTable.  A
-- default ELAN name is not  required and if it  is not provided, then
-- the lecsConfigTblTable will be  sparse.  This step is not necessary
-- if an entry already exists in the table. 
--
-- An entry   must be added to   the lecsTable.  For  the  LECS  to be
-- functional the  lecsEntry   must   reference   an entry in      the
-- lecsConfigTblTable.   A lecsEntry can   be created however, without
-- the existence of a corresponding lecsConfigTblEntry. 
--
-- After an entry has been created in the lecsTable, ATM addresses can
-- be bound to it  by use of the  lecsAtmAddrTable.  Entries added  to
-- the lecsAtmAddrTable, will dictate which  ATM Addresses a LECS will
-- receive  requests on.   Only when there   are entries in   both the
-- lecsTable   and  lecsAtmAddrTable  will  configuration  requests be
-- received and processed.  
-- 
-- The real data that is referenced within the configuration frames is
-- located   in   the  lecsElanConfigTable,    lecsMacConfigTable  and
-- lecsAtmAddrConfigTable. The management  station will want to create
-- entries in these tables  as appropriate to model the  corresponding
-- LAN emulation  set  up.  These tables   may only be filled   once a
-- lecsConfigTblEntry has been created to hold them. 
-- 

 lecsTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF LecsEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The  (conceptual)   table containing  the   interface
		specific information   of  the LECS  on   a particular
		device and its associated statistics for that interface. "
	::= { lecs 1 }

 lecsEntry OBJECT-TYPE
	SYNTAX     LecsEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"An   entry  (conceptual   row) in   the    lecsTable,
		containing information   of a   LECS for a  particular
		interface.  Note that  deleting an entry will have the
		side effect of deleting  corresponding entries in  the
		lecsAtmAddrTable."  
	INDEX      { ifIndex }
	::= { lecsTable 1 }

 LecsEntry ::= SEQUENCE {
	lecsConfigTableName	DisplayString, 
	lecsUpTime              TimeStamp,
	lecsInConfigReqs	Counter32,
	lecsInConfigErrors	Counter32,
	lecsOutConfigFails	Counter32,
	lecsLastFailCause	Integer32,
	lecsLastFailLec		AtmLaneAddress,
	lecsOperStatus		INTEGER,
	lecsAdminStatus		INTEGER,
	lecsStatus              RowStatus,
	lecsMasterState         TruthValue
 }

 lecsConfigTableName OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (1..32))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"The  textual name  used  to identify a  configuration
		table in  use by the  designated LECS.  Note that this
		value  must be  a  reference  to    an entry  in   the
		lecsConfigTblTable." 
	::= { lecsEntry 1 }
	
 lecsUpTime OBJECT-TYPE
	SYNTAX     TimeStamp
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The value of sysUpTime when  this entry was created.
		Note that   changing the value  of the lecsAdminStatus
		will not affect the value of this object.  This object
		is only set at row creation  time ( whether it is from
		explicit use of SNMP, the CLI or from initialization at
		boot time)." 
	::= { lecsEntry 2 }
	 
 lecsInConfigReqs OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The number  of LE_CONFIGURE_REQUESTs  that have been
		received by this  LECS on this  designated interface."
	::= { lecsEntry 3 }

 lecsInConfigErrors OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"  Then number  of packets sent  to the  LECS from the
		lower layers  but which  were not correctly  formatted
		configure requests."
	::= { lecsEntry 4 }

 lecsOutConfigFails OBJECT-TYPE
	SYNTAX     Counter32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The number of  LE_CONFIGURE_RESPONSEs sent by this  
		particular LECS  whose status was other than success."
	::= { lecsEntry 5 }

 lecsLastFailCause OBJECT-TYPE
	SYNTAX     Integer32
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"  The    cause     for   rejection  of     the   last
		LE_CONFIGURE_REQUEST.  This  will be the value  of the
		status field    that    was sent   in   the  rejection
		LE_CONFIGURE_RESPONSE.  If the config server has never
		issued  a failed response  then  this object will have
		the value of 0." 
	::= { lecsEntry 6 }

 lecsLastFailLec OBJECT-TYPE
	SYNTAX     AtmLaneAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"   The  ATM address  of    the LE  client whose  last
		configuration  request was rejected.  This ATM address
		will be  for the LE client who  was delivered the last
		LE_CONFIGURE_RESPONSE       that       caused      the
		lecsOutConfigFails object to increment.  This value is
		taken  directly from the  LE_CONFIGURE_REQUEST  and is
		not guarenteed to be correctly identify a LEC." 
	::= { lecsEntry 7 }

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

 lecsAdminStatus OBJECT-TYPE
	SYNTAX     INTEGER { active(1), inactive(2) }
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The desired  state of the  LECS on this interface 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 lecsOperStatus."
	DEFVAL     { active }
	::= { lecsEntry 9 }

 lecsStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The status object for the lecsEntry. Note that the
		lecsConfigTableName must be specified at row creation
                time." 
	::= { lecsEntry 10 } 

 lecsMasterState OBJECT-TYPE
	SYNTAX     TruthValue
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" An indication of whether the LECS is acting as the
		operative master or is a redundant slave."
	::= { lecsEntry 11 }

--
-- The ATM addresses associated with the particular LECSs
--

 lecsAtmAddrTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF LecsAtmAddrEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
                "  A  (conceptual)  table of ATM   addresses which are
		listened to by LECSs on this device."
	::= { lecs 2 }

 lecsAtmAddrEntry OBJECT-TYPE
	SYNTAX     LecsAtmAddrEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry     (conceptual row) that denotes  an   ATM
		address, on   a  particular  interface, that  a   LECS
		listens on.  Note that an entry  in the lecsTable must
		exist for the corresponding  ifIndex first before  any
		ATM addresses can be assigned to it." 
	INDEX      { ifIndex, lecsAtmAddrIndex }
	::= { lecsAtmAddrTable 1 }

 LecsAtmAddrEntry ::= SEQUENCE {
	lecsAtmAddrIndex	Integer32,
	lecsAtmAddrSpec		AtmLaneAddress,
	lecsAtmAddrMask		OCTET STRING,
	lecsAtmAddrActual	AtmLaneAddress,
	lecsAtmAddrState        INTEGER,
	lecsAtmAddrStatus	RowStatus
 }

 lecsAtmAddrIndex OBJECT-TYPE
	SYNTAX     Integer32 (1..2147483647)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An arbitrary number  that uniquely corresponds to  a
		value of lecsAtmAddrActual for a designated interface.
		Note that lecsAtmAddrActual could not  be used for the
		index since it may  not  be known at  the time  of row
		creation (to be  resolved through interaction with the
		switch).  This  value must remain  constant while  the
		device  is running.    It  is not   guarenteed to   be
		constant between reboots of the device." 
	::= { lecsAtmAddrEntry 1 }

 lecsAtmAddrSpec OBJECT-TYPE
	SYNTAX     AtmLaneAddress
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"  An ATM  address specified by  the  network or local
		management that, with the ATM address mask, determines
		a  portion of  the  ATM address  that the  LECS on the
		designated   interface  will use  to  accept configure
		requests on.    If   this object  is  omitted   at row
		creation time then the LECS  will try to determine  an
		ATM address, through ILMI, on  its own.  When the LECS
		is configured  to have one  ATM  address (one entry in
		this table), modifying this  object will result in the
		LECS reinitializing and   dropping all connections  to
		it." 
	::= { lecsAtmAddrEntry 2 }

 lecsAtmAddrMask OBJECT-TYPE
	SYNTAX     OCTET STRING (SIZE (0 | 20))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"  A    bit  mask signifying   what   portion   of the
		specified ATM address is relevant.  If the ATM address 
		is not   specified (i.e. at   row creation time), then
		this object defaults to all zeros (no  portion of the 
		lecsAtmAddrSpec  value  is  relevant).    If  the  ATM
		address is specified   but this object  omitted at row
                creation then this object defaults to all ones (all of
		the specified   lecsAtmAddrSpec   value is  relevant).
		This object  cannot be specified  at row creation time
		without    also    specifying   a    value    for  the
		lecsAtmAddrSpec object.  When  the LECS is  configured
		to have  one ATM  address  (one entry in  this table),
		modifying   this  object    will result in    the LECS
		reinitializing  and dropping  all connections  to it."
	::= { lecsAtmAddrEntry 3 }

 lecsAtmAddrActual OBJECT-TYPE
	SYNTAX     AtmLaneAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The  resulting address that the   LECS is accepting 
		configuration   requests  on   for   the    designated
		interface.   This  address is   the  result    of  the
		specified   ATM address,  its   mask   and interaction
		through the ILMI  with  the  switch. Note  that   this
		object   is    only   valid  when    the  corresponding
		lecsOperStatus is 'active'." 
	::= { lecsAtmAddrEntry 4 }

 lecsAtmAddrState OBJECT-TYPE
	SYNTAX     INTEGER { actualValueInvalid(1),       -- 000
		             actualValueValid(2),         -- 001
			     registeredWithSignalling(3), -- 010
			     regSigAndValid(4),           -- 011
			     registeredWithIlmi(5),       -- 100
			     regIlmiAndValid(6),          -- 101
			     regSigandIlmi(7),            -- 110
			     regSigIlmiAndValid(8)        -- 111
			     }
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" Once a (conceptual) row   is created, the LECS,   if
		active,    goes about  interacting   through ILMI  and
		registering the address with the switch.  The value of
		this object denote  what phase the current  address is
		in.  Whether  the  lecsAtmAddrActual is valid  or not,
		whether the address  has  been registered  through the
		ILMI and whether the  address has been registered with
		signalling. "
	::= { lecsAtmAddrEntry 5 }
		

 lecsAtmAddrStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The status object for the lecsAtmAddrTable."  
	::= { lecsAtmAddrEntry 6 }


 lecsConfigDirectConnTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF LecsConfigDirectConnEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" This (conceptual)   table allows a  manager  to view
		what LE   clients  have established   configure direct
		connections to the LECS over the designated interface."
	::= { lecs 3 }

 lecsConfigDirectConnEntry OBJECT-TYPE
	SYNTAX     LecsConfigDirectConnEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry  (conceptual row) that denotes a connection
		to the LECS in the form  of a configure direct.  It is
		important to note that the lecsConfigDirectConnSrc and
		lecsConfigDirectConnDst are  only significant when the
		VC is a SVC.  When the row represents a PVC then these
		two columns will be omitted from the row, resulting in
		a sparse table." 
	INDEX     { ifIndex, lecsConfigDirectConnVpi, lecsConfigDirectConnVci }
	::= { lecsConfigDirectConnTable 1 }

 LecsConfigDirectConnEntry ::= SEQUENCE {
	lecsConfigDirectConnVpi	    VpiInteger,
	lecsConfigDirectConnVci	    VciInteger,
	lecsConfigDirectConnVCType  INTEGER,
	lecsConfigDirectConnSrc	    AtmLaneAddress,
	lecsConfigDirectConnDst     AtmLaneAddress,
	lecsConfigDirectDstType     INTEGER
 }
	
 lecsConfigDirectConnVpi OBJECT-TYPE
	SYNTAX     VpiInteger
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"  The  virtual path   identifier  of  the  designated
		connection to the LECS."
	::= { lecsConfigDirectConnEntry 1 }

 lecsConfigDirectConnVci OBJECT-TYPE
	SYNTAX     VciInteger
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" The  virtual channel   identifier of  the designated
		connection to the LECS."
	::= { lecsConfigDirectConnEntry 2 }

 lecsConfigDirectConnVCType OBJECT-TYPE
	SYNTAX     INTEGER { pvc(1), svc(2) }
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		"  The type of virtual  connection that the designated
		configure direct uses.   If this object  has the value
		'pvc'    then the     lecsConfigDirectConnSrc      and
		lecsConfigDirectConnDst   will not  be  instantiated."
	::= { lecsConfigDirectConnEntry 3 } 
	
 lecsConfigDirectConnSrc OBJECT-TYPE
	SYNTAX     AtmLaneAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The calling party ID if the VC is  a SVC.  If the VC
		is a PVC  then this object  shall not be  instantiated
		for the designated VC."
	::= { lecsConfigDirectConnEntry 4 }

 lecsConfigDirectConnDst OBJECT-TYPE
	SYNTAX     AtmLaneAddress
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The address that  was used by  the requesting LEC to
		make the designated  connection.  The called party  ID
		if  the VC is   a SVC.  If the VC   is a PVC then this
		object shall not be instantiated for the designated VC."
	::= { lecsConfigDirectConnEntry 5 }

 lecsConfigDirectDstType OBJECT-TYPE
	SYNTAX     INTEGER { laneClient(1), laneServer(2),
                             laneConfig(3), unknown(4) }
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The type of entity on the other end of the VC."
	::= { lecsConfigDirectConnEntry 6 }

--
-- The following tables are facets of the configuration tables that the 
-- LECS has access to.
--
 lecsConfigTblTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF LecsConfigTblEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A (conceptual)   table of the   configuration tables
		in existence  on the device. Note   that an entry must
		exist in this   table before it  can  be used in  the 
		lecsTable, lecsElanConfigTable, lecsMacConfigTable  or
		lecsAtmAddrConfigTable."
	::= { config 1 }

 lecsConfigTblEntry OBJECT-TYPE
	SYNTAX     LecsConfigTblEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"   An   entry   (conceptual  row)  that    denotes  a
		configuration table, potentially accessible by a LECS."
	INDEX      { IMPLIED lecsConfigTblName }
	::= { lecsConfigTblTable 1 } 

 LecsConfigTblEntry ::= SEQUENCE {
	lecsConfigTblName             DisplayString,
	lecsConfigTblDefaultElanName  DisplayString,
	lecsConfigTblStatus           RowStatus
 }

 lecsConfigTblName OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (1..32))
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The textual name   used to  identify a  configuration
		table." 
	::= { lecsConfigTblEntry 1 }

 lecsConfigTblDefaultElanName OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (0..32))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"  The ELAN  name assigned to   LE clients who  do not
		specify what  ELAN they  wish  to join when  issuing a
		configuration  request.  It is important to understand
		when the default ELAN name  will be used.  If the  LEC
		specifies  an  ELAN name in  its configuration request
		and  a different mapping  or  a conflicting mapping is
		present for that LEC then the default ELAN will not be
		used and a failure will be returned.   
			If the  LEC does not specify  the ELAN name in
		the  configuration  request  and there   is no mapping
		within  the LECS then  the  default elan name will  be
		used and a successful reply will be returned (provided
		the  rest of the  request is  valid). If  there is  no
		default  ELAN specified  for this  configuration table
		then a LE client, with no mapping to any elan, will be
		rejected   from  configuration  regardless  of     the
		parameters of the  configuration request.  The default
		value (''H) indicates  that  no default ELAN   name is
		selected. 	
			The default ELAN cannot have an access type of
		closed.  Attempting to set  the default ELAN type to a
		closed ELAN will result in an error."
	DEFVAL     { ''H }
	::= { lecsConfigTblEntry 2 }

 lecsConfigTblStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The status  object  associated  with the  designated
		entry.    Note         that   a        value       for
		lecsConfigTblDefaultElanName   cannot  be specified at
		row creation  time  (as it points  to  an entry in the
		lecsElanConfigTable  which depends on this  designated
		entry).   A   management station wishing  to   set the
		lecsConfigTblDefaulElanName   must do so in subsequent
		SET requests to the now active row."
	::= { lecsConfigTblEntry 3 }

 lecsElanConfigTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF LecsElanConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A  (conceptual)  configuration table that represents
		the names  of  the ELANs   known to  a LECS  and their
		corresponding LES ATM addresses."
	::= { config 2 }

 lecsElanConfigEntry OBJECT-TYPE
	SYNTAX     LecsElanConfigEntry 
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry (conceptual row)  in the ELAN configuration
		table representing  a mapping from  an  ELAN name to a
		LES ATM address.  Note that a value  of ELAN name must
		exist in this  table before it  can be used within the
		lecsMacConfigTable  or    the  lecsAtmAddrConfigTable.
		Also  note  that the  IMPLIED  indexing of  this table
		will not translate to the SNMPv1 SMI."
	INDEX { lecsConfigTblName, IMPLIED lecsElanConfigName }
	::= { lecsElanConfigTable 1 }

 LecsElanConfigEntry ::= SEQUENCE {
	lecsElanConfigName	DisplayString,
	lecsElanLesAtmAddr 	AtmLaneAddress,
	lecsElanAccess		INTEGER,
	lecsElanConfigStatus 	RowStatus,
	lecsElanSegmentId	INTEGER
 }

 lecsElanConfigName OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (1..32))
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" The name  assigned to an  ELAN in this configuration
		entry." 
	::= { lecsElanConfigEntry 1 }

 lecsElanLesAtmAddr OBJECT-TYPE
	SYNTAX     AtmLaneAddress
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The ATM address of  the LES associated with the ELAN
		of this entry."
	::= { lecsElanConfigEntry 2 }

 lecsElanAccess OBJECT-TYPE
	SYNTAX     INTEGER { open(1), closed(2) } 
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"  The access of  the  ELAN to  configure requests.  A
		'closed' ELAN (similar  to  a closed user  group)  is
		prevented from being used as the default ELAN and also
		may not be   asked  for in  the   LE_CONFIGURE_REQUEST
		solely by    ELAN name.  As  such   only  clients that
		provide an ATM address   or MAC address that has  been
		configured  for    the 'closed' ELAN   will   be given
		returned a successful LE_CONFIGURE_RESPONSE."
	DEFVAL { open }
	::= { lecsElanConfigEntry 3 }

 lecsElanConfigStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" This object can  only be set to  active once a valid
		value of lecsElanLesAtmAddr is filled in."
	::= { lecsElanConfigEntry 4 }

 lecsElanSegmentId OBJECT-TYPE
	SYNTAX     INTEGER (0..4095)
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The Segment Id for Token Ring ELANs associated with
		this ELAN.  A value of zero indicates that a ring
		number is not applicable to this ELAN."
	::= { lecsElanConfigEntry 5 }

 lecsMacConfigTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF LecsMacConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A   (conceptual) table utilized by a   LECS to map a
		registered MAC address of a LEC to an ELAN name.  This
		table is used be the LECS to  assign a LEC to an ELAN.
		It  is, however, not  mandatory  for all  configurable
		LECs to be in  this table as they  may opt to use  the
		lecsAtmAddrConfigTable instead  or perhaps rely on the
		default ELAN set in the lecsConfigTblTable.  Also note
		that  a  LES may  opt to use  this table  to determine
		authorization of a LEC to join an ELAN." 
	::= { config 3 }

 lecsMacConfigEntry OBJECT-TYPE 
	SYNTAX     LecsMacConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry (conceptual row) of a mapping between a MAC
		address in primary utilization  by  a LEC and an  ELAN
		name." 
	INDEX      { lecsConfigTblName, lecsMacConfigAddress }
	::= { lecsMacConfigTable 1 }

 LecsMacConfigEntry ::= SEQUENCE {
	lecsMacConfigAddress	MacAddress,
	lecsMacConfigElanName	DisplayString,
	lecsMacConfigLastUsed	TimeStamp,
	lecsMacConfigStatus	RowStatus
 }

 lecsMacConfigAddress OBJECT-TYPE
	SYNTAX     MacAddress
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"  The MAC address of a  to be associated with an ELAN
		name." 
	::= { lecsMacConfigEntry 1 }

 lecsMacConfigElanName OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (1..32))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" An ELAN name  that  will be returned  to a  LEC that
		provides   the   corresponding  MAC   address    in  a
		configuration  request.  Note  that  only  ELAN  names
		within the  lecsElanConfigTable  are acceptable values
		for  this object.  If this  object is left unspecified
		at row creation, then it will take on the value of the
		lecsConfigTblDefaultElanName  from    the   designated
		configuration table."
	::= { lecsMacConfigEntry 2 }
 
 lecsMacConfigLastUsed OBJECT-TYPE
	SYNTAX     TimeStamp
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
	        " The value of sysUpTime when this entry was last used
		to map a  MAC address to an  ELAN name.  Managers  may
		opt to use this object to garbage collect entries that
		have not been used for a prolonged period of time."
	::= { lecsMacConfigEntry 3 }

 lecsMacConfigStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"  The row   cannot   be set   to  'active' until   an
		appropiate  value exists  for   lecsMacConfigElanName.
		This  may be provided by  the agent if  there exists a
		value for  the lecsConfigTblDefaultElanName  for   the
		designated lecsConfigTblName."
	::= { lecsMacConfigEntry 4 }

 lecsAtmAddrConfigTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF LecsAtmAddrConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" This (conceptual) table is  used by the LECS to  map
		between an ATM address of a LEC and ELAN name. "
	::= { config 4 }

 lecsAtmAddrConfigEntry OBJECT-TYPE
	SYNTAX     LecsAtmAddrConfigEntry
	MAX-ACCESS not-accessible
	STATUS 	   current
	DESCRIPTION
		"  An entry (conceptual row)  of the config table that
		maps between an ATM address of a LEC and ELAN name."
	INDEX      { lecsConfigTblName, lecsAtmAddrConfigAddress, 
                     lecsAtmAddrConfigMask }
	::= { lecsAtmAddrConfigTable 1 }

 LecsAtmAddrConfigEntry ::= SEQUENCE {
	lecsAtmAddrConfigAddress	OCTET STRING,
	lecsAtmAddrConfigMask		OCTET STRING,
	lecsAtmAddrConfigElanName	DisplayString,
	lecsAtmAddrLastUsed	        TimeStamp,
	lecsAtmAddrConfigStatus		RowStatus 
 }

 lecsAtmAddrConfigAddress OBJECT-TYPE
	SYNTAX     OCTET STRING (SIZE (20))
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An ATM  Address of a LEC  that when combined with an
		address mask is used  to  determine which ELAN the  LE
		client should belong to."
	::= { lecsAtmAddrConfigEntry 1 }

 lecsAtmAddrConfigMask OBJECT-TYPE 
	SYNTAX     OCTET STRING (SIZE (20))
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"  An  ATM address mask  associated   with the LEC ATM
		address of this entry. Bits  in this mask that are set
		to zero  indicate that  corresponding bit locations in
		the  comparison ATM address  are to be ignored for the
		purposes of  matching.  A mask of  all  zeros would be
		the trivial case of having all comparisons match while
		a  mask  of  all   ones indicates  that   the  two ATM
		addresses must  match exactly.   This object is useful
		due to  the fact that  ATM  addresses are  a composite
		negotiated by the switch  and connected device.   Wild
		carding  the  prefix   of  an   addresses  indicates a
		preference  of where a LEC  is  to join regardless  of
		what switch it  is attached from.  Wildcarding the ESI
		and selector  byte indicates that  a LEC is  to join a
		certain ELAN based on what switch it is attached to." 
	::= { lecsAtmAddrConfigEntry 2 }

 lecsAtmAddrConfigElanName OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (1..32))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The ELAN name to  be returned to a configure request
		that has specified an ATM   address that matches   the
		address/mask pair in this entry.   Note that only ELAN
		names  within the  lecsElanConfigTable are  acceptable
		values  for this   object.  If  this  object is   left
		unspecified at row creation,  then it will take on the
		value of  the lecsConfigTblDefaultElanName  from   the
		designated configuration table." 
	::= { lecsAtmAddrConfigEntry 3 }

 lecsAtmAddrLastUsed OBJECT-TYPE
	SYNTAX     TimeStamp
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The value  of sysUpTime  corresponding to  the  time
		this entry was last used.  The manager  may opt to use
		this object to garbage  collect entries that have  not
		been used for a prolonged period of time."
	::= { lecsAtmAddrConfigEntry 4 }

 lecsAtmAddrConfigStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The  status of this entry (conceptual)   row in the 
		lecsAtmAddrConfigTable.  The   row  cannot be  set  to
		'active'   until   an  appropiate   value   exists for
		lecsAtmAddrConfigElanName. This may be provided by the
		agent  if    there   exists   a   value     for    the
		lecsConfigTblDefaultElanName     for   the  designated
		lecsConfigTblName." 
	::= { lecsAtmAddrConfigEntry 5 }

 lecsLesConfigTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF LecsLesConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A table of LESs servicing an ELAN."
	::= { config 5 }

 lecsLesConfigEntry OBJECT-TYPE
	SYNTAX     LecsLesConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry (conceptual row) in the
                lecsLesConfigTable."
	INDEX { lecsConfigTblName, lecsElanConfigName, lecsLesAtmAddr }
	::= { lecsLesConfigTable 1 }

 LecsLesConfigEntry ::= SEQUENCE {
	lecsLesAtmAddr      OCTET STRING,
	lecsLesPriority     INTEGER,
	lecsLesConnState    INTEGER,
	lecsLesConfigStatus RowStatus
 }

 lecsLesAtmAddr OBJECT-TYPE
	SYNTAX     OCTET STRING (SIZE(20))
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" The ATM address of a LES configured to service this
                ELAN." 
	::= { lecsLesConfigEntry 1 }

 lecsLesPriority OBJECT-TYPE
	SYNTAX     INTEGER (0..10000)
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The relative priority of the LES.  The lower this
                number the more priority is given the LES for
                servicing the ELAN.  Such that a higher priority LES
                will supersede operation of the ELAN in the presence
                of a lower priority LES.
                  Note that the LECS will adjust the number entered to
                fit into a contiguous numbering space equalling the
                number of LESs defined for the particular ELAN.  For
                example if there is one LES defined for an ELAN then
                that LES's priority will always be zero since there
                are no other LESs to contend with.  Setting that LESs
                priority to ten (e.g.) will work but the net result
                will be that the priority will still be zero (as will
                be verified by consequent retrieval of this objects
                value).  If a second LES is defined for this ELAN with
                a priority of ten (e.g.) the net result would be that
                the second LES will have a priority of one since it is
                the only other LES for that ELAN and behind in
                priority from the first LES.  If the second LES were
                given a priority of zero at any time then it would
                keep the priority of zero and the first LES would
                transition to having a priority of one.
                  Note that defining a new LES with a priority already
                in existance by another LES has the effect of giving
                the new LES the designated priority and reducing the
                priority (numerically increasing) of all LESs equal to
                and below it in rank.
                  Likewise, deleting a LES from this table will cause
                LESs below it in priority (numerically greater) to
                move up in the table (modifying their priority value
                to be one less) to fill in the now empty slot.  
                  In this way a table, with at least one entry, should
                always contain entries with priorities including zero
                up to the number of entries minus one (0..(n-1))."
	DEFVAL { 0 }
	::= { lecsLesConfigEntry 2 }

 lecsLesConnState OBJECT-TYPE
	SYNTAX     INTEGER { active(1), inactive(2), notConnected(3) }
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
		" The present state of the given LES.  The active(1)
                LES is servicing the ELAN, inactive(2) LESs are
                connected but not accepting joins, not-connected(3)
                LESs are not accounted for."
	::= { lecsLesConfigEntry 3 }

 lecsLesConfigStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" The status of the conceptual row."
	::= { lecsLesConfigEntry 4 }

 lecsRDConfigTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF LecsRDConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" A   (conceptual) table utilized by a   LECS to map a
		registered Route Descriptor of a LEC to an ELAN name.
		This table is used by the LECS to  assign a LEC to an
		ELAN.  It  is, however, not  mandatory  for all
		configurable LECs to be in  this table as they  may
		opt to use the lecsAtmAddrConfigTable or
		lecsMacConfigTable instead  or perhaps rely on the 
		default ELAN set in the lecsConfigTblTable.  Also note
		that  a  LES may  opt to use  this table  to determine
		authorization of a LEC to join an ELAN." 
	::= { config 6 }

 lecsRDConfigEntry OBJECT-TYPE 
	SYNTAX     LecsRDConfigEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		" An entry (conceptual row) of a mapping between a
		Route Descriptor in primary utilization  by  a LEC and
		an  ELAN name." 
	INDEX      { lecsConfigTblName, lecsRDConfigSegmentId,
		     lecsRDConfigBridgeNum } 
	::= { lecsRDConfigTable 1 }

 LecsRDConfigEntry ::= SEQUENCE {
	lecsRDConfigSegmentId	INTEGER,
	lecsRDConfigBridgeNum   INTEGER,
	lecsRDConfigElanName	DisplayString,
	lecsRDConfigLastUsed	TimeStamp,
	lecsRDConfigStatus	RowStatus
 }

 lecsRDConfigSegmentId OBJECT-TYPE
	SYNTAX     INTEGER (0..4095)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"  The Segment ID in a Route Descriptor provided by a
		LEC during configuration. " 
	::= { lecsRDConfigEntry 1 }

 lecsRDConfigBridgeNum OBJECT-TYPE
	SYNTAX     INTEGER (0..15)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"  The Bridge Number in a Route Descriptor provided by a
		LEC during configuration. " 
	::= { lecsRDConfigEntry 2 }

 lecsRDConfigElanName OBJECT-TYPE
	SYNTAX     DisplayString (SIZE (1..32))
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		" An ELAN name  that  will be returned  to a  LEC that
		provides  the corresponding   Route  Descriptor  in  a
		configuration  request.  Note  that  only  ELAN  names
		within the  lecsElanConfigTable  are acceptable values
		for  this object.  If this  object is left unspecified
		at row creation, then it will take on the value of the
		lecsConfigTblDefaultElanName  from    the   designated
		configuration table."
	::= { lecsRDConfigEntry 3 }
 
 lecsRDConfigLastUsed OBJECT-TYPE
	SYNTAX     TimeStamp
	MAX-ACCESS read-only
	STATUS     current
	DESCRIPTION
	        " The value of sysUpTime when this entry was last used
		to map a Route Descriptor to an ELAN name.  Managers may
		opt to use this object to garbage collect entries that
		have not been used for a prolonged period of time."
	::= { lecsRDConfigEntry 4 }

 lecsRDConfigStatus OBJECT-TYPE
	SYNTAX     RowStatus
	MAX-ACCESS read-create
	STATUS     current
	DESCRIPTION
		"  The row   cannot   be set   to  'active' until   an
		appropiate  value exists  for   lecsRDConfigElanName.
		This  may be provided by  the agent if  there exists a
		value for  the lecsConfigTblDefaultElanName  for   the
		designated lecsConfigTblName."
	::= { lecsRDConfigEntry 5 }
 
 lecsMIBConformance OBJECT IDENTIFIER ::= { ciscoLecsMIB 2 }
 lecsMIBCompliances OBJECT IDENTIFIER ::= { lecsMIBConformance 1 }
 lecsMIBGroups      OBJECT IDENTIFIER ::= { lecsMIBConformance 2 }

 lecsMIBCompliance MODULE-COMPLIANCE
	STATUS current
	DESCRIPTION
		" The   compliance   statement for   entities    which
		implement the Cisco LECS MIB."
	MODULE
		MANDATORY-GROUPS { lecsMIBGroup }
	::= { lecsMIBCompliances 1 }

 lecsMIBGroup OBJECT-GROUP
	OBJECTS { lecsConfigTableName, lecsUpTime, lecsInConfigReqs, 
                  lecsInConfigErrors, lecsOutConfigFails,
		  lecsLastFailCause, lecsLastFailLec, lecsOperStatus,
		  lecsAdminStatus, lecsStatus, lecsAtmAddrSpec,
		  lecsAtmAddrMask, lecsAtmAddrActual,
		  lecsAtmAddrState, lecsAtmAddrStatus,
                  lecsConfigDirectConnSrc, lecsConfigDirectConnDst,
                  lecsConfigTblStatus, lecsElanLesAtmAddr,
                  lecsElanConfigStatus, lecsMacConfigElanName,
                  lecsMacConfigLastUsed, lecsMacConfigStatus,
                  lecsAtmAddrConfigElanName, lecsAtmAddrLastUsed,
                  lecsAtmAddrConfigStatus, lecsConfigDirectConnVCType,
                  lecsConfigTblDefaultElanName, lecsElanAccess 
		}
	STATUS current
	DESCRIPTION
		" A collection  of  objects for  the managing  of LECS
		operation." 
	::= { lecsMIBGroups 1 }

 lecsTokenRingMIBGroup OBJECT-GROUP
	OBJECTS { lecsElanSegmentId, lecsRDConfigElanName,
		  lecsRDConfigLastUsed, lecsRDConfigStatus }
	STATUS current
	DESCRIPTION
		" A collection of objects for the managing of the LECS
		emulated token ring operation."
	::= { lecsMIBGroups 2 }

 lecsRedundancyMIBGroup OBJECT-GROUP
	OBJECTS { lecsMasterState, lecsConfigDirectDstType,
		  lecsLesPriority, lecsLesConnState,
		  lecsLesConfigStatus }
	STATUS current
	DESCRIPTION
		" A collection of objects for the managing of the
		LECS/LES redundancy operation."
	::= { lecsMIBGroups 3 }
END

