-- ZyXEL Communications Corporation
-- Private Enterprise MIB definition

-- This file describes the ZyXEL Communications Corporation Enterprise MIB.
-- It contains ZyXEL products OIDs, and common managed objects.


ZYXEL-VES1616F35-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	enterprises		FROM RFC1155-SMI

	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578
	RowStatus, DateAndTime, TruthValue, StorageType, MacAddress
		FROM SNMPv2-TC			-- RFC2579
	DisplayString
	  	FROM RFC1213-MIB
	EnabledStatus
		FROM  P-BRIDGE-MIB
	PortList
		FROM  Q-BRIDGE-MIB
	dot1dBasePort
        	FROM BRIDGE-MIB
	InterfaceIndexOrZero			-- RFC2863
		FROM IF-MIB
	SnmpAdminString
		FROM SNMP-FRAMEWORK-MIB		-- RFC2571
	InetAddressType, InetAddress
		FROM INET-ADDRESS-MIB		-- RFC2851
	OperationResponseStatus
		FROM DISMAN-PING-MIB
	
	vdslLineConfProfileName 
		FROM VDSL-LINE-MIB	
    IpAddress
        FROM SNMPv2-SMI

    NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    sysObjectID
        FROM RFC1213-MIB;

    	zyxel		OBJECT IDENTIFIER ::= { enterprises 890 }
	products	OBJECT IDENTIFIER ::= { zyxel 1 }
	accessSwitch  	OBJECT IDENTIFIER ::= { products 5 }
	vesSeries	OBJECT IDENTIFIER ::= { accessSwitch 12 }
	ves1616f35		OBJECT IDENTIFIER ::= { vesSeries 16 }


--  sysInfo
	sysInfo     	OBJECT IDENTIFIER ::= { ves1616f35 1 }

        sysSwPlatformMajorVers OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "SW platform major version, e.g. 3."
        ::= { sysInfo 1 }

        sysSwPlatformMinorVers OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "SW platform minor version, e.g. 50."
        ::= { sysInfo 2 }

        sysSwModelString OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "Model letters, e.g. TJ"
        ::= { sysInfo 3 }

        sysSwVersionControlNbr OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "Version control number, e.g. 0."
        ::= { sysInfo 4 }

        sysSwDay OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "SW compilation day, e.g. 19."
        ::= { sysInfo 5 }

        sysSwMonth OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "SW compilation month, e.g. 8."
        ::= { sysInfo 6 }

        sysSwYear OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "SW compilation year, e.g. 2004."
        ::= { sysInfo 7 }

        sysHwMajorVers OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "HW major version number, e.g. 1."
        ::= { sysInfo 8 }

        sysHwMinorVers OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "HW minor version number, e.g. 0."
        ::= { sysInfo 9 }

        sysSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "Serial number"
        ::= { sysInfo 10 }

-- rateLimitSetup
	rateLimitSetup OBJECT IDENTIFIER ::= { ves1616f35 2 }

        rateLimitState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        	"Ingress/egress rate limiting enabled/disabled for the switch."
        ::= { rateLimitSetup 1 }

-- rateLimitPortTable

        rateLimitPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF RateLimitPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { rateLimitSetup 2 }

	rateLimitPortEntry OBJECT-TYPE
        SYNTAX	RateLimitPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in rateLimitPortTable."
        INDEX          	{ dot1dBasePort }
        ::= { rateLimitPortTable 1 }

        RateLimitPortEntry ::=
           SEQUENCE {
        	rateLimitPortState	EnabledStatus,
		rateLimitPortPeakRate	INTEGER,
		rateLimitPortEgrRate	INTEGER,
		rateLimitPortCommitRate	INTEGER
           }

        rateLimitPortState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Ingress/egress rate limiting enabled/disabled on the port."
        ::= { rateLimitPortEntry 1 }

        rateLimitPortPeakRate OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Peak rate in Kbit/s.  The range of FE port is between 1 and 100,000. For GE port, the range is between 1 and 1000,000."
        ::= { rateLimitPortEntry 2 }

        rateLimitPortEgrRate OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Egress rate in Kbit/s.  The range of FE port is between 1 and 100,000. For GE port, the range is between 1 and 1000,000."
        ::= { rateLimitPortEntry 3 }

        rateLimitPortCommitRate OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Commit rate in Kbit/s.  The range of FE port is between 0 and 100,000. For GE port, the range is between 0 and 1000,000."
        ::= { rateLimitPortEntry 4 }

-- brLimitSetup
	brLimitSetup OBJECT IDENTIFIER ::= { ves1616f35 3 }

        brLimitState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Broadcast/multicast/DLF rate limiting enabled/disabled for the switch."
        ::= { brLimitSetup 1 }

-- brLimitPortTable
        brLimitPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF BrLimitPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { brLimitSetup 2 }

	brLimitPortEntry OBJECT-TYPE
        SYNTAX	BrLimitPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in brLimitPortTable."
        INDEX          	{ dot1dBasePort }
        ::= { brLimitPortTable 1 }

        BrLimitPortEntry ::=
           SEQUENCE {
        	brLimitPortBrState	EnabledStatus,
		brLimitPortBrRate	INTEGER,
		brLimitPortMcState	EnabledStatus,
		brLimitPortMcRate	INTEGER,
		brLimitPortDlfState	EnabledStatus,
		brLimitPortDlfRate	INTEGER
           }

        brLimitPortBrState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Broadcast rate limiting enabled/disabled on the port."
        ::= { brLimitPortEntry 1 }

        brLimitPortBrRate OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Allowed broadcast rate in pkts/s. For FE port,
                      	the maximum value is 148800. For GE port, the maximum value is 262143."
        ::= { brLimitPortEntry 2 }

        brLimitPortMcState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Multicast rate limiting enabled/disabled on the port."
        ::= { brLimitPortEntry 3 }

        brLimitPortMcRate OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"AAllowed mullticast rate in pkts/s. For FE port,
                      	the maximum value is 148800. For GE port, the maximum value is 262143."
        ::= { brLimitPortEntry 4 }

        brLimitPortDlfState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Destination lookup failure frames rate limiting enabled/disabled on the port."
        ::= { brLimitPortEntry 5 }

        brLimitPortDlfRate OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Allowed destination lookup failure frames rate in pkts/s.
                      	For FE port, the maximum value is 148800. For GE port, the maximum value is 262143."
        ::= { brLimitPortEntry 6 }

-- portSecuritySetup
	portSecuritySetup OBJECT IDENTIFIER ::= { ves1616f35 4 }

	portSecurityState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { portSecuritySetup 1 }

        portSecurityPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF PortSecurityPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { portSecuritySetup 2 }

	portSecurityPortEntry OBJECT-TYPE
        SYNTAX	PortSecurityPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in portSecurityPortTable."
        INDEX          	{ dot1dBasePort }
        ::= { portSecurityPortTable 1 }

        PortSecurityPortEntry ::=
           SEQUENCE {
        	portSecurityPortState		EnabledStatus,
		portSecurityPortLearnState	EnabledStatus,
		portSecurityPortCount		INTEGER
           }

        portSecurityPortState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Port Security enabled/disabled on the port.
                      	Active(1) means this port only accept frames from static MAC addresses that are configured for the port,
                      	and dynamic MAC address frames up to the number specified by portSecurityPortCount object."
        ::= { portSecurityPortEntry 1 }

        portSecurityPortLearnState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"MAC address learning  enabled/disable on the port."
        ::= { portSecurityPortEntry 2 }

        portSecurityPortCount OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Number of (dynamic) MAC addresses that may be learned on the port."
        ::= { portSecurityPortEntry 3 }

	portSecurityMacFreeze OBJECT-TYPE
        SYNTAX  PortList
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"This entry is used to execute MacFreeze action to port.
                      	It's meaningless while reading this entry."
        ::= { portSecuritySetup 3 }

-- vlanTrunkPortTable
	vlanTrunkSetup OBJECT IDENTIFIER ::= { ves1616f35 5 }

        vlanTrunkPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF VlanTrunkPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { vlanTrunkSetup 1 }

	vlanTrunkPortEntry OBJECT-TYPE
        SYNTAX	VlanTrunkPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in vlanTrunkPortTable."
        INDEX          	{ dot1dBasePort }
        ::= { vlanTrunkPortTable 1 }

        VlanTrunkPortEntry ::=
           SEQUENCE {
        	vlanTrunkPortState		EnabledStatus
           }

        vlanTrunkPortState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"VlanTrunking enabled/disabled on the port.
                      	Active(1) to allow frames belonging to unknown
                      	VLAN groups to pass through the switch."
        ::= { vlanTrunkPortEntry 1 }

--  ctlProtTransSetup
	ctlProtTransSetup OBJECT IDENTIFIER ::= { ves1616f35 6 }

        ctlProtTransState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Bridge control protocol transparency enabled/disabled for the switch"
        ::= { ctlProtTransSetup 1 }

-- ctlProtTransTunnelPortTable

        ctlProtTransTunnelPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF CtlProtTransTunnelPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { ctlProtTransSetup 2 }

	ctlProtTransTunnelPortEntry OBJECT-TYPE
        SYNTAX	CtlProtTransTunnelPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in ctlProtTransTunnelPortTable."
        INDEX          	{ dot1dBasePort }
        ::= { ctlProtTransTunnelPortTable 1 }

        CtlProtTransTunnelPortEntry ::=
           SEQUENCE {
        	ctlProtTransTunnelMode	INTEGER
           }

        ctlProtTransTunnelMode OBJECT-TYPE
        SYNTAX  INTEGER{
		peer(0),
		tunnel(1),
		discard(2),
		network(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Bridge control protocol transparency mode for the port.
                      	Modes:  Peer(0), Tunnel(1), Discard(2),  Network(3)"
        ::= { ctlProtTransTunnelPortEntry 1 }

--  vlanStackSetup
	vlanStackSetup OBJECT IDENTIFIER ::= { ves1616f35 7 }

        vlanStackState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "VLAN Stacking enabled/disabled for the switch."
        ::= { vlanStackSetup 1 }

        vlanStackTpid OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "SP TPID in hex format, e.g. 8100."
        ::= { vlanStackSetup 2 }

-- vlanStackPortTable

        vlanStackPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF VlanStackPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { vlanStackSetup 3 }

	vlanStackPortEntry OBJECT-TYPE
        SYNTAX	VlanStackPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in vlanStackPortTable."
        INDEX          	{ dot1dBasePort }
        ::= { vlanStackPortTable 1 }

        VlanStackPortEntry ::=
           SEQUENCE {
        	vlanStackPortMode	INTEGER,
        	vlanStackPortVid	INTEGER,
        	vlanStackPortPrio	INTEGER
           }

        vlanStackPortMode OBJECT-TYPE
        SYNTAX  INTEGER {
		normal(1),
		access(2),
		tunnel(3)
	}
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Mode of the port. Set Normal to have the switch ignore frames received
                      	(or transmitted) on this port with VLAN stacking tags.
                      	Anything you configure in SPVID and Priority are ignored.
			Set Access mode to have the switch add the SP TPID tag to all incoming
			frames received on this port. Set Access  mode for ingress ports at the
			edge of the service provider's network. Set Tunnel mode (available for
			Gigabit ports only) for egress ports at the edge of the service provider's
			network. In order to support VLAN stacking on a port, the port must be able
			to allow frames of 1526 Bytes (1522 Bytes + 4 Bytes for the second tag)
			to pass through it. normal (1), Access (2),  tunnel (3)"
        ::= { vlanStackPortEntry 1 }

        vlanStackPortVid OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"VLAN ID used in service provider tag."
        ::= { vlanStackPortEntry 2 }

        vlanStackPortPrio OBJECT-TYPE
        SYNTAX  INTEGER {
        		prioriry-0(0),
        		prioriry-1(1),
        		prioriry-2(2),
        		prioriry-3(3),
        		prioriry-4(4),
        		prioriry-5(5),
        		prioriry-6(6),
        		prioriry-7(7)
        }

        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Priority value for service provider tag.
                      	0 is the lowest priority level and 7 is the highest."
        ::= { vlanStackPortEntry 3 }

--  radius8021xSetup
	radius8021xSetup OBJECT IDENTIFIER ::= { ves1616f35 8 }

        radiusLoginPrecedence OBJECT-TYPE
        SYNTAX  INTEGER {
        		localOnly(1),
        		localThenRadius(2),
        		radiusOnly(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"1. Local Only
			 2. Local then RADIUS
			 3. RADIUS Only"
        ::= { radius8021xSetup 1 }

--  radiusAnd8021xServer

        radiusAnd8021xServer OBJECT IDENTIFIER ::= { radius8021xSetup 2 }

        radiusIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"The IP address of the RADIUS server."
        ::= { radiusAnd8021xServer 1 }

        radiusUdpPort OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"The UDP port of the RADIUS server."
        ::= { radiusAnd8021xServer 2 }

        radiusSharedSecret OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Shared secret used for RADIUS and network element authentication."
        ::= { radiusAnd8021xServer 3 }

--  portAuthState
        portAuthState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"802.1x port authentication enabled/disabled for the switch."
        ::= { radius8021xSetup 3 }


-- 8021xPortAuthTable

        portAuthTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF PortAuthEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { radius8021xSetup 4 }

		portAuthEntry OBJECT-TYPE
        SYNTAX	PortAuthEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in portAuthTable."
        INDEX          	{ dot1dBasePort }
        ::= { portAuthTable 1 }

        PortAuthEntry ::=
           SEQUENCE {
        	portAuthEntryState	EnabledStatus,
        	portReAuthEntryState	EnabledStatus,
        	portReAuthEntryTimer	INTEGER
           }

        portAuthEntryState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"802.1x port authentication enabled or disabled on the port."
        ::= { portAuthEntry 1 }

        portReAuthEntryState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"802.1x port re-authentication enabled or disabled on the port."
        ::= { portAuthEntry 2 }

        portReAuthEntryTimer OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Re-authentication timer in seconds."
        ::= { portAuthEntry 3 }

-- hardwareInfo
	hwMonitorInfo OBJECT IDENTIFIER ::= { ves1616f35 9 }

-- fabRpmTable

        fanRpmTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF FanRpmEntry
        ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                 	""
        ::= { hwMonitorInfo 1 }

	fanRpmEntry OBJECT-TYPE
        SYNTAX	FanRpmEntry
        ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	"An entry in fanRpmTable."
        INDEX          	{ fanRpmIndex }
        ::= { fanRpmTable 1 }

        FanRpmEntry ::=
           SEQUENCE {
        	fanRpmIndex	INTEGER,
        	fanRpmCurValue	INTEGER,
        	fanRpmMaxValue	INTEGER,
        	fanRpmMinValue	INTEGER,
        	fanRpmLowThresh	INTEGER,
        	fanRpmDescr	DisplayString
           }

        fanRpmIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"Index of FAN."
        ::= { fanRpmEntry 1 }

        fanRpmCurValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"Current speed in Revolutions Per Minute (RPM) on the fan."
        ::= { fanRpmEntry 2 }

        fanRpmMaxValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"Maximum speed measured in Revolutions Per Minute (RPM) on the fan."
        ::= { fanRpmEntry 3 }

        fanRpmMinValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"Minimum speed measured in Revolutions Per Minute (RPM) on the fan."
        ::= { fanRpmEntry 4 }

        fanRpmLowThresh OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The minimum speed at which a normal fan should work."
        ::= { fanRpmEntry 5 }

        fanRpmDescr OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"'Normal' indicates that this fan is functioning above the minimum speed.
                      	'Error' indicates that this fan is functioning below the minimum speed."
        ::= { fanRpmEntry 6 }

-- tempTable

        tempTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF TempEntry
        ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                 	""
        ::= { hwMonitorInfo 2 }

	tempEntry OBJECT-TYPE
        SYNTAX	TempEntry
        ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	"An entry in tempTable."
        INDEX          	{ tempIndex }
        ::= { tempTable 1 }

        TempEntry ::=
           SEQUENCE {
        	tempIndex	INTEGER,
        	tempCurValue	INTEGER,
        	tempMaxValue	INTEGER,
        	tempMinValue	INTEGER,
        	tempHighThresh	INTEGER,
        	tempDescr	DisplayString
           }

        tempIndex OBJECT-TYPE
        SYNTAX  INTEGER {
        	mac (1),
        	cpu (2),
        	phy (3)
        }
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"Index of temperature unit. 1:MAC, 2:CPU, 3:PHY"
        ::= { tempEntry 1 }

        tempCurValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The current temperature measured at this sensor."
        ::= { tempEntry 2 }

        tempMaxValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The maximum temperature measured at this sensor."
        ::= { tempEntry 3 }

        tempMinValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The minimum temperature measured at this sensor."
        ::= { tempEntry 4 }

        tempHighThresh OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The upper temperature limit at this sensor."
        ::= { tempEntry 5 }

        tempDescr OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"'Normal' indicates temperatures below the threshold and 'Error' for those above."
        ::= { tempEntry 6 }

-- voltageTable

        voltageTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF VoltageEntry
        ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                 	""
        ::= { hwMonitorInfo 3 }

	voltageEntry OBJECT-TYPE
        SYNTAX	VoltageEntry
        ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	"An entry in voltageTable."
        INDEX          	{ voltageIndex }
        ::= { voltageTable 1 }

        VoltageEntry ::=
           SEQUENCE {
        	voltageIndex		INTEGER,
        	voltageCurValue		INTEGER,
        	voltageMaxValue		INTEGER,
        	voltageMinValue		INTEGER,
        	voltageNominalValue	INTEGER,
        	voltageLowThresh	INTEGER,
        	voltageDescr		DisplayString
           }

        voltageIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"Index of voltage."
        ::= { voltageEntry 1 }

        voltageCurValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The current voltage reading."
        ::= { voltageEntry 2 }

        voltageMaxValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The maximum voltage measured at this point."
        ::= { voltageEntry 3 }

        voltageMinValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The minimum voltage measured at this point."
        ::= { voltageEntry 4 }

        voltageNominalValue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The normal voltage at wchich the switch work."
        ::= { voltageEntry 5 }

        voltageLowThresh OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"The minimum voltage at which the switch should work."
        ::= { voltageEntry 6 }

        voltageDescr OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  current
        DESCRIPTION
                      	"'Normal' indicates that the voltage is within an acceptable operating range
                      	at this point; otherwise 'Error' is displayed."
        ::= { voltageEntry 7 }

-- snmpSetup
	snmpSetup OBJECT IDENTIFIER ::= { ves1616f35 10 }

        snmpGetCommunity OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { snmpSetup 1 }

        snmpSetCommunity OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { snmpSetup 2 }

        snmpTrapCommunity OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { snmpSetup 3 }

--  snmpTrapDestTable
        snmpTrapDestTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF SnmpTrapDestEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { snmpSetup 4 }

	snmpTrapDestEntry OBJECT-TYPE
        SYNTAX	SnmpTrapDestEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in snmpTrapDestTable."
        INDEX          	{ snmpTrapDestIP }
        ::= { snmpTrapDestTable 1 }

        SnmpTrapDestEntry ::=
           SEQUENCE {
        	snmpTrapDestIP	IpAddress,
        	snmpTrapDestRowStatus RowStatus
           }

        snmpTrapDestIP OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"IP address of trap destination."
        ::= { snmpTrapDestEntry 1 }

        snmpTrapDestRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { snmpTrapDestEntry 2 }


--  dateTimeServerSetup
	dateTimeServerSetup     	OBJECT IDENTIFIER ::= { ves1616f35 11 }

        dateTimeServerType OBJECT-TYPE
        SYNTAX  INTEGER {
        		none(1),
			daytime(2),
			time(3),
			ntp(4)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The time service protocol."
        ::= { dateTimeServerSetup 1 }

        dateTimeServerIP OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "IP address of time server."
        ::= { dateTimeServerSetup 2 }

        dateTimeZone OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The time difference between UTC. Ex: +01"
        ::= { dateTimeServerSetup 3 }

        dateTimeNewDateYear OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The new date in year."
        ::= { dateTimeServerSetup 4 }

        dateTimeNewDateMonth OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The new date in month."
        ::= { dateTimeServerSetup 5 }

        dateTimeNewDateDay OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The new date in day."
        ::= { dateTimeServerSetup 6 }

        dateTimeNewTimeHour OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The new time in hour."
        ::= { dateTimeServerSetup 7 }

        dateTimeNewTimeMinute OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The new time in minute."
        ::= { dateTimeServerSetup 8 }

        dateTimeNewTimeSecond OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The new time in second."
        ::= { dateTimeServerSetup 9 }

--  sysMgmt
	sysMgmt     	OBJECT IDENTIFIER ::= { ves1616f35 12 }

        sysMgmtConfigSave OBJECT-TYPE
        SYNTAX  INTEGER {
         		config_1(1),
         		config_2(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "If setting value is given, the variable write index will be set and running-config will be written to the assigned configuration file.
                      If not, running-config will be written to the booting one."
        ::= { sysMgmt 1 }

        sysMgmtBootupConfig OBJECT-TYPE
        SYNTAX  INTEGER {
         		config_1(1),
         		config_2(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The setting value (read index) will be written into non-volatile memory.
                      While rebooting, the variable write index is equal to read index initially.
                      You can change the value of write index by CLI / MIB."
        ::= { sysMgmt 2 }

        sysMgmtReboot OBJECT-TYPE
        SYNTAX  INTEGER {
        		nothing(0),
        		reboot(1)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "Reboot switch from SNMP. 1:Reboot, 0:Nothing"
        ::= { sysMgmt 3 }

	sysMgmtDefaultConfig OBJECT-TYPE
        SYNTAX  INTEGER {
        		nothing(0),
        		reset_to_default(1)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "Erase running config and reset to default."
        ::= { sysMgmt 4 }

	sysMgmtLastActionStatus OBJECT-TYPE
        SYNTAX  INTEGER {
        		none(0),
        		success(1),
        		fail(2)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      "Display status of last mgmt action."
        ::= { sysMgmt 5 }

	sysMgmtSystemStatus OBJECT-TYPE
	SYNTAX	BITS {
		sysAlarmDetected(0),
		sysTemperatureError(1),
		sysFanRPMError(2),
		sysVoltageRangeError(3)
	}
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
		"This variable indicates the status of the system.
 		The sysMgmtAlarmStatus is a bit map represented
 		a sum, therefore, it can represent multiple defects
 		simultaneously. The sysNoDefect should be set if and only if
 		no other flag is set.

	 	The various bit positions are:
			0   sysAlarmDetected
			1   sysTemperatureError
			2   sysFanRPMError
			3   sysVoltageRangeError"
        ::= { sysMgmt 6 }

	sysMgmtCPUUsage OBJECT-TYPE
		SYNTAX  INTEGER
		ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
			"Show device CPU load in %, it's the snapshot of CPU load when
			getting the values."
		::= { sysMgmt 7 }

	sysMgmtBootupImage OBJECT-TYPE
        SYNTAX  INTEGER {
         		image_1(1),
         		image_2(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "The setting value (read index) will be written into non-volatile memory.
                      When rebooting, the selected image will be used.
                      You can change the value of write index by CLI / MIB."
        ::= { sysMgmt 8 }

	sysMgmtCounterReset OBJECT-TYPE
        SYNTAX  INTEGER {
         		enable(1),
         		disable(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      "Reset all port counters."
        ::= { sysMgmt 9 }

-- Tftp service                                                      
        sysMgmtTftpServiceSetup OBJECT IDENTIFIER ::= { sysMgmt 10 }                      

        sysMgmtTftpServerIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	" IP address of TFTP server"
        ::= { sysMgmtTftpServiceSetup 1 }
        
        sysMgmtTftpRemoteFileName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"The file name that you want to backup to or restore from TFTP server"
        ::= { sysMgmtTftpServiceSetup 2 }     
        
        sysMgmtTftpConfigIndex OBJECT-TYPE
        SYNTAX  INTEGER {
        	    config1(1),
        	    config2(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Index of system configuration which you want to restore."
        ::= { sysMgmtTftpServiceSetup 3 }               
                               
        sysMgmtTftpAction OBJECT-TYPE
        SYNTAX  INTEGER {         
        		none(0),
         		backup_config(1),
         		restore_config(2)      		
        }
        ACCESS  read-write
        STATUS  mandatory        DESCRIPTION
                      	" Action of tftp service. 1: Backup running-config to tftp server, 2: Restore config from tftp server."
        ::= { sysMgmtTftpServiceSetup 4 }
        
--  layer2Setup
	layer2Setup     	OBJECT IDENTIFIER ::= { ves1616f35 13 }

        vlanTypeSetup OBJECT-TYPE
        SYNTAX  INTEGER {
         		dot1Q(1),
         		port_based(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { layer2Setup 1 }

        igmpSnoopingStateSetup OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { layer2Setup 2 }

        tagVlanPortIsolationState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { layer2Setup 3 }

        stpState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { layer2Setup 4 }

        igmpFilteringStateSetup OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { layer2Setup 5 }

        unknownMulticastFrameForwarding OBJECT-TYPE
        SYNTAX  INTEGER {
         	flooding(1),
         	drop(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { layer2Setup 6 }


--  ipSetup
	ipSetup     	OBJECT IDENTIFIER ::= { ves1616f35 14 }

        dnsIpAddress OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { ipSetup 1 }

        defaultMgmt OBJECT-TYPE
        SYNTAX  INTEGER {
        	in_band(0),
        	out_of_band(1)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { ipSetup 2 }

	inbandIpSetup     	OBJECT IDENTIFIER ::= { ipSetup 3 }

        inbandIpType OBJECT-TYPE
        SYNTAX  INTEGER {
        	dhcp_client(0),
        	static_ip(1)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { inbandIpSetup 1 }

        inbandVid OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { inbandIpSetup 2 }

        inbandStaticIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { inbandIpSetup 3 }

        inbandStaticSubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { inbandIpSetup 4 }

        inbandStaticGateway OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { inbandIpSetup 5 }

	outOfBandIpSetup     	OBJECT IDENTIFIER ::= { ipSetup 4 }

        outOfBandIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { outOfBandIpSetup 1 }

        outOfBandSubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { outOfBandIpSetup 2 }

        outOfBandGateway OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { outOfBandIpSetup 3 }

--  inbandIpTable
        maxNumOfInbandIp OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { ipSetup 5 }

        inbandIpTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF InbandIpEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { ipSetup 6 }

	inbandIpEntry OBJECT-TYPE
        SYNTAX	InbandIpEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in inbandIpTable."
        INDEX          	{ inbandEntryIp, inbandEntryVid }
        ::= { inbandIpTable 1 }

        InbandIpEntry ::=
	SEQUENCE {
        	inbandEntryIp		IpAddress,
        	inbandEntrySubnetMask	IpAddress,
        	inbandEntryGateway	IpAddress,
        	inbandEntryVid		INTEGER,
        	inbandEntryManageable	EnabledStatus,
        	inbandEntryRowStatus	RowStatus
        }

        inbandEntryIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { inbandIpEntry 1 }

        inbandEntrySubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { inbandIpEntry 2 }

        inbandEntryGateway OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { inbandIpEntry 3 }

        inbandEntryVid OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { inbandIpEntry 4 }

        inbandEntryManageable OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { inbandIpEntry 5 }

        inbandEntryRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { inbandIpEntry 6 }

--  filterSetup
	filterSetup     	OBJECT IDENTIFIER ::= { ves1616f35 15 }

--  filterTable
       	filterTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF FilterEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { filterSetup 1 }

	filterEntry OBJECT-TYPE
        SYNTAX	FilterEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in filterTable."
        INDEX          	{ filterMacAddr, filterVid }
        ::= { filterTable 1 }

        FilterEntry ::=
           SEQUENCE {
         	filterName		DisplayString,
        	filterActionState	INTEGER,
        	filterMacAddr		MacAddress,
        	filterVid		INTEGER,
        	filterRowStatus		RowStatus
           }

        filterName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { filterEntry 1 }

        filterActionState OBJECT-TYPE
        SYNTAX  INTEGER {
		discard_source(1),
		discard_destination(2),
		both(3)
	}
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { filterEntry 2 }

        filterMacAddr OBJECT-TYPE
        SYNTAX  MacAddress
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { filterEntry 3 }

   	filterVid OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { filterEntry 4 }

   	filterRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { filterEntry 5 }

--  mirrorSetup
	mirrorSetup     	OBJECT IDENTIFIER ::= { ves1616f35 16 }

--  mirrorState
        mirrorState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mirrorSetup 1 }

        mirrorMonitorPort OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mirrorSetup 2 }

-- mirrorTable

        mirrorTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF MirrorEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { mirrorSetup 3 }

	mirrorEntry OBJECT-TYPE
        SYNTAX	MirrorEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in mirrorTable."
        INDEX          	{ dot1dBasePort }
        ::= { mirrorTable 1 }

        MirrorEntry ::=
           SEQUENCE {
        	mirrorMirroredState	EnabledStatus,
        	mirrorDirection		INTEGER
           }

        mirrorMirroredState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mirrorEntry 1 }

        mirrorDirection OBJECT-TYPE
        SYNTAX  INTEGER {
        	ingress(0),
        	egress(1),
        	both(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mirrorEntry 2 }


-- aggrSetup
	aggrSetup     	OBJECT IDENTIFIER ::= { ves1616f35 17 }

        aggrState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { aggrSetup 1 }

        aggrSystemPriority OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { aggrSetup 2 }

-- aggrGroupTable

        aggrGroupTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF AggrGroupEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { aggrSetup 3 }

	aggrGroupEntry OBJECT-TYPE
        SYNTAX	AggrGroupEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in aggrGroupTable."
        INDEX          	{ aggrGroupIndex }
        ::= { aggrGroupTable 1 }

        AggrGroupEntry ::=
           SEQUENCE {
        	aggrGroupIndex		INTEGER,
        	aggrGroupState		EnabledStatus,
        	aggrGroupDynamicState	EnabledStatus
           }

        aggrGroupIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { aggrGroupEntry 1 }

        aggrGroupState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { aggrGroupEntry 2 }

        aggrGroupDynamicState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { aggrGroupEntry 3 }

-- aggrPortTable

        aggrPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF AggrPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { aggrSetup 4 }

	aggrPortEntry OBJECT-TYPE
        SYNTAX	AggrPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in aggrPortTable."
        INDEX          	{ dot1dBasePort }
        ::= { aggrPortTable 1 }

        AggrPortEntry ::=
           SEQUENCE {
        	aggrPortGroup			INTEGER,
        	aggrPortDynamicStateTimeout	INTEGER
           }

        aggrPortGroup OBJECT-TYPE
        SYNTAX  INTEGER {
        	none(0),
        	t1(1),
        	t2(2),
        	t3(3),
        	t4(4),
        	t5(5),
        	t6(6)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { aggrPortEntry 1 }

        aggrPortDynamicStateTimeout OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { aggrPortEntry 2 }


-- accessCtlSetup
	accessCtlSetup     	OBJECT IDENTIFIER ::= { ves1616f35 18 }

-- accessCtlTable

        accessCtlTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF AccessCtlEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { accessCtlSetup 1 }

	accessCtlEntry OBJECT-TYPE
        SYNTAX	AccessCtlEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in accessCtlTable."
        INDEX          	{ accessCtlService }
        ::= { accessCtlTable 1 }

        AccessCtlEntry ::=
           SEQUENCE {
        	accessCtlService	INTEGER,
        	accessCtlEnable	EnabledStatus,
        	accessCtlServicePort	INTEGER,
        	accessCtlTimeout	INTEGER
           }

        accessCtlService OBJECT-TYPE
        SYNTAX  INTEGER {
        	telnet(1),
        	ssh(2),
        	ftp(3),
        	http(4),
        	https(5),
        	icmp(6),
        	snmp(7)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { accessCtlEntry 1 }

        accessCtlEnable OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { accessCtlEntry 2 }

        accessCtlServicePort OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { accessCtlEntry 3 }

        accessCtlTimeout OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { accessCtlEntry 4 }

--  securedClientTable
        securedClientTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF SecuredClientEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { accessCtlSetup 2 }

	securedClientEntry OBJECT-TYPE
        SYNTAX	SecuredClientEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in securedClientTable."
        INDEX          	{ securedClientIndex }
        ::= { securedClientTable 1 }

        SecuredClientEntry ::=
           SEQUENCE {
           	securedClientIndex	INTEGER,
           	securedClientEnable	EnabledStatus,
        	securedClientStartIp	IpAddress,
        	securedClientEndIp	IpAddress,
        	securedClientService	BITS
           }

        securedClientIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { securedClientEntry 1 }

        securedClientEnable OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { securedClientEntry 2 }

        securedClientStartIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { securedClientEntry 3 }

        securedClientEndIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { securedClientEntry 4 }

        securedClientService OBJECT-TYPE
        SYNTAX	BITS {
			telnet(0),
			ftp(1),
			http(2),
			icmp(3),
			snmp(4),
			ssh(5),
			https(6)
		}
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { securedClientEntry 5 }

--  queuingMethodSetup
	queuingMethodSetup     	OBJECT IDENTIFIER ::= { ves1616f35 19 }

        queuingMethodType OBJECT-TYPE
        SYNTAX  INTEGER {
        	strictly_priority(0),
        	weighted_fair_scheduling(1)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { queuingMethodSetup 1 }



-- portQueuingMethodTable
        portQueuingMethodTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF PortQueuingMethodEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { queuingMethodSetup 2 }

	portQueuingMethodEntry OBJECT-TYPE
        SYNTAX	PortQueuingMethodEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in portQueuingMethodTable."
        INDEX          	{ dot1dBasePort, portQueuingMethodQueue }
        ::= {portQueuingMethodTable 1}

        PortQueuingMethodEntry ::=
           SEQUENCE {
        	portQueuingMethodQueue	INTEGER,
        	portQueuingMethodWeight	INTEGER
           }

        portQueuingMethodQueue OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"0...7"
        ::= { portQueuingMethodEntry 1 }

        portQueuingMethodWeight OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	"0...15"
        ::= { portQueuingMethodEntry 2 }


		queuingMethodFeSpq OBJECT-TYPE
        SYNTAX  INTEGER {
        	none(0),
        	q0(1),
        	q1(2),
        	q2(3),
        	q3(4),
        	q4(5),
        	q5(6),
        	q6(7),
        	q7(8)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"FE port SPQ enable. Qx and higher is SPQ, and the rest of the others are WFQ."
        ::= { queuingMethodSetup 3 }

--  dhcpSetup
	dhcpSetup     	OBJECT IDENTIFIER ::= { ves1616f35 20 }

        dhcpRelay OBJECT IDENTIFIER ::= { dhcpSetup 1 }

        dhcpRelayEnable OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpRelay 1 }

        dhcpRelayOption82Enable OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpRelay 2 }

        dhcpRelayInfoEnable OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpRelay 3 }

        dhcpRelayInfoData OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpRelay 4 }

--  dhcpRemoteServer

        maxNumberOfDhcpRemoteServer OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpRelay 5 }

-- dhcpRemoteServerTable
        dhcpRemoteServerTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF DhcpRemoteServerEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { dhcpRelay 6 }

	dhcpRemoteServerEntry OBJECT-TYPE
        SYNTAX	DhcpRemoteServerEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in dhcpRemoteServerTable."
        INDEX          	{ dhcpRemoteServerIp }
        ::= { dhcpRemoteServerTable 1 }

        DhcpRemoteServerEntry ::=
           SEQUENCE {
        	dhcpRemoteServerIp		IpAddress,
        	dhcpRemoteServerRowStatus	RowStatus
           }

        dhcpRemoteServerIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpRemoteServerEntry 1 }

        dhcpRemoteServerRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { dhcpRemoteServerEntry 2 }

--  dhcpServer
        dhcpServer OBJECT IDENTIFIER ::= { dhcpSetup 2 }

        dhcpServerEnable OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpServer 1 }

        dhcpServerClientIPPoolStartingAddress  OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpServer 2 }

        dhcpServerClientIPPoolSize OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpServer 3 }

        dhcpServerIPSubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpServer 4 }

        dhcpServerDefaultGateway OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpServer 5 }

        dhcpServerPrimaryDNSServer OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpServer 6 }

        dhcpServerSecondaryDNSServer OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { dhcpServer 7 }

--  staticRouteSetup
	staticRouteSetup     	OBJECT IDENTIFIER ::= { ves1616f35 21 }

        maxNumberOfStaticRoutes OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { staticRouteSetup 1 }

-- staticRouteTable
        staticRouteTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF StaticRouteEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { staticRouteSetup 2 }

	staticRouteEntry OBJECT-TYPE
        SYNTAX	StaticRouteEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in staticRouteTable."
        INDEX          	{ staticRouteIp, staticRouteMask }
        ::= { staticRouteTable 1 }

        StaticRouteEntry ::=
           SEQUENCE {
           	staticRouteName		DisplayString,
        	staticRouteIp		IpAddress,
        	staticRouteMask		IpAddress,
        	staticRouteGateway	IpAddress,
        	staticRouteMetric	INTEGER,
        	staticRouteRowStatus	RowStatus
           }

        staticRouteName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { staticRouteEntry 1 }

        staticRouteIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { staticRouteEntry 2 }

        staticRouteMask OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { staticRouteEntry 3 }

        staticRouteGateway OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { staticRouteEntry 4 }

        staticRouteMetric OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { staticRouteEntry 5 }

        staticRouteRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { staticRouteEntry 6 }

--  arpInfo
	arpInfo     	OBJECT IDENTIFIER ::= { ves1616f35 22 }

--  arpTable
      	arpTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF ArpEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { arpInfo 1 }

		arpEntry OBJECT-TYPE
        SYNTAX	ArpEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in arpTable."
        INDEX          	{ arpIndex }
        ::= { arpTable 1 }

        ArpEntry ::=
           SEQUENCE {
           	arpIndex	INTEGER,
        	arpIpAddr	IpAddress,
        	arpMacAddr	MacAddress,
        	arpMacVid	INTEGER,
        	arpType		INTEGER
           }

        arpIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { arpEntry 1 }

        arpIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { arpEntry 2 }

        arpMacAddr OBJECT-TYPE
        SYNTAX  MacAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { arpEntry 3 }

        arpMacVid OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { arpEntry 4 }

        arpType OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { arpEntry 5 }

-- pltMgmt
	pltMgmt	OBJECT IDENTIFIER ::= { ves1616f35 23 }

-- pltCtlTable

        pltCtlTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF PltCtlEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { pltMgmt 1 }

	pltCtlEntry OBJECT-TYPE
        SYNTAX	PltCtlEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in pltCtlTable."
        INDEX          	{ pltCtlInstType, pltCtlInstId }
        ::= { pltCtlTable 1 }

        PltCtlEntry ::=
        SEQUENCE {
        	pltCtlInstType	INTEGER,
        	pltCtlInstId	INTEGER,
        	pltCtlIpAddr	IpAddress,
        	pltCtlMask	IpAddress,
        	pltCtlGw	IpAddress,
        	pltCtlRowStatus	RowStatus
        }

        pltCtlInstType OBJECT-TYPE
        SYNTAX  INTEGER {
        	vlan (1)
        }
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	"The type of the service instance that is tested.
                      	 1: VLAN
                      	"
        ::= { pltCtlEntry 1 }

        pltCtlInstId OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	"The ID of the service instance that is tested."
        ::= { pltCtlEntry 2 }

        pltCtlIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	"IP address of this PLT stack instance."
        ::= { pltCtlEntry 3 }

        pltCtlMask OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	"IP subnet mask of this PLT stack instance."
        ::= { pltCtlEntry 4 }

        pltCtlGw OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	"Default gateway IP address of this PLT stack instance."
        ::= { pltCtlEntry 5 }

        pltCtlRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	"This object allows entries to be created and deleted in the pltCtlTable.
                      	All value MUST be specified prior to a transition to active(1) state  being accepted."
        ::= { pltCtlEntry 6 }

-- pingCtlTable

	pingCtlTable OBJECT-TYPE
 	SYNTAX      SEQUENCE OF PingCtlEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
	"Defines the ping Control Table for providing, via SNMP,
	the capability of performing ping operations at
	a remote host.  The results of these operations are
	stored in the pingResultsTable and the
	pingProbeHistoryTable."
	::= { pltMgmt 2 }

	pingCtlEntry OBJECT-TYPE
	SYNTAX      PingCtlEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
	"Defines an entry in the pingCtlTable.  The first index
	element, pingCtlOwnerIndex, is of type SnmpAdminString,
	a textual convention that allows for use of the SNMPv3
	View-Based Access Control Model (RFC 2575 [11], VACM)
	and allows an management application to identify its
	entries.  The second index, pingCtlTestName (also an
	SnmpAdminString), enables the same management
	application to have multiple outstanding requests."
	INDEX {
		pingCtlServInstType,
		pingCtlServInstId,
		pingCtlOwnerIndex,
		pingCtlTestName
	}
	::= { pingCtlTable 1 }

	PingCtlEntry ::=
	SEQUENCE {
		pingCtlServInstType				INTEGER,
		pingCtlServInstId				INTEGER,
		pingCtlOwnerIndex             SnmpAdminString,
		pingCtlTestName               SnmpAdminString,
		pingCtlTargetAddressType      InetAddressType,
		pingCtlTargetAddress          InetAddress,
		pingCtlDataSize               Unsigned32,
		pingCtlTimeOut                Unsigned32,
		pingCtlProbeCount             Unsigned32,
		pingCtlAdminStatus            INTEGER,
		pingCtlDataFill               OCTET STRING,
		pingCtlFrequency              Unsigned32,
		pingCtlMaxRows                Unsigned32,
		pingCtlStorageType            StorageType,
		pingCtlTrapGeneration         BITS,
		pingCtlTrapProbeFailureFilter Unsigned32,
		pingCtlTrapTestFailureFilter  Unsigned32,
		pingCtlType                   OBJECT IDENTIFIER,
		pingCtlDescr                  SnmpAdminString,
		pingCtlSourceAddressType      InetAddressType,
		pingCtlSourceAddress          InetAddress,
		pingCtlIfIndex                InterfaceIndexOrZero,
		pingCtlByPassRouteTable       TruthValue,
		pingCtlDSField                Unsigned32,
		pingCtlRowStatus              RowStatus
	}

        pingCtlServInstType OBJECT-TYPE
        SYNTAX  INTEGER {
        	vlan (1)
        }
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	"The type of the service instance that this ping entry belong to.
                      	 1: VLAN.
                      	 This item would be used as an index
                      	"
        ::= { pingCtlEntry 1 }

        pingCtlServInstId OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	"The ID of the service instance that this ping entry belong to.
                      	This item would be used as an index"
        ::= { pingCtlEntry 2 }



	pingCtlOwnerIndex OBJECT-TYPE
	SYNTAX      SnmpAdminString (SIZE(0..32))
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
	"To facilitate the provisioning of access control by a
	security administrator using the View-Based Access
	Control Model (RFC 2575, VACM) for tables in which
	multiple users may need to independently create or
	modify entries, the initial index is used as an 'owner
	index'.  Such an initial index has a syntax of
	SnmpAdminString, and can thus be trivially mapped to a
	securityName or groupName as defined in VACM, in
	accordance with a security policy.
	When used in conjunction with such a security policy all
	entries in the table belonging to a particular user (or
	group) will have the same value for this initial index.
	For a given user's entries in a particular table, the
	object identifiers for the information in these entries
	will have the same subidentifiers (except for the 'column'
	subidentifier) up to the end of the encoded owner index.
	To configure VACM to permit access to this portion of the
	table, one would create vacmViewTreeFamilyTable entries
	with the value of vacmViewTreeFamilySubtree including
	the owner index portion, and vacmViewTreeFamilyMask
	'wildcarding' the column subidentifier.  More elaborate
	configurations are possible."
	::= { pingCtlEntry 3 }

	pingCtlTestName OBJECT-TYPE
	SYNTAX      SnmpAdminString (SIZE(0..32))
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
	"The name of the ping test.  This is locally unique, within
	the scope of an pingCtlOwnerIndex."
	::= { pingCtlEntry 4 }

	pingCtlTargetAddressType OBJECT-TYPE
	SYNTAX      InetAddressType
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
	"Specifies the type of host address to be used at a remote
	host for performing a ping operation."
	DEFVAL { unknown }
	::= { pingCtlEntry 5 }

	pingCtlTargetAddress OBJECT-TYPE
	SYNTAX      InetAddress
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
	"Specifies the host address to be used at a remote host for
	performing a ping operation.  The host address type is
	determined by the object value of corresponding
	pingCtlTargetAddressType.
	A value for this object MUST be set prior to transitioning
	its corresponding pingCtlEntry to active(1) via
	pingCtlRowStatus."
	DEFVAL { ''H }
	::= { pingCtlEntry 6 }

	pingCtlDataSize OBJECT-TYPE
	SYNTAX      Unsigned32 (0..65507)
	UNITS       "octets"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
	"Specifies the size of the data portion to be
	transmitted in a ping operation in octets.  A ping
	request is usually an ICMP message encoded
	into an IP packet.  An IP packet has a maximum size
	of 65535 octets.  Subtracting the size of the ICMP
	or UDP header (both 8 octets) and the size of the IP
	header (20 octets) yields a maximum size of 65507
	octets."
	DEFVAL { 0 }
	::= { pingCtlEntry 7 }

	pingCtlTimeOut OBJECT-TYPE
	SYNTAX      Unsigned32 (1..60)
	UNITS       "seconds"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
	"Specifies the time-out value, in seconds, for a
	remote ping operation."
	DEFVAL { 3 }
	::= { pingCtlEntry 8 }

	pingCtlProbeCount OBJECT-TYPE
	SYNTAX      Unsigned32 (1..15)
	UNITS       "probes"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
	"Specifies the number of times to perform a ping
	operation at a remote host."
	DEFVAL { 1 }
	::= { pingCtlEntry 9 }

	pingCtlAdminStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		enabled(1), -- test should be started
		disabled(2) -- test should be stopped
	}
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
	"Reflects the desired state that a pingCtlEntry should be
	in:
	enabled(1)  - Attempt to activate the test as defined by
                      this pingCtlEntry.
	disabled(2) - Deactivate the test as defined by this
                      pingCtlEntry.
	Refer to the corresponding pingResultsOperStatus to
	determine the operational state of the test defined by
	this entry."
	DEFVAL { disabled }
	::= { pingCtlEntry 10 }

	pingCtlDataFill  OBJECT-TYPE
	SYNTAX      OCTET STRING (SIZE(0..1024))
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The content of this object is used together with the
        corresponding pingCtlDataSize value to determine how to
        fill the data portion of a probe packet.  The option of
        selecting a data fill pattern can be useful when links
        are compressed or have data pattern sensitivities. The
        contents of pingCtlDataFill should be repeated in a ping
        packet when the size of the data portion of the ping
        packet is greater than the size of pingCtlDataFill."
	DEFVAL { '00'H }
	::= { pingCtlEntry 11 }

	pingCtlFrequency  OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "seconds"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The number of seconds to wait before repeating a ping test
        as defined by the value of the various objects in the
        corresponding row.
        A single ping test consists of a series of ping probes.
        The number of probes is determined by the value of the
        corresponding pingCtlProbeCount object.  After a single
        test completes the number of seconds as defined by the
        value of pingCtlFrequency MUST elapse before the
        next ping test is started.
        A value of 0 for this object implies that the test
        as defined by the corresponding entry will not be
        repeated."
	DEFVAL { 0 }
	::= { pingCtlEntry 12 }

	pingCtlMaxRows OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "rows"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The maximum number of entries allowed in the
        pingProbeHistoryTable.  An implementation of this
        MIB will remove the oldest entry in the
        pingProbeHistoryTable to allow the addition of an
        new entry once the number of rows in the
        pingProbeHistoryTable reaches this value.
        Old entries are not removed when a new test is
        started.  Entries are added to the pingProbeHistoryTable
        until pingCtlMaxRows is reached before entries begin to
        be removed.
        A value of 0 for this object disables creation of
        pingProbeHistoryTable entries."
	DEFVAL      { 50 }
	::= { pingCtlEntry 13 }

	pingCtlStorageType OBJECT-TYPE
	SYNTAX      StorageType
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The storage type for this conceptual row.
        Conceptual rows having the value 'permanent' need not
        allow write-access to any columnar objects in the row."
	DEFVAL { nonVolatile }
	::= { pingCtlEntry 14 }

	pingCtlTrapGeneration OBJECT-TYPE
	SYNTAX	BITS {
		probeFailure(0),
		testFailure(1),
		testCompletion(2)
	}
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The value of this object determines when and if
        to generate a notification for this entry:
        probeFailure(0)   - Generate a pingProbeFailed
            notification subject to the value of
            pingCtlTrapProbeFailureFilter.  The object
            pingCtlTrapProbeFailureFilter can be used
            to specify the number of successive probe failures
            that are required before a pingProbeFailed
            notification can be generated.
        testFailure(1)    - Generate a pingTestFailed
            notification. In this instance the object
            pingCtlTrapTestFailureFilter can be used to
            determine the number of probe failures that
            signal when a test fails.
        testCompletion(2) - Generate a pingTestCompleted
            notification.
        The value of this object defaults to zero, indicating
        that none of the above options have been selected."
	::= { pingCtlEntry 15 }

	pingCtlTrapProbeFailureFilter OBJECT-TYPE
	SYNTAX      Unsigned32 (0..15)
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The value of this object is used to determine when
        to generate a pingProbeFailed NOTIFICATION.

        Setting pingCtlTrapGeneration
        to probeFailure(0) implies that a pingProbeFailed
        NOTIFICATION is generated only when the number of
        successive probe failures as indicated by the
        value of pingCtlTrapPrbefailureFilter fail within
        a given ping test."
	DEFVAL { 1 }
	::= { pingCtlEntry 16 }

	pingCtlTrapTestFailureFilter OBJECT-TYPE
	SYNTAX      Unsigned32 (0..15)
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The value of this object is used to determine when
        to generate a pingTestFailed NOTIFICATION.
        Setting pingCtlTrapGeneration to testFailure(1)
        implies that a pingTestFailed NOTIFICATION is
        generated only when the number of ping failures
        within a test exceed the value of
        pingCtlTrapTestFailureFilter."
	DEFVAL { 1 }
	::= { pingCtlEntry 17 }

	pingCtlType OBJECT-TYPE
	SYNTAX      OBJECT IDENTIFIER
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The value of this object is used to either report or
        select the implementation method to be used for
        calculating a ping response time.  The value of this
        object MAY be selected from pingImplementationTypeDomains.
        Additional implementation types SHOULD be allocated as
        required by implementers of the DISMAN-PING-MIB under
        their enterprise specific registration point and not
        beneath pingImplementationTypeDomains."
	DEFVAL { pingIcmpEcho }
	::= { pingCtlEntry 18 }

	pingCtlDescr OBJECT-TYPE
	SYNTAX      SnmpAdminString
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The purpose of this object is to provide a
        descriptive name of the remote ping test."
	DEFVAL { '00'H }
	::= { pingCtlEntry 19 }

	pingCtlSourceAddressType OBJECT-TYPE
	SYNTAX      InetAddressType
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the type of the source address,
        pingCtlSourceAddress, to be used at a remote host
        when performing a ping operation."
	DEFVAL { ipv4 }
	::= { pingCtlEntry 20 }

	pingCtlSourceAddress OBJECT-TYPE
	SYNTAX      InetAddress
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Use the specified IP address (which must be given
        in numeric form, not as a hostname) as the source
        address in outgoing probe packets.  On hosts with
        more than one IP address, this option can be used
        to force the source address to be something other
        than the primary IP address of the interface the
        probe packet is sent on.  If the IP address is not
        one of this machine's interface addresses, an error
        is returned and nothing is sent.  A zero length
        octet string value for this object disables source
        address specification.
        The address type (InetAddressType) that relates to
        this object is specified by the corresponding value
        of pingCtlSourceAddressType."
	DEFVAL { ''H }
	::= { pingCtlEntry 21 }

	pingCtlIfIndex OBJECT-TYPE
	SYNTAX      InterfaceIndexOrZero
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Setting this object to an interface's ifIndex prior
        to starting a remote ping operation directs
        the ping probes to be transmitted over the
        specified interface.  A value of zero for this object
        means that this option is not enabled."
	DEFVAL { 0 }
	::= { pingCtlEntry 22 }

	pingCtlByPassRouteTable OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
	"The purpose of this object is to optionally enable
	bypassing the route table.  If enabled, the remote
	host will bypass the normal routing tables and send
	directly to a host on an attached network.  If the
	host is not on a directly-attached network, an
	error is returned.  This option can be used to perform
	the ping operation to a local host through an
	interface that has no route defined (e.g., after the
	interface was dropped by routed)."
	DEFVAL { false }
	::= { pingCtlEntry 23 }

	pingCtlDSField OBJECT-TYPE
	SYNTAX      Unsigned32 (0..255)
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the value to store in the Differentiated
        Services (DS) Field in the IP packet used to
        encapsulate the ping probe.  The DS Field is defined
        as the Type of Service (TOS) octet in a IPv4 header
        or as the Traffic Class octet in a IPv6 header.
        The value of this object must be a decimal integer
        in the range from 0 to 255.  This option can be used
        to determine what effect an explicit DS Field setting
        has on a ping response.  Not all values are legal or
        meaningful.  A value of 0 means that the function
	represented by this option is not supported.  DS Field
	usage is often not supported by IP implementations and
	not all values are supported.  Refer to RFC 2474 for
	guidance on usage of this field."
	REFERENCE
        "Refer to RFC 2474 for the definition of the
        Differentiated Services Field and to RFC 1812
        Section 5.3.2 for Type of Service (TOS)."
	DEFVAL { 0 }
	::= { pingCtlEntry 24 }

	pingCtlRowStatus OBJECT-TYPE
	SYNTAX      RowStatus
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "This object allows entries to be created and deleted
        in the pingCtlTable.  Deletion of an entry in this
        table results in all corresponding (same
        pingCtlOwnerIndex and pingCtlTestName index values)
        pingResultsTable and pingProbeHistoryTable entries
        being deleted.
        A value MUST be specified for pingCtlTargetAddress
        prior to a transition to active(1) state being
        accepted.
        Activation of a remote ping operation is controlled
        via pingCtlAdminStatus and not by changing
        this object's value to active(1).
        Transitions in and out of active(1) state are not
        allowed while an entry's pingResultsOperStatus is
        active(1) with the exception that deletion of
        an entry in this table by setting its RowStatus
        object to destroy(6) will stop an active
        ping operation.
        The operational state of a ping operation
        can be determined by examination of its
        pingResultsOperStatus object."
	REFERENCE
        "See definition of RowStatus in RFC 2579, 'Textual
        Conventions for SMIv2.'"
	::= { pingCtlEntry 25 }

-- Ping Results Table

	pingResultsTable OBJECT-TYPE
	SYNTAX      SEQUENCE OF PingResultsEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines the Ping Results Table for providing
        the capability of performing ping operations at
        a remote host.  The results of these operations are
        stored in the pingResultsTable and the pingPastProbeTable.
        An entry is added to the pingResultsTable when an
        pingCtlEntry is started by successful transition
        of its pingCtlAdminStatus object to enabled(1).
        An entry is removed from the pingResultsTable when
        its corresponding pingCtlEntry is deleted."
	::= { pltMgmt 3 }

	pingResultsEntry OBJECT-TYPE
	SYNTAX      PingResultsEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines an entry in the pingResultsTable.  The
        pingResultsTable has the same indexing as the
        pingCtlTable in order for a pingResultsEntry to
        correspond to the pingCtlEntry that caused it to
        be created."
	INDEX {
			 pingCtlServInstType,
			 pingCtlServInstId,
             pingCtlOwnerIndex,
             pingCtlTestName
	}
	::= { pingResultsTable 1 }

	PingResultsEntry ::=
	SEQUENCE {
		pingResultsOperStatus          INTEGER,
		pingResultsIpTargetAddressType InetAddressType,
		pingResultsIpTargetAddress     InetAddress,
		pingResultsMinRtt              Unsigned32,
		pingResultsMaxRtt              Unsigned32,
		pingResultsAverageRtt          Unsigned32,
		pingResultsProbeResponses      Unsigned32,
		pingResultsSentProbes          Unsigned32,
		pingResultsRttSumOfSquares     Unsigned32,
		pingResultsLastGoodProbe       DateAndTime
	}

	pingResultsOperStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		enabled(1),  -- test is in progress
		disabled(2)  -- test has stopped
		}
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Reflects the operational state of a pingCtlEntry:
           enabled(1)   - Test is active.
           disabled(2)  - Test has stopped."
	::= { pingResultsEntry 1 }

	pingResultsIpTargetAddressType OBJECT-TYPE
	SYNTAX      InetAddressType
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "This objects indicates the type of address stored
        in the corresponding pingResultsIpTargetAddress
        object."
	DEFVAL { unknown }
	::= { pingResultsEntry 2 }

	pingResultsIpTargetAddress OBJECT-TYPE
	SYNTAX      InetAddress
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "This objects reports the IP address associated
        with a pingCtlTargetAddress value when the destination
        address is specified as a DNS name.  The value of
        this object should be a zero length octet string
        when a DNS name is not specified or when a
        specified DNS name fails to resolve."
	DEFVAL { ''H }
	::= { pingResultsEntry 3 }

	pingResultsMinRtt OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "milliseconds"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The minimum ping round-trip-time (RTT) received.  A value
        of 0 for this object implies that no RTT has been received."
	::= { pingResultsEntry 4 }

	pingResultsMaxRtt OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "milliseconds"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The maximum ping round-trip-time (RTT) received.  A value
        of 0 for this object implies that no RTT has been received."
	::= { pingResultsEntry 5 }

	pingResultsAverageRtt OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "milliseconds"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The current average ping round-trip-time (RTT)."
	::= { pingResultsEntry 6 }

	pingResultsProbeResponses OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "responses"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Number of responses received for the corresponding
        pingCtlEntry and pingResultsEntry.  The value of this object
        MUST be reported as 0 when no probe responses have been
        received."
	::= { pingResultsEntry 7 }

	pingResultsSentProbes OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "probes"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The value of this object reflects the number of probes sent
        for the corresponding pingCtlEntry and pingResultsEntry.
        The value of this object MUST be reported as 0 when no probes
        have been sent."
	::= { pingResultsEntry 8 }

	pingResultsRttSumOfSquares OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "milliseconds"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "This object contains the sum of the squares for all ping
        responses received.  Its purpose is to enable standard
        deviation calculation.  The value of this object MUST
        be reported as 0 when no ping responses have been
        received."
	::= { pingResultsEntry 9 }

	pingResultsLastGoodProbe OBJECT-TYPE
	SYNTAX      DateAndTime
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Date and time when the last response was received for
        a probe."
	::= { pingResultsEntry 10 }

 -- Ping Probe History Table

	pingProbeHistoryTable OBJECT-TYPE
	SYNTAX      SEQUENCE OF PingProbeHistoryEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines a table for storing the results of a ping
        operation.  Entries in this table are limited by
        the value of the corresponding pingCtlMaxRows
        object.
        An entry in this table is created when the result of
        a ping probe is determined.  The initial 2 instance
        identifier index values identify the pingCtlEntry
        that a probe result (pingProbeHistoryEntry) belongs
        to.  An entry is removed from this table when
        its corresponding pingCtlEntry is deleted.
        An implementation of this MIB will remove the oldest
        entry in the pingProbeHistoryTable to allow the
        addition of an new entry once the number of rows in
        the pingProbeHistoryTable reaches the value specified
        by pingCtlMaxRows."
	::= { pltMgmt 4 }

	pingProbeHistoryEntry OBJECT-TYPE
	SYNTAX      PingProbeHistoryEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines an entry in the pingProbeHistoryTable.
        The first two index elements identify the
        pingCtlEntry that a pingProbeHistoryEntry belongs
        to.  The third index element selects a single
        probe result."
	INDEX {
			 pingCtlServInstType,
			 pingCtlServInstId,
             pingCtlOwnerIndex,
             pingCtlTestName,
             pingProbeHistoryIndex
	}
	::= { pingProbeHistoryTable 1 }

	PingProbeHistoryEntry ::=
	SEQUENCE {
		pingProbeHistoryIndex         Unsigned32,
		pingProbeHistoryResponse      Unsigned32,
		pingProbeHistoryStatus        OperationResponseStatus,
		pingProbeHistoryLastRC        Integer32,
		pingProbeHistoryTime          DateAndTime
	}

	pingProbeHistoryIndex OBJECT-TYPE
	SYNTAX      Unsigned32 (1..'ffffffff'h)
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "An entry in this table is created when the result of
        a ping probe is determined.  The initial 2 instance
        identifier index values identify the pingCtlEntry
        that a probe result (pingProbeHistoryEntry) belongs
        to.
        An implementation MUST start assigning
        pingProbeHistoryIndex values at 1 and wrap after
        exceeding the maximum possible value as defined by
        the limit of this object ('ffffffff'h)."
	::= { pingProbeHistoryEntry 1 }

	pingProbeHistoryResponse OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "milliseconds"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The amount of time measured in milliseconds from when
        a probe was sent to when its response was received or
        when it timed out.  The value of this object is reported
        as 0 when it is not possible to transmit a probe."
	::= { pingProbeHistoryEntry 2 }

	pingProbeHistoryStatus OBJECT-TYPE
	SYNTAX      OperationResponseStatus
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The result of a particular probe done by a remote host."
	::= { pingProbeHistoryEntry 3 }

	pingProbeHistoryLastRC        OBJECT-TYPE
	SYNTAX      Integer32
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The last implementation method specific reply code received.
        If the ICMP Echo capability is being used then a successful
        probe ends when an ICMP response is received that contains
        the code ICMP_ECHOREPLY(0).  The ICMP responses are defined
        normally in the ip_icmp include file."
	::= { pingProbeHistoryEntry 4 }

	pingProbeHistoryTime OBJECT-TYPE
	SYNTAX      DateAndTime
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Timestamp for when this probe result was determined."
	::= { pingProbeHistoryEntry 5 }

  -- Traceroute Control Table

	traceRouteCtlTable OBJECT-TYPE
	SYNTAX      SEQUENCE OF TraceRouteCtlEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines the Remote Operations Traceroute Control Table for
        providing the capability of invoking traceroute from a remote
        host.  The results of traceroute operations can be stored in
        the traceRouteResultsTable, traceRouteProbeHistoryTable, and
        the traceRouteHopsTable."
	::= { pltMgmt 5 }

	traceRouteCtlEntry OBJECT-TYPE
	SYNTAX      TraceRouteCtlEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines an entry in the traceRouteCtlTable.  The first
        index element, traceRouteCtlOwnerIndex, is of type
        SnmpAdminString, a textual convention that allows for
        use of the SNMPv3 View-Based Access Control Model
        (RFC 2575 [11], VACM) and allows an management
        application to identify its entries.  The second index,
        traceRouteCtlTestName (also an SnmpAdminString),
        enables the same management application to have
        multiple requests outstanding."
	INDEX {
		traceRouteCtlServInstType,
		traceRouteCtlServInstId,
		traceRouteCtlOwnerIndex,
		traceRouteCtlTestName
	}
	::= { traceRouteCtlTable 1 }

	TraceRouteCtlEntry ::=
	SEQUENCE {
		traceRouteCtlServInstType	INTEGER,
		traceRouteCtlServInstId		INTEGER,
		traceRouteCtlOwnerIndex         SnmpAdminString,
		traceRouteCtlTestName           SnmpAdminString,
		traceRouteCtlTargetAddressType  InetAddressType,
		traceRouteCtlTargetAddress      InetAddress,
		traceRouteCtlByPassRouteTable   TruthValue,
		traceRouteCtlDataSize           Unsigned32,
		traceRouteCtlTimeOut            Unsigned32,
		traceRouteCtlProbesPerHop       Unsigned32,
		traceRouteCtlPort               Unsigned32,
		traceRouteCtlMaxTtl             Unsigned32,
		traceRouteCtlDSField            Unsigned32,
		traceRouteCtlSourceAddressType  InetAddressType,
		traceRouteCtlSourceAddress      InetAddress,
		traceRouteCtlIfIndex            InterfaceIndexOrZero,
		traceRouteCtlMiscOptions        SnmpAdminString,
		traceRouteCtlMaxFailures        Unsigned32,
		traceRouteCtlDontFragment       TruthValue,
		traceRouteCtlInitialTtl         Unsigned32,
		traceRouteCtlFrequency          Unsigned32,
		traceRouteCtlStorageType        StorageType,
		traceRouteCtlAdminStatus        INTEGER,
		traceRouteCtlMaxRows            Unsigned32,
		traceRouteCtlTrapGeneration     BITS,
		traceRouteCtlDescr              SnmpAdminString,
		traceRouteCtlCreateHopsEntries  TruthValue,
		traceRouteCtlType               OBJECT IDENTIFIER,
		traceRouteCtlRowStatus          RowStatus
	}

        traceRouteCtlServInstType OBJECT-TYPE
        SYNTAX  INTEGER {
        	vlan (1)
        }
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	"The type of the service instance that this traceRoute entry belong to.
                      	 1: VLAN.
                      	 This item would be used as an index
                      	"
        ::= { traceRouteCtlEntry 1 }

        traceRouteCtlServInstId OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	"The ID of the service instance that this traceRoute entry belong to.
                      	This item would be used as an index"
        ::= { traceRouteCtlEntry 2 }

	traceRouteCtlOwnerIndex OBJECT-TYPE
	SYNTAX      SnmpAdminString (SIZE(0..32))
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
	"To facilitate the provisioning of access control by a
	security administrator using the View-Based Access
	Control Model (RFC 2575, VACM) for tables in which
	multiple users may need to independently create or
	modify entries, the initial index is used as an 'owner
	index'.  Such an initial index has a syntax of
	SnmpAdminString, and can thus be trivially mapped to a
	securityName or groupName as defined in VACM, in
	accordance with a security policy.
	When used in conjunction with such a security policy
	all entries in the table belonging to a particular user
	(or group) will have the same value for this initial
	index.  For a given user's entries in a particular
	table, the object identifiers for the information in
	these entries will have the same subidentifiers (except
	for the 'column' subidentifier) up to the end of the
	encoded owner index. To configure VACM to permit access
	to this portion of the table, one would create
	vacmViewTreeFamilyTable entries with the value of
	vacmViewTreeFamilySubtree including the owner index
	portion, and vacmViewTreeFamilyMask 'wildcarding' the
	column subidentifier.  More elaborate configurations
	are possible."
	::= { traceRouteCtlEntry 3 }

	traceRouteCtlTestName OBJECT-TYPE
	SYNTAX      SnmpAdminString (SIZE(0..32))
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "The name of a traceroute test.  This is locally unique,
        within the scope of an traceRouteCtlOwnerIndex."
	::= { traceRouteCtlEntry 4 }

	traceRouteCtlTargetAddressType OBJECT-TYPE
	SYNTAX      InetAddressType
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the type of host address to be used on the
        traceroute request at the remote host."
	DEFVAL { ipv4 }
	::= { traceRouteCtlEntry 5 }

	traceRouteCtlTargetAddress OBJECT-TYPE
	SYNTAX      InetAddress
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the host address used on the
        traceroute request at the remote host.  The
        host address type can be determined by the
        examining the value of the corresponding
        traceRouteCtlTargetAddressType index element.
        A value for this object MUST be set prior to
        transitioning its corresponding traceRouteCtlEntry to
        active(1) via traceRouteCtlRowStatus."
	::= { traceRouteCtlEntry 6 }

	traceRouteCtlByPassRouteTable OBJECT-TYPE
	SYNTAX TruthValue
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
	"The purpose of this object is to optionally enable
	bypassing the route table.  If enabled, the remote
	host will bypass the normal routing tables and send
	directly to a host on an attached network.  If the
	host is not on a directly-attached network, an
	error is returned.  This option can be used to perform
	the traceroute operation to a local host through an
	interface that has no route defined (e.g., after the
	interface was dropped by routed)."
	DEFVAL { false }
	::= { traceRouteCtlEntry 7 }

	traceRouteCtlDataSize OBJECT-TYPE
	SYNTAX      Unsigned32 (0..65507)
	UNITS       "octets"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the size of the data portion of a traceroute
        request in octets.  A traceroute request is essentially
        transmitted by encoding a UDP datagram into a
        IP packet. So subtracting the size of a UDP header
        (8 octets) and the size of a IP header (20 octets)
        yields a maximum of 65507 octets."
	DEFVAL { 0 }
	::= { traceRouteCtlEntry 8 }

	traceRouteCtlTimeOut OBJECT-TYPE
	SYNTAX      Unsigned32 (1..60)
	UNITS       "seconds"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the time-out value, in seconds, for
        a traceroute request."
	DEFVAL { 3 }
	::= { traceRouteCtlEntry 9 }

	traceRouteCtlProbesPerHop OBJECT-TYPE
	SYNTAX      Unsigned32 (1..10)
	UNITS       "probes"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the number of times to reissue a traceroute
        request with the same time-to-live (TTL) value."
	DEFVAL { 3 }
	::= { traceRouteCtlEntry 10 }

	traceRouteCtlPort OBJECT-TYPE
	SYNTAX      Unsigned32 (1..65535)
	UNITS       "UDP Port"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the UDP port to send the traceroute
        request to.  Need to specify a port that is not in
        use at the destination (target) host.  The default
        value for this object is the IANA assigned port,
        33434, for the traceroute function."
	DEFVAL { 33434 }
	::= { traceRouteCtlEntry 11 }

	traceRouteCtlMaxTtl OBJECT-TYPE
	SYNTAX      Unsigned32 (1..255)
	UNITS       "time-to-live value"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the maximum time-to-live value."
	DEFVAL { 30 }
	::= { traceRouteCtlEntry 12 }

	traceRouteCtlDSField OBJECT-TYPE
	SYNTAX      Unsigned32 (0..255)
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the value to store in the Differentiated
        Services (DS) Field in the IP packet used to
        encapsulate the traceroute probe.  The DS Field is
        defined as the Type of Service (TOS) octet in a IPv4
        header or as the Traffic Class octet in a IPv6 header.

        The value of this object must be a decimal integer
        in the range from 0 to 255.  This option can be used
        to determine what effect an explicit DS Field setting
        has on a traceroute response.  Not all values are legal
        or meaningful.  DS Field usage is often not supported
        by IP implementations.  A value of 0 means that the
	function represented by this option is not supported.
	Useful TOS octet values are probably '16' (low delay)
	and '8' ( high throughput)."
	REFERENCE
        "Refer to RFC 2474 for the definition of the
        Differentiated Services Field and to RFC 1812
        Section 5.3.2 for Type of Service (TOS)."
	DEFVAL { 0 }
	::= { traceRouteCtlEntry 13 }

	traceRouteCtlSourceAddressType OBJECT-TYPE
	SYNTAX      InetAddressType
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Specifies the type of the source address,
        traceRouteCtlSourceAddress, to be used at a remote host
        when performing a traceroute operation."
	DEFVAL { unknown }
	::= { traceRouteCtlEntry 14 }

	traceRouteCtlSourceAddress OBJECT-TYPE
	SYNTAX      InetAddress
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Use the specified IP address (which must be given
        as an IP number, not a hostname) as the source
        address in outgoing probe packets. On hosts with
        more than one IP address, this option can be used
        to force the source address to be something other
        than the primary IP address of the interface the
        probe packet is sent on.  If the IP address is not
        one of this machine's interface addresses, an error
        is returned and nothing is sent.  A zero length
        octet string value for this object disables source
        address specification.
        The address type (InetAddressType) that relates to
        this object is specified by the corresponding value
        of traceRouteCtlSourceAddressType."
	DEFVAL { ''H }
	::= { traceRouteCtlEntry 15 }

	traceRouteCtlIfIndex OBJECT-TYPE
	SYNTAX      InterfaceIndexOrZero
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Setting this object to an interface's ifIndex prior
        to starting a remote traceroute operation directs
        the traceroute probes to be transmitted over the
        specified interface.  A value of zero for this object
        implies that this option is not enabled."
	DEFVAL { 0 }
	::= { traceRouteCtlEntry 16 }

	traceRouteCtlMiscOptions OBJECT-TYPE
	SYNTAX      SnmpAdminString
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
	"Enables an application to specify implementation
        dependent options."
	DEFVAL { ''H }
	::= { traceRouteCtlEntry 17 }

	traceRouteCtlMaxFailures OBJECT-TYPE
	SYNTAX      Unsigned32 (0..255)
	UNITS       "timeouts"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The value of this object indicates the maximum number
        of consecutive timeouts allowed before terminating
        a remote traceroute request.  A value of either 255 (maximum
        hop count/possible TTL value) or a 0 indicates that the
        function of terminating a remote traceroute request when a
        specific number of successive timeouts are detected is
        disabled."
	DEFVAL { 5 }
	::= { traceRouteCtlEntry 18 }

	traceRouteCtlDontFragment OBJECT-TYPE
	SYNTAX         TruthValue
	ACCESS     read-create
	STATUS         current
	DESCRIPTION
        "This object enables setting of the don't fragment flag (DF)
        in the IP header for a probe.  Use of this object enables
        performing a manual PATH MTU test."
	DEFVAL  { false }
	::= { traceRouteCtlEntry 19 }

	traceRouteCtlInitialTtl OBJECT-TYPE
	SYNTAX         Unsigned32 (0..255)
	ACCESS     read-create
	STATUS         current
	DESCRIPTION
        "The value of this object specifies the initial TTL value to
        use.  This enables bypassing the initial (often well known)
        portion of a path."
	DEFVAL { 1 }
	::= { traceRouteCtlEntry 20 }

	traceRouteCtlFrequency  OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "seconds"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The number of seconds to wait before repeating a
        traceroute test as defined by the value of the
        various objects in the corresponding row.
        The number of hops in a single traceroute test
        is determined by the value of the corresponding
        traceRouteCtlProbesPerHop object.  After a
        single test completes the number of seconds as defined
        by the value of traceRouteCtlFrequency MUST elapse
        before the next traceroute test is started.
        A value of 0 for this object implies that the test
        as defined by the corresponding entry will not be
        repeated."
	DEFVAL { 0 }
	::= { traceRouteCtlEntry 21 }

	traceRouteCtlStorageType OBJECT-TYPE
	SYNTAX      StorageType
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The storage type for this conceptual row.
        Conceptual rows having the value 'permanent' need not
        allow write-access to any columnar objects in the row."
	DEFVAL { nonVolatile }
	::= { traceRouteCtlEntry 22 }

	traceRouteCtlAdminStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		enabled(1), -- operation should be started
		disabled(2) -- operation should be stopped
	}
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "Reflects the desired state that an traceRouteCtlEntry
        should be in:
           enabled(1)  - Attempt to activate the test as defined by
                         this traceRouteCtlEntry.
           disabled(2) - Deactivate the test as defined by this
                         traceRouteCtlEntry.
        Refer to the corresponding traceRouteResultsOperStatus to
        determine the operational state of the test defined by
        this entry."
	DEFVAL { disabled }
	::= { traceRouteCtlEntry 23 }

	traceRouteCtlDescr OBJECT-TYPE
	SYNTAX      SnmpAdminString
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The purpose of this object is to provide a
        descriptive name of the remote traceroute
        test."
	DEFVAL { '00'H }
	::= { traceRouteCtlEntry 24 }

	traceRouteCtlMaxRows OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "rows"
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The maximum number of entries allowed in the
        traceRouteProbeHistoryTable.  An implementation of
        this MIB will remove the oldest entry in the
        traceRouteProbeHistoryTable to allow the addition
        of an new entry once the number of rows in the
        traceRouteProbeHistoryTable reaches this value.
        Old entries are not removed when a new test is
        started.  Entries are added to the
        traceRouteProbeHistoryTable until traceRouteCtlMaxRows
        is reached before entries begin to be removed.
        A value of 0 for this object disables creation of
        traceRouteProbeHistoryTable entries."
	DEFVAL      { 50 }
	::= { traceRouteCtlEntry 25 }

	traceRouteCtlTrapGeneration OBJECT-TYPE
	SYNTAX	BITS {
		pathChange(0),
		testFailure(1),
		testCompletion(2)
	}
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The value of this object determines when and if to
        to generate a notification for this entry:
        pathChange(0)     - Generate a traceRoutePathChange
            notification when the current path varies from a
            previously determined path.
        testFailure(1)    - Generate a traceRouteTestFailed
            notification when the full path to a target
            can't be determined.
        testCompletion(2) - Generate a traceRouteTestCompleted
            notification when the path to a target has been
            determined.
        The value of this object defaults to zero, indicating
        that none of the above options have been selected."
	::= { traceRouteCtlEntry 26 }

	traceRouteCtlCreateHopsEntries OBJECT-TYPE
	SYNTAX      TruthValue
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The current path for a traceroute test is kept in the
        traceRouteHopsTable on a per hop basis when the value of
        this object is true(1)."
	DEFVAL { false }
	::= { traceRouteCtlEntry 27 }

	traceRouteCtlType OBJECT-TYPE
	SYNTAX      OBJECT IDENTIFIER
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "The value of this object is used either to report or
        select the implementation method to be used for
        performing a traceroute operation. The value of this
        object may be selected from
        traceRouteImplementationTypeDomains.
        Additional implementation types should be allocated as
        required by implementers of the DISMAN-TRACEROUTE-MIB
        under their enterprise specific registration point and
        not beneath traceRouteImplementationTypeDomains."
	DEFVAL { traceRouteUsingUdpProbes }
	::= { traceRouteCtlEntry 28 }

	traceRouteCtlRowStatus OBJECT-TYPE
	SYNTAX      RowStatus
	ACCESS  read-create
	STATUS      current
	DESCRIPTION
        "This object allows entries to be created and deleted
        in the traceRouteCtlTable.  Deletion of an entry in
        this table results in all corresponding (same
        traceRouteCtlOwnerIndex and traceRouteCtlTestName
        index values) traceRouteResultsTable,
        traceRouteProbeHistoryTable, and traceRouteHopsTable
        entries being deleted.
        A value MUST be specified for traceRouteCtlTargetAddress
        prior to a transition to active(1) state being
        accepted.
        Activation of a remote traceroute operation is
        controlled via traceRouteCtlAdminStatus and not
        by transitioning of this object's value to active(1).
        Transitions in and out of active(1) state are not
        allowed while an entry's traceRouteResultsOperStatus
        is active(1) with the exception that deletion of
        an entry in this table by setting its RowStatus
        object to destroy(6) will stop an active
        traceroute operation.
        The operational state of an traceroute operation
        can be determined by examination of the corresponding
        traceRouteResultsOperStatus object."
	REFERENCE
        "See definition of RowStatus in RFC 2579, 'Textual
        Conventions for SMIv2.'"
	::= { traceRouteCtlEntry 29 }


 -- Traceroute Results Table

	traceRouteResultsTable OBJECT-TYPE
	SYNTAX      SEQUENCE OF TraceRouteResultsEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines the Remote Operations Traceroute Results Table for
        keeping track of the status of a traceRouteCtlEntry.

        An entry is added to the traceRouteResultsTable when an
        traceRouteCtlEntry is started by successful transition
        of its traceRouteCtlAdminStatus object to enabled(1).
        An entry is removed from the traceRouteResultsTable when
        its corresponding traceRouteCtlEntry is deleted."
	::= { pltMgmt 6 }

	traceRouteResultsEntry OBJECT-TYPE
	SYNTAX      TraceRouteResultsEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines an entry in the traceRouteResultsTable.  The
        traceRouteResultsTable has the same indexing as the
        traceRouteCtlTable in order for a traceRouteResultsEntry
        to correspond to the traceRouteCtlEntry that caused it to
        be created."
	INDEX {
			traceRouteCtlServInstType,
			traceRouteCtlServInstId,
            traceRouteCtlOwnerIndex,
            traceRouteCtlTestName
	}
	::= { traceRouteResultsTable 1 }

	TraceRouteResultsEntry ::=
	SEQUENCE {
		traceRouteResultsOperStatus       INTEGER,
		traceRouteResultsCurHopCount      Gauge32,
		traceRouteResultsCurProbeCount    Gauge32,
		traceRouteResultsIpTgtAddrType    InetAddressType,
		traceRouteResultsIpTgtAddr        InetAddress,
		traceRouteResultsTestAttempts     Unsigned32,
		traceRouteResultsTestSuccesses    Unsigned32,
		traceRouteResultsLastGoodPath     DateAndTime
	}

	traceRouteResultsOperStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		enabled(1), -- test is in progress
		disabled(2) -- test has stopped
	}
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Reflects the operational state of an traceRouteCtlEntry:
           enabled(1)  - Test is active.
           disabled(2) - Test has stopped."
	::= { traceRouteResultsEntry 1 }

	traceRouteResultsCurHopCount OBJECT-TYPE
	SYNTAX      Gauge32
	UNITS       "hops"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Reflects the current TTL value (range from 1 to
        255) for a remote traceroute operation.
        Maximum TTL value is determined by
        traceRouteCtlMaxTtl."
	::= { traceRouteResultsEntry 2 }

	traceRouteResultsCurProbeCount OBJECT-TYPE
	SYNTAX      Gauge32
	UNITS       "probes"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Reflects the current probe count (1..10) for
        a remote traceroute operation. The maximum
        probe count is determined by
        traceRouteCtlProbesPerHop."
	::= { traceRouteResultsEntry 3 }

	traceRouteResultsIpTgtAddrType OBJECT-TYPE
	SYNTAX      InetAddressType
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "This objects indicates the type of address stored
        in the corresponding traceRouteResultsIpTgtAddr
        object."
	::= { traceRouteResultsEntry 4 }

	traceRouteResultsIpTgtAddr OBJECT-TYPE
	SYNTAX      InetAddress
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "This objects reports the IP address associated
        with a traceRouteCtlTargetAddress value when the
        destination address is specified as a DNS name.
        The value of this object should be a zero length
        octet string when a DNS name is not specified or
        when a specified DNS name fails to resolve."
	::= { traceRouteResultsEntry 5 }

	traceRouteResultsTestAttempts OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "tests"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The current number of attempts to determine a path
        to a target.  The value of this object MUST be started
        at 0."
	::= { traceRouteResultsEntry 6 }

	traceRouteResultsTestSuccesses OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "tests"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The current number of attempts to determine a path
        to a target that have succeeded.  The value of this
        object MUST be reported as 0 when no attempts have
        succeeded."
	::= { traceRouteResultsEntry 7 }

	traceRouteResultsLastGoodPath OBJECT-TYPE
	SYNTAX      DateAndTime
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The date and time when the last complete path
        was determined."
	::= { traceRouteResultsEntry 8 }

 -- Trace Route Probe History Table

	traceRouteProbeHistoryTable OBJECT-TYPE
	SYNTAX      SEQUENCE OF TraceRouteProbeHistoryEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines the Remote Operations Traceroute Results Table for
        storing the results of a traceroute operation.
        An implementation of this MIB will remove the oldest
        entry in the traceRouteProbeHistoryTable to allow the
        addition of an new entry once the number of rows in
        the traceRouteProbeHistoryTable reaches the value specified
        by traceRouteCtlMaxRows."
	::= { pltMgmt 7  }

	traceRouteProbeHistoryEntry OBJECT-TYPE
	SYNTAX      TraceRouteProbeHistoryEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines a table for storing the results of a traceroute
        operation.  Entries in this table are limited by
        the value of the corresponding traceRouteCtlMaxRows
        object.
        The first two index elements identify the
        traceRouteCtlEntry that a traceRouteProbeHistoryEntry
        belongs to.  The third index element selects a single
        traceroute operation result.  The fourth and fifth indexes
        select the hop and the probe for a particular
        traceroute operation."
	INDEX {
			 traceRouteCtlServInstType,
			 traceRouteCtlServInstId,
             traceRouteCtlOwnerIndex,
             traceRouteCtlTestName,
             traceRouteProbeHistoryIndex,
             traceRouteProbeHistoryHopIndex,
             traceRouteProbeHistoryProbeIndex
	}
	::= { traceRouteProbeHistoryTable 1 }

	TraceRouteProbeHistoryEntry ::=
	SEQUENCE {
		traceRouteProbeHistoryIndex         Unsigned32,
		traceRouteProbeHistoryHopIndex      Unsigned32,
		traceRouteProbeHistoryProbeIndex    Unsigned32,
		traceRouteProbeHistoryHAddrType     InetAddressType,
		traceRouteProbeHistoryHAddr         InetAddress,
		traceRouteProbeHistoryResponse      Unsigned32,
		traceRouteProbeHistoryStatus        OperationResponseStatus,
		traceRouteProbeHistoryLastRC        Integer32,
		traceRouteProbeHistoryTime          DateAndTime
	}

	traceRouteProbeHistoryIndex OBJECT-TYPE
	SYNTAX      Unsigned32 (1..'ffffffff'h)
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "An entry in this table is created when the result of
        a traceroute probe is determined.  The initial 2 instance
        identifier index values identify the traceRouteCtlEntry
        that a probe result (traceRouteProbeHistoryEntry) belongs
        to.  An entry is removed from this table when
        its corresponding traceRouteCtlEntry is deleted.
        An implementation MUST start assigning
        traceRouteProbeHistoryIndex values at 1 and wrap after
        exceeding the maximum possible value as defined by the
        limit of this object ('ffffffff'h)."
	::= { traceRouteProbeHistoryEntry 1 }

	traceRouteProbeHistoryHopIndex OBJECT-TYPE
	SYNTAX      Unsigned32 (1..255)
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
       "Indicates which hop in a traceroute path that the probe's
       results are for.  The value of this object is initially
       determined by the value of traceRouteCtlInitialTtl."
	::= { traceRouteProbeHistoryEntry 2 }

	traceRouteProbeHistoryProbeIndex OBJECT-TYPE
	SYNTAX      Unsigned32 (1..10)
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
       "Indicates the index of a probe for a particular
       hop in a traceroute path.  The number of probes per
       hop is determined by the value of the corresponding
       traceRouteCtlProbesPerHop object."
	::= { traceRouteProbeHistoryEntry 3 }

	traceRouteProbeHistoryHAddrType OBJECT-TYPE
	SYNTAX      InetAddressType
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "This objects indicates the type of address stored
        in the corresponding traceRouteProbeHistoryHAddr
        object."
	::= { traceRouteProbeHistoryEntry 4 }

	traceRouteProbeHistoryHAddr OBJECT-TYPE
	SYNTAX      InetAddress
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
	"The address of a hop in a traceroute path.  This object
	is not allowed to be a DNS name.  The value of the
	corresponding object, traceRouteProbeHistoryHAddrType,
	indicates this object's IP address type."
	::= { traceRouteProbeHistoryEntry 5 }

	traceRouteProbeHistoryResponse OBJECT-TYPE
	SYNTAX      Unsigned32
	UNITS       "milliseconds"
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The amount of time measured in milliseconds from when
        a probe was sent to when its response was received or
        when it timed out.  The value of this object is reported
        as 0 when it is not possible to transmit a probe."
	::= { traceRouteProbeHistoryEntry 6 }

	traceRouteProbeHistoryStatus OBJECT-TYPE
	SYNTAX      OperationResponseStatus
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The result of a traceroute operation made by a remote
        host for a particular probe."
	::= { traceRouteProbeHistoryEntry 7 }

	traceRouteProbeHistoryLastRC OBJECT-TYPE
	SYNTAX      Integer32
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The last implementation method specific reply code received.
        Traceroute is usually implemented by transmitting a series of
        probe packets with increasing time-to-live values.  A probe
        packet is a UDP datagram encapsulated into an IP packet.
        Each hop in a path to the target (destination) host rejects
        the probe packets (probe's TTL too small, ICMP reply) until
        either the maximum TTL is exceeded or the target host is
        received."
	::= { traceRouteProbeHistoryEntry 8 }

	traceRouteProbeHistoryTime OBJECT-TYPE
	SYNTAX      DateAndTime
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Timestamp for when this probe results were determined."
	::= { traceRouteProbeHistoryEntry 9 }

 -- Traceroute Hop Results Table

	traceRouteHopsTable OBJECT-TYPE
	SYNTAX      SEQUENCE OF TraceRouteHopsEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines the Remote Operations Traceroute Hop Table for
        keeping track of the results of traceroute tests on a
        per hop basis."
	::= { pltMgmt 8 }

	traceRouteHopsEntry OBJECT-TYPE
	SYNTAX      TraceRouteHopsEntry
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Defines an entry in the traceRouteHopsTable.
        The first two index elements identify the
        traceRouteCtlEntry that a traceRouteHopsEntry
        belongs to.  The third index element,
        traceRouteHopsHopIndex, selects a
        hop in a traceroute path."
	INDEX {
	  		traceRouteCtlServInstType,
			traceRouteCtlServInstId,
            traceRouteCtlOwnerIndex,
            traceRouteCtlTestName,
            traceRouteHopsHopIndex
	}
	::= { traceRouteHopsTable 1 }

	TraceRouteHopsEntry ::=
	SEQUENCE {
		traceRouteHopsHopIndex         Unsigned32,
		traceRouteHopsIpTgtAddressType InetAddressType,
		traceRouteHopsIpTgtAddress     InetAddress,
		traceRouteHopsMinRtt           Unsigned32,
		traceRouteHopsMaxRtt           Unsigned32,
		traceRouteHopsAverageRtt       Unsigned32,
		traceRouteHopsRttSumOfSquares  Unsigned32,
		traceRouteHopsSentProbes       Unsigned32,
		traceRouteHopsProbeResponses   Unsigned32,
		traceRouteHopsLastGoodProbe    DateAndTime
	}

	traceRouteHopsHopIndex OBJECT-TYPE
	SYNTAX      Unsigned32
	ACCESS  not-accessible
	STATUS      current
	DESCRIPTION
        "Specifies the hop index for a traceroute hop.  Values
        for this object with respect to the same
        traceRouteCtlOwnerIndex and traceRouteCtlTestName
        MUST start at 1 and increase monotonically.
        The traceRouteHopsTable keeps the current traceroute
        path per traceRouteCtlEntry if enabled by
        setting the corresponding traceRouteCtlCreateHopsEntries
        to true(1).
        All hops (traceRouteHopsTable entries) in a traceroute
        path MUST be updated at the same time when a traceroute
        operation completes.  Care needs to be applied when either
        a path changes or can't be determined.  The initial portion
        of the path, up to the first hop change, MUST retain the
        same traceRouteHopsHopIndex values.  The remaining portion
        of the path SHOULD be assigned new traceRouteHopsHopIndex
        values."
	::= { traceRouteHopsEntry 1 }

	traceRouteHopsIpTgtAddressType OBJECT-TYPE
	SYNTAX      InetAddressType
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "This objects indicates the type of address stored
        in the corresponding traceRouteHopsIpTargetAddress
        object."
	::= { traceRouteHopsEntry 2 }

	traceRouteHopsIpTgtAddress OBJECT-TYPE
	SYNTAX      InetAddress
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "This object reports the IP address associated with
        the hop.  A value for this object should be reported
        as a numeric IP address and not as a DNS name."
	::= { traceRouteHopsEntry 3 }

	traceRouteHopsMinRtt OBJECT-TYPE
	SYNTAX      Unsigned32
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The minimum traceroute round-trip-time (RTT) received for
        this hop.  A value of 0 for this object implies that no
        RTT has been received."
	::= { traceRouteHopsEntry 4 }

	traceRouteHopsMaxRtt OBJECT-TYPE
	SYNTAX      Unsigned32
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The maximum traceroute round-trip-time (RTT) received for
        this hop.  A value of 0 for this object implies that no
        RTT has been received."
	::= { traceRouteHopsEntry 5 }

	traceRouteHopsAverageRtt OBJECT-TYPE
	SYNTAX      Unsigned32
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The current average traceroute round-trip-time (RTT) for
        this hop."
	::= { traceRouteHopsEntry 6 }

	traceRouteHopsRttSumOfSquares OBJECT-TYPE
	SYNTAX      Unsigned32
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "This object contains the sum of all traceroute responses
        received for this hop.  Its purpose is to enable standard
        deviation calculation."
	::= { traceRouteHopsEntry 7 }

	traceRouteHopsSentProbes OBJECT-TYPE
	SYNTAX      Unsigned32
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "The value of this object reflects the number of probes sent
        for this hop during this traceroute test.  The value of this
        object should start at 0."
	::= { traceRouteHopsEntry 8 }

	traceRouteHopsProbeResponses OBJECT-TYPE
	SYNTAX      Unsigned32
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Number of responses received for this hop during this
        traceroute test.  This value of this object should start
        at 0."
	::= { traceRouteHopsEntry 9 }

	traceRouteHopsLastGoodProbe OBJECT-TYPE
	SYNTAX      DateAndTime
	ACCESS  read-only
	STATUS      current
	DESCRIPTION
        "Date and time was the last response was received for a probe
        for this hop during this traceroute test."
	::= { traceRouteHopsEntry 10 }

-- portOpModeSetup
	portOpModeSetup     	OBJECT IDENTIFIER ::= { ves1616f35 24 }

-- portOpModePortTable

        portOpModePortTable  OBJECT-TYPE
        SYNTAX	SEQUENCE OF PortOpModePortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { portOpModeSetup 1 }

	portOpModePortEntry  OBJECT-TYPE
        SYNTAX	PortOpModePortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in portOpModePortTable."
        INDEX          	{ dot1dBasePort }
        ::= { portOpModePortTable 1 }

        PortOpModePortEntry ::=
           SEQUENCE {
        	portOpModePortSpeedDuplex	INTEGER,
        	portOpModePortFlowCntl	INTEGER,
        	portOpModePortName	OCTET STRING,
        	portOpModePortModuleType	INTEGER,
        	portOpModePortLinkUpType	INTEGER,
        	portOpModePortIntrusionLock	EnabledStatus,
        	portOpModePortLBTestSetup	INTEGER,
        	portOpModePortLBTestStatus	INTEGER,
        	portOpModePortSwCounterReset	INTEGER,
        	portOpModePortVdslCounterReset  INTEGER,
        	portOpModePortVdslStatus  		INTEGER
           }

        portOpModePortSpeedDuplex OBJECT-TYPE
        SYNTAX  INTEGER {
        	auto(0),
        	speed_10_half(1),
        	speed_10_full(2),
        	speed_100_half(3),
        	speed_100_full(4),
        	speed_1000_full(5)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { portOpModePortEntry 1 }

        portOpModePortFlowCntl OBJECT-TYPE
        SYNTAX  INTEGER {
        	off(0),
        	on(1)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                     	""
        ::= { portOpModePortEntry 2 }

        portOpModePortName  OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE(0..32))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { portOpModePortEntry 3 }

        portOpModePortModuleType  OBJECT-TYPE
        SYNTAX  INTEGER {
        	fast_ethernet_10_100(0),
        	gigabit_ethernet_100_1000(1),
        	vdsl(2)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { portOpModePortEntry 4 }

        portOpModePortLinkUpType  OBJECT-TYPE
        SYNTAX  INTEGER {
        	down(0),
        	copper(1),
        	fiber(2)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { portOpModePortEntry 5 }

	portOpModePortIntrusionLock OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { portOpModePortEntry 6 }

   portOpModePortLBTestSetup OBJECT-TYPE
        SYNTAX  INTEGER {
        	internal_loopback_test(1),
        	external_loopback_test(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
               "This entry display latest loopback test status of port while performing loopback test."
        ::= { portOpModePortEntry 7 }

   portOpModePortLBTestStatus OBJECT-TYPE
        SYNTAX  INTEGER {
        	none(0),
        	under_testing(1),
        	success(2),
        	fail(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
               "This entry display latest loopback test status of port while performing loopback test."
        ::= { portOpModePortEntry 8 }

	portOpModePortSwCounterReset OBJECT-TYPE
        SYNTAX  INTEGER {
        	enable(1),
        	disable(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
               "This entry resets port SW counter."
        ::= { portOpModePortEntry 9 }

    portOpModePortVdslCounterReset OBJECT-TYPE
        SYNTAX  INTEGER {
        	enable(1),
        	disable(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
               "This entry resets port VDSL counter."
        ::= { portOpModePortEntry 10 }  
     
     portOpModePortVdslStatus OBJECT-TYPE
        SYNTAX INTEGER {
        	idle(1),
        	standby(2),
        	showtime(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
               "This entry reports VDSL link current status."
        ::= { portOpModePortEntry 11 }  

-- portBasedVlanSetup
	portBasedVlanSetup     	OBJECT IDENTIFIER ::= { ves1616f35 25 }

-- portBasedVlanPortListTable

        portBasedVlanPortListTable  OBJECT-TYPE
        SYNTAX	SEQUENCE OF PortBasedVlanPortListEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { portBasedVlanSetup 1 }

	portBasedVlanPortListEntry  OBJECT-TYPE
        SYNTAX	PortBasedVlanPortListEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in portBasedVlanPortListTable."
        INDEX          	{ dot1dBasePort }
        ::= { portBasedVlanPortListTable 1 }

        PortBasedVlanPortListEntry ::=
           SEQUENCE {
        	portBasedVlanPortListMembers	OCTET STRING
           }

        portBasedVlanPortListMembers OBJECT-TYPE
        SYNTAX  PortList
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { portBasedVlanPortListEntry 1 }


--fault MIB
faultMIB MODULE-IDENTITY
    LAST-UPDATED "200411031200Z" -- YYYY/MM/DD, HH/MM
    ORGANIZATION "ZyXEL"
    CONTACT-INFO ""
    DESCRIPTION
            "Fault event table definitions"
    ::= { ves1616f35 26 }


-- **************************************************************************
-- Local Textual Conventions
-- **************************************************************************

UtcTimeStamp ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "Universal Time Coordinated as a 32-bit value that designates
            the number of seconds since Jan 1, 1970 12:00AM."
    SYNTAX  Unsigned32

EventIdNumber ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION
          "This textual convention describes the index that uniquely
           identifies a fault event type in the entire system. Every fault
           event type, e.g. link down, has a unique EventIdNumber."
   SYNTAX  Integer32

EventSeverity ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION
          "This textual convention describes the severity of a fault event.
           The decreasing order of severity is shown in the textual
           convention."
   SYNTAX  INTEGER{
             critical (1),
             major (2),
             minor (3),
             informational (4)
           }

EventServiceAffective ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION
          "This textual convention indicates whether an event is immediately
           service affecting or not."
   SYNTAX  INTEGER{
   	     noServiceAffected (1),
	     serviceAffected (2)
           }


InstanceType ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "This textual convention describes the type of an instanceId
            associated with each event and by that means specifies how
            the instanceId variable should be intepreted.

            Various instanceId types are specified below to enable fault
            monitoring for different kind of devices from fixed
            configuration pizza boxes to multi chassis nodes. All
            instanceId types may not need to be used in every device
            type.

            Note also that instanceId semantics are element type dependent
            (e.g. different kind of interface naming conventions may be used)
            and thus instanceId usage may vary from element to element.

    =========================================================================
    Type            Description                                 Example form
                                                                of InstanceId
    =========================================================================
    unknown    (1)  unknown type                               - Irrelevant-
    -------------------------------------------------------------------------
    node       (2)  Associated with events originating from          1
                    the node. Used for general events that     (Node number)
                    can not be associated with any specific
                    block. InstanceId value 1 is used for
                    single node equipment.
    -------------------------------------------------------------------------
    shelf      (3)  Associated with events originating from          1
                    the shelf. In the case of fixed       	(shelf number)
                    configuration devices this type is used
                    for events that are associated with the
                    physical enclosure, e.g. faults related
                    to fan etc. InstanceId value 1 is used
                    for single self equipment.
    -------------------------------------------------------------------------
    line       (4)  Associated with events originating from
                    physical interfaces or associated
                    components such as line cards.
                    InstanceId usage examples for faults
                    originating from:
                    - Physical port: Simply port number, e.g. .......1
    -------------------------------------------------------------------------
    switch     (5)  Associated with events originating from          1
                    from a switch chip or a switch card.      (switch number)
                    For single switch equipment InstanceId
                    value 1 is used, for multi swich nodes
                    InstanceId semantics if for further
                    study.
    -------------------------------------------------------------------------
    lsp        (6)  Associated with events originating from          1
                    a particular lsp.                           (lsp index)
                    NOTE: In this case the InstanceName
                    contains the lsp name and InstanceId
                    contains lsp index.
    -------------------------------------------------------------------------
    l2Interface(7)  Associated with events originating from        - TBD -
                    a particular layer 2 interface. Used for
                    layer 2 related events such as L2 control
                    protocol faults. InstanceId semantics is
                    for further study.
    -------------------------------------------------------------------------
    l3Interface(8)  Associated with events originating from        - TBD -
                    a particular layer 3 interface. Used for
                    layer 3 related events such as L3 control
                    protocol faults. InstanceId semantics is
                    for further study.
    -------------------------------------------------------------------------
    rowIndex  (9)   Associated with events reporting about a
                    'logical' or conceptual table that consists
                    of rows.  The Instance Id is the index/key
                    for a row in the table.  The format of the
                    Instance Id will simply be a series of decimal
                    numbers seperated by a '.':
    ========================================================================="

    SYNTAX  INTEGER {
              unknown (1),
              node (2),
              shelf (3),
              line (4),
              switch (5),
              lsp (6),
              l2Interface(7),
              l3Interface(8),
              rowIndex(9)
            }


-- *****************************************************************************
-- Top level structure of this MIB.
-- *****************************************************************************

eventObjects        OBJECT IDENTIFIER ::= { faultMIB  1 }


-- *****************************************************************************
-- Event Table
--
-- Event table reports all currently active fault events. Only normal type of
-- faults (i.e. faults that are not automatically and immediately cleared) are
-- present in the event table. Delta faults (i.e. faults that are automatically
-- cleared) are reported only by using trap messages.
-- *****************************************************************************

eventTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of currently active fault events. All faults
             of normal type regardless of their severity level
             are recorded in the event table. When a normal
             type fault is cleared it is deleted from the event
             table."
    ::= { eventObjects 1 }

eventEntry OBJECT-TYPE
    SYNTAX      EventEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing information about an
             event in the event table."
    INDEX   { eventSeqNum }
    ::= { eventTable 1 }

EventEntry ::=
    SEQUENCE {
      eventSeqNum           Integer32,
      eventEventId          EventIdNumber,
      eventName             DisplayString,
      eventInstanceType     InstanceType,
      eventInstanceId       DisplayString,
      eventInstanceName     DisplayString,
      eventSeverity         EventSeverity,
      eventSetTime          UtcTimeStamp,
      eventDescription      DisplayString,
      eventServAffective    EventServiceAffective
   }

eventSeqNum OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This variable represents the sequence number of an event.
             Sequence number is incremented monotonically starting
             from 0 until it reaches its maximum and wraps around back
             to 0.

             Sequence number is incremented when
             - the state of a normal type fault is set on (the same sequence
             number is present in the events table as well as in the trap
             that is sent to notify about the fault on event)
             - delta event occurs (sequence number present in trap message)
             - the state of a normal type fault is set off (sequence number
             present in trap that is sent to notify for clearing)."
    ::= { eventEntry 1 }

eventEventId OBJECT-TYPE
    SYNTAX      EventIdNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This variable represents the event ID which uniquely
             identifies the event in the entire system."
    ::= { eventEntry 2 }

eventName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..40))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This variable represents the name of the event, for
             example 'Ethernet Link Down'"
    ::= { eventEntry 3 }

eventInstanceType OBJECT-TYPE
    SYNTAX      InstanceType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This variable represents the type of InstanceId of a
             particular event in the event table. In brief
             the instanceType refers to the type of sub-component
             generating this event in the system, for example
             switch (5). For more details see the textual
             conventions section.

             AFFECTS:   eventInstanceId,
                        eventInstanceName"
    ::= { eventEntry 4 }

eventInstanceId OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This variable represents the InstanceId of a particular
             event in the event current table. In brief the instanceId
             refers to the sub-component generating this event in the
             system, for example '1' for port 1. For more details see
             the textual conventions section.

             DEPENDS ON:  eventInstanceType"
    ::= { eventEntry 5 }

eventInstanceName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This variable is mainly used to store additional information
             about the sub-component that is generating an event. For
             example this field may specify what cooling fan is faulty.

             DEPENDS ON:  eventInstanceType"
    ::= { eventEntry 6 }

eventSeverity OBJECT-TYPE
    SYNTAX      EventSeverity
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This variable dictates the urgency of action when a event
             occurs. There are four severity levels - Critical, Major,
             Minor, and Informational.  Critical events are those, which
             require immediate operator intervention to prevent/reduce
             system down time. Major events require quick attention and
             Minor events possibly require some attention. Informational
             events indicate the occurrence of events that may need to be
             investigated."
    ::= { eventEntry 7 }

eventSetTime OBJECT-TYPE
    SYNTAX      UtcTimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This table contains only normal events and this variable
             represents the time when the event become active, i.e. the
             number of seconds since Jan 1, 1970 12:00AM."
    ::= { eventEntry 8 }


eventDescription OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This variable contains a description of the event and reasons
             behind the event. This is a free format alpha-numeric string
             that is set by the entity generating this event. This variable
             may be empty if there is no usefull information to report.
             The maximum length of this string is 255 characters."
    ::= { eventEntry 9 }

eventServAffective OBJECT-TYPE
    SYNTAX      EventServiceAffective
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "This variable indicates whether the event is service affective or not"
    ::= { eventEntry 10 }


-- fault Trap MIB
faultTrapsMIB MODULE-IDENTITY
    LAST-UPDATED "200411011200Z" -- YYYY/MM/DD, HH/MM
    ORGANIZATION "ZyXEL"
    CONTACT-INFO ""
    DESCRIPTION
            "Fault event trap definitions"
    ::= { ves1616f35 27 }

trapInfoObjects             OBJECT IDENTIFIER ::= { faultTrapsMIB 1}
trapNotifications           OBJECT IDENTIFIER ::= { faultTrapsMIB 2}


-- **************************************************************************
-- Local Textual Conventions
-- **************************************************************************

EventPersistence ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION
          "This textual convention indicates whether the event is delta
           (automatically and immediately cleared) or normal (not
           automatically cleared)."
   SYNTAX  INTEGER{
   	     normal (1),
	     delta (2)
           }


-- **************************************************************************
-- Trap information object definitions
-- **************************************************************************

trapRefSeqNum OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Indicates the former sequence number of a cleared event
             in the event table. Not intended to read but only used in
             trap notifications."
    ::= { trapInfoObjects 1 }

trapPersistence OBJECT-TYPE
    SYNTAX      EventPersistence
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Indicates whether the event is delta (automatically and
             immediately cleared) or normal (not automatically cleared).
             Not intended to read but only used in trap notifications."
    ::= { trapInfoObjects 2 }

trapSenderNodeId OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Represents the node ID of the sending network element. If not
             supported should be set to 0. Not intended to read but only
             used in trap notifications."
    ::= { trapInfoObjects 3 }


-- ***************************************************************************
-- Trap definitions
-- ***************************************************************************

eventOnTrap NOTIFICATION-TYPE
         OBJECTS {
                  eventSeqNum,
                  eventEventId,
                  eventName,
                  eventSetTime,
                  eventSeverity,
                  eventInstanceType,
                  eventInstanceId,
                  eventInstanceName,
                  eventServAffective,
                  eventDescription,
                  trapPersistence,
                  trapSenderNodeId,
                  sysObjectID}
         STATUS current
         DESCRIPTION
           "This trap is used to inform network management system that a delta
           fault event (events that are automatically cleared) has occured
           or a normal fault event (not automatically cleared) state has
           been set on.

           Objects are used as follows:
           - eventSeqNum is the sequence number of the event. For normal
           type of events must equal to the sequence number of the event
           in the events table.
           - eventEventId specifies what fault event has occured.
           - eventName specifies the name of the fault event.
           - eventSetTime indicates when fault event has occured
           (delta events) or when fault has been set on (normal events).
           - eventSeverity reports the severity level of the event.
           - eventInstanceType indicates what kind of object is faulty.
           - eventInstanceId specifies what instance is faulty.
           - eventInstanceName may contain textual description for
           the faulty object.
           - eventServAffective specifies whether the event is
           immediately service affcetive.
           - eventDescription reports possible additional information about the event.
           - trapPersistence tells whether this event is a delta or normal event.
           - trapSenderNodeId specifies the node ID of the sending network element if
           configuring it is supported for the network element, otherwise 0.
           - sysObjectID specifies what kind of equipment reports the fault event.

           For more information see the eventTable specification"
         ::= { trapNotifications 1 }

eventClearedTrap NOTIFICATION-TYPE
         OBJECTS {
                  eventSeqNum,
                  eventEventId,
                  eventSetTime,
                  eventInstanceType,
                  eventInstanceId,
                  trapRefSeqNum,
                  trapSenderNodeId,
                  sysObjectID}
         STATUS current
         DESCRIPTION
           "This trap is used to inform network management system that a normal
           type fault event has been cleared (state set off).

           Objects are used as follows:
           - eventSeqNum is the sequence number of the this clearing event. Note that
           the sequence number of the cleared event is reported in the trapRefSeqNum
           object.
           - eventEventId specifies what event has been cleared.
           - eventSetTime indicates when fault event has been cleared.
           - eventInstanceType indicates what kind of object has been
           faulty.
           - eventInstanceId specifies what instance has been faulty.
           - trapRefSeqNum specifies the sequence number of the cleared event (i.e.
           the sequence number was assigned for the event in the events table).
           - trapSenderNodeId specifies the node ID of the sending network element if
           configuring it is supported for the network element, otherwise 0.
           - sysObjectID specifies what kind of equipment reports the clearing event.

           For more information see the eventTable specification"
         ::= { trapNotifications 2 }




--  multicastPortSetup
	multicastPortSetup     	OBJECT IDENTIFIER ::= { ves1616f35 28 }

        multicastPortTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF MulticastPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { multicastPortSetup 1 }

	multicastPortEntry OBJECT-TYPE
        SYNTAX	MulticastPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in multicastPortTable."
        INDEX          	{ dot1dBasePort }
        ::= { multicastPortTable 1 }

        MulticastPortEntry ::=
	SEQUENCE {
        	multicastPortImmediateLeave		EnabledStatus,
        	multicastPortMaxGroupLimited		EnabledStatus,
        	multicastPortMaxOfGroup			INTEGER,
        	multicastPortIgmpFilteringProfile	DisplayString,
        	multicastPortQueryMode			INTEGER
        }

        multicastPortImmediateLeave OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { multicastPortEntry 1 }

        multicastPortMaxGroupLimited OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { multicastPortEntry 2 }

        multicastPortMaxOfGroup OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"0..255"
        ::= { multicastPortEntry 3 }

        multicastPortIgmpFilteringProfile OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { multicastPortEntry 4 }

        multicastPortQueryMode OBJECT-TYPE
        SYNTAX  INTEGER {
        	auto_mode(1),
        	fix_mode(2),
        	edge_mode(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { multicastPortEntry 5 }

-- multicastStatus
	multicastStatus    	OBJECT IDENTIFIER ::= { ves1616f35 29 }

        multicastStatusTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF MulticastStatusEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { multicastStatus 1 }

        igmpCountTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF IgmpCountEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	"A count table of igmp query/report/leave message."
        ::= { multicastStatus 2 }    
             
	multicastStatusEntry OBJECT-TYPE
        SYNTAX	MulticastStatusEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in multicastStatusTable."
        INDEX          	{ multicastStatusVlanID, multicastStatusPort, multicastStatusGroup }
        ::= { multicastStatusTable 1 }

        MulticastStatusEntry ::=
	SEQUENCE {
        	multicastStatusIndex    INTEGER,
        	multicastStatusVlanID	INTEGER,
        	multicastStatusPort	INTEGER,
        	multicastStatusGroup	IpAddress
         }

        multicastStatusIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { multicastStatusEntry 1 }

        multicastStatusVlanID OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { multicastStatusEntry 2 }

        multicastStatusPort OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { multicastStatusEntry 3 }

        multicastStatusGroup OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { multicastStatusEntry 4 }


-- test igmpcount
	igmpCountEntry OBJECT-TYPE
        SYNTAX	IgmpCountEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in igmpCountTable."
        INDEX          	{ igmpCountIndex }
        ::= { igmpCountTable 1 }

        IgmpCountEntry ::=
		SEQUENCE {
        	igmpCountIndex    		INTEGER,
        	igmpCountInQuery		INTEGER,
        	igmpCountInReport		INTEGER,
        	igmpCountInLeave		INTEGER,        	
        	igmpCountInQueryDrop   	INTEGER,
        	igmpCountInReportDrop   INTEGER,
        	igmpCountInLeaveDrop   	INTEGER,
        	igmpCountOutQuery   	INTEGER,
        	igmpCountOutReport   	INTEGER,
        	igmpCountOutLeave   	INTEGER
        }

        igmpCountIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"Index of IgmpCountEntry. 0 means total count in whole system"
        ::= { igmpCountEntry 1 }

        igmpCountInQuery OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpCountEntry 2 }

        igmpCountInReport OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpCountEntry 3 }

        igmpCountInLeave OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpCountEntry 4 }
        
        igmpCountInQueryDrop OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpCountEntry 5 }
        
        igmpCountInReportDrop OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpCountEntry 6 }        
        
        igmpCountInLeaveDrop OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpCountEntry 7 }                

        igmpCountOutQuery OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpCountEntry 8 }                
        
        igmpCountOutReport OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpCountEntry 9 }          

        igmpCountOutLeave OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpCountEntry 10 }     
--        
        
	
--  igmpFilteringProfileSetup
	igmpFilteringProfileSetup     	OBJECT IDENTIFIER ::= { ves1616f35 30 }

	igmpFilteringMaxNumberOfProfile OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpFilteringProfileSetup 1 }

        igmpFilteringProfileTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF IgmpFilteringProfileEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { igmpFilteringProfileSetup 2 }

	igmpFilteringProfileEntry OBJECT-TYPE
        SYNTAX	IgmpFilteringProfileEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in igmpFilteringProfileTable."
        INDEX          	{ igmpFilteringProfileName, igmpFilteringProfileStartAddress, igmpFilteringProfileEndAddress }
        ::= { igmpFilteringProfileTable 1 }

        IgmpFilteringProfileEntry ::=
	SEQUENCE {
        	igmpFilteringProfileName		DisplayString,
        	igmpFilteringProfileStartAddress	IpAddress,
        	igmpFilteringProfileEndAddress		IpAddress,
        	igmpFilteringProfileRowStatus		RowStatus
        }

        igmpFilteringProfileName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpFilteringProfileEntry 1 }

        igmpFilteringProfileStartAddress OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpFilteringProfileEntry 2 }

        igmpFilteringProfileEndAddress OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpFilteringProfileEntry 3 }

        igmpFilteringProfileRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { igmpFilteringProfileEntry 4 }

--  MVRSetup
	mvrSetup     	OBJECT IDENTIFIER ::= { ves1616f35 31 }

	maxNumberOfMVR OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrSetup 1 }

        mvrTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF MvrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { mvrSetup 2 }

	mvrEntry OBJECT-TYPE
        SYNTAX	MvrEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in mvrTable."
        INDEX          	{ mvrVlanID }
        ::= { mvrTable 1 }

        MvrEntry ::=
	SEQUENCE {
        	mvrVlanID	INTEGER,
        	mvrName		DisplayString,
        	mvrMode		INTEGER,
        	mvrRowStatus	RowStatus
        }

        mvrVlanID OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"1..4094"
        ::= { mvrEntry 1 }

        mvrName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrEntry 2 }

        mvrMode OBJECT-TYPE
        SYNTAX  INTEGER {
        	dynamic(0),
        	compatible(1)
        	}
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrEntry 3 }

        mvrRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrEntry 4 }

        mvrPortTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF MvrPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { mvrSetup 3 }

	mvrPortEntry OBJECT-TYPE
        SYNTAX	MvrPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in mvrPortTable."
        INDEX          	{ mvrVlanID, dot1dBasePort }
        ::= { mvrPortTable 1 }

        MvrPortEntry ::=
	SEQUENCE {
        	mvrPortRole	INTEGER,
        	mvrPortTagging	EnabledStatus
        }

        mvrPortRole OBJECT-TYPE
        SYNTAX  INTEGER {
        	none(1),
        	source_port(2),
        	receiver_port(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrPortEntry 1 }

        mvrPortTagging OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrPortEntry 2 }

	maxNumberOfMvrGroup OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrSetup 4 }

        mvrGroupTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF MvrGroupEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { mvrSetup 5 }

	mvrGroupEntry OBJECT-TYPE
        SYNTAX	MvrGroupEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in mvrGroupTable."
        INDEX          	{ mvrVlanID, mvrGroupName }
        ::= { mvrGroupTable 1 }

        MvrGroupEntry ::=
	SEQUENCE {
        	mvrGroupName		DisplayString,
        	mvrGroupStartAddress	IpAddress,
        	mvrGroupEndAddress	IpAddress,
        	mvrGroupRowStatus	RowStatus
        }

        mvrGroupName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrGroupEntry 1 }

        mvrGroupStartAddress OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrGroupEntry 2 }

        mvrGroupEndAddress OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrGroupEntry 3 }

        mvrGroupRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { mvrGroupEntry 4 }

-- clusterSetup
	clusterSetup     	OBJECT IDENTIFIER ::= { ves1616f35 32 }

-- clusterManager
	clusterManager     	OBJECT IDENTIFIER ::= { clusterSetup 1 }

        clusterMaxNumOfManager OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { clusterManager 1 }

-- clusterManagerTable
        clusterManagerTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ClusterManagerEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { clusterManager 2 }

	clusterManagerEntry OBJECT-TYPE
        SYNTAX	ClusterManagerEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in clusterManagerTable."
        INDEX          	{ clusterManagerVid }
        ::= { clusterManagerTable 1 }

        ClusterManagerEntry ::=
           SEQUENCE {
        	clusterManagerVid	INTEGER,
        	clusterManagerName	DisplayString,
        	clusterManagerRowStatus	RowStatus
           }

        clusterManagerVid OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterManagerEntry 1 }

        clusterManagerName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterManagerEntry 2 }

        clusterManagerRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterManagerEntry 3 }

-- clusterMembers
	clusterMembers     	OBJECT IDENTIFIER ::= { clusterSetup 2 }

        clusterMaxNumOfMember OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { clusterMembers 1 }

-- clusterMemberTable
        clusterMemberTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ClusterMemberEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { clusterMembers 2 }

	clusterMemberEntry OBJECT-TYPE
        SYNTAX	ClusterMemberEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in clusterMemberTable."
        INDEX          	{ clusterMemberMac }
        ::= { clusterMemberTable 1 }

        ClusterMemberEntry ::=
           SEQUENCE {
        	clusterMemberMac	MacAddress,
        	clusterMemberName	DisplayString,
        	clusterMemberModel	DisplayString,
        	clusterMemberPassword	DisplayString,
        	clusterMemberRowStatus	RowStatus
           }

        clusterMemberMac OBJECT-TYPE
        SYNTAX  MacAddress
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterMemberEntry 1 }

        clusterMemberName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterMemberEntry 2 }

        clusterMemberModel OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterMemberEntry 3 }

        clusterMemberPassword OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterMemberEntry 4 }

        clusterMemberRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterMemberEntry 5 }

-- clusterCandidates
	clusterCandidates     	OBJECT IDENTIFIER ::= { clusterSetup 3 }

-- clusterCandidateTable
        clusterCandidateTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ClusterCandidateEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { clusterCandidates 1 }

	clusterCandidateEntry OBJECT-TYPE
        SYNTAX	ClusterCandidateEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in clusterCandidateTable."
        INDEX          	{ clusterCandidateMac }
        ::= { clusterCandidateTable 1 }

        ClusterCandidateEntry ::=
           SEQUENCE {
        	clusterCandidateMac	MacAddress,
        	clusterCandidateName	DisplayString,
        	clusterCandidateModel	DisplayString
           }

        clusterCandidateMac OBJECT-TYPE
        SYNTAX  MacAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterCandidateEntry 1 }

        clusterCandidateName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterCandidateEntry 2 }

        clusterCandidateModel OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterCandidateEntry 3 }

-- clusterStatus
	clusterStatus     	OBJECT IDENTIFIER ::= { clusterSetup 4 }

        clusterStatusRole OBJECT-TYPE
        SYNTAX  INTEGER {
        	none(0),
        	manager(1),
        	member(2)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterStatus 1 }

        clusterStatusManager OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterStatus 2 }

        clsuterStatusMaxNumOfMember OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterStatus 3 }

-- clusterStatusMemberTable
        clusterStatusMemberTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ClusterStatusMemberEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { clusterStatus 4 }

	clusterStatusMemberEntry OBJECT-TYPE
        SYNTAX	ClusterStatusMemberEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in clusterStatusMemberTable."
        INDEX          	{ clusterStatusMemberMac }
        ::= { clusterStatusMemberTable 1 }

        ClusterStatusMemberEntry ::=
           SEQUENCE {
        	clusterStatusMemberMac		MacAddress,
        	clusterStatusMemberName		DisplayString,
        	clusterStatusMemberModel	DisplayString,
        	clusterStatusMemberStatus	INTEGER
           }

        clusterStatusMemberMac OBJECT-TYPE
        SYNTAX  MacAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterStatusMemberEntry 1 }

        clusterStatusMemberName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterStatusMemberEntry 2 }

        clusterStatusMemberModel OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterStatusMemberEntry 3 }

        clusterStatusMemberStatus OBJECT-TYPE
        SYNTAX  INTEGER {
        	error(0),
        	online(1),
        	offline(2)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { clusterStatusMemberEntry 4 }


--  sysLogSetup
	sysLogSetup     	OBJECT IDENTIFIER ::= { ves1616f35 33 }
	
	sysLogState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"sysLog enabled/disabled for the switch."
        ::= { sysLogSetup 1 }
            	
--  sysLogTypeTable
       	sysLogTypeTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF SysLogTypeEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { sysLogSetup 2 }
        
	sysLogTypeEntry OBJECT-TYPE
        SYNTAX	SysLogTypeEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in sysLogTypeTable."
        INDEX          	{ sysLogTypeIndex }
        ::= { sysLogTypeTable 1 }

        SysLogTypeEntry ::=
           SEQUENCE {
         	sysLogTypeIndex		INTEGER,
        	sysLogTypeName		DisplayString,
        	sysLogTypeState		EnabledStatus,
        	sysLogTypeFacility	INTEGER
           }
       
        sysLogTypeIndex OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { sysLogTypeEntry 1 }

        sysLogTypeName OBJECT-TYPE
        SYNTAX  DisplayString 
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { sysLogTypeEntry 2 }

        sysLogTypeState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { sysLogTypeEntry 3 }

   	sysLogTypeFacility OBJECT-TYPE
        SYNTAX  INTEGER {
        	local_user0(0),
        	local_user1(1),
        	local_user2(2),
        	local_user3(3),
        	local_user4(4),
        	local_user5(5),
        	local_user6(6),
        	local_user7(7)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { sysLogTypeEntry 4 }

--  sysLogServerTable
       	sysLogServerTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF SysLogServerEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { sysLogSetup 3 }
        
	sysLogServerEntry OBJECT-TYPE
        SYNTAX	SysLogServerEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in sysLogServerTable."
        INDEX          	{ sysLogServerAddress }
        ::= { sysLogServerTable 1 }

        SysLogServerEntry ::=
           SEQUENCE {
         	sysLogServerAddress		IpAddress,
        	sysLogServerLogLevel	INTEGER,
        	sysLogServerRowStatus	RowStatus
           }
       
        sysLogServerAddress OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { sysLogServerEntry 1 }

        sysLogServerLogLevel OBJECT-TYPE
        SYNTAX  INTEGER {
        	level0(0),
        	level0-1(1),
        	level0-2(2),
        	level0-3(3),
        	level0-4(4),
        	level0-5(5),
        	level0-6(6),
        	level0-7(7)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { sysLogServerEntry 2 }

        sysLogServerRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { sysLogServerEntry 3 }
                                             
                                             
-- diffservSetup
	diffservSetup     	OBJECT IDENTIFIER ::= { ves1616f35 34 }

        diffservState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      ""
        ::= { diffservSetup 1 }
        
-- diffservMapTable
        diffservMapTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF DiffservMapEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { diffservSetup 2 }
        
	diffservMapEntry OBJECT-TYPE
        SYNTAX	DiffservMapEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in diffservMapTable."
        INDEX          	{ diffservMapDscp }
        ::= { diffservMapTable 1 }

        DiffservMapEntry ::=
           SEQUENCE {
        	diffservMapDscp		INTEGER,
        	diffservMapPriority	INTEGER
           }

        diffservMapDscp OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"0-63"
        ::= { diffservMapEntry 1 }

        diffservMapPriority OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"0-7"
        ::= { diffservMapEntry 2 }

-- diffservPortTable
        diffservPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF DiffservPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { diffservSetup 3 }
        
	diffservPortEntry OBJECT-TYPE
        SYNTAX	DiffservPortEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in diffservPortTable."
        INDEX          	{ dot1dBasePort }
        ::= { diffservPortTable 1 }

        DiffservPortEntry ::=
           SEQUENCE {
        	diffservPortState	EnabledStatus
           }

        diffservPortState OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { diffservPortEntry 1 }

-- vdslMiscSetup
		vdslMiscSetup     	OBJECT IDENTIFIER ::= { ves1616f35 35 }

        vdslMaxNumberOfLineProfile OBJECT-TYPE
        SYNTAX INTEGER
       	ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"Maximum number of VDSL line profile."
        ::= { vdslMiscSetup 1 }

        vdslMaxNumberOfAlarmProfile OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Maximum number of VDSL alarm profile."
        ::= { vdslMiscSetup 2 }

 -- vdslLineProfileExtendedTable
    vdslLineProfileExtendedTable OBJECT-TYPE
       	SYNTAX	SEQUENCE OF VdslLineProfileExtendedEntry
       	ACCESS  not-accessible
       	STATUS  mandatory
       	DESCRIPTION
      	      	""
       	::= { vdslMiscSetup 3 }

	vdslLineProfileExtendedEntry OBJECT-TYPE
       	SYNTAX	VdslLineProfileExtendedEntry
       	ACCESS	not-accessible
       	STATUS	mandatory
       	DESCRIPTION    	"An entry in DSCP Table."
       	INDEX          	{ vdslLineConfProfileName }
       	::= { vdslLineProfileExtendedTable 1 }

    VdslLineProfileExtendedEntry ::=
       	SEQUENCE {
        vdslLineConfHamBandMaskExtended	   BITS
        }

        vdslLineConfHamBandMaskExtended OBJECT-TYPE
        SYNTAX  BITS 
        {
       	amateurBandIndex0(0),   -- amateur radio band notch
        amateurBandIndex1(1),   -- amateur radio band notch
        amateurBandIndex2(2),   -- amateur radio band notch
        amateurBandIndex3(3),   -- amateur radio band notch
        amateurBandIndex4(4),   -- amateur radio band notch
       	}
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
          "BandIndex  Start Frequency     Stop Frequency
           ---------  ------------------  --------------------------------
           0          14000 kHz           14350 kHz
           1          18068 kHz           18168 kHz
           2          21000 kHz           21450 kHz
           3          24890 kHz           24990 kHz
           4	       28000 kHz           29700 kHz"
        ::= { vdslLineProfileExtendedEntry 1 }

	 vdslMaxNumberOfDownStreamTxPSDBreakPoint OBJECT-TYPE
        SYNTAX INTEGER
       	ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"Maximum number of VDSL DownStream TxPSD breakpoint."
        ::= { vdslMiscSetup 4 }

        vdslMaxNumberOfUpStreamTxPSDBreakPoint OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Maximum number of VDSL UpStream TxPSD breakpoint."
        ::= { vdslMiscSetup 5 }

-- vdslLineExtendedTable
    vdslLineExtendedTable OBJECT-TYPE
       	SYNTAX	SEQUENCE OF VdslLineExtendedEntry
       	ACCESS  not-accessible
       	STATUS  mandatory
       	DESCRIPTION
      	      	""
       	::= { vdslMiscSetup 6 }

	vdslLineExtendedEntry OBJECT-TYPE
       	SYNTAX	VdslLineExtendedEntry
       	ACCESS	not-accessible
       	STATUS	mandatory
       	DESCRIPTION    	""
       	INDEX          	{ ifIndex }
       	::= { vdslLineExtendedTable 1 }

    VdslLineExtendedEntry ::=
       	SEQUENCE {
        vdslLinePsdProfile	   DisplayString
        }

        vdslLinePsdProfile OBJECT-TYPE
        SYNTAX  DisplayString 
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
          "The value of this object identifies the row in the VDSL
 	Line Psd Configuration Profile,
 	vdslLinePsdProfile, which applies to this
 	VDSL line, and channels if applicable."
        ::= { vdslLineExtendedEntry 1 }
        
-- vdslLineTxPSDTable
    vdslLineTxPSDTable OBJECT-TYPE
       	SYNTAX	SEQUENCE OF VdslLineTxPSDEntry
       	ACCESS  not-accessible
       	STATUS  mandatory
       	DESCRIPTION
      	      	""
       	::= { vdslMiscSetup 7 }

	vdslLineTxPSDEntry OBJECT-TYPE
       	SYNTAX	VdslLineTxPSDEntry
       	ACCESS	not-accessible
       	STATUS	mandatory
       	DESCRIPTION    	""
       	INDEX          	{ vdslLineConfProfileName, vdslPhysSide, vdslLineTxPSDFreq }
       	::= { vdslLineTxPSDTable 1 }

    VdslLineTxPSDEntry ::=
       	SEQUENCE {
       	vdslLineTxPSDProfileName   DisplayString,
        vdslLineTxPSDFreq	   INTEGER,
        vdslLineTxPSDLevel	   INTEGER,
        vdslLineTxPSDRowstatus     RowStatus
        }

	vdslLineTxPSDProfileName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
          "ProfileName of vdslLineTxPSD"
        ::= { vdslLineTxPSDEntry 1 }

        vdslLineTxPSDFreq OBJECT-TYPE
        SYNTAX  INTEGER 
        ACCESS  read-only
        STATUS  mandatory
        
        DESCRIPTION
          "The frequency bands can be modified if desired, as long as the end frequency of one band and the begin
          frequency of the next band cannot be same or overlapped, and they should be different by at least 1 tone
          or 4.3125 kHz(or 8kHz for integer). Units: 1 kHz, Size list: 0..30000"
          
        ::= { vdslLineTxPSDEntry 2 }
        
        vdslLineTxPSDLevel OBJECT-TYPE
        SYNTAX  INTEGER 
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
          "Specifies PSD level value
 	  level in the range (in -0.1 dBm/Hz) 125 to 1400 dBm/Hz."
          
        ::= { vdslLineTxPSDEntry 3 }
        
        vdslLineTxPSDRowstatus OBJECT-TYPE
        SYNTAX  RowStatus 
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
          "Row Status for TxPSD"
        ::= { vdslLineTxPSDEntry 4 }

-- vturInfo
		vturInfo     	OBJECT IDENTIFIER ::= { ves1616f35 36 }

-- vturInfoTable
    vturInfoTable OBJECT-TYPE
       	SYNTAX	SEQUENCE OF VturInfoEntry
       	ACCESS  not-accessible
       	STATUS  mandatory
       	DESCRIPTION
      	      	""
       	::= { vturInfo 1 }

	vturInfoEntry OBJECT-TYPE
       	SYNTAX	VturInfoEntry
       	ACCESS	not-accessible
       	STATUS	mandatory
       	DESCRIPTION    	"An entry in vturInfoTable."
       	INDEX          	{ dot1dBasePort }
       	::= { vturInfoTable 1 }

    VturInfoEntry ::=
       	SEQUENCE {
        vturName	DisplayString,
        vturSysVersion	DisplayString,
        vturModemCodeVersion	DisplayString
        }

    vturName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                   	"Display remote device name"
       	::= { vturInfoEntry 1 }

    vturSysVersion OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                    	"Display remote device system version info"
        ::= { vturInfoEntry 2 }

    vturModemCodeVersion OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                    	"Display remote device VDSL modem code version info"
        ::= { vturInfoEntry 3 }
        
  --  protocol-based VLAN
	protoBasedVlanSetup     	OBJECT IDENTIFIER ::= { ves1616f35 37 }
	
	    protoBasedVlanTable  OBJECT-TYPE
	    SYNTAX	SEQUENCE OF ProtoBasedVlanEntry 
	    ACCESS  not-accessible
	    STATUS  mandatory
	    DESCRIPTION
	             	""
	    ::= { protoBasedVlanSetup 1 }	

	protoBasedVlanEntry  OBJECT-TYPE
        SYNTAX	ProtoBasedVlanEntry 
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in protoBasedVlanTable."
        INDEX          	{ protoBasedVlanPort, protoBasedVlanPacketType, protoBasedVlanEtherType }
        ::= { protoBasedVlanTable 1 }

        ProtoBasedVlanEntry ::=
           SEQUENCE {
                protoBasedVlanPort			INTEGER,
        	protoBasedVlanPacketType	INTEGER,
        	protoBasedVlanEtherType		INTEGER,
        	protoBasedVlanName			DisplayString,
        	protoBasedVlanVid			INTEGER,
        	protoBasedVlanPriority		INTEGER,
        	protoBasedVlanState			RowStatus
           }

        protoBasedVlanPort OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { protoBasedVlanEntry 1 }

        protoBasedVlanPacketType OBJECT-TYPE
        SYNTAX  INTEGER {
        	etherII(1),
        	snap(2),
        	llc(3)
        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { protoBasedVlanEntry 2 }

        protoBasedVlanEtherType OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { protoBasedVlanEntry 3 }

        protoBasedVlanName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..31))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { protoBasedVlanEntry 4 }

        protoBasedVlanVid OBJECT-TYPE
        SYNTAX  INTEGER (1..4094)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { protoBasedVlanEntry 5 }

        protoBasedVlanPriority OBJECT-TYPE
        SYNTAX  INTEGER (0..7)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { protoBasedVlanEntry 6 }

        protoBasedVlanState OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	""
        ::= { protoBasedVlanEntry 7 } 
                                             
      
--  classifierSetup
	classifierSetup     	OBJECT IDENTIFIER ::= { ves1616f35 38 }

        classifierRuleTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF ClassifierRuleEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { classifierSetup 1 }

	classifierRuleEntry OBJECT-TYPE
        SYNTAX	ClassifierRuleEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in classifierRuleTable."
        INDEX          	{classifierName }
        ::= { classifierRuleTable 1 }

      	ClassifierRuleEntry ::=
		SEQUENCE {
        	classifierName		DisplayString,      
        	classifierEnable	INTEGER, 
        	classifierPacketFormat INTEGER,
        	classifierVlanId 	INTEGER,
        	classifier8021pPriority INTEGER,
        	classifierEtherType INTEGER,
        	classifierSrcMAC 	MacAddress,
        	classifierIncomingPort INTEGER,
        	classifierDstMAC 	MacAddress,
        	classifierDSCP		INTEGER,
        	classifierIpProtocol INTEGER,
        	classifierEstablishOnly INTEGER,
        	classifierSrcIp	    IpAddress,
        	classifierSrcIpMask	INTEGER,
        	classifierSrcSocket INTEGER,
        	classifierDstIp		IpAddress,  
        	classifierDstIpMask	INTEGER,  
        	classifierDstSocket INTEGER,
        	classifierRowstatus RowStatus        	
           }                                             
                        
        classifierName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"Name of classifier rule."
        ::= { classifierRuleEntry 1 }                        
                        
        classifierEnable OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        	"Classifier rule enabled/disabled."
        ::= { classifierRuleEntry 2 }

        classifierPacketFormat OBJECT-TYPE
        SYNTAX  INTEGER   
        {
      		all(1),
 		ethernetII-untagged(2),
		ethernetII-tagged(3),
     		ethernet802_3-untagged(4),
      		ethernet802_3-tagged(5)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        	"Packet format for classifier rule. All(1), 802.3 untagged(2), 802.3 tagged(3), EthernetII untagged(4), EthernetII tagged(5)."
        ::= { classifierRuleEntry 3 }
                                             
   		classifierVlanId OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Vlan id for classifer rule, 1~4094."
        ::= { classifierRuleEntry 4 }

   		classifier8021pPriority OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"802.1p priority for classifier rule, 0~7."
        ::= { classifierRuleEntry 5 }      
        
   		classifierEtherType OBJECT-TYPE
        SYNTAX  INTEGER 
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Ether type for classifier rule, in decimal expression."
        ::= { classifierRuleEntry 6 }
         
        classifierSrcMAC OBJECT-TYPE
        SYNTAX  MacAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Source mac address for classifier rule"
        ::= { classifierRuleEntry 7 }
     	
        classifierIncomingPort OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Incoming Port for classifier rule"                      	
        ::= { classifierRuleEntry 8 }

        classifierDstMAC OBJECT-TYPE
        SYNTAX  MacAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Destination mac address for classifier rule"
        ::= { classifierRuleEntry 9 }
         
        classifierDSCP OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"DSCP for classifier rule"                      	
        ::= { classifierRuleEntry 10 }                              
        
        classifierIpProtocol OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"IP Protocol for classifier rule"                      	
        ::= { classifierRuleEntry 11 }       
           
        classifierEstablishOnly OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"IP Protocol for EstablishOnly for classifier rule"                      	
        ::= { classifierRuleEntry 12 }  
           
    	classifierSrcIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Source IP address for classifier rule"
        ::= { classifierRuleEntry 13 }
        
        classifierSrcIpMask OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Source IP Mask for classifier rule"
        ::= { classifierRuleEntry 14 }
 
        classifierSrcSocket OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Source Socket Number for classifier rule"                      	
        ::= { classifierRuleEntry 15 }
        
        classifierDstIp OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Destination IP address for classifier rule"
        ::= { classifierRuleEntry 16 }
        
        classifierDstIpMask OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Destination IP Mask for classifier rule"
        ::= { classifierRuleEntry 17 }
 
        classifierDstSocket OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Destination Socket Number for classifier rule"                      	
        ::= { classifierRuleEntry 18 }
        
        classifierRowstatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	"Row Status for classifier rule"
        ::= { classifierRuleEntry 19 } 
      

--  policySetup
	policySetup     	OBJECT IDENTIFIER ::= { ves1616f35 39 }

        policyTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF PolicyEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                 	""
        ::= { policySetup 1 }  
        
 	policyEntry OBJECT-TYPE
        SYNTAX	PolicyEntry
        ACCESS	not-accessible
        STATUS	mandatory
        DESCRIPTION    	"An entry in policyTable."
        INDEX          	{policyName }
        ::= { policyTable 1 }
       
      	PolicyEntry ::=
		SEQUENCE {
        	policyName		DisplayString,      
        	policyEnable		INTEGER,  
        	policyClassifier  	DisplayString, 
        	policyVlanId		INTEGER,
        	policyEgressPort 	INTEGER,
        	policyOutPktFormat  INTEGER,
        	policy8021pPriority INTEGER,
        	policyDSCP          INTEGER,
        	policyTOS           INTEGER,
        	policyBandwidth     INTEGER,
        	policyOutOfProfileDSCP   INTEGER,
        	policyForwardingAction   INTEGER,
        	policyPriorityAction     INTEGER,
        	policyDiffServAction 	 INTEGER,
        	policyOutgoingAction	 BITS,
        	policyMeteringEnable     INTEGER,
            policyOutOfProfileAction BITS,
            policyRowstatus 		 RowStatus            
        }  
 
        policyName OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"Name of policy rule."
        ::= { policyEntry 1 }   
         
        policyEnable OBJECT-TYPE
        SYNTAX  EnabledStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        	"Policy rule enabled/disabled."
        ::= { policyEntry 2 }  
           
        policyClassifier OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                      	"Classifier of policy rule."
        ::= { policyEntry 3 }      
                                           
        policyVlanId OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Vlan id for policy rule, 1~4094."
        ::= { policyEntry 4 } 
        
        policyEgressPort OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Egress Port for policy rule"
        ::= { policyEntry 5 }  
         
        policyOutPktFormat OBJECT-TYPE
        SYNTAX  INTEGER
        {   
        	tag(1),
        	untag(2)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Outgoing packet format for Egress port for policy rule"
        ::= { policyEntry 6 } 
        
        policy8021pPriority OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"802.1p priority for policy rule, 0~7."
        ::= { policyEntry 7 }    
        
        policyDSCP OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"DSCP for policy rule."
        ::= { policyEntry 8 }   
        
        policyTOS OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"TOS for policy rule, 0~7"
        ::= { policyEntry 9 }  
        
        policyBandwidth OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Bandwidth for policy rule"
        ::= { policyEntry 10 }  
          
        policyOutOfProfileDSCP OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Out Of Profile DSCP for policy rule."
        ::= { policyEntry 11 } 
        
        policyForwardingAction OBJECT-TYPE
        SYNTAX  INTEGER
        {   
        	no-change(1),
        	discard-the-packet(2),
        	do-not-drop-the-matching-frame-previously-marked-for-dopping(3)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Forwarding Action for policy rule"
        ::= { policyEntry 12 } 
   
        policyPriorityAction OBJECT-TYPE
        SYNTAX  INTEGER
        {   
        	no-change(1),
        	set-the-packets-802_1-priority(2),
        	send-the-packet-to-priority-queue(3),
        	replace-the-802_1-priority-field-with-the-IP-TOS-value(4) 
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"Priority Action for policy rule"
        ::= { policyEntry 13}    

        policyDiffServAction OBJECT-TYPE
        SYNTAX  INTEGER
        {   
        	no-change(1),
        	set-the-packets-TOS-field(2),
        	replace-the-IP-TOS-field-with-the-802_1-priority-value(3),
        	set-the-Diffserv-Codepoint-field-in-the-frame(4) 
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                      	"DiffServ Action for policy rule"
        ::= { policyEntry 14}     
        
        policyOutgoingAction OBJECT-TYPE
		SYNTAX	BITS {
			send-the-packet-to-the-mirror-port(1),
			send-the-packet-to-the-egress-port(2),
			send-the-matching-frames-to-the-egress-port(3),
			set-the-packets-VLAN-ID(4) 
		}
		ACCESS  read-create
		STATUS      current
		DESCRIPTION
	        "Outgoing Action for policy rule"
		::= { policyEntry 15 }

        policyMeteringEnable OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        	"Metering for Policy rule enabled/disabled."
        ::= { policyEntry 16 }  
        
        policyOutOfProfileAction OBJECT-TYPE
		SYNTAX	BITS {
			drop-the-packet(1),
			change-the-DSCP-value(2),
			set-Out-Drop-Precedence(3),
			do-not-drop-the-matching-frame-previously-marked-for-dropping(4)
		}
		ACCESS  read-create
		STATUS      current
		DESCRIPTION
	        "Out Of Profile Action for policy rule"
		::= { policyEntry 17 }
 
        policyRowstatus OBJECT-TYPE
        SYNTAX  RowStatus
        ACCESS  read-create
        STATUS  mandatory
        DESCRIPTION
                      	"Row Status for policy rule"
        ::= { policyEntry 18 }      
        
        END
