Network Working Group
Request for Comments: 4711
Category: Standards Track
A. Siddiqui
D. Romascanu
Avaya
E. Golovinsky
Alert Logic
October 2006

Real-time Application Quality-of-Service Monitoring (RAQMON) MIB

Status of This Memo

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Copyright Notice

Copyright © The Internet Society (2006).

Abstract

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. The document proposes an extension to the Remote Monitoring MIB, RFC 2819. In particular, it describes managed objects used for real-time application Quality of Service (QoS) monitoring.

Table of Contents

   1. Introduction ....................................................2
   2. The Internet-Standard Management Framework ......................2
   3. RAQMON Framework ................................................2
   4. Structure of the RAQMON MIB .....................................2
   5. RAQMON MIB Definitions ..........................................3
   6. Security Considerations ........................................33
   7. IANA Considerations ............................................35
   8. Acknowledgements ...............................................35
   9. Normative References ...........................................36
   10. Informative References ........................................36

1. Introduction

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it extends [RFC2819] with managed objects used for real-time application QoS monitoring.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

2. The Internet-Standard Management Framework

For a detailed overview of the documents that describe the current Internet-Standard Management Framework, please refer to section 7 of RFC 3410 [RFC3410].

Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). Objects in the MIB are defined using the mechanisms defined in the Structure of Management Information (SMI). This memo specifies a MIB module that is compliant to the SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580].

3. RAQMON Framework

As outlined in [RFC4710], the RAQMON framework is based on three entities:

      - RAQMON Data Source (RDS)
      
      - RAQMON Report Collector (RRC)
  • RAQMON MIB Structure

The RAQMON MIB describes information passed between RRCs and a RAQMON Application ("RAQMON manager").

4. Structure of the RAQMON MIB

The RAQMON MIB module is composed of three MIB groups: raqmonSession, raqmonException, and raqmonConfig.

The raqmonSession MIB group incorporates the following tables:

  • The raqmonParticpantTable contains information about participants in open and closed (terminated) sessions, including parameters of the sessions they are involved in, aggregated since the beginning of the session.
  • The raqmonQosTable contains historical information about QoS during sessions. The set of parameters represented in this table is more restricted, but it includes historical per- RAQMON-report information.
  • The raqmonParticpantAddrTable maps participant addresses into the indices of the raqmonParticpantTable. This table allows management applications to find entries sorted by raqmonParticipantAddr rather than raqmonParticipantStartDate.

The raqmonException MIB group includes a table of filters that trigger notifications for sessions with poor QoS.

The raqmonConfig MIB group includes objects that define the configuration of the RAQMON Report Collector.

This MIB module MUST be implemented by RAQMON Report Collectors.

A separate MIB module is defined in [RFC4712] for mapping the RAQMON PDUs onto an SNMP transport. The MIB module defined in [RFC4712] is normally implemented by RAQMON Data Sources (RDS).

5. RAQMON MIB Definitions

The MIB module herein IMPORTS definitions from the following:

         SNMPv2-SMI [RFC2578]
         SNMPv2-TC [RFC2579]
         SNMPv2-CONF [RFC2580]
         RMON-MIB [RFC2819]
         SNMP-FRAMEWORK-MIB [RFC3411]
         INET-ADDRESS-MIB [RFC4001]

It also uses REFERENCE clauses to refer to [RFC4710].

It also mentions [RFC3737] with respect to the MODULE-IDENTITY OID allocation.

RAQMON-MIB DEFINITIONS ::= BEGIN

IMPORTS

           OBJECT-GROUP, NOTIFICATION-GROUP, MODULE-COMPLIANCE
               FROM SNMPv2-CONF
           Integer32, Unsigned32,
           Gauge32, Counter32, OBJECT-TYPE,
           MODULE-IDENTITY, NOTIFICATION-TYPE
               FROM SNMPv2-SMI
           InetAddressType, InetAddress, InetPortNumber
               FROM INET-ADDRESS-MIB
                    SnmpAdminString
           FROM SNMP-FRAMEWORK-MIB
           rmon
               FROM RMON-MIB
           RowStatus, TruthValue, DateAndTime, RowPointer
               FROM SNMPv2-TC;

raqmonMIB MODULE-IDENTITY

           LAST-UPDATED "200610100000Z"     -- October 10, 2006
           ORGANIZATION
               "IETF RMON MIB Working Group"
           CONTACT-INFO
               "WG Charter:
                http://www.ietf.org/html.charters/rmonmib-charter.html

Mailing lists:

                    General Discussion: [email protected]
                    To Subscribe: [email protected]
                    In Body: subscribe your_email_address

Chair:

Andy Bierman
Email: [email protected]

                Editor: Dan Romascanu
                        Avaya
                        Email:  [email protected]"
           DESCRIPTION
               "Real-Time Application QoS Monitoring MIB.
   
                Copyright © The Internet Society (2006).
                This version of this MIB module is part of
                RFC 4711; See the RFC itself for full legal notices."
           REVISION    "200610100000Z"
           DESCRIPTION
               "Initial version, published as RFC 4711."
           ::= { rmon 31 }
   -- This OID allocation conforms to [RFC3737]
   --
   -- Node definitions
   --
       raqmonNotifications OBJECT IDENTIFIER ::= { raqmonMIB 0 }

raqmonSessionAlarm NOTIFICATION-TYPE

           OBJECTS { raqmonParticipantAddr,
               raqmonParticipantName,
               raqmonParticipantPeerAddrType,
               raqmonParticipantPeerAddr,
               raqmonQoSEnd2EndNetDelay,
               raqmonQoSInterArrivalJitter,
               raqmonQosLostPackets,
               raqmonQosRcvdPackets }
           STATUS current
           DESCRIPTION
               "A notification generated by an entry in the
                raqmonSessionExceptionTable."
           ::= { raqmonNotifications 1 }
       
       raqmonMIBObjects OBJECT IDENTIFIER ::= { raqmonMIB 1 }
       
       raqmonSession OBJECT IDENTIFIER ::= { raqmonMIBObjects 1 }

raqmonParticipantTable OBJECT-TYPE

           SYNTAX SEQUENCE OF RaqmonParticipantEntry
           MAX-ACCESS not-accessible
           STATUS current
           DESCRIPTION
               "This table contains information about participants in
                both active and closed (terminated) sessions."
           ::= { raqmonSession 1 }

raqmonParticipantEntry OBJECT-TYPE

SYNTAX RaqmonParticipantEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION

"Each row contains information for a single session

(application) run by one participant.
Indexation by the start time of the session aims to ease sorting by management applications. Agents MUST NOT report identical start times for any two sessions on the same host.
Rows are removed for inactive sessions when implementation-specific age or space limits are reached."

           INDEX { raqmonParticipantStartDate, raqmonParticipantIndex }
           ::= { raqmonParticipantTable 1 }

RaqmonParticipantEntry ::=

SEQUENCE {

               raqmonParticipantStartDate     DateAndTime,
               raqmonParticipantIndex         Unsigned32,
               raqmonParticipantReportCaps    BITS,
               raqmonParticipantAddrType      InetAddressType,
               raqmonParticipantAddr          InetAddress,
               raqmonParticipantSendPort      InetPortNumber,
               raqmonParticipantRecvPort      InetPortNumber,
               raqmonParticipantSetupDelay    Integer32,
               raqmonParticipantName          SnmpAdminString,
               raqmonParticipantAppName       SnmpAdminString,
               raqmonParticipantQosCount      Gauge32,
               raqmonParticipantEndDate       DateAndTime,
               raqmonParticipantDestPayloadType  Integer32,
               raqmonParticipantSrcPayloadType   Integer32,
               raqmonParticipantActive        TruthValue,
               raqmonParticipantPeer          RowPointer,
               raqmonParticipantPeerAddrType  InetAddressType,
               raqmonParticipantPeerAddr      InetAddress,
               raqmonParticipantSrcL2Priority     Integer32,
               raqmonParticipantDestL2Priority    Integer32,
               raqmonParticipantSrcDSCP       Integer32,
               raqmonParticipantDestDSCP      Integer32,
               raqmonParticipantCpuMean       Integer32,
               raqmonParticipantCpuMin        Integer32,
               raqmonParticipantCpuMax        Integer32,
               raqmonParticipantMemoryMean    Integer32,
               raqmonParticipantMemoryMin     Integer32,
               raqmonParticipantMemoryMax     Integer32,
               raqmonParticipantNetRTTMean    Integer32,
               raqmonParticipantNetRTTMin     Integer32,
               raqmonParticipantNetRTTMax     Integer32,
               raqmonParticipantIAJitterMean  Integer32,
               raqmonParticipantIAJitterMin   Integer32,
               raqmonParticipantIAJitterMax   Integer32,
               raqmonParticipantIPDVMean      Integer32,
               raqmonParticipantIPDVMin       Integer32,
               raqmonParticipantIPDVMax       Integer32,
               raqmonParticipantNetOwdMean    Integer32,
               raqmonParticipantNetOwdMin     Integer32,
               raqmonParticipantNetOwdMax     Integer32,
               raqmonParticipantAppDelayMean  Integer32,
               raqmonParticipantAppDelayMin   Integer32,
               raqmonParticipantAppDelayMax   Integer32,
               raqmonParticipantPacketsRcvd   Integer32,
               raqmonParticipantPacketsSent   Integer32,
               raqmonParticipantOctetsRcvd    Integer32,
               raqmonParticipantOctetsSent    Integer32,
               raqmonParticipantLostPackets   Integer32,
               raqmonParticipantLostPacketsFrct  Integer32,
               raqmonParticipantDiscards      Integer32,
               raqmonParticipantDiscardsFrct  Integer32
            }

raqmonParticipantStartDate OBJECT-TYPE

           SYNTAX DateAndTime
           MAX-ACCESS not-accessible
           STATUS current
           DESCRIPTION
               "The date and time of this entry.
                It will be the date and time
                of the first report received."
           ::= { raqmonParticipantEntry 1 }

raqmonParticipantIndex OBJECT-TYPE

           SYNTAX Unsigned32 (1..2147483647)
           MAX-ACCESS not-accessible
           STATUS current
           DESCRIPTION
               "The index of the conceptual row, which is for SNMP
                purposes only and has no relation to any protocol value.
           
                There is no requirement that these rows be created or
                maintained sequentially.  The index will be unique for a
                particular date and time."
           ::= { raqmonParticipantEntry 2 }
       
       raqmonParticipantReportCaps   OBJECT-TYPE
           SYNTAX      BITS {
               raqmonPartRepDsrcName(0),
               raqmonPartRepRecvName(1),
               raqmonPartRepDsrcPort(2),
               raqmonPartRepRecvPort(3),
               raqmonPartRepSetupTime(4),
               raqmonPartRepSetupDelay(5),
               raqmonPartRepSessionDuration(6),
               raqmonPartRepSetupStatus(7),
               raqmonPartRepRTEnd2EndNetDelay(8),
               raqmonPartRepOWEnd2EndNetDelay(9),
               raqmonPartApplicationDelay(10),
               raqmonPartRepIAJitter(11),
               raqmonPartRepIPDV(12),
               raqmonPartRepRcvdPackets(13),
               raqmonPartRepRcvdOctets(14),
               raqmonPartRepSentPackets(15),
               raqmonPartRepSentOctets(16),
               raqmonPartRepCumPacketsLoss(17),
               raqmonPartRepFractionPacketsLoss(18),
               raqmonPartRepCumDiscards(19),
               raqmonPartRepFractionDiscards(20),
               raqmonPartRepSrcPayloadType(21),
               raqmonPartRepDestPayloadType(22),
               raqmonPartRepSrcLayer2Priority(23),
               raqmonPartRepSrcTosDscp(24),
               raqmonPartRepDestLayer2Priority(25),
               raqmonPartRepDestTosDscp(26),
               raqmonPartRepCPU(27),
               raqmonPartRepMemory(28),
               raqmonPartRepAppName(29)
               }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
               "The Report capabilities of the participant, as perceived
                by the Collector.

If the participant can report the Data Source Name as

defined in [RFC4710], Section 5.3, then the

raqmonPartRepDsrcName bit will be set.

If the participant can report the Receiver Name as

defined in [RFC4710], Section 5.4, then the

raqmonPartRepRecvName bit will be set.

If the participant can report the Data Source Port as

defined in [RFC4710], Section 5.5, then the

raqmonPartRepDsrcPort bit will be set.

If the participant can report the Receiver Port as

defined in [RFC4710], Section 5.6, then the

raqmonPartRepRecvPort bit will be set.

If the participant can report the Session Setup Time as

defined in [RFC4710], Section 5.7, then the

raqmonPartRepSetupTime bit will be set.

If the participant can report the Session Setup Delay as

defined in [RFC4710], Section 5.8, then the

raqmonPartRepSetupDelay bit will be set.

If the participant can report the Session Duration as defined in [RFC4710], Section 5.9, then the raqmonPartRepSessionDuration bit will be set.

If the participant can report the Setup Status as

defined in [RFC4710], Section 5.10, then the

raqmonPartRepSetupStatus bit will be set.

If the participant can report the Round-Trip End-to-end Network Delay as defined in [RFC4710], Section 5.11, then the raqmonPartRepRTEnd2EndNetDelay bit will be set.

If the participant can report the One-way End-to-end Network Delay as defined in [RFC4710], Section 5.12, then the raqmonPartRepOWEnd2EndNetDelay bit will be set.

If the participant can report the Application Delay as

defined in [RFC4710], Section 5.13, then the

raqmonPartApplicationDelay bit will be set.

If the participant can report the Inter-Arrival Jitter as defined in [RFC4710], Section 5.14, then the raqmonPartRepIAJitter bit will be set.

If the participant can report the IP Packet Delay Variation as defined in [RFC4710], Section 5.15, then the raqmonPartRepIPDV bit will be set.

If the participant can report the number of application packets received as defined in [RFC4710], Section 5.16, then the raqmonPartRepRcvdPackets bit will be set.

If the participant can report the number of application octets received as defined in [RFC4710], Section 5.17, then the raqmonPartRepRcvdOctets bit will be set.

If the participant can report the number of application packets sent as defined in [RFC4710], Section 5.18, then the raqmonPartRepSentPackets bit will be set.

If the participant can report the number of application octets sent as defined in [RFC4710], Section 5.19, then the raqmonPartRepSentOctets bit will be set.

If the participant can report the number of cumulative packets lost as defined in [RFC4710], Section 5.20, then the raqmonPartRepCumPacketsLoss bit will be set.

If the participant can report the fraction of packet loss as defined in [RFC4710], Section 5.21, then the raqmonPartRepFractionPacketsLoss bit will be set.

If the participant can report the number of cumulative discards as defined in [RFC4710], Section 5.22, then the raqmonPartRepCumDiscards bit will be set.

If the participant can report the fraction of discards as defined in [RFC4710], Section 5.23, then the raqmonPartRepFractionDiscards bit will be set.

If the participant can report the Source Payload Type as

defined in [RFC4710], Section 5.24, then the

raqmonPartRepSrcPayloadType bit will be set.

If the participant can report the Destination Payload Type as defined in [RFC4710], Section 5.25, then the raqmonPartRepDestPayloadType bit will be set.

If the participant can report the Source Layer 2 Priority as defined in [RFC4710], Section 5.26, then the raqmonPartRepSrcLayer2Priority bit will be set.

If the participant can report the Source DSCP/ToS value as defined in [RFC4710], Section 5.27, then the raqmonPartRepSrcToSDscp bit will be set.

If the participant can report the Destination Layer 2 Priority as defined in [RFC4710], Section 5.28, then the raqmonPartRepDestLayer2Priority bit will be set.

If the participant can report the Destination DSCP/ToS Value as defined in [RFC4710], Section 5.29, then the raqmonPartRepDestToSDscp bit will be set.

If the participant can report the CPU utilization as defined in [RFC4710], Section 5.30, then the raqmonPartRepCPU bit will be set.

If the participant can report the memory utilization as

defined in [RFC4710], Section 5.31, then the

raqmonPartRepMemory bit will be set.

If the participant can report the Application Name as

defined in [RFC4710], Section 5.32, then the

raqmonPartRepAppName bit will be set.

                The capability of reporting of a specific metric does
                not mandate that the metric must be reported permanently
                by the data source to the respective collector.  Some
                data sources MAY be configured not to send a metric, or
                some metrics may not be relevant to the specific
                application."
           ::= { raqmonParticipantEntry 3 }

raqmonParticipantAddrType OBJECT-TYPE

           SYNTAX InetAddressType
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The type of the Internet address of the participant for
                this session."
           ::= { raqmonParticipantEntry 4 }

raqmonParticipantAddr OBJECT-TYPE

           SYNTAX InetAddress
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The Internet Address of the participant for this
                session.  Formatting of this object is determined
                by the value of raqmonParticipantAddrType."
           ::= { raqmonParticipantEntry 5 }

raqmonParticipantSendPort OBJECT-TYPE

           SYNTAX InetPortNumber
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Port from which session data is sent.
                If the value was not reported to the collector,
                this object will have the value 0."
           REFERENCE
               "Section 5.5 of the [RFC4710]"
           ::= { raqmonParticipantEntry 6 }

raqmonParticipantRecvPort OBJECT-TYPE

           SYNTAX InetPortNumber
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Port on which session data is received.
                If the value was not reported to the collector,
                this object will have the value 0."
           REFERENCE
               "Section 5.6 of the [RFC4710]"
           ::= { raqmonParticipantEntry 7 }

raqmonParticipantSetupDelay OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Session setup time.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.8 of the [RFC4710]"
           ::= { raqmonParticipantEntry 8 }

raqmonParticipantName OBJECT-TYPE

           SYNTAX SnmpAdminString
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The data source name for the participant."
           REFERENCE
               "Section 5.3 of the [RFC4710]"
          ::= { raqmonParticipantEntry 9 }

raqmonParticipantAppName OBJECT-TYPE

SYNTAX SnmpAdminString
MAX-ACCESS read-only
STATUS current
DESCRIPTION

"A string giving the name and possibly the version

                of the application generating the stream, e.g.,
                'videotool 1.2.'
           
                This information may be useful for debugging purposes
                and is similar to the Mailer or Mail-System-Version SMTP
                headers.  The tool value is expected to remain constant
                for the duration of the session."
           REFERENCE
               "Section 5.32 of the [RFC4710]"
           ::= { raqmonParticipantEntry 10 }

raqmonParticipantQosCount OBJECT-TYPE

           SYNTAX Gauge32
           UNITS  "entries"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The current number of entries in the raqmonQosTable
                for this participant and session."
           ::= { raqmonParticipantEntry 11 }

raqmonParticipantEndDate OBJECT-TYPE

           SYNTAX DateAndTime
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The date and time of the most recent report received."
           ::= { raqmonParticipantEntry 12 }

raqmonParticipantDestPayloadType OBJECT-TYPE

           SYNTAX Integer32 (-1|0..127)
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Destination Payload Type.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "RFC 3551 and Section 5.25 of the [RFC4710]"
           ::= { raqmonParticipantEntry 13 }

raqmonParticipantSrcPayloadType OBJECT-TYPE

           SYNTAX Integer32 (-1|0..127)
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Source Payload Type.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "RFC 3551 and Section 5.24 of the [RFC4710]"
           ::= { raqmonParticipantEntry 14 }

raqmonParticipantActive OBJECT-TYPE

           SYNTAX TruthValue
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Value 'true' indicates that the session
                for this participant is active (open).
                Value 'false' indicates that the session
                is closed (terminated)."
           ::= { raqmonParticipantEntry 15 }

raqmonParticipantPeer OBJECT-TYPE

           SYNTAX RowPointer
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The pointer to the corresponding entry in this table for
                the other peer participant.  If there is no such entry
                in the participant table of the collector represented by
                this SNMP agent, then the value will be { 0 0 }.
               "
           ::= { raqmonParticipantEntry 16 }

raqmonParticipantPeerAddrType OBJECT-TYPE

           SYNTAX InetAddressType
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The type of the Internet address of the peer participant
                for this session."
           ::= { raqmonParticipantEntry 17 }

raqmonParticipantPeerAddr OBJECT-TYPE

           SYNTAX InetAddress
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The Internet Address of the peer participant for this
                session.  Formatting of this object is determined by
                the value of raqmonParticipantPeerAddrType."
           ::= { raqmonParticipantEntry 18 }

raqmonParticipantSrcL2Priority OBJECT-TYPE

           SYNTAX Integer32 (-1|0..7)
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Source Layer 2 Priority.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.26 of the [RFC4710]"
           ::= { raqmonParticipantEntry 19 }

raqmonParticipantDestL2Priority OBJECT-TYPE

           SYNTAX Integer32 (-1|0..7)
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Destination Layer 2 Priority.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.28 of the [RFC4710]"
           ::= { raqmonParticipantEntry 20 }

raqmonParticipantSrcDSCP OBJECT-TYPE

           SYNTAX Integer32 (-1|0..63)
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Source Layer 3 DSCP value.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.27 of the [RFC4710]"
           ::= { raqmonParticipantEntry 21 }

raqmonParticipantDestDSCP OBJECT-TYPE

           SYNTAX Integer32  (-1|0..63)
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Destination Layer 3 DSCP value."
           REFERENCE
               "Section 5.29 of the [RFC4710]"
           ::= { raqmonParticipantEntry 22 }

raqmonParticipantCpuMean OBJECT-TYPE

           SYNTAX Integer32 (-1|0..100)
           UNITS  "percents"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Mean CPU utilization.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.30 of the [RFC4710]"
           ::= { raqmonParticipantEntry 23 }

raqmonParticipantCpuMin OBJECT-TYPE

           SYNTAX Integer32 (-1|0..100)
           UNITS  "percents"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Minimum CPU utilization.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.30 of the [RFC4710]"
           ::= { raqmonParticipantEntry 24 }

raqmonParticipantCpuMax OBJECT-TYPE

           SYNTAX Integer32 (-1|0..100)
           UNITS  "percents"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Maximum CPU utilization.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.30 of the [RFC4710]"
           ::= { raqmonParticipantEntry 25 }

raqmonParticipantMemoryMean OBJECT-TYPE

           SYNTAX Integer32 (-1|0..100)
           UNITS  "percents"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Mean memory utilization.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.31 of the [RFC4710]"
           ::= { raqmonParticipantEntry 26 }

raqmonParticipantMemoryMin OBJECT-TYPE

           SYNTAX Integer32 (-1|0..100)
           UNITS  "percents"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Minimum memory utilization.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.31 of the [RFC4710]"
           ::= { raqmonParticipantEntry 27 }

raqmonParticipantMemoryMax OBJECT-TYPE

           SYNTAX Integer32 (-1|0..100)
           UNITS  "percents"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Maximum memory utilization.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.31 of the [RFC4710]"
           ::= { raqmonParticipantEntry 28 }

raqmonParticipantNetRTTMean OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Mean round-trip end-to-end network
                delay over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.11 of the [RFC4710]"
           ::= { raqmonParticipantEntry 29 }

raqmonParticipantNetRTTMin OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Minimum round-trip end-to-end network delay
                over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.11 of the [RFC4710]"
           ::= { raqmonParticipantEntry 30 }

raqmonParticipantNetRTTMax OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Maximum round-trip end-to-end network delay
                over the entire session.
                If the value was not reported to the collector,
           
                this object will have the value -1."
           REFERENCE
               "Section 5.11 of the [RFC4710]"
           ::= { raqmonParticipantEntry 31 }

raqmonParticipantIAJitterMean OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Mean inter-arrival jitter over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.14 of the [RFC4710]"
           ::= { raqmonParticipantEntry 32 }

raqmonParticipantIAJitterMin OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Minimum inter-arrival jitter over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.14 of the [RFC4710]"
           ::= { raqmonParticipantEntry 33 }

raqmonParticipantIAJitterMax OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Maximum inter-arrival jitter over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.14 of the [RFC4710]"
           ::= { raqmonParticipantEntry 34 }

raqmonParticipantIPDVMean OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Mean IP packet delay variation over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.15 of the [RFC4710]"
           ::= { raqmonParticipantEntry 35 }

raqmonParticipantIPDVMin OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Minimum IP packet delay variation over the entire
                session.  If the value was not reported to the
                collector, this object will have the value -1."
           REFERENCE
               "Section 5.15 of the [RFC4710]"
           ::= { raqmonParticipantEntry 36 }

raqmonParticipantIPDVMax OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Maximum IP packet delay variation over the entire
                session.  If the value was not reported to the
                collector, this object will have the value -1."
           REFERENCE
               "Section 5.15 of the [RFC4710]"
           ::= { raqmonParticipantEntry 37 }

raqmonParticipantNetOwdMean OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Mean Network one-way delay over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.12 of the [RFC4710]"
           ::= { raqmonParticipantEntry 38 }

raqmonParticipantNetOwdMin OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Minimum Network one-way delay over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.12 of the [RFC4710]"
           ::= { raqmonParticipantEntry 39 }

raqmonParticipantNetOwdMax OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Maximum Network one-way delay over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.1 of the [RFC4710]"
           ::= { raqmonParticipantEntry 40 }

raqmonParticipantAppDelayMean OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Mean application delay over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.13 of the [RFC4710]"
           ::= { raqmonParticipantEntry 41 }

raqmonParticipantAppDelayMin OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Minimum application delay over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           
           REFERENCE
               "Section 5.13 of the [RFC4710]"
           ::= { raqmonParticipantEntry 42 }

raqmonParticipantAppDelayMax OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Maximum application delay over the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.13 of the [RFC4710]"
           ::= { raqmonParticipantEntry 43 }

raqmonParticipantPacketsRcvd OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "packets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of packets received for the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.16 of the [RFC4710]"
           ::= { raqmonParticipantEntry 44 }

raqmonParticipantPacketsSent OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "packets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of packets sent for the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.17 of the [RFC4710]"
           ::= { raqmonParticipantEntry 45 }

raqmonParticipantOctetsRcvd OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "Octets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of octets received for the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.18 of the [RFC4710]"
           ::= { raqmonParticipantEntry 46 }

raqmonParticipantOctetsSent OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "Octets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of octets sent for the entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.19 of the [RFC4710]"
           ::= { raqmonParticipantEntry 47 }

raqmonParticipantLostPackets OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "packets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of packets lost by this receiver for the entire
                session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.20 of the [RFC4710]"
           ::= { raqmonParticipantEntry 48 }

raqmonParticipantLostPacketsFrct OBJECT-TYPE

           SYNTAX Integer32 (-1|0..100)
           UNITS  "percents"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Fraction of lost packets out of total packets received.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.21 of the [RFC4710]"
           ::= { raqmonParticipantEntry 49 }

raqmonParticipantDiscards OBJECT-TYPE

           SYNTAX Integer32 (-1|0..2147483647)
           UNITS  "packets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of packets discarded by this receiver for the
                entire session.
                If the value was not reported to the collector,
                this object will have the value -1."
           REFERENCE
               "Section 5.22 of the [RFC4710]"
           ::= { raqmonParticipantEntry 50 }

raqmonParticipantDiscardsFrct OBJECT-TYPE

           SYNTAX Integer32 (-1|0..100)
           UNITS  "percents"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Fraction of discarded packets out of total packets
                received.  If the value was not reported to the
                collector, this object will have the value -1."
           REFERENCE
               "Section 5.23 of the [RFC4710]"
           ::= { raqmonParticipantEntry 51 }

raqmonQosTable OBJECT-TYPE

           SYNTAX SEQUENCE OF RaqmonQosEntry
           MAX-ACCESS not-accessible
           STATUS current
           DESCRIPTION
               "Table of historical information about quality-of-service
                data during sessions."
           ::= { raqmonSession 2 }

raqmonQosEntry OBJECT-TYPE

SYNTAX RaqmonQosEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION

"Each entry contains information from a single RAQMON

packet, related to a single session (application) run by one participant.
Indexation by the start time of the session aims to ease sorting by management applications. Agents MUST NOT report identical start times for any two sessions

                on the same host.
                Rows are removed for inactive sessions when
                implementation-specific time or space limits are
                reached."
           INDEX { raqmonParticipantStartDate,
                   raqmonParticipantIndex,
                   raqmonQosTime }
           ::= { raqmonQosTable 1 }

RaqmonQosEntry ::=

SEQUENCE {

               raqmonQosTime          Unsigned32,
               raqmonQoSEnd2EndNetDelay           Integer32,
               raqmonQoSInterArrivalJitter        Integer32,
               raqmonQosRcvdPackets   Integer32,
               raqmonQosRcvdOctets    Integer32,
               raqmonQosSentPackets   Integer32,
               raqmonQosSentOctets    Integer32,
               raqmonQosLostPackets   Integer32,
               raqmonQosSessionStatus SnmpAdminString
               }

raqmonQosTime OBJECT-TYPE

           SYNTAX Unsigned32 (0..2147483647)
           UNITS  "seconds"
           MAX-ACCESS not-accessible
           STATUS current
           DESCRIPTION
               "Time of this entry measured from the start of the
                corresponding participant session."
           ::= { raqmonQosEntry 1 }

raqmonQoSEnd2EndNetDelay OBJECT-TYPE

           SYNTAX Integer32 (-1 | 0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The round-trip time.
                Will contain the previous value if there was no report
                for this time, or -1 if the value has never
                been reported."
           REFERENCE
               "Section 5.11 of the [RFC4710]"
           ::= { raqmonQosEntry 2 }

raqmonQoSInterArrivalJitter OBJECT-TYPE

           SYNTAX Integer32 (-1 | 0..2147483647)
           UNITS  "milliseconds"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "An estimate of delay variation as observed by this
                receiver.  Will contain the previous value if there
                was no report for this time, or -1 if the value
                has never been reported."
           REFERENCE
               "Section 5.14 of the [RFC4710]"
           ::= { raqmonQosEntry 3 }
       
       raqmonQosRcvdPackets OBJECT-TYPE
           SYNTAX Integer32 (-1 | 0..2147483647)
           UNITS  "packets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of packets received by this receiver since the
                previous entry.  Will contain the previous value if
                there was no report for this time, or -1 if the value
                has never been reported."
           REFERENCE
               "Section 5.16 of the [RFC4710]"
       ::= { raqmonQosEntry 4 }

raqmonQosRcvdOctets OBJECT-TYPE

           SYNTAX Integer32 (-1 | 0..2147483647)
           UNITS  "octets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of octets received by this receiver since the
                previous report.  Will contain the previous value if
                there was no report for this time, or -1 if the value
                has never been reported."
               REFERENCE
                     "Section 5.18 of the [RFC4710]"
           ::= { raqmonQosEntry 5 }

raqmonQosSentPackets OBJECT-TYPE

           SYNTAX Integer32 (-1 | 0..2147483647)
           UNITS  "packets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of packets sent since the previous report.
                Will contain the previous value if there
       
                was no report for this time, or -1 if the value
                has never been reported."
          REFERENCE
              "Section 5.17 of the [RFC4710]"
       ::= { raqmonQosEntry 6 }

raqmonQosSentOctets OBJECT-TYPE

           SYNTAX Integer32 (-1 | 0..2147483647)
           UNITS  "octets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of octets sent since the previous report.
                Will contain the previous value if there
                was no report for this time, or -1 if the value
                has never been reported."
           REFERENCE
               "Section 5.19 of the [RFC4710]"
           ::= { raqmonQosEntry 7 }
       
       raqmonQosLostPackets OBJECT-TYPE
           SYNTAX Integer32 (-1 | 0..2147483647)
           UNITS  "packets"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "A count of packets lost as observed by this receiver
                since the previous report.  Will contain the previous
                value if there was no report for this time, or -1 if
                the value has never been reported."
           REFERENCE
               "Section 5.20 of the [RFC4710]"
       ::= { raqmonQosEntry 8 }

raqmonQosSessionStatus OBJECT-TYPE

           SYNTAX SnmpAdminString
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The session status.  Will contain the previous value
                if there was no report for this time or the zero-length
                string if no value was ever reported."
           REFERENCE
               "Section 5.10 of the [RFC4710]"
           ::= { raqmonQosEntry 9 }
       
       raqmonParticipantAddrTable OBJECT-TYPE
           SYNTAX SEQUENCE OF RaqmonParticipantAddrEntry
           MAX-ACCESS not-accessible
           STATUS current
           DESCRIPTION
               "Maps raqmonParticipantAddr to the index of the
                raqmonParticipantTable.  This table allows
                management applications to find entries
                sorted by raqmonParticipantAddr rather than
                raqmonParticipantStartDate."
           ::= { raqmonSession 3 }

raqmonParticipantAddrEntry OBJECT-TYPE

SYNTAX RaqmonParticipantAddrEntry MAX-ACCESS not-accessible
STATUS current
DESCRIPTION

"Each entry corresponds to exactly one entry in the

raqmonParticipantEntry: the entry containing the index pair raqmonParticipantStartDate, raqmonParticipantIndex.

                Note that there is no concern about the indexation of
                this table exceeding the limits defined by RFC 2578,
                Section 3.5.  According to [RFC4710], Section
                5.1, only IPv4 and IPv6 addresses can be reported as
                participant addresses."
           INDEX { raqmonParticipantAddrType,
                   raqmonParticipantAddr,
                   raqmonParticipantStartDate,
                   raqmonParticipantIndex }
           ::= { raqmonParticipantAddrTable 1 }

RaqmonParticipantAddrEntry ::=

SEQUENCE { raqmonParticipantAddrEndDate DateAndTime }

raqmonParticipantAddrEndDate OBJECT-TYPE

           SYNTAX DateAndTime
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The value of raqmonParticipantEndDate for the
                corresponding raqmonParticipantEntry."
           ::= { raqmonParticipantAddrEntry 1 }
       
       raqmonException OBJECT IDENTIFIER ::= { raqmonMIBObjects 2 }
       
       raqmonSessionExceptionTable OBJECT-TYPE

SYNTAX SEQUENCE OF RaqmonSessionExceptionEntry MAX-ACCESS not-accessible
STATUS current
DESCRIPTION

"This table defines thresholds for the management

station to get notifications about sessions that encountered poor quality of service.

                The information in this table MUST be persistent
                across agent reboots."
           ::= { raqmonException 2 }

raqmonSessionExceptionEntry OBJECT-TYPE

           SYNTAX RaqmonSessionExceptionEntry
           MAX-ACCESS not-accessible
           STATUS current
           DESCRIPTION
               "A conceptual row in the raqmonSessionExceptionTable."
           INDEX { raqmonSessionExceptionIndex }
           ::= { raqmonSessionExceptionTable 1 }

RaqmonSessionExceptionEntry ::=

SEQUENCE {

               raqmonSessionExceptionIndex                Unsigned32,
               raqmonSessionExceptionIAJitterThreshold    Unsigned32,
               raqmonSessionExceptionNetRTTThreshold      Unsigned32,
               raqmonSessionExceptionLostPacketsThreshold Unsigned32,
               raqmonSessionExceptionRowStatus            RowStatus
               }

raqmonSessionExceptionIndex OBJECT-TYPE

           SYNTAX Unsigned32 (1..65535)
           MAX-ACCESS not-accessible
           STATUS current
           DESCRIPTION
               "An index that uniquely identifies an
                entry in the raqmonSessionExceptionTable.
                Management applications can determine unused indices
                by performing GetNext or GetBulk operations on the
                Table."
           ::= { raqmonSessionExceptionEntry 2 }

raqmonSessionExceptionIAJitterThreshold OBJECT-TYPE

           SYNTAX Unsigned32
           UNITS  "milliseconds"
           MAX-ACCESS read-create
           STATUS current
           DESCRIPTION
               "Threshold for jitter.
                The value during a session must be greater than or
                equal to this value for an exception to be created."
           ::= { raqmonSessionExceptionEntry 3 }

raqmonSessionExceptionNetRTTThreshold OBJECT-TYPE

           SYNTAX Unsigned32
           UNITS  "milliseconds"
           MAX-ACCESS read-create
           STATUS current
           DESCRIPTION
               "Threshold for round-trip time.
                The value during a session must be greater than or
                equal to this value for an exception to be created."
           ::= { raqmonSessionExceptionEntry 4 }

raqmonSessionExceptionLostPacketsThreshold OBJECT-TYPE

           SYNTAX Unsigned32 (0..1000)
           UNITS  "tenth of a percent"
           MAX-ACCESS read-create
           STATUS current
           DESCRIPTION
               "Threshold for lost packets in units of tenths
                of a percent.  The value during a session must
                be greater than or equal to this value for an
                exception to be created."
           ::= { raqmonSessionExceptionEntry 5 }

raqmonSessionExceptionRowStatus OBJECT-TYPE

           SYNTAX RowStatus
           MAX-ACCESS read-create
           STATUS current
           DESCRIPTION
               "This object has a value of 'active' when
                exceptions are being monitored by the system.
                A newly-created conceptual row must have all
                the read-create objects initialized before
                becoming 'active'.  A conceptual row that is in
                the 'notReady' or 'notInService' state MAY be
                removed after 5 minutes.  No writeable objects
                can be changed while the row is active."
           ::= { raqmonSessionExceptionEntry 7 }
       
       raqmonConfig OBJECT IDENTIFIER ::= { raqmonMIBObjects 3 }

raqmonConfigPort OBJECT-TYPE

           SYNTAX InetPortNumber
           MAX-ACCESS read-write
           STATUS current
           DESCRIPTION
               "The UDP port to listen on for RAQMON reports,
                running on transport protocols other than SNMP.
                If the RAQMON PDU transport protocol is SNMP,
                a write operation on this object has no effect, as
                the standard port 162 is always used.
                The value of this object MUST be persistent across
                agent reboots."
           ::= { raqmonConfig 1 }

raqmonConfigPduTransport OBJECT-TYPE

            SYNTAX BITS
               {
                   other(0),
                   tcp(1),
                   snmp(2)
               }
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "The PDU transport(s) used by this collector.
                If other(0) is set, the collector supports a
                transport other than SNMP or TCP.
                If tcp(1) is set, the collector supports TCP as a
                transport protocol.
                If snmp(2) is set, the collector supports SNMP as a
                transport protocol."
           ::= { raqmonConfig 2 }

raqmonConfigRaqmonPdus OBJECT-TYPE

           SYNTAX Counter32
           UNITS  "PDUs"
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
               "Count of RAQMON PDUs received by the Collector."
           ::= { raqmonConfig 3 }

raqmonConfigRDSTimeout OBJECT-TYPE

SYNTAX Unsigned32
MAX-ACCESS read-write
STATUS current
DESCRIPTION

"The number of seconds since the reception of the

last RAQMON PDU from a RDS after which a session

                between the respective RDS and the collector will be
                considered terminated.
                The value of this object MUST be persistent across
                agent reboots."
           ::= { raqmonConfig 4 }
       
       raqmonConformance OBJECT IDENTIFIER ::= { raqmonMIB 2 }
       
       raqmonCompliances OBJECT IDENTIFIER ::= { raqmonConformance 1 }
       raqmonGroups OBJECT IDENTIFIER ::= { raqmonConformance 2 }

raqmonCompliance MODULE-COMPLIANCE

           STATUS  current
           DESCRIPTION
               "Describes the requirements for conformance to the
                RAQMON MIB."
           MODULE  -- this module
           MANDATORY-GROUPS { raqmonCollectorGroup,
                              raqmonCollectorNotificationsGroup
                            }
           
           OBJECT raqmonParticipantAddrType
           SYNTAX  InetAddressType { ipv4(1), ipv6(2) }
           DESCRIPTION
               "Only IPv4 and IPv6 addresses need to be supported."
           
           OBJECT raqmonParticipantAddr
           SYNTAX  InetAddress (SIZE(4|16))
           DESCRIPTION
               "Only IPv4 and IPv6 addresses need to be supported."
           
           OBJECT raqmonParticipantPeerAddrType
           SYNTAX  InetAddressType { ipv4(1), ipv6(2) }
           DESCRIPTION
               "Only IPv4 and IPv6 addresses need to be supported."
           
           OBJECT raqmonParticipantPeerAddr
           SYNTAX  InetAddress (SIZE(4|16))
           DESCRIPTION
               "Only IPv4 and IPv6 addresses need to be supported."
           
              ::= { raqmonCompliances 1 }

raqmonCollectorGroup OBJECT-GROUP

OBJECTS {

               raqmonParticipantReportCaps,
               raqmonParticipantAddrType,
               raqmonParticipantAddr,
               raqmonParticipantSendPort,
               raqmonParticipantRecvPort,
               raqmonParticipantSetupDelay,
               raqmonParticipantName,
               raqmonParticipantAppName,
               raqmonParticipantQosCount,
               raqmonParticipantEndDate,
               raqmonParticipantDestPayloadType,
               raqmonParticipantSrcPayloadType,
               raqmonParticipantActive,
               raqmonParticipantPeer,
               raqmonParticipantPeerAddrType,
               raqmonParticipantPeerAddr,
               raqmonParticipantSrcL2Priority,
               raqmonParticipantDestL2Priority,
               raqmonParticipantSrcDSCP,
               raqmonParticipantDestDSCP,
               raqmonParticipantCpuMean,
               raqmonParticipantCpuMin,
               raqmonParticipantCpuMax,
               raqmonParticipantMemoryMean,
               raqmonParticipantMemoryMin,
               raqmonParticipantMemoryMax,
               raqmonParticipantNetRTTMean,
               raqmonParticipantNetRTTMin,
               raqmonParticipantNetRTTMax,
               raqmonParticipantIAJitterMean,
               raqmonParticipantIAJitterMin,
               raqmonParticipantIAJitterMax,
               raqmonParticipantIPDVMean,
               raqmonParticipantIPDVMin,
               raqmonParticipantIPDVMax,
               raqmonParticipantNetOwdMean,
               raqmonParticipantNetOwdMin,
               raqmonParticipantNetOwdMax,
               raqmonParticipantAppDelayMean,
               raqmonParticipantAppDelayMin,
               raqmonParticipantAppDelayMax,
               raqmonParticipantPacketsRcvd,
               raqmonParticipantPacketsSent,
               raqmonParticipantOctetsRcvd,
               raqmonParticipantOctetsSent,
               raqmonParticipantLostPackets,
           
               raqmonParticipantLostPacketsFrct,
               raqmonParticipantDiscards,
               raqmonParticipantDiscardsFrct,
               raqmonQoSEnd2EndNetDelay,
               raqmonQoSInterArrivalJitter,
               raqmonQosRcvdPackets,
               raqmonQosRcvdOctets,
               raqmonQosSentPackets,
               raqmonQosSentOctets,
               raqmonQosLostPackets,
               raqmonQosSessionStatus,
               raqmonParticipantAddrEndDate,
               raqmonConfigPort,
               raqmonSessionExceptionIAJitterThreshold,
               raqmonSessionExceptionNetRTTThreshold,
               raqmonSessionExceptionLostPacketsThreshold,
               raqmonSessionExceptionRowStatus,
               raqmonConfigPduTransport,
               raqmonConfigRaqmonPdus,
               raqmonConfigRDSTimeout}
           STATUS current
           DESCRIPTION
               "Objects used in RAQMON by a collector."
           
           ::= { raqmonGroups 1 }

raqmonCollectorNotificationsGroup NOTIFICATION-GROUP

           NOTIFICATIONS { raqmonSessionAlarm }
           STATUS current
           DESCRIPTION
               "Notifications emitted by a RAQMON collector."
           ::= { raqmonGroups 2 }
   
   END

6. Security Considerations

There are a number of management objects defined in this MIB module with a MAX-ACCESS clause of read-write. Such objects may be considered sensitive or vulnerable in some network environments. The support for SET operations in a non-secure environment without proper protection can have a negative effect on network operations.

Setting the value of the object raqmonRDSTimeout to too low a value would result in RDS sessions being terminated sooner than necessary, while setting at too high a value may result in terminated sessions continuing to be managed, with unnecessary memory allocations.

Setting the following object to incorrect values can result in the collectors either flooding the management applications with unnecessary notifications, or not sending notifications when the QoS in the network may be degraded.

raqmonSessionExceptionIAJitterThreshold raqmonSessionExceptionRTTThreshold raqmonSessionExceptionLostPacketsThreshold

Setting the raqmonConfigPort object to incorrect values can result in the collector not being able to receive RAQMON PDUs from the data sources.

Some of the readable objects in this MIB module (i.e., objects with a MAX-ACCESS other than not-accessible) may be considered sensitive or vulnerable in some network environments. These are:

raqmonParticipantTable
raqmonQoSTable
raqmonParticpantAddrTable

Unauthorized exposure of these objects may lead to disclosure of the addresses of the participants in applications, or information about the traffic patents of the applications, which may be considered sensitive in certain environments.

It is thus important to control even GET and/or NOTIFY access to these objects and possibly to even encrypt their values when sending them over the network via SNMP.

The structure of the RAQMON tables limits what can be usefully done for access control configuration using View-based Access Control Model (VACM). For example, with these structures it would not be possible to provide a group, with access to performance data for a specific group of devices, since the index values for raqmonParticpantEntry cannot be known in advance. Likewise, raqmonSessionExceptionEntries apply to all entries in the raqmonQoSTable.

SNMP versions prior to SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPsec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module.

It is RECOMMENDED that implementers consider the security features as provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy).

Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsibility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them.

7. IANA Considerations

No requirements from IANA are defined in this document. The root OID of the MIB module defined in this document belongs to the RMON subtree, as reserved in [RFC3737].

8. Acknowledgements

Richard Smith created the first proprietary version of this MIB.

The authors would also like to thank all the participants in the Remote Monitoring MIB Working Group, and especially Andy Bierman, Steven Waldbusser, Alan Clark, Itai Zilbershtein, and Robert Cole for interesting discussions, ideas, comments, and direct contributions to this work.

The authors would also like to thank Randy Presuhn for the precious technical comments, as well as for the laborious activity of reviewing the syntax and spelling of the document.

The authors would like to thank Bert Wijnen for the review of the final versions of the document, as well as for the guidance provided during the whole period of editing.

9. Normative References

   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.
   
   [RFC2578]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
               Rose, M., and S. Waldbusser, "Structure of Management
               Information Version 2 (SMIv2)", STD 58, RFC 2578, April
               1999.
   
   [RFC2579]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
               Rose, M., and S. Waldbusser, "Textual Conventions for
               SMIv2", STD 58, RFC 2579, April 1999.
   
   [RFC2580]   McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
               Rose, M., and S. Waldbusser, "Conformance Statements for
               SMIv2", STD 58, RFC 2580, April 1999.
   
   [RFC2819]   Waldbusser, S., "Remote Network Monitoring Management
               Information Base", STD 59, RFC 2819, May 2000.
   
   [RFC3411]   Harrington, D., Preshun, R., and B. Wijnen, "An
               Architecture for Describing Simple Network Management
               Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
               December 2002.
   
   [RFC4001]   Daniele, M., Haberman, B., Routhier, S., and J.
               Schoenwalder, "Textual Conventions for Internet Network
               Addresses", RFC 4001, February 2005.
   
   [RFC4710]   Siddiqui, A., Romascanu, D., and E. Golovinsky, "Real-
               time Application Quality-of-Service Monitoring (RAQMON)
               Framework", RFC 4710, October 2006.

10. Informative References

   [RFC3410]   Case, J., Mundy, R., Partain, D., and B. Stewart,
               "Introduction and Applicability Statements for Internet-
               Standard Management Framework", RFC 3410, December 2002.
   
   [RFC4712]   Siddiqui, A., Romascanu, D., Golovinsky, E., Ramhman, M.,
               and Y. Kim, "Transport Mappings for Real-time Application
               Quality-of-Service Monitoring (RAQMON) Protocol Data Unit
               (PDU)", RFC 4712, October 2006.
   
   [RFC3737]   Wijnen, B. and A. Bierman, "IANA Guidelines for the
               Registry of Remote Monitoring (RMON) MIB modules", RFC
               3737, April 2004.

Authors' Addresses

Anwar A. Siddiqui
Avaya Labs
307 Middletown Lincroft Road
Lincroft, New Jersey 07738
USA

   Phone: +1 732 852-3200
   Fax:   +1 732 817-5922
   EMail: [email protected]

Dan Romascanu
Avaya
Atidim Technology Park, Bldg. #3
Tel Aviv, 61131
Israel

   Phone: +972 3-645-8414
   EMail: [email protected]
   
   Eugene Golovinsky

EMail:

          [email protected]

Full Copyright Statement

Copyright © The Internet Society (2006).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at [email protected].

Acknowledgement

Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA).