LINUX-KERNEL-QOS DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, enterprises,
    Integer32, Counter32, mib-2, Unsigned32
        FROM SNMPv2-SMI
    DisplayString
        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF;
    
qos MODULE-IDENTITY
    LAST-UPDATED	"200402080000Z"
    ORGANIZATION	"www.prokon.cz"
    CONTACT-INFO
	"postal:	Michal Charvat
			Zemesska 309
			Citoliby 439 02
			Czech Republic
			
	 email:		michal@ns1.prokon.cz"
    DESCRIPTION 
	"QoS statistics from Linux kernel"
    REVISION	"200402080000Z"
    DESCRIPTION
	"qos mib to get values from Linux kernel"
    ::= { enterprises 18756 }	-- IANA gave me this number to use
    
-- top level structure

qosObjectTable OBJECT-TYPE
    SYNTAX	SEQUENCE OF QosObject
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"table, where are all values stored"
    ::= { qos 1 }

qosObject OBJECT-TYPE
    SYNTAX	QosObject
    MAX-ACCESS	not-accessible
    STATUS	current
    DESCRIPTION
	"object specifies one qdisc or class"
    INDEX	{ qosDeviceIndex, qosMajorHandle, qosMinorHandle }
    ::= { qosObjectTable 1 }
    

QosObject ::= SEQUENCE {
    qosDeviceType	Counter32
    qosDeviceIndex	INTEGER,
    qosMajorHandle	Unsigned32,
    qosMinorHandle	Unsigned32,
    qosTextHandle	DisplayString,
    qosTextLeaf		DisplayString,
    qosParent		Unsigned32,
    qosTextParent	DisplayString,
    qosDeviceName	DisplayString,
    qosType		DisplayString,
    qosBytes		Counter32,
    qosPackets		Counter32,
    qosDropped		Counter32,
    qosOverlimit	Counter32,
    qosBps		Unsigned32,
    qosPps		Unsigned32,
    qosQlen		Unsigned32,
    qosBacklog		Unsigned32,
    qosRedEarly		Counter32,
    qosRedDrop		Counter32,
    qosRedOther		Counter32,
    qosRedMarked	Counter32,
    qosHtbLends		Counter32,
    qosHtbBorrows	Counter32,
    qosHtbGiants	Counter32,
    qosHtbTokens	INTEGER,
    qosHtbCTokens	INTEGER,
    qosHtbRate		Unsigned32,
    qosHtbCeil		Unsigned32,
    qosHtbPrio		Unsigned32,
    qosCbqBorrows	Counter32,
    qosCbqOveractions	Counter32,
    qosCbqAvgidle	INTEGER,
    qosCbqUndertime	INTEGER,
    qosInfo		DisplayString
    }

qosDeviceIndex OBJECT-TYPE
    SYNTAX	INTEGER
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"system device number"
    ::= { qosObject 1 }

qosDeviceIndex OBJECT-TYPE
    SYNTAX	Integer32 (0..2147483647)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"system device number"
    ::= { qosObject 2 }

qosMajorHandle OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"major part of system handle, per device unique"
    ::= { qosObject 3 }	

qosMinorHandle OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"minor part of system handle, per device unique"
    ::= { qosObject 4 }	

qosTextHandle OBJECT-TYPE 
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"literal handle - for better orientation"
    ::= { qosObject 5 }

qosTextLeaf OBJECT-TYPE 
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"literal leaf - for better orientation"
    ::= { qosObject 6 }

qosParent OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"parent"
    ::= { qosObject 7 }	

qosTextParent OBJECT-TYPE 
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"literal parent - for better orientation"
    ::= { qosObject 8 }


qosDeviceName OBJECT-TYPE 
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"literal device name - for better orientation"
    ::= { qosObject 9 }

qosType OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"literal qos type, once again, better orientation"
    ::= { qosObject 10 }

qosBytes OBJECT-TYPE
    SYNTAX	Counter64
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"counts transfered bytes on object"
    ::= { qosObject 11 }

qosPackets OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"counts packtes"
    ::= { qosObject 12 }

qosDropped OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"counts dropped packets (perhaps too long a queue)"
    ::= { qosObject 13 }
    
qosOverlimit OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"counts discarded packets - rate exceeded"
    ::= { qosObject 14 }

qosBps OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"counts bytes per second"
    ::= { qosObject 15 }

qosPps OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"counts packets per second"
    ::= { qosObject 16 }

qosQlen OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"queue length"
    ::= { qosObject 17 }

qosBacklog OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"backlog"
    ::= { qosObject 18 }

qosRedEarly OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"early red packets"
    ::= { qosObject 19 }

qosRedpdrop OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"probability dropped packets"
    ::= { qosObject 20 }

qosRedOther OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"other packets"
    ::= { qosObject 21 }

qosRedMarked OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"counts discarded packets - rate exceeded"
    ::= { qosObject 22 }

qosHtbLends OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"HTB lended bytes"
    ::= { qosObject 23 }

qosHtbBorrows OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"HTB borrowed packets"
    ::= { qosObject 24 }

qosHtbGiants OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"HTB giants packets"
    ::= { qosObject 25 }

qosHtbTokens OBJECT-TYPE
    SYNTAX	INTEGER
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"HTB tokens in reservoir"
    ::= { qosObject 26 }

qosHtbCTokens OBJECT-TYPE
    SYNTAX 	INTEGER
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"HTB ceil tokens in reservoir"
    ::= { qosObject 27 }

qosHtbRate OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"HTB class rate"
    ::= { qosObject 28 }

qosHtbCeil OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"HTB ceil rate"
    ::= { qosObject 29 }

qosHtbPrio OBJECT-TYPE
    SYNTAX	Unsigned32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"HTB class prio"
    ::= { qosObject 30 }

qosCbqBorrows OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"CBQ borrowed bytes"
    ::= { qosObject 31 }

qosCbqOveractions OBJECT-TYPE
    SYNTAX	Counter32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"CBQ Overactions"
    ::= { qosObject 32 }

qosCbqAvgidle OBJECT-TYPE
    SYNTAX	INTEGER
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"CBQ avgidle"
    ::= { qosObject 33 }

qosCbqUndertime OBJECT-TYPE
    SYNTAX	INTEGER
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"CBQ undertime"
    ::= { qosObject 34 }

qosInfo OBJECT-TYPE 
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION	
	"literal parameters - for better orientation"
    ::= { qosObject 35 }




END
