-- *****************************************************************
-- Commited Access Rate MIB file.
-- *****************************************************************
FOUNDRY-CAR-MIB DEFINITIONS ::= BEGIN

IMPORTS
	OBJECT-TYPE,
	Gauge
		FROM RFC1155-SMI

        Counter64
		FROM SNMPv2-SMI


	snCAR
		FROM FOUNDRY-SN-SWITCH-GROUP-MIB;
			

snPortCARs	OBJECT IDENTIFIER ::= { snCAR 1 }

PacketSource ::= INTEGER { 
		input(0), --for inbound traffic
		output(1) --for outbound traffic
	}

RateLimitType ::= INTEGER { 
		all(3), 		--	all traffic.                             
		quickAcc(2), 	--	traffic matches rate-limit's access list.
		standardAcc(1) 	--	traffic matches standard access list.    
	}

RateLimitAction ::= INTEGER {
		continue(1), 
		drop(2), 
		precedCont(3),
		precedXmit(4), 
		xmit(5) 
	}


snPortCARTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnPortCAREntry
	ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A table of rate limit configuration entries.
	Rate Limit is a method of traffic control.  It allows a set
	of rate limits to be configured and applied to packets flowing
	into/out of an interface to regulate network traffic."

        ::= { snPortCARs 1 }

snPortCAREntry OBJECT-TYPE
        SYNTAX SnPortCAREntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        	"A collection of rate-limit configuration objects on this 
		interface."
        INDEX { snPortCARifIndex, snPortCARDirection, snPortCARRowIndex }
        ::= { snPortCARTable 1 }

SnPortCAREntry ::=
	SEQUENCE {
		snPortCARifIndex
						INTEGER,
		snPortCARDirection
               		PacketSource,
		snPortCARRowIndex
                        INTEGER,
		snPortCARType
                        RateLimitType,
		snPortCARAccIdx
                        INTEGER,
		snPortCARRate
                        INTEGER,
		snPortCARLimit
                        INTEGER,
		snPortCARExtLimit
                        INTEGER,
		snPortCARConformAction
       					RateLimitAction,
		snPortCARExceedAction
       					RateLimitAction,
		snPortCARStatSwitchedPkts
                        Counter64,
		snPortCARStatSwitchedBytes
                        Counter64,
		snPortCARStatFilteredPkts
                        Counter64,
		snPortCARStatFilteredBytes
                        Counter64,
		snPortCARStatCurBurst
       					Gauge
	}
snPortCARifIndex OBJECT-TYPE
    SYNTAX     INTEGER 
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The ifIndex value for this rate limit entry."
    ::= { snPortCAREntry 1 }

snPortCARDirection OBJECT-TYPE
	SYNTAX  PacketSource
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
       		"The input or output transmission direction for the 
                Rate Limit object.
				input (0), --for inbound traffic
				output(1) --for outbound traffic "
        ::= { snPortCAREntry 2 }

snPortCARRowIndex OBJECT-TYPE
	SYNTAX  INTEGER (1..2147483647)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for rate limit objects.
		It increases as the rate limit entries are added.
		Skips the number when a row is deleted."

        ::= { snPortCAREntry 3 }

snPortCARType OBJECT-TYPE
	SYNTAX  RateLimitType
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
		"The type of traffic rate-limited against."

	::= { snPortCAREntry 4 }

snPortCARAccIdx OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
		"The index to the access list if RateLimitType is either
		quickAcc or standardAcc."

	::= { snPortCAREntry 5 }

snPortCARRate OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
		"The comitted access rate. This determines the long term
		average transmission rate. Traffic that falls under this
		rate always conforms. This is average rate in bits per 
		second."

	::= { snPortCAREntry 6 }

snPortCARLimit OBJECT-TYPE
	SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
		"This is the normal burst size that determines how large traffic
		bursts can be before some traffic exceeds the rate limit. This
		specifies the number of bytes that are guaranteed to be transported
		by the network at the average rate under normal conditions during
		committed time interval. This normal burst size is in bytes."

	::= { snPortCAREntry 7 }

snPortCARExtLimit OBJECT-TYPE
	SYNTAX  INTEGER
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"This is the extended burst limit that determines how large traffic
		bursts can be before all the traffic exceeds the rate limit. This
		burst size is in bytes."

	::= { snPortCAREntry 8 }

snPortCARConformAction OBJECT-TYPE
	SYNTAX	RateLimitAction
	ACCESS  read-only
	STATUS	mandatory
	DESCRIPTION
		"Action to be taken when the traffic is within
		the Rate Limit.
		drop		drop the packet.
		xmit		transmit the packet.
		continue	continue to evaluate to the subsequent
					rate limits.
		precedXmit	rewrite the IP precedence and transmit
					the packet.
		precedCont	rewrite the IP precedence and allow it
					evaluated by subsequent rate limits."

	::= { snPortCAREntry 9 }

snPortCARExceedAction OBJECT-TYPE
	SYNTAX	RateLimitAction
	ACCESS  read-only
	STATUS	mandatory
	DESCRIPTION
		"Action to be taken when the traffic exceeds
		the Rate Limit.drop		
		drop the packet.
		xmit		transmit the packet.
		continue	continue to evaluate to the subsequent
					rate limits.
		precedXmit	rewrite the IP precedence and transmit
					the packet.
		precedCont	rewrite the IP precedence and allow it
					evaluated by subsequent rate limits."

	::= { snPortCAREntry 10 }

snPortCARStatSwitchedPkts OBJECT-TYPE
	SYNTAX  Counter64
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The counter of packets permitted by this rate limit."

	::= { snPortCAREntry 11 }

snPortCARStatSwitchedBytes OBJECT-TYPE
	SYNTAX  Counter64
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The counter of bytes permitted by this interface."

	::= { snPortCAREntry 12 }

snPortCARStatFilteredPkts OBJECT-TYPE
	SYNTAX  Counter64
	--UNITS	"packets"
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The counter of packets which exceeded this rate limit."

	::= { snPortCAREntry 13 }

snPortCARStatFilteredBytes OBJECT-TYPE
	SYNTAX  Counter64
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The counter of bytes which exceeded this rate limit."

	::= { snPortCAREntry 14 }

snPortCARStatCurBurst OBJECT-TYPE
	SYNTAX  Gauge
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The current received burst size."
	::= { snPortCAREntry 15 }

-- end of snPortCARTable


END
