	  TPLINK-ACL-MIB DEFINITIONS ::= BEGIN

         IMPORTS
         	TPRowStatus
					FROM TPLINK-TC-MIB 
  												
            OBJECT-TYPE,MODULE-IDENTITY
          	  	         	FROM SNMPv2-SMI
            tplinkMgmt
					FROM TPLINK-MIB;
          	  	          
          	 
	    tplinkAclMIB MODULE-IDENTITY
	    LAST-UPDATED    "201212130930Z"
	    ORGANIZATION    "TPLINK"
	    CONTACT-INFO
	            " www.tplink.com"
	    DESCRIPTION
	             "Private MIB for acl."
	    REVISION        "201212130930Z"
	    DESCRIPTION
	            "Initial version of this MIB module."
	    ::= { tplinkMgmt 26 }
	    
		tplinkAclMIBObjects 				OBJECT IDENTIFIER ::= {tplinkAclMIB 1}
		tpAclActionConfigure				OBJECT IDENTIFIER	::=	{tplinkAclMIBObjects 3}
		tpAclPortBindConfigure  		OBJECT IDENTIFIER ::= {tplinkAclMIBObjects 4}
		tpAclVlanBindConfigure			OBJECT IDENTIFIER ::= {tplinkAclMIBObjects 5}

  tpAclActionTable OBJECT-TYPE
		SYNTAX SEQUENCE OF TPACLACTIONENTRY
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			"A list of ACL rule action entries."
		::= { tpAclActionConfigure 1 }

	tpAclActionEntry OBJECT-TYPE
		SYNTAX TPACLACTIONENTRY
		MAX-ACCESS not-accessible
		STATUS current
		DESCRIPTION
			"An entry contains of the information of ACL rule action."
		INDEX	{tpAclActionAclId,tpAclActionRuleId}
		::= { tpAclActionTable 1 }
		
	TPACLACTIONENTRY ::=
		SEQUENCE {
			tpAclActionAclId
				INTEGER,
			tpAclActionRuleId
				INTEGER,
			tpAclActionMirrorPort
				OCTET STRING,
			tpAclActionRedirectPort
				OCTET STRING,
			tpAclActionConditionRate
				INTEGER,
			tpAclActionConditionBurst
				INTEGER,
			tpAclActionConditionExceedOperation
				INTEGER,
			tpAclActionConditionRemarkDscp
				INTEGER,
			tpAclActionQosRemarkDscp
				INTEGER,
			tpAclActionQosRemarkLocalPri
				INTEGER,
			tpAclActionQosRemark8021p
				INTEGER,
			tpAclActionStatus
				TPRowStatus
		}
	tpAclActionAclId OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS	read-only
		STATUS current
		DESCRIPTION
			"The ACL ID."
		::= {tpAclActionEntry 1}
		
	tpAclActionRuleId	OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS	read-only
		STATUS current
		DESCRIPTION
			"The ACL rule ID."
		::= {tpAclActionEntry 2}
		
	tpAclActionMirrorPort OBJECT-TYPE
		SYNTAX OCTET STRING
		MAX-ACCESS read-create
		STATUS current
		DESCRIPTION
			"mirror the data packets to the specified port."
		::= {tpAclActionEntry 3}

	tpAclActionRedirectPort OBJECT-TYPE
		SYNTAX OCTET STRING
		MAX-ACCESS read-create
		STATUS current
		DESCRIPTION
			"Redirect the data packets to the specified port."
		::= {tpAclActionEntry 4}		

	tpAclActionConditionRate OBJECT-TYPE
		SYNTAX INTEGER
		MAX-ACCESS read-create
		STATUS current
		DESCRIPTION
			"Limit the transmission rate of the data packets(0-1000000Kbps)."
		::= {tpAclActionEntry 5}
	
	tpAclActionConditionBurst OBJECT-TYPE
		SYNTAX INTEGER
		MAX-ACCESS read-create
		STATUS current
		DESCRIPTION
			"The burst size of the condition rate limit metering."
		::= {tpAclActionEntry 6}
		
	tpAclActionConditionExceedOperation OBJECT-TYPE
		SYNTAX INTEGER{
		none(0),
		discard(1),
		remark-DSCP(2) 
		}
		MAX-ACCESS read-create
		STATUS current
		DESCRIPTION
			"Specify the disposal way of the data packets those are transmitted beyond the rate."
		::= {tpAclActionEntry 7}		

	tpAclActionConditionRemarkDscp OBJECT-TYPE
		SYNTAX INTEGER
		MAX-ACCESS read-create
		STATUS current
		DESCRIPTION
			"Specify the DSCP remarking value of the data packets when exceed-operation is set to reamrk-DSCP."
		::= {tpAclActionEntry 8}
		
	tpAclActionQosRemarkDscp OBJECT-TYPE
		SYNTAX  INTEGER{
			dscp64-noLimit(64),
			dscp0-be-000000(0),
			dscp1(1),
			dscp2(2),
			dscp3(3),
			dscp4(4),
			dscp5(5),
			dscp6(6),		
			dscp7(7),
			dscp8-cs1-001000(8),
			dscp9(9),
			dscp10-af11-001010(10),
			dscp11(11),
			dscp12-af12-001100(12),
			dscp13(13),
			dscp14-af13-001110(14),
			dscp15(15),
			dscp16-cs2-010000(16),
			dscp17(17),
			dscp18-af21-010010(18),
			dscp19(19),
			dscp20-af22-010100(20),
			dscp21(21),
			dscp22-af23-010110(22),
			dscp23(23),
			dscp24-cs3-011000(24),
			dscp25(25),
			dscp26-af31-011010(26),
			dscp27(27),
			dscp28-af32-011100(28),
			dscp29(29),
			dscp30-af33-011110(30),
			dscp31(31),
			dscp32-cs4-100000(32),
			dscp33(33),
			dscp34-af41-100010(34),
			dscp35(35),
			dscp36-af42-100100(36),
			dscp37(37),
			dscp38-af43-100110(38),
			dscp39(39),
			dscp40-cs5-101000(40),
			dscp41(41),
			dscp42(42),
			dscp43(43),
			dscp44(44),
			dscp45(45),
			dscp46-ef-101110(46),
			dscp47(47),
			dscp48-cs6-110000(48),
			dscp49(49),
			dscp50(50),
			dscp51(51),
			dscp52(52),
			dscp53(53),
			dscp54(54),
			dscp55(55),
			dscp56-cs7-111000(56),
			dscp57(57),
			dscp58(58),
			dscp59(59),
			dscp60(60),
			dscp61(61),
			dscp62(62),
			dscp63(63)
		}
		MAX-ACCESS  read-create
		STATUS  current
		DESCRIPTION
			"Specify the DSCP region for the data packets those match the corresponding ACL."
	::= { tpAclActionEntry 9 }

	tpAclActionQosRemarkLocalPri OBJECT-TYPE
		SYNTAX  INTEGER{
			default(8), 						
			tc0(0),
			tc1(1),
			tc2(2),
			tc3(3),
			tc4(4),
			tc5(5),
			tc6(6),
			tc7(7)
		}
		MAX-ACCESS  read-create
		STATUS  current
		DESCRIPTION
			"Specify the local priority for the data packets those match the corresponding ACL rule."
	::= { tpAclActionEntry 10 }

	tpAclActionQosRemark8021p OBJECT-TYPE
		SYNTAX  INTEGER{
			default(8), 						
			cos0(0),
			cos1(1),
			cos2(2),
			cos3(3),
			cos4(4),
			cos5(5),
			cos6(6),
			cos7(7)
		}
		MAX-ACCESS  read-create
		STATUS  current
		DESCRIPTION
			"Specify the 802.1p priority for the data packets those match the corresponding ACL rule."
	::= { tpAclActionEntry 11 }
	
	tpAclActionStatus OBJECT-TYPE
		SYNTAX  TPRowStatus
		MAX-ACCESS  read-create
		STATUS  current
		DESCRIPTION
			"the following two values are states:
			these values may be read or written
			active(1),
			notInService(2),

			the following value is a state:
			this value may be read, but not written
			notReady(3),

			the following three values are
			actions: these values may be written,
			but are never read
			createAndGo(4),
			createAndWait(5),
			destroy(6)"
	::= { tpAclActionEntry 12 }
	
	--policy bind to port configure
        
	tpAclPortBindTable OBJECT-TYPE
		SYNTAX  SEQUENCE OF TPACLPORTBINDENTRY
		MAX-ACCESS  not-accessible
		STATUS  current
		DESCRIPTION
						"A list of ACL port binding entries.
						 Here you can bind an ACL to a port. "
		::= { tpAclPortBindConfigure 1 }

	tpAclPortBindEntry OBJECT-TYPE
		SYNTAX  TPACLPORTBINDENTRY
		MAX-ACCESS  not-accessible
		STATUS  current
		DESCRIPTION
						"An entry contains of the information of ACL port binding."
		INDEX   { tpAclPortBindAclId}
		::= { tpAclPortBindTable 1 }
    
	TPACLPORTBINDENTRY ::=
			SEQUENCE {
					tpAclPortBindAclId
							INTEGER, 
					tpAclBindPortList
							OCTET STRING,
					tpAclPortBindStatus
							TPRowStatus
			}
            
	tpAclPortBindAclId OBJECT-TYPE
			SYNTAX  INTEGER   
			MAX-ACCESS  read-only
			STATUS  current
			DESCRIPTION
							"The ACL ID."
			::= { tpAclPortBindEntry 1 }
	
	tpAclBindPortList OBJECT-TYPE
			SYNTAX  OCTET STRING
			MAX-ACCESS  read-create
			STATUS  current
			DESCRIPTION
							"The port list that the ACL is bound to."
			::= { tpAclPortBindEntry 2 }
 
 tpAclPortBindStatus OBJECT-TYPE
			SYNTAX  TPRowStatus
			MAX-ACCESS  read-create
			STATUS  current
			DESCRIPTION
						 "the following two values are states:
						 these values may be read or written
						 active(1),
						 notInService(2),

						 the following value is a state:
						 this value may be read, but not written
						 notReady(3),

						 the following three values are
						 actions: these values may be written,
						 but are never read
						 createAndGo(4),
						 createAndWait(5),
						 destroy(6)"
			::= { tpAclPortBindEntry 3 }
      
	--policy bind to vlan configure
	tpAclVlanBindTable OBJECT-TYPE
			SYNTAX  SEQUENCE OF TPACLVLANBINDENTRY
			MAX-ACCESS  not-accessible
			STATUS  current
			DESCRIPTION
							"A list of ACL vlan binding entries.
							 Here you can bind an ACL to a VLAN."
			::= { tpAclVlanBindConfigure 2 }

	tpAclVlanBindEntry OBJECT-TYPE
			SYNTAX  TPACLVLANBINDENTRY
			MAX-ACCESS  not-accessible
			STATUS  current
			DESCRIPTION
							"An entry contains of the information of ACL vlan binding."
			INDEX   { tpAclVlanBindAclId,tpAclBindVlan}
			::= { tpAclVlanBindTable 1 }

	TPACLVLANBINDENTRY ::=
			SEQUENCE {
					tpAclVlanBindAclId
							INTEGER, 
					tpAclBindVlan
							INTEGER,
					tpAclVlanBindStatus
							TPRowStatus
			}
			
	tpAclVlanBindAclId OBJECT-TYPE
			SYNTAX  INTEGER  
			MAX-ACCESS  read-only
			STATUS  current
			DESCRIPTION
							"The ACL ID or name."
			::= { tpAclVlanBindEntry 1 }

	tpAclBindVlan OBJECT-TYPE
			SYNTAX  INTEGER
			MAX-ACCESS  read-only
			STATUS  current
			DESCRIPTION
							"the vlan that the ACL is bound to, the vlan must be existed."
			::= { tpAclVlanBindEntry 2 }

	tpAclVlanBindStatus OBJECT-TYPE
			SYNTAX  TPRowStatus
			MAX-ACCESS  read-create
			STATUS  current
			DESCRIPTION
						 "the following two values are states:
						 these values may be read or written
						 active(1),
						 notInService(2),

						 the following value is a state:
						 this value may be read, but not written
						 notReady(3),

						 the following three values are
						 actions: these values may be written,
						 but are never read
						 createAndGo(4),
						 createAndWait(5),
						 destroy(6)"
			::= { tpAclVlanBindEntry 3 }      

	-- the ACL bind list
			
END

