------------------------------------------------------------------------------
------------------------------------------------------------------------------
--
--
------------------------------------------------------------------------------
-- Groups in the company MIB
--
-- The following groups are supported for company
--
-- Active....
--    companyCommGroup     Permits the user to configure the communities
--    companyHostGroup     Permits the user to configure the hosts
--    companyMiscGroup     Permits the user to configure miscellaneous items
--    companySpanGroup     Permits the user to configure Spanning Tree       
--
--
------------------------------------------------------------------------------
------------------------------------------------------------------------------
        DES-2108-MIB DEFINITIONS ::= BEGIN

        IMPORTS                
            OBJECT-TYPE                          FROM RFC-1212
            enterprises,
            Counter, TimeTicks, IpAddress        FROM RFC1155-SMI
            mib-2,
            DisplayString, PhysAddress           FROM RFC1213-MIB;
            

        d-link						OBJECT IDENTIFIER ::= { enterprises 171 }  
        dlink-products				OBJECT IDENTIFIER ::= { d-link 10 }
        dlink-DES21XXSeriesProd		OBJECT IDENTIFIER ::= { dlink-products 61}
        des-2108					OBJECT IDENTIFIER ::= { dlink-DES21XXSeriesProd 2 }  

        -- textual conventions

        OwnerString ::= DisplayString
        MacAddress ::= OCTET STRING (SIZE (6))
        PortList ::= TEXTUAL-CONVENTION
            STATUS      current
            DESCRIPTION
                "Each octet within this value 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 bridge 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'."
            SYNTAX      OCTET STRING (SIZE (6))
		RowStatus ::= TEXTUAL-CONVENTION
    	    STATUS       current
    	    DESCRIPTION  ""

    	    SYNTAX       INTEGER {
                         active(1),
                         notInService(2),
                         notReady(3),
                         createAndGo(4),
                         createAndWait(5),
                         destroy(6)
                         }


        -- This data type is used to model an administratively
        -- assigned name of the owner of a resource. This
        -- information is taken from the NVT ASCII character set.
        -- It is suggested that this name contain one or more
        -- of the following:
        -- IP address, management station name, network manager's
        -- name, location, or phone number.
        -- In some cases the agent itself will be the owner of
        -- an entry.  In these cases, this string shall be set
        -- to a string starting with 'monitor'.
        --
        -- SNMP access control is articulated entirely in terms of
        -- the contents of MIB views; access to a particular SNMP
        -- object instance depends only upon its presence or
        -- absence in a particular MIB view and never upon its
        -- value or the value of related object instances. Thus,
        -- objects of this type afford resolution of resource
        -- contention only among cooperating managers; they
        -- realize no access control function with respect
        -- to uncooperative parties.
        --
        -- By convention, objects with this syntax are declared
        -- as having
        --
        --      SIZE (0..127)


        --
        -- company Enterprise MIB Extensions
        --
        companyCommGroup        OBJECT IDENTIFIER ::= { des-2108 1 }  
        companyMiscGroup        OBJECT IDENTIFIER ::= { des-2108 3 }
        companySpanGroup        OBJECT IDENTIFIER ::= { des-2108 4 }
        --
        companyConfigGroup      OBJECT IDENTIFIER ::= { des-2108 11 }
        companyPVlanGroup       OBJECT IDENTIFIER ::= { des-2108 12 }
        companyTVlanGroup       OBJECT IDENTIFIER ::= { des-2108 13 }
        --
        companyStaticGroup		OBJECT IDENTIFIER ::= { des-2108 21 }
        companyIgsGroup         OBJECT IDENTIFIER ::= { des-2108 22 }
        companyStormCtrlGroup	OBJECT IDENTIFIER ::= { des-2108 23 }
        

        --
        -- company Extension MIB, Set Community Information
        --
        commSetTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CommSetEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of SNMP Set Community Entries "
            ::= { companyCommGroup 1 }
            
        commSetEntry OBJECT-TYPE
            SYNTAX CommSetEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of SNMP Set Community properties"
            INDEX { commSetIndex }
            ::= { commSetTable 1 }
            
        CommSetEntry ::= SEQUENCE {
            commSetIndex                 INTEGER,
            commSetName                  DisplayString,
            commSetStatus                RowStatus
        }
        
        commSetIndex OBJECT-TYPE
            SYNTAX INTEGER (1..2)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "An index that uniquely identifies an entry in the 
                 Community Table. Eight entries are currently supported."
            ::= { commSetEntry 1 }
            
        commSetName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..20))
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The name of this SNMP Set Community Entry."
            ::= { commSetEntry 2 }

        commSetStatus OBJECT-TYPE
            SYNTAX RowStatus
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The RowStatus for the Set Community entry."
            ::= { commSetEntry 3 }

        --
        -- company Extension MIB, Get Community Information
        --
        commGetTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CommGetEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of SNMP Get Community Entries "
            ::= { companyCommGroup 2 }
            
        commGetEntry OBJECT-TYPE
            SYNTAX CommGetEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of SNMP Get Community properties"
            INDEX { commGetIndex }
            ::= { commGetTable 1 }
            
        CommGetEntry ::= SEQUENCE {
            commGetIndex                 INTEGER,
            commGetName                  DisplayString,
            commGetStatus                RowStatus
        }
        
        commGetIndex OBJECT-TYPE
            SYNTAX INTEGER (1..2)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "An index that uniquely identifies an entry in the 
                 Community Table. Eight entries are currently supported."
            ::= { commGetEntry 1 }
            
        commGetName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..20))
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The name of this SNMP Get Community Entry."
            ::= { commGetEntry 2 }

        commGetStatus OBJECT-TYPE
            SYNTAX RowStatus
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The RowStatus for the Get Community entry."
            ::= { commGetEntry 3 }

        --
        -- company Extension MIB, Trap Community Information
        --
        commTrapTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CommTrapEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of SNMP Trap Community Entries "
            ::= { companyCommGroup 3 }
            
        commTrapEntry OBJECT-TYPE
            SYNTAX CommTrapEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of SNMP Trap Community properties"
            INDEX { commTrapIndex }
            ::= { commTrapTable 1 }

        CommTrapEntry ::= SEQUENCE {
            commTrapIndex                    INTEGER,
            commTrapName                     DisplayString,
            commTrapIpAddress                IpAddress,
            commTrapVlanId                   INTEGER,
            commTrapSNMPBootup               INTEGER,
            commTrapSNMPTPLinkUpDown         INTEGER,
            commTrapSNMPFiberLinkUpDown      INTEGER,
            commTrapTrapAbnormalTPRXError    INTEGER,
            commTrapTrapAbnormalTPTXError    INTEGER,
            commTrapTrapAbnormalFiberRXError INTEGER,
            commTrapTrapAbnormalFiberTXError INTEGER, 
            commTrapStatus                   RowStatus
        }

        commTrapIndex OBJECT-TYPE
            SYNTAX INTEGER (1..2)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "An index that uniquely identifies an entry in the 
                 Community Table. Eight entries are currently supported."
            ::= { commTrapEntry 1 }
            
        commTrapName OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..20))
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The name of this SNMP Trap Community Entry."
            ::= { commTrapEntry 2 }

        commTrapIpAddress OBJECT-TYPE
            SYNTAX IpAddress
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The IP Address of this SNMP Trap Community Entry."
            ::= { commTrapEntry 3 }

        commTrapVlanId OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The Trap VLAN identifier of this SNMP Trap Community Entry.
                 The value must be from 1 to 4094."
            ::= { commTrapEntry 4 }

        commTrapSNMPBootup  OBJECT-TYPE
            SYNTAX INTEGER  {
        		 enabled(1),
        		 disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION 
                "Bootup trap"
            ::= { commTrapEntry 5 }
        
        commTrapSNMPTPLinkUpDown  OBJECT-TYPE
            SYNTAX INTEGER  {
        		 enabled(1),
        		 disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION 
                "Twisted Pair link up / link down trap"
            ::= { commTrapEntry 6 }
        
        commTrapSNMPFiberLinkUpDown  OBJECT-TYPE
            SYNTAX INTEGER  {
        		 enabled(1),
        		 disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION 
                "Fiber link up / link down trap"
            ::= { commTrapEntry 7 }
        
        commTrapTrapAbnormalTPRXError  OBJECT-TYPE
            SYNTAX INTEGER  {
        		 enabled(1),
        		 disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION 
                "Twisted Pair abnormal receive error trap"
            ::= { commTrapEntry 9 }
        
        commTrapTrapAbnormalTPTXError  OBJECT-TYPE
            SYNTAX INTEGER  {
        		 enabled(1),
        		 disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION 
                "Twisted Pair abnormal transmit error trap"
            ::= { commTrapEntry 10 }
        
        commTrapTrapAbnormalFiberRXError  OBJECT-TYPE
            SYNTAX INTEGER  {
        		 enabled(1),
        		 disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION 
                "Fiber abnormal receive error trap"
            ::= { commTrapEntry 11 }
        
        commTrapTrapAbnormalFiberTXError  OBJECT-TYPE
            SYNTAX INTEGER  {
        		 enabled(1),
        		 disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION 
                "Fiber abnormal transmit error trap"
            ::= { commTrapEntry 12 }
        
        commTrapStatus OBJECT-TYPE
            SYNTAX RowStatus
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The RowStatus for the Trap Community entry."
            ::= { commTrapEntry 13 }


        --
        -- company Extension MIB, Miscellaneous Information         
        --

        miscReset OBJECT-TYPE
            SYNTAX INTEGER {
                   reset(1),
                   noop(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Physically resets the unit - use with care. A (1) resets 
                 the unit, a (2) does nothing."
            ::= { companyMiscGroup 2 }

        miscStatisticsReset OBJECT-TYPE
            SYNTAX INTEGER {
                   reset(1),
                   noop(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Resets the units statistics. A (1) resets 
                 the unit, a (2) does nothing."
            ::= { companyMiscGroup 3 }

        --
        -- company Extension MIB, Spanning Tree Configuration       
        --
        spanOnOff OBJECT-TYPE
            SYNTAX INTEGER {
                   enabled(1),
                   disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Enable/Disable Spanning Tree. A (1) enables, a (2) disables."
            ::= { companySpanGroup 1 }


        -- ---------------------------------------------------------------------
        -- Products Extension
        -- ---------------------------------------------------------------------
        configVerSwPrimary OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..31))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The software image version string"
            ::= { companyConfigGroup 1 }

        configVerHwChipSet OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..31))
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The hardware chipset version string"
            ::= { companyConfigGroup 2 }

        configPortTable OBJECT-TYPE
            SYNTAX SEQUENCE OF ConfigPortEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of interface entries used for enterprise specific
                 configuration.  The number of entries is given by the value
                 of ifNumber.  All interface entries are assumed to be
                 Ethernet interafaces."
            ::= { companyConfigGroup 6 }

        configPortEntry OBJECT-TYPE
            SYNTAX ConfigPortEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "An enterprise specific interface entry."
            INDEX { configPort }
            ::= { configPortTable 1 }

        ConfigPortEntry ::= SEQUENCE {
            configPort                 INTEGER,
            configPortSpeed            INTEGER,
            configPortOperStatus       INTEGER,
            configPortFlowControl      INTEGER,
            configPortFlowControlOper  INTEGER,
	        configPortPriority         INTEGER
        }

        configPort OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A unique value for each interface that correlates to ifIndex.
                 Its value ranges between 1 and the value of ifNumber."
            ::= { configPortEntry 1 }

        configPortSpeed OBJECT-TYPE
            SYNTAX INTEGER {
                   disable(1),
                   auto(2),
                   rate10M-Half(3),
                   rate10M-Full(4),
                   rate100M-Half(5),
                   rate100M-Full(6)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The port's speed desired state."
            ::= { configPortEntry 2 }

        configPortOperStatus OBJECT-TYPE
            SYNTAX INTEGER {
                   down(1),
                   rate10M-Half(2),
                   rate10M-Full(3),
                   rate100M-Half(4),
                   rate100M-Full(5),
                   rate1G-Half(6),
                   rate1G-Full(7)
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port's operating speed state."
            ::= { configPortEntry 3 }

        configPortFlowControl OBJECT-TYPE
            SYNTAX INTEGER {
                   enabled(1),
                   disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The port will avoid transmitting a new packet
                 for the period of time specified in a received
                 PAUSE packet when enabled."
            ::= { configPortEntry 4 }

        configPortFlowControlOper OBJECT-TYPE
            SYNTAX INTEGER {
                   enabled(1),
                   disabled(2)
            }
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The port's operating flow control state."
            ::= { configPortEntry 5 }

        configPortPriority OBJECT-TYPE
            SYNTAX INTEGER {
                   normal(1),
                   high(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The port's current priority."
            ::= { configPortEntry 6 }

        --
        -- VLAN Mode
        --
        configVLANMode OBJECT-TYPE
            SYNTAX INTEGER {
                   modePortBased(1),
                   modeTagBased(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Determines the VLAN mode."
            ::= { companyConfigGroup 7 }

	    --
        -- Additional Configuration objects
        --

        -- --------------------------------------------------------------------- 
        -- Mirror 
        -- --------------------------------------------------------------------- 
        configMirrorTable OBJECT-TYPE
            SYNTAX SEQUENCE OF ConfigMirrorEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of the Mirror"
            ::= { companyConfigGroup 8 }

        configMirrorEntry OBJECT-TYPE
            SYNTAX ConfigMirrorEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A Mirror entry containing the Mirror id and mode"
            INDEX { configMirrorId }
            ::= { configMirrorTable 1 }

        ConfigMirrorEntry ::= SEQUENCE {
            configMirrorId             INTEGER,
            configMirrorMode           INTEGER,
            configMirrorMon            INTEGER,
            configMirrorSrc            PortList,
            configMirrorStatus         RowStatus
        }

        configMirrorId OBJECT-TYPE
            SYNTAX INTEGER (1)
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "An index that uniquely identifies an entry in the 
                 Mirror Table. One entries are currently supported."
            ::= { configMirrorEntry 1 }

        configMirrorMode OBJECT-TYPE
            SYNTAX INTEGER {
                   disabled(0),
                   rx(1),
                   tx(2),
                   both(3)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "When deciding the mirroring source port, then Mirror mode will 
                 be available."
            ::= { configMirrorEntry 2 }

        configMirrorMon OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "When mirroring is enabled (configMirroringMode =
                 ingress, egress, both), this identifies the mirroring monitoring
                 port.  This value has a valid range of 1 to ifNumber when
                 enabled."
            ::= { configMirrorEntry 3 }

        configMirrorSrc OBJECT-TYPE
            SYNTAX PortList
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "When mirroring is enabled (configMirroringMode =
                 ingress, egress, both), this identifies the mirroring source port.
                 This value has a valid range of 1 to ifNumber when enbaled.
                 Each octet within this value 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 bridge 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'."
            ::= { configMirrorEntry 4 }
        
        configMirrorStatus OBJECT-TYPE
            SYNTAX RowStatus
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The RowStatus for the Mirror entry."
            ::= { configMirrorEntry 5 }

        -- ---------------------------------------------------------------------
        -- SNMP Function
        -- ---------------------------------------------------------------------
        configSNMPEnable OBJECT-TYPE
            SYNTAX INTEGER {
                   enabled(1),
                   disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Enable/Disable SNMP function. A (1) enables, a (2) disables."
            ::= { companyConfigGroup 9 }

        -- ---------------------------------------------------------------------
        -- 
        -- ---------------------------------------------------------------------
        configIpAssignmentMode OBJECT-TYPE
            SYNTAX INTEGER {
                   manual(1),
                   dhcp(2),
                   other(3)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Indicates whether the device address is assigned by
		         the user (manual), or DHCP, or Others(BootP)."
            ::= { companyConfigGroup 12 }

        configPhysAddress OBJECT-TYPE
            SYNTAX MacAddress
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The interface's address at the protocol layer
                 immediately 'below' the network layer in the
                 protocol stack.  This is the physical address
                 for the end-station."
            ::= { companyConfigGroup 13 }

        configPasswordAdmin OBJECT-TYPE
            SYNTAX DisplayString (SIZE(0..20))
            ACCESS write-only
            STATUS mandatory
            DESCRIPTION
                "The adminstrator password"
            ::= { companyConfigGroup 15 }

        configIpAddress OBJECT-TYPE
            SYNTAX IpAddress
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The IP Address for the RDU box."
            ::= { companyConfigGroup 16 }

        configNetMask OBJECT-TYPE
            SYNTAX IpAddress
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The network mask for the RDU box."
            ::= { companyConfigGroup 17 }

        configGateway OBJECT-TYPE
            SYNTAX IpAddress
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The Gatway Address for the unit."
            ::= { companyConfigGroup 18 }

        configSave OBJECT-TYPE
            SYNTAX INTEGER {
                   save(1),
                   noop(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Physically saves the current configuration to nvram.
                 - use with care. 
                    (1) saves the configuration
                    (2) does nothing."
            ::= { companyConfigGroup 19 }

        configRestoreDefaults OBJECT-TYPE
            SYNTAX INTEGER {
                   restore(1),
                   noop(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Restores the configuration of the unit to the
                 original settings."
            ::= { companyConfigGroup 22 }


        --
        -- The PVLAN group
        -- 

        pvlanTable OBJECT-TYPE
            SYNTAX SEQUENCE OF PvlanEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of the Port-based VLANs"
            ::= { companyPVlanGroup 1 }

        pvlanEntry OBJECT-TYPE
            SYNTAX PvlanEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A Port-based VLAN entry containing the id and name."
            INDEX { pvlanId }
            ::= { pvlanTable 1 }

        PvlanEntry ::= SEQUENCE {
            pvlanId              INTEGER,
            pvlanName            DisplayString,
            pvlanMember          PortList,
            pvlanStatus          INTEGER
        }

        pvlanId OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The VLAN identifier.  A maximum of 28 VLANs is supported.
                 The value must be from 1 to 28"
            ::= { pvlanEntry 1 }

        pvlanName OBJECT-TYPE
           SYNTAX DisplayString (SIZE(0..8))
           ACCESS read-write
           STATUS mandatory
           DESCRIPTION
               "The VLAN name associated with the Id."
           ::= { pvlanEntry 2 }

        pvlanMember OBJECT-TYPE
            SYNTAX PortList
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The set of the device's member ports that belong
 	            to the VLAN.
 	            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
 	            VLAN 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'."

            ::= { pvlanEntry 3 }

        pvlanStatus OBJECT-TYPE
            SYNTAX INTEGER {
                    active (1),
                    createAndGo (4),
                    destroy (6)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The status of an entry in the VLAN Table.  Only a subset
                 of the rowstatus variables (active, createAndGo, destroy) 
                 are available."
            ::= { pvlanEntry 5 }

        --
        -- The TVLAN group
        -- 

        tvlanTable OBJECT-TYPE
            SYNTAX SEQUENCE OF TvlanEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of the VLANs"
            ::= { companyTVlanGroup 1 }

        tvlanEntry OBJECT-TYPE
            SYNTAX TvlanEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A VLAN entry containing the VLAN id and name."
            INDEX { tvlanId }
            ::= { tvlanTable 1 }

        TvlanEntry ::= SEQUENCE {
            tvlanId              INTEGER,
            -- tvlanName            DisplayString,
            tvlanMember          PortList,
            tvlanUntaggedPorts   PortList,
            tvlanStatus          INTEGER
        }

        tvlanId OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The VLAN identifier.  A maximum of 64 VLANs is supported.
                 The value must be from 1 to 4094."
            ::= { tvlanEntry 1 }

        tvlanMember OBJECT-TYPE
            SYNTAX PortList
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The set of the device's member ports that belong
 	            to the VLAN.
 	            
 	            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
 	            VLAN 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'."

            ::= { tvlanEntry 3 }

        tvlanUntaggedPorts OBJECT-TYPE
            SYNTAX PortList
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "If that bit has a value of '1' the outgoing frame on the egress
                 port is untagged. If that bit has a value of '0' the outgoing 
                 frame on the egress port is tagged."
            ::= { tvlanEntry 4 }

        tvlanStatus OBJECT-TYPE
            SYNTAX INTEGER {
                    active (1),
                    createAndGo (4),
                    destroy (6)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The status of an entry in the VLAN Table.  Only a subset
                 of the rowstatus variables (active, createAndGo, destroy) 
                 are available."
            ::= { tvlanEntry 5 }


        tvlanPortTable OBJECT-TYPE
            SYNTAX SEQUENCE OF TvlanPortEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of ports and their associated VLAN."
            ::= { companyTVlanGroup 2 }

        tvlanPortEntry OBJECT-TYPE
            SYNTAX TvlanPortEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "Information pertaining to an individual port regarding
                 to which VLAN it belongs."
            INDEX { tvlanPortPortId }
            ::= { tvlanPortTable 1 }

        TvlanPortEntry ::= SEQUENCE {
            tvlanPortPortId       INTEGER,
            tvlanPortVlanId       INTEGER,
            tvlanPortPriority     INTEGER
        }

        tvlanPortPortId OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "A port identifier that is in the range of 1 to ifNumber."
            ::= { tvlanPortEntry 1 }

        tvlanPortVlanId OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The default VLAN identifier."
            ::= { tvlanPortEntry 2 }

        tvlanPortPriority OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The default priority."
            ::= { tvlanPortEntry 3 }

        tvlanManagement OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The management vlan which allow to forwarding to cpu."
            ::= { companyTVlanGroup 3 }


        --
        -- The STATIC MAC group
        -- 

        staticOnOff OBJECT-TYPE
            SYNTAX INTEGER {
                   enabled(1),
                   disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Enable/Disable Static MAC. A (1) enables, a (2) disables."
            ::= { companyStaticGroup 1 }

        staticAutoLearning OBJECT-TYPE
            SYNTAX PortList
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The set of the device's member ports that belong
 	            to the Static MAC auto learning enable/disable.
 	            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 is represented
 	            by a single bit within the value of this object.
 	            If that bit has a value of '1' then that port is in auto
 	            learning enable state; the port is not in auto learning
 	            state if its bit has a value of '0'."
            ::= { companyStaticGroup 2 }

        staticTable OBJECT-TYPE
            SYNTAX SEQUENCE OF StaticEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A list of the Static MACs"
            ::= { companyStaticGroup 3 }

        staticEntry OBJECT-TYPE
            SYNTAX StaticEntry
            ACCESS not-accessible
            STATUS mandatory
            DESCRIPTION
                "A Static MAC entry containing the mac and forwarding port."
            INDEX { staticId }
            ::= { staticTable 1 }

        StaticEntry ::= SEQUENCE {
            staticId            INTEGER,
            staticMac           DisplayString,
            staticPort          INTEGER,
            staticVlanID     	INTEGER,
            staticStatus        INTEGER
        }

        staticId OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-only
            STATUS mandatory
            DESCRIPTION
                "The Static MAC identifier.  A maximum of 60 Static MACs is supported.
                 The value must be from 1 to 60"
            ::= { staticEntry 1 }

        staticMac OBJECT-TYPE
           SYNTAX DisplayString (SIZE(0..12))
           ACCESS read-write
           STATUS mandatory
           DESCRIPTION
               "The Static MAC associated with the Id."
           ::= { staticEntry 2 }

        staticPort OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The Static MAC forwarding port with the ID."
            ::= { staticEntry 3 }

        staticVlanID OBJECT-TYPE
            SYNTAX INTEGER
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The Static MAC VLAN ID with the ID."
            ::= { staticEntry 4 }

        staticStatus OBJECT-TYPE
            SYNTAX INTEGER {
                    active (1),
                    createAndGo (4),
                    destroy (6)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "The status of an entry in the Static MAC Table.  Only a subset
                 of the rowstatus variables (active, createAndGo, destroy) 
                 are available."
            ::= { staticEntry 5 }


		-- 
		-- The IGS Groups
		--
		
		igsSystem  OBJECT IDENTIFIER ::= { companyIgsGroup 1 }
		igsBrg     OBJECT IDENTIFIER ::= { companyIgsGroup 2 }

		--
		-- The IGS System Group
		--

		igsStatus OBJECT-TYPE
			SYNTAX      INTEGER  { enabled(1), disabled(2) } 
			ACCESS  read-write 
			STATUS      mandatory
			DESCRIPTION 
				"Enables or disables IGMP snooping in the system" 
			DEFVAL  { 2 }
			::= { igsSystem 2 }

		igsRouterPortPurgeInterval OBJECT-TYPE
			SYNTAX      INTEGER (1..600) 
			ACCESS  read-write 
			STATUS      mandatory 
			DESCRIPTION 
				"This is the interval (in seconds) after which a learnt  
				router port entry will be purged.  
					
				For each router port learnt, a 'RouterPortPurgeTimer' runs for  
				'RouterPortPurgeInterval'. 
					
				This timer will be restarted whenever a router control message is  
				received over that port. If no router control mssages are received  
				for 'RouterPortPurgeInterval' time, the learnt router port entry  
				will be purged  " 
			DEFVAL  { 125 }
			::= { igsSystem 4 }
			
		igsHostPortPurgeInterval OBJECT-TYPE
			SYNTAX      INTEGER (1..1225) 
			ACCESS  read-write 
			STATUS      mandatory 
			DESCRIPTION 
				"This is the interval (in seconds) after which a learnt  
				host port entry will be purged.  
					
				For each host port learnt, a 'PortPurgeTimer' runs for  
				'HostPortPurgeInterval'. 
					
				This timer will be restarted whenever a report message from host is  
				received over that port. If no report mssages are received  
				for 'HostPortPurgeInterval' time, the learnt host entry  
				will be purged from the multicast group " 
			DEFVAL  {260}
			::= { igsSystem 5 }
		
		--
		-- The IGS Bridge Group 
		--

		igsBrgRouterPortList OBJECT-TYPE
			SYNTAX      PortList 
			ACCESS  read-write 
			STATUS      mandatory 
			DESCRIPTION 
				"Contains list of bridge ports through which a router 
				is reachable. These router ports can be learnt through  
				control messages received from routers, and statically
				configured"
			::= { igsBrg 1 }
 
		-- Multicast Forwarding Table 
 
		igsBrgMcastFwdTable OBJECT-TYPE
			SYNTAX      SEQUENCE OF IgsBrgMcastFwdEntry
			ACCESS  not-accessible 
			STATUS      mandatory 
			DESCRIPTION 
				"This table contains multicast forwarding information  
				learnt when VLAN is DISABLED in the system."
			::= { igsBrg 2 }

		igsBrgMcastFwdEntry OBJECT-TYPE
			SYNTAX      IgsBrgMcastFwdEntry
			ACCESS  not-accessible 
			STATUS      mandatory 
			DESCRIPTION 
				"This table contains multicast group address and the  
				list of ports who have members for the multicast group."
			INDEX { igsBrgMcastFwdGroupAddress }
			::= { igsBrgMcastFwdTable 1 }

		IgsBrgMcastFwdEntry ::=
			SEQUENCE {
			igsBrgMcastFwdGroupAddress
			   MacAddress,
			igsBrgMcastFwdPortListMac
			   PortList 
			} 
		
		igsBrgMcastFwdGroupAddress OBJECT-TYPE
			SYNTAX      MacAddress 
			ACCESS  not-accessible 
			STATUS      mandatory 
			DESCRIPTION 
				"MAC multicast group address."
			::= { igsBrgMcastFwdEntry 1 }

		igsBrgMcastFwdPortListMac OBJECT-TYPE
			SYNTAX      PortList 
			ACCESS  read-only 
			STATUS      mandatory 
			DESCRIPTION 
				"List of ports who have members for the MAC multicast  
				group."
			::= { igsBrgMcastFwdEntry 2 }


        --
        -- The ARP STORM CONTROL group
        -- 
        
        stormctrlOnOff OBJECT-TYPE
            SYNTAX INTEGER {
                   enabled(1),
                   disabled(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Enable/Disable ARP STORM CONTROL. A (1) enables, a (2) disables."
            ::= { companyStormCtrlGroup 1 }
            
        stormctrlStatus OBJECT-TYPE
            SYNTAX INTEGER {
                   locked(1),
                   unlock(2)
            }
            ACCESS read-write
            STATUS mandatory
            DESCRIPTION
                "Unlock ARP STORM CONTROL mechanism. A (1) locked, a (2) unlock."
            ::= { companyStormCtrlGroup 2 }
        

-- *****************************************************************
--
--  Enterprise Trap group 
--
-- *****************************************************************

swFiberInsert TRAP-TYPE
	ENTERPRISE des-2108
        DESCRIPTION
           "Fiber insert trap" 
        ::= 1

swFiberRemove TRAP-TYPE
	ENTERPRISE des-2108
        DESCRIPTION
           "Fiber remove trap" 
        ::= 2

swFiberAbnormalRXError TRAP-TYPE
	ENTERPRISE des-2108
        DESCRIPTION
           "Fiber abnormal rx error trap" 
        ::= 3

swFiberAbnormalTXError TRAP-TYPE
	ENTERPRISE des-2108
        DESCRIPTION
           "Fiber abnormal tx error trap" 
        ::= 4

swTPAbnormalRXError TRAP-TYPE
	ENTERPRISE des-2108
        DESCRIPTION
           "Twisted Pair abnormal rx error trap" 
        ::= 5

swTPAbnormalTXError TRAP-TYPE
	ENTERPRISE des-2108
        DESCRIPTION
           "Twisted Pair abnormal tx error trap" 
        ::= 6

       END
