-- *****************************************************************
-- DLINKPRIME-QOS-MIB.mib : D-Link QoS MIB
--
-- Copyright (c) 2014 D-Link Corporation, all rights reserved.
--   
-- *****************************************************************

DLINKPRIME-QOS-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY,OBJECT-TYPE,Integer32,Unsigned32
            FROM SNMPv2-SMI   
        RowStatus, DisplayString,TruthValue,TEXTUAL-CONVENTION    
            FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP
		    FROM SNMPv2-CONF        
        dot1dBasePort
            FROM BRIDGE-MIB
        dlinkPrimeCommon	
            FROM DLINK-ID-REC-MIB;
		
   	
    dlinkPrimeQosMIB MODULE-IDENTITY
        LAST-UPDATED "201404260000Z"
        ORGANIZATION "D-Link Corp."
        CONTACT-INFO
            "         D-Link Corporation
             Postal: No. 289, Sinhu 3rd Rd., Neihu District,
                     Taipei City 114, Taiwan, R.O.C
             Tel:    +886-2-66000123
             E-mail: tsd@dlink.com.tw
            "
        DESCRIPTION
		    "The Structure of QoS Infomation for the 
		     proprietary enterprise."
        REVISION "201404260000Z"
        DESCRIPTION
            "Initial version of this MIB module."   
        ::= { dlinkPrimeCommon 13 }
 
-- -----------------------------------------------------------------------------
    dpQosMIBObjects     		OBJECT IDENTIFIER ::= { dlinkPrimeQosMIB 1 }
    dpQosMIBConformance			OBJECT IDENTIFIER ::= { dlinkPrimeQosMIB 2 }

-- -----------------------------------------------------------------------------
	dpQosScheduling   	   	OBJECT IDENTIFIER ::= { dpQosMIBObjects 1 }
	dpQosBandwidthCtrl              OBJECT IDENTIFIER ::= { dpQosMIBObjects 2 }
	dpQosCosCfg                     OBJECT IDENTIFIER ::= { dpQosMIBObjects 3 }
	
-- -----------------------------------------------------------------------------   	
  dpQosSchedulingModeTable OBJECT-TYPE
		SYNTAX          SEQUENCE OF DpQosSchedulingModeEntry
		MAX-ACCESS      not-accessible
		STATUS          current                                          		
		DESCRIPTION
		    "This table consists of a list of scheduling mechanism configurations
            for ports."
		::= { dpQosScheduling 1 }

	dpQosSchedulingModeEntry OBJECT-TYPE
		SYNTAX          DpQosSchedulingModeEntry
		MAX-ACCESS      not-accessible
		STATUS          current
		DESCRIPTION
		      "An entry configures the scheduling mode on an interface."
		INDEX   { dot1dBasePort }
		::= { dpQosSchedulingModeTable 1 }

	DpQosSchedulingModeEntry ::= 		SEQUENCE {		  
		  dpQosSchedulingMode      INTEGER
	  }
	    
  dpQosSchedulingMode OBJECT-TYPE
		SYNTAX	INTEGER {
            sp(1),
            wrr(2)
    }
		MAX-ACCESS      read-write
		STATUS          current
		DESCRIPTION
		   "This object indicates the mechanism of QoS scheduling on the interface.
		   "
		::= { dpQosSchedulingModeEntry 1 }

-- -----------------------------------------------------------------------------
	dpQosBandwidthCtrlTable OBJECT-TYPE
		SYNTAX          SEQUENCE OF DpQosBandwidthCtrlEntry
		MAX-ACCESS      not-accessible
		STATUS  current
		DESCRIPTION
		    "A table consists of a list of configurations for bandwidth control 
            on interfaces."
		::= { dpQosBandwidthCtrl 1 }
	
	dpQosBandwidthCtrlEntry OBJECT-TYPE
		SYNTAX          DpQosBandwidthCtrlEntry
		MAX-ACCESS      not-accessible
		STATUS  current
		DESCRIPTION
		    "An entry configures the bandwidth on an interface.
            An entry will exist for every applicable port.
            "
		INDEX   { dot1dBasePort }
		::= { dpQosBandwidthCtrlTable 1 }
	
	DpQosBandwidthCtrlEntry ::=		SEQUENCE {		
		  dpQosBandwidthRxRate		  INTEGER,   
		  dpQosBandwidthTxRate	    INTEGER
		}
			
	dpQosBandwidthRxRate OBJECT-TYPE
		SYNTAX	INTEGER {
            noLimit(1),
            limit_8Kbps(2),
            limit_16Kbps(3),
            limit_32Kbps(4),
            limit_64Kbps(5),
            limit_128Kbps(6),
            limit_256Kbps(7),
            limit_512Kbps(8),
            limit_1Mbps(9),
            limit_2Mbps(10),
            limit_4Mbps(11),
            limit_8Mbps(12),
            limit_16Mbps(13),
            limit_32Mbps(14),
            limit_64Mbps(15),
            limit_128Mbps(16),
            limit_256Mbps(17),
            limit_512Mbps(18)
		}
		MAX-ACCESS      read-write
		STATUS          current
		DESCRIPTION
		    "This object indicates Rx Rate of the specified port. 
		    The special value of 0 indicates there is no bandwidth 
		    limit for ingress packets.    
            "
		::= { dpQosBandwidthCtrlEntry 1 }    
		
	dpQosBandwidthTxRate OBJECT-TYPE
		SYNTAX	INTEGER {
            noLimit(1),
            limit_16Kbps(3),
            limit_32Kbps(4),
            limit_64Kbps(5),
            limit_128Kbps(6),
            limit_256Kbps(7),
            limit_512Kbps(8),
            limit_1Mbps(9),
            limit_2Mbps(10),
            limit_4Mbps(11),
            limit_8Mbps(12),
            limit_16Mbps(13),
            limit_32Mbps(14),
            limit_64Mbps(15),
            limit_128Mbps(16),
            limit_256Mbps(17),
            limit_512Mbps(18)
	  }		
		MAX-ACCESS      read-write
		STATUS          current
		DESCRIPTION
		    "This object indicates Tx Rate of the specified port. 
		    The special value of 0 indicates there is no bandwidth 
		    limit for egress packets.    
		    It is based on the dpQosBandwidthTxRateMode field and
	       	"
		::= { dpQosBandwidthCtrlEntry 2 }	      

-- -----------------------------------------------------------------------------     
  dpQosCosCfgTable OBJECT-TYPE
		SYNTAX          SEQUENCE OF DpQosCosCfgEntry
		MAX-ACCESS      not-accessible
		STATUS          current                                          		
		DESCRIPTION
		    "This table consists of a list of CoS configurations
            for ports."
		::= { dpQosCosCfg 1 }

  dpQosCosCfgEntry OBJECT-TYPE
		SYNTAX          DpQosCosCfgEntry
		MAX-ACCESS      not-accessible
		STATUS          current
		DESCRIPTION
		      "An entry configures the CoS on an interface."
		INDEX   { dot1dBasePort }
		::= { dpQosCosCfgTable 1 }

	DpQosCosCfgEntry ::= 		SEQUENCE {		  
		dpQosCfgSetCos      INTEGER
	  }
	    
  dpQosCfgSetCos OBJECT-TYPE
		SYNTAX	INTEGER {
            low(1),
            medium(2),
            high(3),
            highest(4)
    }
		MAX-ACCESS      read-write
		STATUS          current
		DESCRIPTION
		   "This object indicates the CoS on the interface.
		   "
		::= { dpQosCosCfgEntry 1 }

-- -----------------------------------------------------------------------------     
--  ***************************************************************************	
--  Conformance
--  ***************************************************************************			   		
	dpQosCompliances OBJECT IDENTIFIER ::= { dpQosMIBConformance 1 }
		
	dpQosCompliance MODULE-COMPLIANCE
		STATUS current
		DESCRIPTION 
			"The compliance statement for entities which implement the 
			DLINKPRIME-QOS-MIB."
		MODULE -- this module
		
		GROUP       dpQosSchedulingGroup 
           DESCRIPTION 
              "This group is required only if QoS scheduling feature
              is implemented by the agent."
		
		GROUP       dpQosPortBandwidthCtrlGroup 
           DESCRIPTION 
              "This group is required only if port-specific bandwidth control feature is
              implemented by the agent."

		GROUP       dpQosCoSGroup 
           DESCRIPTION 
              "This group is required only if CoS feature
              is implemented by the agent."

		::= { dpQosCompliances 1 }
		
	dpQosGroups OBJECT IDENTIFIER ::= { dpQosMIBConformance 2 }
	
	dpQosSchedulingGroup OBJECT-GROUP
		OBJECTS { 
		   	dpQosSchedulingMode
		}
		STATUS current
		DESCRIPTION 
			"A collection of objects providing QoS scheduling configuration."
		::= { dpQosGroups 1 }
				
	dpQosPortBandwidthCtrlGroup OBJECT-GROUP
		OBJECTS { 
		    dpQosBandwidthRxRate,
        dpQosBandwidthTxRate
		}
		STATUS current
		DESCRIPTION 
			"A collection of objects providing bandwidth configuration for ports."
		::= { dpQosGroups 2 }

	dpQosCoSGroup OBJECT-GROUP
		OBJECTS { 
		    dpQosCfgSetCos
		}
		STATUS current
		DESCRIPTION 
			"A collection of objects providing CoS configuration for ports."
		::= { dpQosGroups 3 }

END
