--/* 
-- * $RCSfile: atkkext.mib $ - ATKK Model CentreCOM 8500 and 9100 Enterprise MIB
-- *
-- * Copyright (c) 1997-8 by Extreme Networks Inc.
-- * 
-- *	  Allied Telesis K.K
-- *      http://www1.allied-telesis.co.jp/GIGA
-- *
-- *
-- * Revision control history
-- * ------------------------
-- * $Id: atkkext.mib 1.4 1998/11/12 22:30:11 abhatt PR3811 abhatt $ $Name: PR3811 $ $ProjectRevision: 1.118.1.9 $
-- *
-- * modification history
-- * --------------------
-- * $Log: atkkext.mib $
-- * Revision 1.4  1998/11/12 22:30:11  abhatt
-- * Revision 1.3  1998/11/12 22:28:49  abhatt
-- * Modified the enterprise-name, www-site-address, etc. globally.
-- * Revision 1.2  1998/11/09 22:48:16  abhatt
-- * Changed file name from atkk.mib to atkkext.mib upon request.
-- * Revision 1.1  1998/11/09 22:41:34  abhatt
-- * Initial revision
-- * Revision 1.4  1998/10/20 00:56:06  abhatt
-- * Revision 1.3  1998/10/20 00:52:51  abhatt
-- * PR3715
-- * Revision 1.2  1998/04/15 20:41:04  asmith
-- * add <CR> to make HPOV happy
-- * Revision 1.1  1998/02/19 23:02:51  asmith
-- * Initial revision
-- */

CENTRECOM-MIB DEFINITIONS ::= BEGIN

	IMPORTS
		enterprises
    	  FROM RFC1155-SMI
		sysUpTime, sysDescr
    	  FROM RFC1213-MIB
		TRAP-TYPE
    	  FROM RFC-1215;


	--  Organization & Product branches
    
        ati			OBJECT IDENTIFIER ::= { enterprises 207 }

	products                OBJECT IDENTIFIER ::= { ati 1 }
	mibObjects              OBJECT IDENTIFIER ::= { ati 8 }

        atkkSwitchMIB           OBJECT IDENTIFIER ::= { mibObjects 12 }
        extSwitchMIB            OBJECT IDENTIFIER ::= { atkkSwitchMIB 2 }
        centreCom               OBJECT IDENTIFIER ::= { products 4 }

        --
        -- ATKK Products
        --    
        centrecom8500sx		OBJECT IDENTIFIER ::= { centreCom 16 }
        centrecom8500lx		OBJECT IDENTIFIER ::= { centreCom 17 }
        centrecom9100sx		OBJECT IDENTIFIER ::= { centreCom 18 }
        centrecom9100lx		OBJECT IDENTIFIER ::= { centreCom 19 }

END
-- ===============================================================================

--
-- Atkk Switch System objects
--

CENTRECOM-SYSTEM-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                MODULE-IDENTITY FROM SNMPv2-SMI
		OBJECT-TYPE     FROM RFC-1212
                TruthValue      FROM SNMPv2-TC
		DisplayString   FROM RFC1213-MIB
                extSwitchMIB        FROM CENTRECOM-MIB;

--
--  System group
--
        atiSwitchSystem MODULE-IDENTITY
                LAST-UPDATED "9810020000Z"
                ORGANIZATION "Allied Telesis K.K"
                CONTACT-INFO "www1.allied-telesis.co.jp/GIGA"
                DESCRIPTION "Atkk Switch System objects"
        ::= { extSwitchMIB 3 }

--  Configuration save objects.  These objects are used by the network
--  management application to save configuration changes into the
--  persistant store.  There are 2 stores on the device; a primary and
--  a secondary.

        atiSaveConfiguration OBJECT-TYPE
        	SYNTAX INTEGER {
            	saveToPrimary(1),
                saveToSecondary(2)
	}
        ACCESS	write-only
        STATUS mandatory
        DESCRIPTION
            	"When this object is set, the device will copy the contents
		of the configuration database to a buffer and save it to the 
		persistant store specified by the value of the object.  The 
		save is	performed asynchronously, and the snmp agent will continue
		to respond to both gets and sets while the save is taking
	        place.  A network management application may use the
		atiSaveStatus object to determine when the asynchronous
		save operation has completed."
	::= { atiSwitchSystem 3 }                

	atiSaveStatus OBJECT-TYPE
       	SYNTAX INTEGER { saveInProgress(1),saveNotInProgress(2)	}
        ACCESS	read-only
        STATUS mandatory
        DESCRIPTION
           	"This object will return the status of a save operation invoked
		by setting the atiSaveConfiguration object.  A network
		management application can read this object to determine that a
		save operation has completed."
	::= { atiSwitchSystem 4 }                

        atiCurrentConfigInUse OBJECT-TYPE
                SYNTAX INTEGER { primary(1), secondary(2) }
        	ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                "Shows which NVRAM configuration store was used at last boot"
	::= { atiSwitchSystem 5 }                

        atiConfigToUseOnReboot OBJECT-TYPE
                SYNTAX INTEGER { primary(1), secondary(2) }
        	ACCESS read-write
                STATUS mandatory
                DESCRIPTION
        	"Controls which NVRAM configuration store will be used on next reboot."
	::= { atiSwitchSystem 6 }                

        atiOverTemperatureAlarm OBJECT-TYPE
                SYNTAX TruthValue
        	ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                "Alarm status of overtemperature sensor in device 
                enclosure."
	::= { atiSwitchSystem 7 }

        atiCurrentTemperature OBJECT-TYPE
                SYNTAX INTEGER (0..100)
        	ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                "Current temperature in degrees celcius measured inside
                device enclosure."
	::= { atiSwitchSystem 8 }

--
-- Table of operational status of all internal Fans
--
        atiFanStatusTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF AtiFanStatusEntry
		ACCESS  not-accessible
		STATUS  mandatory
                DESCRIPTION
                "Table of operational status of all internal cooling fans."
	::= { atiSwitchSystem 9 }

        atiFanStatusEntry OBJECT-TYPE
		SYNTAX  AtiFanStatusEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
                "Entry in table of all internal cooling fans."
		INDEX { atiFanNumber }
	::= { atiFanStatusTable 1 }

	AtiFanStatusEntry ::=
		SEQUENCE {
			atiFanNumber
				INTEGER,
			atiFanOperational
				TruthValue
		}

        atiFanNumber OBJECT-TYPE
                SYNTAX INTEGER
        	ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                "Identifier of cooling fan, numbered from the front and/or 
                left side of device."
	::= { atiFanStatusEntry 1 }

        atiFanOperational OBJECT-TYPE
                SYNTAX TruthValue
        	ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                "Operational status of a cooling fan."
	::= { atiFanStatusEntry 2 }


        atiPrimaryPowerOperational OBJECT-TYPE
                SYNTAX TruthValue
        	ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                "Operational status of internal power supply of a device."
	::= { atiSwitchSystem 10 }

        atiRedundantPowerStatus OBJECT-TYPE
                SYNTAX INTEGER { notPresent(1), presentOK(2), presentNotOK(3) }
        	ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                "Operational status of an external redundant power supply to a device."
	::= { atiSwitchSystem 11 }

        atiRedundantPowerAlarm OBJECT-TYPE
                SYNTAX TruthValue
        	ACCESS read-only
                STATUS mandatory
                DESCRIPTION
                "Alarm state of an external redundant power supply to a device. 
                Alarm state indicates either fan failure or overtemperature 
                condition."
	::= { atiSwitchSystem 12 }

        atiPrimarySoftwareRev  OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..15))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The software revision of the primary image stored in 
                this device.  This string will have a zero length if 
                the revision is unknown, invalid or not present. This
                will also be reported in RMON2 probeSoftwareRev if this
                is the software image currently running in the device."
	::= { atiSwitchSystem 13 }

        atiSecondarySoftwareRev  OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..15))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The software revision of the secondary image stored in 
                this device.  This string will have a zero length if 
                the revision is unknown, invalid or not present. This
                will also be reported in RMON2 probeSoftwareRev if this
                is the software image currently running in the device."
	::= { atiSwitchSystem 14 }

        atiImageToUseOnReboot OBJECT-TYPE
                SYNTAX INTEGER { primary(1), secondary(2) }
        	ACCESS read-write
                STATUS mandatory
                DESCRIPTION
        	"Controls which image will be used 
                on next reboot."
	::= { atiSwitchSystem 15 }               

        atiSystemID  OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..126))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "This represents the System ID of the Switch."
	::= { atiSwitchSystem 16 }

        atiSystemBoardID  OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..126))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "This represents the Board ID of the Switch."
	::= { atiSwitchSystem 17 }

        atiSystemLeftBoardID  OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..126))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "This represents the Left Board ID of the Summit Switch."
	::= { atiSwitchSystem 18 }

        atiSystemRightBoardID  OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..126))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "This represents the Right Board ID of the Summit Switch."
	::= { atiSwitchSystem 19 }

END



-- ===============================================================================

--
-- Atkk Switch VLAN objects
--

CENTRECOM-VLAN-MIB DEFINITIONS ::= BEGIN

-- ======================================================================
--
--	Interpretation of the Interface Table for VLAN and encapsulation
--	interfaces:
-- 
--	OBJECT	VALUE/USE
--
--	ifIndex	Same interpretation as RFC1573.  A unique value,
--			greater than zero for each VLAN/Encapsulation interface.
--
--	ifDescr	Same interpretation as RFC1573.  A textual string
--			containing information about the interface.  This
--			string should include the name of the manufacturer,
--			the product name, the version of the software, and that
--			the entry is a vlan or encapsulation interface.
--
--			Example: "VLAN Red"
--			Example: "802.1Q Encapsulation Tag 004"
--
--	ifType	propVirtual(53)
--
--	ifMtu		Equivalent to the least common denominator MTU of the
--			set of ports associated with the VLAN or ENCAPS interface.
--			For example, if the VLAN contains one ethernet port, then
--			the value of this object is 1518.  If the VLAN contains
--			all FDDI ports, the value of this object is 4500.  If
--			a vlan contains a mix of ethernet and FDDI ports, the
--			value of this object is 1518.  If there are no ports associated
--			with the interface, then the ifMtu is zero.
--
--	ifSpeed		The value of this object is zero, as defined by RFC1573
--			for sub-layers that have no concept of bandwidth.             
--
--	ifPhysAddress	The value of this object is always equal to a null octet
--			string.
--
--	ifAdminStatus	Always equal to up(1).  SetRequest-PDUs fail.
--
--	ifOperStatus	The value of this object is equal to up(1) if the
--			ifOperStatus of at least one port in in the set of ports
--			stacked below the VLAN layer is up(1).  The value of this 
--			object is down(2) if the ifOperStatus of all ports stacked
--			below the vlan layer is down(2).  The value of this
--			object is down(2) if there are no ports stacked below the
--	   		the vlan sublayer.
--
--	ifLastChange 	Same interpretation as RFC1573.  The value of sysUpTime
--		 	at the time the interface entered its current operational
--			state.  If the current state was entered prior to the 
--			last re-initialization of the local network management
--			subsystem, then this object contains a zero value.
--	 
--	ifInOctets	These objects  return NO_SUCH_NAME on reads and writes. 
--	ifInUcastPkts  	This approach is more desireable than returning zero
--	ifInNUcastPkt	on reads because NMS's cannot differentiate between
--	ifInDiscards	returning a zero for non-support vs returning a real
--	ifInErrors	zero value for the counter.  Inability to distinguish
--	ifInUnknownProtos between these two cases would essentially prevent
--	ifOutOctets	future implementation of these objects, therefore
--	ifOutUcastPkts	NO_SUCH_NAME is returned to indicate no-support.
--	ifOutNUcastPkts	Future implementations may choose to return real values
--	ifOutDiscards	for these counters.
--	ifOutDiscards				"
--	ifOutErrors				"
--	ifLinkUpDownTrapEnable                  "
--	ifConnectorPresent			"
--	ifHighSpeed				"
--	ifName					"
--
--	ifOutQLen	Deprecated in RFC1573.  Set to zero if present.
--	ifSpecific	Deprecated in RFC1573.  Set to {0.0} if present. 
--
--	linkUp TRAP	Not supported for the vlan/encaps sublayers
--	linkDown TRAP	Not supported for the vlan/encaps sublayer
--
-- ======================================================================


	IMPORTS
                MODULE-IDENTITY FROM SNMPv2-SMI
		RowStatus       FROM SNMPv2-TC
		DisplayString   FROM RFC1213-MIB
		OBJECT-TYPE     FROM RFC-1212
        IpAddress 	    FROM SNMPv2-SMI
        extSwitchMIB   FROM CENTRECOM-MIB;

        atiVlan MODULE-IDENTITY
                LAST-UPDATED "9803020000Z"
                ORGANIZATION "Allied Telesis K.K"
                CONTACT-INFO "www1.allied-telesis.co.jp/GIGA"
                DESCRIPTION "Atkk Virtual LAN objects"
        ::= { extSwitchMIB 4 }

        --
	-- The objects are arranged into the following groups:
	--
	atiVlanGroup		OBJECT IDENTIFIER ::= { atiVlan 1 }
	atiVirtualGroup	        OBJECT IDENTIFIER ::= { atiVlan 2 }
	atiEncapsulationGroup	OBJECT IDENTIFIER ::= { atiVlan 3 }
	atiProtocolGroup	OBJECT IDENTIFIER ::= { atiVlan 5 }

	--	
	--
	-- Simens Vlan Type Textual Convention
	--
	--	vlanLayer2(1) = The globally identified VLAN interface is protocol
	--		independent and based on port grouping.  The configuration of
	--		port grouping is controlled through the ifStackTable.
	--

	AtiSwitchVlanType ::= INTEGER {
		vlanLayer2(1)
	}

	--
	-- All groups in this MIB are optional.  Support for a 
	-- particular group is dependent upon the capabilities
	-- of the network device.
	--
	-- The VLAN Group
	--
	--	The VLAN mapping group contains objects for
	--	identifying VLANs within a device.  It consists of the
	--	atiVlanIfTable.
	--
	-- The Virtual Group
	--
	--	The virtual group contains the atiNextVirtIfIndex object.
	--	In the future, other groups and object will be added as
	--	capabilities are added.
	--
	-- The Encapsulation Group
	--
	--	The Encapsulation Group contains objects for identifying
	--	and configuring encapsulation entries within a device.
	--	It consists of the atiVlanEncapsIfTable.
	--

	--
	-- The Atkk VLAN Interface Table
	--

        atiVlanIfTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF AtiVlanIfEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
			"This table lists VLAN interfaces that exist within
			a device.  A single entry exists in this list for each
			VLAN interface in the system.  A VLAN interface may
			be created, destroyed and/or mapped to a globally identified
			vlan."
		::= { atiVlanGroup 2 }

	atiVlanIfEntry OBJECT-TYPE
		SYNTAX  AtiVlanIfEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
			"An individual VLAN interface entry.  When an NMS wishes
			to create a new entry in this table, it must obtain a 
			non-zero index from the atiNextAvailableVirtIfIndex
			object.  Row creation in this table will fail if the
			chosen index value does not match the current value 
			returned from the atiNextAvailableVirtIfIndex object."
		INDEX { atiVlanIfIndex }
		::= { atiVlanIfTable 1 }

        AtiVlanIfEntry ::=
		SEQUENCE {
			atiVlanIfIndex
				INTEGER,
			atiVlanIfDescr
				DisplayString,
			atiVlanIfType
				AtiSwitchVlanType,
			atiVlanIfGlobalIdentifier
				INTEGER,
			atiVlanIfStatus
				RowStatus
		}

        atiVlanIfIndex OBJECT-TYPE
                SYNTAX  INTEGER
                ACCESS 	read-write
                STATUS  mandatory
                DESCRIPTION
            		"The index value of this row and the vlan's ifIndex in the
	     		ifTable.  The NMS obtains the index value for this row by
			reading the atiNextAvailableVirtIfIndex object."
        ::= { atiVlanIfEntry 1 }

        atiVlanIfDescr OBJECT-TYPE
		SYNTAX	DisplayString (SIZE(0..32))
		ACCESS	read-write
		STATUS	mandatory
		DESCRIPTION
			"This is a description of the VLAN interface."
	::= {atiVlanIfEntry 2}

        atiVlanIfType OBJECT-TYPE
                SYNTAX 	AtiSwitchVlanType
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
			"The VLAN interface type."
        ::= { atiVlanIfEntry 3 }

        atiVlanIfGlobalIdentifier OBJECT-TYPE
                SYNTAX  INTEGER (0..65535)
                ACCESS	read-write 
                STATUS  mandatory
                DESCRIPTION
			"An administratively assigned global VLAN identifier.
                        
			The binding between a global identifier and a VLAN 
			interface can be created or removed.  To create a binding
			an NMS must write a non-zero value to this object.  To
			delete a binding, the NMS must write a zero to this
			object.  The value 1 is reserved for the default VLAN and
			this cannot be deleted or re-assigned."
	::= { atiVlanIfEntry 4 }

        atiVlanIfStatus OBJECT-TYPE
                SYNTAX  RowStatus
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                    "The status column for this VLAN interface. 
        	    This OBJECT can be set to:

            		active(1)
			createAndGo(4)
            		createAndWait(5)
            		destroy(6)

                    The following values may be read:
            		active(1)
			notInService(2)
           		notReady(3).
			
			Setting this object to createAndGo(4) causes the agent
			to attempt to create and commit the row based on 
			the contents of the objects in the row.  If all necessary
			information is present in the row and the values are
			acceptible to the agent, the agent will change the 
			status to active(1).  If any of the necessary objects  
			are not available, the agent will reject the creation
			request.	

			Setting this object to createAndWait(5) causes a row
			in this table to be created.  The agent sets the
			status to notInService(2) if all of the information is
			present in the row and the values are acceptable to the
			agent; otherwise, the agent sets the status to
			notReady(3).

			Setting this object to active(1) is only valid when
			the current status is active(1) or notInService(2).  

			When the state of the row transitions is set to active(1),
			the agent creates the corresponding row in the ifTable..

			Setting this object to destroy(6) will remove the corresponding
			VLAN interface, remove the entry in this table, and the
			corresponding entries in the ifTable.

			In order for a set of this object to destroy(6) to succeed,
			all dependencies on this row must have been removed.  These
			will include any stacking dependencies in the ifStackTable and
			any protocol specific tables dependencies."
        ::= { atiVlanIfEntry 6 }


        --
	-- The Atkk VLAN Encapsulation Interface Table
	--
	-- VLAN Encapsulation refers to the ability to multiplex
	-- several VLANs over a single network segment by explicitly
	-- labeling eack packet with a tag that identifies the packet's
	-- VLAN membership.
	--
	-- The only tagging scheme supported by this MIB is IEEE 802.1Q
        -- Some ports support tagging, some don't.  For ports that support 
        -- tagging, they may have some VLANs that operate in tagging mode, 
        -- some not in tagging mode.
	--
	-- The encapsulation interface will be creatable by the NMS using
	-- the atiVlanIfTable.  This table will allow the NMS to define 
	-- certain attributes of the encapsulation including an encapsulation 
	-- algorithm and a tag value.  Using the ifStack table, an encapsulation
	-- interface may be stacked underneath a VLAN interface and on top of port(s).
	-- 
	-- Example ifTable Stacking:
	--
	--		+=======================+=======================+
	--		|     VLAN Xface 9      |       VLAN Xface 11   |
	--		+=======================+=======================+
	--		+=======================+
	--		|      ENCAPS Xface 10  |
	--		+=======================+
	--		+=====+=====+=====+=====+=====+=====+=====+=====+
	--		|  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |<=== Ports
	--		+=====+=====+=====+=====+=====+=====+=====+=====+
	--
	-- ifStackTable Instances:
	--		ifStackHigher	ifStackLower
	--                   0               9
	--                   0               11
	--                   1               0
	--                   2               0
	--                   3               0
	--                   4               0
	--                   9               10
	--                  10               1
	--                  10               2
	--                  10               3
	--                  10               4
	--                  11               5
	--                  11               6
	--                  11               7
	--                  11               8
	--
	-- A stack that contains a VLAN, encapsulation and a port interface, specifies:
	--
	-- * For packets received through the given port that use the given encapsulation
	--   scheme and contain the given tag, those packets are members of the given VLAN.
	--
	-- * For unencapsulated packets from the given VLAN that are to be transmitted out
	--   the given port, those packets must first be encapsulated using the given
	--   encapsulation algorithm and tag.
	-- 

	AtiSwitchVlanEncapsType ::= INTEGER { 
		vlanEncaps8021q(2)
	}


	atiVlanEncapsIfTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF AtiVlanEncapsIfEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
			"This table lists VLAN encapsulation interfaces that
			exist within a device.  A single entry exists in this
			list for each VLAN encapsulation interface in the
			system.  A VLAN encapsulation interface may be created
			or destroyed."
		::= { atiEncapsulationGroup 1 }

	atiVlanEncapsIfEntry OBJECT-TYPE
		SYNTAX  AtiVlanEncapsIfEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
			"An individual VLAN encapsulation interface entry. 
			When an NMS wishes to create a new entry in this table,
			it must obtain a non-zero index from the
			atiNextAvailableVirtIfIndex object.  Row creation in
			this table will fail if the chosen index value does
			not match the current value returned from the
			atiNextAvailableVirtIfIndex object."
		INDEX { atiVlanEncapsIfIndex }
		::= { atiVlanEncapsIfTable 1 }

	AtiVlanEncapsIfEntry ::=
		SEQUENCE {
			atiVlanEncapsIfIndex
				INTEGER,
			atiVlanEncapsIfType
				AtiSwitchVlanEncapsType,
			atiVlanEncapsIfTag
				INTEGER,
			atiVlanEncapsIfStatus
				RowStatus
		}

	atiVlanEncapsIfIndex OBJECT-TYPE
		SYNTAX  INTEGER
		ACCESS 	read-write
		STATUS  mandatory
		DESCRIPTION
			"The index value of this row and the encapsulation
			interface's ifIndex in the ifTable.  The NMS obtains
			the index value used for creating a row in this table
			by reading the atiNextAvailableVirtIfIndex object."
        ::= { atiVlanEncapsIfEntry 1 }

	atiVlanEncapsIfType OBJECT-TYPE
		SYNTAX	AtiSwitchVlanEncapsType
		ACCESS	read-write
		STATUS	mandatory
		DESCRIPTION
			"The encapsulation algorithm used when encapsulating
			packets transmitted, or de-encapsulating packets
			received through this interface."
	::= {atiVlanEncapsIfEntry 2}

	atiVlanEncapsIfTag OBJECT-TYPE
		SYNTAX 	INTEGER
		ACCESS  read-write
		STATUS  mandatory
		DESCRIPTION
			"The tag used when encapsulating packets transmitted,
			or de-encapsulating packets received through this
			interface."
        ::= { atiVlanEncapsIfEntry 3 }

	atiVlanEncapsIfStatus OBJECT-TYPE
		SYNTAX  RowStatus
		ACCESS  read-write
		STATUS  mandatory
		DESCRIPTION
			"The row status for this VLAN encapsulation interface. 

			 This OBJECT can be set to:

				active(1)
				createAndGo(4)
				createAndWait(5)
				destroy(6)

			The following values may be read:
				active(1)
				notReady(3).
			
			In order for a row to become active, the NMS must set
			atiVlanEncapsIfTagType and atiVlanEncapsIfTag to
			some valid and consistent values.  

			Setting this object to createAndGo(4) causes the agent
			to attempt to create and commit the row based on the
			contents of the objects in the row. If all necessary
			information is present in the row, the agent will
			create the row and change the status to active(1).  If
			any of the necessary objects are not available, or
			specify an invalid configuration, the row will not be
			created and the agent will return an appropriate error.

			Setting this object to createAndWait(5) causes a row in
			in this table to be created.  If all necessary objects
			in the row have been assigned values and specify a valid
			configuration, the status of the row will be set to
			notInService(2); otherwise, the status will be set to
			notReady(3).  

			This object may only be set to createAndGo(4) or
			createAndWait(5) if it does not exist.

			Setting this object to active(1) when the status is
			notInService(2) causes the agent to commit the
			row.  Setting this object to active(1) when its value
			is already active(1) is a no-op.

			Setting this object to destroy(6) will remove the
			corresponding VLAN encapsulation interface, remove the
			entry in this table, and remove the corresponding entry
			in the ifTable.

			In order for a set of this object to destroy(6) to
			succeed, all dependencies on this row must have been
			removed.  These will include any references to this
			interface in the ifStackTable."
        ::= { atiVlanEncapsIfEntry 4 }

	--
	-- The atiNextAvailableVirtIfIndex
	--

	atiNextAvailableVirtIfIndex OBJECT-TYPE
		SYNTAX	INTEGER
		ACCESS	read-only
		STATUS	mandatory
		DESCRIPTION
			"The value of the next available virtual ifIndex.  This
			 object is used by an NMS to select an index value 
			 for row-creation in tables indexed by ifIndex.  The 
			 current value of this object is changed to a new
			 value when the current value is written to an agent's
			 table, that is indexed by ifIndex.  Row creation
			 using the current value of this object, allocates
			 a virtual ifIndex.  Note the following:
			
			 1. A newly created row does not have to be active(1)
			    for the agent to allocate the virtual ifIndex.

			 2. Race conditions between multiple NMS's end when
			    a row is created.  Rows are deemed created when
			    a setRequest is successfully committed (i.e.
			    the errorStats is noError(0)).

			3.  An agent that exhausts its supply of virual
			    ifIndex values returns zero as the value of this
			    object.  This can be used by an NMS as an indication
			    to deleted unused rows and reboot the device."
		::= { atiVirtualGroup 1 }		 


-- 
-- Protocol Definition Table
--
	atiVlanProtocolTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF AtiVlanProtocolEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
                       "Table of defined combinations of protocol IDs 
                        that make up one protocol definition name. 
                        All members of one protocol definition share 
                        the same atiVlanProtocolIndex. A given 
                        protocol ID may appear in the definition of 
                        just one protocol definition. This table will
                        typically contain some default entries for
                        popular protocols."
	::= { atiProtocolGroup 1 }

	atiVlanProtocolEntry OBJECT-TYPE
		SYNTAX  AtiVlanProtocolEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
                       "One member protocol ID of a protocol definition."
        	INDEX { atiVlanProtocolIndex, 
                        atiVlanProtocolIdIndex }

	::= { atiVlanProtocolTable 1 }

	AtiVlanProtocolEntry ::= SEQUENCE {
                atiVlanProtocolIndex INTEGER,
                atiVlanProtocolIdIndex INTEGER,
	        atiVlanProtocolName DisplayString,
                atiVlanProtocolDllEncapsType INTEGER,
                atiVlanProtocolId INTEGER,
                atiVlanProtocolStatus RowStatus
        }
        atiVlanProtocolIndex OBJECT-TYPE
                SYNTAX INTEGER(0..7)
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                      "An index representing a protocol grouping of
                        protocol ID values. A limited number of
                        protocol groupings may be defined (up to 7)."
	::= { atiVlanProtocolEntry 1 }

        atiVlanProtocolIdIndex OBJECT-TYPE
                SYNTAX INTEGER(0..6)
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                      "An index representing a particular protocol ID
                        within a protocol grouping. A limited number of
                        protocol IDs may be defined per 
                        atiVlanProtocolIndex (up to 6)."
	::= { atiVlanProtocolEntry 2 }


      	atiVlanProtocolName OBJECT-TYPE
                SYNTAX  DisplayString (SIZE(0..31))
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                      "A human-readable string representing this protocol.
                        This string should be the same for all entries
                        sharing a given atiVlanProtocolIndex. 
                        A atiVlanProtocolEntry with 
                        atiVlanProtocolName of ANY represents a match 
                        on all protocols: this entry may not be modified."
	::= { atiVlanProtocolEntry 3 }

        atiVlanProtocolDllEncapsType OBJECT-TYPE 
                SYNTAX  INTEGER { any(1), ethertype(2), 
                                  llc(3), llcSnapEthertype(4) }
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                      "Represents the type of data-link encapsulation 
                        in which the atiVlanProtocolId protocol ID 
                        is carried. The value any(1) is used to indicate 
                        a wildcard and matches all encapsulations and 
                        protocol IDs that are not explicitly mentioned 
                        in this table. Entries of type any(1) may not 
                        be created. The value none(5) is used to indicate 
                        that no protocol IDs match this entry. A value
                        of none(5) may not be set by a manager."
	::= { atiVlanProtocolEntry 4 }

        atiVlanProtocolId OBJECT-TYPE
                SYNTAX  INTEGER (0..65535)
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                      "The protocol ID: for entries of type ethertype(2)
                        or llcSnapEthertype(4) this represents a 16-bit
                        protocol ID. For entries of type llc(3) it 
                        represents a concatenation of LLC DSAP+SSAP in
                        network byte order. This value is not valid
                        for atiVlanProtocolDllEncapsType values of
                        any(1) or none(5)."
	::= { atiVlanProtocolEntry 5 }

        atiVlanProtocolStatus OBJECT-TYPE
                SYNTAX RowStatus
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "The row status variable, used according to
                        row installation and removal conventions."
	::= { atiVlanProtocolEntry 6 }


--
-- Protocol-based VLAN Table
--
	atiVlanProtocolVlanTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF AtiVlanProtocolVlanEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
                       "Table to apply one of the protocol definitions 
                        in atiVlanProtocolTable to a given VLAN 
                        This applies to all ports that are untagged 
                        in this VLAN). A limited number of protocols
                        may be applied simultaneously in one device (up to 8)."
	::= { atiProtocolGroup 2 }

	atiVlanProtocolVlanEntry OBJECT-TYPE
		SYNTAX  AtiVlanProtocolVlanEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
                       "A mapping of untagged packets of one protocol 
                        onto a particular VLAN."
        	INDEX { atiVlanProtocolVlanIfIndex, 
                        atiVlanProtocolVlanProtocolIndex }
	::= { atiVlanProtocolVlanTable 1 }

	AtiVlanProtocolVlanEntry ::= SEQUENCE {
		atiVlanProtocolVlanIfIndex INTEGER,
		atiVlanProtocolVlanProtocolIndex INTEGER,
                atiVlanProtocolVlanStatus RowStatus
        }

        atiVlanProtocolVlanIfIndex OBJECT-TYPE
                SYNTAX INTEGER
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
           		"The index value of this row and the vlan's ifIndex in the
	     		ifTable.  The NMS obtains the index value for this row by
				reading the atiNextAvailableVirtIfIndex object."
	::= { atiVlanProtocolVlanEntry 1 }

        atiVlanProtocolVlanProtocolIndex OBJECT-TYPE
                SYNTAX INTEGER
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
	                "An index representing a protocol grouping of
                     protocol ID values. A limited number of
                     protocol groupings may be defined (up to 7)."
	::= { atiVlanProtocolVlanEntry 2 }


        atiVlanProtocolVlanStatus OBJECT-TYPE
                SYNTAX RowStatus
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "The row status variable, used according to
                        row installation and removal conventions."
	::= { atiVlanProtocolVlanEntry 3 }

END



-- ===============================================================================

--
-- Atkk QoS objects
--

CENTRECOM-QOS-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                MODULE-IDENTITY FROM SNMPv2-SMI
		OBJECT-TYPE     FROM RFC-1212
                TruthValue      FROM SNMPv2-TC
		DisplayString   FROM RFC1213-MIB
		RowStatus       FROM SNMPv2-TC
		atiVlanIfIndex	FROM CENTRECOM-VLAN-MIB
                extSwitchMIB        FROM CENTRECOM-MIB;

        atiQos MODULE-IDENTITY
                LAST-UPDATED "9803020000Z"
                ORGANIZATION "Allied Telesis K.K"
                CONTACT-INFO "www1.allied-telesis.co.jp/GIGA"
                DESCRIPTION "Atkk Quality-of-Service objects"
        ::= { extSwitchMIB 5 }

	atiQosCommon	OBJECT IDENTIFIER ::= { atiQos 1 }

--
-- Select QoS Mode
--
	atiQosMode OBJECT-TYPE
		SYNTAX  INTEGER { ingress(1), egress(2) }
		ACCESS  read-write
		STATUS  mandatory
		DESCRIPTION
                      "Indicates which QoS mode the device should
                       use. ingress(1) applies priority-based QoS based 
                       on the incoming packet's destination IP or MAC
                       address, 802.1p priority, PACE(tm), Source Port or
                       VLAN. egress(2) applies priority- and bandwidth-based
                       QoS based on destination IP or MAC address or VLAN."
	::= { atiQosCommon 4 }

--
-- Reset all QoS settings to defaults
--
	atiQosUnconfigure OBJECT-TYPE
		SYNTAX  TruthValue
		ACCESS  read-write
		STATUS  mandatory
		DESCRIPTION
                      "Setting this to true will reset all QoS settings
                        in the device to factory defaults. Reads from this
                        value return an undefined value."
	::= { atiQosCommon 5 }


--
-- QoS Profile table
--

	atiQosProfileTable	OBJECT-TYPE
		SYNTAX	SEQUENCE OF AtiQosProfileEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
			"This table lists QoS profiles."
		::= { atiQosCommon 6 }

	atiQosProfileEntry	OBJECT-TYPE
		SYNTAX	AtiQosProfileEntry
		ACCESS	not-accessible
		STATUS	mandatory
		DESCRIPTION
			"An individual QoS profile Entry."
		INDEX {atiQosProfileIndex}
		::= {atiQosProfileTable 1}

	AtiQosProfileEntry ::= SEQUENCE {

        	atiQosProfileIndex	INTEGER ,
		atiQosProfileName	DisplayString,
		atiQosProfileMinBw	INTEGER,
		atiQosProfileMaxBw	INTEGER,
		atiQosProfilePriority	INTEGER,
		atiQosProfileRowStatus	RowStatus
	}

	atiQosProfileIndex OBJECT-TYPE
		SYNTAX	INTEGER (1..65535)
		ACCESS	read-write
		STATUS	mandatory
		DESCRIPTION
			"An index that uniquely identifies an entry in the
			qos table."
		::= { atiQosProfileEntry 1}

	atiQosProfileName OBJECT-TYPE
		SYNTAX	DisplayString (SIZE (0..127))
		ACCESS 	read-write
		STATUS	mandatory
		DESCRIPTION
			"A unique qos profile name."
		::= {atiQosProfileEntry 2}

	atiQosProfileMinBw	OBJECT-TYPE
		SYNTAX	INTEGER
		ACCESS read-write
		STATUS mandatory
		DESCRIPTION
			"The minumum percentage of bandwidth that this queue requires.
			The Switch is required to provide the minumum amount of 
			bandwidth to the queue. The lowest possible value is 0%."
		::= {atiQosProfileEntry 3 }

		
	atiQosProfileMaxBw	OBJECT-TYPE
		SYNTAX	INTEGER
		ACCESS read-write
		STATUS mandatory
		DESCRIPTION
			"The maximum percentage of bandwidth that this queue is
			permitted to use"
		::= {atiQosProfileEntry 4 }

	atiQosProfilePriority OBJECT-TYPE
		SYNTAX	INTEGER {
				low(1),
				normal(2),
				medium(3),
				high(4)
		}
		ACCESS read-write
		STATUS mandatory
		DESCRIPTION
			"The level of priority in which this queue will be serviced
			  by the Switch."
		::= {atiQosProfileEntry 5 }

	atiQosProfileRowStatus OBJECT-TYPE
		SYNTAX	RowStatus
		ACCESS 	read-write
		STATUS	mandatory
		DESCRIPTION
			"The status of the atiQosProfile entry.
                	    This OBJECT can be set to:

                    		active(1)
        			createAndGo(4)
                    		createAndWait(5)
                    		destroy(6)

                            The following values may be read:
                    		active(1)
        			notInService(2)
                   		notReady(3).
			
			Setting this object to createAndGo(4) causes the agent
			to attempt to create and commit the row based on 
			the contents of the objects in the row.  If all necessary
			information is present in the row and the values are
			acceptible to the agent, the agent will change the 
			status to active(1).  If any of the necessary objects  
			are not available, the agent will reject the creation
			request.	

			Setting this object to createAndWait(5) causes a row
			in this table to be created.  The agent sets the
			status to notInService(2) if all of the information is
			present in the row and the values are acceptable to the
			agent; otherwise, the agent sets the status to
			notReady(3).

			Setting this object to active(1) is only valid when
			the current status is active(1) or notInService(2).  

			When the state of the row transitions is set to active(1),
			the agent creates the corresponding row in the ifTable..

			Setting this object to destroy(6) will remove the corresponding
			QoS Profile Entry.

			In order for a set of this object to destroy(6) to succeed,
			all dependencies on this row must have been removed.  These
			will include any stacking dependencies in the ifStackTable and
			any protocol specific tables dependencies."
        ::= { atiQosProfileEntry 6 }

--
-- VLAN-based QoS Table
--
       	atiQosByVlanMappingTable OBJECT-TYPE

		SYNTAX  SEQUENCE OF AtiQosByVlanMappingEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
			"Table to associate a Vlan with the QoS profile that the
			 Vlan is using. Every Vlan is assigned a Qos Profile and
			 hence there is an entry in this table corresponding to every
			 entry in the atiVlanIfTable."
		::= { atiQosCommon 7 }

	atiQosByVlanMappingEntry OBJECT-TYPE
		SYNTAX	AtiQosByVlanMappingEntry
		ACCESS	not-accessible
		STATUS	mandatory
		DESCRIPTION
                        "The QoS associated with a particular Vlan."
		INDEX {atiVlanIfIndex}
		::= {atiQosByVlanMappingTable 1}

	AtiQosByVlanMappingEntry ::= SEQUENCE {
        	atiQosByVlanMappingQosProfileIndex	INTEGER
	}

	atiQosByVlanMappingQosProfileIndex OBJECT-TYPE
		SYNTAX	INTEGER (1..65535)
		ACCESS	read-write
		STATUS	mandatory
		DESCRIPTION
			"Value of atiQosProfileIndex that uniquely 
                        identifies a QoS Profile entry in atiQosProfileTable.
                        This indicates the QoS to be given to traffic for this
                        Vlan in the absence of any other more specific 
                        configuration information for this traffic."
	::= { atiQosByVlanMappingEntry 1 }


END

-- ===============================================================================

--
-- Atkk Switch Port objects
--

CENTRECOM-PORT-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                MODULE-IDENTITY         FROM SNMPv2-SMI
		RowStatus               FROM SNMPv2-TC
		OBJECT-TYPE             FROM RFC-1212
        extSwitchMIB        FROM CENTRECOM-MIB;

        atiPort MODULE-IDENTITY
                LAST-UPDATED "9802030000Z"
                ORGANIZATION "Allied Telesis K.K"
                CONTACT-INFO "www1.allied-telesis.co.jp/GIGA"
                DESCRIPTION "Atkk network port objects"
        ::= { extSwitchMIB 6 }

--
-- Load-sharing
--
	atiPortLoadshareTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF AtiPortLoadshareEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
                      "A table of bindings between a master port 
                        and its load-sharing slaves: create/delete 
                        entries here to add/delete a port to/from a 
                        load-sharing group. Default is empty table. 
                        There are restrictions on what row creates 
                        will be accepted by each device - see Summit 
                        release notes for details."
	::= { atiPort 1 }

	atiPortLoadshareEntry OBJECT-TYPE
		SYNTAX  AtiPortLoadshareEntry
		ACCESS  not-accessible
		STATUS  mandatory
		DESCRIPTION
                      "A binding between a master port and one
                       of its load-sharing slave ports."
                INDEX { atiPortLoadshareMasterIfIndex, 
                        atiPortLoadshareSlaveIfIndex } 
	::= { atiPortLoadshareTable 1 }

	AtiPortLoadshareEntry ::= SEQUENCE {
                atiPortLoadshareMasterIfIndex INTEGER, 
                atiPortLoadshareSlaveIfIndex INTEGER,
   				atiPortLoadshareGrouping	INTEGER,
                atiPortLoadshareStatus RowStatus 
	}

	atiPortLoadshareMasterIfIndex OBJECT-TYPE
                SYNTAX INTEGER
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                      "The ifIndex value which identifies the
                       port controlling a loadsharing group
                       of ports which includes
                       atiPortLoadshareSlaveIfIndex."
        ::= { atiPortLoadshareEntry 1 }

	atiPortLoadshareSlaveIfIndex OBJECT-TYPE
                SYNTAX INTEGER
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                      "The ifIndex value which identifies the
                       port which is a member of a loadsharing 
                       group controlled by 
                        atiPortLoadshareMasterIfIndex."
        ::= { atiPortLoadshareEntry 2 }

	atiPortLoadshareGrouping OBJECT-TYPE
                SYNTAX INTEGER { pair (2), quad (4) }
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                      "The Grouping value which identifies if load sharing is
                      in pair or quad."
        ::= { atiPortLoadshareEntry 3 }

	atiPortLoadshareStatus OBJECT-TYPE
                SYNTAX  RowStatus
                ACCESS  read-write
                STATUS  mandatory
                DESCRIPTION
                        "The row status variable, used according to
                        row installation and removal conventions."
        ::= { atiPortLoadshareEntry 4 }

END


-- ===============================================================================

--
-- Traps
--

CENTRECOM-TRAP-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                extSwitchMIB                   FROM CENTRECOM-MIB
		sysUpTime, sysDescr             FROM RFC1213-MIB
                TRAP-TYPE                       FROM RFC-1215;

          overheat TRAP-TYPE
              ENTERPRISE  extSwitchMIB
              VARIABLES   { sysUpTime, sysDescr }
              DESCRIPTION
                          "A overheat trap indicates that the on board
                          tempature sensor has reported a overheat 
                          condition.  System will shutdown until unit has
			  sufficiently cooled such that operation may begin
                          again.  A cold start trap will be issued when
                          the unit has come back on line."    
              ::= 6

          fanfailed TRAP-TYPE
              ENTERPRISE  extSwitchMIB
              VARIABLES   { sysUpTime, sysDescr }
              DESCRIPTION
                          "A fan failed trap indicates one or more of the
                          cooling fans inside the device has failed.  A
                          fanOK trap will be sent once the fan has attained
                          normal operation."
              ::= 7

          fanOK TRAP-TYPE
              ENTERPRISE  extSwitchMIB
              VARIABLES   { sysUpTime, sysDescr }
              DESCRIPTION
                          "A fan has transitioned out of a failure state and
                          is now operating correctly."
              ::= 8

          invalidLoginAttempt TRAP-TYPE
              ENTERPRISE  extSwitchMIB
              VARIABLES   { sysUpTime, sysDescr }
              DESCRIPTION
                          "A user attempted to login to console or by telnet but was refused
                           access due to incorrect username or password"
              ::= 9

          powerSupplyFail TRAP-TYPE
              ENTERPRISE  extSwitchMIB
              VARIABLES   { sysUpTime, sysDescr }
              DESCRIPTION
                          "One or more sources of power to this agent has failed.
                           Presumably a redundant power-supply has taken over."
              ::= 10

          powerSupplyGood TRAP-TYPE
              ENTERPRISE  extSwitchMIB
              VARIABLES   { sysUpTime, sysDescr }
              DESCRIPTION
                          "One or more previously bad sources of power to this agent 
                           has come back to life without causing an agent restart."
              ::= 11

          rpsAlarm TRAP-TYPE
              ENTERPRISE  extSwitchMIB
              VARIABLES   { sysUpTime, sysDescr }
              DESCRIPTION
                          "Attached Redundant Power Supply device is indicating
                           an alarm condition."
              ::= 12

          rpsNoAlarm TRAP-TYPE
              ENTERPRISE  extSwitchMIB
              VARIABLES   { sysUpTime, sysDescr }
              DESCRIPTION
                          "Attached Redundant Power Supply device is no longer
                           indicating an alarm condition."
              ::= 13


END

