FROGFOOT-TRAFFIC-MIB

-- -*- mib -*-

DEFINITIONS ::= BEGIN

-- Frogfoot Networks CC Quality of Service MIB

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, Gauge32,
	TimeTicks, Counter64, IpAddress, Integer32,
	enterprises
		FROM SNMPv2-SMI
	TEXTUAL-CONVENTION, DisplayString
		FROM SNMPv2-TC
	MODULE-COMPLIANCE, OBJECT-GROUP
		FROM SNMPv2-CONF;

traffic		MODULE-IDENTITY
	LAST-UPDATED "200306160000Z"
	ORGANIZATION "Frogfoot Networks"
	CONTACT-INFO
		"	Abraham van der Merwe

			Postal: Frogfoot Networks CC
					P.O. Box 3472
					Matieland
					Stellenbosch
					7602
					South Africa

			Phone: +27 82 565 4451
			Email: abz@frogfoot.net"
	DESCRIPTION
		"The MIB module to describe traffic flow through a point in
		a network. It can also be used by management software to determine
		traffic shaping policies."
	::= { frogfoot 2 }

frogfoot		OBJECT IDENTIFIER ::= { enterprises 10002 }

trafObjects		OBJECT IDENTIFIER ::= { traffic 1 }
trafConformance	OBJECT IDENTIFIER ::= { traffic 2 }

trafGroups		OBJECT IDENTIFIER ::= { trafConformance 1 }
trafCompliances	OBJECT IDENTIFIER ::= { trafConformance 2 }

TableIndex ::= TEXTUAL-CONVENTION
	DISPLAY-HINT	"d"
	STATUS			current
	DESCRIPTION
		"A unique value, greater than zero. It is recommended
		that values are assigned contiguously starting from 1."
	SYNTAX			Integer32 (1..2147483647)

clientUpTime	OBJECT-TYPE
	SYNTAX			TimeTicks
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The time (in hundredths of a second) since the client management
		information were last updated."
	::= { trafObjects 1 }

clientNumber	OBJECT-TYPE
	SYNTAX			Integer32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The number of clients in the client table."
	::= { trafObjects 2 }

clientTable		OBJECT-TYPE
	SYNTAX			SEQUENCE OF ClientEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A table containing a list of clients and information on what
		traffic is flowing through their networks."
	::= { trafObjects 3 }

clientEntry		OBJECT-TYPE
	SYNTAX			ClientEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"An entry containing information on each client."
	INDEX { clientIndex }
	::= { clientTable 1 }

ClientEntry ::=
	SEQUENCE {
		clientIndex		TableIndex,
		clientName		DisplayString,
		serviceQuality	INTEGER,
		inputRate		Gauge32,
		outputRate		Gauge32,
		bytesReceived	Counter64,
		bytesSent		Counter64
	}

clientIndex		OBJECT-TYPE
	SYNTAX			TableIndex
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A unique value, greater than zero, for each client. It
		is recommended that values are assigned contiguously
		starting from 1."
	::= { clientEntry 1 }

clientName		OBJECT-TYPE
	SYNTAX			DisplayString
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The name of the client entity (usually a company name)."
	::= { clientEntry 2 }

serviceQuality	OBJECT-TYPE
	SYNTAX			INTEGER {
						bronze(1),
						silver(2),
						gold(3),
						platinum(4)
					}
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Indicates what kind of service the client purchased.
		Currently we sell the following traffic types: Silver
		clients are supposed to be in a pool which is overselled
		at a ratio of 3:1. Bandwidth for gold customers are
		guaranteed throughout our network. The other entries are
		currently unused.

		Additional types may be assigned by Frogfoot Networks in
		the future."
	::= { clientEntry 3 }

inputRate		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Indicates how much incoming bandwidth is allocated to this
		client in bits per second."
	::= { clientEntry 4 }

outputRate		OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Indicates how much outgoing bandwidth is allocated to this
		client in bits per second."
	::= { clientEntry 5 }

bytesReceived	OBJECT-TYPE
	SYNTAX			Counter64
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The total number of octets received by this client."
	::= { clientEntry 6 }

bytesSent		OBJECT-TYPE
	SYNTAX			Counter64
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The total number of octets transmitted by this client."
	::= { clientEntry 7 }

protocolTable	OBJECT-TYPE
	SYNTAX			SEQUENCE OF ProtocolEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A table containing a traffic flow information per
		protocol."
	::= { trafObjects 4 }

protocolEntry	OBJECT-TYPE
	SYNTAX			ProtocolEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"An entry containing information on each known protocol."
	INDEX { clientIndex, protoIndex }
	::= { protocolTable 1 }

ProtocolEntry ::=
	SEQUENCE {
		protoIndex		TableIndex,
		protoType		INTEGER,
		protoReceived	Counter64,
		protoSent		Counter64
	}

protoIndex		OBJECT-TYPE
	SYNTAX			TableIndex
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A unique value, greater than zero, for each protocol. It
		is recommended that values are assigned contiguously
		starting from 1."
	::= { protocolEntry 1 }

protoType		OBJECT-TYPE
	SYNTAX			INTEGER {
						unknown(0),
						ftp(1),
						ssh(2),
						telnet(3),
						smtp(4),
						dns(5),
						tftp(6),
						http(7),
						pop3(8),
						imap(9),
						snmp(10),
						irc(11)
					}
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The type of protocol. Additional values for protType
		may be assigned by Frogfoot Networks.

		These protocols do not necessarily correspond to
		layer 4 port numbers. For instance ftp may be a
		collection of traffic flowing through ports 20 (ftp-data),
		21 (ftp), and 115 (sftp)."
	::= { protocolEntry 2 }

protoReceived	OBJECT-TYPE
	SYNTAX			Counter64
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The total number of octets received by this client which
		match this protocol."
	::= { protocolEntry 3 }

protoSent		OBJECT-TYPE
	SYNTAX			Counter64
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"The total number of octets transmitted by this client
		which match this protocol."
	::= { protocolEntry 4 }

networkTable	OBJECT-TYPE
	SYNTAX			SEQUENCE OF NetworkEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A table of networks which is routed to the client. All
		traffic originating from / destined for any of these
		networks will be counted."
	::= { trafObjects 5 }

networkEntry	OBJECT-TYPE
	SYNTAX			NetworkEntry
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"An entry for each network."
	INDEX { clientIndex, netIndex }
	::= { networkTable 1 }

NetworkEntry ::=
	SEQUENCE {
		netIndex		TableIndex,
		netAddress		IpAddress,
		netMask			IpAddress
	}

netIndex		OBJECT-TYPE
	SYNTAX			TableIndex
	MAX-ACCESS		not-accessible
	STATUS			current
	DESCRIPTION
		"A unique value, greater than zero, for each network. It
		is recommended that values are assigned contiguously
		starting from 1."
	::= { networkEntry 1 }

netAddress		OBJECT-TYPE
	SYNTAX			IpAddress
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Network address for this network."
	::= { networkEntry 2 }

netMask			OBJECT-TYPE
	SYNTAX			IpAddress
	MAX-ACCESS		read-only
	STATUS			current
	DESCRIPTION
		"Network mask for this network."
	::= { networkEntry 3 }

--
-- Compliance Statements
--

trafCompliance	MODULE-COMPLIANCE
	STATUS current
	DESCRIPTION
		"The compliance statement for SNMP entities which
		manage bandwidth on the Frogfoot Networks WAN."
	MODULE
		MANDATORY-GROUPS { trafClientGroup }
		GROUP trafClientGroup
		DESCRIPTION
			"This group is mandatory for all entities which
			complies to the MIB."
	::= { trafCompliances 1 }

trafClientGroup	OBJECT-GROUP
	OBJECTS { clientUpTime, clientNumber, clientName,
			  serviceQuality, inputRate, outputRate,
			  bytesReceived, bytesSent, protoType,
			  protoReceived, protoSent, netAddress,
			  netMask }
	STATUS current
	DESCRIPTION
		"A collection of objects providing information about
		Frogfoot Networks bandwidth policies for clients."
	::= { trafGroups 1 }

END
