CUMULUS-COUNTERS-MIB DEFINITIONS ::= BEGIN

--
-- Top-level infrastructure of the Cumulus enterprise MIB tree
--

IMPORTS
    OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
    enterprises, Counter32	        FROM SNMPv2-SMI
    InterfaceIndex, ifIndex	        FROM IF-MIB
    DateAndTime, DisplayString,
    cumulusMib                          FROM CUMULUS-SNMP-MIB
    TEXTUAL-CONVENTION 			FROM SNMPv2-TC;


--
--  Cumulus enterprise-specific counters
--

sysSpecificCounters       OBJECT IDENTIFIER ::= { cumulusMib 2 }

-- the discardCounters group

-- The discardCounters group lists certain selected detailed discard
-- counters, counters that are not called out in standard MIBs.

discardCounters		OBJECT IDENTIFIER ::= {sysSpecificCounters 1}

discardCountersTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF DiscardCountersEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"This table breaks out ingress packet discards into more
	reason-specific discard counters."
    ::= { discardCounters 1 }

discardCountersEntry OBJECT-TYPE
    SYNTAX      DiscardCountersEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"Reason-specific ingress discard counters indexed by ifIndex"
    INDEX { ifIndex }
    ::= { discardCountersTable 1 }

--
-- The counters are all Counter32 instead of Counter64 because of
-- limitations in the pass persist protocol.
--

DiscardCountersEntry ::=
	SEQUENCE {
		portName                DisplayString,
		l3v4InDiscards		Counter32,
		bufferOverflowDiscards	Counter32,
		l3AclDiscards		Counter32,
		egressQOverflowDiscards Counter32,
		egressNonQDiscards      Counter32
	}

	portName OBJECT-TYPE
	    SYNTAX      DisplayString
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"Port name"
	    ::= { discardCountersEntry 1 }


	l3v4InDiscards OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"Number of inbound IPv4 packets discarded
		by the routing engine."
	    DEFVAL { 0 }
	    ::= { discardCountersEntry 2 }

	bufferOverflowDiscards OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"Number of inbound packets discarded due to
		ingress buffer overflow."
	    DEFVAL { 0 }
	    ::= { discardCountersEntry 3 }

	l3AclDiscards OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"Number of inbound IPv4 packets discarded
		due to ingress ACL table."
	    DEFVAL { 0 }
	    ::= { discardCountersEntry 4 }

	egressQOverflowDiscards OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"Number of packets discarded due to egress queue overflow."
	    DEFVAL { 0 }
	    ::= { discardCountersEntry 6 }

	egressNonQDiscards OBJECT-TYPE
	    SYNTAX      Counter32
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"Total number of packets discarded on egress due to reasons
                reasons other than queue overflow. With IF MIB's ifOutDiscards
                not accounting for certain specific drops, this one accounts
	        for drops seen in the egress pipeline of the system that were
                not because of egress queue overflow drops."
	    DEFVAL { 0 }
	    ::= { discardCountersEntry 7 }

END

