-- *****************************************************************
-- Cisco Weighted Random Early Detection/Drop MIB file.
--
-- August 1997, Shu Tai
--
-- Copyright (c) 1997-1998 by Cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************
--

CISCO-WRED-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	Integer32,
	Gauge32,
	Counter32
		FROM SNMPv2-SMI
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF
	ifIndex
		FROM IF-MIB
	ciscoMgmt
		FROM CISCO-SMI;

ciscoWredMIB MODULE-IDENTITY
	LAST-UPDATED	"9707180000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service

		Postal:	170 W. Tasman Drive
			San Jose, CA  95134-1706
			USA

		   Tel: +1 800 553-NETS

		E-mail: tgrennan-group@cisco.com"

	DESCRIPTION
		"Cisco WRED MIB - Overview

    Cisco Weighted Random Early Detection/Drop is a method which avoids
    traffic congestion on an output interface.  Congestion is
    detected by computing the average output queue size against preset
    thresholds. WRED support are on the IP fast switching and
    IP flow switching only.  It does not apply to IP process switching.

    This MIB incorporates objects from the Cisco WRED line interfaces.
    Its purpose is to provide Weighted Random Early Detection/Drop
    packet configuration and packet filtering information.
    
    WRED are configured/enabled through the CLI command.
    Defaults configuration values are assigned and values can be
    modified through additional CLI commands.
    "

	REVISION	"9707180000Z"
	DESCRIPTION
		"Initial version of this MIB module."
	::= { ciscoMgmt 83 }

ciscoWredMIBObjects OBJECT IDENTIFIER ::= { ciscoWredMIB 1 }

-- Subgroups:
--		Random Early Detection/Drop
--

cwredConfig	OBJECT IDENTIFIER ::= { ciscoWredMIBObjects 1 }
cwredStats	OBJECT IDENTIFIER ::= { ciscoWredMIBObjects 2 }

cwredConfigGlobTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF CwredConfigGlobEntry
	MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "A table of WRED global configuration variables."

        ::= { cwredConfig 1 }

cwredConfigGlobEntry OBJECT-TYPE
        SYNTAX CwredConfigGlobEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        	"A collection of configuration entries on this 
		interface.  Entries are created and deleted via
		red command line interface."
 
        INDEX { ifIndex }
        ::= { cwredConfigGlobTable 1 }

CwredConfigGlobEntry ::=
	SEQUENCE {
		cwredConfigGlobQueueWeight
                        Integer32
	}

cwredConfigGlobQueueWeight OBJECT-TYPE
	SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The decay factor for the queue average calculation.
		Numbers are 2's exponent up to 16.
		The smaller the number, the faster it decays."

        ::= { cwredConfigGlobEntry 1 }

-- end of cwredConfigGlobTable

cwredConfigPrecedTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF CwredConfigPrecedEntry
	MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "A table of WRED configuration values with respect to
	the IP precedence of packets."

        ::= { cwredConfig 2 }

cwredConfigPrecedEntry OBJECT-TYPE
        SYNTAX CwredConfigPrecedEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        	"WRED IP precedence configuration table entry.
		Entries are created and deleted via red command
		interface."
 
        INDEX { ifIndex, cwredConfigPrecedPrecedence }
        ::= { cwredConfigPrecedTable 1 }

CwredConfigPrecedEntry ::=
	SEQUENCE {
		cwredConfigPrecedPrecedence
                        Integer32,
		cwredConfigPrecedMinDepthThreshold
                        Integer32,
		cwredConfigPrecedMaxDepthThreshold
                        Integer32,
		cwredConfigPrecedPktsDropFraction
                        Integer32
	}

cwredConfigPrecedPrecedence OBJECT-TYPE
	SYNTAX  Integer32 (0..7)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "The IP precedence of this entry."

        ::= { cwredConfigPrecedEntry 1 }

cwredConfigPrecedMinDepthThreshold OBJECT-TYPE
	SYNTAX  Integer32
	UNITS	"packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The average queue depth at which WRED begins to
		drop packets."

	::= { cwredConfigPrecedEntry 2 }

cwredConfigPrecedMaxDepthThreshold OBJECT-TYPE
	SYNTAX  Integer32
	UNITS	"packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The average queue depth at which WRED may begin to
		drop all packets."

	::= { cwredConfigPrecedEntry 3 }

cwredConfigPrecedPktsDropFraction OBJECT-TYPE
	SYNTAX  Integer32
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
		"The fraction of packets to be dropped when the average queue
		depth is above cwredConfigPrecedMinDepthThreshold
		but below cwredConfigPrecedMaxDepthThreshold."

	::= { cwredConfigPrecedEntry 4 }

-- end of cwredConfigPrecedTable

cwredQueueTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF CwredQueueEntry
	MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "A table of WRED queue status variable."

        ::= { cwredStats 1 }

cwredQueueEntry OBJECT-TYPE
        SYNTAX CwredQueueEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        	"A table of WRED queue status variable entry.
		Entries are created and deleted via the red
		command line interface."
 
        AUGMENTS { cwredConfigGlobEntry }
        ::= { cwredQueueTable 1 }

CwredQueueEntry ::=
	SEQUENCE {
		cwredQueueAverage
                        Gauge32,
		cwredQueueDepth
                        Gauge32
	}

cwredQueueAverage OBJECT-TYPE
	SYNTAX  Gauge32
	UNITS	"packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The computed queue average length."

	::= { cwredQueueEntry 1 }

cwredQueueDepth OBJECT-TYPE
	SYNTAX  Gauge32
	UNITS	"packets"
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
		"The number of buffers/particles currently withheld in queue."

	::= { cwredQueueEntry 2 }

-- end of cwredQueueTable


cwredStatTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF CwredStatEntry
	MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "A table of WRED status information with respect to
	the IP precedence of packets."

        ::= { cwredStats 2 }

cwredStatEntry OBJECT-TYPE
        SYNTAX CwredStatEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        	"The WRED interface status information entry.
		Entries are created and deleted via the red
		red command line interface."
 
        AUGMENTS { cwredConfigPrecedEntry }
        ::= { cwredStatTable 1 }

CwredStatEntry ::=
	SEQUENCE {
		cwredStatSwitchedPkts
                        Counter32,
		cwredStatRandomFilteredPkts
                        Counter32,
		cwredStatMaxFilteredPkts
                        Counter32
	}

cwredStatSwitchedPkts OBJECT-TYPE
	SYNTAX  Counter32
	UNITS	"packets"
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
		"The number of packets output by WRED."

	::= { cwredStatEntry 1 }

cwredStatRandomFilteredPkts OBJECT-TYPE
	SYNTAX  Counter32
	UNITS	"packets"
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
		"The number of packets filtered/dropped due to average
		queue length exceeds cwredConfigMinDepthThreshold
		and meet a defined random drop policy."

	::= { cwredStatEntry 2 }

cwredStatMaxFilteredPkts OBJECT-TYPE
	SYNTAX  Counter32
	UNITS	"packets"
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
		"The number of packets filtered/dropped due to average
		queue length exceeds cwredConfigMaxDepthThreshold."

	::= { cwredStatEntry 3 }

-- end of cwredStatTable

-- conformance information

ciscoWredMIBConformance OBJECT IDENTIFIER ::= { ciscoWredMIB 3 }
ciscoWredMIBCompliances OBJECT IDENTIFIER ::= { ciscoWredMIBConformance 1 }
ciscoWredMIBGroups      OBJECT IDENTIFIER ::= { ciscoWredMIBConformance 2 }


-- compliance statement

ciscoWredMIBCompliance MODULE-COMPLIANCE
	STATUS	current
	DESCRIPTION
		"The compliance statement for entities which implement
		the WRED on a Cisco RSP platform."
	MODULE	-- this module
		MANDATORY-GROUPS { ciscoWredMIBGroup }
	::= { ciscoWredMIBCompliances 1 }


-- units of conformance

ciscoWredMIBGroup OBJECT-GROUP
	OBJECTS {
		cwredConfigGlobQueueWeight,
		cwredConfigPrecedMinDepthThreshold,
		cwredConfigPrecedMaxDepthThreshold,
		cwredConfigPrecedPktsDropFraction,
		cwredQueueAverage,
		cwredQueueDepth,
		cwredStatSwitchedPkts,
		cwredStatRandomFilteredPkts,
		cwredStatMaxFilteredPkts
	}
	STATUS	current
	DESCRIPTION
		"A collection of objects providing WRED monitoring."
	::= { ciscoWredMIBGroups 1 }

END
