MELLANOX-QOS-MIB DEFINITIONS ::= BEGIN

IMPORTS
	OBJECT-TYPE, MODULE-IDENTITY, Counter64, 
	Integer32
		FROM SNMPv2-SMI
	DisplayString
		FROM SNMPv2-TC
	InterfaceIndex
        FROM IF-MIB
	mellanoxQoS
		FROM MELLANOX-SMI-MIB;

-- Mellanox QoS MIB
-- 

mellanoxQoSMib MODULE-IDENTITY
	LAST-UPDATED "201707260000Z"
	ORGANIZATION 
		"Mellanox Technologies, Inc."
	CONTACT-INFO 
		"
		Mellanox Technologies, Inc.
		350 Oakmead Parkway, Suite 100
		Sunnyvale, CA 94085
		Tel: 408-970-3400
		Fax: 408-970-3403
		E-mail: info@mellanox.com
		        "
	DESCRIPTION 
		"Mellanox QoS MIB"

	REVISION "201707260000Z"
	DESCRIPTION 
		"Fixed syntax errors"
::= { mellanoxQoS 1 }


mellanoxQoSPrioTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MellanoxQoSPrioEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of priorities on interfaces and their relevant 
			counters."
    ::= { mellanoxQoSMib 1 }

mellanoxQoSPrioEntry OBJECT-TYPE
    SYNTAX      MellanoxQoSPrioEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing counters relevant for priority on 
			an interface."
    INDEX   { mellanoxQoSPrioIfIndex,
			  mellanoxQoSPrioIndex}
    ::= { mellanoxQoSPrioTable 1 }

MellanoxQoSPrioEntry ::=
    SEQUENCE {
        mellanoxQoSPrioIfIndex		InterfaceIndex,
        mellanoxQoSPrioIndex		Integer32,
        mellanoxQoSPrioRxPkts	Counter64,
        mellanoxQoSPrioRxUcastPkts  Counter64,
        mellanoxQoSPrioRxMcastPkts  Counter64,
        mellanoxQoSPrioRxBcastPkts  Counter64,  
        mellanoxQoSPrioRxBytes		Counter64,
        mellanoxQoSPrioRxPausePkts	Counter64,
        mellanoxQoSPrioRxPauseDuration  Counter64,
        mellanoxQoSPrioTxPkts	Counter64,
        mellanoxQoSPrioTxUcastPkts  Counter64,
        mellanoxQoSPrioTxMcastPkts  Counter64,
        mellanoxQoSPrioTxBcastPkts  Counter64,  
        mellanoxQoSPrioTxBytes		Counter64,
        mellanoxQoSPrioTxPausePkts	Counter64
    }

mellanoxQoSPrioIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Interface index (taken from System II ifIndex)."
    ::= { mellanoxQoSPrioEntry 1 }

mellanoxQoSPrioIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Index of the priority on the interface."
    ::= { mellanoxQoSPrioEntry 2 }

mellanoxQoSPrioRxPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 3 }

mellanoxQoSPrioRxUcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Unicast Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 4 }
	
mellanoxQoSPrioRxMcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Multicast Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 5 }

mellanoxQoSPrioRxBcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Broadcast Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 6 }

mellanoxQoSPrioRxBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Bytes counted on the priority."
    ::= { mellanoxQoSPrioEntry 7 }
	
mellanoxQoSPrioRxPausePkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Pause Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 8 }
	
mellanoxQoSPrioRxPauseDuration OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Pause Duration (in milliseconds) measured on the priority."
    ::= { mellanoxQoSPrioEntry 9 }

mellanoxQoSPrioTxPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmitted Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 10 }

mellanoxQoSPrioTxUcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmitted Unicast Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 11 }
	
mellanoxQoSPrioTxMcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmitted Multicast Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 12 }

mellanoxQoSPrioTxBcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmitted Broadcast Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 13 }

mellanoxQoSPrioTxBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmitted Bytes counted on the priority."
    ::= { mellanoxQoSPrioEntry 14 }
	
mellanoxQoSPrioTxPausePkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmitted Pause Packets counted on the priority."
    ::= { mellanoxQoSPrioEntry 15 }

mellanoxQoSPFCTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MellanoxQoSPFCEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of PFC-related queues on interfaces and their relevant 
			counters."
    ::= { mellanoxQoSMib 2 }

mellanoxQoSPFCEntry OBJECT-TYPE
    SYNTAX      MellanoxQoSPFCEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing counters relevant for PFC-related queue on 
			an interface."
    INDEX   { mellanoxQoSPFCIfIndex,
			  mellanoxQoSPFCIndex}
    ::= { mellanoxQoSPFCTable 1 }

MellanoxQoSPFCEntry ::=
    SEQUENCE {
        mellanoxQoSPFCIfIndex		InterfaceIndex,
        mellanoxQoSPFCIndex			Integer32,
        mellanoxQoSPFCRxPausePkts	Counter64,
        mellanoxQoSPFCRxPauseDuration  Counter64,
        mellanoxQoSPFCTxPausePkts	Counter64,
		mellanoxQoSPFCTxPauseDuration  Counter64
    }

mellanoxQoSPFCIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Interface index (taken from System II ifIndex)."
    ::= { mellanoxQoSPFCEntry 1 }

mellanoxQoSPFCIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Index of the PFC-related queue on the interface."
    ::= { mellanoxQoSPFCEntry 2 }

mellanoxQoSPFCRxPausePkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Pause Packets counted on the PFC-related queue."
    ::= { mellanoxQoSPFCEntry 3 }
	
mellanoxQoSPFCRxPauseDuration OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Pause Duration (in milliseconds) measured on the PFC-related queue."
    ::= { mellanoxQoSPFCEntry 4 }

mellanoxQoSPFCTxPausePkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmitted Pause Packets counted on the PFC-related queue."
    ::= { mellanoxQoSPFCEntry 5 }
	
mellanoxQoSPFCTxPauseDuration OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmitted Pause Duration (in milliseconds) measured on the PFC-related queue."
    ::= { mellanoxQoSPFCEntry 6 }

mellanoxQoSPGTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MellanoxQoSPGEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of priority groups on interfaces and their relevant 
			counters."
    ::= { mellanoxQoSMib 3 }

mellanoxQoSPGEntry OBJECT-TYPE
    SYNTAX      MellanoxQoSPGEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing counters relevant for priority group on 
			an interface."
    INDEX   { mellanoxQoSPGIfIndex,
			  mellanoxQoSPGIndex}
    ::= { mellanoxQoSPGTable 1 }

MellanoxQoSPGEntry ::=
    SEQUENCE {
        mellanoxQoSPGIfIndex		InterfaceIndex,
        mellanoxQoSPGIndex		Integer32,
        mellanoxQoSPGPkts	Counter64,
        mellanoxQoSPGBytes		Counter64,
        mellanoxQoSPGQueueDepth	Counter64,
        mellanoxQoSPGNoBufferDiscard  Counter64,
        mellanoxQoSPGSharedBufferDiscard  Counter64
    }

mellanoxQoSPGIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Interface index (taken from System II ifIndex)."
    ::= { mellanoxQoSPGEntry 1 }

mellanoxQoSPGIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Index of the priority on the interface."
    ::= { mellanoxQoSPGEntry 2 }

mellanoxQoSPGPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Packets counted on the priority group."
    ::= { mellanoxQoSPGEntry 3 }

mellanoxQoSPGBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Bytes counted on the priority group."
    ::= { mellanoxQoSPGEntry 4 }

mellanoxQoSPGQueueDepth OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Queue Depth measured on the priority group."
    ::= { mellanoxQoSPGEntry 5 }

mellanoxQoSPGNoBufferDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "No-Buffer Discard errors counted on the priority group."
    ::= { mellanoxQoSPGEntry 6 }

mellanoxQoSPGSharedBufferDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Shared-Buffer Discard errors counted on the priority group."
    ::= { mellanoxQoSPGEntry 7 }

mellanoxQoSTCTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MellanoxQoSTCEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of Traffic Classes on interfaces and their relevant 
			counters."
    ::= { mellanoxQoSMib 4 }

mellanoxQoSTCEntry OBJECT-TYPE
    SYNTAX      MellanoxQoSTCEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing counters relevant for Traffic Classes on 
			an interface."
    INDEX   { mellanoxQoSTCIfIndex,
			  mellanoxQoSTCIndex}
    ::= { mellanoxQoSTCTable 1 }

MellanoxQoSTCEntry ::=
    SEQUENCE {
        mellanoxQoSTCIfIndex		InterfaceIndex,
        mellanoxQoSTCIndex		Integer32,
        mellanoxQoSTCPkts	Counter64,
        mellanoxQoSTCBytes		Counter64,
        mellanoxQoSTCSXQueueDepth	Counter64,
        mellanoxQoSTCUnicastQueueDepth	Counter64,
        mellanoxQoSTCMulticastQueueDepth	Counter64,
        mellanoxQoSTCUnicastNoBufferDiscard  Counter64,
        mellanoxQoSTCWREDDiscard  Counter64
    }

mellanoxQoSTCIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Interface index (taken from System II ifIndex)."
    ::= { mellanoxQoSTCEntry 1 }

mellanoxQoSTCIndex OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Index of the Traffic Class on the interface."
    ::= { mellanoxQoSTCEntry 2 }

mellanoxQoSTCPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Packets counted on the Traffic Class."
    ::= { mellanoxQoSTCEntry 3 }

mellanoxQoSTCBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Bytes counted on the Traffic Class."
    ::= { mellanoxQoSTCEntry 4 }

mellanoxQoSTCSXQueueDepth OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Queue Depth measured for traffic on the Traffic Class (relevant only for SwitchX ASIC)."
    ::= { mellanoxQoSTCEntry 5 }

mellanoxQoSTCUnicastQueueDepth OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Queue Depth measured for Unicast traffic on the Traffic Class."
    ::= { mellanoxQoSTCEntry 6 }

mellanoxQoSTCMulticastQueueDepth OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Queue Depth measured for Multicast traffic on the Traffic Class."
    ::= { mellanoxQoSTCEntry 7 }

mellanoxQoSTCUnicastNoBufferDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "No-Buffer Discard errors counted for Unicast traffic on the Traffic Class."
    ::= { mellanoxQoSTCEntry 8 }

mellanoxQoSTCWREDDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "WRED Discard errors counted on the Traffic Class."
    ::= { mellanoxQoSTCEntry 9 }

mellanoxQoSPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MellanoxQoSPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of interfaces and their relevant counters."
    ::= { mellanoxQoSMib 5 }

mellanoxQoSPortEntry OBJECT-TYPE
    SYNTAX      MellanoxQoSPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing counters relevant for an interface."
    INDEX   { mellanoxQoSPortIfIndex}
    ::= { mellanoxQoSPortTable 1 }

MellanoxQoSPortEntry ::=
    SEQUENCE {
        mellanoxQoSPortIfIndex		InterfaceIndex,
        mellanoxQoSPortRxPausePkts	Counter64,
        mellanoxQoSPortTxPausePkts	Counter64,
        mellanoxQoSPortTxPauseDuration	Counter64,
        mellanoxQoSPortTxWaitMicroseconds	Counter64
    }

mellanoxQoSPortIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Interface index (taken from System II ifIndex)."
    ::= { mellanoxQoSPortEntry 1 }

mellanoxQoSPortRxPausePkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Received Pause Packets counted on the interface."
    ::= { mellanoxQoSPortEntry 2 }

mellanoxQoSPortTxPausePkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmitted Pause Packets counted on the interface."
    ::= { mellanoxQoSPortEntry 3 }

mellanoxQoSPortTxPauseDuration OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Pause Duration counted on the interface (in ticks)."
    ::= { mellanoxQoSPortEntry 4 }

mellanoxQoSPortTxWaitMicroseconds OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Transmit Wait Duration counted on the interface (in microseconds)."
    ::= { mellanoxQoSPortEntry 5 }

END