  TPLINK-QOS-MIB DEFINITIONS ::= BEGIN

       IMPORTS
          OBJECT-TYPE,MODULE-IDENTITY
        	  	         	FROM SNMPv2-SMI
		  DisplayString 
      						FROM SNMPv2-TC  							
		  ifIndex
							FROM RFC1213-MIB							
		  tplinkMgmt
							FROM TPLINK-MIB;
							
	tplinkQosMIB MODULE-IDENTITY
		LAST-UPDATED    "201212130930Z"
		ORGANIZATION    "TPLINK"
		CONTACT-INFO    "www.tplink.com.cn"
		DESCRIPTION	    "Private MIB for system time configuration."
		REVISION        "201212130930Z"
		DESCRIPTION
				"Initial version of this MIB module."
		::= { tplinkMgmt 22 }
		
	tplinkQosMIBObjects		OBJECT IDENTIFIER	::= { tplinkQosMIB 1 }
	tplinkQosNotifications	OBJECT IDENTIFIER	::= { tplinkQosMIB 2 }
	
		tplinkQosBasicConfig  		OBJECT IDENTIFIER ::= {tplinkQosMIBObjects 1}
    tplinkQosScheduler  		OBJECT IDENTIFIER ::= {tplinkQosMIBObjects 2}
		tplinkQos8021p				OBJECT IDENTIFIER ::= {tplinkQosMIBObjects 3}
  	tplinkQos8021pRemap				OBJECT IDENTIFIER ::= {tplinkQosMIBObjects 4}
  	tplinkQosDSCP				OBJECT IDENTIFIER ::= {tplinkQosMIBObjects 5}
  			           
        -- the qos basic config
              
         tpQosBasicConfigTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF TpQosBasicConfigEntry
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "A list of qos basic config entries. Here you can configure the port priority."
            ::= { tplinkQosBasicConfig 1 }

        tpQosBasicConfigEntry OBJECT-TYPE
            SYNTAX  TpQosBasicConfigEntry
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "An entry contains of the information of qos basic config."
            INDEX   { ifIndex }
            ::= { tpQosBasicConfigTable 1 }
    
        TpQosBasicConfigEntry ::=
            SEQUENCE {
								tpQosBasicConfigPort
										DisplayString, 
								tpQosBasicConfigPri
										INTEGER,
								tpQosBasicConfigTrust
										INTEGER,
								tpQosBasicConfigLag
										OCTET STRING (SIZE (1..255))
										
            }
            
        tpQosBasicConfigPort OBJECT-TYPE
            SYNTAX  DisplayString  
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The physical port number of the switch. "
            ::= { tpQosBasicConfigEntry 1 }
        
        tpQosBasicConfigPri OBJECT-TYPE
            SYNTAX  INTEGER{
	      		cos0(0), 						
	      		cos1(1),
	      		cos2(2),
	      		cos3(3),
	      		cos4(4),
	      		cos5(5),
	      		cos6(6),		
	      		cos7(7)					
	      		}
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "0. Cos0
                     1. Cos1
                     2. Cos2
                     3. Cos3
                     4. Cos4
                     5. Cos5
                     6. Cos6
                     7. Cos7
                     Specify the priority for the port."
            ::= { tpQosBasicConfigEntry 2 }
						
				tpQosBasicConfigTrust OBJECT-TYPE
						SYNTAX INTEGER{
						untrust(0),
						trust-8021p(1),
						trust-DSCP(2)
						}
						MAX-ACCESS read-write
						STATUS current
						DESCRIPTION
							"Trust mode for specified port.
							 Untrust--Port priority activated.
							 Trust-8021p--802.1p priority activated.
							 Trust-DSCP--IP DSCP priority activated."  
						::={ tpQosBasicConfigEntry 3 }		
						
      tpQosBasicConfigLag OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE (1..255))  
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The LAG number which the port belongs to. "
            ::= { tpQosBasicConfigEntry 4 }
						
			tpQosSchedulerPort OBJECT-TYPE
					SYNTAX OCTET STRING 
					MAX-ACCESS  read-write
					STATUS  current
					DESCRIPTION
									"The physical port number of the switch. Input a port to get or configure the port scheduler."
						::= { tplinkQosScheduler 1 }	
						
			tpQosSchedulerTable OBJECT-TYPE
				SYNTAX  SEQUENCE OF TpQosSchedulerEntry
				MAX-ACCESS  not-accessible
				STATUS  current
				DESCRIPTION
								"A list of qos scheduler config entries. Here you can configure the qos scheduler."
				::= { tplinkQosScheduler 2 }
			
			tpQosSchedulerEntry OBJECT-TYPE
				SYNTAX  TpQosSchedulerEntry
				MAX-ACCESS  not-accessible
				STATUS  current
				DESCRIPTION
								"An entry contains of the information of qos scheduler."
				INDEX   { tpQosSchedulerConfigTc }
				::= { tpQosSchedulerTable 1 }   
      
			TpQosSchedulerEntry ::= 
				SEQUENCE {
						tpQosSchedulerConfigTc
								INTEGER, 
						tpQosSchedulerConfigMode
								INTEGER,
						tpQosSchedulerConfigWeight
								INTEGER,
						tpQosSchedulerConfigMinBandwidth
								INTEGER,
						tpQosSchedulerConfigManagementType
								INTEGER
				}			
				
			tpQosSchedulerConfigTc OBJECT-TYPE
				SYNTAX INTEGER{
					tc0(0), 						
					tc1(1),
					tc2(2),
					tc3(3),
					tc4(4),
					tc5(5),
					tc6(6),		
					tc7(7)	
				}
				MAX-ACCESS read-only
				STATUS current
				DESCRIPTION
					"Traffic class queue ID."
				::= {tpQosSchedulerEntry 1}
				
			tpQosSchedulerConfigMode OBJECT-TYPE
				SYNTAX INTEGER{
					strict(0),
					weighted(1)
				}
				MAX-ACCESS read-write
				STATUS current
				DESCRIPTION
					"Queue schedule mode: Strict-Priority or Weighted-Round-Robin."
				::= {tpQosSchedulerEntry 2}
				
			tpQosSchedulerConfigWeight OBJECT-TYPE
				SYNTAX INTEGER
				MAX-ACCESS read-write
				STATUS current
				DESCRIPTION
					"Weight of the queue: 0 stands for Strict schedule mode; 1-127 stands for WRR schedule mode."
				::= {tpQosSchedulerEntry 3}
				
			tpQosSchedulerConfigMinBandwidth OBJECT-TYPE
				SYNTAX INTEGER
				MAX-ACCESS read-write
				STATUS current
				DESCRIPTION
					"Min-Bandwidth of the specified queue, value 0%-100%."
				::= {tpQosSchedulerEntry 4}
			
			tpQosSchedulerConfigManagementType OBJECT-TYPE
				SYNTAX INTEGER{
					taildrop(0)
				}
				MAX-ACCESS read-write
				STATUS current
				DESCRIPTION
					"Queue drop mode: taildrop."
				::= {tpQosSchedulerEntry 5}
				
        tpQos8021pTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF TpQos8021pEntry
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "A list of qos 8021p entries.
                     Here you can configure 802.1P Priority."
            ::= { tplinkQos8021p 1 }

        tpQos8021pEntry OBJECT-TYPE
            SYNTAX  TpQos8021pEntry
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "An entry contains of the information of qos 8021p."
            INDEX   { tpQos8021pPriTag }
            ::= { tpQos8021pTable 1 }
    
        TpQos8021pEntry ::=
            SEQUENCE {
                tpQos8021pPriTag
										INTEGER,
                tpQos8021pPriLevel
										INTEGER
            }
            
        tpQos8021pPriTag OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "Indicates the precedence level defined by IEEE802.1P. "
            ::= { tpQos8021pEntry 1 }
        
        tpQos8021pPriLevel OBJECT-TYPE
            SYNTAX  INTEGER{
            tc0(0),
            tc1(1),
            tc2(2),
            tc3(3),
						tc4(4),
						tc5(5),
						tc6(6),
						tc7(7)
            }
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the priority level the packets with tag are mapped to. 
                     The priority levels are labeled as TC."
            ::= { tpQos8021pEntry 2 }
	
			
        tpQos8021pRemapTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF TpQos8021pRemapEntry
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "A list of qos 8021p remapping entries.
                     Here you can configure 802.1P Priority Remapping."
            ::= { tplinkQos8021pRemap 1 }

        tpQos8021pRemapEntry OBJECT-TYPE
            SYNTAX  TpQos8021pRemapEntry
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "An entry contains of the information of qos 8021p remapping."
            INDEX   { ifIndex }
            ::= { tpQos8021pRemapTable 1 }
    
        TpQos8021pRemapEntry ::=
            SEQUENCE {
								tpQos8021pPort
										DisplayString,
                tpQos8021pPriTag0
										INTEGER,
                tpQos8021pPriTag1
										INTEGER,
                tpQos8021pPriTag2
										INTEGER,
                tpQos8021pPriTag3
										INTEGER,
                tpQos8021pPriTag4
										INTEGER,
                tpQos8021pPriTag5
										INTEGER,
                tpQos8021pPriTag6
										INTEGER,
                tpQos8021pPriTag7
										INTEGER,
								tpQos8021pPriLag
										OCTET STRING (SIZE (1..255))
            }

        tpQos8021pPort OBJECT-TYPE
            SYNTAX  DisplayString  
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The physical port number of the switch. "
            ::= { tpQos8021pRemapEntry 1 }
            
        tpQos8021pPriTag0 OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the remapping value of the specified 802.1P priority."
            ::= { tpQos8021pRemapEntry 2 }
        tpQos8021pPriTag1 OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the remapping value of the specified 802.1P priority."
            ::= { tpQos8021pRemapEntry 3 }   
        tpQos8021pPriTag2 OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the remapping value of the specified 802.1P priority."
            ::= { tpQos8021pRemapEntry 4 }
        tpQos8021pPriTag3 OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the remapping value of the specified 802.1P priority."
            ::= { tpQos8021pRemapEntry 5 }	
        tpQos8021pPriTag4 OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the remapping value of the specified 802.1P priority."
            ::= { tpQos8021pRemapEntry 6 }
        tpQos8021pPriTag5 OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the remapping value of the specified 802.1P priority."
            ::= { tpQos8021pRemapEntry 7 }   
        tpQos8021pPriTag6 OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the remapping value of the specified 802.1P priority."
            ::= { tpQos8021pRemapEntry 8 }
        tpQos8021pPriTag7 OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the remapping value of the specified 802.1P priority."
            ::= { tpQos8021pRemapEntry 9 }						
       tpQos8021pPriLag OBJECT-TYPE
            SYNTAX  OCTET STRING (SIZE (1..255))  
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "The LAG number which the port belongs to. "
            ::= { tpQos8021pRemapEntry 10 }
       -- the qos dscp config
        
        tpQosDSCPPort OBJECT-TYPE
            SYNTAX OCTET STRING 
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "The physical port number of the switch. Input a port to get or configure the DSCP priority."
	            ::= { tplinkQosDSCP 1 }	
        
         tpQosDSCPTable OBJECT-TYPE
            SYNTAX  SEQUENCE OF TpQosDSCPEntry
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "A list of qos DSCP entries.
                     Here you can configure DSCP Priority."
            ::= { tplinkQosDSCP 2 }

        tpQosDSCPEntry OBJECT-TYPE
            SYNTAX  TpQosDSCPEntry
            MAX-ACCESS  not-accessible
            STATUS  current
            DESCRIPTION
                    "An entry contains of the information of qos DSCP."
            INDEX   { tpQosDSCPPriTag }
            ::= { tpQosDSCPTable 1 }
    
        TpQosDSCPEntry ::=
            SEQUENCE {
                tpQosDSCPPriTag
										INTEGER,
                tpQosDSCPPriLevel
										INTEGER,
								tpQosDSCPPriRemap
										INTEGER
            }
            
        tpQosDSCPPriTag OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-only
            STATUS  current
            DESCRIPTION
                    "Indicates the priority determined by the DS region of IP datagram. 
                     It ranges from 0 to 63. "
            ::= { tpQosDSCPEntry 1 }
        
        tpQosDSCPPriLevel OBJECT-TYPE
            SYNTAX  INTEGER{
            			cos0(0),
            			cos1(1),
            			cos2(2),
            			cos3(3),
            			cos4(4),
            			cos5(5),
            			cos6(6),
            			cos7(7)
            }
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the priority level the packets with tag are mapped to. 
                     The priority levels are labeled as cos0 - cos7."
            ::= { tpQosDSCPEntry 2 }

						tpQosDSCPPriRemap OBJECT-TYPE
            SYNTAX  INTEGER
            MAX-ACCESS  read-write
            STATUS  current
            DESCRIPTION
                    "Indicates the re-map DSCP value of the specified DSCP, it ranges from 0 to 63. "
            ::= { tpQosDSCPEntry 3 }
END

