-- DRAFT

-- Copyright 1997-1998 by Allied Telesyn International, Inc.
--
-- Name 	: ATSWTCH2.MIB
-- Version	: 1.8 for 802.1q Compliant Fenix switch.
-- Description 	: Private MIB for ATI Next Generation atswitch Switch (AT37XX).
-- 		: This MIB will be used in Windows and UNIX Environment.

-- History :
--	 *   08-13-97 - Create.
--       *   01-11-98 Changed the MIB object PortCount to return correct number.
--       *   01-28-98  Changed the PvVlanName to PvVlanId. Also some changes
--       *             in the PortStatus, etc.
--	 *   02-04-98 Removed TpFdbAge as the ASIC doesn't support the Age.
--       *   02-05-98 Added atswitchIPAddressStatus
--       *   02-18-98 Changed the PortNum and MonId to 27 from 25 and 16 respct.
--       *   03-03-98 Changed the PortNum and MonId and wherever the Ids were
--       *            hardcoded. Also changed the description here and there.
--       *   04-28-98 Added the MDAType, added more state for atswitchPortState,
--	    *   05-21-98 Added Objects concerened with 8124XL.
--	    *   05-21-98 Added FlowControl only for 8124XL and changed PortSpeed
--				  to read-write.
--	    *   06-01-98 Added 8124XL product Id.	
--	 *	   09-14-98 Changed Other to 10 and added 3714XL.    
--	*	09-29-98 added FlowControl as a device Config Param.
--	*	10-02-98 Changed the PvVlanId Integer back to PvVlanName string.
--	*	10-01-98 Added Port2Vlan Table to be read-write and also
--	*		 Added Implicit Vlans for each port Entry.
--	*	10-05-98 Added atswitchBeVlanTagId and atswitchBeVlanOuputPorts and 
--	*		    changed the atswitchBeVlanStatus decsription to be more of a
--	*		    Row Status Object. 
--      *        09-17-98 Added the security feature. ( added later)
--	*	 12-10-98 Aded Trunk Group and added StaticMACVlan suppport.
--	* Trying to merge fenix and Buffalo to make it a single MIB.


ATSWTCH2-MIB DEFINITIONS ::= BEGIN
	IMPORTS
		enterprises,Counter,IpAddress,TimeTicks
			FROM RFC1155-SMI
		DisplayString
			FROM RFC1213-MIB
		TRAP-TYPE
			FROM RFC-1215
		OBJECT-TYPE
			FROM RFC-1212;


--
--  General Definitions
--

   MacAddress ::= OCTET STRING (SIZE (6))    -- a 6 octet address
   BridgeId ::= OCTET STRING (SIZE (8))   -- the
                                                 -- Bridge-Identifier
                                                 -- as used in the
                                                 -- Spanning Tree
          -- Protocol to uniquely identify a bridge.  Its first two
          -- octets (in network byte order) contain a priority
          -- value and its last 6 octets contain the MAC address
          -- used to refer to a bridge in a unique fashion
          -- (typically, the numerically smallest MAC address
          -- of all ports on the bridge).

          -- Several objects in this MIB module represent values of
          -- timers used by the Spanning Tree Protocol.  In this
          -- MIB, these timers have values in units of hundreths of
          -- a second (i.e. 1/100 secs).
          -- These timers, when stored in a Spanning Tree Protocol's
          -- BPDU, are in units of 1/256 seconds.  Note, however,
          -- that 802.1D-1990 specifies a settable granularity of
          -- no more than 1 second for these timers.  To avoid
          -- ambiguity, a data type is defined here as a textual
          -- convention and all representation of these timers
          -- in this MIB module are defined using this data type.  An
          -- algorithm is also defined for converting between the
          -- different units, to ensure a timer's value is not
          -- distorted by multiple conversions.
          -- The data type is:

          Timeout ::= INTEGER -- a STP timer in units of 1/100 seconds

          -- To convert a Timeout value into a value in units of
          -- 1/256 seconds, the following algorithm should be used:
          --
          --      b  = floor( (n * 256) / 100)
          --
          -- where:
          --      floor   =  quotient [ignore remainder]
          --      n is the value in 1/100 second units
          --      b is the value in 1/256 second units
          --
          -- To convert the value from 1/256 second units back to
          -- 1/100 seconds, the following algorithm should be used:
          --
          --      n = ceiling( (b * 100) / 256)
          --
          -- where:
          --      ceiling =  quotient [if remainder is 0], or
          --                 quotient + 1 [if remainder is non-zero]
          --      n is the value in 1/100 second units
          --      b is the value in 1/256 second units
          --
          -- Note: it is important that the arithmetic operations are
          -- done in the order specified (i.e., multiply first, divide
          -- second).



-- group OBJECT IDENTIFIERs
-- atiproduct is the branch for SNMP OID purpose. 

	alliedTelesyn               OBJECT IDENTIFIER ::= { enterprises 207 }
	atiProduct                  OBJECT IDENTIFIER ::= { alliedTelesyn 1 }
        mibObject        	    OBJECT IDENTIFIER ::= { alliedTelesyn 8 }
	atswitchMib       OBJECT IDENTIFIER 
        -- LAST-UPDATED        "9708200000Z"
        -- ORGANIZATION        "Allied Telesyn International."
        -- CONTACT-INFO
        --         "       Allied Telesyn International
        --                 Customer Service
        --
        --         Postal: 950 kifer Road
        --                 Sunnyvale, CA  94087
        --                 USA
        --
        --         Email: support@alliedtelesyn.com
        --
        -- DESCRIPTION
        --         "MIB for the atswitch switch 
        --                      atswitch "
        ::= { mibObject 10}
 	
-- Each Group supported by this mib.

    atswitchSysGroup          	OBJECT IDENTIFIER ::= { atswitchMib 1}
    atswitchConfigGroup         	OBJECT IDENTIFIER ::= { atswitchMib 2}
    atswitchPortConfigGroup   	OBJECT IDENTIFIER ::= { atswitchMib 3}
    atswitchVlanConfigGroup   	OBJECT IDENTIFIER ::= { atswitchMib 4}
    atswitchEthernetStatsGroup	OBJECT IDENTIFIER ::= { atswitchMib 5}
    atswitchEthPortStatsGroup 	OBJECT IDENTIFIER ::= { atswitchMib 6}
    atswitchFwdVlanGroup	        OBJECT IDENTIFIER ::= { atswitchMib 7}
    atswitchTrapAttrGroup        OBJECT IDENTIFIER ::= { atswitchMib 8}
    atswitchBridgeMib   	        OBJECT IDENTIFIER ::= { atswitchMib 9}
    atswitchStaticMACGroup       OBJECT IDENTIFIER ::= { atswitchMib 10}
    atswitchPortMacAddrGroup     OBJECT IDENTIFIER ::= { atswitchMib 12}
    atswitchDebugMallocLogGroup  OBJECT IDENTIFIER ::= { atswitchMib 13}
--    atswitchTrunkGroup  	 OBJECT IDENTIFIER ::= { atswitchMib 14}

-- groups for the Bridge in the AT37XX 

   atswitchBrBase     OBJECT IDENTIFIER ::= { atswitchBridgeMib 1 }

   atswitchBrStp      OBJECT IDENTIFIER ::= { atswitchBridgeMib 2 }

   atswitchBrTp       OBJECT IDENTIFIER ::= { atswitchBridgeMib 3 }
--
-- atswitchSysGroup Entry
-- 
-- Different groups are defined like Reset,Type (8 port,16 port,24 ports),
-- H/W,S/W,IP,SNMP.

atswitchProductType       OBJECT-TYPE
	SYNTAX  INTEGER {
                          at-3726(1),
               		 at-3714(2),
                          at-8124XL(3),
			  		 at-8118(4),
                          at-3726XL(5),
               		 at-3714FXL(6),
					 at-3716XL(7),
                          other(10)
                        }
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
                "
                 This object will return Product Type.
                "
	::=    { atswitchSysGroup 1 }
        
atswitchEthernetPortCount		OBJECT-TYPE
	SYNTAX  INTEGER 
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"
		This object will return the number of 10/100 Mbps Ethernet ports
                on the switch.
		"
	::=    { atswitchSysGroup 2 }

atswitchReset     	OBJECT-TYPE
	SYNTAX  INTEGER {
			switch-no-reset (1),
			switch-reset (2)
			}
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"
		Setting this object to 'switch-reset' will 
		cause the switch to  perform a hardware reset 
		within approximately 4-6 seconds. 
		Setting this object to 'switch-no-reset will 
		have no effect.
		The value 'no-reset' will be returned whenever
		this object is retrieved.
		"
	::= { atswitchSysGroup 3 }

atswitchMDA1Type    OBJECT-TYPE
               SYNTAX INTEGER {
                         rj45-mii(1),
                         fiber(2),
                         none(3)
               }
               ACCESS  read-only
               STATUS  mandatory
               DESCRIPTION
                         "
                         This object returns the MDA type of the Uplink port 
			 
                         "
               ::= { atswitchSysGroup 4 }
atswitchMDA2Type    OBJECT-TYPE
               SYNTAX INTEGER {
                         rj45-mii(1),
                         fiber(2),
                         none(3)
               }
               ACCESS  read-only
               STATUS  mandatory
               DESCRIPTION
                         "
                         This Object is supported in 81XX product line 
                         only.
                         This object returns the MDA type of the Uplink Port
                         named 'B'. It returns 'none' if a  'B' MDA slot
                         is not installed.
                         "
               ::= { atswitchSysGroup 5 }


atswitchDeviceFlowControl    OBJECT-TYPE
               SYNTAX INTEGER {
                                      enable(1),
                                      disable(2)
               }
               ACCESS  read-write
               STATUS  mandatory
               DESCRIPTION
                         "
					This Object is supported on 81XX products only.
                         This object configures the Flow Control of the Device

                                      "
               ::= { atswitchSysGroup 6 }


atswitchSwGroup	OBJECT IDENTIFIER   ::= {atswitchSysGroup 7 }

atswitchIpGroup	OBJECT IDENTIFIER   ::= {atswitchSysGroup 8}

atswitchNMGroup	OBJECT IDENTIFIER   ::= {atswitchSysGroup 9}
		
--The software information group provides details about the size 
--of the image software and the release and version of the present 
--software.

--atswitchSwGroup	OBJECT IDENTIFIER   	::= 	{ atswitchSysGroup 7 }
		    
atswitchSwProduct		OBJECT-TYPE
	SYNTAX  DisplayString (SIZE(0..255))
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"Identifies the software product the device is running.
		"
	::=    { atswitchSwGroup 1 }
	
atswitchSwVersion		OBJECT-TYPE
	SYNTAX  DisplayString (SIZE(0..255))
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		" Identifies the version number of the present release. "
	::=    { atswitchSwGroup 2 }
		

-- The Ip Group
--
-- atswitchIpGroup	OBJECT IDENTIFIER   ::= {atswitchSysGroup 7}
--
-- The Ip Sys group contains  IP Address which is current and configured IP
-- address which gets effective when reset. Also, subnet mask and Default 
-- Gateway address.
-- 
atswitchCurrentIpAddress OBJECT-TYPE
	SYNTAX	IpAddress
	ACCESS	read-only
	STATUS  mandatory
	DESCRIPTION

		" The Current IP address is the one which is currently used 
		  and is obtained dynamically through one of the protocols
 		  interaction.( DHCP or Bootp.)

		  This address is NULL if the Address is Statically configured.
		"
	::= { atswitchIpGroup 1 }

atswitchConfiguredIpAddress OBJECT-TYPE
	SYNTAX	IpAddress
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		" The Configured IP address of the device. This is the address
		  configured through Network or Local Omega.  "
	::= { atswitchIpGroup	2 }

atswitchConfiguredSubnetMask OBJECT-TYPE
	SYNTAX IpAddress
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		" The Configured Subnet Mask of the device."
	::= { atswitchIpGroup	3 }

atswitchConfiguredRouter OBJECT-TYPE
	SYNTAX  IpAddress
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		" The Configured Gateway/Router address of the device"
	::= { atswitchIpGroup	4 }

atswitchIPAddressStatus OBJECT-TYPE
	SYNTAX	INTEGER {
                from-dhcp(1),
                from-bootp(2),
                from-psuedoip(3),
                from-Omega(4)
               }
        ACCESS read-only
        STATUS mandatory
	DESCRIPTION
                " The IP Address can be obtained/configured by any of the above 
                  different ways. This object specifies how IP address currently
                  on the switch Box, was configured/obtained.
                "
	::= { atswitchIpGroup	5 }

atswitchDNServer	OBJECT-TYPE
	SYNTAX  IpAddress
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		" The Configured DNS Server address of the device"
	::= { atswitchIpGroup	6 }

atswitchDefaultDomainName	OBJECT-TYPE
	SYNTAX  DisplayString (SIZE(0..255))
	ACCESS	read-write
	STATUS	mandatory
	DESCRIPTION
		" This Object defines the Default Domain where this switch can be 
		  belong to.
		"
	::=    { atswitchIpGroup 7 }
		
         
--
--  SNMP NetManagemnt related MIB object 
--
--  atswitchNMGroup	OBJECT IDENTIFIER   ::= {atswitchSysGroup 8}
--
--

atswitchNwMgrTable	OBJECT-TYPE
	SYNTAX  SEQUENCE OF AtswitchNwMgrEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"
		A list of SNMP Trap Manager stations Entries.
		The number of entries is given by the
		switchNwMgrTotal mib object.
		"
		::= { atswitchNMGroup 1 }
 
atswitchNwMgrEntry OBJECT-TYPE
	SYNTAX  AtswitchNwMgrEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"
		Trap receipt Manager Entry containing ipaddress of 
		the configured NMS's to which Traps are sent.
		"
	INDEX { atswitchNwMgrIndex }
	::= { atswitchNwMgrTable 1 }
 
AtswitchNwMgrEntry ::=
	SEQUENCE {
		atswitchNwMgrIndex		INTEGER,
		atswitchNwMgrIpAddr	IpAddress
		}

atswitchNwMgrIndex OBJECT-TYPE
	SYNTAX  INTEGER (1..4)
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"
		The  Index of the Managers Ip address.

		"
	::= { atswitchNwMgrEntry 1 }
 
atswitchNwMgrIpAddr OBJECT-TYPE
	SYNTAX  IpAddress
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"
		The IP Address of the NMS host configured.
		"
	::= { atswitchNwMgrEntry 2 }
	

-- Switch config Group is just for the Switching of Ethernet Packets.
-- The Port Config and Vlan Config comes next.
-- atswitchConfigGroup           OBJECT IDENTIFIER ::= { atswitchMib 2}


atswitchPortDisableOnSecurityViolation   OBJECT-TYPE
       SYNTAX    INTEGER {
                     disable-on-security-voilation(1),
                     suspend-on-double-address(2),
                     security-not-yet-initalized(3)
                         }
       ACCESS	read-write
       STATUS   mandatory
       DESCRIPTION
                "
                  This System wide attribute allows the port to be disabled on
       Violation of the Security. or suspend the port due to Duplicate Address.
       Needs More explaination after somebody figures out whether atswitch
       needs the suspend state.
                "
       ::= { atswitchConfigGroup 1 }



atswitchMirroringSourcePort	OBJECT-TYPE
	SYNTAX	INTEGER 
	ACCESS	read-write
	STATUS	mandatory
	DESCRIPTION
                " This is the Source port number for which there is another
                  mirror port.If the atswitchEthConfigMirrorState is Enabled then
	          ,the mirror portgets routed with all the packets going in and 
                  out of Source port. This arrangement is to put an RMON Probe 
		  on mirrored port to Probe the traffic on the Source
                  port. One of the port is dedicated to this so that for
                  any port as source port, this dedicated port can be a mirrored
                  port.
                  This object will return a '0' if the MirrorState is not 
                  enabled. 
		  For the AT-81XX only the receive activity can be mirrored.
		"
      ::= { atswitchConfigGroup 2 }

atswitchMirrorState	OBJECT-TYPE
	SYNTAX	INTEGER {
					receive(1),
					transmit(2),
					both(3),
					disabled(4)
			    }
	ACCESS	read-write
	STATUS	mandatory
	DESCRIPTION
		" if the state of Mirroring is enabled by selecting one of the
		  first three values , then the Mirroring explained above works.
		  If disabled, port operation works normally. No Traffic
            gets routed from MirroringSourcePort to Destination Mirrored Port. 
		  Mirroring of both transmit and receive activity can only be
      	  done if the port is half duplex. Choose both only if you know
        	  the port will be run in half duplex mode.
		"
      ::= { atswitchConfigGroup 3 }

atswitchMirroringDestinationPort	OBJECT-TYPE
	SYNTAX	INTEGER 
	ACCESS	read-write
	STATUS	mandatory
	DESCRIPTION
                " This is the Destination port number for which there is another
                  mirror port.If the atswitchEthConfigMirrorState is Enabled then
	          ,the mirror portgets routed with all the packets going in and 
                  out of Destination port. This arrangement is to put an RMON Probe 
		  on mirrored port to Probe the traffic on the Destination
                  port. One of the port is dedicated to this so that for
                  any port as destination port, this dedicated port can be a mirrored
                  port.
                  This object will return a '0' if the MirrorState is not 
                  enabled. 
		  For the AT-81XX only the receive activity can be mirrored.
		"
      ::= { atswitchConfigGroup 4 }


atswitchSecurityConfig  OBJECT-TYPE
        SYNTAX  INTEGER {
                disabled(1),
                enabled-with-learning-locked(2),
                limited-enabled(3)
                }
        ACCESS  read-write
        STATUS mandatory
        DESCRIPTION
                "
			 This Object is suppported only in 37XX product Line.
                Security feature configuration Object.
                The Security disable would let the device carry on the
                learn-new-address-as-it-comes-in mode as usual.
                When security is enabled-with-learning-locked, the learning of
                new address is stopped and the addresses locked in the device is
                used as the security Database. If an address comes in which is
                not present in the Device Security Database, then any of the
                atswitchSecurityAction Configured is triggered.
                When limited-enabled is selected, a per-port
                atswitchPortSecurityNumberOfAddresses specify the max number
                of MACs to be learned .
                "
      ::= { atswitchConfigGroup 5 }

atswitchSecurityAction  OBJECT-TYPE
        SYNTAX  INTEGER {
                send-trap-only(1),
                disable-port-only(2),
                disable-port-and-send-trap(3),
                do-nothing(4)
                }
        ACCESS  read-write
        STATUS mandatory
        DESCRIPTION
                "
                Security Action to be carried when the atswitchSecurityConfig is
                enabled-with-learning-locked or limted-enabled.
                "
        ::= { atswitchConfigGroup 6 }

atswitchDebugAvailableBytes	OBJECT-TYPE
	SYNTAX	INTEGER 
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"
		This is strictly for Debug reason and this object should not be
		beleived as the correct number
		"
        ::= { atswitchConfigGroup 7 }
	
atswitchTrunkConfig	OBJECT-TYPE
	SYNTAX	INTEGER  { 
			enable(1),
			disable(2)
		}
	ACCESS	read-write
	STATUS	mandatory
	DESCRIPTION
		"
		This Object Configures the Trunking for the Uplink Ports only.
		This feature is currently available only in Fenix 37XX-XL
		hardware.
		"
        ::= { atswitchConfigGroup 8 }
	
	
--     SwitchPortConfigGroup:   
--         This subgroup contains basic port configurable parameters
--

atswitchPortTable  OBJECT-TYPE
       SYNTAX    SEQUENCE OF AtswitchPortEntry
       ACCESS    not-accessible
       STATUS    mandatory
       DESCRIPTION
               "Table of basic port configuration information."
       ::= { atswitchPortConfigGroup 1 }

atswitchPortEntry  OBJECT-TYPE
       SYNTAX    AtswitchPortEntry
       ACCESS    not-accessible
       STATUS    mandatory
       DESCRIPTION
               "An entry in the port config table."
       INDEX   { atswitchPortNumber }
       ::= { atswitchPortTable 1 }

AtswitchPortEntry  ::=
       SEQUENCE {
       atswitchPortNumber
               INTEGER,
       atswitchPortName
               DisplayString,
       atswitchPortAutosenseOrHalfDuplex
              INTEGER,
       atswitchPortLinkState
               INTEGER,
       atswitchPortDuplexStatus 
               INTEGER ,
       atswitchPortSpeed 
               INTEGER, 
       atswitchPortState
               INTEGER,
       atswitchPortTransmitPacingConfig
               INTEGER,
       atswitchPortSTPConfig
	      INTEGER,
       atswitchPortBridgeid
	       INTEGER,
       atswitchPortSTPCost
	       INTEGER,
       atswitchPortSTPPriority
	       INTEGER,
       atswitchPortSwitchingType 
               INTEGER,
	  atswitchPortFlowControlEnable
			INTEGER,
       atswitchPortSecurityNumberOfAddresses
                        INTEGER
       }

atswitchPortNumber OBJECT-TYPE
       SYNTAX    INTEGER
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION
                 "This object identifies the port of the switch."
       ::= { atswitchPortEntry 1 }

atswitchPortName   OBJECT-TYPE
       SYNTAX    DisplayString (SIZE (0..20))
       ACCESS    read-write
       STATUS    mandatory
       DESCRIPTION  
                 "This attribute associates a user defined string name
       with the port."
       ::= { atswitchPortEntry 2 }

atswitchPortAutosenseOrHalfDuplex  OBJECT-TYPE
       SYNTAX    INTEGER {
                     portAutoSense(1),
                     forceHalfDuplex(2)
                 }
       ACCESS    read-write
       STATUS    mandatory
       DESCRIPTION  
                 "This attribute allows an administrative request to 
       configure whether this port can Autosense or Force the Half Duplex
                 "
       ::= { atswitchPortEntry 3 }

atswitchPortLinkState  OBJECT-TYPE
       SYNTAX    INTEGER {
                     online(1),
                     offline(2)
                 }
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION  
                 "This attribute allows an administrative request to
       read the status of link state on this port."
       ::= { atswitchPortEntry 4 }

atswitchPortDuplexStatus  OBJECT-TYPE
       SYNTAX    INTEGER {
                     fullDuplex(1),
                     halfDuplex(2)
                 }
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION  
                 "This attribute allows an administrative request to
       read the status of Duplex on this port."
       ::= { atswitchPortEntry 5 }

atswitchPortSpeed  OBJECT-TYPE
       SYNTAX    INTEGER {
                     tenMBits(1),
                     hundredMBits(2)
                 }
       ACCESS    read-write
       STATUS    mandatory
       DESCRIPTION  
            	   " This attribute allows an administrative request to
		          read/write the speed of this port.
				This attribure is read-only for all the Ports on 
				AT-37XX product .
				This Attribute is read-write for ATS21 (AT81XX) product
				Only. This attribute allows an administrative request to
       			change the speed on ATS21 product."
       ::= { atswitchPortEntry 6 }

atswitchPortState  OBJECT-TYPE
       SYNTAX    INTEGER {
		     	 enabled(1),
                     disabled(2),
                     blocking(3),
                     listening(4),
		 		 learning(5)
				}
--,
--  	             disable-due-to-address-duplication(3),
--                     disable-due-to-address-mismatch(4),
--                     suspended-due-to-address-duplication(5),
--                     suspended-due-to-address-mismatch(6),
--                     suspended-due-to-link-failure(7)
--                 }
       ACCESS    read-write
       STATUS    mandatory
       DESCRIPTION  
                 "This attribute allows an administrative request to 
       disable or enable communications on this port.It also 
       responds with the status of the port .Except enabled(1) and
       disabled(2), all values are read-only status.
                 "
       ::= { atswitchPortEntry 7 }

atswitchPortTransmitPacingConfig OBJECT-TYPE
       SYNTAX    INTEGER {
                     enable(1),
                     disable(2)
                 }
       ACCESS    read-write
       STATUS    mandatory
       DESCRIPTION
                 "This Object is supported on AT36XX product line Only.
                  This attribute allows the transmit Pacing to be enabled or
                  disabled.
                 "
       ::= { atswitchPortEntry 8 }

atswitchPortSTPConfig  OBJECT-TYPE
	SYNTAX	INTEGER {
			enable (1),
			disable (2)
		}
	ACCESS	read-write
	STATUS  mandatory
	DESCRIPTION
		"This attribute allows a bridging Mode to be configured with
		 either Spanning Tree enabled or disabled. When Spanning tree is
		 enabled, make sure that this port is belonging to a valid
		 Bridge_id. Spanning Tree is enabled only when a valid Bridge_id
		 is set.
		"
	::= { atswitchPortEntry 9}

atswitchPortBridgeid  OBJECT-TYPE
	SYNTAX       INTEGER (1..64)
	ACCESS	   read-write
	STATUS	   mandatory
	DESCRIPTION
	"  The Bridge to which this port belongs to .
	"
	::= { atswitchPortEntry 10 }


atswitchPortSTPCost      OBJECT-TYPE
	SYNTAX    INTEGER (0..65535)
	ACCESS	      read-write
	STATUS	      mandatory
	DESCRIPTION
	"  The Cost of the Spanning Tree Protocol.This object is valid only 
	   when STP is enabled.
	"
	::= { atswitchPortEntry 11 }

atswitchPortSTPPriority  OBJECT-TYPE
	SYNTAX       INTEGER (0..255)
	ACCESS	      read-write
	STATUS	      mandatory
	DESCRIPTION
	"  The Priority of the spanning Tree Protocol. This object is valid when
	   STP is enabled.
	"
	::= { atswitchPortEntry 12 }

atswitchPortSwitchingType OBJECT-TYPE
       SYNTAX    INTEGER {
                     fast-cut-through(1),
                     store-and-forward(2)
                 }
       ACCESS    read-write
       STATUS    mandatory
       DESCRIPTION 
                 "This per-port attribute describes whether the port identified
       by atswitchPortNumber uses store-and-forward bridging for local switched 
       Ethernet packets or cut-through. The Hardware allows cut-through on 
       Transmission and cut-through-on Receive and the same for the 
       store-and-forward. But some of the Config option does not make any sense.
       So, for now there is no distiction of Rx and Tx. Both Tx/Rx support 
       store-and-forward or cut-through.
	  This Object is not applicable for 37XX with XL hardware as the Hardware
	  does not support both Cut through and Store and Forward. It is default 
	  Store and Forward. Even though the Set on either of them is done, Hardware does
	  not do the Cut through Switching.
	  "
       ::= { atswitchPortEntry 13 }

atswitchPortFlowControlEnable OBJECT-TYPE
       SYNTAX    INTEGER {
                     disable(1),
                     enable(2)
                 }
       ACCESS    read-write
       STATUS    deprecated
       DESCRIPTION 
                 " This Per_port attribute is only for ATS21 product.(81XX).
			    This per-port attribute describes whether the port 
			    identified has flow Control Enabled or not. Flow Control
			    on Full Duplex and Half Duplex is detected and 
			     Automatically, flow control accordingly is taken care of.
			    BY Default, Flow Control is Disabled.
			   "
	   ::= { atswitchPortEntry 14 }

atswitchPortSecurityNumberOfAddresses OBJECT-TYPE
          SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
                "
                This object configures the Max number of addresses at an
                instance to be learnt by the device. If the learnt addresses
                number is above this number, then the atswitchSecurityAction is
                triggered . when the number of learnt addresses exceeds this
                number ,the the atswitchSecurityAction is triggered only if
                atswitchSecurityConfig is set to limited-enalbled. ELse
                nothing is triggered.
               "
        ::= { atswitchPortEntry 15 }

--     AtswitchVlanConfigGroup:   
--     This subgroup contains VLAN configurable parameters

--	   atswitchVlanConfigGroup    OBJECT IDENTIFIER ::= { atswitchMib 4}


--     atswitchBasicVlanTable:   
--        This table defines the valid Virtual LANs.

atswitchBasicVlanTable  OBJECT-TYPE
       SYNTAX    SEQUENCE OF AtswitchBasicVlanEntry
       ACCESS    not-accessible
       STATUS    mandatory
       DESCRIPTION
               "Table of Virtual LAN configured."
       ::= { atswitchVlanConfigGroup 1 }

atswitchBasicVlanEntry  OBJECT-TYPE
       SYNTAX    AtswitchBasicVlanEntry
       ACCESS    not-accessible
       STATUS    mandatory
       DESCRIPTION
               "An entry in the table, containing VLAN information."
       INDEX   { atswitchBeVlanIndex }
       ::= { atswitchBasicVlanTable 1 }

AtswitchBasicVlanEntry  ::=
       SEQUENCE {
           atswitchBeVlanIndex
               INTEGER,
           atswitchBeVlanName
               DisplayString,
		 atswitchBeVlanTagId
			INTEGER,
		 atswitchBeVlanPortMask
			DisplayString,
	      atswitchBeVlanRowStatus
		    INTEGER
       }

atswitchBeVlanIndex OBJECT-TYPE
       SYNTAX    INTEGER (1..64)
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION
                 "This object identifies the VLAN."
       ::= { atswitchBasicVlanEntry 1 }

atswitchBeVlanName   OBJECT-TYPE
       SYNTAX    DisplayString (SIZE (0..20))
       ACCESS    read-write
       STATUS    mandatory
       DESCRIPTION  
                 "This attribute associates a user defined string with
       the Virtual LAN. To configure a new VLAN, do 'set' operation on
       this object with the VLAN name. To delete an VLAN, do 'set'
       operation with string '*'.
	  Before configuring any of the objects in this row , set the 
	  atswitchVlanStatus to 'under-construction' and once configured with all 
	  the information, please set the same object to operational
       "
       ::= { atswitchBasicVlanEntry 2 }

atswitchBeVlanTagId	OBJECT-TYPE
	  SYNTAX	  INTEGER (1..4095)
	  ACCESS	  read-write
	  STATUS	  mandatory
	  DESCRIPTION
	  "
	  This object is supported by 37xx series of fenix with the
	  VLAN tagging capability hardware only. Please check whether
	  the SysObjectId is greater than 29. 

	  This object configures the VId in the Tag Information header
	  in accordance with 802.1q spec.

	  Before configuring any of the objects in this row , set the 
	  atswitchVlanStatus to 'under-construction' and once configured with all 
	  the information, please set the same object to operational
	  "
	  ::= { atswitchBasicVlanEntry 3 }

atswitchBeVlanPortMask	OBJECT-TYPE
	  SYNTAX	 DisplayString
	  ACCESS	 read-write
	  STATUS	 mandatory
	  DESCRIPTION
	"
	 This object is supported by 37xx series of fenix with the
	 VLAN tagging capability hardware only. Please check whether
	 the SysObjectId is greater than 29. 

	 This Object builds the Output Ports that participate in the
	 Vlan with the atswitchBeVlanName. The Format of the input string
	 would be like '1,2,5,7,12'.
	 Before configuring any of the objects in this row , set the 
	 atswitchVlanStatus to 'under-construction' and once configured 
	 with all the information, please set the same object to 
	 operational
			 "
	  ::= { atswitchBasicVlanEntry 4 }
		

atswitchBeVlanRowStatus OBJECT-TYPE
       SYNTAX    INTEGER {
		idle(1),
		operational(2),
		under-construction(3),
		not-operational(4)
		}
       ACCESS    read-write
       STATUS    mandatory
       DESCRIPTION
                  "
			   This object is supported by 37xx series of fenix with the
			   VLAN tagging capability hardware only. Please check whether
			   the SysObjectId is greater than 29. 

			   This object identifies the atswitchBeVLANEntry Row Status .
			   The User sets this object to under-construction, to start with
			   to create a row.
			   Once the User Configures the VlanName and TagId and also the 
			   Output Ports.This object should be set to operational. 
			   If the user does not set this object to operational,
			   the whole row is lost .when a 'get' of this row is 
			   done, this uncommited row is not seen.
			   configured in the switch.
			   "
       ::= { atswitchBasicVlanEntry 5 }

-- Port2VlanTable.

atswitchPort2VlanTable  OBJECT-TYPE
       SYNTAX  SEQUENCE OF AtswitchPort2VlanEntry
       ACCESS  not-accessible
       STATUS  mandatory
       DESCRIPTION
               "Table of per port Virtual LAN configuration."
       ::= { atswitchVlanConfigGroup 2 }

atswitchPort2VlanEntry  OBJECT-TYPE
       SYNTAX  AtswitchPort2VlanEntry
       ACCESS  not-accessible
       STATUS  mandatory
       DESCRIPTION
               "An entry in the table, containing per port VLAN information."
       INDEX   { atswitchPvPortNumber }
       ::= { atswitchPort2VlanTable 1 }

AtswitchPort2VlanEntry  ::=
       SEQUENCE {
           atswitchPvPortNumber
               INTEGER,
           atswitchPvVlanName
               DisplayString
       }

atswitchPvPortNumber OBJECT-TYPE
       SYNTAX    INTEGER
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION
                 "This object identifies the port on the switch."
       ::= { atswitchPort2VlanEntry 1 }

atswitchPvVlanName	OBJECT-TYPE
       SYNTAX    DisplayString
       ACCESS    read-write
       STATUS    mandatory
       DESCRIPTION  
                 "This attribute associates a user defined string with
       the Virtual LAN. This Object is the same as atswitchBeVlanName.
       Please make sure to give the same string as atswitchBeVlanName."
       ::= { atswitchPort2VlanEntry 2 }
		

-- Ethernet Monitor Group.
--
-- The Monitor group contains statistics measured by the
-- concentator for each port.  These statistics take the form
-- of free running counters that start from zero.
--
-- atswitchEthStatsGroup   OBJECT IDENTIFIER ::= { atswitchMib 5}
--

atswitchEthMonStats     OBJECT IDENTIFIER ::= { atswitchEthernetStatsGroup 1}
atswitchEthErrorStats   OBJECT IDENTIFIER ::= { atswitchEthernetStatsGroup 2}

atswitchEthMonRxGoodFrames OBJECT-TYPE
  	SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	      	The total number of Good Frames received on this module.
          	"
  	::= { atswitchEthMonStats 1 }

atswitchEthMonTxGoodFrames OBJECT-TYPE
  	SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	      	The total number of Good Frames Transmitted by this module.
          	"
  	::= { atswitchEthMonStats 2 }

atswitchEthMonTxTotalBytes OBJECT-TYPE
	SYNTAX Counter
 	ACCESS read-only
	STATUS mandatory
 	DESCRIPTION "
		The total number of Bytes transmitted from this module.
		" 
	::= { atswitchEthMonStats 3 }

atswitchEthMonTxDeferred OBJECT-TYPE
	SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
                This is the count of first time Transmission attempt which 
                failed on an interface due to medium being busy. 
		"
	::= { atswitchEthMonStats 4 }

atswitchEthMonTxCollisions OBJECT-TYPE
	SYNTAX Counter
 	ACCESS read-only
 	STATUS mandatory
  	DESCRIPTION "
		The total number of collisions while switching on an interface.
		"
	::= { atswitchEthMonStats 5 }

--
-- The Ethernet Error Statistics
--
-- The Ethernet Error Statistics group contains certain errors
-- measured by the switch.  These statistics take the form of
-- free running counters that start from zero.
--

atswitchEthErrorCRC OBJECT-TYPE
  	SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	      	The total number of CRC errors on received packets.
		"
  	::= { atswitchEthErrorStats 1 }

atswitchEthErrorAlignment OBJECT-TYPE
  	SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	      	The total number of packets received that has alignment 
		errors
          	"
  	::= { atswitchEthErrorStats 2 }


atswitchEthErrorRxBadFrames OBJECT-TYPE
  	SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	      	The counter is incremented when a bad frame was received.
          	"
  	::= { atswitchEthErrorStats 3 }

atswitchEthErrorLateCollisions OBJECT-TYPE
  	SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	      	This object counts the number of times the collison was 
		detected in the port.
          	"
  	::= { atswitchEthErrorStats 4 }


atswitchEthErrorTxTotal OBJECT-TYPE
        SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
		Total number of error resulted from transfer operations.
          	"
  	::= { atswitchEthErrorStats 6 }


-- atswitchEthPortStatsGroup   OBJECT IDENTIFIER ::= { atswitchMib 6}

   atswitchEthPortMonStats     OBJECT IDENTIFIER ::= { atswitchEthPortStatsGroup 1}
   atswitchEthPortError   OBJECT IDENTIFIER ::= { atswitchEthPortStatsGroup 2}

-- Ethernet Port Monitor Group.
--
-- The Monitor Port group contains statistics measured by the
-- concentator for each port.  These statistics take the form
-- of free running counters that start from zero.
--
--

atswitchEthPortMonTable OBJECT-TYPE
	SYNTAX SEQUENCE OF AtswitchEthPortMonEntry
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION "
		A list of statistics entries."
	::= { atswitchEthPortMonStats 1 }

atswitchEthPortMonEntry OBJECT-TYPE
	SYNTAX AtswitchEthPortMonEntry
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION "
		A collection of statistics kept for a particular port.
		"
	INDEX {atswitchEthPortMonId }
	::= { atswitchEthPortMonTable 1 }

AtswitchEthPortMonEntry ::= 
    SEQUENCE {
	atswitchEthPortMonId			INTEGER,
	atswitchEthPortMonTxTotalBytes		Counter,
        atswitchRxGoodFrames                     Counter, 
        atswitchTxGoodFrames                     Counter,
        atswitchTxBroadcastFrames		Counter,
        atswitchTxMulticastFrames		Counter,
        atswitchAddrDuplicate			Counter,
        atswitchAddrMismatches			Counter,
        atswitchRxOverruns			Counter
	}

atswitchEthPortMonId OBJECT-TYPE
  	SYNTAX INTEGER
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	The relative position of a port within a switch starting with 1.
	"
  	::= { atswitchEthPortMonEntry 1 }

atswitchEthPortMonTxTotalBytes OBJECT-TYPE
  	SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	      	The total number of Bytes transmited to this port.
		"
  	::= { atswitchEthPortMonEntry 2 }

atswitchRxGoodFrames OBJECT-TYPE
       SYNTAX    Counter 
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION 
               " The total number of good packets(including unicast,broadcast 
       packets and multicast packets) received "
       ::= { atswitchEthPortMonEntry 3 }

atswitchTxGoodFrames OBJECT-TYPE
       SYNTAX    Counter 
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION 
               " The total number of good packets(including bad packets,
       broadcast packets and multicast packets) transmitted successfully 
               "
       ::= { atswitchEthPortMonEntry 4 }

atswitchTxBroadcastFrames OBJECT-TYPE
       SYNTAX    Counter 
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION 
               " The total number of packets transmitted that were directed to 
       the broadcast address. This  does not include multicast packets
               "
       ::= { atswitchEthPortMonEntry 5 }

atswitchTxMulticastFrames OBJECT-TYPE
       SYNTAX    Counter 
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION 
               " The total number of packets transmitted that were directed to 
       a multicast address. This  does not include packets addressed to the 
       broadcast address
               "
       ::= { atswitchEthPortMonEntry 6 }

atswitchAddrDuplicate OBJECT-TYPE
       SYNTAX    Counter 
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION 
               " The  number of address duplications seen on this port which is 
       secured on another port. If a source address is locked for a port and if 
       that address is eeen as source address on this port, then such occurances
       of duplicate Address is noted.
              " 
       ::= { atswitchEthPortMonEntry 7 }

atswitchAddrMismatches OBJECT-TYPE
       SYNTAX    Counter 
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION 
               " 
        Address mismatches /address changes
          the sum of :
          1. The number of mismatches seen on a port between a securely assigned              port address and the source address observed on the port.
             Occurrence of this causes the TNETX3150 to suspend the port.

          2. The number of times the TNETX3150 is required to assign or learn 
             an address for a port.
               "
       ::= { atswitchEthPortMonEntry 8 }

atswitchRxOverruns OBJECT-TYPE
       SYNTAX    Counter 
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION 
               " 
               The number of frames lost due to lack of resources during frame reception. The counter is incremented when frame data cannot enter the RX fifo for whatever reason. Frames that overrun after entering the fifo also can be counted as RX discards if they are not cut-through.
               "
       ::= { atswitchEthPortMonEntry 9 }

-- Ethernet Port Error Group.
--
-- The Error Port Error group contains statistics
-- measured by the concentator for each port.  These statistics
-- take the form of free running counters that start from zero.
--
--

atswitchEthPortErrorTable OBJECT-TYPE
	SYNTAX SEQUENCE OF AtswitchEthPortErrorEntry
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION "
		A list of statistics entries."
	::= { atswitchEthPortError 1 }

atswitchEthPortErrorEntry OBJECT-TYPE
	SYNTAX AtswitchEthPortErrorEntry
	ACCESS not-accessible
	STATUS mandatory
	DESCRIPTION "
		A collection of statistics kept for a particular port.
		"
	INDEX {atswitchEthPortErrorId }
	::= { atswitchEthPortErrorTable 1 }

AtswitchEthPortErrorEntry ::= SEQUENCE {
	atswitchEthPortErrorId		INTEGER ,
	atswitchEthPortErrorRxBadFrames	Counter,
        atswitchEthPortErrorTxTotal	Counter
        }

atswitchEthPortErrorId OBJECT-TYPE
  	SYNTAX INTEGER 
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	The relative position of a port within a switch starting with 1.
	"
  	::= { atswitchEthPortErrorEntry 1 }


atswitchEthPortErrorRxBadFrames OBJECT-TYPE
  	SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
	      	The counter is incremented when a bad frame was received
		on this port.
          	"
  	::= { atswitchEthPortErrorEntry 2 }


atswitchEthPortErrorTxTotal OBJECT-TYPE
        SYNTAX Counter
  	ACCESS read-only
  	STATUS mandatory
  	DESCRIPTION "
		Total number of error resulted from transmit operations
		on this port.
          	"
  	::= { atswitchEthPortErrorEntry  3}

-- atswitchFwdVlanGroup  This Group is Mac addresses on  VLANs.
-- atswitchFwdVlanGroup   OBJECT IDENTIFIER ::= { atswitchMib 7}
--
atswitchFwdVlanTable	OBJECT-TYPE
 	SYNTAX	SEQUENCE OF AtswitchFwdVlanEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
	" This tables lists Mac Addresses lexicographically from the forwarding table and also the information about the Vlan/Vlan which this MAC address belongs to.
	"
	::= { atswitchFwdVlanGroup  1 }

atswitchFwdVlanEntry	OBJECT-TYPE
	SYNTAX	AtswitchFwdVlanEntry
	ACCESS	not-accessible
	STATUS  mandatory
	DESCRIPTION
	" Entry in the atswitchFwdVlanTable.
	"
	INDEX { atswitchFwdVlanMACAddr }
	::= { atswitchFwdVlanTable 1 }

AtswitchFwdVlanEntry ::=
	SEQUENCE {
	    atswitchFwdVlanMACAddr
		MacAddress,
	    atswitchFwdVlanVlanId
		INTEGER,
	    atswitchFwdVlanAge
	        INTEGER,
	    atswitchFwdVlanStatus
		INTEGER,
	    atswitchFwdVlanPort
		INTEGER
	}
	
atswitchFwdVlanMACAddr   OBJECT-TYPE
       SYNTAX    MacAddress
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION  
                 "This object identifies the MAC Address associated
       with this entry."
      ::= { atswitchFwdVlanEntry 1 }

atswitchFwdVlanVlanId   OBJECT-TYPE
       SYNTAX    INTEGER
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION  
                 "This object identifies the Vlan/Vlan which MAC Address 
		   defined by the atswitchFwdMACAddr is associated with.
		 "
      ::= { atswitchFwdVlanEntry 2 }

atswitchFwdVlanAge OBJECT-TYPE
       SYNTAX	 INTEGER
       ACCESS    read-only
       STATUS    mandatory
       DESCRIPTION  
		"Current Age of the MACAddr in the Forwarding Table.It Starts 
		 with 0 and if not heard it increments to some value until it
		 hears from it  and if not heard before reaching Max value, it 			 will purge this entry.
		"
      ::= { atswitchFwdVlanEntry 3 }


atswitchFwdVlanStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                            inactive(1),
		 	    active(2),
		            other (3)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The status of this entry.
		       The meanings of the values are:

                        inactive(1) : this entry is not longer valid
                                     (e.g., it was learned but has since
                                     aged-out), but has not yet been
                                     flushed from the table.


                        active(2) : the value of the corresponding
                                     instance of atswitchFwdVlanPort was
                                     active, and is being used.

                        other(3)   : none of the following. 
			"

              ::= { atswitchFwdVlanEntry 4 }

atswitchFwdVlanPort OBJECT-TYPE
            SYNTAX  INTEGER
            ACCESS  read-only
            STATUS  mandatory
            DESCRIPTION
                      "Either the value '0', or the port number of the
                      port on which a frame having a source address
                      equal to the value of the corresponding instance
                      of atswitchFwdVlanMACAddr has been seen.  A value of
                      '0' indicates that the port number has not been
                      learned but that the bridge does have some
                      forwarding/filtering information about this
                      address.
                      Implementors are encouraged to assign the port
                      value to this object whenever it is learned even
                      for addresses for which the corresponding value of
                      atswitchFwdVlanStatus is not learned(3).
		     "
              ::= { atswitchFwdVlanEntry 5 }


--         atiBridgeMib     OBJECT IDENTIFIER ::= { atswitchMib 10 } 


 -- groups in the Bridge MIB

--          atswitchBrBase     OBJECT IDENTIFIER ::= { atswitchBridgeMib 1 }

--          atswitchBrStp      OBJECT IDENTIFIER ::= { atswitchBridgeMib 2 }

--          atswitchBrTp       OBJECT IDENTIFIER ::= { atswitchBridgeMib 3 }


          -- the atswitchBrBase Table

          atswitchBrBaseTable  OBJECT-TYPE
              SYNTAX    SEQUENCE OF AtswitchBrBaseEntry
              ACCESS    not-accessible
              STATUS    mandatory
              DESCRIPTION
                      "Table of basic bridge information."
              ::= { atswitchBrBase 1 }

          atswitchBrBaseEntry  OBJECT-TYPE
              SYNTAX    AtswitchBrBaseEntry
              ACCESS    not-accessible
              STATUS    mandatory
              DESCRIPTION
                        "An entry in the atswitchBrBaseTable."
              INDEX   { atswitchBrBaseLanId }
              ::= { atswitchBrBaseTable 1 }

          AtswitchBrBaseEntry  ::=
              SEQUENCE {
                  atswitchBrBaseLanId
                      INTEGER,
                  atswitchBrBaseBridgeAddress 
                      MacAddress,
                  atswitchBrBaseNumPorts 
                      INTEGER,
                  atswitchBrBaseType 
                      INTEGER
              }

          atswitchBrBaseLanId OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This object uniquely identifies the lan or
              Virtual lan."
              ::= { atswitchBrBaseEntry 1 }

          atswitchBrBaseBridgeAddress OBJECT-TYPE
              SYNTAX  MacAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The MAC address used by this bridge when it must
                      be referred to in a unique fashion.   It is
                      recommended that this be the numerically smallest
                      MAC address of all ports that belong to this
                      bridge.  However it is only required to be unique.
                      When concatenated with atswitchBrStpPriority a unique
                      BridgeIdentifier is formed which is used in the
                      Spanning Tree Protocol."
              REFERENCE
                      "IEEE 802.1D-1990: Sections 6.4.1.1.3 and 3.12.5"
              ::= { atswitchBrBaseEntry 2 }

          atswitchBrBaseNumPorts OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ports controlled by this bridging
                      entity."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.4.1.1.3"
              ::= { atswitchBrBaseEntry 3 }

          atswitchBrBaseType OBJECT-TYPE
              SYNTAX  INTEGER {
                          unknown(1),
                          transparent-only(2),
                          sourceroute-only(3),
                          srt(4)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Indicates what type of bridging this bridge can
                      perform.  If a bridge is actually performing a
                      certain type of bridging this will be indicated by
                      entries in the port table for the given type."
              ::= { atswitchBrBaseEntry 4 }

          -- The Generic Bridge Port Table

          atswitchBrBasePortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF AtswitchBrBasePortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains generic information about
                      every port that is associated with this bridge.
                      Transparent, source-route, and srt ports are
                      included."
              ::= { atswitchBrBase 4 }

          atswitchBrBasePortEntry OBJECT-TYPE
              SYNTAX  AtswitchBrBasePortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of information for each port of the
                      bridge."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.4.2, 6.6.1"
              INDEX  { atswitchBrBasePortLanId, atswitchBrBasePort }
              ::= { atswitchBrBasePortTable 1 }


          AtswitchBrBasePortEntry ::=
              SEQUENCE {
                  atswitchBrBasePortLanId
                      INTEGER,
                  atswitchBrBasePort
                      INTEGER,
                  atswitchBrBasePortIfIndex
                      INTEGER,
                  atswitchBrBasePortCircuit
                      OBJECT IDENTIFIER,
                  atswitchBrBasePortDelayExceededDiscards
                      Counter,
                  atswitchBrBasePortMtuExceededDiscards
                      Counter
              }

          atswitchBrBasePortLanId OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This object uniquely identifies the lan or
              Virtual lan."
              ::= { atswitchBrBasePortEntry 1 }

          atswitchBrBasePort OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port for which this entry
                      contains bridge management information."
              ::= { atswitchBrBasePortEntry 2 }

          atswitchBrBasePortIfIndex OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The value of the instance of the ifIndex object,
                      defined in MIB-II, for the interface corresponding
                      to this port."
              ::= { atswitchBrBasePortEntry 3 }

          atswitchBrBasePortCircuit OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "For a port which (potentially) has the same value
                      of atswitchBrBasePortIfIndex as another port on the
                      same bridge, this object contains the name of an
                      object instance unique to this port.  For example,
                      in the case where multiple ports correspond one-
                      to-one with multiple X.25 virtual circuits, this
                      value might identify an (e.g., the first) object
                      instance associated with the X.25 virtual circuit
                      corresponding to this port.

                      For a port which has a unique value of
                      atswitchBrBasePortIfIndex, this object can have the
                      value { 0 0 }."
              ::= { atswitchBrBasePortEntry 4 }

          atswitchBrBasePortDelayExceededDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames discarded by this port due
                      to excessive transit delay through the bridge.  It
                      is incremented by both transparent and source
                      route bridges."
              REFERENCE
                       "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { atswitchBrBasePortEntry 5 }

          atswitchBrBasePortMtuExceededDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames discarded by this port due
                      to an excessive size.  It is incremented by both
                      transparent and source route bridges."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { atswitchBrBasePortEntry 6 }


          -- the atswitchBrStp group

          -- Implementation of the atswitchBrStp group is optional.  It is
          -- implemented by those bridges that support the Spanning Tree
          -- Protocol.


          atswitchBrStpTable  OBJECT-TYPE
              SYNTAX    SEQUENCE OF AtswitchBrStpEntry
              ACCESS    not-accessible
              STATUS    mandatory
              DESCRIPTION
                      "Table of bridge spanning tree information."
              ::= { atswitchBrStp 1 }

          atswitchBrStpEntry  OBJECT-TYPE
              SYNTAX    AtswitchBrStpEntry
              ACCESS    not-accessible
              STATUS    mandatory
              DESCRIPTION
                        "An entry in the atswitchBrStpTable."
              INDEX   { atswitchBrStpLanId }
              ::= { atswitchBrStpTable 1 }

          AtswitchBrStpEntry  ::=
              SEQUENCE {
                  atswitchBrStpLanId 
                      INTEGER,
                  atswitchBrStpProtocolSpecification 
                      INTEGER,
                  atswitchBrStpPriority 
                      INTEGER,
                  atswitchBrStpTimeSinceTopologyChange
                      TimeTicks,
                  atswitchBrStpTopChanges
                      Counter,
                  atswitchBrStpDesignatedRoot
                      BridgeId,
                  atswitchBrStpRootCost
                      INTEGER,
                  atswitchBrStpRootPort
                      INTEGER,
                  atswitchBrStpMaxAge
                      Timeout,
                  atswitchBrStpHelloTime
                      Timeout,
                  atswitchBrStpHoldTime
                      INTEGER,
                  atswitchBrStpForwardDelay
                      Timeout,
                  atswitchBrStpBridgeMaxAge
                      Timeout,
                  atswitchBrStpBridgeHelloTime
                      Timeout,
                  atswitchBrStpBridgeForwardDelay
                      Timeout
              }

          atswitchBrStpLanId OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This object uniquely identifies the lan or
              Virtual lan."
              ::= { atswitchBrStpEntry 1 }

          atswitchBrStpProtocolSpecification OBJECT-TYPE
              SYNTAX  INTEGER {
                          unknown(1),
                          decLb100(2),
                          ieee8021d(3)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "An indication of what version of the Spanning
                      Tree Protocol is being run.  The value
                      'decLb100(2)' indicates the DEC LANbridge 100
                      Spanning Tree protocol.  IEEE 802.1d
                      implementations will return 'ieee8021d(3)'.  If
                      future versions of the IEEE Spanning Tree Protocol
                      are released that are incompatible with the
                      current version a new value will be defined."
              ::= { atswitchBrStpEntry 2 }

          atswitchBrStpPriority OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value of the write-able portion of the Bridge
                      ID, i.e., the first two octets of the (8 octet
                      long) Bridge ID.  The other (last) 6 octets of the
                      Bridge ID are given by the value of
                      atswitchBrBaseBridgeAddress."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.7"
              ::= { atswitchBrStpEntry 3 }

          atswitchBrStpTimeSinceTopologyChange OBJECT-TYPE
              SYNTAX  TimeTicks
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The time (in hundredths of a second) since the
                      last time a topology change was detected by the
                      bridge entity."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.8.1.1.3"
              ::= { atswitchBrStpEntry 4 }

          atswitchBrStpTopChanges OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of topology changes detected by
                      this bridge since the management entity was last
                      reset or initialized."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.8.1.1.3"
              ::= { atswitchBrStpEntry 5 }

          atswitchBrStpDesignatedRoot OBJECT-TYPE
              SYNTAX  BridgeId
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The bridge identifier of the root of the spanning
                      tree as determined by the Spanning Tree Protocol
                      as executed by this node.  This value is used as
                      the Root Identifier parameter in all Configuration
                      Bridge PDUs originated by this node."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.1"
              ::= { atswitchBrStpEntry 6 }

          atswitchBrStpRootCost OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The cost of the path to the root as seen from
                      this bridge."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.2"
              ::= { atswitchBrStpEntry 7 }

          atswitchBrStpRootPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port which offers the
                      lowest cost path from this bridge to the root
                      bridge."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.3"
              ::= { atswitchBrStpEntry 8 }

          atswitchBrStpMaxAge OBJECT-TYPE
              SYNTAX  Timeout
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The maximum age of Spanning Tree Protocol
                      information learned from the network on any port
                      before it is discarded, in units of hundredths of
                      a second.  This is the actual value that this
                      bridge is currently using."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.4"
              ::= { atswitchBrStpEntry 9 }

          atswitchBrStpHelloTime OBJECT-TYPE
              SYNTAX  Timeout
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The amount of time between the transmission of
                      Configuration bridge PDUs by this node on any port
                      when it is the root of the spanning tree or trying
                      to become so, in units of hundredths of a second.
                      This is the actual value that this bridge is
                      currently using."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.5"
              ::= { atswitchBrStpEntry 10 }

          atswitchBrStpHoldTime OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This time value determines the interval length
                      during which no more than two Configuration bridge
                      PDUs shall be transmitted by this node, in units
                      of hundredths of a second."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.14"
              ::= { atswitchBrStpEntry 11 }

          atswitchBrStpForwardDelay OBJECT-TYPE
              SYNTAX  Timeout
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This time value, measured in units of hundredths
                      of a second, controls how fast a port changes its
                      spanning state when moving towards the Forwarding
                      state.  The value determines how long the port
                      stays in each of the Listening and Learning
                      states, which precede the Forwarding state.  This
                      value is also used, when a topology change has
                      been detected and is underway, to age all dynamic
                      entries in the Forwarding Database.  [Note that
                      this value is the one that this bridge is
                      currently using, in contrast to
                      atswitchBrStpBridgeForwardDelay which is the value that
                      this bridge and all others would start using
                      if/when this bridge were to become the root.]"
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.6"
              ::= { atswitchBrStpEntry 12 }

          atswitchBrStpBridgeMaxAge OBJECT-TYPE
              SYNTAX  Timeout (600..4000)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value that all bridges use for MaxAge when
                      this bridge is acting as the root.  Note that
                      802.1D-1990 specifies that the range for this
                      parameter is related to the value of
                      atswitchBrStpBridgeHelloTime. The granularity of this
                      timer is specified by 802.1D-1990 to be 1 second.
                      An agent may return a badValue error if a set is
                      attempted to a value which is not a whole number
                      of seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.8"
              ::= { atswitchBrStpEntry 13 }

          atswitchBrStpBridgeHelloTime OBJECT-TYPE
              SYNTAX  Timeout (100..1000)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value that all bridges use for HelloTime when
                      this bridge is acting as the root.  The
                      granularity of this timer is specified by 802.1D-
                      1990 to be 1 second.  An agent may return a
                      badValue error if a set is attempted to a value
                      which is not a whole number of seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.9"
              ::= { atswitchBrStpEntry 14 }

          atswitchBrStpBridgeForwardDelay OBJECT-TYPE
              SYNTAX  Timeout (400..3000)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value that all bridges use for ForwardDelay
                      when this bridge is acting as the root.  Note that
                      802.1D-1990 specifies that the range for this
                      parameter is related to the value of
                      atswitchBrStpBridgeMaxAge.  The granularity of this
                      timer is specified by 802.1D-1990 to be 1 second.
                      An agent may return a badValue error if a set is
                      attempted to a value which is not a whole number
                      of seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.10"
              ::= { atswitchBrStpEntry 15 }


          -- The Spanning Tree Port Table

          atswitchBrStpPortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF AtswitchBrStpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains port-specific information
                      for the Spanning Tree Protocol."
              ::= { atswitchBrStp 15 }

          atswitchBrStpPortEntry OBJECT-TYPE
              SYNTAX  AtswitchBrStpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of information maintained by every port
                      about the Spanning Tree Protocol state for that
                      port."
              INDEX   { atswitchBrStpPortLanId, atswitchBrStpPort }
              ::= { atswitchBrStpPortTable 1 }

          AtswitchBrStpPortEntry ::=
              SEQUENCE {
                  atswitchBrStpPortLanId
                      INTEGER,
                  atswitchBrStpPort
                      INTEGER,
                  atswitchBrStpPortPriority
                      INTEGER,
                  atswitchBrStpPortState
                      INTEGER,
                  atswitchBrStpPortEnable
                      INTEGER,
                  atswitchBrStpPortPathCost
                      INTEGER,
                  atswitchBrStpPortDesignatedRoot
                      BridgeId,
                  atswitchBrStpPortDesignatedCost
                      INTEGER,
                  atswitchBrStpPortDesignatedBridge
                      BridgeId,
                  atswitchBrStpPortDesignatedPort
                      OCTET STRING,
                  atswitchBrStpPortForwardTransitions
                      Counter
              }

          atswitchBrStpPortLanId OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This object uniquely identifies the lan or
              Virtual lan."
              ::= { atswitchBrStpPortEntry 1 }

          atswitchBrStpPort OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port for which this entry
                      contains Spanning Tree Protocol management
                      information."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.8.2.1.2"
              ::= { atswitchBrStpPortEntry 2 }

          atswitchBrStpPortPriority OBJECT-TYPE
              SYNTAX  INTEGER (0..255)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value of the priority field which is
                      contained in the first (in network byte order)
                      octet of the (2 octet long) Port ID.  The other
                      octet of the Port ID is given by the value of
                      atswitchBrStpPort."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.1"
              ::= { atswitchBrStpPortEntry 3 }

          atswitchBrStpPortState OBJECT-TYPE
              SYNTAX  INTEGER {
                          disabled(1),
                          blocking(2),
                          listening(3),
                          learning(4),
                          forwarding(5),
                          broken(6)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port's current state as defined by
                      application of the Spanning Tree Protocol.  This
                      state controls what action a port takes on
                      reception of a frame.  If the bridge has detected
                      a port that is malfunctioning it will place that
                      port into the broken(6) state.  For ports which
                      are disabled (see atswitchBrStpPortEnable), this object
                      will have a value of disabled(1)."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.2"
              ::= { atswitchBrStpPortEntry 4 }

          atswitchBrStpPortEnable OBJECT-TYPE
              SYNTAX  INTEGER {
                          enabled(1),
                          disabled(2)
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The enabled/disabled status of the port."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.2"
              ::= { atswitchBrStpPortEntry 5 }

          atswitchBrStpPortPathCost OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The contribution of this port to the path cost of
                      paths towards the spanning tree root which include
                      this port.  802.1D-1990 recommends that the
                      default value of this parameter be in inverse
                      proportion to the speed of the attached LAN."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.3"
              ::= { atswitchBrStpPortEntry 6 }

          atswitchBrStpPortDesignatedRoot OBJECT-TYPE
              SYNTAX  BridgeId
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The unique Bridge Identifier of the Bridge
                      recorded as the Root in the Configuration BPDUs
                      transmitted by the Designated Bridge for the
                      segment to which the port is attached."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.4"
              ::= { atswitchBrStpPortEntry 7 }

          atswitchBrStpPortDesignatedCost OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The path cost of the Designated Port of the
                      segment connected to this port.  This value is
                      compared to the Root Path Cost field in received
                      bridge PDUs."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.5"
              ::= { atswitchBrStpPortEntry 8 }

          atswitchBrStpPortDesignatedBridge OBJECT-TYPE
              SYNTAX  BridgeId
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The Bridge Identifier of the bridge which this
                      port considers to be the Designated Bridge for
                      this port's segment."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.6"
              ::= { atswitchBrStpPortEntry 9 }

          atswitchBrStpPortDesignatedPort OBJECT-TYPE
              SYNTAX  OCTET STRING (SIZE (2))
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The Port Identifier of the port on the Designated
                      Bridge for this port's segment."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.7"
              ::= { atswitchBrStpPortEntry 10 }

          atswitchBrStpPortForwardTransitions OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of times this port has transitioned
                      from the Learning state to the Forwarding state."
              ::= { atswitchBrStpPortEntry 11 }


          -- the atswitchBrTp group

          -- Implementation of the atswitchBrTp group is optional.  It is
          -- implemented by those bridges that support the transparent
          -- bridging mode.  A transparent or SRT bridge will implement
          -- this group.


          atswitchBrTpTable  OBJECT-TYPE
              SYNTAX    SEQUENCE OF AtswitchBrTpEntry
              ACCESS    not-accessible
              STATUS    mandatory
              DESCRIPTION
                        "Table of transparent bridging information."
              ::= { atswitchBrTp 1 }

          atswitchBrTpEntry  OBJECT-TYPE
              SYNTAX    AtswitchBrTpEntry
              ACCESS    not-accessible
              STATUS    mandatory
              DESCRIPTION
                        "An entry in the atswitchBrTpTable."
              INDEX   { atswitchBrTpLanId }
              ::= { atswitchBrTpTable 1 }

          AtswitchBrTpEntry  ::=
              SEQUENCE {
                  atswitchBrTpLanId
                      INTEGER,
                  atswitchBrTpLearnedEntryDiscards
                      Counter,
                  atswitchBrTpAgingTime
                      INTEGER
              }

          atswitchBrTpLanId OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This object uniquely identifies the lan or
              Virtual lan."
              ::= { atswitchBrTpEntry 1 }

          atswitchBrTpLearnedEntryDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of Forwarding Database entries,
                      which have been or would have been learnt, but
                      have been discarded due to a lack of space to
                      store them in the Forwarding Database.  If this
                      counter is increasing, it indicates that the
                      Forwarding Database is regularly becoming full (a
                      condition which has unpleasant performance effects
                      on the subnetwork).  If this counter has a
                      significant value but is not presently increasing,
                      it indicates that the problem has been occurring
                      but is not persistent."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.1.1.3"
              ::= { atswitchBrTpEntry 2 }

          atswitchBrTpAgingTime OBJECT-TYPE
              SYNTAX   INTEGER (10..1000000)
              ACCESS   read-write
              STATUS   mandatory
              DESCRIPTION
                      "The timeout period in seconds for aging out
                      dynamically learned forwarding information.
                      802.1D-1990 recommends a default of 300 seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.1.1.3"
              ::= { atswitchBrTpEntry 3 }


          --  The Forwarding Database for Transparent Bridges

          atswitchBrTpFdbTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF AtswitchBrTpFdbEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains information about unicast
                      entries for which the bridge has forwarding and/or
                      filtering information.  This information is used
                      by the transparent bridging function in
                      determining how to propagate a received frame."
              ::= { atswitchBrTp 3 }

          atswitchBrTpFdbEntry OBJECT-TYPE
              SYNTAX  AtswitchBrTpFdbEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Information about a specific unicast MAC address
                      for which the bridge has some forwarding and/or
                      filtering information."
              INDEX   { atswitchBrTpFdbLanId, atswitchBrTpFdbAddress }
              ::= { atswitchBrTpFdbTable 1 }

          AtswitchBrTpFdbEntry ::=
              SEQUENCE {
                  atswitchBrTpFdbLanId
                      INTEGER,
                  atswitchBrTpFdbAddress
                      MacAddress,
                  atswitchBrTpFdbPort
                      INTEGER,
                  atswitchBrTpFdbStatus
                      INTEGER
              }

          atswitchBrTpFdbLanId OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This object uniquely identifies the lan or
              Virtual lan."
              ::= { atswitchBrTpFdbEntry 1 }

          atswitchBrTpFdbAddress OBJECT-TYPE
              SYNTAX  MacAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A unicast MAC address for which the bridge has
                      forwarding and/or filtering information."
              REFERENCE
                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
              ::= { atswitchBrTpFdbEntry 2 }

          atswitchBrTpFdbPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Either the value '0', or the port number of the
                      port on which a frame having a source address
                      equal to the value of the corresponding instance
                      of atswitchBrTpFdbAddress has been seen.  A value of
                      '0' indicates that the port number has not been
                      learned but that the bridge does have some
                      forwarding/filtering information about this
                      address .
                      Implementors are encouraged to assign the port
                      value to this object whenever it is learned even
                      for addresses for which the corresponding value of
                      atswitchBrTpFdbStatus is not learned(3)."
              ::= { atswitchBrTpFdbEntry 3 }

          atswitchBrTpFdbStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          inactive(1),
  			  active (2),
  			  other (3)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The status of this entry. 
		       The meanings of the values are:

                        inactive(1) : this entry is not longer valid
                                     (e.g., it was learned but has since
                                     aged-out), but has not yet been
                                     flushed from the table.

                        active(2) : the value of the corresponding
                                     instance of atswitchBrTpFdbPort was
                                     active, and is being used.

                        other(3)   : none of the following.  This would
                                     include the case where some other
                                     MIB object (not the corresponding
                                     instance of atswitchBrTpFdbPort ) is
                                     being used to determine if and how
                                     frames addressed to the value of
                                     the corresponding instance of
                                     atswitchBrTpFdbAddress are being
                                     forwarded.
			"
                ::= { atswitchBrTpFdbEntry 4 }

--  Port Table for Transparent Bridges

          atswitchBrTpPortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF AtswitchBrTpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains information about every
                      port that is associated with this transparent
                      bridge."
              ::= { atswitchBrTp 4 }

          atswitchBrTpPortEntry OBJECT-TYPE
              SYNTAX  AtswitchBrTpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of information for each port of a
                      transparent bridge."
              INDEX   { atswitchBrTpPortLanId, atswitchBrTpPort }
              ::= { atswitchBrTpPortTable 1 }

          AtswitchBrTpPortEntry ::=
              SEQUENCE {
                  atswitchBrTpPortLanId
                      INTEGER,
                  atswitchBrTpPort
                      INTEGER,
                  atswitchBrTpPortMaxInfo
                      INTEGER,
                  atswitchBrTpPortInFrames
                      Counter,
                  atswitchBrTpPortOutFrames
                      Counter,
                  atswitchBrTpPortInDiscards
                      Counter
              }

          atswitchBrTpPortLanId OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This object uniquely identifies the lan or
              Virtual lan."
              ::= { atswitchBrTpPortEntry 1 }

          atswitchBrTpPort OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port for which this entry
                      contains Transparent bridging management
                      information."
              ::= { atswitchBrTpPortEntry 2 }

          -- It would be nice if we could use ifMtu as the size of the
          -- largest INFO field, but we can't because ifMtu is defined
          -- to be the size that the (inter-)network layer can use which
          -- can differ from the MAC layer (especially if several layers
          -- of encapsulation are used).

          atswitchBrTpPortMaxInfo OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The maximum size of the INFO (non-MAC) field that
                      this port will receive or transmit."
              ::= { atswitchBrTpPortEntry 3 }

          atswitchBrTpPortInFrames OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames that have been received by
                      this port from its segment. Note that a frame
                      received on the interface corresponding to this
                      port is only counted by this object if and only if
                      it is for a protocol being processed by the local
                      bridging function, including bridge management
                      frames."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { atswitchBrTpPortEntry 4 }

          atswitchBrTpPortOutFrames OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames that have been transmitted
                      by this port to its segment.  Note that a frame
                      transmitted on the interface corresponding to this
                      port is only counted by this object if and only if
                      it is for a protocol being processed by the local
                      bridging function, including bridge management
                      frames."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { atswitchBrTpPortEntry 5 }

          atswitchBrTpPortInDiscards OBJECT-TYPE
              SYNTAX   Counter
              ACCESS   read-only
              STATUS   mandatory
              DESCRIPTION
                      "Count of valid frames received which were
                      discarded (i.e., filtered) by the Forwarding
                      Process."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { atswitchBrTpPortEntry 6 }

-- Static MAC address Group
-- atswitchStaticMACGroup       OBJECT IDENTIFIER ::= { atswitchMib 12}


		atswitchStaticMACTable	OBJECT-TYPE
 		SYNTAX	SEQUENCE OF AtswitchStaticMACEntry
		ACCESS	not-accessible
		STATUS	mandatory
		DESCRIPTION
		" This tables lists Mac Addresses lexicographically from the Static 
     	     table which binds MAC addresses to ports on the switch.
		"
		::= { atswitchStaticMACGroup  1 }

		atswitchStaticMACEntry	OBJECT-TYPE
		SYNTAX	AtswitchStaticMACEntry
		ACCESS	not-accessible
		STATUS  mandatory
		DESCRIPTION
		" Entry in the atswitchStaticMACTable.
		"
		INDEX { atswitchStaticMACAddress }
		::= { atswitchStaticMACTable  1 }

		AtswitchStaticMACEntry ::=
		SEQUENCE {
		 atswitchStaticMACAddress 
			MacAddress,
		 atswitchStaticMACPortNumbers
			DisplayString,
		 atswitchStaticMACVlan
			INTEGER
		}
		
		atswitchStaticMACAddress    OBJECT-TYPE
	       SYNTAX    MacAddress
	       ACCESS    read-only
	       STATUS    mandatory
	       DESCRIPTION  
                 "This object identifies the MAC Address associated
	       with Static MAC Table."
	      ::= { atswitchStaticMACEntry 1 }

		atswitchStaticMACPortNumbers   OBJECT-TYPE
	       SYNTAX    DisplayString
	       ACCESS    read-write
	       STATUS    mandatory
	       DESCRIPTION  
			"This object identifies the Ports for which the above MAC 
			address is associated Statically in Static MAC Table. This 
			Object could take the port numbers as the Static  Address added 
			can be Multicast addresses. This Object is a DisplayString
			So, the input for example would be 1,5,6,8,9  
                 "
		::= { atswitchStaticMACEntry 2 }

          atswitchStaticMACVlan OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The Static MAC Address to be added can also be confined
				   to a Vlan also. If the Port does not belong to that Vlan.				   the Port is forced to be moved to that Vlan.
				 "
              ::= { atswitchStaticMACEntry 3 }



-- PortMACTable 

          atswitchPortMACTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF AtswitchPortMACEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains information about unicast
                      entries seen on ports.
					" 
              ::= { atswitchPortMacAddrGroup 1 }

          atswitchPortMACEntry OBJECT-TYPE
              SYNTAX  AtswitchPortMACEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Information about a specific unicast MAC address
				   seen on ports.
					"
              INDEX   {atswitchPortMACAddress , atswitchPortMACPort }
              ::= { atswitchPortMACTable 1 }

          AtswitchPortMACEntry ::=
              SEQUENCE {
                  atswitchPortMACAddress
                      MacAddress,
                  atswitchPortMACPort
                      INTEGER
              }

          atswitchPortMACAddress OBJECT-TYPE
              SYNTAX  MacAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A unicast MAC address seen on this port.
					"
              ::= { atswitchPortMACEntry 1 }

          atswitchPortMACPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This object  identifies the port  on which the 
				   atswitchPortMACAddress was seen.
					"
              ::= { atswitchPortMACEntry 2 }
--

		atswitchDebugMallocLogTable	OBJECT-TYPE
 			SYNTAX	SEQUENCE OF AtswitchMallocLogEntry
			ACCESS	not-accessible
			STATUS	deprecated
			DESCRIPTION
			" Dont care.
			"
			::= { atswitchDebugMallocLogGroup 1 }

		atswitchMallocLogEntry	OBJECT-TYPE
			SYNTAX	AtswitchMallocLogEntry
			ACCESS	not-accessible
			STATUS  deprecated
			DESCRIPTION
			" Entry in the atswitchDebugMallocLogEntry.
			"
			INDEX { atswitchDebugMallocLogIndex }
			::= { atswitchDebugMallocLogTable  1 }

		AtswitchMallocLogEntry ::=
			SEQUENCE {
			 atswitchDebugMallocLogIndex 
				INTEGER,
			 atswitchDebugMallocLogCaller
				INTEGER,
			 atswitchDebugMallocLogAddress
				INTEGER
			}
	
		atswitchDebugMallocLogIndex	OBJECT-TYPE
			SYNTAX	INTEGER 
			ACCESS	read-only
			STATUS	deprecated
			DESCRIPTION
				"
				This is strictly for Debug reason and this object should 
				not be beleived as the correct number. This log is useful
				for finding the memory leak which is stored in Leak_Table.
				The Entry of this table is the address where malloc is 
				done and no free is done. 
				The size of this 6000.
				"
        ::= { atswitchMallocLogEntry 1 }
	
		atswitchDebugMallocLogCaller	OBJECT-TYPE
			SYNTAX	INTEGER 
			ACCESS	read-only
			STATUS	deprecated
			DESCRIPTION
				"
				This is strictly for Debug reason and this object should 
				not be beleived as the correct number. This log is useful
				for finding the memory leak which is stored in Leak_Table.
				The Entry of this table is the caller address 
				who malloc'd .
				The size of this 6000.
				"
        ::= { atswitchMallocLogEntry 2 }

		atswitchDebugMallocLogAddress	OBJECT-TYPE
			SYNTAX	INTEGER 
			ACCESS	read-only
			STATUS	deprecated
			DESCRIPTION
				"
				This is strictly for Debug reason and this object should 
				not be beleived as the correct number. This log is useful
				for finding the memory leak which is stored in Leak_Table.
				The Entry of this table is the address where malloc is 
				done and no free is done. 
				The size of this 6000.
				"
        ::= { atswitchMallocLogEntry 3 }

--    atswitchTrunkGroup  	 OBJECT IDENTIFIER ::= { atswitchMib 14}

--atswitchTrunkTable  OBJECT-TYPE
--       SYNTAX    SEQUENCE OF AtswitchTrunkEntry
--       ACCESS    not-accessible
--       STATUS    mandatory
--       DESCRIPTION
--               "Table of basic Trunk Group configuration information."
--       ::= { atswitchTrunkGroup 1 }
--
--atswitchTrunkEntry  OBJECT-TYPE
--       SYNTAX    AtswitchTrunkEntry
--       ACCESS    not-accessible
--       STATUS    mandatory
--       DESCRIPTION
--               "An entry in the Trunk config table."
--       INDEX   { atswitchTrunkNumber }
--       ::= { atswitchTrunkTable 1 }
--
--AtswitchTrunkEntry  ::=
--       SEQUENCE {
--       atswitchTrunkNumber
--               INTEGER,
--       atswitchTrunkPortNumbers
--               DisplayString
--		}
--
--atswitchTrunkNumber OBJECT-TYPE
--       SYNTAX    INTEGER
--       ACCESS    read-only
--       STATUS    mandatory
--      DESCRIPTION
--                 "This object identifies the Trunk number on the switch."
--       ::= { atswitchTrunkEntry 1 }
--
--atswitchTrunkPortNumbers   OBJECT-TYPE
--       SYNTAX    DisplayString
--       ACCESS    read-write
--       STATUS    mandatory
--       DESCRIPTION  
--                 "This attribute associates the port numbers that participate
--                  in this Trunk denoted bt the TrunkNumber . It is taken as 
--		  string input.
--		 "
--       ::= { atswitchTrunkEntry 2 }

-- Traps for Security.

          atswitchDuplicateMacAddress OBJECT-TYPE
              SYNTAX    OCTET STRING (SIZE(6))
              ACCESS	not-accessible
              STATUS mandatory
	      DESCRIPTION
	      " 
              The Duplicate Mac address which is secured on 
              atswitchSecurePortNumber.
              "
	   ::= { atswitchTrapAttrGroup  1 }

          atswitchIntruderMacAddress OBJECT-TYPE
              SYNTAX    OCTET STRING (SIZE(6))
              ACCESS	not-accessible
              STATUS mandatory
	      DESCRIPTION
	      " 
              The Mac address of the Intruder as seen on port which is the 
	      the next object
              "
	   ::= { atswitchTrapAttrGroup  2 }

          atswitchSecuredPortNumber   OBJECT-TYPE
              SYNTAX   INTEGER 
              ACCESS	not-accessible
              STATUS mandatory
	      DESCRIPTION
	      " 
               This is the Port number which has the duplicate Address  as the
               secured address .
	      "
	   ::= { atswitchTrapAttrGroup  3 }

-- Traps for use by Bridges

          -- Traps for the Spanning Tree Protocol

          newRoot TRAP-TYPE
              ENTERPRISE  alliedTelesyn
              DESCRIPTION
                      "The newRoot trap indicates that the sending agent
                      has become the new root of the Spanning Tree; the
                      trap is sent by a bridge soon after its election
                      as the new root, e.g., upon expiration of the
                      Topology Change Timer immediately subsequent to
                      its election.  Implementation of this trap is
                      optional."
              ::= 101

          topologyChange TRAP-TYPE
              ENTERPRISE  alliedTelesyn
              DESCRIPTION
                      "A topologyChange trap is sent by a bridge when
                      any of its configured ports transitions from the
                      Learning state to the Forwarding state, or from
                      the Forwarding state to the Blocking state.  The
                      trap is not sent if a newRoot trap is sent for the
                      same transition.  Implementation of this trap is
                      optional."
              ::= 102

       intruderTrap TRAP-TYPE
           ENTERPRISE  alliedTelesyn
           DESCRIPTION
                   "The intruderTrap trap indicates that there was a Intruder
                                was detected on the port shown as ifIndex.
                               "
           ::= 105


END
