SWL2MGMT-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        Counter32,Counter64,TimeTicks,NOTIFICATION-TYPE,
        MODULE-IDENTITY,OBJECT-TYPE,IpAddress, Unsigned32
                                        FROM SNMPv2-SMI
        MacAddress, RowStatus           FROM SNMPv2-TC
        dlink                           FROM ID-REC-MIB
        dlinkMgmtMIB                    FROM DLINKMGMT-MIB
        DisplayString                   FROM RFC1213-MIB;

    swL2MgmtMIB MODULE-IDENTITY
	    LAST-UPDATED "200007150000Z"
	    ORGANIZATION "D-Link, Inc."
	    CONTACT-INFO
	        "   D-Link Customer Service

		    Postal: No. 20,Park Ave, II, Science-based
			        Industrial Park, Hsinchu, taiwan, R.O.C.

		       Tel: 886-3-577-9966

		    E-mail: "
	    DESCRIPTION
		    "The Structure of Layer 2 Network Management Information for the
		    D-Link enterprise."
        ::= { dlinkMgmtMIB des3326Series(32) 2}

    PortList                ::= OCTET STRING
    VlanIndex               ::= Unsigned32

    dlink-products          OBJECT IDENTIFIER ::= { dlink 10 }
    dlink-Des3326Prod       OBJECT IDENTIFIER ::= { dlink-products 32 }
    swProperty              OBJECT IDENTIFIER ::= { dlink-Des3326Prod 1 }
    swModule                OBJECT IDENTIFIER ::= { swProperty 1 }

    des3326Series           OBJECT IDENTIFIER ::= { dlinkMgmtMIB 32 }

    swL2DevMgmt             OBJECT IDENTIFIER ::= { swL2MgmtMIB 1 }
    swL2UnitMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 2 }
    swL2ModuleMgmt          OBJECT IDENTIFIER ::= { swL2MgmtMIB 3 }
    swL2PortMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 4 }
    swL2FdbMgmt             OBJECT IDENTIFIER ::= { swL2MgmtMIB 5 }
    swL2FilterMgmt          OBJECT IDENTIFIER ::= { swL2MgmtMIB 6 }
--    swL2VlanMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 7 }
    swL2TrunkMgmt           OBJECT IDENTIFIER ::= { swL2MgmtMIB 8 }
    swL2MirrorMgmt          OBJECT IDENTIFIER ::= { swL2MgmtMIB 9 }
    swL2IGMPMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 10 }
    swL2PriorityMgmt        OBJECT IDENTIFIER ::= { swL2MgmtMIB 11 }
    swL2MgmtMIBTraps        OBJECT IDENTIFIER ::= { swL2MgmtMIB 12 }

-- ********************************************************************
--  swL2DevMgmt             OBJECT IDENTIFIER ::= { swL2MgmtMIB 1 }
-- ********************************************************************

    swL2DevInfo             OBJECT IDENTIFIER ::= { swL2DevMgmt 1 }

    swDevInfoSystemUpTime OBJECT-TYPE
        SYNTAX  TimeTicks
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The value of sysUpTime at the time the switch entered its 
            current operational state. If the current state was entered 
            prior to the last re-initialization, then this object contains
            a zero value. This value is in units of seconds."
        ::= { swL2DevInfo 1 }

    swDevInfoTotalNumOfPort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The number of ports within this switch. This value is the sum
             of the ports within this switch."
        ::= { swL2DevInfo 2 }

    swDevInfoNumOfPortInUse OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The number of ports in this switch connected to the segment or
             the end stations."
        ::= { swL2DevInfo 3 }

    swDevInfoConsoleInUse   OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               in-use(2),
               not-in-use(3)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This usage indication of console system."
        ::= { swL2DevInfo 4 }

    swDevInfoFrontPanelLedStatus OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (0..127))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object is a set of system LED indications. The first third octets
            is defined as system LED . The first LED is power LED . The second LED
            is console LED . The third LED is RPS (Redundancy Power Supply) LED .
            . The other octets following the third octets are the logical port LED 
            (following dot1dBasePort ordering) . Every two bytes are presented to a
            port. The first byte is presentd to the Link/Activity LED . The second
            byte is presented to the Speed LED .

            There is one byte per LED .

            The most significant bit is used for blink/solid:
               Off = The LED is lit permanently.
               On = The LED blinks.

            The three least significant bits are used for color:
               1 = not lit,
               2 = green,
               3 = yellow,(orange)
               4 = blue,
               5 = red,
               0+6+7 not used

            The four remaining bits are currently unused and must be 0 ."
        ::= { swL2DevInfo 5 }

    swL2DevCtrlUpDownloadState OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    in-process(2),
                    invalid-file(3),
                    violation(4),
                    file-not-found(5),
                    disk-full(6),
                    complete(7),
                    time-out(8)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "status of upload/download control. If the value is 'other',
            means never firmware updated since device started up." 
        ::= { swL2DevInfo 6 }

    swL2DevCtrlUpDownloadTime OBJECT-TYPE
        SYNTAX  TimeTicks
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "record the sysUptime for last active swL2DevCtrlUpDownloadImage. Default
            is set to 0." 
        ::= { swL2DevInfo 7 }

    swDevInfoSaveCfg OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               proceeding(2),
               completed(3),
               changed-not-save(4),
               failed(5)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the status of the device configuration.

            other(1)             - this entry is currently in use but the
                                   conditions under which it will remain
                                   so are different from each of the
                                   following values.

            proceeding(2)        - the device configuration is saving into
                                   NV-RAM.

            completed(3)         - all of the device configuration parameters
                                   have been saved into NV-RAM.

            changed-not-save(4)  - some of the device configuration parameters
                                   have been changed but not saved into NV-RAM.

            failed(5)            - The processing of saving the device
                                   configuration has failed."
        ::= { swL2DevInfo 8 }

    -- ***************************************************
    swL2DevCtrl             OBJECT IDENTIFIER ::= { swL2DevMgmt 2 }

    swL2DevCtrlStpState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object can be enabled or disabled spanning tree algorithm
             during runtime of the system."
        ::= { swL2DevCtrl 1 }

    swL2DevCtrlIGMPSnooping OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates layer 2 Internet Group Management Protocol
            (IGMP) capture function is enabled or disabled ."
        ::= { swL2DevCtrl 2 }

    swL2DevCtrlBcastStromCtrl OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
       MAX-ACCESS  read-write
       STATUS  current
       DESCRIPTION
           "This object indicates broadcast storm control function is enabled or
           disabled. The swL2PortCtrlBMStromPercentage object will descript the 
           detail about the storm control ."
       ::= { swL2DevCtrl 3 }

    swL2DevCtrlMcastStromCtrl OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
       MAX-ACCESS  read-write
       STATUS  current
       DESCRIPTION
           "This object indicates multicast storm control function is enabled or
           disabled. The swL2PortCtrlBMStromPercentage object will descript the 
           detail about the storm control ."
       ::= { swL2DevCtrl 4 }

    swL2DevCtrlProtoCapability OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               layer2-default(2),
               layer2-ieee8021q(3),
               layer3-ip-ipx-default-routing(4),
               layer3-ip-ipx-ieee8021q-routing(5)
               }
       MAX-ACCESS  read-write
       STATUS  current
       DESCRIPTION
           "This object control which protocol capability will be enable (or disable)
           when the switch hub restart at the startup (power on) or warm start . To
           change the value will immediately restart the device ."
       ::= { swL2DevCtrl 5 }

    swL2DevCtrlUpDownloadImageFileName OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..64))
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The name of the image file to be uploaded/Downloaded from the device to TFTP server 
            when enabling image upload/download function (by writing swL2DevCtrlUpDownloadImage)."
        ::= { swL2DevCtrl 6 }

    swL2DevCtrlUpDownloadImageSourceAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The ip address where been uploaded/Downloaded image file."
        ::= { swL2DevCtrl 7 }

    swL2DevCtrlUpDownloadImage OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    upload(2),
                    download(3)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Image file upload/download control. After setting, it will
            immediately invoke image upload/download function. While retrieving the value
            of this object, it always returns 'other' normally." 
        ::= { swL2DevCtrl 8 }

    swL2DevCtrlSaveCfg OBJECT-TYPE
        SYNTAX  INTEGER {
               normal(1),
               active(2)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "As the object is set to active, the current device configuration is save 
            into to NV-RAM.If set to normal, do nothing."
        ::= { swL2DevCtrl 9 }

    swL2DevCtrlCleanAllStatisticCounter OBJECT-TYPE
        SYNTAX  INTEGER {
               normal(1),
               active(2)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "As the object is set to active, all the statistic counters will be cleared.
            If set to normal, do nothing."
        ::= { swL2DevCtrl 10 }

    -- ***************************************************
    swL2DevAlarm             OBJECT IDENTIFIER ::= { swL2DevMgmt 3 }

    swL2DevAlarmNewRoot OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "When the device has become the new root of the Spanning Tree, this
            object decide whether to send a new root trap."
        ::= { swL2DevAlarm 1 }

    swL2DevAlarmTopologyChange OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object determine to send a trap or not when the switch topology
             was changed. If the object is enabled(3), the topologyChange trap is
             sent by the device when any of its configured ports transitions from
             the Learning state to the Forwarding state, or from the Forwarding state
             to the Blocking state. For the same port tranition, the device doesn't
             send the trap if this object value is disabled or other."
        ::= { swL2DevAlarm 2 }

    swL2DevAlarmLinkChange OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object determine to send a trap or not when the link 
             was changed. If the object is enabled(3), the Link Change trap is
             sent by the device when any of its ports link change. The device doesn't
             send the trap if this object value is disabled or other."
        ::= { swL2DevAlarm 3 }

-- ********************************************************************
--  swL2UnitMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 2 }
-- ********************************************************************

    swL2UnitCtrl            OBJECT IDENTIFIER ::= { swL2UnitMgmt 1 }

    swL2UnitCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2UnitCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains control information about every unit."
        ::= { swL2UnitCtrl 1 }

    swL2UnitCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2UnitCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of control information for each unit of the device."
        INDEX  { swL2UnitCtrlUnitIndex }
        ::= { swL2UnitCtrlTable 1 }

    SwL2UnitCtrlEntry ::= 
        SEQUENCE {
            swL2UnitCtrlUnitIndex
                INTEGER,
            swL2UnitCtrlSwFileName
                DisplayString,
            swL2UnitCtrlSwUpdateCtrl
                INTEGER
        }

    swL2UnitCtrlUnitIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the unit number .(1..Max unit number)"
        ::= { swL2UnitCtrlEntry 1 }

    swL2UnitCtrlSwFileName OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..64))
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The name of the firmware file to be downloaded from the TFTP
            server to the unit when enabling image upload function (by writing
            swL2UnitCtrlSwUpdateCtrl object)."
        ::= { swL2UnitCtrlEntry 2 }

    swL2UnitCtrlSwUpdateCtrl OBJECT-TYPE
        SYNTAX  INTEGER {
               normal(1),
               active(2)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Image file download control. As the object is set to active,
            it will immediately invoke firmware download function, and
            if set to normal, do nothing." 
        ::= { swL2UnitCtrlEntry 3 }

-- ********************************************************************
--  swL2PortMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 4 }
-- ********************************************************************

    swL2PortInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains information about every port."
        ::= { swL2PortMgmt 1 }

    swL2PortInfoEntry OBJECT-TYPE
        SYNTAX  SwL2PortInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information for each port of the device."
        INDEX   { swL2PortInfoUnitIndex ,swL2PortInfoModuleIndex ,swL2PortInfoPortIndex }
        ::= { swL2PortInfoTable 1 }

    SwL2PortInfoEntry ::= 
        SEQUENCE {
            swL2PortInfoUnitIndex
                INTEGER,
            swL2PortInfoModuleIndex
                INTEGER,
            swL2PortInfoPortIndex
                INTEGER,
            swL2PortInfoType
                INTEGER,
            swL2PortInfoDescr
                DisplayString,
            swL2PortInfoLinkStatus
                INTEGER,
            swL2PortInfoNwayStatus
                INTEGER
        }

    swL2PortInfoUnitIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
            "Indicates ID of the unit in the device"
        ::= { swL2PortInfoEntry 1 }

    swL2PortInfoModuleIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Indicates ID of the module on the unit .(1..Max module number
            in the unit)"
        ::= { swL2PortInfoEntry 2 }

    swL2PortInfoPortIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the module's port number.(1..Max port number in
             the module)"
        ::= { swL2PortInfoEntry 3 }

    swL2PortInfoType OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               portType-UTP(2),
               portType-AUI(3),
               portType-Fiber-MTRJ(4),
               portType-Fiber-SC(5),
               portType-Fiber-GBIC(6),
               portType-BNC(7)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the connector type of this port."
        ::= { swL2PortInfoEntry 4 }

    swL2PortInfoDescr OBJECT-TYPE
        SYNTAX DisplayString (SIZE(0..64))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Provides port type information in displayed string format"
        ::= { swL2PortInfoEntry 5 }

    swL2PortInfoLinkStatus OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               link-pass(2),
               link-fail(3)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the port link status."
        ::= { swL2PortInfoEntry 6 }

    swL2PortInfoNwayStatus OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               half-10Mbps(2),
               full-10Mbps(3),
               half-100Mbps(4),
               full-100Mbps(5),
               half-1Gigabps(6),
               full-1Gigabps(7)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the port speed and duplex mode."
        ::= { swL2PortInfoEntry 7 }

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

    swL2PortCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains control information about every port."
        ::= { swL2PortMgmt 2 }

    swL2PortCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2PortCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of control information for each port of the device."
        INDEX  { swL2PortCtrlUnitIndex,swL2PortCtrlModuleIndex,swL2PortCtrlPortIndex }
        ::= { swL2PortCtrlTable 1 }

    SwL2PortCtrlEntry ::= 
        SEQUENCE {
            swL2PortCtrlUnitIndex
                INTEGER,
            swL2PortCtrlModuleIndex
                INTEGER,
            swL2PortCtrlPortIndex
                INTEGER,
            swL2PortCtrlAdminState
                INTEGER,
            swL2PortCtrlNwayState
                INTEGER,
            swL2PortCtrlFlowCtrlState
                INTEGER,
            swL2PortCtrlBackPressState
                INTEGER,
            swL2PortCtrlBMStromPercentage
                INTEGER
        }

    swL2PortCtrlUnitIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Indicates ID of the unit in the device"
        ::= { swL2PortCtrlEntry 1 }

    swL2PortCtrlModuleIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Indicates ID of the module on the unit.(1..Max module number in the unit)"
        ::= { swL2PortCtrlEntry 2 }

    swL2PortCtrlPortIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the module's port number.(1..Max port number in
             the module)"
        ::= { swL2PortCtrlEntry 3 }

    swL2PortCtrlAdminState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object decide the port enabled or disabled."
        ::= { swL2PortCtrlEntry 4 }

    swL2PortCtrlNwayState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               nway-enabled(2),
               nway-disabled-10Mbps-Half(3),
               nway-disabled-10Mbps-Full(4),
               nway-disabled-100Mbps-Half(5),
               nway-disabled-100Mbps-Full(6),
               nway-disabled-1Gigabps-Half(7),
               nway-disabled-1Gigabps-Full(8)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Chose the port speed, duplex mode, and N-Way function mode."
        ::= { swL2PortCtrlEntry 5 }

    swL2PortCtrlFlowCtrlState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Set IEEE 802.3x compliant flow control function as enabled or disabled.
             And IEEE 802.3x compliant flow control function work only when the port
             is in full duplex mode."
        ::= { swL2PortCtrlEntry 6 }

    swL2PortCtrlBackPressState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Depending on this object determine to enable or disable the 
             backpressure function when the port is working in half duplex mode."
        ::= { swL2PortCtrlEntry 7 }

    swL2PortCtrlBMStromPercentage OBJECT-TYPE
        SYNTAX  INTEGER (0..100)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object to decide how much percentage broadcast/multicast (depend on
            swL2DevCtrlBcastStromCtrl or swL2DevCtrlMcastStromCtrl objects whether is
            enabled) will active storm control . Whenever a port reaches its 
            configured percentage amount of packets in the one second time interval ,
            the device will start dropping that type of packet , until the time
            interval has expired . Once the time interval has expired , the device
            will start forwarding that type of packet ."
        ::= { swL2PortCtrlEntry 8 }

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

    swL2PortTxPrioQueueCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortTxPrioQueueCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains transmit queue priority control information about
            every port."
        ::= { swL2PortMgmt 3 }

    swL2PortTxPrioQueueCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2PortTxPrioQueueCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of transmit queue priority control information for each port of
            the device."
        INDEX  { swL2PortTxPrioQueueUnitIndex,swL2PortTxPrioQueueModuleIndex,
                 swPortTxPrioQueueCtrlPortIndex }
        ::= { swL2PortTxPrioQueueCtrlTable 1 }

    SwL2PortTxPrioQueueCtrlEntry ::= 
        SEQUENCE {
            swL2PortTxPrioQueueUnitIndex
                INTEGER,
            swL2PortTxPrioQueueModuleIndex
                INTEGER,
            swPortTxPrioQueueCtrlPortIndex
                INTEGER,
            swL2PortTxPrioQueuePrioAlgorithm
                INTEGER,
            swL2PortTxPrioQueueQ0Weight
                INTEGER,
            swL2PortTxPrioQueueQ1Weight
                INTEGER,
            swL2PortTxPrioQueueQ2Weight
                INTEGER,
            swL2PortTxPrioQueueQ3Weight
                INTEGER
        }

    swL2PortTxPrioQueueUnitIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Indicates ID of the unit in the device"
        ::= { swL2PortTxPrioQueueCtrlEntry 1 }

    swL2PortTxPrioQueueModuleIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Indicates ID of the module on the unit.(1..Max module number in the unit)"
        ::= { swL2PortTxPrioQueueCtrlEntry 2 }

    swPortTxPrioQueueCtrlPortIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the module's port number.(1..Max port number in
             the module)"
        ::= { swL2PortTxPrioQueueCtrlEntry 3 }

    swL2PortTxPrioQueuePrioAlgorithm OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               credit(2),
               strict(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object decide the weighted fair queueing algorithm for the bandwidth
            management .

            other(1) - this entry is currently in use but the conditions under
                which it will remain so are different from each of the following
                values.
            credit(2) - In the credit algorithm, each queue is assigned a certain
                percent of the total bandwidth for a given port . In the mode , each
                priority queue is granted access to transmit in a round-robin fashion
                . If queue 0 to 3 have weight 10% ,20% ,30% and 40% . For example ,
                if only queue 0 and 1 have packets waiting for transmitting , the queue
                0 will get 33.33% bandwidth and queue 1 will get 66.67% bandwidth .
            strict(3) - The strict priority algorithm always grants requests in a fixed
                priority , with queue 3 having the highest priority , and queue 0 
                having the lowest . While higher priority queues have packets to send
                , lower priority queues will not be granted ."
        ::= { swL2PortTxPrioQueueCtrlEntry 4 }

    swL2PortTxPrioQueueQ0Weight OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The weight value of the transmit priority queue 0 . The all queues sum
            value must be equal 100 . The value must be smallest than other queues ."
        ::= { swL2PortTxPrioQueueCtrlEntry 5 }

    swL2PortTxPrioQueueQ1Weight OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The weight value of the transmit priority queue 1 . The all queues sum
            value must be equal 100 . The value must be bigger than queue 0 .
            And the value must be smallest than queue 2 and queue 3 ."
        ::= { swL2PortTxPrioQueueCtrlEntry 6 }

    swL2PortTxPrioQueueQ2Weight OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The weight value of the transmit priority queue 2 . The all queues sum
            value must be equal 100 . The value must be biggest than queue 0 and queue
            1 . And the value must be smaller than queue 3 ."
        ::= { swL2PortTxPrioQueueCtrlEntry 7 }

    swL2PortTxPrioQueueQ3Weight OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The weight value of the transmit priority queue 3 . The all queues sum
            value must be equal 100 . The value must be biggest than other queues ."
        ::= { swL2PortTxPrioQueueCtrlEntry 8 }

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

    swL2PortStTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortStEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of port statistic Counter entries."
        ::= { swL2PortMgmt 4 }

    swL2PortStEntry OBJECT-TYPE
        SYNTAX  SwL2PortStEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This entry include all the port statistic Counter which support
            by the device, like Bytes received, Bytes Sent ..."
        INDEX  { swL2PortStUnitIndex,swL2PortStModuleIndex,swL2PortStPortlndex }
        ::= { swL2PortStTable 1 }

    SwL2PortStEntry ::= 
        SEQUENCE {
            swL2PortStUnitIndex
                INTEGER,
            swL2PortStModuleIndex
                INTEGER,
            swL2PortStPortlndex
                INTEGER,
            swL2PortStRxBytes
                Counter32,
            swL2PortStRxPkts
                Counter32,
            swL2PortStRxCRCErrorPkts
                Counter32,
            swL2PortStRxVlanDetected
                Counter32,
            swL2PortStRxMcastPkts
                Counter32,
            swL2PortStRxBcastPkts
                Counter32,
            swL2PortStRxUndersizePkts
                Counter32,
            swL2PortStRxOversizePkts
                Counter32,
            swL2PortStRxFragmentsPkts
                Counter32,
            swL2PortStRxJabbersPkts
                Counter32,
            swL2PortStRx64OctsPkts
                Counter32,
            swL2PortStRx65To127OctsPkts
                Counter32,
            swL2PortStRx128To255OctsPkts
                Counter32,
            swL2PortStRx256To511OctsPkts
                Counter32,
            swL2PortStRx512To1023OctsPkts
                Counter32,
            swL2PortStRx1024To1518OctsPkts
                Counter32,
            swL2PortStTxBytes
                Counter32,
            swL2PortStTxTotalBytes
                Counter32,
            swL2PortStTxPkts
                Counter32,
            swL2PortStTxExDeferPkts
                Counter32,
            swL2PortStTxGiantPkts
                Counter32,
            swL2PortStTxUnderRunPkts
                Counter32,
            swL2PortStTxCRCErrorPkts
                Counter32,
            swL2PortStTxLenCheckErrorPkts
                Counter32,
            swL2PortStTxLenOutRangePkts
                Counter32,
            swL2PortStTxLateCollPkts
                Counter32,
            swL2PortStTxExCollPkts
                Counter32,
            swL2PortStTxSingleCollPkts
                Counter32,
            swL2PortStTxCollPkts
                Counter32,
            swL2PortStRxDropPkts
                Counter32,
            swL2PortStRxLocalDropPkts
                Counter32,
            swL2PortStHCRxBytes
                Counter64,
            swL2PortStHCRxPkts
                Counter64,
            swL2PortStHCTxBytes
                Counter64,
            swL2PortStHCTxPkts
                Counter64
        }

    swL2PortStUnitIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
            "This object indicates ID of the unit in the device"
        ::= { swL2PortStEntry 1 }

    swL2PortStModuleIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates ID of the module on the unit.(1..Max module number
            in the unit)"
        ::= { swL2PortStEntry 2 }

    swL2PortStPortlndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the module's port number.(1..Max port number in
             the module)"
        ::= { swL2PortStEntry 3 }

    swL2PortStRxBytes OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every data octet of good packets
            received ."
        ::= { swL2PortStEntry 4 }

    swL2PortStRxPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received good packet ."
        ::= { swL2PortStEntry 5 }

    swL2PortStRxCRCErrorPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which
            has invalid CRC ."
        ::= { swL2PortStEntry 6 }

    swL2PortStRxVlanDetected OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which
            has differ Vlan ID ."
        ::= { swL2PortStEntry 7 }

    swL2PortStRxMcastPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which
            has multicast destination MAC address ."
        ::= { swL2PortStEntry 8 }

    swL2PortStRxBcastPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which
            has broadcast destination MAC address (0xFFFFFFFFFFFF)."
        ::= { swL2PortStEntry 9 }

    swL2PortStRxUndersizePkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which
            meets any one the following conditions:
            1.Receive byte count < 64 bytes and not CRC error .
            2.Receive byte count < 68 bytes and tag packet and not CRC error ."
        ::= { swL2PortStEntry 10 }

    swL2PortStRxOversizePkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which
            meets any one the following conditions:
            1.Receive byte count >1518 .
            2.Receive byte count > 1522 and tag packet ."
        ::= { swL2PortStEntry 11 }

    swL2PortStRxFragmentsPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which
            meets any one the following conditions:
            1.Receive byte count < 64 bytes and CRC error .
            2.Receive byte count < 68 bytes and tag packet and CRC error ."
        ::= { swL2PortStEntry 12 }

    swL2PortStRxJabbersPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which
            meets any one the following conditions:
            1.Receive byte count > 1518 and CRC error .
            2.Receive byte count > 1522 bytes and tag packet and CRC error ."
        ::= { swL2PortStEntry 13 }

    swL2PortStRx64OctsPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet with size of
            64 bytes ."
        ::= { swL2PortStEntry 14 }

    swL2PortStRx65To127OctsPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet with size of
            65 to 127 bytes ."
        ::= { swL2PortStEntry 15 }

    swL2PortStRx128To255OctsPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet with size of
            128 to 255 bytes ."
        ::= { swL2PortStEntry 16 }

    swL2PortStRx256To511OctsPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet with size of
            256 to 511 bytes ."
        ::= { swL2PortStEntry 17 }

    swL2PortStRx512To1023OctsPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet with size of
            512 to 1023 bytes ."
        ::= { swL2PortStEntry 18 }

    swL2PortStRx1024To1518OctsPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet with size of
            1024 to 1536 bytes ."
        ::= { swL2PortStEntry 19 }

    swL2PortStTxBytes OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every data octet of a trans-
            mitted good packet ."
        ::= { swL2PortStEntry 20 }

    swL2PortStTxTotalBytes OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every data octet of a trans-
            mitted packet . This counter includes rejected transmitted packets ."
        ::= { swL2PortStEntry 21 }

    swL2PortStTxPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted good packet."
        ::= { swL2PortStEntry 22 }

    swL2PortStTxExDeferPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            excessive defer ."
        ::= { swL2PortStEntry 23 }

    swL2PortStTxGiantPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            transmit giant ."
        ::= { swL2PortStEntry 24 }

    swL2PortStTxUnderRunPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            transmit under run ."
        ::= { swL2PortStEntry 25 }

    swL2PortStTxCRCErrorPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            has invalid CRC ."
        ::= { swL2PortStEntry 26 }

    swL2PortStTxLenCheckErrorPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            has error length ."
        ::= { swL2PortStEntry 27 }

    swL2PortStTxLenOutRangePkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            has length out of range ."
        ::= { swL2PortStEntry 28 }

    swL2PortStTxLateCollPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            has transmit late collision ."
        ::= { swL2PortStEntry 29 }

    swL2PortStTxExCollPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            has transmit excessive collision ."
        ::= { swL2PortStEntry 30 }

    swL2PortStTxSingleCollPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            has transmit collision count = 1 ."
        ::= { swL2PortStEntry 31 }

    swL2PortStTxCollPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every transmitted packet which
            has transmit collision ."
        ::= { swL2PortStEntry 32 }

    swL2PortStRxDropPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which has
            dropped for any reason ."
        ::= { swL2PortStEntry 33 }

    swL2PortStRxLocalDropPkts OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This counter is incremented once for every received packet which local
            has dropped for any reason ."
        ::= { swL2PortStEntry 34 }

    swL2PortStHCRxBytes OBJECT-TYPE
        SYNTAX  Counter64
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This high capacbility (64 bit) counter is incremented once for every
            data octet of good packets received ."
        ::= { swL2PortStEntry 35 }

    swL2PortStHCRxPkts OBJECT-TYPE
        SYNTAX  Counter64
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This high capability (64 bit) counter is incremented once for every
            received good packet."
        ::= { swL2PortStEntry 36 }

    swL2PortStHCTxBytes OBJECT-TYPE
        SYNTAX  Counter64
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This high capability (64 bit) counter is incremented once for every data
            octet of a transmitted good packet ."
        ::= { swL2PortStEntry 37 }

    swL2PortStHCTxPkts OBJECT-TYPE
        SYNTAX  Counter64
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This high capability (64 bit) counter is incremented once for every
            transmitted good packet."
        ::= { swL2PortStEntry 38 }

-- ********************************************************************
--  swL2FdbMgmt             OBJECT IDENTIFIER ::= { swL2MgmtMIB 5 }
-- ********************************************************************

    swL2McastFdbStaticMaxSupportedEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Maximum number of entries in the static multicast forwarding 
            table (swL2McastFdbStaticTable) ."
        ::= { swL2FdbMgmt 1 }

    swL2McastFdbStaticCurrentTotalEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Current exist number of entries in the static multicast forwarding
            table ."
        ::= { swL2FdbMgmt 2 }

    swL2McastFdbStaticTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2McastFdbStaticEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table defines for frames with specific multicast destination MAC
            address, the set of ports that the frame will be forwarded to . Note 
            that the priority of FDB table entries is lower than Filtering Table ,
            i.e. if there is a table hash collision between the entries of FDB Table
            and Filtering Table inside the switch H/W address table, then Filtering
            Table entry overwrite the colliding entry of FDB Table ."
        ::= { swL2FdbMgmt 3 }

    swL2McastFdbStaticEntry OBJECT-TYPE
        SYNTAX  SwL2McastFdbStaticEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information specifies which ports the frames with specific 
            multicast destination MAC address to go."
        INDEX  { swL2McastFdbStaticAddress }
        ::= { swL2McastFdbStaticTable 1 }

    SwL2McastFdbStaticEntry ::= 
        SEQUENCE {
            swL2McastFdbStaticAddress
                MacAddress,
            swL2McastFdbStaticPortMap
                PortList,
            swL2McastFdbStaticJoinIGMP
                INTEGER,
            swL2McastFdbStaticState
                INTEGER,
            swL2McastFdbStaticstatus
                INTEGER
        }

    swL2McastFdbStaticAddress OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The destination MAC address in a frame to which this entry's 
            forwarding information applies . This object only can take the value
            of the multicast address ."
        ::= { swL2McastFdbStaticEntry 1 }

    swL2McastFdbStaticPortMap OBJECT-TYPE
        SYNTAX  PortList
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The set of ports to which frames received from a specific port
            and destined for a specific MAC address, are allowed to be 
            forwarded.  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 4 octets is represent one unit
            port according its logic port . If the unit less 32 port , the other
            port don't care just fill zero ."
        ::= { swL2McastFdbStaticEntry 2 }

    swL2McastFdbStaticJoinIGMP OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates whether to allow ports to join/leave IGMP group
            via IGMP Snooping.

            For a multicast address entry, port group could be classified into 
            two catelogies : one is static and another is dynamic. In static port
            group, port members is defined statically by user, and dynamic port
            group allows a port member to join/leave the membership dynamically,
            according to IGMP report/leave messages. When this object is set to
            'enabled', it allows dynamic port group updated for the multicast
            address entry as well as static port group. When it is set to 'disabled'
            , dynamic port member join/leave is disabled, but static port group is
            not affected.

            This object is only vaild for multicast address indicated by
            swFdbStaticAddressIndex .

            other(1) - this entry is currently in use but the conditions under
                which it will remain so are different from each of the following
                values.
            disabled(2) - this entry doesn't allow dynamic updates via IGMP Snooping.This
                          is a default setting.
            enabled(3) - this entry allow dynamic updates via IGMP Snooping."
        ::= { swL2McastFdbStaticEntry 3 }

    swL2McastFdbStaticState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               invalid(2),
               valid(3)
               }
        MAX-ACCESS  read-write
        STATUS current
        DESCRIPTION
            "This object indicates the status of this entry.

            other(1) - this entry is currently in use but the conditions under
                which it will remain so are different from each of the following
                values.
            invalid(2) - writing this value to the object, and then the corresponding
                entry will be removed from the table.
            valid(3) - this entry is reside in the table."
        ::= { swL2McastFdbStaticEntry 4 }

    swL2McastFdbStaticstatus OBJECT-TYPE
        SYNTAX INTEGER {
               other(1),
               apply(2),
               not-apply(3)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the status of this entry .

            other(1) - this entry is currently in use but the conditions under
                which it will remain so are different from each of the following
                values .
            apply(2) - this entry is currently in use and reside in the table .
            not-apply(3) - this entry is reside in the table but currently not
                           in use due to conflict with other table ."
        ::= { swL2McastFdbStaticEntry 5 }

-- ********************************************************************
--  swL2FilterMgmt          OBJECT IDENTIFIER ::= { swL2MgmtMIB 6 }
-- ********************************************************************

    swL2FilterAddrConfig    OBJECT IDENTIFIER ::= { swL2FilterMgmt 1 }

    swL2FilterAddrMaxSupportedEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Maximum number of entries in the MAC address filtering table
            (swL2FilterAddrCtrlTable) ."
        ::= { swL2FilterAddrConfig 1 }

    swL2FilterAddrCurrentTotalEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Current applied number of entries in the MAC address filtering
            table ."
        ::= { swL2FilterAddrConfig 2 }

    swL2FilterAddrCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2FilterAddrCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table defines information for the device to filter packets with
            specific MAC address (either as the DA and/or as the SA) . The MAC
            address can be a unicast address or a multicast address .This table
            has higher priority than both static FDB table and IGMP table . It means
            that if a MAC address appears on this table also appears on the static
            FDB table , the device will use the information provide by this table to
            process the packet ."
        ::= { swL2FilterAddrConfig 3 }

    swL2FilterAddrCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2FilterAddrCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information about a specific unicast/multicast MAC address
            for which the switch has filtering information ."
        INDEX  { swL2FilterAddrVid , swL2FilterAddrMacIndex }
        ::= { swL2FilterAddrCtrlTable 1 }

    SwL2FilterAddrCtrlEntry ::= 
        SEQUENCE {
            swL2FilterAddrVid
                VlanIndex,
            swL2FilterAddrMacIndex
                MacAddress,
            swL2FilterAddrState
                INTEGER
        }

    swL2FilterAddrVid OBJECT-TYPE
        SYNTAX  VlanIndex
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the VLAN-ID. If VLAN is in disabled mode, the
            object indicates the default VLAN-ID (0) ."
        ::= { swL2FilterAddrCtrlEntry 1 }

    swL2FilterAddrMacIndex OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates a unicast/multicast MAC address for which the switch
            has filtering information . But if the swL2FilterAddrState = src-addr then 
            the object can not be a multicast MAC address ."
        ::= { swL2FilterAddrCtrlEntry 2 }

    swL2FilterAddrState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               dst-addr(2),
               src-addr(3),
               dst-src-addr(4),
               invalid(5)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the status of this entry. 

            other(1) - this entry is currently in use but the conditions under
                which it will remain so are different from each of the following
                values .
            dst-addr(2) - recieved frames's destination address are currently used
                to be filtered as it meets with the MAC address entry of the table .
            src-addr(3) - recieved frames's source address are currently used to
                be filtered as it meets with the MAC address entry of the table .
            dst-src-addr(4) - recieved frames's destination address or source
                address are currently used to be filtered as it meets with 
                the MAC address entry of the table .
            invalid(5) - writing this value to the object, and then the corresponding
                entry will be removed from the table ."
        ::= { swL2FilterAddrCtrlEntry 3 }

-- ********************************************************************
--  swL2TrunkMgmt           OBJECT IDENTIFIER ::= { swL2MgmtMIB 8 }
-- ********************************************************************

    swL2TrunkMaxSupportedEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Maximum number of entries in the trunk configuration table
            (swL2TrunkCtrlTable) ."
        ::= { swL2TrunkMgmt 1 }

    swL2TrunkCurrentNumEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Current actived number of entries in the trunk configuration table ."
        ::= { swL2TrunkMgmt 2 }

    swL2TrunkCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2TrunkCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table specifys which ports group a set of ports(up to 8)
            into a single logical link."
        ::= { swL2TrunkMgmt 3 }

    swL2TrunkCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2TrunkCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information specifies which ports group a set of 
            ports(up to 8) into a single logical link."
        INDEX  { swL2TrunkIndex }
        ::= { swL2TrunkCtrlTable 1 }

    SwL2TrunkCtrlEntry ::= 
        SEQUENCE {
            swL2TrunkIndex
                INTEGER,
            swL2TrunkName
                DisplayString,
            swL2TrunkMasterPortIndex
                INTEGER,
            swL2TrunkMemberNum
                INTEGER,
            swL2TrunkState
                INTEGER
        }

    swL2TrunkIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The index of logical port trunk. The trunk group number depend on
            the existence of unit and module."
        ::= { swL2TrunkCtrlEntry 1 }

    swL2TrunkName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (12))
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The name of logical port trunk."
        ::= { swL2TrunkCtrlEntry 2 }

    swL2TrunkMasterPortIndex OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The object indicates the master port number of the port trunk entry.The 
            first port of the trunk is implicitly configured to be the master logical 
            port.When using Port Trunk, you can not configure the other ports of 
            the group except the master port. Their configuration must be same as the
            master port (e.g. speed, duplex, enabled/disabled, flow control, and so on)." 
        ::= { swL2TrunkCtrlEntry 3 }

    swL2TrunkMemberNum OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Indicate how many number of ports is included in this Trunk .
            The trunk port number depend on the existence of module .
            The maximum number of ports is 8 for one trunks ."
        ::= { swL2TrunkCtrlEntry 4 }

    swL2TrunkState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object decide the port trunk enabled or disabled."
        ::= { swL2TrunkCtrlEntry 5 }

-- ********************************************************************
--  swL2MirrorMgmt          OBJECT IDENTIFIER ::= { swL2MgmtMIB 8 }
-- ********************************************************************

    swL2MirrorLogicTargetPort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates switch which port will sniff another port .
            A trunk port member cannot be configured as a target Snooping port .
            The port number is the sequential (logical) number which is also
            applied to bridge MIB, etc ."
        ::= { swL2MirrorMgmt 1 }

    swL2MirrorPortConfig    OBJECT IDENTIFIER ::= { swL2MirrorMgmt 2 }

    swL2MirrorPortMaxSupportedEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Maximum number of entries in the port base mirror configuration table
            (swL2MirrorPortCtrlTable) ."
        ::= { swL2MirrorPortConfig 1 }

    swL2MirrorPortCurrentNumEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Current applied number of entries in the port base mirror configuration
            table ."
        ::= { swL2MirrorPortConfig 2 }

    swL2MirrorPortCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2MirrorPortCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of port snooping entries . Port snooping function provide an easy
            way to monitor traffic on any port . In this way any good packets appears
            on the source mirror port also shows up on the target mirror port and 
            doesn't to reconstruct the LAN ."
        ::= { swL2MirrorPortConfig 3 }

    swL2MirrorPortCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2MirrorPortCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information provide an easy way to monitor traffic on any port.
            The use can bring a fancy network monitor attaching to any target mirror 
            port and set the port to be monitored as source mirror port ."
        INDEX  { swL2MirrorPortLogicSourcePort }
        ::= { swL2MirrorPortCtrlTable 1 }

    SwL2MirrorPortCtrlEntry ::= 
        SEQUENCE {
            swL2MirrorPortLogicSourcePort
                INTEGER,
            swL2MirrorPortSourceDirection
                INTEGER,
            swL2MirrorPortState
                INTEGER
        }

    swL2MirrorPortLogicSourcePort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the number of port to be sniffed. The port number 
            is the sequential (logical) number which is also applied to bridge MIB,
            etc."
        ::= { swL2MirrorPortCtrlEntry 1 }

    swL2MirrorPortSourceDirection OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               ingress(2),
               egress(3),
               ingress-egress(4)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the packet direction of the source port . 

            other(1) - this entry is currently in use but the conditions under
                which it will remain so are different from each of the following
                values .
            ingress(2) - the represent the ingress into the source port packet to
                sniffed .
            egress(3) - the represent the egress from the source port packet to
                sniffed .
            ingress-egress(4) - the represent the egress from or ingress into the
                source port packet to sniffed ."
        ::= { swL2MirrorPortCtrlEntry 2 }

    swL2MirrorPortState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disable(2),
               enable(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the port mirroring state .

            other(1) - this entry is currently in use but the conditions under
                which it will remain so are different from each of the following
                values .
            disabled(2) - writing this value to the object, and then the corresponding
                entry will be removed from the table .
            enabled(3) - this entry is reside in the table ."
        ::= { swL2MirrorPortCtrlEntry 3 }

-- ********************************************************************
--  swL2IGMPMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 10 }
-- ********************************************************************

    swL2IGMPMaxSupportedVlans OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Maximum number of Vlans in the layer 2 IGMP control table
            (swL2IGMPCtrlTable) ."
        ::= { swL2IGMPMgmt 1 }

    swL2IGMPMaxIpGroupNumPerVlan OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Maximum number of multicast ip group per Vlan in the layer 2 IGMP
            information table (swL2IGMPQueryInfoTable) ."
        ::= { swL2IGMPMgmt 2 }

    swL2IGMPLastQueryIPAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the ip address of last send IGMP query packet ."
        ::= { swL2IGMPMgmt 3 }

    swL2IGMPCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2IGMPCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The table controls the Vlan's IGMP function. Its scale depends on
            current VLAN state (swL2VlanInfoStatus). If VLAN is disabled mode,
            there is only one entry in the table, with index 1. If VLAN is in
            Port-Base or 802.1q mode, the number of entries can be up to 12,
            with index range from 1 to 12."
        ::= { swL2IGMPMgmt 4 }

    swL2IGMPCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2IGMPCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The entry in IGMP control table (swL2IGMPCtrlTable). The entry is
            effective only when IGMP capture switch (swL2DevCtrlIGMPSnooping)
            is enabled."
        INDEX  { swL2IGMPCtrlIndex }
        ::= { swL2IGMPCtrlTable 1 }

    SwL2IGMPCtrlEntry ::= 
        SEQUENCE {
            swL2IGMPCtrlIndex
                INTEGER,
            swL2IGMPCtrlVid
                INTEGER,
            swL2IGMPCtrlTimer
                INTEGER,
            swL2IGMPCtrState
                INTEGER
        }

    swL2IGMPCtrlIndex OBJECT-TYPE
        SYNTAX  INTEGER (1..12)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the IGMP control entry number.Its scale depends on
            current VLAN state (swL2VlanInfoStatus). If VLAN is disabled , there is
            only one entry in the table, with index 1. If VLAN is in Port-Base or
            802.1q mode, the number of entries is 12, with index range from 1 to 12."
        ::= { swL2IGMPCtrlEntry 1 }

    swL2IGMPCtrlVid OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the IGMP control entry's VLAN id. If VLAN is
            disabled , the Vid is always 0 and cannot be changed by management
            users. If VLAN is in Port-Base mode, the Vid is arranged from 1 to
            12 , fixed form. If VLAN is in 802.1q mode, the Vid setting can
            vary from 1 to 4094 by management user, and the Vid in each entry
            must be unique in the IGMP Control Table."
        ::= { swL2IGMPCtrlEntry 2 }

    swL2IGMPCtrlTimer OBJECT-TYPE
        SYNTAX  INTEGER (30..9999)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The timer value for sending IGMP query packet when none 
            was sent by the multicast router in the LAN. The timer works
            in per-VLAN basis. Our device will be activated to send the query
            message if the timer is expired. Please reference RFC2236-1997.
            And it recommends a default of 125 seconds. The timeout value must 
            be at least 30 seconds."
        DEFVAL  { 300 }
        ::= { swL2IGMPCtrlEntry 3 }

    swL2IGMPCtrState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disable(2),
               enable(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the status of this entry.

            other(1) - this entry is currently in use but the conditions under
                which it will remain so are different from each of the following
                values.
            disable(2) - IGMP funtion is disabled for this entry.
            enable(3) -  IGMP funtion is enabled for this entry."
        ::= { swL2IGMPCtrlEntry 4 }

    swL2IGMPQueryInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2IGMPQueryInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The table contains the number current IGMP query packets which
            is captured by this device, as well as the IGMP query packets
            sent by the device."
        ::= { swL2IGMPMgmt 5 }

    swL2IGMPQueryInfoEntry OBJECT-TYPE
        SYNTAX  SwL2IGMPQueryInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "Information about current IGMP query information, provided that
            swL2DevCtrlIGMPSnooping and swL2IGMPCtrState of associated VLAN
            entry are all enabled."
        INDEX  { swL2IGMPInfoIndex }
        ::= { swL2IGMPQueryInfoTable 1 }

    SwL2IGMPQueryInfoEntry ::= 
        SEQUENCE {
            swL2IGMPInfoIndex
                INTEGER,
            swL2IGMPInfoVid
                INTEGER,
            swL2IGMPInfoQueryCount
                INTEGER,
            swL2IGMPInfoTxQueryCount
                INTEGER
        }

    swL2IGMPInfoIndex OBJECT-TYPE
        SYNTAX  INTEGER (1..12)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the IGMP query information entry number. It could
            be up to 12 entries, depending on current number of VLAN entries."
        ::= { swL2IGMPQueryInfoEntry 1 }

    swL2IGMPInfoVid OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the Vid of associated IGMP info table entry. It
            follows swL2IGMPCtrlVid in the associated entry of IGMP control table
            (swL2IGMPCtrlTable)."
        ::= { swL2IGMPQueryInfoEntry 2 }

    swL2IGMPInfoQueryCount OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the number of query packets received since the
            IGMP function enabled, in per-VLAN basis."
        ::= { swL2IGMPQueryInfoEntry 3 }

    swL2IGMPInfoTxQueryCount OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the send count of IGMP query messages, in
            per-VLAN basis. In case of IGMP timer expiration, the switch
            sends IGMP query packets to related VLAN member ports and increment
            this object by 1."
        ::= { swL2IGMPQueryInfoEntry 4 }

    swL2IGMPInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2IGMPInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The table containing current IGMP information which captured by this 
            device, provided that swL2DevCtrlIGMPSnooping and swL2IGMPCtrlState
            of associated VLAN entry are all enabled. Note that the priority of
            IGMP table entries is lower than Filtering Table, i.e. if there is a
            table hash collision between the entries of IGMP Table and Filtering
            Table inside the switch H/W address table, then Filtering Table entry
            overwrite the colliding entry of IGMP Table. See swL2FilterMgmt
            description also."
        ::= { swL2IGMPMgmt 6 }

    swL2IGMPInfoEntry OBJECT-TYPE
        SYNTAX  SwL2IGMPInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "Information about current IGMP information which captured by this 
            device , provided that swL2DevCtrlIGMPSnooping and swL2IGMPCtrlState
            of associated VLAN entry are all enabled."
        INDEX  { swL2IGMPVid , swL2IGMPGroupIpAddr }
        ::= { swL2IGMPInfoTable 1 }

    SwL2IGMPInfoEntry ::= 
        SEQUENCE {
            swL2IGMPVid
                INTEGER,
            swL2IGMPGroupIpAddr
                IpAddress,
            swL2IGMPMacAddr
                MacAddress,
            swL2IGMPPortMap
                PortList,
            swL2IGMPIpGroupReportCount
                INTEGER
        }

    swL2IGMPVid OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the Vid of individual IGMP table entry. It
            shows the Vid of IGMP report information captured on network."
        ::= { swL2IGMPInfoEntry 1 }

    swL2IGMPGroupIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object is identify group ip address which is captured from
            IGMP packet, in per-Vlan basis."
        ::= { swL2IGMPInfoEntry 2 }

    swL2IGMPMacAddr OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object is identify mac address which is corresponding
            to swL2IGMPGroupIpAddr, in per-Vlan basis.."
        ::= { swL2IGMPInfoEntry 3 }

    swL2IGMPPortMap OBJECT-TYPE
        SYNTAX  PortList
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates which ports are belong to the same multicast 
            group, in per-Vlan basis. Each multicast group has a octect string
            to indicate with port map. 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 4 octets is represent one unit
            port according its logic port . If the unit less 32 port , the other
            port don't care just fill zero ."
        ::= { swL2IGMPInfoEntry 4 }

    swL2IGMPIpGroupReportCount OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicate how much report packet was receive by our
            device corresponding with this entry from IGMP function enabled,
            in per-Vlan basis. ." 
        ::= { swL2IGMPInfoEntry 5 }

-- ********************************************************************
--  swL2PriorityMgmt        OBJECT IDENTIFIER ::= { swL2MgmtMIB 11 }
-- ********************************************************************

    swL2PriorityAddrConfig  OBJECT IDENTIFIER ::= { swL2PriorityMgmt 1 }

    swL2PriorityAddrMaxSupportedEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Maximum number of entries in the MAC address queuing priority
            control table (swL2PriorityAddrCtrlTable) ."
        ::= { swL2PriorityAddrConfig 1 }

    swL2PriorityAddrCurrentTotalEntries OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Current applied number of entries in the MAC address priority control
            table ."
        ::= { swL2PriorityAddrConfig 2 }

    swL2PriorityAddrCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PriorityAddrCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table defines information for the device to decide queuing specific
            MAC address to a specific priority level queue . The MAC address can be a 
            unicast/multicast address packet . The priority level is from 0 to 3 , the
            priority level 3 have the highest priority weight ."
        ::= { swL2PriorityAddrConfig 3 }

    swL2PriorityAddrCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2PriorityAddrCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information about a specific unicast/multicast MAC address
            must be transmited to a specific priority queue for which the switch 
            has priority information ."
        INDEX  { swL2PriorityAddrVid , swL2PriorityAddrMac }
        ::= { swL2PriorityAddrCtrlTable 1 }

    SwL2PriorityAddrCtrlEntry ::= 
        SEQUENCE {
            swL2PriorityAddrVid
                VlanIndex,
            swL2PriorityAddrMac
                MacAddress,
            swL2PriorityAddrL2PrioLevel
                INTEGER,
            swL2PriorityAddrState
                INTEGER
        }

    swL2PriorityAddrVid OBJECT-TYPE
        SYNTAX  VlanIndex
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the VLAN-ID. If VLAN is in disabled mode, the
            object indicates the default VLAN-ID (0) ."
        ::= { swL2PriorityAddrCtrlEntry 1 }

    swL2PriorityAddrMac OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates a unicast/multicast MAC address for which the switch
            has priority information . But if the swL2PriorityAddrState = src-addr then 
            the object can not be a multicast MAC address ."
        ::= { swL2PriorityAddrCtrlEntry 2 }

    swL2PriorityAddrL2PrioLevel OBJECT-TYPE
        SYNTAX  INTEGER (0..3)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the priority level . The priority level 3 has
            the highest priority weight . The object specify the MAC address should
            be queued which priority queue . The priority level will over the priority
            level in a 802.1D ." 
        ::= { swL2PriorityAddrCtrlEntry 3 }

    swL2PriorityAddrState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               dst-addr(2),
               src-addr(3),
               dst-src-addr(4),
               invalid(5)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the status of this entry .

            other(1) - this entry is currently in use but the conditions under
                which it will remain so are different from each of the following
                values .
            dst-addr(2) - specific frames's destination address are currently used
                to be the priority queue as it meets with the MAC address entry of
                the table .
            src-addr(3) - specific frames's source address are currently used to
                be corresponding priority queue as it meets with the MAC address
                entry of the table .
            dst-src-addr(4) - specific frames's destination address or source address
                are currently used to be corresponding priority queue as it meets with
                the MAC address entry of the table .
            invalid(5) - writing this value to the object, and then the corresponding
                entry will be removed from the table ."
        ::= { swL2PriorityAddrCtrlEntry 4 }

-- ********************************************************************
--  Layer 2  Trap
-- ********************************************************************

    swL2MgmtMIBTrapPrefix   OBJECT IDENTIFIER ::= { swL2MgmtMIBTraps 0 }

    swL2linkChangeEvent NOTIFICATION-TYPE
        OBJECTS { swL2PortInfoUnitIndex,swL2PortInfoModuleIndex,swL2PortInfoPortIndex }
        STATUS  current
        DESCRIPTION
            "The trap is sent whenever the link state of a port changes
            from link up to link down or from link down to link up"
        ::= { swL2MgmtMIBTrapPrefix 1 }

    swL2addressTableFull NOTIFICATION-TYPE
        STATUS  current
        DESCRIPTION
            "The trap is sent whenever the address table is full ."
        ::= { swL2MgmtMIBTrapPrefix 2 }
END
