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

IMPORTS
	OBJECT-TYPE,
	Gauge
		FROM RFC1155-SMI

        Counter64
		FROM SNMPv2-SMI

        PacketSource, RateLimitType, RateLimitAction
		FROM FOUNDRY-CAR-MIB  

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


snVLanCARs	OBJECT IDENTIFIER ::= { snVLanCAR 1 }



snVLanCARTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnVLanCAREntry
	ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        "A table of rate limit configuration entries for a vlan.
	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."

        ::= { snVLanCARs 1 }


snVLanCAREntry OBJECT-TYPE
        SYNTAX SnVLanCAREntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
        	"A collection of rate-limit configuration objects on this 
		vlan."
        INDEX { snVLanCARVLanId, snVLanCARDirection, snVLanCARRowIndex }
        ::= { snVLanCARTable 1 }

SnVLanCAREntry ::=
	SEQUENCE {
		snVLanCARDirection
               		PacketSource,
		snVLanCARVLanId
                        INTEGER,
		snVLanCARRowIndex
                        INTEGER,
		snVLanCARType
                        RateLimitType,
		snVLanCARAccIdx
                        INTEGER,
		snVLanCARRate
                        INTEGER,
		snVLanCARLimit
                        INTEGER,
		snVLanCARExtLimit
                        INTEGER,
		snVLanCARConformAction
			RateLimitAction,
		snVLanCARExceedAction
       			RateLimitAction,
		snVLanCARStatSwitchedPkts
                        Counter64,
		snVLanCARStatSwitchedBytes
                        Counter64,
		snVLanCARStatFilteredPkts
                        Counter64,
		snVLanCARStatFilteredBytes
                        Counter64,
		snVLanCARStatCurBurst
       			Gauge
	}

--need to refer to the vlan table
--index once it is changed to single
--vlan id as the row index

snVLanCARVLanId OBJECT-TYPE
	SYNTAX  INTEGER (1..4095)
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The VLAN ID as one of the indices of this table .
		 Each VLAN ID can have a membership of multiple 
		 ports."
	::= { snVLanCAREntry 1 }

snVLanCARDirection OBJECT-TYPE
	SYNTAX  PacketSource
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
       		"The input or output transmission direction for the 
                Rate Limit object."
        ::= { snVLanCAREntry 2 }

snVLanCARRowIndex 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."

        ::= { snVLanCAREntry 3 }

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

	::= { snVLanCAREntry 4 }

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

	::= { snVLanCAREntry 5 }

snVLanCARRate 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."

	::= { snVLanCAREntry 6 }

snVLanCARLimit 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."

	::= { snVLanCAREntry 7 }

snVLanCARExtLimit 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. "

	::= { snVLanCAREntry 8 }

snVLanCARConformAction 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."

	::= { snVLanCAREntry 9 }

snVLanCARExceedAction 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."

	::= { snVLanCAREntry 10 }

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

	::= { snVLanCAREntry 11 }

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

	::= { snVLanCAREntry 12 }

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

	::= { snVLanCAREntry 13 }

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

	::= { snVLanCAREntry 14 }

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

-- end of snVLanCARTable


END
