CUMULUS-RESOURCES-MIB DEFINITIONS ::= BEGIN

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

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


-- Resource groups in cumulusMib

resourceUtilization       OBJECT IDENTIFIER ::= { cumulusMib 1 }

-- the resourceUtilization group

-- The resourceUtilization group lists the current utilization
-- of various tables and buffers in the system.

-- the l3 tables group

l3Tables                  OBJECT IDENTIFIER ::= {resourceUtilization 1}

l3HostTableCurrentEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of L3 Host table entries currently in use"
    ::= { l3Tables 1 }

l3HostTableMaxEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The maximum possible entries in the L3 Host table. The
	Host table is defined as the table holding the ARP/ND cache."
    ::= {l3Tables 2 }

l3RoutingTableCurrentEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of L3 Routing table entries currently in use."
    ::= { l3Tables 3 }

l3RoutingTableMaxEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The maximum possible entries in the L3 Routing table.
	L3 Routing table is defined as the table holding the
	longest prefix match (LPM) entries."
    ::= { l3Tables 4 }

l3NextHopTableCurrentEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of L3 Next Hop table entries currently in use."
    ::= { l3Tables 5 }

l3NextHopTableMaxEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The maximum possible entries in the L3 Next Hop table.
	The L3 Next Hop table holds information about the next hop(s)
	associated with a routing table entry."
    ::= { l3Tables 6 }

l3EcmpGroupTableCurrentEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Number of ECMP Group table entries currently in use."
    ::= { l3Tables 7 }

l3EcmpGroupTableMaxEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The maximum possible entries in the ECMP Group table.
	The ECMP Group table holds information about "
    ::= { l3Tables 8 }

l3EcmpNextHopTableCurrentEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of ECMP Next Hop table entries currently in use."
    ::= { l3Tables 9 }

l3EcmpNextHopTableMaxEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The maximum possible entries in the ECMP Next Hop
	table. ECMP Next Hop table stores information about the next
	hop associated with a routing table entry that has multiple equal
	cost next hop neighbors."
    ::= { l3Tables 10 }

-- the l2 tables group

l2Tables                  OBJECT IDENTIFIER ::= {resourceUtilization 2}

l2MacTableCurrentEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of L2 Mac table entries currently in use."
    ::= { l2Tables 1 }

l2MacTableMaxEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The maximum possible entries in the L2 Mac table."
    ::= { l2Tables 2 }

l2CacheTableCurrentEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The number of Cache table currently entries in use"
    ::= { l2Tables 3 }

l2CacheTableMaxEntries OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The maximum possible entries in the Cache table. The Cache table
	holds entries that are to be redirected to the CPU because they are
	control packets, specifically L2 protocol control packets. Examples
	are STP BPDUs, LLDP BPDUs etc."
    ::= { l2Tables 4 }

-- the buffer utilization group

bufferUtilizn             OBJECT IDENTIFIER ::= {resourceUtilization 3}

bufUtiliznComputeTime OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The time when the buffer utilization statistic was computed."
    DEFVAL { "0" }
    ::= { bufferUtilizn 1 }

bufUtiliznPollInterval OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The periodicity at which the buffer utilization data
	is pulled from the hardware. This is specified in milliseconds."
    ::= { bufferUtilizn 2 }


bufUtiliznMeasureInterval OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"The time interval over which the buffer utilization
	statistics is computed. This is specified in minutes."
    ::= { bufferUtilizn 3 }

bufUtiliznTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF BufUtiliznEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"Table describes the ingress buffer utilization per service pool"
    ::= { bufferUtilizn 4 }

bufUtiliznEntry OBJECT-TYPE
    SYNTAX      BufUtiliznEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	""
    INDEX { bufServicePoolID }
    ::= { bufUtiliznTable 1 }

BufUtiliznEntry ::=
	SEQUENCE {
		bufServicePoolID	INTEGER,
		bufMin			INTEGER,
		bufMax			INTEGER,
		bufAvg			DisplayString,
		bufVariance		DisplayString,
		bufStdDev		DisplayString
	}

	bufServicePoolID OBJECT-TYPE
	    SYNTAX      INTEGER (1..8)
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"The service pool number."
	    ::= { bufUtiliznEntry 1 }

	bufMin OBJECT-TYPE
	    SYNTAX      INTEGER
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"The minimum number of cells used in this service pool."
	    ::= { bufUtiliznEntry 2 }

	bufMax OBJECT-TYPE
	    SYNTAX      INTEGER
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"The maximum number of cells used in this service pool"
	    ::= { bufUtiliznEntry 3 }

	bufAvg OBJECT-TYPE
	    SYNTAX	DisplayString
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"The average number of cells used in this service pool"
	    ::= { bufUtiliznEntry 4 }

	bufVariance OBJECT-TYPE
	    SYNTAX      DisplayString
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"The variance of the buffer pool utilization for this service pool
		over the last measured interval."
	    ::= { bufUtiliznEntry 5 }

	bufStdDev OBJECT-TYPE
	    SYNTAX      DisplayString
	    MAX-ACCESS  read-only
	    STATUS      current
	    DESCRIPTION
		"The Standard Deviation of the buffer pool utilization for this
		service pool over the last measured interval."
	    ::= { bufUtiliznEntry 6 }
END
