-- The DHS3226 proprietary MIB Ver 1.7                2002/06/05

DHS3226-MIB	DEFINITIONS ::= BEGIN

    IMPORTS
        IpAddress , TimeTicks , Integer32, 
        MODULE-IDENTITY , OBJECT-TYPE			FROM SNMPv2-SMI
        DisplayString							FROM SNMPv2-TC
		PortList								FROM Q-BRIDGE-MIB
        dlink-mgmt                      		FROM DLINK-ID-REC-MIB
		dlink-Dhs3226Prod						FROM DLINK-ID-REC-MIB;
		
    swL2MgmtMIB MODULE-IDENTITY
	    LAST-UPDATED "0007150000Z"
	    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."
        ::= { dlink-mgmt dhs3226(36) 2}

		  VlanId					::= INTEGER (1..4094)

		  swL2Property				OBJECT IDENTIFIER ::= { dlink-Dhs3226Prod 1 }
		  swL2Module				OBJECT IDENTIFIER ::= { swL2Property 1 }

          swL2BwMgmt				OBJECT IDENTIFIER ::= { swL2MgmtMIB 1 }
          swL2CosMgmt				OBJECT IDENTIFIER ::= { swL2MgmtMIB 3 }
          swL2PortSecurityMgmt		OBJECT IDENTIFIER ::= { swL2MgmtMIB 4 }
          swL2DevMgmt				OBJECT IDENTIFIER ::= { swL2MgmtMIB 5 }
          swL2PortMgmt				OBJECT IDENTIFIER ::= { swL2MgmtMIB 6 }
          swL2DiffServMgmt			OBJECT IDENTIFIER ::= { swL2MgmtMIB 7 }
          swL2PortMirrorMgmt		OBJECT IDENTIFIER ::= { swL2MgmtMIB 8 }
          
-- ********************************************************************
--        swL2BwMgmt               OBJECT IDENTIFIER ::= { swL2MgmtMIB 1 }
-- ********************************************************************

          swL2BwMgmtFEPortUnitBandwidth OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Indicates the represented bandwidth for each unit if the counting type
                      is for Fast Ethernet ports."
              ::= { swL2BwMgmt 1 }

          swL2BwMgmtGEPortUnitBandwidth OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Indicates the represented bandwidth for each unit if the counting type
                      is for Gigabit Ethernet ports."
              ::= { swL2BwMgmt 2 }

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

          swL2IngrPortBwControl   OBJECT IDENTIFIER ::= { swL2BwMgmt 3 }

          swL2IngrPortBwCtrlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SwL2IngrPortBwCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A table that contains the current control information about the ingress
                      bandwidth of port"
              ::= { swL2IngrPortBwControl 3 }

          swL2IngrPortBwCtrlEntry OBJECT-TYPE
              SYNTAX  SwL2IngrPortBwCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of information contained in swL2IngrPortBwCtrlTable."
              INDEX   { swL2IngrPortBwCtrlPort }
              ::= { swL2IngrPortBwCtrlTable 1 }

          SwL2IngrPortBwCtrlEntry ::=
              SEQUENCE {
                  swL2IngrPortBwCtrlPort
                      INTEGER,
                  swL2IngrPortBwCtrlPortCountType
                      INTEGER,
                  swL2IngrPortBwCtrlPortNwayStatus
                      INTEGER,
                  swL2IngrPortBwCtrlUnit
                      INTEGER,
                  swL2IngrPortBwCtrlRate
                      INTEGER,
                  swL2IngrPortBwCtrlStatus
                      INTEGER
              }

          swL2IngrPortBwCtrlPort OBJECT-TYPE
              SYNTAX  INTEGER (1..255)
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "Indicates the port to limit ingress bandwidth."
              ::= { swL2IngrPortBwCtrlEntry 1 }

          swL2IngrPortBwCtrlPortCountType OBJECT-TYPE
              SYNTAX  INTEGER {
                          fastEthernetPort(1),
                          gigabitEthernetPort(2)
                      }
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Indicates the counting type of port. All the regular ports have
                      the type fastEthernetPort, and the others have the type
                      gigabitEthernetPort. If counting type is fastEthernetPort, the
                      limited bandwidth will be that swL2IngrPortBwCtrlUnit times
                      swL2BwMgmtFEPortUnitBandwidth. If counting type is
                      gigabitEthernetPort, the limited bandwidth will be that
                      swL2IngrPortBwCtrlUnit times swL2BwMgmtGEPortUnitBandwidth."
              ::= { swL2IngrPortBwCtrlEntry 2 }

          swL2IngrPortBwCtrlPortNwayStatus 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
                      "Indicates speed and duplex mode of port."
              ::= { swL2IngrPortBwCtrlEntry 3 }

          swL2IngrPortBwCtrlUnit OBJECT-TYPE
              SYNTAX  INTEGER (1..127)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Indicates the current units for the limitation of ingress bandwidth
                      of port."
              ::= { swL2IngrPortBwCtrlEntry 4 }

          swL2IngrPortBwCtrlRate OBJECT-TYPE
              SYNTAX  INTEGER (1..2147483647)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Indicates the limitation of forwarding bandwidth in kilobyte. The value
                      should be that swL2IngrPortBwCtrlUnit times swL2BwMgmtFEPortUnitBandwidth,
                      if counting type is fastEthernetPort, or swL2BwMgmtGEPortUnitBandwidth, if
                      counting type is gigabitEthernetPort."
              ::= { swL2IngrPortBwCtrlEntry 5 }

          swL2IngrPortBwCtrlStatus OBJECT-TYPE
              SYNTAX  INTEGER {
						  other(1),
						  disabled(2),
						  enabled(3)
                      }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Status of this entry. All the existed entries will return enabled(3). An entry  
                      will be created if this object is set to enabled(3) and not existed.
                      If this object is set to disabled(2), this entry will be deleted."
              ::= { swL2IngrPortBwCtrlEntry 6 }

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


          swL2EgressPortBwControl   OBJECT IDENTIFIER ::= { swL2BwMgmt 4 }

          swL2EgressPortBwCtrlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SwL2EgressPortBwCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A table that contains the current control information about the egress
                      bandwidth of port"
              ::= { swL2EgressPortBwControl 3 }

          swL2EgressPortBwCtrlEntry OBJECT-TYPE
              SYNTAX  SwL2EgressPortBwCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of information contained in swL2EgressPortBwCtrlTable."
              INDEX   { swL2EgressPortBwCtrlPort }
              ::= { swL2EgressPortBwCtrlTable 1 }

          SwL2EgressPortBwCtrlEntry ::=
              SEQUENCE {
                  swL2EgressPortBwCtrlPort
                      INTEGER,
                  swL2EgressPortBwCtrlPortCountType
                      INTEGER,
                  swL2EgressPortBwCtrlPortNwayStatus
                      INTEGER,
                  swL2EgressPortBwCtrlUnit
                      INTEGER,
                  swL2EgressPortBwCtrlRate
                      INTEGER,
                  swL2EgressPortBwCtrlStatus
                      INTEGER
              }

          swL2EgressPortBwCtrlPort OBJECT-TYPE
              SYNTAX  INTEGER (1..255)
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "Indicates the port to limit egress bandwidth."
              ::= { swL2EgressPortBwCtrlEntry 1 }

          swL2EgressPortBwCtrlPortCountType OBJECT-TYPE
              SYNTAX  INTEGER {
                          fastEthernetPort(1),
                          gigabitEthernetPort(2)
                      }
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Indicates the counting type of port. All the regular ports have
                      the type fastEthernetPort, and the others have the type
                      gigabitEthernetPort. If counting type is fastEthernetPort, the
                      limited bandwidth will be that swL2EgressPortBwCtrlUnit times
                      swL2BwMgmtFEPortUnitBandwidth. If counting type is
                      gigabitEthernetPort, the limited bandwidth will be that
                      swL2EgressPortBwCtrlUnit times swL2BwMgmtGEPortUnitBandwidth."
              ::= { swL2EgressPortBwCtrlEntry 2 }

          swL2EgressPortBwCtrlPortNwayStatus 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
                      "Indicates speed and duplex mode of port."
              ::= { swL2EgressPortBwCtrlEntry 3 }

          swL2EgressPortBwCtrlUnit OBJECT-TYPE
              SYNTAX  INTEGER (1..127)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Indicates the current units for the limitation of egress bandwidth
                      of port."
              ::= { swL2EgressPortBwCtrlEntry 4 }

          swL2EgressPortBwCtrlRate OBJECT-TYPE
              SYNTAX  INTEGER (1..2147483647)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Indicates the limitation of forwarding bandwidth in kilobyte. The value
                      should be that swL2EgressPortBwCtrlUnit times swL2BwMgmtFEPortUnitBandwidth,
                      if counting type is fastEthernetPort, or swL2BwMgmtGEPortUnitBandwidth,
                      if counting type is gigabitEthernetPort."
              ::= { swL2EgressPortBwCtrlEntry 5 }

          swL2EgressPortBwCtrlStatus OBJECT-TYPE
              SYNTAX  INTEGER {
						  other(1),
						  disabled(2),
						  enabled(3)
                      }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Status of this entry. All the existed entries will return enabled(3). An
                      entry will be created if this object is set to enabled(3) and not existed.
                      If this object is set to disabled(2), this entry will be deleted."
              ::= { swL2EgressPortBwCtrlEntry 6 }

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

          swL2GrpAddrFltrMode OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),
                          forwardAllGrpAddr(2),
                          forwardAllUnregGrpAddr(3),
                          filterAllUnregGrpAddr(4)
                      }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Indicates the filtering mode for all ports.
                      In forwardAllGrpAddr(2) mode - forward all group address,
                      		all frames destined for group MAC addresses are forwarded according
                      		to the VLAN rules.
                      In forwardAllUnregGrpAddr(3) mode - forward all unregistered group addresses,
                      		if the Group MAC Address Registration entries exist in the Multicast Table,
                      		frames destined for the corresponding group MAC addresses will be forwarded,
                      		only on ports identified in the member port set, which is identified by the
                      		Port Bitmap. The Untagged Bitmap is also used to send tagged packets on the
                      		member ports. On the other hand, if the Group MAC Address does not exist in
                      		the Multicast Table, the filtering mechanism of forwardAllGrpAddr(2) mode is
                      		used.
                      In filterAllUnregGrpAddr(4) mode - filter all unregistered group addresses,
                      		frames destined for group MAC addresses are forwarded only if such forwarding
                      		is explicity permitted by a Group Address entry in the Multicast Table. In
                      		other words, if the Group MAC Address exists in the Multicast table, then the
                      		packets are forwarded using the Port Bitmap and the Untagged Bitmap from
                      		that entry. Otherwise, the packets are dropped."
              ::= { swL2MgmtMIB 2 }

-- ********************************************************************
--        swL2CosMgmt               OBJECT IDENTIFIER ::= { swL2MgmtMIB 3 }
-- ********************************************************************

          swL2CosScheduleMethod OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),
                          strict(2),
                          roundRobin(3)
                      }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Indicates the scheduling mechanism for CoS queues.
                      In strict(2) mode - packet process will start from highest CoS queue for a given
                      					  port, then moves on to the next lower CoS queue while the
                      					  higher CoS queue is empty packet.
                      In roundRobin(3) mode - packet process will start from highest CoS queue for a given
                      					      port, then moves on to the next lower CoS queue after sending
                      					      swL2CosMaxPackets or when the higher CoS queue is empty packet."
              ::= { swL2CosMgmt 1 }

          swL2CosControlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SwL2CosControlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      ""
              ::= { swL2CosMgmt 2 }

          swL2CosControlEntry OBJECT-TYPE
              SYNTAX  SwL2CosControlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of information contained in swL2CosControlTable."
              INDEX   { swL2CosQueueIndex }
              ::= { swL2CosControlTable 1 }

          SwL2CosControlEntry ::=
              SEQUENCE {
                  swL2CosQueueIndex
                      INTEGER,
                  swL2CosMaxPackets
                      INTEGER,
                  swL2CosMaxLatency
                      INTEGER
              }

          swL2CosQueueIndex OBJECT-TYPE
              SYNTAX  INTEGER (1..8)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Indicates CoS Queue."
              ::= { swL2CosControlEntry 1 }

          swL2CosMaxPackets OBJECT-TYPE
              SYNTAX  INTEGER (1..255)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Indicates maximum packet count for a CoS Queue. This object only takes effect at
                      roundRobin mode of swL2CosScheduleMethod."
              ::= { swL2CosControlEntry 2 }

          swL2CosMaxLatency OBJECT-TYPE
              SYNTAX  INTEGER (0..255)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Indicates maximum allowable latency for packet transmission on a CoS Queue such
                      that the packets on this queue are not delayed more than the maximum allowable
                      latency time. The granularity of this timer is 17 microsecond. A value of 0x00
                      disable this timer. swL2CosMaxLatency takes precedence over swL2CosScheduleMethod."
              ::= { swL2CosControlEntry 3 }

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

          swL2PortSecurityControlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SwL2PortSecurityControlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "port security feature which controls the address leaning capability and the
                      traffic forwarding decision. Each port can have this function enabled or disabled.
                      When it is enabled and a number is given said N, which allows N addresses to be
                      learned at this port, the first N learned addresses are locked at this port as
                      static entry. When the learned addresses number reach N, any coming packet with
                      not learned source addresses are discarded (e.g. dropped) and no more new addresses
                      can be learned at this port."
              ::= { swL2PortSecurityMgmt 1 }

          swL2PortSecurityControlEntry OBJECT-TYPE
              SYNTAX  SwL2PortSecurityControlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                      "A list of information contained in swL2PortSecurityControlTable."
              INDEX   { swL2PortSecurityPortIndex }
              ::= { swL2PortSecurityControlTable 1 }

          SwL2PortSecurityControlEntry ::=
              SEQUENCE {
                  swL2PortSecurityPortIndex
                      INTEGER,
                  swL2PortSecurityMaxLernAddr
                      INTEGER,
                  swL2PortSecurityMode
                      INTEGER,
                  swL2PortSecurityAdmState
                      INTEGER
              }

          swL2PortSecurityPortIndex OBJECT-TYPE
              SYNTAX  INTEGER (1..255)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                      "Indicates the secured port to lock address learning."
              ::= { swL2PortSecurityControlEntry 1 }

          swL2PortSecurityMaxLernAddr OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Indicates allowable number of addresses to be learned at this port."
              ::= { swL2PortSecurityControlEntry 2 }

          swL2PortSecurityMode OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),
                          deleteOnTimeout(2),
                          deleteOnReset(3)
                      }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Indicates the mode of locking address.
                      In deleteOnTimeout(2) mode - the locked addresses can be aged out after aging timer
                                                   expire. In this mode, when the locked address is aged
                                                   out, the number of address can be learned has to be
                                                   increased by one.
                      In deleteOnReset(3) mode - never age out the locked addresses unless restart
                                                   the system to prevent from port movement or intrusion."
              ::= { swL2PortSecurityControlEntry 3 }

          swL2PortSecurityAdmState OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),
                          enable(2),
                          disable(3)
                      }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                      "Indicates administration state of locking address."
              ::= { swL2PortSecurityControlEntry 4 }

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

          swL2DevInfo             OBJECT IDENTIFIER ::= { swL2DevMgmt 1 }

          swL2DevInfoSystemUpTime 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 }

          swL2DevInfoTotalNumOfPort OBJECT-TYPE
              SYNTAX  INTEGER (0..255)
              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 }

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

          swL2DevInfoConsoleInUse   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 }

          swL2DevInfoFrontPanelLedStatus 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 }

		swL2DevInfoCpuUtilization OBJECT-TYPE
              SYNTAX  INTEGER (0..100)
              UNITS	"%"
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                  "This object indicates CPU utilization"
              ::= { swL2DevInfo 6 }
              
    -- *******************************************************

          swL2DevCtrl             OBJECT IDENTIFIER ::= { swL2DevMgmt 2 }

          swL2DevCtrlSystemReboot OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),
                          reboot(2),
                          save-config-and-reboot(3),
                          reboot-and-load-factory-default-config(4),
                          reboot-and-load-factory-default-config-except-ip-address(5)
                      }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "This object indicates the agent system reboot state. The agent always
                  returns other(1) when this object is read."
              ::= { swL2DevCtrl 1 }

          swL2DevCtrlSystemIP OBJECT-TYPE
              SYNTAX  IpAddress
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "This object indicates system ip."
              ::= { swL2DevCtrl 2 }

          swL2DevCtrlSubnetMask OBJECT-TYPE
              SYNTAX  IpAddress
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "This object indicates system subnet mask."
              ::= { swL2DevCtrl 3 }

          swL2DevCtrlDefaultGateway OBJECT-TYPE
              SYNTAX  IpAddress
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "This object indicates system default gateway."
              ::= { swL2DevCtrl 4 }

          swL2DevCtrlManagementVlanId OBJECT-TYPE
              SYNTAX  VlanId
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "This object controls which Vlan includes system ip. And the Vlan
                  should have been created."
              ::= { swL2DevCtrl 5 }

          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 6 }

          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 7 }

          swL2DevCtrlBcastStormCtrl 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 swL2PortCtrlBMDStormLimit object will descript the 
                 detail about the storm control ."
              ::= { swL2DevCtrl 8 }

          swL2DevCtrlMcastStormCtrl 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 swL2PortCtrlBMDStormLimit object will descript the 
                 detail about the storm control ."
              ::= { swL2DevCtrl 9 }

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

          swL2DevCtrlBMDStormLimit OBJECT-TYPE
              SYNTAX  INTEGER (0..262143)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "This object to decide how many broadcast/multicast (depend on
                  swL2DevCtrlBcastStormCtrl, swL2DevCtrlMcastStormCtrl or
                  swL2DevCtrlDestLookupFailureCtrlobjects whether is enabled) packets per second
                  will pass thru. Beyond the limit, the device will start dropping
                  that type of packet until the second interval has expired . Once the time
                  interval has expired , the device will start forwarding that type of packet."
              ::= { swL2DevCtrl 11 }

          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 12 }

          swL2DevCtrlSnmpEnableAuthenTraps OBJECT-TYPE
              SYNTAX      INTEGER { enabled(1), disabled(2) }
              MAX-ACCESS  read-write
              STATUS      current
              DESCRIPTION
                      "Indicates whether the SNMP entity is permitted to generate
                      authenticationFailure traps.  The value of this object
                      overrides any configuration information; as such, it
                      provides a means whereby all authenticationFailure traps may
                      be disabled.

                      Note that it is strongly recommended that this object be
                      stored in non-volatile memory so that it remains constant
                      across re-initializations of the network management system."
              ::= { swL2DevCtrl 13 }

          swL2DevCtrlFilterEAPOLPDU OBJECT-TYPE
              SYNTAX      INTEGER { yes(1), no(2) }
              MAX-ACCESS  read-write
              STATUS      current
              DESCRIPTION
                      "Indicates whether to filter the EAPOL PDU. If the administrative  
                      state for Port Access Control in a System is enabled, this object
                      is meaningless. Otherwise, when this object is yes(1), the EAPOL
                      packets will be dropped. When this object is no(2), the EAPOL 
                      packets will pass."
              ::= { swL2DevCtrl 14 }

          swL2DevCtrlTrafficSegmentation OBJECT-TYPE
              SYNTAX      INTEGER { enabled(1), disabled(2) }
              MAX-ACCESS  read-write
              STATUS      current
              DESCRIPTION
                      "If this object is disabled(2), then no traffic segmentation. 
                      
                      When we set it to enabled(1), there are three conditions for the 
                      traffic segmentation.
                      (1) If without plugging in option module, port 1 is the server port.
                      (2) If plugging in one-port module, the port on the module is the 
                          server port.
                      (3) If plugging in two-port module, these two ports on the module are
                          the server ports.
                      
                      Under this situation, other ports(Client ports) can only communicate 
                      with the server port. Client ports can't communicate with each other."
              ::= { swL2DevCtrl 15 }

		-- ************************
	    -- 		pingTest          *
	    -- ************************
	    
		agentPingTest OBJECT IDENTIFIER ::= { swL2DevCtrl 16 }
		
		agentPingTestIPAddress OBJECT-TYPE
	        SYNTAX  IpAddress
	        MAX-ACCESS  read-write
	        STATUS  current
	        DESCRIPTION
	            " The target ip address of the ping test "
	        ::= { agentPingTest 1 }
	    
	    agentPingTestRepetition OBJECT-TYPE
	        SYNTAX  INTEGER (1..255)
	        MAX-ACCESS  read-write
	        STATUS  current
	        DESCRIPTION
	            " The repetition times of the ping test "
	        ::= { agentPingTest 2 }         
	
		agentPingTestControl OBJECT-TYPE
	        SYNTAX  INTEGER {
	        				stop(0),
	        				active(1)
	        				}
	        MAX-ACCESS  read-write
	        STATUS  current
	        DESCRIPTION
	            " To control the device to start ping or stop ping"
	        ::= { agentPingTest 3 }         
	
		agentPingTestStatus OBJECT-TYPE
	        SYNTAX  INTEGER {
	        				finish(0),
	        				proceeding(1)
	        				}
	        MAX-ACCESS  read-only
	        STATUS  current
	        DESCRIPTION
	            " The state of the ping test, proceeding means the ping test is going on, 
	            and finish means the ping test is finished"
	        ::= { agentPingTest 4 }         
	
		agentPingTestSuccessCount OBJECT-TYPE
	        SYNTAX  INTEGER (0..255)
	        MAX-ACCESS  read-only
	        STATUS  current
	        DESCRIPTION
	            " The success times of the ping test."
	        ::= { agentPingTest 5 }         
	    
	    agentPingTestFailCount OBJECT-TYPE
	        SYNTAX  INTEGER (0..255)
	        MAX-ACCESS  read-only
	        STATUS  current
	        DESCRIPTION
	            " The fail times of the ping test."
	        ::= { agentPingTest 6 }         
        
          swL2DevCtrlVlanIdOfFDBTbl OBJECT-TYPE
              SYNTAX      VlanId
              MAX-ACCESS  read-write
              STATUS      current
              DESCRIPTION
                      "Indicates the VLAN ID which the Dot1dTpFdbTable belongs to ;  
                      The default value is DEFAULT_VLAN_ID of system  ."
              ::= { swL2DevCtrl 17 }            
        
-- ********************************************************************
--  swL2PortMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 6 }
-- ********************************************************************

          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   { swL2PortInfoPortIndex }
              ::= { swL2PortInfoTable 1 }

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

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

          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 2 }

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

          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 4 }

          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 5 }

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

          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  { swL2PortCtrlPortIndex }
              ::= { swL2PortCtrlTable 1 }

          SwL2PortCtrlEntry ::= 
              SEQUENCE {
                  swL2PortCtrlPortIndex
                      INTEGER,
                  swL2PortCtrlAdminState
                      INTEGER,
                  swL2PortCtrlNwayState
                      INTEGER,
                  swL2PortCtrlFlowCtrlState
                      INTEGER,
                  swL2PortCtrlCleanStatCounter
                      INTEGER,
                  swL2PortCtrlDescription 
                  	  DisplayString  
              }

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

          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 2 }

          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 3 }

          swL2PortCtrlFlowCtrlState OBJECT-TYPE
              SYNTAX  INTEGER {
                     other(1),
                     disabled(2),
                     enabled(3)
                     }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "Set flow control function as enabled or disabled."
              ::= { swL2PortCtrlEntry 4 }

          swL2PortCtrlCleanStatCounter OBJECT-TYPE
              SYNTAX  INTEGER {
                     normal(1),
                     active(2)
                     }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "As the object is set to active, the statistic counters of this port will be
                  cleared. If set to normal, do nothing."
              ::= { swL2PortCtrlEntry 5 }
          
          swL2PortCtrlDescription OBJECT-TYPE
              SYNTAX DisplayString (SIZE(0..32))
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "Set port description in displayed string format."
              ::= { swL2PortCtrlEntry 6 }     
	     		 

-- ********************************************************************
--  swL2DiffServMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 7 }
-- ********************************************************************

          swL2DiffServTypeCtrlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SwL2DiffServTypeCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "A table that contains Differentiated Service(DiffServ) type information of each port."
              ::= { swL2DiffServMgmt 1 }

          swL2DiffServTypeCtrlEntry OBJECT-TYPE
              SYNTAX  SwL2DiffServTypeCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "A list of DiffServ type information for each port of the device."
              INDEX  { swL2DiffServTypeCtrlPortIndex }
              ::= { swL2DiffServTypeCtrlTable 1 }

          SwL2DiffServTypeCtrlEntry ::= 
              SEQUENCE {
                  swL2DiffServTypeCtrlPortIndex
                      INTEGER,
                  swL2DiffServTypeCtrlDiffServType
                      INTEGER
              }

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

          swL2DiffServTypeCtrlDiffServType OBJECT-TYPE
              SYNTAX  INTEGER {
                     disabled(1),
                     dscp(2),
                     tos(3)
                     }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "The DiffServ type of this port.
                   disabled(1) --- no DiffServ and TOS field modification ability.
                   dscp(2)     --- indicate the associated port's DSCP control information in
                                   swL2DiffServDSCPCtrlTable will take effect for the replacement of
                                   DSCP(DiffServ codepoint) field.
                   tos(3)      --- indicate the associated port's TOS control information in
                                   swL2DiffServTOSCtrlTable will take effect for the relationship of
                                   replacement between IP TOS precedence and 802.1p tag control
                                   priority field."
              ::= { swL2DiffServTypeCtrlEntry 2 }

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

          swL2DiffServDSCPCtrlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SwL2DiffServDSCPCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "A table that contains DSCP (Differentiated Service Code Point) control
                  information."
              ::= { swL2DiffServMgmt 2 }

          swL2DiffServDSCPCtrlEntry OBJECT-TYPE
              SYNTAX  SwL2DiffServDSCPCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "A list of DSCP control information for each port."
              INDEX  { swL2DiffServDSCPCtrlPortIndex }
              ::= { swL2DiffServDSCPCtrlTable 1 }

          SwL2DiffServDSCPCtrlEntry ::= 
              SEQUENCE {
                  swL2DiffServDSCPCtrlPortIndex
                      INTEGER,
                  swL2DiffServDSCPCtrlMode
                      INTEGER,
                  swL2DiffServDSCPCtrlValue
                      INTEGER
              }

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

          swL2DiffServDSCPCtrlMode OBJECT-TYPE
              SYNTAX  INTEGER {
                     dscp-Force-Overwrite(1),
                     dscp-Change-If-Zero(2)
                     }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "The DSCP mode of this port.
                   dscp-Force-Overwrite(1) --- The DSCP field for the IP packet is replaced by the specific 
                                               value regardless of the DSCP of the incoming packet.
                   dscp-Change-If-Zero(2)  --- The DSCP field for the IP packet is replaced by the specific 
                                               value if the DSCP of the incoming packet is zero."
              ::= { swL2DiffServDSCPCtrlEntry 2 }

          swL2DiffServDSCPCtrlValue OBJECT-TYPE
              SYNTAX  INTEGER (0..63)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "The DSCP value of this port."
              ::= { swL2DiffServDSCPCtrlEntry 3 }

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

          swL2DiffServTOSCtrlTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SwL2DiffServTOSCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "A table that contains TOS (Type Of Service) control
                  information."
              ::= { swL2DiffServMgmt 3 }

          swL2DiffServTOSCtrlEntry OBJECT-TYPE
              SYNTAX  SwL2DiffServTOSCtrlEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "A list of TOS control information for each port."
              INDEX  { swL2DiffServTOSCtrlPortIndex }
              ::= { swL2DiffServTOSCtrlTable 1 }

          SwL2DiffServTOSCtrlEntry ::= 
              SEQUENCE {
                  swL2DiffServTOSCtrlPortIndex
                      INTEGER,
                  swL2DiffServTOSCtrlMode
                      INTEGER,
                  swL2DiffServTOSCtrlValue
                      INTEGER
              }

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

          swL2DiffServTOSCtrlMode OBJECT-TYPE
              SYNTAX  INTEGER {
                     tos-Force-Overwrite(1),
                     tos-TOS-Overwrite-802dot1p(2),
                     tos-802dot1p-Overwrite-TOS(3)
                     }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "The TOS mode of this port.
                   tos-Force-Overwrite(1) --- The IP TOS precedence is changed to the specific value.
                   tos-TOS-Overwrite-802dot1p(2) --- If the incoming packet is IPv4 packet, change the 802.1p
                                                     tag control priority field to the value in IP TOS precedence 
                                                     field.
                   tos-802dot1p-Overwrite-TOS(3) --- If the incoming packet is IPv4 packet, the IP TOS precedence 
                                                     is changed to the value in the 802.1p tag control priority 
                                                     field."
              ::= { swL2DiffServTOSCtrlEntry 2 }

          swL2DiffServTOSCtrlValue OBJECT-TYPE
              SYNTAX  INTEGER (0..7)
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                  "this object is used only if swL2DiffServTOSCtrlMode is tos-Force-Overwrite(1)"
              ::= { swL2DiffServTOSCtrlEntry 3 }


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

    swL2PortMirrorSrcPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF SwL2PortMirrorSrcPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A list of port snooping entries.Port mirroring function provides 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."
        ::= { swL2PortMirrorMgmt 1 }

    swL2PortMirrorSrcPortEntry OBJECT-TYPE
        SYNTAX SwL2PortMirrorSrcPortEntry
        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  { swL2PortMirrorIndex }
        ::= { swL2PortMirrorSrcPortTable 1 }

    SwL2PortMirrorSrcPortEntry ::= 
        SEQUENCE {
            swL2PortMirrorIndex
                Integer32,
            swL2PortMirrorDirection
            	INTEGER
        }

    swL2PortMirrorIndex OBJECT-TYPE
        SYNTAX Integer32
        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. "
        ::= { swL2PortMirrorSrcPortEntry 1}

	swL2PortMirrorDirection OBJECT-TYPE
		SYNTAX INTEGER {
				other(1),
				ingress(2),
				egress(3),
				both(4)
				}
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"This object uses to setup what packets will be mirrored."
		::= { swL2PortMirrorSrcPortEntry 2 }

    swL2PortMirrorTargetPort OBJECT-TYPE
        SYNTAX Integer32
        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. "
        ::= { swL2PortMirrorMgmt 2 }

	swL2PortMirrorState OBJECT-TYPE
        SYNTAX INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This object indicates the mirror status. "
        ::= { swL2PortMirrorMgmt 3 }

END
