	  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.cn"
	    DESCRIPTION
	             "Private MIB for acl."
	    REVISION        "201212130930Z"
	    DESCRIPTION
	            "Initial version of this MIB module."
	    ::= { tplinkMgmt 26 }
	    
		tplinkAclMIBObjects OBJECT IDENTIFIER ::= {tplinkAclMIB 1}
		tplinkAclNotifications OBJECT IDENTIFIER ::= {tplinkAclMIB 2}
		
		tpPolicyConfigure  				OBJECT IDENTIFIER ::= {tplinkAclMIBObjects 2}
		tpPolicyBindConfigure			OBJECT IDENTIFIER ::= {tplinkAclMIBObjects 3}
		tpAclBindConfigure				OBJECT IDENTIFIER ::= {tplinkAclMIBObjects 4}
			
        -- the policy list
        
         tpPolicyTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF TPPOLICYENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "A list of policy entries.
                     Here you can add ACLs and create corresponding actions for the policy."
            ::= { tpPolicyConfigure 1 }

        tpPolicyEntry OBJECT-TYPE
            SYNTAX  TPPOLICYENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "An entry contains of the information of policy."
            INDEX   { tpPolicyName,tpAclId}
            ::= { tpPolicyTable 1 }
    
        TPPOLICYENTRY ::=
            SEQUENCE {
								tpPolicyName
										OCTET STRING, 
								tpAclId
										INTEGER,
								tpMirrorPort
										INTEGER,
								tpConditionRate
										INTEGER,
								tpIfExceedOperation
										INTEGER,
								tpRedirectPort
										INTEGER,
								tpQosRemarkDSCP
										INTEGER,
								tpQosRemarkLocalPri
										INTEGER,
								tpPolicyStatus
										TPRowStatus
            }
            
        tpPolicyName OBJECT-TYPE
            SYNTAX  OCTET STRING  
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "policy name"
            ::= { tpPolicyEntry 1 }
        
        tpAclId OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "the aclId must be existent"
            ::= { tpPolicyEntry 2 }
       
       tpMirrorPort OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-create
            STATUS  current
            DESCRIPTION
                    "mirror the data packets in the policy to the specific port.
                     if traffic mirror doesnt work, please set it to 0"
            ::= { tpPolicyEntry 3 }
       
       tpConditionRate OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-create
            STATUS  current
            DESCRIPTION
                    "limit the transmission rate of the data packets in the policy.(1-1000000Kbps), 
                     if traffic condition doesnt work, please set it to 0"
            ::= { tpPolicyEntry 4 }
       
      tpIfExceedOperation OBJECT-TYPE
            SYNTAX  INTEGER
            {
            	none(0),
            	drop(1)
            }
            MAX-ACCESS  read-create
            STATUS  current
            DESCRIPTION
                    "Specify the disposal way of the data packets those are transmitted beyond the rate.
                     (you must set the conditionRate firstly)"
            ::= { tpPolicyEntry 5 }
            
		tpRedirectPort OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-create
            STATUS  current
            DESCRIPTION
                    "Forward the data packets those match the corresponding ACL to the specific port, 
                     if you want redirect to vlan, please set it to 0"
            ::= { tpPolicyEntry 6 }
       
       tpQosRemarkDSCP 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."
            ::= { tpPolicyEntry 7 }
       
       tpQosRemarkLocalPri OBJECT-TYPE
            SYNTAX  INTEGER{
	      		default(0), 						
	      		tc0(1),
	      		tc1(2),
	      		tc2(3),
	      		tc3(4),
				tc4(5),
				tc5(6),
				tc6(7),
				tc7(8)
	      		}
            MAX-ACCESS  read-create
            STATUS  current
            DESCRIPTION
                    "Specify the local priority for the data packets those match the corresponding ACL."
            ::= { tpPolicyEntry 8 }
       
       tpPolicyStatus 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)"
            ::= { tpPolicyEntry 9 }
            
       -- the policy bind list
       --policy bind to port configure
        
         tpPolicyBindPortTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF TPPOLICYBINDPORTENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "A list of policy port binding entries.
                     Here you can bind a policy to a port. "
            ::= { tpPolicyBindConfigure 1 }

        tpPolicyBindPortEntry OBJECT-TYPE
            SYNTAX  TPPOLICYBINDPORTENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "An entry contains of the information of policy port binding."
            INDEX   { tpBindPortPolicyName,tpPolicyPort}
            ::= { tpPolicyBindPortTable 1 }
    
        TPPOLICYBINDPORTENTRY ::=
            SEQUENCE {
								tpBindPortPolicyName
										OCTET STRING, 
								tpPolicyPort
										INTEGER,
								tpPolicyBindPortStatus
										TPRowStatus
            }
            
        tpBindPortPolicyName OBJECT-TYPE
            SYNTAX  OCTET STRING   
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The name of the policy you want to bind.(the policy name must be existent)"
            ::= { tpPolicyBindPortEntry 1 }
        
        tpPolicyPort OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The port that the policy bind to"
            ::= { tpPolicyBindPortEntry 2 }
       
       tpPolicyBindPortStatus 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)"
            ::= { tpPolicyBindPortEntry 3 }
      
       --policy bind to vlan configure
       tpPolicyBindVlanTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF TPPOLICYBINDVLANENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "A list of policy vlan binding entries.
                     Here you can bind a policy to a VLAN."
            ::= { tpPolicyBindConfigure 2 }

        tpPolicyBindVlanEntry OBJECT-TYPE
            SYNTAX  TPPOLICYBINDVLANENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "An entry contains of the information of policy vlan binding."
            INDEX   { tpBindVlanPolicyName,tpPolicyVlan}
            ::= { tpPolicyBindVlanTable 1 }
    
        TPPOLICYBINDVLANENTRY ::=
            SEQUENCE {
								tpBindVlanPolicyName
										OCTET STRING, 
								tpPolicyVlan
										INTEGER,
								tpPolicyBindVlanStatus
										TPRowStatus
            }
            
        tpBindVlanPolicyName OBJECT-TYPE
            SYNTAX  OCTET STRING  
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The name of the policy you want to bind.(the policy name must be existent)"
            ::= { tpPolicyBindVlanEntry 1 }
        
        tpPolicyVlan OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "the vlan that the policy bind to, the vlan must be existent"
            ::= { tpPolicyBindVlanEntry 2 }
      
       tpPolicyBindVlanStatus 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)"
            ::= { tpPolicyBindVlanEntry 3 }      

       -- the ACL bind list
       --ACL bind to port configure
        
         tpAclBindPortTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF TPACLBINDPORTENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "A list of ACL port binding entries.
                     Here you can bind a ACL to a port. "
            ::= { tpAclBindConfigure 1 }

        tpAclBindPortEntry OBJECT-TYPE
            SYNTAX  TPACLBINDPORTENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "An entry contains of the information of ACL port binding."
            INDEX   { tpBindPortAclId,tpAclPort}
            ::= { tpAclBindPortTable 1 }
    
        TPACLBINDPORTENTRY ::=
            SEQUENCE {
								tpBindPortAclId
										OCTET STRING, 
								tpAclPort
										INTEGER,
								tpAclBindPortStatus
										TPRowStatus
            }
            
        tpBindPortAclId OBJECT-TYPE
            SYNTAX  OCTET STRING   
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The Id of the ACL you want to bind.(the ACL Id must be existent)"
            ::= { tpAclBindPortEntry 1 }
        
        tpAclPort OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The port that the ACL bind to"
            ::= { tpAclBindPortEntry 2 }
       
       tpAclBindPortStatus 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)"
            ::= { tpAclBindPortEntry 3 }
      
       --ACL bind to vlan configure
       tpAclBindVlanTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF TPACLBINDVLANENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "A list of ACL vlan binding entries.
                     Here you can bind a ACL to a VLAN."
            ::= { tpAclBindConfigure 2 }

        tpAclBindVlanEntry OBJECT-TYPE
            SYNTAX  TPACLBINDVLANENTRY
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "An entry contains of the information of ACL vlan binding."
            INDEX   { tpBindVlanAclId,tpAclVlan}
            ::= { tpAclBindVlanTable 1 }
    
        TPACLBINDVLANENTRY ::=
            SEQUENCE {
								tpBindVlanAclId
										OCTET STRING, 
								tpAclVlan
										INTEGER,
								tpAclBindVlanStatus
										TPRowStatus
            }
            
        tpBindVlanAclId OBJECT-TYPE
            SYNTAX  OCTET STRING  
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The Id of the ACL you want to bind.(the ACL Id must be existent)"
            ::= { tpAclBindVlanEntry 1 }
        
        tpAclVlan OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "the vlan that the ACL bind to, the vlan must be existent"
            ::= { tpAclBindVlanEntry 2 }
      
       tpAclBindVlanStatus 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)"
            ::= { tpAclBindVlanEntry 3 }      
			
END

