--  =======================================================================
--  File        : nbvlan.mib
--  Description : Private Extention MIB for NBase Switch Communications
--                Ethernet Switches
--  By          : Alex Ruzin
--  Version     : $Revision: 1.2 $
--  Date        : $Date: 2008/09/04 13:09:36 $
--  =======================================================================

--
--
-- Copyright (c) 1995 NBase Switch Communications.  All Rights Reserved.
--
-- Reproduction of this document is authorized on condition that this
-- copyright notice is included.  This NBase SNMP MIB Specification
-- embodies NBase's proprietary intellectual property.  NBase
-- retains all title and ownership in the specification, including any
-- revisions.
--
-- It is NBase's intent to encourage the widespread use of this
-- specification in connection with the management of NBase's
-- products. NBase grants vendor, end-users, and other interested
-- parties a non-exclusive license to use this specification in
-- connection with the management of NBase's products.
--
-- This specification is supplied "AS IS," and NBase makes no
-- warranty, either express or implied, as to the use, operation,
-- condition, or performance of the specification.
--
-- Copyright text courtesy of S. Rotenstein.
--
-- If you have any questions about this MIB, please call NBase
-- Technical Support Center at 1-800-858-7815 from inside USA or
-- 1-818-773-0900 from outside USA.
--
--
-- NBase retains the right to change this MIB without notification.
--
--
VLAN-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                enterprises						FROM RFC1155-SMI
                OBJECT-TYPE						FROM RFC-1212
                nbSwitchG1Il          FROM OS-COMMON-TC-MIB
                DisplayString					FROM RFC1213-MIB;

          MacAddress ::=  OCTET STRING(SIZE(6))
          
          PortsBitmap ::= OCTET STRING
	--          		 Set of ports. Each octet
	--                 within the value of this object specifies a set of
	--                 eight ports, with the first octet specifying ports
	--                 1 through 8, the second octet specifying ports 9
	--                 through 16, etc.  Within each octet, the most
	--                 significant bit represents the lowest numbered
	--                 port, and the least significant bit represents the
	--                 highest numbered port.  Thus, each port of the
	--                 switch is represented by a single bit within the
	--                 value of this object.  If that bit has a value of
	--                 <1> then that port is included in the set of
	--                 ports; the port is not included if its bit has a
	--                 value of <0>.  (Note that the setting of the bit
	--                 corresponding to the port from which a frame is
	--                 received is irrelevant.)  The default value of
	--                 this object is a string of ones of appropriate
	--                 length."


-- ************************************************************
-- Object Identifiers Definition
-- ************************************************************

nbVlans			OBJECT IDENTIFIER ::= { nbSwitchG1Il 3 }

-- GROUPS in VLAN-MIB

nbVlansRun		OBJECT IDENTIFIER ::= { nbVlans 1 }
nbVlansPerm		OBJECT IDENTIFIER ::= { nbVlans 2 }

		-- nbVlansRun group

nbVlansRunVlansMode	OBJECT-TYPE
    		SYNTAX  INTEGER {
				noneVlan (1),
				vbcMode (2),
				isvpMode (3)
				}
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
                "VLAN mode"
        	::= { nbVlansRun 1 }

	nbVlansRunIngressType OBJECT-TYPE
    		SYNTAX  INTEGER {
				nonControl (1),
				perDeviceOnly (2),
				perPort (3)
				}
	        ACCESS  read-only
        	STATUS  mandatory
			DESCRIPTION
				"Describes type of Ingress Filtering of the device.
				The nbVlansRunIngressPorts and nbVlansPermIngressPorts may not
				be supported in the perDeviceOnly(2) case.
				Set new value for nbVlansRunIngressType and/or nbVlansPermIngressType in perPort (3)
				should change this value for all ports in nbVlansRunIngressPorts and/or
				nbVlansPermIngressPorts."
        	::= { nbVlansRun 2 }

	nbVlansRunIngressMode OBJECT-TYPE
    		SYNTAX  INTEGER {
				disabled (1),
				enabled (2)	
				}
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"Run ingress filtering mode of the device."
        	::= { nbVlansRun 3 }

	nbVlansRunIngressPorts OBJECT-TYPE
			SYNTAX  PortsBitmap
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"If Ingress mode for the port is enabled (the bit of the
				port is set to 1, switch checks whether
                the source-port is a member of the VLAN."
        	::= { nbVlansRun 4 }

	nbVlansRunEgressType OBJECT-TYPE
    		SYNTAX  INTEGER {
				nonControl (1),
				perDeviceOnly (2),
				perPort (3)
				}
	        ACCESS  read-only
        	STATUS  mandatory
			DESCRIPTION
				"Describes type of Egress Filtering of the device.
				The nbVlansRunEgressPorts and nbVlansPermEgressPorts may not
				be supported in the perDeviceOnly(2) case.
				Set new value for nbVlansRunEgressType and/or nbVlansPermEgressType in perPort (3)
				should change this value for all ports in nbVlansRunEgressPorts and/or
				nbVlansPermEgressPorts."
        	::= { nbVlansRun 5 }

	nbVlansRunEgressMode OBJECT-TYPE
    		SYNTAX  INTEGER {
				disabled (1),
				enabled (2)	
				}
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"Run egress filtering mode of the device."
        	::= { nbVlansRun 6 }

	nbVlansRunEgressPorts OBJECT-TYPE
			SYNTAX  PortsBitmap
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"If Egress mode for the port is enabled (the bit of the
				port is set to 1, switch checks whether
                the source-port is a member of the VLAN."
        	::= { nbVlansRun 7 }

	nbVlansRunMgmtTable		OBJECT-TYPE
			SYNTAX  SEQUENCE OF NbVlansRunMgmtEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
            	"A table that contains Management Isvp tags"
			::= { nbVlansRun 8 }
            

	nbVlansRunMgmtEntry OBJECT-TYPE
			SYNTAX  NbVlansRunMgmtEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
				"A list of Management Isvp tags"
			INDEX   { nbVlansRunMgmtTag }
             ::= { nbVlansRunMgmtTable 1 }

	NbVlansRunMgmtEntry ::=
			SEQUENCE {
				nbVlansRunMgmtTag		INTEGER,
				nbVlansRunMgmtList		PortsBitmap,
				nbVlansRunMgmtName		DisplayString,
				nbVlansRunMgmtTagStatus	INTEGER
			}
            
	nbVlansRunMgmtTag OBJECT-TYPE
			SYNTAX  INTEGER  (2..4096)
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"The Tag for the Mgmt VLAN."
        	::= { nbVlansRunMgmtEntry 1 }

	nbVlansRunMgmtList  OBJECT-TYPE
	        SYNTAX  PortsBitmap
	        ACCESS  read-write
	        STATUS  mandatory
	        DESCRIPTION
                "Bitmap of ports in the management VLAN."
        ::= { nbVlansRunMgmtEntry 2 }

	nbVlansRunMgmtName	OBJECT-TYPE
			SYNTAX  DisplayString (SIZE(0..15))
	        ACCESS  read-write
	        STATUS  mandatory
	        DESCRIPTION
				"Contains an optional name for the VLAN."
        ::= { nbVlansRunMgmtEntry 3 }
            
	nbVlansRunMgmtTagStatus OBJECT-TYPE
			SYNTAX  INTEGER {
                valid  (1),     -- the entry is valid and active
                invalid(2)      -- the entry is invalid
	        }
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
				"The status for the Mgmt VLAN."
        	::= { nbVlansRunMgmtEntry 4 }
            
            
nbVlansRunSrvrTable	OBJECT-TYPE
			SYNTAX  SEQUENCE OF NbVlansRunSrvrEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
            	"A table that contains Server Isvp VLANs information"
			::= { nbVlansRun 9 }

	nbVlansRunSrvrEntry OBJECT-TYPE
			SYNTAX  NbVlansRunSrvrEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
				"The entry describes Server Isvp VLAN"
			INDEX   { nbVlansRunSrvrPort }
              ::= { nbVlansRunSrvrTable 1 }

	NbVlansRunSrvrEntry ::=
			SEQUENCE {
				nbVlansRunSrvrPort				INTEGER,
				nbVlansRunSrvrPortStatus		INTEGER,
				nbVlansRunSrvrPortTag			INTEGER
			}
        
	nbVlansRunSrvrPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Number of port to be managed"
              ::= { nbVlansRunSrvrEntry 1 }

	nbVlansRunSrvrPortStatus OBJECT-TYPE
			SYNTAX  INTEGER {
                nonServer  (1),
                server (2)
	        }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The server status of the port"
              ::= { nbVlansRunSrvrEntry 2 }

	nbVlansRunSrvrPortTag OBJECT-TYPE
              SYNTAX  INTEGER   (2..4096)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "Tag of server port."
              ::= { nbVlansRunSrvrEntry 3 }
              
nbVlansRunPortsCfgTable	OBJECT-TYPE
			SYNTAX  SEQUENCE OF NbVlansRunPortsCfgEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
            	"A table that contains VLAN Ports configuration"
			::= { nbVlansRun 10 }

	nbVlansRunPortsCfgEntry OBJECT-TYPE
			SYNTAX  NbVlansRunPortsCfgEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
				"The entry describes VLAN Port Configuration"
			INDEX   { nbVlansRunPort }
              ::= { nbVlansRunPortsCfgTable 1 }

	NbVlansRunPortsCfgEntry ::=
			SEQUENCE {
				nbVlansRunPort			INTEGER,
				nbVlansRunPortPriority		INTEGER,
				nbVlansRunPortTagOutMode	INTEGER
			}
        
	nbVlansRunPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Number of port to be managed"
              ::= { nbVlansRunPortsCfgEntry 1 }

	nbVlansRunPortPriority OBJECT-TYPE
			SYNTAX  INTEGER  (1..8)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The priority of the port"
              ::= { nbVlansRunPortsCfgEntry 2 }

	nbVlansRunPortTagOutMode OBJECT-TYPE
			SYNTAX  INTEGER {
		access  (1),
		tagAware (2),
		nonIsvp (3)
	        }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The tag outbound mode of the port.
                      All frames, outgoing from the 'access' port, have no  VLAN tag.
                      All frames, outgoing from the 'tagAware' port have VLAN tag."
              ::= { nbVlansRunPortsCfgEntry 3 }

	nbVlansRunPriorityPolicy	OBJECT-TYPE
    		SYNTAX  INTEGER (1..4)
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"This value reflects the forwarding ratio
				between the different priorities. 
				The highest value (4) says that the higher priority frames 
				are favored then lower.
				The lowest value (1) says that all frames will be forwarded with the same ration
				independent from their priorities."
		::= { nbVlansRun 11 }

-- ************************************************************
-- The Running InterSwitch Virtual Lans Data Base
-- ************************************************************

nbVlansRunIsvMaxNum  OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Maximum number of InterSwitch Virtual LANs that
	          are supported"
        ::= { nbVlansRun 12 }

nbVlansRunIsvTable OBJECT-TYPE

        SYNTAX  SEQUENCE OF NbVlansRunIsvEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "A list of the current InetrSwitch Virtual LANs
                 defined. Number of entries is given by nbVlansRunSvlanMaxNum"
        ::= { nbVlansRun 13 }

nbVlansRunIsvEntry  OBJECT-TYPE
        SYNTAX  NbVlansRunIsvEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "Contains the descriptor of a InterSwitch Virtual LAN."
        INDEX { nbVlansRunIsvIndex }
        ::= { nbVlansRunIsvTable 1 }


NbVlansRunIsvEntry ::= SEQUENCE {
        nbVlansRunIsvIndex     		INTEGER,
        nbVlansRunIsvStatus    		INTEGER,
        nbVlansRunIsvList      		OCTET STRING,
	nbVlansRunIsvName	  	DisplayString,
	nbVlansRunIsvTag	      	INTEGER,
	nbVlansRunIsvVlanIndex		INTEGER,
	nbVlansRunIsvVlanPriority	INTEGER
        }

nbVlansRunIsvIndex  OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The serial number of this entry in the nbVlansRunIsvTbl.
                 It may range from 1 to the value of nbVlansRunIsvMaxNum."
        ::= { nbVlansRunIsvEntry 1 }

nbVlansRunIsvStatus  OBJECT-TYPE
        SYNTAX  INTEGER {
                valid  (1),     -- the entry is valid and active
		invalid(2),     -- the entry is invalid           
		mcast(3)      	-- the entry is of Multicast type 
	}
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The object is used to create/delete entries in the
                 nbVlansRunIsvTable table.
                 Setting this value to invalid(2) for a certain
                 nbVlansRunIsvIndex, deletes this entry.
                 To create a new entry a SET PDU with the
                 nbVlansRunIsvList and nbVlansRunIsvStatus=valid(1)
		 tags from 3001 till 4095. This value is only for get."
	::= { nbVlansRunIsvEntry 2 }

nbVlansRunIsvList  OBJECT-TYPE
        SYNTAX  OCTET STRING
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Contains the list of the ports grouped together in this
                 Virtual LAN. The representation is a bit map.
                 Each octet within the value of this object specifies
                 a set of eight ports, with the first octet specifying
                 ports 1 through 8, the second octet specifying ports 9
                 through 16, etc.  Within each octet, the most
                 significant bit represents the lowest numbered
                 port, and the least significant bit represents the
                 highest numbered port.  Thus, each port of the
                 switch is represented by a single bit within the
                 value of this object.  If that bit has a value of
                 <1> then that port is included in the set of
                 ports; the port is not included if its bit has a
                 value of <0>.  (Note that the setting of the bit
                 corresponding to the port from which a frame is
                 received is irrelevant.)  The default value of
                 this object is a string of ones of appropriate
                 length, except for the source port bit."
	DEFVAL { '1111111111111111'b}
        ::= { nbVlansRunIsvEntry 3 }

nbVlansRunIsvName	OBJECT-TYPE
	SYNTAX  DisplayString (SIZE(0..15))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
		"Contains an optional name for the VLAN."
        ::= { nbVlansRunIsvEntry 4 }

nbVlansRunIsvTag    OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
               "A 12 bit Port VLAN Identifier for this Port.
                0 - The Null VLAN ID.used when the Tag Header contains
                    only user_priority information;  No VLAN
                    identifier is present in the frame. This number is
                    not allowed here.
                1 - The Default PVID value used for tagging frames
                    through a Bridge Port.  The PVID used for tagging
		    of frames can be changed by management.
		    MegaSwitch II ISVLAN card supports up to 8 bits, i.e.
		    values of 0..256. "
       DEFVAL  { 1 }
        ::= { nbVlansRunIsvEntry 5 }

nbVlansRunIsvVlanIndex   OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
		"Contains an index in the nbVlansRunSvlanTable for this
	         InterSwitch VLAN."
        ::= { nbVlansRunIsvEntry 6 }

nbVlansRunIsvVlanPriority   OBJECT-TYPE
	SYNTAX  INTEGER  (1..8)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
		"Contains an priority of this InterSwitch VLAN."
        ::= { nbVlansRunIsvEntry 7 }

-- *************************************************************
-- Objects in the Virtual Priority Tag (VPT) to Queue Parameters Group
-- *************************************************************

	 nbVlansRunVPT2PriorityTable OBJECT-TYPE
	 SYNTAX    SEQUENCE OF NbVlansRunVPT2PriorityEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of VPT to Priority in the Device."
		 ::= { nbVlansRun 15 }

	 nbVlansRunVPT2PriorityEntry OBJECT-TYPE
	 SYNTAX    NbVlansRunVPT2PriorityEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about the VPT to Priority in the Device feature."
	 INDEX   { nbVlansRunVPT2PriorVPTNumber }
		 ::= { nbVlansRunVPT2PriorityTable 1 }

	 NbVlansRunVPT2PriorityEntry ::=
	 SEQUENCE   {
		     nbVlansRunVPT2PriorVPTNumber
                          INTEGER,
		     nbVlansRunVPT2PriorPriorNumber
			  INTEGER
		    }

	 nbVlansRunVPT2PriorVPTNumber	OBJECT-TYPE
	 SYNTAX    INTEGER	(0..7)
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 ""
		 ::= { nbVlansRunVPT2PriorityEntry 1 }

	 nbVlansRunVPT2PriorPriorNumber	OBJECT-TYPE
	 SYNTAX    INTEGER	(0..3)
	 ACCESS    read-write
	 STATUS    mandatory
         DESCRIPTION
		 ""
		 ::= { nbVlansRunVPT2PriorityEntry 2 }

-- *************************************************************
-- Objects in the Priority to Virtual Priority Tag (VPT) Group
-- *************************************************************

	 nbVlansRunPriority2VPTTable OBJECT-TYPE
	 SYNTAX    SEQUENCE OF NbVlansRunPriority2VPTEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of Priority to VPT in the Device."
		 ::= { nbVlansRun 16 }

	 nbVlansRunPriority2VPTEntry OBJECT-TYPE
	 SYNTAX    NbVlansRunPriority2VPTEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about the Priority to VPT in the Device
		  feature."
	 INDEX   { nbVlansRunPrior2VPTPriorNumber }
		 ::= { nbVlansRunPriority2VPTTable 1 }

	 NbVlansRunPriority2VPTEntry ::=
	 SEQUENCE   {
		     nbVlansRunPrior2VPTPriorNumber
                          INTEGER,
		     nbVlansRunPrior2VPTVPTNumber
			  INTEGER
		    }

	 nbVlansRunPrior2VPTPriorNumber	OBJECT-TYPE
	 SYNTAX    INTEGER	(0..3)
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 ""
		 ::= { nbVlansRunPriority2VPTEntry 1 }

	 nbVlansRunPrior2VPTVPTNumber	OBJECT-TYPE
	 SYNTAX    INTEGER	(0..7)
	 ACCESS    read-write
	 STATUS    mandatory
         DESCRIPTION
		 ""
		 ::= { nbVlansRunPriority2VPTEntry 2 }


-- *****************************************************************************************
-- Objects in the Port VMAN (Virtual Metro Area Network) Mode Table for the Running Database
-- *****************************************************************************************

nbVlansRunSlotEtherTypeTable OBJECT-TYPE
        SYNTAX    SEQUENCE OF NbVlansRunSlotEtherTypeEntry
        ACCESS    not-accessible
        STATUS    mandatory
        DESCRIPTION
        "Table of Priority to VPT in the Device."
        ::= { nbVlansRun 20 }

nbVlansRunSlotEtherTypeEntry OBJECT-TYPE
        SYNTAX    NbVlansRunSlotEtherTypeEntry
        ACCESS    not-accessible
        STATUS    mandatory
        DESCRIPTION
        "An entry in the table, containing information
         about the Ethernet Type of the Slot in the Device."
        INDEX   { nbVlansRunSlotNumber }
        ::= { nbVlansRunSlotEtherTypeTable 1 }

        NbVlansRunSlotEtherTypeEntry ::=
               SEQUENCE {
                         nbVlansRunSlotNumber       INTEGER,
                         nbVlansRunSlotEtherType    INTEGER
                        }

nbVlansRunSlotNumber	OBJECT-TYPE
        SYNTAX    INTEGER
        ACCESS    read-only
        STATUS    mandatory
        DESCRIPTION
        "Number of Slot to be managed in the Device."
        ::= { nbVlansRunSlotEtherTypeEntry 1 }

nbVlansRunSlotEtherType	OBJECT-TYPE
        SYNTAX    INTEGER               (0..65535)
        ACCESS    read-write
        STATUS    mandatory
        DESCRIPTION
        "Ethernet Type of the Slot."
        ::= { nbVlansRunSlotEtherTypeEntry 2 }

-- *****************************************************************************************
-- Objects in the Port VMAN (Virtual Metro Area Network) Mode Table for the Running Database
-- *****************************************************************************************

nbVlansRunVMANPortTable	OBJECT-TYPE
        SYNTAX  SEQUENCE OF NbVlansRunVMANPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A table that contains VLAN Ports configuration"
        ::= { nbVlansRun 22 }

nbVlansRunVMANPortEntry OBJECT-TYPE
        SYNTAX  NbVlansRunVMANPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "The entry describes VLAN Port Configuration"
        INDEX   { nbVlansRunVMANPortNumber }
        ::= { nbVlansRunVMANPortTable 1 }

        NbVlansRunVMANPortEntry ::=
               SEQUENCE {
                         nbVlansRunVMANPortNumber    INTEGER,
                         nbVlansRunVMANPortMode      INTEGER
                        }
        
nbVlansRunVMANPortNumber OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "Number of Port to be managed in the Device."
        ::= { nbVlansRunVMANPortEntry 1 }

nbVlansRunVMANPortMode OBJECT-TYPE
        SYNTAX  INTEGER {
                         other     (1),
                         enable    (2),
                         disable   (3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The VMAN Mode of the port."
        ::= { nbVlansRunVMANPortEntry 2 }

nbVlansRunCPUEtherType	OBJECT-TYPE
        SYNTAX    INTEGER               (0..65535)
        ACCESS    read-write
        STATUS    mandatory
        DESCRIPTION
        "Ethernet Type of the CPU."
        ::= { nbVlansRun 23 }

-- *************************************************************
-- Objects in the Port MAC-Limit Table for the Running Database.
-- *************************************************************

nbVlansRunMacLimitGroup	OBJECT IDENTIFIER ::= { nbVlansRun 24}

nbVlansRunPortMacLimitActionMode  OBJECT-TYPE
        SYNTAX    INTEGER
        {
         none            (1),
         trapOnly        (2),
         portDisable     (3),
         discardExceeded (4)
        }
        ACCESS    read-write
        STATUS    mandatory
        DESCRIPTION
        "The action to take on the Port if
         the MAC Limit is exceeded."
        ::= { nbVlansRunMacLimitGroup 1 }

nbVlansRunPortMacLimitActionDescription  OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The description of the action taken on the Port when
         the MAC Limit was exceeded."
        ::= { nbVlansRunMacLimitGroup 2 }

nbVlansRunPortMacLimitTable OBJECT-TYPE
        SYNTAX    SEQUENCE OF NbVlansRunPortMacLimitEntry
        ACCESS    not-accessible
        STATUS    mandatory
        DESCRIPTION
        "Table of maximum number of MAC Addresses for the Ports."
        ::= { nbVlansRunMacLimitGroup 10 }

nbVlansRunPortMacLimitEntry OBJECT-TYPE
        SYNTAX    NbVlansRunPortMacLimitEntry
        ACCESS    not-accessible
        STATUS    mandatory
        DESCRIPTION
        "An entry in the table, containing information
         about the maximum number of MAC Addresses for the Port."
        INDEX   { nbVlansRunPortMacLimitPortNumber }
        ::= { nbVlansRunPortMacLimitTable 1 }

NbVlansRunPortMacLimitEntry ::= SEQUENCE {
        nbVlansRunPortMacLimitPortNumber   INTEGER,
        nbVlansRunPortMacLimitValue        INTEGER
        }

nbVlansRunPortMacLimitPortNumber	OBJECT-TYPE
        SYNTAX    INTEGER
        ACCESS    read-only
        STATUS    mandatory
        DESCRIPTION
        "Number of Port in the Device."
        ::= { nbVlansRunPortMacLimitEntry 1 }

nbVlansRunPortMacLimitValue	OBJECT-TYPE
        SYNTAX    INTEGER
        ACCESS    read-write
        STATUS    mandatory
        DESCRIPTION
        "Maximum number of MAC Addresses for the Port [ <= 65535 ]."
        ::= { nbVlansRunPortMacLimitEntry 2 }

-- *****************************************************************************************

		-- nbVlansPerm group

nbVlansPermVlansMode	OBJECT-TYPE
    		SYNTAX  INTEGER {
				noneVlan (1),
				vbcMode (2),
				isvpMode (3)
				}
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"VLAN mode"
        	::= { nbVlansPerm 1 }

	nbVlansPermIngressType OBJECT-TYPE
    		SYNTAX  INTEGER {
				nonControl (1),
				perDeviceOnly (2),
				perPort (3)
				}
	        ACCESS  read-only
        	STATUS  mandatory
			DESCRIPTION
				"Describes type of Ingress Filtering of the device.
				The nbVlansRunIngressPorts and nbVlansPermIngressPorts may not
				be supported in the perDeviceOnly(2) case.
				Set new value for nbVlansRunIngressType and/or nbVlansPermIngressType in perPort (3)
				should change this value for all ports in nbVlansRunIngressPorts and/or
				nbVlansPermIngressPorts."
        	::= { nbVlansPerm 2 }

	nbVlansPermIngressMode OBJECT-TYPE
    		SYNTAX  INTEGER {
				disabled (1),
				enabled (2)	
				}
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"Permanent ingress filtering mode of the device."
        	::= { nbVlansPerm 3 }

nbVlansPermIngressPorts OBJECT-TYPE
			SYNTAX  PortsBitmap
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"If Ingress mode for the port is enabled (the bit of the
				port is set to 1, switch checks whether
                the source port is a member of the VLAN."
        	::= { nbVlansPerm 4 }
            
	nbVlansPermEgressType OBJECT-TYPE
    		SYNTAX  INTEGER {
				nonControl (1),
				perDeviceOnly (2),
				perPort (3)
				}
	        ACCESS  read-only
        	STATUS  mandatory
			DESCRIPTION
				"Describes type of Egress Filtering of the device.
				The nbVlansRunEgressPorts and nbVlansPermEgressPorts may not
				be supported in the perDeviceOnly(2) case.
				Set new value for nbVlansRunEgressType and/or nbVlansPermEgressType in perPort (3)
				should change this value for all ports in nbVlansRunEgressPorts and/or
				nbVlansPermEgressPorts."
        	::= { nbVlansPerm 5 }

	nbVlansPermEgressMode OBJECT-TYPE
    		SYNTAX  INTEGER {
				disabled (1),
				enabled (2)	
				}
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"Permanent egress filtering mode of the device."
        	::= { nbVlansPerm 6 }

	nbVlansPermEgressPorts OBJECT-TYPE
			SYNTAX  PortsBitmap
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"If Egress mode for the port is enabled (the bit of the
				port is set to 1, switch checks whether
                the source port is a member of the VLAN."
        	::= { nbVlansPerm 7 }

	nbVlansPermMgmtTable		OBJECT-TYPE
			SYNTAX  SEQUENCE OF NbVlansPermMgmtEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
            	"A table that contains Management Isvp tags"
			::= { nbVlansPerm 8 }
            
	nbVlansPermMgmtEntry OBJECT-TYPE
			SYNTAX  NbVlansPermMgmtEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
				"A list of Management Isvp tags"
			INDEX   { nbVlansPermMgmtTag }
              ::= { nbVlansPermMgmtTable 1 }

	NbVlansPermMgmtEntry ::=
			SEQUENCE {
				nbVlansPermMgmtTag		INTEGER,
				nbVlansPermMgmtList		PortsBitmap,
				nbVlansPermMgmtName		DisplayString,
				nbVlansPermMgmtTagStatus	INTEGER
			}
            
	nbVlansPermMgmtTag OBJECT-TYPE
			SYNTAX  INTEGER  (2..4096)
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"The Tag for the Mgmt VLAN."
        	::= { nbVlansPermMgmtEntry 1 }

	nbVlansPermMgmtList  OBJECT-TYPE
	        SYNTAX  PortsBitmap
	        ACCESS  read-write
	        STATUS  mandatory
	        DESCRIPTION
                "Bitmap of ports in the management VLAN."
	        ::= { nbVlansPermMgmtEntry 2 }

	nbVlansPermMgmtName	OBJECT-TYPE
			SYNTAX  DisplayString (SIZE(0..15))
	        ACCESS  read-write
	        STATUS  mandatory
	        DESCRIPTION
				"Contains an optional name for the VLAN."
        ::= { nbVlansPermMgmtEntry 3 }
            
            
	nbVlansPermMgmtTagStatus OBJECT-TYPE
			SYNTAX  INTEGER {
                valid  (1),     -- the entry is valid and active
                invalid(2)      -- the entry is invalid
	        }
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"The status for the Mgmt VLAN."
        	::= { nbVlansPermMgmtEntry 4 }
            
            
nbVlansPermSrvrTable	OBJECT-TYPE
			SYNTAX  SEQUENCE OF NbVlansPermSrvrEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
            	"A table that contains Server Isvp VLANs information"
			::= { nbVlansPerm 9 }

	nbVlansPermSrvrEntry OBJECT-TYPE
			SYNTAX  NbVlansPermSrvrEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
				"The entry describes Server Isvp VLAN"
			INDEX   { nbVlansPermSrvrPort }
              ::= { nbVlansPermSrvrTable 1 }

	NbVlansPermSrvrEntry ::=
			SEQUENCE {
		nbVlansPermSrvrPort			INTEGER,
		nbVlansPermSrvrPortStatus		INTEGER,
                nbVlansPermSrvrPortTag			INTEGER
			}
        
	nbVlansPermSrvrPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Number of port to be managed."
              ::= { nbVlansPermSrvrEntry 1 }

	nbVlansPermSrvrPortStatus OBJECT-TYPE
			SYNTAX  INTEGER {
                nonServer  (1),
                server (2)
	        }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The server status of the entry"
              ::= { nbVlansPermSrvrEntry 2 }

	nbVlansPermSrvrPortTag OBJECT-TYPE
              SYNTAX  INTEGER  (2..4096)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "Tag of server port."
              ::= { nbVlansPermSrvrEntry 3 }
              
	nbVlansPermPortsCfgTable	OBJECT-TYPE
			SYNTAX  SEQUENCE OF NbVlansPermPortsCfgEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
            	"A table that contains VLAN Ports configuration"
			::= { nbVlansPerm 10 }

	nbVlansPermPortsCfgEntry OBJECT-TYPE
			SYNTAX  NbVlansPermPortsCfgEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
				"The entry describes VLAN Port Configuration"
			INDEX   { nbVlansPermPort }
              ::= { nbVlansPermPortsCfgTable 1 }

	NbVlansPermPortsCfgEntry ::=
			SEQUENCE {
				nbVlansPermPort			INTEGER,
				nbVlansPermPortPriority		INTEGER,
				nbVlansPermPortTagOutMode	INTEGER
			}
        
	nbVlansPermPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Number of port to be managed"
              ::= { nbVlansPermPortsCfgEntry 1 }

	nbVlansPermPortPriority OBJECT-TYPE
			SYNTAX  INTEGER  (1..8)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The priority of the port"
              ::= { nbVlansPermPortsCfgEntry 2 }

	nbVlansPermPortTagOutMode OBJECT-TYPE
			SYNTAX  INTEGER {
                		access   (1),
                		tagAware (2),
				nonIsvp  (3)
	        }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The tag outbound mode of the port.
                      All frames, outgoing from the 'access' port, have no  VLAN tag.
                      All frames, outgoing from the 'tagAware' poort have VLAN tag."
              ::= { nbVlansPermPortsCfgEntry 3 }

	nbVlansPermPriorityPolicy	OBJECT-TYPE
    		SYNTAX  INTEGER (1..4)
	        ACCESS  read-write
        	STATUS  mandatory
			DESCRIPTION
				"This value reflects the forwarding ratio
				between the different priorities. 
				The highest value (4) says that the higher priority frames 
				are favored then lower.
				The lowest value (1) says that all frames will be forwarded with the same ration
				independent from their priorities."
		::= { nbVlansPerm 11 }

-- ************************************************************
-- The Permanent InterSwitch Virtual Lans Data Base
-- ************************************************************

nbVlansPermIsvMaxNum  OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Maximum number of InterSwitch Virtual LANs that
	          are supported"
        ::= { nbVlansPerm 12 }

nbVlansPermIsvTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF NbVlansPermIsvEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "A list of the current InetrSwitch Virtual LANs
                 defined. Number of entries is given by nbVlansPermSvlanMaxNum"
        ::= { nbVlansPerm 13 }

nbVlansPermIsvEntry  OBJECT-TYPE
        SYNTAX  NbVlansPermIsvEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "Contains the descriptor of a InterSwitch Virtual LAN."
        INDEX { nbVlansPermIsvIndex }
        ::= { nbVlansPermIsvTable 1 }


NbVlansPermIsvEntry ::= SEQUENCE {
        nbVlansPermIsvIndex     	INTEGER,
        nbVlansPermIsvStatus    	INTEGER,
        nbVlansPermIsvList      	OCTET STRING,
		nbVlansPermIsvName	  		DisplayString,
		nbVlansPermIsvTag      		INTEGER,
		nbVlansPermIsvVlanPriority	INTEGER
        }

nbVlansPermIsvIndex  OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The serial number of this entry in the nbVlansPermIsvTbl.
                 It may range from 1 to the value of nbVlansPermIsvMaxNum."
        ::= { nbVlansPermIsvEntry 1 }

nbVlansPermIsvStatus  OBJECT-TYPE
        SYNTAX  INTEGER {
                valid   (1),     -- the entry is valid and active
		invalid (2),     -- the entry is invalid          
		mcast   (3)      -- the entry is of Multicast type 
	}
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The object is used to create/delete entries in the
                 nbVlansPermIsvTable table.
                 Setting this value to invalid(2) for a certain
                 nbVlansPermIsvIndex, deletes this entry.
                 To create a new entry a SET PDU with the
                 nbVlansPermIsvList and nbVlansPermIsvStatus=valid(1)
		 objects is required.                                                      
		 Vlans with mcast status are created by IGMP application in runtime and have
		 tags from 3001 till 4095. This value is only for get."
	::= { nbVlansPermIsvEntry 2 }

nbVlansPermIsvList  OBJECT-TYPE
        SYNTAX  OCTET STRING
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Contains the list of the ports grouped together in this
                 Virtual LAN. The representation is a bit map.
                 Each octet within the value of this object specifies
                 a set of eight ports, with the first octet specifying
                 ports 1 through 8, the second octet specifying ports 9
                 through 16, etc.  Within each octet, the most
                 significant bit represents the lowest numbered
                 port, and the least significant bit represents the
                 highest numbered port.  Thus, each port of the
                 switch is represented by a single bit within the
                 value of this object.  If that bit has a value of
                 <1> then that port is included in the set of
                 ports; the port is not included if its bit has a
                 value of <0>.  (Note that the setting of the bit
                 corresponding to the port from which a frame is
                 received is irrelevant.)  The default value of
                 this object is a string of ones of appropriate
                 length, except for the source port bit."
	DEFVAL { '1111111111111111'b}
        ::= { nbVlansPermIsvEntry 3 }

nbVlansPermIsvName	OBJECT-TYPE
	SYNTAX  DisplayString (SIZE(0..15))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
		"Contains an optional name for the VLAN."
        ::= { nbVlansPermIsvEntry 4 }

nbVlansPermIsvTag    OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
               "A 12 bit Port VLAN Identifier for this Port.
                0 - The Null VLAN ID.used when the Tag Header contains
                    only user_priority information;  No VLAN
                    identifier is present in the frame. This number is
                    not allowed here.
                1 - The Default PVID value used for tagging frames
                    through a Bridge Port.  The PVID used for tagging
		    of frames can be changed by management.
		    MegaSwitch II ISVLAN card supports up to 8 bits, i.e.
		    values of 0..256. "
       DEFVAL  { 1 }
        ::= { nbVlansPermIsvEntry 5 }

nbVlansPermIsvVlanPriority   OBJECT-TYPE
	SYNTAX  INTEGER  (1..8)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
		"Contains an priority of this InterSwitch VLAN."
        ::= { nbVlansPermIsvEntry 6 }

-- *************************************************************
-- Objects in the Virtual Priority Tag (VPT) to Queue Parameters Group (Permanent Data Base)
-- *************************************************************

	 nbVlansPermVPT2PriorityTable OBJECT-TYPE
	 SYNTAX    SEQUENCE OF NbVlansPermVPT2PriorityEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of VPT to Priority in the Device."
		 ::= { nbVlansPerm 15 }

	 nbVlansPermVPT2PriorityEntry OBJECT-TYPE
	 SYNTAX    NbVlansPermVPT2PriorityEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about the VPT to Priority in the Device feature."
	 INDEX   { nbVlansPermVPT2PriorVPTNumber }
		 ::= { nbVlansPermVPT2PriorityTable 1 }

	 NbVlansPermVPT2PriorityEntry ::=
	 SEQUENCE   {
		     nbVlansPermVPT2PriorVPTNumber
                          INTEGER,
		     nbVlansPermVPT2PriorPriorNumber
			  INTEGER
		    }

	 nbVlansPermVPT2PriorVPTNumber	OBJECT-TYPE
	 SYNTAX    INTEGER	(0..7)
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 ""
		 ::= { nbVlansPermVPT2PriorityEntry 1 }

	 nbVlansPermVPT2PriorPriorNumber	OBJECT-TYPE
	 SYNTAX    INTEGER	(0..3)
	 ACCESS    read-write
	 STATUS    mandatory
         DESCRIPTION
		 ""
		 ::= { nbVlansPermVPT2PriorityEntry 2 }

-- *************************************************************
-- Objects in the Priority to Virtual Priority Tag (VPT) Group
-- *************************************************************

	 nbVlansPermPriority2VPTTable OBJECT-TYPE
	 SYNTAX    SEQUENCE OF NbVlansPermPriority2VPTEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
		 "Table of Priority to VPT in the Device."
		 ::= { nbVlansPerm 16 }

	 nbVlansPermPriority2VPTEntry OBJECT-TYPE
	 SYNTAX    NbVlansPermPriority2VPTEntry
         ACCESS    not-accessible
         STATUS    mandatory
         DESCRIPTION
                 "An entry in the table, containing information
		  about the Priority to VPT in the Device
		  feature."
	 INDEX   { nbVlansPermPrior2VPTPriorNumber }
		 ::= { nbVlansPermPriority2VPTTable 1 }

	 NbVlansPermPriority2VPTEntry ::=
	 SEQUENCE   {
		     nbVlansPermPrior2VPTPriorNumber
                          INTEGER,
		     nbVlansPermPrior2VPTVPTNumber
			  INTEGER
		    }

	 nbVlansPermPrior2VPTPriorNumber	OBJECT-TYPE
	 SYNTAX    INTEGER	(0..3)
         ACCESS    read-only
         STATUS    mandatory
         DESCRIPTION
		 ""
		 ::= { nbVlansPermPriority2VPTEntry 1 }

	 nbVlansPermPrior2VPTVPTNumber	OBJECT-TYPE
	 SYNTAX    INTEGER	(0..7)
	 ACCESS    read-write
	 STATUS    mandatory
         DESCRIPTION
		 ""
		 ::= { nbVlansPermPriority2VPTEntry 2 }

-- *******************************************************************************************
-- Objects in the Port VMAN (Virtual Metro Area Network) Mode Table for the Permanent Database
-- *************************************************************************************88****

nbVlansPermSlotEtherTypeTable OBJECT-TYPE
        SYNTAX    SEQUENCE OF NbVlansPermSlotEtherTypeEntry
        ACCESS    not-accessible
        STATUS    mandatory
        DESCRIPTION
        "Table of Priority to VPT in the Device."
        ::= { nbVlansPerm 20 }

nbVlansPermSlotEtherTypeEntry OBJECT-TYPE
        SYNTAX    NbVlansPermSlotEtherTypeEntry
        ACCESS    not-accessible
        STATUS    mandatory
        DESCRIPTION
        "An entry in the table, containing information
         about the Ethernet Type of the Slot in the Device."
        INDEX   { nbVlansPermSlotNumber }
        ::= { nbVlansPermSlotEtherTypeTable 1 }

        NbVlansPermSlotEtherTypeEntry ::=
               SEQUENCE {
                         nbVlansPermSlotNumber       INTEGER,
                         nbVlansPermSlotEtherType    INTEGER
                        }

nbVlansPermSlotNumber	OBJECT-TYPE
        SYNTAX    INTEGER
        ACCESS    read-only
        STATUS    mandatory
        DESCRIPTION
        "Number of Slot to be managed in the Device."
        ::= { nbVlansPermSlotEtherTypeEntry 1 }

nbVlansPermSlotEtherType	OBJECT-TYPE
        SYNTAX    INTEGER               (0..65535)
        ACCESS    read-write
        STATUS    mandatory
        DESCRIPTION
        "Ethernet Type of the Slot."
        ::= { nbVlansPermSlotEtherTypeEntry 2 }

-- *******************************************************************************************
-- Objects in the Port VMAN (Virtual Metro Area Network) Mode Table for the Permanent Database
-- *******************************************************************************************

nbVlansPermVMANPortTable	OBJECT-TYPE
        SYNTAX  SEQUENCE OF NbVlansPermVMANPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A table that contains VLAN Ports configuration"
        ::= { nbVlansPerm 22 }

nbVlansPermVMANPortEntry OBJECT-TYPE
        SYNTAX  NbVlansPermVMANPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "The entry describes VLAN Port Configuration"
        INDEX   { nbVlansPermVMANPortNumber }
        ::= { nbVlansPermVMANPortTable 1 }

        NbVlansPermVMANPortEntry ::=
               SEQUENCE {
                         nbVlansPermVMANPortNumber    INTEGER,
                         nbVlansPermVMANPortMode      INTEGER
                        }
        
nbVlansPermVMANPortNumber OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "Number of Port to be managed in the Device."
        ::= { nbVlansPermVMANPortEntry 1 }

nbVlansPermVMANPortMode OBJECT-TYPE
        SYNTAX  INTEGER {
                         other     (1),
                         enable    (2),
                         disable   (3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The VMAN Mode of the port."
        ::= { nbVlansPermVMANPortEntry 2 }

nbVlansPermCPUEtherType	OBJECT-TYPE
        SYNTAX    INTEGER               (0..65535)
        ACCESS    read-only
        STATUS    mandatory
        DESCRIPTION
        "Ethernet Type of the CPU."
        ::= {nbVlansPerm 23 }

-- ***************************************************************
-- Objects in the Port MAC-Limit Table for the Permanent Database.
-- ***************************************************************

nbVlansPermMacLimitGroup	OBJECT IDENTIFIER ::= { nbVlansPerm 24 }

nbVlansPermPortMacLimitActionMode  OBJECT-TYPE
        SYNTAX    INTEGER
        {
         none            (1),
         trapOnly        (2),
         portDisable     (3),
         discardExceeded (4)
        }
        ACCESS    read-write
        STATUS    mandatory
        DESCRIPTION
        "The action to take on the Port if
         the MAC Limit is exceeded."
        ::= { nbVlansPermMacLimitGroup 1 }

nbVlansPermPortMacLimitTable OBJECT-TYPE
        SYNTAX    SEQUENCE OF NbVlansPermPortMacLimitEntry
        ACCESS    not-accessible
        STATUS    mandatory
        DESCRIPTION
        "Table of maximum number of MAC Addresses for the Ports."
        ::= { nbVlansPermMacLimitGroup 10 }

nbVlansPermPortMacLimitEntry OBJECT-TYPE
        SYNTAX    NbVlansPermPortMacLimitEntry
        ACCESS    not-accessible
        STATUS    mandatory
        DESCRIPTION
        "An entry in the table, containing information
         about the maximum number of MAC Addresses for the Port."
        INDEX   { nbVlansPermPortMacLimitPortNumber }
        ::= { nbVlansPermPortMacLimitTable 1 }

NbVlansPermPortMacLimitEntry ::= SEQUENCE {
        nbVlansPermPortMacLimitPortNumber   INTEGER,
        nbVlansPermPortMacLimitValue        INTEGER
        }

nbVlansPermPortMacLimitPortNumber	OBJECT-TYPE
        SYNTAX    INTEGER
        ACCESS    read-only
        STATUS    mandatory
        DESCRIPTION
        "Number of Port in the Device."
        ::= { nbVlansPermPortMacLimitEntry 1 }

nbVlansPermPortMacLimitValue	OBJECT-TYPE
        SYNTAX    INTEGER
        ACCESS    read-write
        STATUS    mandatory
        DESCRIPTION
        "Maximum number of MAC Addresses for the Port [ <= 65535 ]."
        ::= { nbVlansPermPortMacLimitEntry 2 }

-- *****************************************************************************************

nbVlansMacTable		OBJECT-TYPE
			SYNTAX  SEQUENCE OF NbVlansMacEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
            	"A table that contains Lerning Table with fields that does not exsist in
            	dot1dTpFdbTable and in nbsMACAddrTable."
			::= { nbVlans 3 }
            

	nbVlansMacEntry OBJECT-TYPE
			SYNTAX  NbVlansMacEntry
			ACCESS  not-accessible
			STATUS  mandatory
			DESCRIPTION
				"Information about a specific MAC address in the nbVlansMacTable.
				While the mac table is implemented as a hash table, for 'next' and 'get'
				operations the index is nbVlansMacGetViewIndex, but for 'set' operations
				the PDU must contain the {nbVlansMac, nbVlansMacVid} fields	(see 
				nbVlansMacState's DESCRIPTION)."
			INDEX   { nbVlansMacGetViewIndex }
              ::= { nbVlansMacTable 1 }

	NbVlansMacEntry ::=
			SEQUENCE {
				nbVlansMacGetViewIndex		INTEGER,
				nbVlansMac			MacAddress,
				nbVlansMacVid			INTEGER,
				nbVlansMacVidx			INTEGER,
				nbVlansMacPort			INTEGER,
				nbVlansMacStatus		INTEGER,
				nbVlansMacTagged		INTEGER,
				nbVlansMacState			INTEGER,
				nbVlansMacPriority		INTEGER,
				nbVlansMacFlags			INTEGER
			}
            
	nbVlansMacGetViewIndex OBJECT-TYPE
			SYNTAX  INTEGER
	        ACCESS  read-only
	       	STATUS  mandatory
			DESCRIPTION
			"Port of the entry"
        	::= { nbVlansMacEntry 1 }

	nbVlansMac OBJECT-TYPE
			SYNTAX  MacAddress
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"MAC address for which the bridge has forwarding and/or filtering information."
        	::= { nbVlansMacEntry 2 }

	nbVlansMacVid OBJECT-TYPE
			SYNTAX  INTEGER  (2..4096)
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"Tag of the entry: the address 'Address recognition' is concatenation of 
			nbVlansMac and nbVlansMacVid"
        	::= { nbVlansMacEntry 3 }

	nbVlansMacVidx OBJECT-TYPE
			SYNTAX  INTEGER  (2..4096)
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"Outbound VLAN tag: if frame 'Address recognition' was resolved with 
			this entry, the forwarding will be maked according the VLAN with this tag"
        	::= { nbVlansMacEntry 4 }
            
	nbVlansMacPort OBJECT-TYPE
			SYNTAX  INTEGER   (0..65535)
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"Port of the entry. '0' value indicates that the port number has not been
			learned but that the bridge does have some
			forwarding/filtering information about this
			address. Another words, the frame will be forwarding 'to the CPU only' and
			the bridge will sovle, what it must be done with the frame."
        	::= { nbVlansMacEntry 5 }
            
	nbVlansMacStatus OBJECT-TYPE
			SYNTAX  INTEGER  {
				dynamic (1),
				static (2)
				}
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"Status of the entry: Only 'dynamic (1)' entries are aged.
			Note, that when the bridge is to age some dynamic entry 
			in nbVlansRunVlansMode=isvpMode (3) case, it must delete
			all statis(2) entres with this MAC "
        	::= { nbVlansMacEntry 6 }

	nbVlansMacTagged	OBJECT-TYPE
			SYNTAX  INTEGER  {
				no (0),
				yes (1)
				}
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"'Tagged' state of the entry."
        	::= { nbVlansMacEntry 7 }

	nbVlansMacState OBJECT-TYPE
			SYNTAX  INTEGER  {
				valid (1),
				invalid (2)
				}
	        ACCESS  read-write
	       	STATUS  mandatory
			DESCRIPTION
			"State of the entry: Only 'valid(1)' entries participate 
			in the forwarding/filtering process.
            
			The new entry is is created when PDU with nbVlansMacState=valid(1), nbVlansMac, 
			nbVlansMacVid and optionally nbVlansMacPort (default '0'), 
			nbVlansMacVidx (default nbVlansMacVid) and	nbVlansMacStatus (default dynamic (1))
			comes. If {nbVlansMac,nbVlansMacVid} exists, the bridge replaces it.
			
			The old entry is deleted when PDU with nbVlansMacState=invalid(2), nbVlansMac, 
			nbVlansMacVid comes.
			
			The old entry is modified when PDU with nbVlansMac, nbVlansMacVid and new 
			value of fields nbVlansMacPort and/or nbVlansMacVidx and/or nbVlansMacStatus comes"
        	::= { nbVlansMacEntry 8 }
            
            
nbVlansMacPriority  OBJECT-TYPE
                SYNTAX  INTEGER {
                        low (0),
                        high (1)
                        }
		ACCESS  read-write
		STATUS  mandatory
		DESCRIPTION
			"Controls the priority level of this entry"
		::= { nbVlansMacEntry 9 }

nbVlansMacFlags  OBJECT-TYPE
                SYNTAX  INTEGER {
                        none  (0),
                        route (1)
                        }

		ACCESS  read-write
		STATUS  mandatory
		DESCRIPTION
			"Specific flags for MAC entry:
				0x0001 - Router Entry"
		::= { nbVlansMacEntry 10 }

nbVlansMaxNumMgmtVlans	OBJECT-TYPE
    		SYNTAX  INTEGER
	        ACCESS  read-only
        	STATUS  mandatory
			DESCRIPTION
				"Maximum number of Isvp management VLANs"
        	::= { nbVlans 4 }
        
nbVlansNewVlanIdMode    OBJECT-TYPE
        SYNTAX  INTEGER  {
                other                      (1),
                enableAddVlanWithoutId     (2)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "If GET responce is 2=enableAddVlanWithoutId,
         the Agent has a possiblity to Create the new
         ISVLAN entry without setting entry Id.
         It will prevent conflicts when IGMP,GVRP and ISVLAN
         protocols will work simultaneously."
        ::= { nbVlans 5 }
        
nbVlansSaveMode         OBJECT-TYPE
        SYNTAX  INTEGER  {
                other           (1),
                allVlansConfig  (2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Save Vlans RUN configuration in the NVRAM.
         In case of GET command - always responds with 1=other.
         In case of SET command - always needs 2=allVlansConfig."
        ::= { nbVlans 6 }

nbVlansDevEtherType         OBJECT-TYPE
        SYNTAX  INTEGER  {
                notSupported    (1),
                supported       (2)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "Device Ethernet Type supported."
        ::= { nbVlans 7 }

nbVlansMacLimitSaveCfg     OBJECT-TYPE
        SYNTAX  INTEGER  {
                other            (1),
                allPortMacLimit  (2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "Save Port's Mac Limit RUN configuration in the NVRAM.
         In case of GET command - always responds with 1=other.
         In case of SET command - always needs 2=allPortMacLimit."
        ::= { nbVlans 8 }

------------------------------------------------------------------------------
-- TRAPS
------------------------------------------------------------------------------

 	portMacLimitExceeded TRAP-TYPE
    	ENTERPRISE nbVlans
    	VARIABLES {
                   nbVlansRunPortMacLimitPortNumber,
                   nbVlansRunPortMacLimitValue,
                   nbVlansRunPortMacLimitActionDescription
                  }
    	DESCRIPTION
    		"The SNMP trap that is generated when 
    		 the Maximum number of MAC Addresses
                 for the Port is exceeded."
              ::= 32

END
