-- -----------------------------------------------------------------------------
-- MIB NAME : DGS-3000-28SC L2MGMT mib
-- FILE NAME: L2mgmtDgs3000-28SC.mib
-- DATE     : 2014/10/14
-- VERSION  : 1.03
-- PURPOSE  : To construct the MIB structure of L2MGMT
-- -----------------------------------------------------------------------------
-- MODIFICTION HISTORY:
-- -----------------------------------------------------------------------------
-- Version 1.03 
-- 2014/10/14
-- Request by Wesley Wang for DGS-3000-28SC
-- [Modification]
-- Add swL2IGMPAccessAuthTable to support IGMP authentication for DGS-3000-28SC.
-- -----------------------------------------------------------------------------
-- Version 1.02 
-- 2014/09/29
-- Request by Smile Xu for DGS-3000
-- [Modification]
-- modify the swL2MirrorGroupSourceEngress to swL2MirrorGroupSourceEgress; 
-- modify the description of swL2MirrorLogicTargetPort;
-- modify the syntax value list of swL2MirrorGroupState from 
--   INTEGER{enabled(1),disabled(2)} to 
--   INTEGER{other(1),disabled(2),enabled(3)}.
-- -----------------------------------------------------------------------------
-- Version 1.01 2014/09/02
-- [New Object]
-- Add the object swL2PortLinkTimeTable For DGS-3000.
-- -----------------------------------------------------------------------------
-- Version 1.00, 2014/08/18
-- This is the first version.
-- -----------------------------------------------------------------------------

DGS3000-28SC-L2MGMT-MIB	DEFINITIONS ::= BEGIN

    IMPORTS
        IpAddress , TimeTicks , Integer32, Unsigned32,
        MODULE-IDENTITY , OBJECT-TYPE			FROM SNMPv2-SMI
        DisplayString,RowStatus,TruthValue		FROM SNMPv2-TC
        Counter									FROM RFC1155-SMI
		--PortList								FROM Q-BRIDGE-MIB
		AgentNotifyLevel						FROM DLINK-ID-REC-MIB
        TEXTUAL-CONVENTION                   	FROM SNMPv2-TC
	    dlink-Dgs3000Proj-DGS3000-28SCax     	FROM SWDGS3000PRIMGMT-MIB
		swPortSecPortIndex						FROM PORT-SECURITY-MIB
		dot1agCfmMdIndex, dot1agCfmMaIndex, dot1agCfmMepIdentifier  FROM IEEE8021-CFM-MIB;
	    
	  swL2MgmtMIB MODULE-IDENTITY
	    LAST-UPDATED "201410141006Z"
	    ORGANIZATION "D-Link Corp."
	    CONTACT-INFO
	        "http://support.dlink.com"
	    DESCRIPTION
		    "The Structure of Layer 2 Network Management Information."
        ::= { dlink-Dgs3000Proj-DGS3000-28SCax 2 }
        
	MacAddress ::= OCTET STRING (SIZE (6))    -- a 6 octet address
                                                  -- in the
                                                  -- "canonical"
                                                  -- order, copy from RFC1493        

		VlanId					::= INTEGER (1..4094)
    	PortList                ::= OCTET STRING(SIZE (0..127))    
 
		
    swL2DevMgmt                 OBJECT IDENTIFIER ::= { swL2MgmtMIB 1 }
    swL2VLANMgmt                OBJECT IDENTIFIER ::= { swL2MgmtMIB 2 }    
    swL2PortMgmt                OBJECT IDENTIFIER ::= { swL2MgmtMIB 3 }
    swL2TrunkMgmt               OBJECT IDENTIFIER ::= { swL2MgmtMIB 9 }
    swL2MirrorMgmt              OBJECT IDENTIFIER ::= { swL2MgmtMIB 10 }
    swL2IGMPMgmt                OBJECT IDENTIFIER ::= { swL2MgmtMIB 11 }
    swL2TrafficMgmt             OBJECT IDENTIFIER ::= { swL2MgmtMIB 13 }
    swL2TrafficSegMgmt          OBJECT IDENTIFIER ::= { swL2MgmtMIB 14 }
    swL2MulticastFilterMode	OBJECT IDENTIFIER ::= { swL2MgmtMIB 17 }
    swL2LoopDetectMgmt          OBJECT IDENTIFIER::= { swL2MgmtMIB 18 }
    swL2MgmtMIBTraps            OBJECT IDENTIFIER ::= { swL2MgmtMIB 100 }


-- 
-- ***********************************************************
-- 
-- Textual Conventions
-- 
-- ***********************************************************
     IANAifMauAutoNegCapBits ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
         "This data type is used as the syntax of the
        swL2PortAutoNegCapabilityBits, swL2PortAutoNegCapAdvertisedBits, and
         swL2PortAutoNegCapReceivedBits objects in swL2PortAutoNegTable."
       REFERENCE
         "[IEEE802.3], Section 30.6.1.1.5"
       SYNTAX  BITS{
              bOther(0),          -- other or unknown
              b10baseT(1),        -- 10BASE-T  half duplex mode
              b10baseTFD(2),      -- 10BASE-T  full duplex mode
              b100baseT4(3),      -- 100BASE-T4
              b100baseTX(4),      -- 100BASE-TX half duplex mode
              b100baseTXFD(5),    -- 100BASE-TX full duplex mode
              b100baseT2(6),      -- 100BASE-T2 half duplex mode
              b100baseT2FD(7),    -- 100BASE-T2 full duplex mode
              bFdxPause(8),       -- PAUSE for full-duplex links
              bFdxAPause(9),      -- Asymmetric PAUSE for full-duplex
                                  --     links
              bFdxSPause(10),     -- Symmetric PAUSE for full-duplex
                                  --     links
              bFdxBPause(11),     -- Asymmetric and Symmetric PAUSE for
                                  --     full-duplex links
              b1000baseX(12),     -- 1000BASE-X, -LX, -SX, -CX half
                                  --     duplex mode
              b1000baseXFD(13),   -- 1000BASE-X, -LX, -SX, -CX full
                                  --     duplex mode
              b1000baseT(14),     -- 1000BASE-T half duplex mode
              b1000baseTFD(15)    -- 1000BASE-T full duplex mode
         }


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

    swL2DevInfo             OBJECT IDENTIFIER ::= { swL2DevMgmt 1 }


    swDevInfoTotalNumOfPort OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        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 1 }

    swDevInfoNumOfPortInUse OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The number of ports in this switch connected to the segment or
             the end stations."
        ::= { swL2DevInfo 2 }
        
    swDevModuleInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwDevModuleInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table contains the module information."
        ::= { swL2DevInfo 3 }
        
    swDevModuleInfoEntry OBJECT-TYPE
        SYNTAX  SwDevModuleInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of management information for each unit in the system."
--        INDEX  { swDevModuleInfoUnitID, swDevModuleInfoModuleID }
        INDEX  { swDevModuleInfoUnitID }
        ::= { swDevModuleInfoTable 1}

    SwDevModuleInfoEntry ::= 
        SEQUENCE {
            swDevModuleInfoUnitID
                INTEGER,
--            swDevModuleInfoModuleID
--                INTEGER,
            swDevModuleInfoModuleName
                DisplayString,
	    swDevModuleInfoReversion
                DisplayString,
            swDevModuleInfoSerial
                DisplayString, 
            swDevModuleInfoDescription
                DisplayString
        }
    
    swDevModuleInfoUnitID OBJECT-TYPE
        SYNTAX  INTEGER (1..12)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the specific unit ID in the stacking/chassis 
            table."
        ::= { swDevModuleInfoEntry 1 }

--    swDevModuleInfoModuleID OBJECT-TYPE
--        SYNTAX  INTEGER (1..4)
--        MAX-ACCESS  not-accessible
--        STATUS  current
--        DESCRIPTION
--            "This object indicates the module ID of this unit." 
--        ::= { swDevModuleInfoEntry 2 }    
        
    swDevModuleInfoModuleName OBJECT-TYPE
        SYNTAX      DisplayString (SIZE (0..12))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
               "A text string containing the name of the module. "
        ::= { swDevModuleInfoEntry 3 }

    swDevModuleInfoReversion OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..4))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "A text string containing the version (name or number) of the module." 
        ::= { swDevModuleInfoEntry 4 }
        
    swDevModuleInfoSerial OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..9))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "A text string containing the serial number or serial name of the module." 
        ::= { swDevModuleInfoEntry 5 }
        
    swDevModuleInfoDescription  OBJECT-TYPE
        SYNTAX      DisplayString (SIZE (0..32))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
               "A text string containing a description of the
               module. "
        ::= { swDevModuleInfoEntry 6 }

-- -----------------------------------------------------------------------------
    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 enable or disable the spanning tree algorithm during 
             the 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 if the layer 2 Internet Group Management 
            Protocol (IGMP) capture function is enabled or disabled."
        ::= { swL2DevCtrl 2 }
        
    swL2DevCtrlIGMPSnoopingMcstRTOnly OBJECT-TYPE
    	SYNTAX INTEGER {
    		enabled(1),
    		disabled(2)
    		}
    	MAX-ACCESS read-write
    	STATUS current
    	DESCRIPTION
    		"This object controls the IGMP snooping forward multicast routing only state."
    	::= { swL2DevCtrl 3 }    
        
    swL2DevCtrlRmonState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object can enable or disable RMON."
        ::= { swL2DevCtrl 4 }
        
    swL2DevCtrlSnmpTrapState OBJECT-TYPE
    	SYNTAX	INTEGER {
    		enabled(1),
    		disabled(2)
    		}
    	MAX-ACCESS read-write
    	STATUS	current
    	DESCRIPTION
    		"This object controls the SNMP trap status."
    	::= { swL2DevCtrl 5 }    

    swL2DevCtrlCleanAllStatisticCounter OBJECT-TYPE
        SYNTAX  INTEGER {
               normal(1),
               active(2)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "When the object is set to active, all statistical counters will
             be cleared. If set to normal, no action will occur."
        ::= { swL2DevCtrl 6 }
    
    swL2DevCtrlVlanIdOfFDBTbl OBJECT-TYPE
        SYNTAX      VlanId
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Indicates the VLAN ID to which the Dot1dTpFdbTable belongs;  
             The default value is the DEFAULT_VLAN_ID of the system."
        ::= { swL2DevCtrl 7 }                    

    swL2MACNotifyState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
           "This object can enable or disable MAC Notification."
        ::= { swL2DevCtrl 8 }        

    swL2MACNotifyHistorySize OBJECT-TYPE
	    SYNTAX  INTEGER (1..500)
	    MAX-ACCESS  read-write
	    STATUS  current
	    DESCRIPTION
        "This object indicates the history size of MAC addresses in the MAC Address table. 
	         The default value is 1."
    ::= { swL2DevCtrl 9 }        
        
    swL2MACNotifyInterval OBJECT-TYPE
	    SYNTAX  INTEGER (1..2147483647)
	    MAX-ACCESS  read-write
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the time interval, in seconds, that will trigger 
	         MAC notification messages."
	    ::= { swL2DevCtrl 10 }    
	
	swL2DevCtrlAsymVlanState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object enables or disables asymmetric VLANs 
             during the runtime of the system."
        ::= { swL2DevCtrl 13 }   
    
-- -----------------------------------------------------------------------------
    swL2DevCtrlTelnet   OBJECT IDENTIFIER ::= { swL2DevCtrl 14 }     
        
    swL2DevCtrlTelnetState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object controls the Telnet status."
        ::= { swL2DevCtrlTelnet 1 } 
        
    swL2DevCtrlTelnetTcpPort OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object designates TCP ports.
             When Telnet is disabled, this object is not accessible."
        ::= { swL2DevCtrlTelnet 2 }                
                   
-- -----------------------------------------------------------------------------
    swL2DevCtrlManagementVlanId OBJECT-TYPE
        SYNTAX  VlanId
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object controls which previously created VLANs are included 
             in the System IP Interface."
        ::= { swL2DevCtrl 16 }              

-- -----------------------------------------------------------------------------
    swL2DevCtrlWeb   OBJECT IDENTIFIER ::= { swL2DevCtrl 17 }     
        
    swL2DevCtrlWebState OBJECT-TYPE
        SYNTAX  INTEGER {
 	       enabled(1),
               disabled(2)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object controls the Web status."
        ::= { swL2DevCtrlWeb 1 } 
        
    swL2DevCtrlWebTcpPort OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object designates TCP ports.
             When Web is disabled, this object is not accessible."
        ::= { swL2DevCtrlWeb 2 }
  
     swL2DevCtrlLLDPState OBJECT-TYPE
        SYNTAX  INTEGER {
               enabled(1),
               disabled(2)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Specifies the state of the LLDP function. 
             When this function is enabled, the switch can start to transmit 
             LLDP packets and receive and process the LLDP packets.
	     The specific function of each port will depend on the per port 
	     LLDP setting.
	     For the advertisement of LLDP packets, the switch announces the 
	     information to its neighbor through ports. For receiving
	     LLDP packets, the switch will learn the information from the LLDP 
	     packets advertised from the neighbor in the neighbor table.
	    "
        ::= { swL2DevCtrl 18 }
        
     swL2DevCtrlLLDPForwardMessageState OBJECT-TYPE
        SYNTAX  INTEGER{
                 enabled(1),
                 disabled(2)
                 }
        MAX-ACCESS  read-write
        STATUS   current
        DESCRIPTION
             "When lldp is disabled and lldp forward_message's are enabled, the 
              LLDP Data Unit packets received by the switch will be forwarded. "
        DEFVAL  {disabled}
       ::={swL2DevCtrl 19}   		

     swL2DevCtrlIpAutoconfig OBJECT-TYPE
    	SYNTAX	INTEGER {
    		enabled(1),
    		disabled(2)
    	}
    	MAX-ACCESS read-write
    	STATUS current
    	DESCRIPTION
    		"This object controls the IP auto configuration state."
    	::= { swL2DevCtrl 20 }
    	
-- -----------------------------------------------------------------------------
     swL2DevCtrlCFM   OBJECT IDENTIFIER ::= { swL2DevCtrl 21 }

     swL2DevCtrlCFMState OBJECT-TYPE
        SYNTAX  INTEGER{
                 enabled(1),
                 disabled(2)
                 }
        MAX-ACCESS  read-write
        STATUS   current
        DESCRIPTION
             "This object indicates the CFM global state."
       ::={swL2DevCtrlCFM 1}

    swL2DevCtrlCFMPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwL2DevCtrlCFMPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the CFM state of specified ports."
        ::= { swL2DevCtrlCFM 2 }

    swL2DevCtrlCFMPortEntry OBJECT-TYPE
        SYNTAX      SwL2DevCtrlCFMPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The entry of the CFM state on specified ports."
        INDEX   { swL2DevCtrlCFMPortIndex }
        ::= { swL2DevCtrlCFMPortTable 1 }

    SwL2DevCtrlCFMPortEntry ::=
        SEQUENCE {
            swL2DevCtrlCFMPortIndex
                INTEGER,
            swL2DevCtrlCFMPortState
                INTEGER

        }

    swL2DevCtrlCFMPortIndex OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This object indicates the port number."
        ::= { swL2DevCtrlCFMPortEntry 1 }

    swL2DevCtrlCFMPortState OBJECT-TYPE
        SYNTAX  INTEGER {
                enabled(1),
                disabled(2)
            }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the CFM state by port."
        ::= { swL2DevCtrlCFMPortEntry 2 }

    swL2DevCtrlCFMMaTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwL2DevCtrlCFMMaEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the CFM mode of specified MAs."
        ::= { swL2DevCtrlCFM 3 }

    swL2DevCtrlCFMMaEntry OBJECT-TYPE
        SYNTAX      SwL2DevCtrlCFMMaEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The entry of the CFM mode on specified MAs."
        INDEX   { dot1agCfmMdIndex, dot1agCfmMaIndex }
        ::= { swL2DevCtrlCFMMaTable 1 }

    SwL2DevCtrlCFMMaEntry ::=
        SEQUENCE {
            swL2DevCtrlCFMMaMode
                INTEGER
        }

    swL2DevCtrlCFMMaMode OBJECT-TYPE
        SYNTAX  INTEGER {
                software(1),
                hardware(2)
            }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the CFM mode by MA."
        ::= { swL2DevCtrlCFMMaEntry 1 }

    swL2DevCtrlCFMMepTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwL2DevCtrlCFMMepEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the CFM mode of specified MEPs."
        ::= { swL2DevCtrlCFM 4 }

    swL2DevCtrlCFMMepEntry OBJECT-TYPE
        SYNTAX      SwL2DevCtrlCFMMepEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The entry of the CFM mode on specified MEPs."
        INDEX   { dot1agCfmMdIndex, 
                  dot1agCfmMaIndex, 
                  dot1agCfmMepIdentifier
                }
        ::= { swL2DevCtrlCFMMepTable 1 }

    SwL2DevCtrlCFMMepEntry ::=
        SEQUENCE {
            swL2DevCtrlCFMMepMode
                INTEGER
        }

    swL2DevCtrlCFMMepMode OBJECT-TYPE
        SYNTAX  INTEGER {
                software(1),
                hardware(2)
            }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the CFM mode by MEP."
        ::= { swL2DevCtrlCFMMepEntry 1 }

-- -----------------------------------------------------------------------------            	
      swL2DevCtrlVLANTrunkState  OBJECT-TYPE
        SYNTAX  INTEGER
                {
                  enabled(1),
                  disabled(2)
                }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
               "This indicates the global state of the VLAN trunking feature of the device."
        ::={swL2DevCtrl 22}

-- -----------------------------------------------------------------------------    
    swL2DevCtrlIpAutoconfigTimeout OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
	UNITS	"seconds"
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the timeout for the auto configuration."
	DEFVAL {50}        
	::= { swL2DevCtrl 23 }
        
-- -----------------------------------------------------------------------------    
    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 decides 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 determines whether or not to send a trap message when 
             the switch topology changes. If the object is enabled (3), the Topology Change 
             trap is sent by the device when any of its configured ports transition from 
             the Learning state to the Forwarding state, or from the Forwarding state to 
             the Blocking state. For the same port transition, the device does not send the            
             trap if this object value is disabled or in another state."
        ::= { swL2DevAlarm 2 }
        
    swL2DevAlarmLinkChange OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object determines whether or not to send a trap message when the link              
              changes. If the object is enabled (3), the Link Change trap is sent by 
             the device when any of its port links change. The device does not send the 
             trap if this object value is disabled or in another state."
        ::= { swL2DevAlarm 3 }

-- -----------------------------------------------------------------------------
--  swL2VLANMgmt             OBJECT IDENTIFIER ::= { swL2MgmtMIB 2 }
-- -----------------------------------------------------------------------------
    swL2VlanStaticTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwL2VlanStaticEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing static configuration information for
            each VLAN configured into the device by (local or
            network) management. All entries are permanent and will
            be restored after the device is reset."
        ::= { swL2VLANMgmt 1 }

    swL2VlanStaticEntry OBJECT-TYPE
        SYNTAX      SwL2VlanStaticEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Static information for a VLAN configured into this
            device by (local or network) management."
        INDEX   { swL2VlanIndex }
        ::= { swL2VlanStaticTable 1 }

    SwL2VlanStaticEntry ::=
        SEQUENCE {
            swL2VlanIndex
                VlanId,
            swL2VLANAdvertisement
                INTEGER

        }

    swL2VlanIndex OBJECT-TYPE
        SYNTAX      VlanId
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VLAN-ID or other identifier referring to this VLAN."
        ::= { swL2VlanStaticEntry 1 }

    swL2VLANAdvertisement OBJECT-TYPE
        SYNTAX  INTEGER {
                enabled(1),
                disabled(2)
            }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the advertisement is active or not."
        ::= { swL2VlanStaticEntry 2 }
  
    swL2PVIDAutoAssignmentState OBJECT-TYPE
    	SYNTAX	INTEGER {
    		enabled(1),
    		disabled(2)
    	}
    	MAX-ACCESS read-write
    	STATUS current
    	DESCRIPTION
    		"This object controls the PVID auto assignment state.
    		 If 'Auto-assign PVID' is disabled, the PVID can only be changed 
    		 by PVID configuration (user changes explicitly). The VLAN 
    		 configuration will not automatically change the PVID. 

		 If 'Auto-assign PVID' is enabled, the PVID will be changed by PVID or VLAN configuration. When a user configures 
		 a port to VLAN X's untagged membership, this port's PVID 
		 will be updated with VLAN X. Using the VLAN list command, 
		 PVID is updated as the last item of the VLAN list. When a user removes 
		 a port from the untagged membership of the PVID's VLAN, the 
		 port's PVID will be assigned 'default VLAN'."
    	::= { swL2VLANMgmt 2 }
    
    swL2VlanPortInfoTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwL2VlanPortInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the VLAN and port role information of each port."
        ::= { swL2VLANMgmt 3 }

    swL2VlanPortInfoEntry OBJECT-TYPE
        SYNTAX      SwL2VlanPortInfoEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table entry of VLAN port information."
        INDEX   { swL2VlanPortInfoPortIndex,swL2VlanPortInfoVid }
        ::= { swL2VlanPortInfoTable 1 }

    SwL2VlanPortInfoEntry ::=
        SEQUENCE {
            swL2VlanPortInfoPortIndex
                INTEGER,
            swL2VlanPortInfoVid
                 VlanId,
            swL2VlanPortInfoPortRole
                INTEGER
        }	
    swL2VlanPortInfoPortIndex OBJECT-TYPE
	    SYNTAX  INTEGER (0..65535)
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	        "The port index."
    	::= { swL2VlanPortInfoEntry 1 }
    	        
    swL2VlanPortInfoVid OBJECT-TYPE
	    SYNTAX   VlanId 
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	        "The VLAN ID assigned to a special port"
    	::= { swL2VlanPortInfoEntry 2 }    
    
    swL2VlanPortInfoPortRole OBJECT-TYPE
	    SYNTAX  INTEGER {
	       other(1),          
               untagged(2),            
               tagged(3),
               dynamic(4),                        
               forbidden(5)
              }
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	        "The port role of a special port. When the role is 'other', it means this port does not belong to the VLAN."
    	::= { swL2VlanPortInfoEntry 3 }

    swL2SubnetVLANTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwL2SubnetVLANEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the subnet VLAN information."
        ::= { swL2VLANMgmt 4 }

    swL2SubnetVLANEntry OBJECT-TYPE
        SYNTAX      SwL2SubnetVLANEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The entry of subnet VLAN information."
        INDEX   { swL2SubnetVLANIPAddress,swL2SubnetVLANIPMask }
        ::= { swL2SubnetVLANTable 1 }

    SwL2SubnetVLANEntry ::=
        SEQUENCE {
            swL2SubnetVLANIPAddress
                IpAddress,
            swL2SubnetVLANIPMask
                IpAddress,
            swL2SubnetVLANID
                VlanId,
            swL2SubnetVLANPriority
                INTEGER,
            swL2SubnetVLANRowStatus
                RowStatus
        }
        	
    swL2SubnetVLANIPAddress OBJECT-TYPE
	    SYNTAX  IpAddress
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the IP address."
    	::= { swL2SubnetVLANEntry 1 }
    	
    swL2SubnetVLANIPMask OBJECT-TYPE
	    SYNTAX   IpAddress
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the IP mask."
    	::= { swL2SubnetVLANEntry 2 }

    swL2SubnetVLANID OBJECT-TYPE
	    SYNTAX  VlanId
	    MAX-ACCESS  read-create
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the VLAN ID."
    	::= { swL2SubnetVLANEntry 3 }
    	
    swL2SubnetVLANPriority OBJECT-TYPE
	    SYNTAX   INTEGER (0..7)
	    MAX-ACCESS  read-create
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the priority."
    	::= { swL2SubnetVLANEntry 4 }

    swL2SubnetVLANRowStatus OBJECT-TYPE
	    SYNTAX  RowStatus
	    MAX-ACCESS  read-create
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the status of this entry."
    	::= { swL2SubnetVLANEntry 5 }

    swL2VlanPrecedenceTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwL2VlanPrecedenceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A table containing the VLAN classification precedence information of each port."
        ::= { swL2VLANMgmt 5 }

    swL2VlanPrecedenceEntry OBJECT-TYPE
        SYNTAX      SwL2VlanPrecedenceEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The entry of VLAN classification precedence information."
        INDEX   { swL2VlanPrecedencePortIndex }
        ::= { swL2VlanPrecedenceTable 1 }

    SwL2VlanPrecedenceEntry ::=
        SEQUENCE {
            swL2VlanPrecedencePortIndex
                INTEGER,
            swL2VlanPrecedenceClassification
                INTEGER
        }
        	
    swL2VlanPrecedencePortIndex OBJECT-TYPE
	    SYNTAX  INTEGER (0..65535)
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the port index."
    	::= { swL2VlanPrecedenceEntry 1 }
    	
    swL2VlanPrecedenceClassification OBJECT-TYPE
	    SYNTAX   INTEGER{
	             mac-based(1),
	             subnet-based(2)
	             }
	    MAX-ACCESS  read-write
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the VLAN classification precedence."
    	::= { swL2VlanPrecedenceEntry 2 }
 
	swL2NniGvrpBpduAddress OBJECT-TYPE
	   SYNTAX  INTEGER {
	   		dot1d(1),
	   		dot1ad(2)
	   		}
	   MAX-ACCESS  read-write
	   STATUS  current
	   DESCRIPTION
	"Specifies the GVRP's BPDU MAC address of the NNI port with Q-in-Q status."
	   ::= { swL2VLANMgmt 6 }
                                               	
-- -----------------------------------------------------------------------------
--  swL2PortMgmt            OBJECT IDENTIFIER ::= { swL2MgmtMIB 3 }
-- -----------------------------------------------------------------------------

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

    SwL2PortInfoEntry ::= 
        SEQUENCE {
            swL2PortInfoPortIndex
                INTEGER,
            swL2PortInfoMediumType
                INTEGER,
            swL2PortInfoUnitID
                INTEGER,
            swL2PortInfoType
                INTEGER,
            swL2PortInfoLinkStatus
                INTEGER,
            swL2PortInfoNwayStatus
                INTEGER,
            swL2PortInfoModuleType
                INTEGER,
            swL2PortInfoErrorDisabled
                INTEGER 
        }

    swL2PortInfoPortIndex OBJECT-TYPE
	    SYNTAX  INTEGER (0..65535)
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the module's port number.(1..Max port
	        number in the module)"
    	::= { swL2PortInfoEntry 1 }
    	
    swL2PortInfoMediumType OBJECT-TYPE
        SYNTAX INTEGER{
        	copper(1),
        	fiber(2)        	
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        	"Indicates the medium type of the port number."
        ::={swL2PortInfoEntry 2}

    swL2PortInfoUnitID OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
        	"Indicates the ID of the unit in the system."
        ::= { swL2PortInfoEntry 3 }

    swL2PortInfoType OBJECT-TYPE
        SYNTAX  INTEGER {            
               portType-100Base-TX(1),
               portType-100Base-FX(2),
               portType-100Base-FL(3),              
               portType-1000Base-TX(4),
               portType-1000Base-SX(5),
               portType-1000Base-LX(6),
               portType-1000Base-SX-GBIC(7),
               portType-1000Base-LX-GBIC(8),
               portType-1000Base-TX-GBIC(9),
               portType-1000Base-1394(10),
               portType-1000Base-TX-GBIC-COMBO(11),
               portType-1000Base-none-GBIC(12),
               portType-1000Base-SX-MGBIC(13),
               portType-1000Base-LX-MGBIC(14),
               portType-1000Base-TX-MGBIC(15),
               portType-1000Base-none-MGBIC(16),
               portType-SIO(17),
               portType-10G(18),
               portType-10G-xenpak-1310nm(19),
               portType-10G-xenpak-850nm(20),
               portType-10G-xenpak-empty(21),
               portType-10G-xfp-1310nm(22),
               portType-10G-xfp-850nm(23),
               portType-10G-xfp-empty(24),    
               portType-none(25) 
              }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the connector type of this port."
        ::= { swL2PortInfoEntry 4 }

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

    swL2PortInfoNwayStatus OBJECT-TYPE
        SYNTAX  INTEGER {
               link-down(0),
               full-10Mbps-8023x(1),
               full-10Mbps-none(2),
               half-10Mbps-backp(3),
               half-10Mbps-none(4),
               full-100Mbps-8023x(5),
               full-100Mbps-none(6),
               half-100Mbps-backp(7),
               half-100Mbps-none(8),
               full-1Gigabps-8023x(9),
               full-1Gigabps-none(10),
               half-1Gigabps-backp(11),
               half-1Gigabps-none(12),
               full-10Gigabps-8023x(13),
               full-10Gigabps-none(14),
               half-10Gigabps-8023x(15),
               half-10Gigabps-none(16),
               empty(17),
               err-disabled(18)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the port speed and duplex mode."
        ::= { swL2PortInfoEntry 6 }
        
    swL2PortInfoModuleType OBJECT-TYPE
        SYNTAX  INTEGER {  
             none(0),      
             moduleType-COMBO(1),
           moduleType-1394(2),
           moduleType-1000T(3),
           moduleType-MGBIC(4),
           moduleType-1P-SC-SX(5),
           moduleType-2P-SC-SX(6),
           moduleType-1P-SC-LX(7),
           moduleType-2P-SC-LX(8),
           moduleType-1P-TX(9),
           moduleType-2P-TX(10),
           moduleType-1P-MTRJ-SX(11),
           moduleType-2P-MTRJ-SX(12),
           moduleType-1P-MTRJ-LX(13),
           moduleType-2P-MTRJ-LX(14),
           moduleType-1P-GBIC(15),
           moduleType-2P-GBIC(16),
           moduleType-1P-GBIC-1P-TX(17),
           moduleType-1P-GBIC-1P-STACK(18),
           moduleType-2P-STACK(19),
           moduleType-2P-100FX(20),
           moduleType-1P-100FX(21),
           moduleType-2P-100FX-NEW(22),
           moduleType-1P-100FL(23),
           moduleType-2P-100FL(24),
           moduleType-2P-100TX(25),           
           moduleType-BaseModule-24PORT(26)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the module type of this port."
        ::= { swL2PortInfoEntry 7 }            

    swL2PortInfoErrorDisabled OBJECT-TYPE
        SYNTAX  INTEGER {             
               none(0),
               storm-control(1),
               stp-lbd(2),   
               unknow(3),
               ctp-lbd(4),
               ddm(5),
               bpdu-protection(6),               
               power-saving(7),
               port-security(8),
	           ip-mac-port-binding(9),
               mac-temperature(10),
               oam-unidirectional-link(11)             
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the blocking type of this port."
        ::= { swL2PortInfoEntry 8 }
        
-- -----------------------------------------------------------------------------

    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 on the device."
        INDEX  { swL2PortCtrlPortIndex,swL2PortCtrlMediumType}
        ::= { swL2PortCtrlTable 1 }

    SwL2PortCtrlEntry ::= 
        SEQUENCE {
            swL2PortCtrlPortIndex
                INTEGER,
            swL2PortCtrlMediumType
            	INTEGER,
            swL2PortCtrlUnitIndex
                INTEGER,
            swL2PortCtrlAdminState
                INTEGER,
            swL2PortCtrlNwayState
                INTEGER,
            swL2PortCtrlFlowCtrlState
                INTEGER,
            swL2PortCtrlLearningState
                INTEGER,
            swL2PortCtrlMACNotifyState
                INTEGER,
--            swL2PortCtrlMulticastfilter
--                INTEGER
            swL2PortCtrlMDIXState
                  INTEGER,
           swL2PortCtrlAutoNegRestart               
				  INTEGER,   
           swL2PortCtrlAutoNegCapAdvertisedBits     
				  IANAifMauAutoNegCapBits
        }

    swL2PortCtrlPortIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the module's port number.(1..Max port
            number in the module)"
        ::= { swL2PortCtrlEntry 1 }
        
    swL2PortCtrlMediumType OBJECT-TYPE
        SYNTAX INTEGER{
        	copper(1),
        	fiber(2)        	
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        	"Indicates the medium type of the port number."
        ::={ swL2PortCtrlEntry 2 }
             
    swL2PortCtrlUnitIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Indicates the ID of the unit in the device"
        ::= { swL2PortCtrlEntry 3 }

    swL2PortCtrlAdminState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object decides if the port is 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),
               nway-disabled-1Gigabps-Full-master(9),
               nway-disabled-1Gigabps-Full-slave(10)
               }
        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
            "The flow control mechanism is different between full duplex
            mode and half duplex mode. For half duplex mode, the jamming 
            signal is asserted. For full duplex mode, the IEEE 802.3x flow 
            control function sends PAUSE frames and receives PAUSE frames."
        ::= { swL2PortCtrlEntry 6 }
        
    swL2PortCtrlLearningState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object decides if the port is locked or not."
        ::= { swL2PortCtrlEntry 7 } 
    
    swL2PortCtrlMACNotifyState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object sets each port's MAC notification state."
        ::= { swL2PortCtrlEntry 8 }    

--    swL2PortCtrlMulticastfilter OBJECT-TYPE
--        SYNTAX  INTEGER {
--    		   other(0), 
--               forward-all-groups(1),
--               forward-unregistered-groups(2),
--               filter-unregistered-groups(3)

--              }
--        MAX-ACCESS  read-write
--        STATUS  current
--        DESCRIPTION
--            "This object controls the multicast port filtering mode for a specified port. "   
--          ::= { swL2PortCtrlEntry 9 }

           swL2PortCtrlMDIXState OBJECT-TYPE
                SYNTAX  INTEGER {
                        auto(1),
                        normal(2),
                        cross(3)
                        }
                MAX-ACCESS  read-write
                STATUS  current
                DESCRIPTION
                    "This object configures the MDIX setting of the port."
                ::= { swL2PortCtrlEntry 10 }

      swL2PortCtrlAutoNegRestart OBJECT-TYPE
          SYNTAX      INTEGER {
                          restart(1),
                          norestart(2)
                      }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION 
				"If the value of this object is set to restart(1) then this will force 
				auto-negotiation to begin link renegotiation.  If auto-negotiation
			    signaling is disabled, a write to this object has no effect.
                Setting the value of this object to norestart(2) has no effect."
          REFERENCE   "[IEEE802.3], 30.6.1.2.1,
                      acAutoNegRestartAutoConfig."
          ::= { swL2PortCtrlEntry 11}

     swL2PortCtrlAutoNegCapAdvertisedBits OBJECT-TYPE
          SYNTAX      IANAifMauAutoNegCapBits
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION 
				"A value that uniquely identifies the set of capabilities advertised 
				by the local  auto-negotiation entity.
			
				Capabilities in this object that are not available in 
				swL2PortAutoNegInfoCapabilityBits cannot be enabled.
			
			    Note that the local auto-negotiation entity may advertise some 
				capabilities beyond the scope of this MIB.  This is indicated by 
				returning the bit value bOther in addition to any bit values for 
				standard capabilities that are listed in the 
				IANAifMauAutoNegCapBits TC."
			
          REFERENCE   "[IEEE802.3], 30.6.1.1.6,
                      aAutoNegAdvertisedTechnologyAbility."
          ::= { swL2PortCtrlEntry 12 }

    swL2PortCtrlJumboFrame OBJECT-TYPE
        SYNTAX  INTEGER {
				other(1),
				disabled(2),
				enabled(3)
              }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object configures the switch's jumbo frame settings."   
        ::= { swL2PortMgmt 3 }
          
    swL2PortCtrlJumboFrameMaxSize OBJECT-TYPE
        SYNTAX  INTEGER 
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object describes how many bytes the max jumbo frame is."   
        ::= { swL2PortMgmt 4 }                

    swL2PortCableDiagnosisTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortCableDiagnosisEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains cable diagnostic information about every port."
        ::= { swL2PortMgmt 5 }

    swL2PortCableDiagnosisEntry OBJECT-TYPE
        SYNTAX  SwL2PortCableDiagnosisEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list with cable diagnostic information for each port of the device."
        INDEX   { swL2PortCableDiagnosisPortIndex, swL2PortCableDiagnosisPairIndex }
        ::= { swL2PortCableDiagnosisTable 1 }

    SwL2PortCableDiagnosisEntry ::= 
        SEQUENCE {
            swL2PortCableDiagnosisPortIndex
                INTEGER,
            swL2PortCableDiagnosisPairIndex
                INTEGER,
            swL2PortCableDiagnosisCableStatus
                INTEGER,
            swL2PortCableDiagnosisPairStatus
                INTEGER,
            swL2PortCableDiagnosisPairLength
                INTEGER,
            swL2PortCableDiagnosisPairLengthInaccuracy
            	INTEGER
        }

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

    swL2PortCableDiagnosisPairIndex OBJECT-TYPE
        SYNTAX INTEGER (1..4)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
            "Indicates the pair index of each port.
             Pair 1 means pin 3 and 6 of the connector.
             Pair 2 means pin 1 and 2 of the connector.
             Pair 3 means pin 7 and 8 of the connector.
 
             Pair 4 means pin 4 and 5 of the connector."
    	::= { swL2PortCableDiagnosisEntry 2 }

    swL2PortCableDiagnosisCableStatus OBJECT-TYPE
        SYNTAX  INTEGER {
               ok(0),
               open(1),
               short(2),
               open-short(3),
               not-support(4),
               unknown(5)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the cable status."
    	::= { swL2PortCableDiagnosisEntry 3 }

    swL2PortCableDiagnosisPairStatus OBJECT-TYPE
        SYNTAX  INTEGER {
               ok(0),
               open(1),
               short(2),
               fail(3),
               not-supported(4),
               unknown(5)
               }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the status of the pair."
        ::= { swL2PortCableDiagnosisEntry 4 }
   
    swL2PortCableDiagnosisPairLength OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the approx. length or length to failure of 
            the pair. The unit value is in meters." 
        ::= { swL2PortCableDiagnosisEntry 5 }

    swL2PortCableDiagnosisPairLengthInaccuracy OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the inaccuracy of a pair length. The unit value is in meters."
        ::= { swL2PortCableDiagnosisEntry 6 }        

-- -----------------------------------------------------------------------------
-- swL2PortCounterCtrlTable
-- -----------------------------------------------------------------------------
    swL2PortCounterCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortCounterCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that is used to clear counter information about every port."
        ::= { swL2PortMgmt 6 }
        
    swL2PortCounterCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2PortCounterCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of entries used to clear the counter information for each port of the device."
        INDEX   { swL2PortCounterCtrlPortIndex }
        ::= { swL2PortCounterCtrlTable 1 }

    SwL2PortCounterCtrlEntry ::= 
        SEQUENCE {
            swL2PortCounterCtrlPortIndex
                INTEGER,
            swL2PortCounterClearCtrl
            	INTEGER
        }
        
    swL2PortCounterCtrlPortIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        	"This object indicates the module's port number.(1..Max port
        	number in the module)"
    ::= { swL2PortCounterCtrlEntry 1 }
    
    swL2PortCounterClearCtrl OBJECT-TYPE
        SYNTAX  INTEGER {
        	other(1),
        	start(2)
        	}
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        	"This object indicates whether to clear the counters for each port of the device or not."
    ::= { swL2PortCounterCtrlEntry 2 }
    
-- -----------------------------------------------------------------------------
-- swL2PortErrTable
-- -----------------------------------------------------------------------------
	swL2PortErrTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF SwL2PortErrEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "A table that contains error information for each port."
              ::= { swL2PortMgmt 7 }

        swL2PortErrEntry OBJECT-TYPE
              SYNTAX  SwL2PortErrEntry
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "A list of information regarding port errors on the device."
              INDEX   { swL2PortErrPortIndex }
              ::= { swL2PortErrTable 1 }

        SwL2PortErrEntry ::= 
              SEQUENCE {
                  swL2PortErrPortIndex
                      INTEGER,
                  swL2PortErrPortState
                      INTEGER,
                  swL2PortErrPortConnStatus
                      INTEGER,
                  swL2PortErrPortReason
                      INTEGER
              }

        swL2PortErrPortIndex OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                  "This object indicates the module's port number.(1..Max port number in
                   the module)."
              ::= { swL2PortErrEntry 1 }
       
	swL2PortErrPortState OBJECT-TYPE
              SYNTAX  INTEGER {
                     enabled(1),
                     disabled(2)
                     }
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                  "This object indicates if the port state is enabled or disabled."
              ::= { swL2PortErrEntry 2 }
              
	swL2PortErrPortConnStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                     other(1),
                     err-disabled(2)
                     }
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                  "This object indicates whether the Port Status is err-disabled or not."
              ::= { swL2PortErrEntry 3 }
               
	swL2PortErrPortReason OBJECT-TYPE
              SYNTAX  INTEGER {
                    none(0),                     
					stp-lbd(1),
					storm-control(2),            
                    ctp-lbd(4),
                    ddm(5),
                    bpdu-protection(6),                                       
                    power-saving(7),
					port-security(8),
					ip-mac-port-binding(9),
					mac-temperature(10),
					oam-unidirectional-link(11)
                     }
              MAX-ACCESS  read-only
              STATUS  current
              DESCRIPTION
                  "This object describes the reason for the port error."
              ::= { swL2PortErrEntry 4 }
      
-- -----------------------------------------------------------------------------
-- swL2PortAutoNegInfoTable 
-- -----------------------------------------------------------------------------
    swL2PortAutoNegInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortAutoNegInfoEntry 
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains information about every port's auto negotiation status."
        ::= { swL2PortMgmt 8 }

    swL2PortAutoNegInfoEntry OBJECT-TYPE
        SYNTAX  SwL2PortAutoNegInfoEntry 
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information for each port auto negotiation of the device."
        INDEX   { swL2PortAutoNegInfoPortIndex }
        ::= { swL2PortAutoNegInfoTable 1 }

    SwL2PortAutoNegInfoEntry ::= 
        SEQUENCE {
            swL2PortAutoNegInfoPortIndex 
                INTEGER,
           swL2PortAutoNegInfoAdminStatus           
				INTEGER,
           swL2PortAutoNegInfoCapabilityBits        
				IANAifMauAutoNegCapBits,
           swL2PortAutoNegInfoCapAdvertisedBits     
				IANAifMauAutoNegCapBits,
           swL2PortAutoNegInfoCapReceivedBits       
				IANAifMauAutoNegCapBits
        }

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

    swL2PortAutoNegInfoAdminStatus OBJECT-TYPE
          SYNTAX      INTEGER {
                          enabled(1),
                          disabled(2)
                      }
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION 
			" If the value of this object is disabled(2) then the interface will act as 
			it would if it had no auto-negotiation signaling.
			The status is affect by setting swL2PortCtrlNwayState."		
          REFERENCE   "[IEEE802.3], 30.6.1.1.2, aAutoNegAdminState,
                      and 30.6.1.2.2, acAutoNegAdminControl."
          ::= { swL2PortAutoNegInfoEntry 2 }

      swL2PortAutoNegInfoCapabilityBits OBJECT-TYPE
          SYNTAX      IANAifMauAutoNegCapBits
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION 
			"A value that uniquely identifies the set of capabilities of the local 
			auto-negotiation entity.  Note that interfaces that support this MIB may 
			have capabilities that extend beyond the scope of this MIB.
		
		    Note that the local auto-negotiation entity may support some capabilities 
			beyond the scope of this MIB.  This is indicated by returning the bit value 
			bOther in addition to any bit values for standard capabilities that are listed 
			in the IANAifMauAutoNegCapBits TC."		
          REFERENCE   "[IEEE802.3], 30.6.1.1.5,
                      aAutoNegLocalTechnologyAbility."
          ::= { swL2PortAutoNegInfoEntry 3 }

     swL2PortAutoNegInfoCapAdvertisedBits OBJECT-TYPE
          SYNTAX      IANAifMauAutoNegCapBits
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION 
			"A value that uniquely identifies the set of capabilities advertised by the 
			local auto-negotiation entity.
		
			Capabilities in this object that are not available in 
			swL2PortAutoNegCapabilityBits cannot be enabled.
		
		    Note that the local auto-negotiation entity may advertise some capabilities 
			beyond the scope of this MIB.  This is indicated by returning the bit value 
			bOther in addition to any bit values for standard capabilities that are listed 
			in the IANAifMauAutoNegCapBits TC."		
          REFERENCE   "[IEEE802.3], 30.6.1.1.6,
                      aAutoNegAdvertisedTechnologyAbility."
          ::= { swL2PortAutoNegInfoEntry 4 }

    swL2PortAutoNegInfoCapReceivedBits OBJECT-TYPE
          SYNTAX      IANAifMauAutoNegCapBits
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION 
			"A value that uniquely identifies the set of capabilities received from the 
			remote auto-negotiation entity.
						
		    Note that interfaces that support this MIB may be attached to remote 
			auto-negotiation entities that have capabilities beyond the scope of this
		 	MIB.  This is indicated by returning the bit value bOther in addition to 
			any bit values for standard capabilities that are listed in the
			 IANAifMauAutoNegCapBits TC."		
          REFERENCE   "[IEEE802.3], 30.6.1.1.7,
                      aAutoNegReceivedTechnologyAbility."
          ::= { swL2PortAutoNegInfoEntry 5 }

-- -----------------------------------------------------------------------------
-- swL2PortDropCounterTable
-- -----------------------------------------------------------------------------
    swL2PortDropCounterTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortDropCounterEntry 
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains received error statistic information for each port."
        ::= { swL2PortMgmt 9 }

    swL2PortDropCounterEntry OBJECT-TYPE
        SYNTAX  SwL2PortDropCounterEntry 
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information for each port received drop counter."
        INDEX   { swL2PortDropCounterPortIndex }
        ::= { swL2PortDropCounterTable 1 }

    SwL2PortDropCounterEntry ::= 
        SEQUENCE {
            swL2PortDropCounterPortIndex 
                INTEGER,
           swL2PortBufferFullDrops 
	Counter,
           swL2PortACLDrops
	Counter,
           swL2PortMulticastDrops
	Counter,
           swL2PortVLANIngressDrops
	Counter,   
           swL2PortIngressBandwidthControlDrops
	Counter,   
           swL2PortInvalidIPv6Drops
	Counter,   
           swL2PortSTPDrops
	Counter,   
           swL2PortStormAndFDBDiscard
	Counter,   
           swL2PortMTUDrops
	Counter,
           swL2PortInvalidDestinationPort
	Counter   
	    }

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

    swL2PortBufferFullDrops OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of packets discarded while input buffer full."
    	::= { swL2PortDropCounterEntry 2 }

    swL2PortACLDrops OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of received packets denied by ACLs."
    	::= { swL2PortDropCounterEntry 3 }

    swL2PortMulticastDrops OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of received multicast packet that is discarded."
    	::= { swL2PortDropCounterEntry 4 }

    swL2PortVLANIngressDrops OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of packets discarded by VLAN ingress checking."
    	::= { swL2PortDropCounterEntry 5 } 
    	
    swL2PortIngressBandwidthControlDrops OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of packets discarded by port ingress bandwidth control."
    	::= { swL2PortDropCounterEntry 6 }

    swL2PortInvalidIPv6Drops OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of packets discarded by IPv6 L3"
    	::= { swL2PortDropCounterEntry 7 }


    swL2PortSTPDrops OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of packets discarded when ingress 
	            port is not in forwarding state."
    	::= { swL2PortDropCounterEntry 8 }


    swL2PortStormAndFDBDiscard OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of packets discarded by receiving policy
                     (i.e. DST_DISCARD, SRC_DISCARD,RATE_CONTROL, etc.)"
    	::= { swL2PortDropCounterEntry 9 }


    swL2PortMTUDrops OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of packets discarded by frames received, which 
                    exceeds Maximum Frame in length and contains a valid or invalid FCS."
    	::= { swL2PortDropCounterEntry 10 }


    swL2PortInvalidDestinationPort OBJECT-TYPE
	    SYNTAX  Counter
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The total number of packets dropped due to port bitmap of zero condition."
    	::= { swL2PortDropCounterEntry 11 }
-- -----------------------------------------------------------------------------
-- swL2PortJumboFrameCtrlTable
-- -----------------------------------------------------------------------------
        swL2PortJumboFrameCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortJumboFrameCtrlEntry 
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains information for each port's jumbo frame information."
        ::= { swL2PortMgmt 10 }

    swL2PortJumboFrameCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2PortJumboFrameCtrlEntry 
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information for each port's jumbo frame of the device."
        INDEX   { swL2PortJumboFrameCtrlPortIndex }
        ::= { swL2PortJumboFrameCtrlTable 1 }

    SwL2PortJumboFrameCtrlEntry ::= 
        SEQUENCE {
            swL2PortJumboFrameCtrlPortIndex 
                INTEGER,
            swL2PortJumboFrameCtrlState 
	        INTEGER   
        }
        
    swL2PortJumboFrameCtrlPortIndex OBJECT-TYPE
              SYNTAX  INTEGER
              MAX-ACCESS  not-accessible
              STATUS  current
              DESCRIPTION
                  "This object indicates the module's port number."
              ::= { swL2PortJumboFrameCtrlEntry 1 }
              
    swL2PortJumboFrameCtrlState OBJECT-TYPE
              SYNTAX  INTEGER {
                              enabled(1),
                              disabled(2)
                              }
              MAX-ACCESS  read-write
              STATUS  current
              DESCRIPTION
                   "This object indicates the jumbo frame state on a specified port."
              ::= { swL2PortJumboFrameCtrlEntry 2 }
-- -----------------------------------------------------------------------------
-- swL2PortSfpInformationTable
-- -----------------------------------------------------------------------------
    swL2PortSfpInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortSfpInfoEntry 
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains information for each sfp pluged in port."
        ::= { swL2PortMgmt 11 }

    swL2PortSfpInfoEntry OBJECT-TYPE
        SYNTAX  SwL2PortSfpInfoEntry 
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information for each sfp pluged in port."
        INDEX   { swL2PortSfpInfoPortIndex }
        ::= { swL2PortSfpInfoTable 1 }

    SwL2PortSfpInfoEntry ::= 
        SEQUENCE {
            swL2PortSfpInfoPortIndex 
                INTEGER,
           swL2PortSfpInfoConnectType
           	DisplayString,
           swL2PortSfpInfoVendorName 
	        DisplayString,
           swL2PortSfpInfoVendorPN
		DisplayString,
           swL2PortSfpInfoVendorSN
		DisplayString,
           swL2PortSfpInfoVendorOUI
           	DisplayString,
           swL2PortSfpInfoVendorRev
           	DisplayString,
           swL2PortSfpInfoDateCode
           	DisplayString,
           swL2PortSfpInfoFiberType
           	DisplayString,
           swL2PortSfpInfoBaudRate
           	INTEGER,
           swL2PortSfpInfoWavelength
           	INTEGER
        }

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

    swL2PortSfpInfoConnectType OBJECT-TYPE
	    SYNTAX  DisplayString(SIZE (1..10))
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The ConnectType of sfp informaiton."
    	::= { swL2PortSfpInfoEntry 2 }
    swL2PortSfpInfoVendorName OBJECT-TYPE
	    SYNTAX  DisplayString(SIZE (1..16))
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The vendor name of sfp informaiton."
    	::= { swL2PortSfpInfoEntry 3 }

    swL2PortSfpInfoVendorPN OBJECT-TYPE
	    SYNTAX  DisplayString(SIZE (1..16))
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The vendor PN of sfp informaiton."
    	::= { swL2PortSfpInfoEntry 4 }

    swL2PortSfpInfoVendorSN OBJECT-TYPE
	    SYNTAX  DisplayString(SIZE (1..16))
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The vendor SN of sfp informaiton."
    	::= { swL2PortSfpInfoEntry 5 }

    swL2PortSfpInfoVendorOUI OBJECT-TYPE
	    SYNTAX  DisplayString(SIZE (1..6))
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The vendor OUI of sfp information."
    	::= { swL2PortSfpInfoEntry 6 }
   swL2PortSfpInfoVendorRev OBJECT-TYPE
	    SYNTAX  DisplayString(SIZE (1..4))
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The vendor Rev of sfp information."
    	::= { swL2PortSfpInfoEntry 7 }
   swL2PortSfpInfoDateCode OBJECT-TYPE
	    SYNTAX  DisplayString(SIZE (1..8))
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The date code of sfp information."
    	::= { swL2PortSfpInfoEntry 8 }
   swL2PortSfpInfoFiberType OBJECT-TYPE
	    SYNTAX  DisplayString(SIZE (1..25))
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The fiber type of sfp information."
    	::= { swL2PortSfpInfoEntry 9 }
   swL2PortSfpInfoBaudRate OBJECT-TYPE
	    SYNTAX  INTEGER (0..65535)
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The baud rate  of sfp information."
    	::= { swL2PortSfpInfoEntry 10 }
   swL2PortSfpInfoWavelength OBJECT-TYPE
	    SYNTAX  INTEGER (0..65535)
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	            "The wavelength of sfp information."
    	::= { swL2PortSfpInfoEntry 11 }

-- -----------------------------------------------------------------------------
-- swL2PortLinkTimeTable
-- -----------------------------------------------------------------------------
 swL2PortLinkTimeTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2PortLinkTimeEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table of information for the link time of the
                port."
        ::= { swL2PortMgmt 14 }

    swL2PortLinkTimeEntry OBJECT-TYPE
        SYNTAX  SwL2PortLinkTimeEntry 
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "An entry in swL2PortLinkTimeTable contains the link time of the
                port."
        INDEX   { swL2PortLinkTimeIfIndex }
        ::= { swL2PortLinkTimeTable 1 }

    SwL2PortLinkTimeEntry ::= SEQUENCE {
        swL2PortLinkTimeIfIndex     	INTEGER,
        swL2PortLinkTimer	 	TimeTicks
    }
    
    swL2PortLinkTimeIfIndex OBJECT-TYPE
	    SYNTAX  INTEGER (0..65535)
	    MAX-ACCESS  read-only
	    STATUS  current
	    DESCRIPTION
	        "This object indicates the module's port number.(1..Max port
	        number in the module)"
    	::= { swL2PortLinkTimeEntry 1 }
    	
    swL2PortLinkTimer OBJECT-TYPE
        SYNTAX          TimeTicks
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The link timer of the port after the port is link up
             When the value is 0 means the port is link down."
        ::= { swL2PortLinkTimeEntry 2 }
    		
-- -----------------------------------------------------------------------------
--  swL2TrunkMgmt           OBJECT IDENTIFIER ::= { swL2MgmtMIB 9 }
-- -----------------------------------------------------------------------------

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

    swL2TrunkCurrentNumEntries OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Current active 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 specifies information about the logical port trunk groups."
        ::= { swL2TrunkMgmt 3 }

    swL2TrunkCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2TrunkCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information about each logical port trunk group." 
        INDEX  { swL2TrunkIndex }
        ::= { swL2TrunkCtrlTable 1 }

    SwL2TrunkCtrlEntry ::= 
        SEQUENCE {
            swL2TrunkIndex
                INTEGER,
            swL2TrunkName
                DisplayString,
            swL2TrunkMasterPort
                INTEGER,
            swL2TrunkMember
                PortList,
            swL2TrunkFloodingPort
                INTEGER,
            swL2TrunkType
                INTEGER,        
            swL2TrunkState
                RowStatus
        }

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

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


    swL2TrunkMasterPort OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the master port number of the port trunk
            entry. When using Port Trunking, you cannot configure the other 
            ports of the group except the master port.
            Their configuration must be the same as the master port (e.g. speed,
            duplex, enabled/disabled, flow control, and so on)." 
        ::= { swL2TrunkCtrlEntry 3 }

    swL2TrunkMember OBJECT-TYPE
        SYNTAX  PortList
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "Indicates the number of ports included in this Trunk group.
	     The trunk port number depends on the existence of the module.
             The maximum number of ports is 8 for one trunk group."
        ::= { swL2TrunkCtrlEntry 4 }

    swL2TrunkFloodingPort OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The object indicates the flooding port number of the port trunk
            entry. The first port of the Trunk group is implicitly configured to 
            be the flooding port." 
        ::= { swL2TrunkCtrlEntry 5 }
    
    swL2TrunkType OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                static(2),
                lacp(3)
          	  }
       	MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the type of trunk group.
            static: is a static trunk group
            lacp: is a LACP trunk group. "   			
        ::= { swL2TrunkCtrlEntry 6 }          
    
    swL2TrunkState OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
             "This object indicates the status of this entry."
        ::= { swL2TrunkCtrlEntry 7 }
        
    swL2TrunkAlgorithm OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                mac-source(2),
                mac-destination(3),
                mac-source-dest(4),
                ip-source(5),
                ip-destination(6),
                ip-source-dest(7),
                l4-source-port(8),
                l4-destination-port(9),
                l4-source-dest-port(10)
            }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object configures part of the packet examined by the 
            switch when selecting the egress port for transmitting 
            load-sharing data."
        ::= { swL2TrunkMgmt 4 }    	    

    swL2TrunkLACPPortTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2TrunkLACPPortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table specifies which ports are grouped together (this can be up to 8 ports)
            into a single logical link."
        ::= { swL2TrunkMgmt 5 }
        
    swL2TrunkLACPPortEntry   OBJECT-TYPE
        SYNTAX  SwL2TrunkLACPPortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information specifying which ports are grouped together (this can be up to 8 ports)
            into a single logical link."
        INDEX  { swL2TrunkLACPPortIndex }
        ::= { swL2TrunkLACPPortTable 1 }

    SwL2TrunkLACPPortEntry ::= 
        SEQUENCE {
            swL2TrunkLACPPortIndex
                INTEGER,
            swL2TrunkLACPPortState
                INTEGER
        }

    swL2TrunkLACPPortIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current 
        DESCRIPTION
            "The index of logical port LACP. "
        ::= { swL2TrunkLACPPortEntry 1 }

    swL2TrunkLACPPortState OBJECT-TYPE
        SYNTAX  INTEGER{
                  active(1),
                  passive(2)
                  }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The state of a logical port LACP."       
        ::= { swL2TrunkLACPPortEntry 2 }

    swL2TrunkVLANTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2TrunkVLANEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table is used to manage the VLAN trunking feature of the device."
        ::= { swL2TrunkMgmt 6 }

    swL2TrunkVLANEntry   OBJECT-TYPE
        SYNTAX  SwL2TrunkVLANEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This object is used to configure the VLAN trunking settings for each port."
        INDEX  { swL2TrunkVLANPort }
        ::= { swL2TrunkVLANTable 1 }

     SwL2TrunkVLANEntry ::=
        SEQUENCE {
            swL2TrunkVLANPort
                INTEGER,
            swL2TrunkVLANState
                INTEGER
        }

    swL2TrunkVLANPort OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the port being configured."
        ::= { swL2TrunkVLANEntry 1 }

    swL2TrunkVLANState OBJECT-TYPE
        SYNTAX  INTEGER{
                  enabled(1),
                  disabled(2)
                  }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The state of the logical port LACP."
        ::= { swL2TrunkVLANEntry 2 }
        
-- -----------------------------------------------------------------------------
--  swPortMirrorPackage   	           OBJECT IDENTIFIER ::= { swL2MgmtMIB 10 }           
-- -----------------------------------------------------------------------------
	
	swL2MirrorLogicTargetPort OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates which switch port will sniff another 
	     port. The port number is the sequential (logical) 
 	     number, which is also applied to the bridge MIB, etc."
        ::= { swL2MirrorMgmt 1 }

    swL2MirrorPortSourceIngress OBJECT-TYPE
        SYNTAX  PortList
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This represents the port where ingress packets will be sniffed."
        ::= { swL2MirrorMgmt 2 }
        
    swL2MirrorPortSourceEgress OBJECT-TYPE
        SYNTAX  PortList
        MAX-ACCESS  read-write 
        STATUS  current
        DESCRIPTION
            "This represents the port where egress packets will be sniffed."
        ::= { swL2MirrorMgmt 3 }

    swL2MirrorPortState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(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) - After writing this value to the object, the
		corresponding entry will be removed from the table.
            enabled (3) - This entry resides in the table."
        ::= { swL2MirrorMgmt 4 }
        	
    swL2MirrorGroupTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2MirrorGroupEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table specifies information about the mirror group configuration."
        ::= { swL2MirrorMgmt 5 }

    swL2MirrorGroupEntry OBJECT-TYPE
        SYNTAX  SwL2MirrorGroupEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information about each mirror group configuration."
        INDEX  { swL2MirrorGroupID }
        ::= { swL2MirrorGroupTable 1 }

    SwL2MirrorGroupEntry ::=
        SEQUENCE {
            swL2MirrorGroupID
                INTEGER,
            swL2MirrorGroupRowStatus
                RowStatus,
            swL2MirrorGroupState
                INTEGER,
            swL2MirrorGroupTargetPort
                INTEGER,
            swL2MirrorGroupSourceIngress
                PortList,
            swL2MirrorGroupSourceEgress
                PortList
        }

    swL2MirrorGroupID OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This object indicates the mirror group.
             The range of this object is (1..N),
	     the value of N is project dependent."
        ::= { swL2MirrorGroupEntry 1 }
        
    swL2MirrorGroupRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This object indicates the status of this entry."
        ::= { swL2MirrorGroupEntry 2 }
        
    swL2MirrorGroupState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the mirror group state."
        ::= { swL2MirrorGroupEntry 3 }
        
    swL2MirrorGroupTargetPort OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the mirror group target port."
        ::= { swL2MirrorGroupEntry 4 }

    swL2MirrorGroupSourceIngress OBJECT-TYPE
        SYNTAX  PortList
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the mirror group ingress source ports."
        ::= { swL2MirrorGroupEntry 5 }
        
    swL2MirrorGroupSourceEgress OBJECT-TYPE
        SYNTAX  PortList
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the mirror group egress source ports."
        ::= { swL2MirrorGroupEntry 6 }

-- -----------------------------------------------------------------------------
--  swL2IGMPMgmt            OBJECT IDENTIFIER ::= { swL2IGMPMgmt 13 }
-- -----------------------------------------------------------------------------
swL2IGMPAccessAuthTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2IGMPAccessAuthEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table is used to manage the IGMP Access Authentication
            configurations of the device."
        ::= { swL2IGMPMgmt 13 }

    swL2IGMPAccessAuthEntry OBJECT-TYPE
        SYNTAX  SwL2IGMPAccessAuthEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of manageable entities for IGMP Access Authentication.
            The configuration is done per port."
        INDEX  { swL2IGMPAccessAuthPort }
        ::= { swL2IGMPAccessAuthTable 1 }

    SwL2IGMPAccessAuthEntry ::=
        SEQUENCE {
        	swL2IGMPAccessAuthPort
        		INTEGER,
        	swL2IGMPAccessAuthState
        		INTEGER
        }

   swL2IGMPAccessAuthPort OBJECT-TYPE
      SYNTAX INTEGER
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The index of the swL2IGMPAccessAuthTable.
           This object corresponds to the port being configured."
       ::= { swL2IGMPAccessAuthEntry 1 }

   swL2IGMPAccessAuthState OBJECT-TYPE
      SYNTAX INTEGER {
				enabled(1),
				disabled(2),
				auth_only(3),
				accounting_only(4)
		}
       MAX-ACCESS read-write
       STATUS current
       DESCRIPTION
           "This object denotes the status of IGMP Access Authentication of the port.
            
            Note:
            enabled(1): Both the authentication and accounting functions are enabled, 
            after the client is authenticated, the accounting message will be sent 
            to Radius.
            
            disabled(2): Both the authentication and accounting functions are disabled.
            
            auth_only(3): Only the authentication function is enabled, after the client 
            is authenticated, accounting message will not be sent to Radius.
            
            accounting_only(4): Only the accounting function is enabled, authentication 
            is not needed, if the client joins a group, the accounting message will be 
            sent to Radius.
           "
       ::= { swL2IGMPAccessAuthEntry 2 }
-- -----------------------------------------------------------------------------
--  swL2TrafficMgmt           OBJECT IDENTIFIER ::= { swL2MgmtMIB 12 }
-- -----------------------------------------------------------------------------

    swL2TrafficCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2TrafficCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table specifies the storm traffic control configuration."
        ::= { swL2TrafficMgmt 1 }

    swL2TrafficCtrlEntry OBJECT-TYPE
        SYNTAX  SwL2TrafficCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information specific to the storm traffic control 
            configuration."
        INDEX  { swL2TrafficCtrlGroupIndex }
        ::= { swL2TrafficCtrlTable 1 }

    SwL2TrafficCtrlEntry ::= 
        SEQUENCE {
            swL2TrafficCtrlGroupIndex
                INTEGER,
            swL2TrafficCtrlUnitIndex
                INTEGER,
            swL2TrafficCtrlBMStromthreshold
                INTEGER,
            swL2TrafficCtrlBcastStromCtrl
                INTEGER,
            swL2TrafficCtrlMcastStromCtrl
                INTEGER,
            swL2TrafficCtrlDlfStromCtrl
                INTEGER
        }

    swL2TrafficCtrlGroupIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The index of the logical port trunk. The trunk group number depends
            on the existence of a unit and module."
        ::= { swL2TrafficCtrlEntry 1 }
        
    swL2TrafficCtrlUnitIndex OBJECT-TYPE
        SYNTAX INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
            "Indicates the ID of the unit in the device"
        ::= { swL2TrafficCtrlEntry 2 }

    swL2TrafficCtrlBMStromthreshold OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object decides how many thousand broadcast/multicast packets 
            per second (depending on swL2TrafficCtrlBcastStromCtrl, swL2TrafficCtrlMcastStromCtrl 
            or swL2TrafficCtrlDlfStromCtrl objects being enabled) will activate 
            the storm control function. Whenever a port reaches its configured 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 restart forwarding that type of packet."
        ::= { swL2TrafficCtrlEntry 3 }


    swL2TrafficCtrlBcastStromCtrl OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
       MAX-ACCESS  read-write
       STATUS  current
       DESCRIPTION
           "This object indicates if the broadcast storm control function is 
           enabled or disabled." 
        ::= { swL2TrafficCtrlEntry 4 }

    swL2TrafficCtrlMcastStromCtrl OBJECT-TYPE 
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
       MAX-ACCESS  read-write
       STATUS  current
       DESCRIPTION
           "This object indicates if the multicast storm control function is 
           enabled or disabled."
        ::= { swL2TrafficCtrlEntry 5 }

    swL2TrafficCtrlDlfStromCtrl OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
       MAX-ACCESS  read-write
       STATUS  current
       DESCRIPTION
           "This object indicates if the destination lookup fail function is 
           enabled or disabled." 
        ::= { swL2TrafficCtrlEntry 6 }


-- -----------------------------------------------------------------------------
--  swL2TrafficSegMgmt           OBJECT IDENTIFIER ::= { swL2MgmtMIB 14 }
-- -----------------------------------------------------------------------------
	 swL2TrafficSegTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL2TrafficSegEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table specifies that the port can just forward traffic to the 
            specific port list."
        ::= { swL2TrafficSegMgmt 1 }

    swL2TrafficSegEntry OBJECT-TYPE
        SYNTAX  SwL2TrafficSegEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information which specifies the port with its traffic 
            forwarding list."
        INDEX  { swL2TrafficSegPort }
        ::= { swL2TrafficSegTable 1 }

    SwL2TrafficSegEntry ::= 
        SEQUENCE {
            swL2TrafficSegPort
                INTEGER,
            swL2TrafficSegForwardPorts
                PortList
        }

    swL2TrafficSegPort OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The port number of the logical port."
        ::= { swL2TrafficSegEntry 1 }
        
    swL2TrafficSegForwardPorts OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS  read-write
        STATUS current
        DESCRIPTION
            "The port list where a specific port can forward traffic."
        ::= { swL2TrafficSegEntry 2 }
   
-- ----------------------------------------------------------------------------
--  swL2MulticastFilterMode	OBJECT IDENTIFIER ::= { swL2MgmtMIB 17 }
-- ----------------------------------------------------------------------------
     swL2MulticastFilterModeVlanTable OBJECT-TYPE
     	SYNTAX SEQUENCE OF SwL2MulticastFilterModeVlanEntry
     	MAX-ACCESS not-accessible
     	STATUS current
     	DESCRIPTION
		" A table that contains information about the VLAN multicast filter mode."
	::={swL2MulticastFilterMode 1}
     
     swL2MulticastFilterModeVlanEntry OBJECT-TYPE
     	SYNTAX SwL2MulticastFilterModeVlanEntry
     	MAX-ACCESS not-accessible
     	STATUS current
     	DESCRIPTION
     		"A list of multicast filter mode information for each VLAN. "
     	INDEX {swL2MulticastFilterVid}
     	::={swL2MulticastFilterModeVlanTable 1}
     
     SwL2MulticastFilterModeVlanEntry ::=
     	SEQUENCE{
     	swL2MulticastFilterVid
     		INTEGER,
     	swL2MulticastFilterVlanMode
     		INTEGER
     	}
 
     swL2MulticastFilterVid OBJECT-TYPE
    	SYNTAX INTEGER(1..65535)
    	MAX-ACCESS read-only
    	STATUS current
    	DESCRIPTION
    		"Indicates the VID for each VLAN."
	::={swL2MulticastFilterModeVlanEntry 1}
	
    swL2MulticastFilterVlanMode OBJECT-TYPE
    	SYNTAX INTEGER{
    	forward-all-groups(1),
    	forward-unregistered-groups(2),
    	filter-unregistered-groups(3)
    	} 
    	MAX-ACCESS read-write
    	STATUS current
    	DESCRIPTION
    		"Specifies the multicast filter mode for each VLAN."
    	::={swL2MulticastFilterModeVlanEntry 2}
    
-- ----------------------------------------------------------------------------    	
    	swL2MulticastFilterModePortTable OBJECT-TYPE
     	SYNTAX SEQUENCE OF SwL2MulticastFilterModePortEntry
     	MAX-ACCESS not-accessible
     	STATUS current
     	DESCRIPTION
		" A table that contains information about the port multicast filter mode."
     ::={swL2MulticastFilterMode 2}
     
     swL2MulticastFilterModePortEntry OBJECT-TYPE
     	SYNTAX SwL2MulticastFilterModePortEntry
     	MAX-ACCESS not-accessible
     	STATUS current
     	DESCRIPTION
     		"A list of multicast filter mode information for each port. "
	INDEX {swL2MulticastFilterPortIndex}
     	::={swL2MulticastFilterModePortTable 1}
     
     SwL2MulticastFilterModePortEntry ::=
     	SEQUENCE{
	swL2MulticastFilterPortIndex
     		INTEGER,
     	swL2MulticastFilterPortMode
     		INTEGER
     	}
 
     swL2MulticastFilterPortIndex OBJECT-TYPE
    	SYNTAX INTEGER(1..65535)
    	MAX-ACCESS read-only
    	STATUS current
    	DESCRIPTION
		"Specifies the port number."
	::={swL2MulticastFilterModePortEntry 1}
	
     swL2MulticastFilterPortMode OBJECT-TYPE
    	SYNTAX INTEGER{
    		forward-all-groups(1),
    		forward-unregistered-groups(2),
    		filter-unregistered-groups(3)
    	} 
    	MAX-ACCESS read-write
    	STATUS current
    	DESCRIPTION
		"Specifies multicast filter mode for each port."
    	::={swL2MulticastFilterModePortEntry 2} 	
    -- ----------------------------------------------------------------------------
--  swL2LoopDetectMgmt           OBJECT IDENTIFIER ::= { swL2MgmtMIB 18 }
-- ----------------------------------------------------------------------------

    swL2LoopDetectCtrl           OBJECT IDENTIFIER ::= { swL2LoopDetectMgmt 1 }

    swL2LoopDetectAdminState OBJECT-TYPE
        SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the loopback detection status for the system."
        ::= { swL2LoopDetectCtrl 1 }

    swL2LoopDetectInterval OBJECT-TYPE
        SYNTAX      INTEGER (1..32767)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the interval value, the range is from 1 to 32767 seconds."
        ::= { swL2LoopDetectCtrl 2 }

    swL2LoopDetectRecoverTime OBJECT-TYPE
        SYNTAX      INTEGER (0..1000000)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the recover time, the range is from 60 to 1000000.
             The value of 0 disables the recover function."
        ::= { swL2LoopDetectCtrl 3 }

    swL2LoopDetectMode OBJECT-TYPE
        SYNTAX      INTEGER {
                       vlan-based(1),
                       port-based(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the loopback detection mode for the system."
        ::= { swL2LoopDetectCtrl 4 }
        
    swL2LoopDetectTrapMode OBJECT-TYPE
        SYNTAX      INTEGER {
                       none(1),
                       loop_detected(2),
                       loop_cleared(3),
                       both(4)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the loopback detection trap mode for the system."
        ::= { swL2LoopDetectCtrl 5 }

-- ----------------------------------------------------------------------------
    swL2LoopDetectPortMgmt       OBJECT IDENTIFIER ::= { swL2LoopDetectMgmt 2 }

    swL2LoopDetectPortTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF SwL2LoopDetectPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table specifies the loopback detection function specified by port."
        ::= { swL2LoopDetectPortMgmt 1 }

    swL2LoopDetectPortEntry OBJECT-TYPE
        SYNTAX      SwL2LoopDetectPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table specifies the loopback detection function specified by port."
        INDEX  { swL2LoopDetectPortIndex }
        ::= { swL2LoopDetectPortTable 1 }

    SwL2LoopDetectPortEntry ::=
        SEQUENCE {
            swL2LoopDetectPortIndex
                INTEGER,
            swL2LoopDetectPortState
                INTEGER,
            swL2LoopDetectPortLoopVLAN
                DisplayString,
            swL2LoopDetectPortLoopStatus
                INTEGER
        }

    swL2LoopDetectPortIndex OBJECT-TYPE
        SYNTAX      INTEGER (1..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object indicates the module's port number. The range is from 1 to
             the maximum port number specified in the module"
        ::= { swL2LoopDetectPortEntry 1 }

    swL2LoopDetectPortState OBJECT-TYPE
        SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2)
                    }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "This object indicates the loopback detection function state on the port."
        ::= { swL2LoopDetectPortEntry 2 }

    swL2LoopDetectPortLoopVLAN OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object indicates the VLAN list that has detected a loopback."
        ::= { swL2LoopDetectPortEntry 3 }

    swL2LoopDetectPortLoopStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                       normal(1),
                       loop(2),
                       error(3),
                       none(4)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object indicates the port status."
        ::= { swL2LoopDetectPortEntry 4 }

-- -----------------------------------------------------------------------------
--  Layer 2  Trap
-- -----------------------------------------------------------------------------
     
        
	swL2Notify	OBJECT IDENTIFIER ::= { swL2MgmtMIBTraps 1 }  
	  
	swL2NotifyMgmt		OBJECT IDENTIFIER ::= { swL2Notify 1 }  
	swL2NotifyPrefix	OBJECT IDENTIFIER ::= { swL2Notify 2 }  
	
	swL2NotifFirmware OBJECT IDENTIFIER ::= { swL2NotifyPrefix 0 }  
	

	
-- -----------------------------------------------------------------------------
--	swL2NotifyMgmt
-- -----------------------------------------------------------------------------
    swL2macNotificationSeverity OBJECT-TYPE
        SYNTAX  AgentNotifyLevel 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Indicates the level of macNotification detection."
        ::= { swL2NotifyMgmt 1 }
        
    swL2PortSecurityViolationSeverity OBJECT-TYPE
        SYNTAX  AgentNotifyLevel 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Indicates the level of PortSecurityViolation detection."
        ::= { swL2NotifyMgmt 2 }         
 

-- -----------------------------------------------------------------------------
--	swL2NotifFirmware OBJECT IDENTIFIER ::= { swL2NotifyPrefix 0 }
-- -----------------------------------------------------------------------------
    swL2macNotification NOTIFICATION-TYPE
        OBJECTS {
              		swL2macNotifyInfo
        		}
        STATUS  current        		
        DESCRIPTION
            " This trap indicates the MAC address variations in the address table . "            
        ::= { swL2NotifFirmware 1 }	

    swL2PortSecurityViolationTrap NOTIFICATION-TYPE
        OBJECTS { 
        			swPortSecPortIndex,
        		  	swL2PortSecurityViolationMac        					
                }        
        STATUS  current
        DESCRIPTION
            "When the port_security trap is enabled, new MAC addresses that violate 
            the pre-defined port security configuration will trigger trap messages 
            to be sent out."              
        ::= { swL2NotifFirmware 2 } 
         
    swL2PortLoopOccurred  NOTIFICATION-TYPE
        OBJECTS
             {
                swL2LoopDetectPortIndex
             }
        STATUS current
        DESCRIPTION
               "The trap is sent when a Port loop occurs."
        ::={swL2NotifFirmware 3}

    swL2PortLoopRestart  NOTIFICATION-TYPE
        OBJECTS
             {
                swL2LoopDetectPortIndex
             }
        STATUS current
        DESCRIPTION
              "The trap is sent when a Port loop restarts after the interval time."
        ::={swL2NotifFirmware 4}

    swL2VlanLoopOccurred  NOTIFICATION-TYPE
        OBJECTS
             {
                swL2LoopDetectPortIndex,
                swL2VlanLoopDetectVID
             }
        STATUS current
        DESCRIPTION
               "The trap is sent when a Port with a VID loop occurs."
        ::={swL2NotifFirmware 5}

    swL2VlanLoopRestart NOTIFICATION-TYPE
        OBJECTS
             {
                swL2LoopDetectPortIndex,
                swL2VlanLoopDetectVID
             }
        STATUS current
        DESCRIPTION
               "The trap is sent when a Port with a VID loop restarts after the interval time."
        ::={swL2NotifFirmware 6}
-- -----------------------------------------------------------------------------
--	notificationBidings
-- -----------------------------------------------------------------------------
	 
    swl2NotificationBidings OBJECT IDENTIFIER ::= { swL2NotifyPrefix 1 }
                
    swL2macNotifyInfo   OBJECT-TYPE
        SYNTAX  OCTET STRING(SIZE (0..1024))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the information for the device MAC address changes. And the detailed information include:
                 Operation Code + MAC address + Box ID + Port Number + Zero...
		
                 Operation Code: 1, 2
                     1 means learned a new MAC address
                     2 means deleted a old MAC address.
                 Box ID: The switch box ID, for standalone device, it always 1.
                 Port Number: The port number learned or deleted for the box.
                 Zero: Used to separate each message(Operate Code + MAC address + Box ID + Port Number)."
        ::= { swl2NotificationBidings 1 }
       
    swL2PortSecurityViolationMac OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  accessible-for-notify
        STATUS  current
        DESCRIPTION
            "This object indicates the MAC address that violated the port security configuration."
        ::= { swl2NotificationBidings 2 } 
        
    swL2VlanLoopDetectVID OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS  accessible-for-notify
        STATUS current
        DESCRIPTION
             "This object indicates the VID that detected a loopback."
        ::= { swl2NotificationBidings 3 }
END
