FOUNDRY-SN-MAC-VLAN-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32
      FROM SNMPv2-SMI
    MacAddress
      FROM SNMPv2-TC
    InterfaceIndex
      FROM IF-MIB;


snMacVlan MODULE-IDENTITY
    LAST-UPDATED "200706250000Z" -- June 25, 2007
    ORGANIZATION "Foundry Networks, Inc"
    CONTACT-INFO
            ""
    DESCRIPTION
            "Management Information Base module for MAC-based Vlan
            configuration and statistics."
    REVISION     "200706250000Z" -- June 25, 2007
    DESCRIPTION
            ""
   ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) foundry(1991) products(1) switch(1) snSwitch(3) 30 }


--
-- Mac-based Vlan
--

snMacVlanGlobalObjects OBJECT IDENTIFIER ::= { snMacVlan 1 }
snMacVlanTableObjects  OBJECT IDENTIFIER ::= { snMacVlan 2 }

--
-- MAC-based VLAN Global Scalar Object Section
--

snMacVlanGlobalClearOper OBJECT-TYPE
	SYNTAX     INTEGER { valid(0), clear(1) }
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"valid(0) - a SNMP-GET of this mib shows that it is valid command to use. 
		 clear(1) - represents clear operational MAC-based Vlan entry for all ports."
	::= { snMacVlanGlobalObjects 1 }

snMacVlanGlobalDynConfigState OBJECT-TYPE
	SYNTAX     INTEGER { disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"Enable/disable MAC-based VLAN dynamic activation on the global level."
	::= { snMacVlanGlobalObjects 2}

--
-- MAC-based VLAN Table Object Section
--

--
-- MAC-based Vlan Port Membership Table
-- Use this table to create or delete a port to a MAC-based Vlan
--

snMacVlanPortMemberTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF SnMacVlanPortMemberEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"MAC-based Vlan port membership table."
	::= { snMacVlanTableObjects 1 }

snMacVlanPortMemberEntry OBJECT-TYPE
	SYNTAX     SnMacVlanPortMemberEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"An entry of the MAC-based Vlan port membership table."
	INDEX { snMacVlanPortMemberVLanId, snMacVlanPortMemberPortId }
	::= { snMacVlanPortMemberTable 1 }

SnMacVlanPortMemberEntry ::= SEQUENCE {
    snMacVlanPortMemberVLanId      INTEGER,
    snMacVlanPortMemberPortId      InterfaceIndex,
    snMacVlanPortMemberRowStatus   INTEGER
}

snMacVlanPortMemberVLanId OBJECT-TYPE
	SYNTAX    INTEGER (1..4095)
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The VLAN identifier (VLAN ID)."
	::= { snMacVlanPortMemberEntry 1 }

snMacVlanPortMemberPortId OBJECT-TYPE
	SYNTAX     InterfaceIndex
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The ifIndex which is a member of the MAC-based VLAN."
	::= { snMacVlanPortMemberEntry 2 }

snMacVlanPortMemberRowStatus OBJECT-TYPE
	SYNTAX     INTEGER {
		other(1),
		valid(2),
		delete(3),
		create(4)
		}
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"This object is used to create and
		delete row in the table and control
		if they are used. The values
		that can be written are:
		  delete(3)...deletes the row
		  create(4)...creates a new row

		If the row exists, then a SET with
		value of create(4) returns error
		'wrongValue'. Deleted rows go away
		immediately. The following values
		can be returned on reads:
		  noSuch(0)...no such row
		  other(1)....some other case
		  valid(2)....the row exists and is valid"
	::= { snMacVlanPortMemberEntry 3 }

--
-- MAC-based VLAN Interface Table Object Section
--

snMacVlanIfTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF SnMacVlanIfEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"MAC-based Vlan Interface table."
	::= { snMacVlanTableObjects 2 }

snMacVlanIfEntry OBJECT-TYPE
	SYNTAX     SnMacVlanIfEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"An entry in the MAC-based Vlan interface table."
	INDEX { snMacVlanIfIndex }
	::= { snMacVlanIfTable 1 }

SnMacVlanIfEntry ::= SEQUENCE {
    snMacVlanIfIndex            InterfaceIndex,
    snMacVlanIfEnable              INTEGER,
    snMacVlanIfMaxEntry            Integer32,
    snMacVlanIfClearOper           INTEGER,
	snMacVlanIfClearConfig         INTEGER
}

snMacVlanIfIndex OBJECT-TYPE
	SYNTAX     InterfaceIndex
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"The ifIndex which is a member of the MAC-based VLAN."
	::= { snMacVlanIfEntry 1 }
	
snMacVlanIfEnable OBJECT-TYPE
	SYNTAX     INTEGER { disabled(0), enabled(1) }
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"The administrative status requested by management for
 	MAC-based Vlan on this interface.  The value enabled(1) 
 	indicates that MAC-based Vlan should be enabled on this interface,
 	When disabled(2), MAC-based Vlan is disabled on this interface.
 	 Enable/disable MAC-based Vlan on this interface."
	::= { snMacVlanIfEntry 2 }

snMacVlanIfMaxEntry OBJECT-TYPE
	SYNTAX     Integer32 (2..32)
	MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"The maximum number of allowed and denied MAC address 
		(static and dynamic) that can be leared on an interface. 
		The default value is 2. The value should be between 2 to 32."
	DEFVAL      { 2 }
	::= { snMacVlanIfEntry 3 }

snMacVlanIfClearOper OBJECT-TYPE
	SYNTAX      INTEGER { valid(0), clear(1) }
	MAX-ACCESS  read-write
	STATUS      current
	DESCRIPTION
		"valid(0) - a SNMP-GET of this mib shows that it is valid command to use. 
		 clear(1) - represents clearing operational MAC-based Vlan entry for a port."
	::= { snMacVlanIfEntry 4 }

snMacVlanIfClearConfig OBJECT-TYPE
	SYNTAX      INTEGER { valid(0), clear(1) }
	MAX-ACCESS  read-write
	STATUS      current
	DESCRIPTION
		"valid(0) - a SNMP-GET of this mib shows that it is valid command to use. 
		 clear(1) - represents clearing configured MAC-based Vlan entry for a port."
	::= { snMacVlanIfEntry 5 }

--
-- MAC-based Vlan Table Object section
--

snMacBasedVlanTable OBJECT-TYPE
	SYNTAX     SEQUENCE OF SnMacBasedVlanEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"MAC-based Vlan table."
	::= { snMacVlanTableObjects 3 }

snMacBasedVlanEntry OBJECT-TYPE
	SYNTAX     SnMacBasedVlanEntry
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"An entry in the MAC-based Vlan table."
	INDEX { snMacVlanIfIndex, snMacBasedVlanId, snMacBasedVlanMac }
	::= { snMacBasedVlanTable 1 }

SnMacBasedVlanEntry ::= SEQUENCE {
    snMacBasedVlanId                     INTEGER,
    snMacBasedVlanMac                   MacAddress,
    snMacBasedVlanPriority              Integer32,
    snMacBasedVlanRowStatus             INTEGER
}

snMacBasedVlanId OBJECT-TYPE
    SYNTAX     INTEGER (1..4095)
	MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The ID of a VLAN of which this port is a mac-vlan-permit 
        member. Port must be untagged. This object return 0 which is 
        an invalid VLAN ID value."
    ::= { snMacBasedVlanEntry 1 }

snMacBasedVlanMac OBJECT-TYPE
	SYNTAX     MacAddress
	MAX-ACCESS not-accessible
	STATUS     current
	DESCRIPTION
		"A host source MAC address to be authenticated."
	::= { snMacBasedVlanEntry 2 }

snMacBasedVlanPriority OBJECT-TYPE
	SYNTAX     Integer32 (0..7)
    MAX-ACCESS read-write
	STATUS     current
	DESCRIPTION
		"The priority of the source MAC address."
	::= { snMacBasedVlanEntry 3 }

snMacBasedVlanRowStatus OBJECT-TYPE
    SYNTAX     INTEGER {
                 other(1),
                 valid(2),
                 delete(3),
                 create(4)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object is used to create and delete row in the
            table and control if they are used. The values that
            can be written are:
            delete(3)...deletes the row
            create(4)...creates a new row

            If the row exists, then a SET with value of create(4)
            returns error 'wrongValue'. Deleted rows go away immediately.
            The following values can be returned on reads:
            noSuchName...no such row
            other(1).....some other cases
            valid(2)....the row exists and is valid"
    ::= { snMacBasedVlanEntry 4 }

END
