Internet Draft                                                J. Quittek
Document: draft-ietf-rohc-mib-rtp-02.txt                  H. Hartenstein
Expires: December 2002                                    M. Stiemerling
                                                         NEC Europe Ltd.
                                                               June 2002


      Definitions of Managed Objects for Robus Header Compression

                    <draft-ietf-rohc-mib-rtp-02.txt>

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC 2026.  Internet-Drafts are
   working documents of the Internet Engineering Task Force (IETF), its
   areas, and its working groups.  Note that other groups may also
   distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   Distribution of this document is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2002).  All Rights Reserved.


Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it describes a set of managed objects that allow
   monitoring of running instances of robust header compression.









Quittek, Hartenstein, Stiemerling                               [Page 1]


Internet-Draft                  ROHC MIB                       June 2002


Table of Contents

   1 Introduction .................................................    2
   2 The SNMP Management Framework ................................    2
   3 Overview .....................................................    3
   4 Architectural Assumptions ....................................    4
   4.1 Concurrent Instances of ROHC ...............................    4
   4.2 Single Instance per Interface ..............................    5
   4.3 Multiple Interfaces per Instance ...........................    5
   4.4 Channels may be Bi-directional .............................    5
   4.5 Channel Used by Single Instance ............................    5
   4.6 Feedback Channel at Same Interface .........................    5
   5 Structure of the MIB modules .................................    5
   5.1 Object Groups in the ROHC-MIB module .......................    6
   5.1.1 The rohcInstanceGroup ....................................    6
   5.1.2 The rohcChannelGroup .....................................    6
   5.2 Object Groups in the ROHC-RTP-MIB module ...................    7
   5.2.1 The rohcCompressorGroup ..................................    7
   5.2.2 The rohcDecompressorGroup ................................    7
   6 Definitions ..................................................    8
   7 Security Considerations ......................................   32
   8 References ...................................................   32
   9 Authors' Addresses ...........................................   34
   10 Full Copyright Statement ....................................   35


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 describes a set of managed objects that allow
   monitoring of running instances of robust header compression.

   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 RFC 2119 [RFC2119].


2.  The SNMP Management Framework

   The SNMP Management Framework presently consists of five major
   components:

    o   An overall architecture, described in RFC 2571 [RFC2571].

    o   Mechanisms for describing and naming objects and events for the
        purpose of management.  The first version of this Structure of
        Management Information (SMI) is called SMIv1 and described in
        STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC
        1215 [RFC1215].  The second version, called SMIv2, is described


Quittek, Hartenstein, Stiemerling                               [Page 2]


Internet-Draft                  ROHC MIB                       June 2002


        in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and
        STD 58, RFC 2580 [RFC2580].

    o   Message protocols for transferring management information.  The
        first version of the SNMP message protocol is called SNMPv1 and
        described in STD 15, RFC 1157 [RFC1157].  A second version of
        the SNMP message protocol, which is not an Internet standards
        track protocol, is called SNMPv2c and described in RFC 1901
        [RFC1901] and RFC 1906 [RFC1906].  The third version of the
        message protocol is called SNMPv3 and described in RFC 1906
        [RFC1906], RFC 2572 [RFC2572] and RFC 2574 [RFC2574].

    o   Protocol operations for accessing management information.  The
        first set of protocol operations and associated PDU formats is
        described in STD 15, RFC 1157 [RFC1157].  A second set of
        protocol operations and associated PDU formats is described in
        RFC 1905 [RFC1905].

    o   A set of fundamental applications described in RFC 2573
        [RFC2573] and the view-based access control mechanism described
        in RFC 2575 [RFC2575].

   A more detailed introduction to the current SNMP Management Framework
   can be found in RFC 2570 [RFC2570].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  Objects in the MIB are
   defined using the mechanisms defined in the SMI.

   This memo specifies a MIB module that is compliant to the SMIv2.  A
   MIB conforming to the SMIv1 can be produced through the appropriate
   translations.  The resulting translated MIB must be semantically
   equivalent, except where objects or events are omitted because no
   translation is possible (use of Counter64).  Some machine readable
   information in SMIv2 will be converted into textual descriptions in
   SMIv1 during the translation process.  However, this loss of machine
   readable information is not considered to change the semantics of the
   MIB.


3.  Overview

   This section describes the basic model of RObust Header Compression
   (ROHC, [RFC3095]) used when developing the MIB modules for ROHC
   described in the following sections.

   ROHC presents a framework for IP header compression that allows
   flexible adjustment of compression efficiency versus robustness
   against channel errors depending on the underlying channel
   characteristics.


Quittek, Hartenstein, Stiemerling                               [Page 3]


Internet-Draft                  ROHC MIB                       June 2002


   ROHC introduces header compressors/decompressors at the end-points
   (interfaces) of (wireless) channels on which ROHC header-compressed
   packets flow. ROHC exploits the temporal redundancy in successive
   packet headers of a packet flow by storing non-changing fields of the
   headers as well as reference values of predictably changing fields as
   context information. When the context information for a packet flow
   is also established at the decompressor, only delta-information and
   unpredictably changing header fields have to be sent over the
   channel. Since the context information will change over time, the
   decompressor's information on the context has to be kept 'in sync'.
   In order to update contexts at the decompressor, various header types
   can be used to efficiently transmit the information needed for the
   update.

   ROHC specifies three modes of operation: i) unidirectional mode where
   the decompressor does not give feedback to the compressor, ii)
   bidirectional reliable mode, and iii) bidirectional optimistic mode.
   The control mechanisms that determine what header types are allowed
   to be sent or to be decompressed are modeled as state machines.
   Detection of residual bit errors or damaged contexts at the
   decompressor as well as repair strategies are based on Cyclic
   Redundancy Checks (CRC) included in the compressed headers.

   This document specifies the ROHC MIB module in order to provide means
   for managing ROHC implementation via SNMP and within the IETF
   management framework. The objects defined support configuration
   management, fault management and performance monitoring.

   For configuration management implementation parameters (Section 6.3.
   of RFC 3095) and configuration parameters (including the ones
   specified in 5.1.1 of RFC 3095) can be verified by using the ROHC
   MIB.

   For fault management compressor/decompressor state and mode can be
   checked and the compressor context can be reinitialized.

   For performance management a set of statistics is provided including
   the number of flows that have used ROHC, the current and long term
   compression ratio, the number of reinitializations and the number of
   packets sent or received with different header types.


4.  Architectural Assumptions

   The MIB module defined below in Section 6 provides structured access
   to configuration data, state, performance data, and statistics of
   running instances of ROHC. When defining the MIB structure, some
   architectural assumptions had to be made. These assumptions cover
   basic architecture issues, such as entity relationships between
   compressors, channels, and IP network interfaces.


Quittek, Hartenstein, Stiemerling                               [Page 4]


Internet-Draft                  ROHC MIB                       June 2002


   We are not sure that the list of architectural assumptions below is
   already complete. Possibly more assumptions are still hidden in the
   MIB module defintion and need to be identified. Furthermore, we are
   not sure that all of the listed assumptions are reasonable. We see
   the list as a starting point for a discussion on all assumptions.

4.1.  Concurrent Instances of ROHC

   At a network node serving as (de)compressor point serveral instances
   of ROHC implementations may run concurrently. These may all be
   instances of the same implementation, or they may be instances of
   different versions of the same implementation, or they may origin
   from different manufacturers.

   As an example take a ROHC implementation running completely on a
   network interface card. At a node equipped with several cards, each
   card runs its own independent instance. Typically all cards use the
   same ROHC implementation when the node is installed for the first
   time. But after some time some cards my be replaced or added without
   replacing or updating all installed cards. Then the newer card my run
   some recent versions of the ROHC implementations or even use other
   independent implementations.

4.2.  Single Instance per Interface

   No more than one instance of ROHC may act as (de)compression point
   for a specific (logical) IP interface.

   This assumption may be too restrictive. In general, systems can be
   built that violate this assumption. It needs to be discussed further,
   wether such systems are probable to be implemented or just irrelevant
   alternatives.

4.3.  Multiple Interfaces per Instance

   A single instance of ROHC may serve more than one IP interface. An
   example is a central implementation serving all interfaces of a
   network node.

4.4.  Channels may be Bi-directional   Channels may carry data in both
directions. This is typically not the case, but it does not require much
additional effort to support bi- directional channels by the MIB
structure, and we did not see any good reason to exclude future
implementations on bi-directional channels. However, we still see this
assumption as subject of further discussions.

4.5.  Channel Used by Single Instance

   A channel is exclusively used by a single implementation of ROHC.



Quittek, Hartenstein, Stiemerling                               [Page 5]


Internet-Draft                  ROHC MIB                       June 2002


4.6.  Feedback Channel at Same Interface

   A feedback channel must be accessible at the same IP interface at
   which also the original channel is accessible.

   This is again a questionable assumption. One could think of using
   different logical interfaces for forward and backward channels. Input
   on how realistic such implementations are is very welcome.


5.  Structure of the MIB modules

   This section presents the structure of the MIB modules specified in
   detail inthe following section.

   ROHC is an evolving technology. RFC3095 specifies header compression
   for RTP flows. Compression of TCP flows is under development at the
   ROHC working group and SCTP compressiojn is being discussed as
   potential next candidate. The MIB modules defined in this document
   cover RTP compression, but they are already prepared for extending
   them when TCP cpmpression and others are completed.

   In order to achieve some openness to future technology, this document
   contains two MIB modules: a general ROHC-MIB module and a specific
   ROHC-RTP-MIB module. The ROHC-MIB module models information on ROHC
   instances at the managed node and some of their genearal properties.
   It also covers IP interfaces for which ROHC is available and channels
   at these interfaces. The ROHC-RTP-MIB module contains inforamtion
   about RTP compressors and decompressors.

   The objects in the ROHC-MIB module are arranged into the instance
   group (rohcInstanceGroup) and the channel group (rohcChannelGroup).
   The objects in the ROHC-MIB module are arranged into the compressor
   group (rohcCompressorGroup)and the decompressor group
   (rohcDecompressorGroup).

   The channel group contains objects providing per-channel statistics
   and the compressor groups and the decompressor group contain objects
   providing per-context statistics. All statistics objects are declared
   as optional in the conformance section of the repective MIB module.

5.1.  Object Groups in the ROHC-MIB module

5.1.1.  The rohcInstanceGroup

   The rohcInstanceGroup consists of three tables, the
   rohcInstanceTable, the rohcIfTable, and the rohcHeaderTable.

   The rohcInstanceTable lists scalar properties of instances of ROHC
   implementations available at the managed node. The provided


Quittek, Hartenstein, Stiemerling                               [Page 6]


Internet-Draft                  ROHC MIB                       June 2002


   properties include vendor and version number of the implementation
   and technical properties, such as the provided clock resolution.

   The rohcIfTable contains one entry per IP interface at the managed
   node. It describes which (single) ROHC instance serves at which
   interface. Also it shows the status of the instance per interface.

   The rohcHeaderTable lists per ROHC instance all supported header
   types.

5.1.2.  The rohcChannelGroup

   The rohcChannelGroup consists of two tables, the rohcChannelTable and
   the rohcProfileTable.

   The rohcChannelTable lists all channels per interface with their
   general properties described in Section 5.1.1. of RFC 3095.
   Furthermore, it includes counters for incoming and outgoing ROHC
   flows and packets per channel.

   The rohcProfileTable lists the set of profiles supported by the
   decompressor. The profiles are listed by their number as described in
   Section 5.1.2. of RFC 3095.

5.2.  Object Groups in the ROHC-RTP-MIB module

5.2.1.  The rohcCompressorGroup

   The rohcCompressorGroup consists of three tables, the
   rohcCompressorTable, the rohcPacketSizeTable, and the
   rohcPayloadSizeTable.

   The rohcCompressorTable lists and describes all compressor contexts
   per channel. The description includes context ID, state, mode, and
   profile of the compressor contex as well as the number of allowed
   packet sizes and the number of used packet sizes. A special object
   called rohcCompressorReinit allows the network manager to
   reinitialize the compressor context by setting the object. The
   implementation of this object is optional.

   The rohcCompressorTable also contains statistics objects including
   the total number of sent packets, the number of sent IR packets and
   IR-DYN packets, and the number of received ACKs, NACKs, and SNACKs.
   Further statistics object provide the mean packet size and the
   compression factor.

   The rohcPacketSizeTable lists all allowed packet sizes per compressor
   context. Used packet sizes are marked. This table reflects the
   information contained in parameters PACKET_SIZES_ALLOWED and
   PACKET_SIZES_USED, as defined in RFC 3095, Section 6.3.1.


Quittek, Hartenstein, Stiemerling                               [Page 7]


Internet-Draft                  ROHC MIB                       June 2002


   The rohcPayloadSizeTable reflects the information contained in
   parameter PAYLOAD_SIZES, as defined in RFC 3095, Section 6.3.1.

5.2.2.  The rohcDecompressorGroup

   The rohcDecompressorGroup consists of a single table listing and
   describing all decompressor contexts. The description includes
   context ID, state, mode, and profile of the decompressor contex as
   well as the depth of reverse compression.

   The rohcDecompressorTable also contains statistics objects including
   the total number of received packets, the number of received IR
   packets and IR-DYN packets, and the number of sent ACKs, NACKs, and
   SNACKs. Further statistics object provide the number of decompression
   failure and the number of context repairs.


6.  Definitions

   ROHC-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE,
       Integer32, experimental
           FROM SNMPv2-SMI

       TEXTUAL-CONVENTION, TimeInterval, TruthValue
           FROM SNMPv2-TC

       MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF

       SnmpAdminString
           FROM SNMP-FRAMEWORK-MIB

       ifIndex
           FROM IF-MIB;

   rohcMIB MODULE-IDENTITY
       LAST-UPDATED "200206280837Z"
       ORGANIZATION "IETF Robust Header Compression Working Group"
       CONTACT-INFO
           "Juergen Quittek
            NEC Europe Ltd.
            Network Laboratories
            Adenauerplatz 6
            69221 Heidelberg
            Germany
            Tel: +49 6221 90511-15
            E-mail: quittek@ccrle.nec.de"


Quittek, Hartenstein, Stiemerling                               [Page 8]


Internet-Draft                  ROHC MIB                       June 2002


       DESCRIPTION
           "This MIB module defines a set of basic objects for
            monitoring and configuring robust header compression.
            The module covers information about running instances,
            supported header types, IP interfaces at which ROHC is
            available, and on used channels. Information about
            compressor and decompressor properties has different
            structure for different (de)compressors. Therefore it
            is not provided by this MIB module, but by individual
            modules for each kind of (de)compressor."
       ::= { experimental 55555 }
   -- Number to be requested from IANA. 55555 is just a placeholder.

   RohcChannelIndex ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
               "An index identifying a channel."
       SYNTAX       Integer32 (1..2147483647)

   --
   -- The groups defined within this MIB module:
   --

   rohcObjects       OBJECT IDENTIFIER ::= { rohcMIB 1 }
   rohcConformance   OBJECT IDENTIFIER ::= { rohcMIB 2 }

   --
   -- Instances of ROHC
   --
   -- This group defines properties of running instances of ROHC
   -- at the managed node. The rohcInstanceTable lists all scalar
   -- properties. The rohcIfTable describes which (logical) IP
   -- interfaces are served by a implementation. The rohcHeaderTable
   -- lists all header types supported per instance.
   --

   rohcInstanceObjects OBJECT IDENTIFIER ::= { rohcObjects 1 }

   --
   -- Instance Table
   --

   rohcInstanceTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcInstanceEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists properties of running instances of
            robust header compression."
       ::= { rohcInstanceObjects 1 }


Quittek, Hartenstein, Stiemerling                               [Page 9]


Internet-Draft                  ROHC MIB                       June 2002


   rohcInstanceEntry OBJECT-TYPE
       SYNTAX      RohcInstanceEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular running instance
            of robust header compression."
       INDEX { rohcInstanceIndex }
       ::= { rohcInstanceTable 1 }

   RohcInstanceEntry ::= SEQUENCE {
       rohcInstanceIndex     Integer32,
       rohcInstanceVendor    OBJECT IDENTIFIER,
       rohcInstanceVersion   SnmpAdminString,
       rohcInstanceDescr     SnmpAdminString,
       rohcInstanceClockRes  TimeInterval
   }

   rohcInstanceVendor OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "An object identifer which identifies the vendor who
            provides the implementation of robust header description.
            This object identifer SHALL point to the object identifier
            directly below the enterprise object identifier {1 3 6 1 4 1}
            allocated for the vendor. The value must be the object
            identifier {0 0} if the vendor is not known."
       ::= { rohcInstanceEntry 2 }

   rohcInstanceIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier associated
            with this ROHC instance.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization."
       ::= { rohcInstanceEntry 1 }

   rohcInstanceVersion OBJECT-TYPE
       SYNTAX      SnmpAdminString (SIZE (0..32))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The version number of the implementation of robust header


Quittek, Hartenstein, Stiemerling                              [Page 10]


Internet-Draft                  ROHC MIB                       June 2002


            compression. The zero-length string shall be used if the
            implementation does not have a version number.

            It is suggested that the version number consist of one or
            more decimal numbers separated by dots, where the first
            number is called the major version number."
       ::= { rohcInstanceEntry 3 }

   rohcInstanceDescr OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A textual description of the implementation."
       ::= { rohcInstanceEntry 4 }

   rohcInstanceClockRes OBJECT-TYPE
       SYNTAX      TimeInterval
       UNITS       "milliseconds"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the system clock resolution in
            units of milliseconds. A zero (0) value means that there
            is no clock available."
       ::= { rohcInstanceEntry 5 }

   --
   -- Interface Table
   --
   -- This table lists the (logical) IP interfaces serving as ROHC
   -- (de)compression point.
   --

   rohcIfTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcIfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists running instances of robust header compression."
       ::= { rohcInstanceObjects 2 }

   rohcIfEntry OBJECT-TYPE
       SYNTAX      RohcIfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry indicating the used ROHC instance at an IP interface."
       INDEX { ifIndex }
       ::= { rohcIfTable 1 }


Quittek, Hartenstein, Stiemerling                              [Page 11]


Internet-Draft                  ROHC MIB                       June 2002


   RohcIfEntry ::= SEQUENCE {
       rohcIfInstance  Integer32,
       rohcIfStatus    INTEGER
   }

   rohcIfInstance OBJECT-TYPE
       SYNTAX     Integer32 (1..2147483647)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The index in the rohcInstanceTable of the ROHC instance
            serving this interface."
       ::= { rohcIfEntry 2 }

   rohcIfStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Status of the instance of ROHC at this interface."
       ::= { rohcIfEntry 3 }

   --
   -- Supported Headers.
   --
   -- This table lists all header types supported by this
   -- instance of robust header compression.
   --

   rohcHeaderTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcHeaderEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists supported header types."
       ::= { rohcInstanceObjects 3 }

   rohcHeaderEntry OBJECT-TYPE
       SYNTAX      RohcHeaderEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular supported header type ."
       INDEX { rohcInstanceIndex, rohcHeaderIndex }
       ::= { rohcHeaderTable 1 }

   RohcHeaderEntry ::= SEQUENCE {


Quittek, Hartenstein, Stiemerling                              [Page 12]


Internet-Draft                  ROHC MIB                       June 2002


       rohcHeaderIndex     Integer32,
       rohcHeaderString    SnmpAdminString,
       rohcHeaderDescr     SnmpAdminString
   }

   rohcHeaderIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier associated
            with this supported header type.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization."
       ::= { rohcHeaderEntry 2}

   rohcHeaderString OBJECT-TYPE
       SYNTAX      SnmpAdminString (SIZE (0..32))
   -- length of 32 sufficient?
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The name of the header type or at least a string uniquely
            identifying the header type."
       ::= { rohcHeaderEntry 3 }

   rohcHeaderDescr OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A textual description of the header type."
       ::= { rohcHeaderEntry 4 }

   --
   -- Channels
   --
   -- This group defines a table listing all channels for which
   -- robust header compression is activated, and a table listing
   -- all supported profiles per channel
   --

   rohcChannelObjects    OBJECT IDENTIFIER ::= { rohcObjects 2 }

   rohcChannelTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcChannelEntry
       MAX-ACCESS  not-accessible
       STATUS      current


Quittek, Hartenstein, Stiemerling                              [Page 13]


Internet-Draft                  ROHC MIB                       June 2002


       DESCRIPTION
           "This table lists and describes all used channels per interface."
       ::= { rohcChannelObjects 1 }

   rohcChannelEntry OBJECT-TYPE
       SYNTAX      RohcChannelEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular script. Every script that
            is stored in non-volatile memory is required to appear in
            this script table."
       INDEX { ifIndex, rohcChannelIndex }
       ::= { rohcChannelTable 1 }

   RohcChannelEntry ::= SEQUENCE {
       rohcChannelIndex                RohcChannelIndex,
       rohcChannelMaxCID               Integer32,
       rohcChannelLargeCIDs            TruthValue,
       rohcChannelFeedbackFor          RohcChannelIndex,
       rohcChannelMRRU                 Integer32,
       rohcChannelComprFlowsTotal      Counter32,
       rohcChannelComprFlowsCurrent    Integer32,
       rohcChannelComprPackets         Counter32,
       rohcChannelDecomprFlowsTotal    Counter32,
       rohcChannelDecomprFlowsCurrent  Integer32,
       rohcChannelDecomprPackets       Counter32
   }

   rohcChannelIndex OBJECT-TYPE
       SYNTAX      RohcChannelIndex
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier associated
            with this channel.

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization."
       ::= { rohcChannelEntry 2 }

   rohcChannelMaxCID OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The highest context ID number to be used by the compressor
            as defined in RFC 3095, Section 5.1.1. Note that this
            parameter is not coupled to, but in effect further


Quittek, Hartenstein, Stiemerling                              [Page 14]


Internet-Draft                  ROHC MIB                       June 2002


            constrained by, rohcChannelLargeCIDs."
       ::= { rohcChannelEntry 3 }

   rohcChannelLargeCIDs OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Boolean, as defined by RFC 3095, Section 5.1.1: if false,
            the short CID representation (0 bytes or 1 prefix byte,
            covering CID 0 to 15) is used; if true, the embedded CID
            representation (1 or 2 embedded CID bytes covering CID 0
            to 16383) is used."
       ::= { rohcChannelEntry 4 }

   rohcChannelFeedbackFor OBJECT-TYPE
       SYNTAX      RohcChannelIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The index of another channel of this interface for which
            the channel serves as feedback channel, see RFC 3095,
            Section 5.1.1."
       ::= { rohcChannelEntry 5 }

   rohcChannelMRRU OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Maximum reconstructed reception unit according to RFC 3095,
            Section 5.1.1. This is the size of the largest
            reconstructed unit in octets that the decompressor is
            expected to reassemble from segments (see RFC 3095, Section 
            5.2.5). Note that this size includes the CRC. If MRRU is
            negotiated to be 0, no segment headers are allowed on the
            channel."
       ::= { rohcChannelEntry 6 }

   rohcChannelComprFlowsTotal OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "counter of all outgoing flows having used ROHC on this channel."
       ::= { rohcChannelEntry 7 }

   rohcChannelComprFlowsCurrent OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only


Quittek, Hartenstein, Stiemerling                              [Page 15]


Internet-Draft                  ROHC MIB                       June 2002


       STATUS      current
       DESCRIPTION
           "number of current outgoing flows using ROHC on this channel."
       ::= { rohcChannelEntry 8 }

   rohcChannelComprPackets OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "counter of outgoing packets having used ROHC on this channel."
       ::= { rohcChannelEntry 9 }

   rohcChannelDecomprFlowsTotal OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "counter of all incoming flows having used ROHC on this channel."
       ::= { rohcChannelEntry 10 }

   rohcChannelDecomprFlowsCurrent OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "number of current incoming flows using ROHC on this channel."
       ::= { rohcChannelEntry 11 }

   rohcChannelDecomprPackets OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "counter of incoming packets having used ROHC on this channel."
       ::= { rohcChannelEntry 12 }

   --
   -- Profile Table
   --

   rohcProfileTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcProfileEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists a set of nonnegative integers as defined
            in RFC 3095, Section 5.1.1. Each integer indicates a
            profile supported by the decompressor. The compressor
            MUST NOT compress using a profile not in this list."


Quittek, Hartenstein, Stiemerling                              [Page 16]


Internet-Draft                  ROHC MIB                       June 2002


       ::= { rohcChannelObjects 2 }

   rohcProfileEntry OBJECT-TYPE
       SYNTAX      RohcProfileEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular profile supported by
            the decompressor. "
       INDEX { ifIndex, rohcChannelIndex, rohcProfile }
       ::= { rohcProfileTable 1 }

   RohcProfileEntry ::= SEQUENCE {
       rohcProfile       Integer32
   }

   rohcProfile OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Identifier of a profile supported by the decompressor,
            as defined in RFC 3095, Section 5.1.1."
       ::= { rohcProfileEntry 3 }


   --
   -- conformance information
   --

   rohcCompliances OBJECT IDENTIFIER ::= { rohcConformance 1 }
   rohcGroups      OBJECT IDENTIFIER ::= { rohcConformance 2 }

   --
   -- compliance statements
   --


   rohcCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION
           "The compliance statement for SNMP entities that implement
            the ROHC MIB."
       MODULE      -- this module
       MANDATORY-GROUPS {
               rohcInstanceGroup, rohcChannelGroup
       }
       GROUP   rohcStatisticsGroup
       DESCRIPTION
          "A compliant implementation does not have to implement


Quittek, Hartenstein, Stiemerling                              [Page 17]


Internet-Draft                  ROHC MIB                       June 2002


           the rohcStatisticsGroup."
       ::= { rohcCompliances 1 }

   rohcInstanceGroup OBJECT-GROUP
       OBJECTS {
           rohcInstanceVendor,
           rohcInstanceVersion,
           rohcInstanceDescr,
           rohcInstanceClockRes,
           rohcIfInstance,
           rohcIfStatus,
           rohcHeaderString,
           rohcHeaderDescr
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            running instances of ROHC."
       ::= { rohcGroups 1 }


   rohcChannelGroup OBJECT-GROUP
       OBJECTS {
           rohcChannelMaxCID,
           rohcChannelLargeCIDs,
           rohcChannelFeedbackFor,
           rohcChannelMRRU,
           rohcProfile
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            ROHC channels."
       ::= { rohcGroups 2 }

   rohcStatisticsGroup OBJECT-GROUP
       OBJECTS {
           rohcChannelComprFlowsTotal,
           rohcChannelComprFlowsCurrent,
           rohcChannelComprPackets,
           rohcChannelDecomprFlowsTotal,
           rohcChannelDecomprFlowsCurrent,
           rohcChannelDecomprPackets
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing ROHC statistics."
       ::= { rohcGroups 3 }

   END


Quittek, Hartenstein, Stiemerling                              [Page 18]


Internet-Draft                  ROHC MIB                       June 2002


   ROHC-RTP-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE,
       Integer32
           FROM SNMPv2-SMI

       TruthValue
           FROM SNMPv2-TC

       MODULE-COMPLIANCE, OBJECT-GROUP
           FROM SNMPv2-CONF

       ifIndex
           FROM IF-MIB

       rohcMIB, rohcChannelIndex
           FROM ROHC-MIB;

   rohcRtpMIB MODULE-IDENTITY
       LAST-UPDATED "200206280838Z"
       ORGANIZATION "IETF Robust Header Compression Working Group"
       CONTACT-INFO
           "Juergen Quittek
            NEC Europe Ltd.
            Network Laboratories
            Adenauerplatz 6
            69221 Heidelberg
            Germany
            Tel: +49 6221 90511-15
            E-mail: quittek@ccrle.nec.de"
       DESCRIPTION
           "This MIB module defines a set of objects that for
            monitoring and configuring robust header compression."
       ::= { rohcMIB 3 }

   --
   -- The groups defined within this MIB module:
   --

   rohcRtpObjects       OBJECT IDENTIFIER ::= { rohcRtpMIB 1 }
   rohcRtpConformance   OBJECT IDENTIFIER ::= { rohcRtpMIB 2 }

   --
   -- Compressor contexts
   --
   -- This group defines three tables:
   -- 1. The rohcRtpCompressorTable lists all compressor contexts per channel
   --    and interface.
   -- 2. The rohcRtpPacketSizeTable lists all allowed packet sizes per


Quittek, Hartenstein, Stiemerling                              [Page 19]


Internet-Draft                  ROHC MIB                       June 2002


   --    compressor context, channel, and interface. Used packet sizes are
   --    marked.
   -- 3. The rohcRtpPayloadSizeTable lists all payload sizes that can be
   --    expected.
   --

   rohcRtpCompressorObjects    OBJECT IDENTIFIER ::= { rohcRtpObjects 1 }

   rohcRtpCompressorTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcRtpCompressorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists and describes all compressor contexts
            per channel and interface."
       ::= { rohcRtpCompressorObjects 1 }

   rohcRtpCompressorEntry OBJECT-TYPE
       SYNTAX      RohcRtpCompressorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular compressor context."
       INDEX { ifIndex, rohcChannelIndex, rohcRtpCompressorCID }
       ::= { rohcRtpCompressorTable 1 }

   RohcRtpCompressorEntry ::= SEQUENCE {
       rohcRtpCompressorCID              Integer32,
       rohcRtpCompressorCIDState         INTEGER,
       rohcRtpCompressorState            INTEGER,
       rohcRtpCompressorMode             INTEGER,
       rohcRtpCompressorProfile          Integer32,
       rohcRtpCompressorReinit           TruthValue,
       rohcRtpCompressorSizesAllowed     Integer32,
       rohcRtpCompressorSizesUsed        Integer32,
       rohcRtpCompressorTotalRatio       Integer32,
       rohcRtpCompressorTotalMeanSize    Integer32,
       rohcRtpCompressorCurrentRatio     Integer32,
       rohcRtpCompressorCurrentMeanSize  Integer32,
       rohcRtpCompressorOutPackets       Counter32,
       rohcRtpCompressorOutIRs           Counter32,
       rohcRtpCompressorOutIRDYNs        Counter32,
       rohcRtpCompressorInACKs           Counter32,
       rohcRtpCompressorInNACKs          Counter32,
       rohcRtpCompressorInSNACKs         Counter32
   }

   rohcRtpCompressorCID OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  not-accessible


Quittek, Hartenstein, Stiemerling                              [Page 20]


Internet-Draft                  ROHC MIB                       June 2002


       STATUS      current
       DESCRIPTION
           "The context identifier (CID) of this compressor
            context as defined in RFC 3095, Section 5.1.3."
       ::= { rohcRtpCompressorEntry 3 }

   rohcRtpCompressorCIDState OBJECT-TYPE
       SYNTAX      INTEGER {
                       unused(1),
                       active(2),
                       expired(3),
                       terminated(4)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "State of the CID. When a CID is assigned to a compressor,
            its state changes from `unused' to `active'. The active
            compressor may stop operation due to some explicit
            signalling or after observing no packet for some specified
            time. In the first case then the CID state changes to
            `terminated', in the latter case it changes to `expired'.
            If the CID is re-used again for another compressor, the
            state changes back to `active'."
       ::= { rohcRtpCompressorEntry 4 }

   rohcRtpCompressorState OBJECT-TYPE
       SYNTAX      INTEGER {
                       ir(1),
                       fo(2),
                       so(3)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "State of the compressor context as defined in RFC 3095,
            Section 4.3.1."
       ::= { rohcRtpCompressorEntry 5 }

   rohcRtpCompressorMode OBJECT-TYPE
       SYNTAX      INTEGER {
                       u(1),
                       o(2),
                       r(3)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Mode of the compressor context as defined in RFC 3095,
            Section 4.4."


Quittek, Hartenstein, Stiemerling                              [Page 21]


Internet-Draft                  ROHC MIB                       June 2002


       ::= { rohcRtpCompressorEntry 6 }

   rohcRtpCompressorProfile OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Identifier of the profile for this compressor context.
            The profile is identified by its index in the
            rohcProfileTable for this channel."
       ::= { rohcRtpCompressorEntry 7 }

   rohcRtpCompressorReinit OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "By setting this object to true(1), a context
            reinitialization is triggered.

            When retrieved, the value of this object will
            always be false(2)."
       ::= { rohcRtpCompressorEntry 8 }

   rohcRtpCompressorSizesAllowed  OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Number of different packet sizes the compressor
            may use, as defined in RFC 3095, Section 6.3.1."
       ::= { rohcRtpCompressorEntry 9 }

   rohcRtpCompressorSizesUsed  OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Number of different packet sizes the compressor
            uses, as defined in RFC 3095, Section 6.3.1."
       ::= { rohcRtpCompressorEntry 10 }

   -- The remaining elements of the rohcCompressorEntry defined
   -- below belong to the statistics group.

   rohcRtpCompressorTotalRatio OBJECT-TYPE
       SYNTAX      Integer32 (0..1000)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION


Quittek, Hartenstein, Stiemerling                              [Page 22]


Internet-Draft                  ROHC MIB                       June 2002


           "This object indicates the compression ratio so far of the
            entire flow mapped to this compressor context. The value
            is defined as 1000 * bytes(compressed) / bytes(original)
            rounded to the next integer value."
       ::= { rohcRtpCompressorEntry 11 }

   rohcRtpCompressorTotalMeanSize OBJECT-TYPE
       SYNTAX      Integer32 (0..1000)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the mean compressed packet size of the
            entire flow mapped to this compressor context. The value
            is given in bytes rounded to the next integer value."
       ::= { rohcRtpCompressorEntry 12 }

   rohcRtpCompressorCurrentRatio OBJECT-TYPE
       SYNTAX      Integer32 (0..1000)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the compression ratio of the
            flow mapped to this compressor context concerning the
            last 16 packets or concerning all packets if they are
            less than 16, so far. The value is defined as
            1000 * bytes(compressed) / bytes(original) rounded to
            the next integer value."
       ::= { rohcRtpCompressorEntry 13 }

   rohcRtpCompressorCurrentMeanSize OBJECT-TYPE
       SYNTAX      Integer32 (0..1000)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates the mean compressed packet size of the
            flow mapped to this compressor context concerning the
            last 16 packets or concerning all packets if they are
            less than 16, so far. The value is given in bytes rounded
            to the next integer value."
       ::= { rohcRtpCompressorEntry 14 }

   rohcRtpCompressorOutPackets OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all packets sent so far in this
            compressor context."
       ::= { rohcRtpCompressorEntry 15 }



Quittek, Hartenstein, Stiemerling                              [Page 23]


Internet-Draft                  ROHC MIB                       June 2002


   rohcRtpCompressorOutIRs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all IR packets sent so far in this
            compressor context."
       ::= { rohcRtpCompressorEntry 16 }

   rohcRtpCompressorOutIRDYNs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all IR-DYN packets sent so far in this
            compressor context."
       ::= { rohcRtpCompressorEntry 17 }

   rohcRtpCompressorInACKs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all received positive feedbacks (ACK)
            from the decompressor in this compressor context,
            as defined by RFC 3095, Section 5.2.1."
       ::= { rohcRtpCompressorEntry 18 }

   rohcRtpCompressorInNACKs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all received dynamic negative feedbacks
            (NACK) from the decompressor in this compressor
            context, as defined by RFC 3095, Section 5.2.1."
       ::= { rohcRtpCompressorEntry 19 }

   rohcRtpCompressorInSNACKs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all received static negative feedbacks
            (STATIC-NACK) from the decompressor in this compressor
            context, as defined by RFC 3095, Section 5.2.1."
       ::= { rohcRtpCompressorEntry 20 }

   --
   -- Packet Sizes Table


Quittek, Hartenstein, Stiemerling                              [Page 24]


Internet-Draft                  ROHC MIB                       June 2002


   --

   rohcRtpPacketSizeTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcRtpPacketSizeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists all allowed packet sizes per comprssor
            context, channel, and interface. Used packet sizes are
            marked."
       ::= { rohcRtpCompressorObjects 2 }

   rohcRtpPacketSizeEntry OBJECT-TYPE
       SYNTAX      RohcRtpPacketSizeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry of a particular allowed packet size."
       INDEX { ifIndex, rohcChannelIndex, rohcRtpCompressorCID, rohcRtpPacketSize }
       ::= { rohcRtpPacketSizeTable 1 }

   RohcRtpPacketSizeEntry ::= SEQUENCE {
       rohcRtpPacketSize       Integer32,
       rohcRtpPacketSizeUsed   TruthValue
   }

   rohcRtpPacketSize OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A packet size used as index."
       ::= { rohcRtpPacketSizeEntry 4 }

   rohcRtpPacketSizeUsed OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "When retrieved, this object will have the value
            true(1) if the packet size is used by the compressor
            context. Otherwise its value will be false(2), see
            RFC 3095, Section 6.3.1."
       ::= { rohcRtpPacketSizeEntry 5 }

   --
   -- Payload Sizes Table
   --

   rohcRtpPayloadSizeTable OBJECT-TYPE


Quittek, Hartenstein, Stiemerling                              [Page 25]


Internet-Draft                  ROHC MIB                       June 2002


       SYNTAX      SEQUENCE OF RohcRtpPayloadSizeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists all payload sizes that can be expected
            as described in RFC 3095, Section 6.3.1."
       ::= { rohcRtpCompressorObjects 3 }

   rohcRtpPayloadSizeEntry OBJECT-TYPE
       SYNTAX      RohcRtpPayloadSizeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry of a particular payload size."
       INDEX { ifIndex, rohcChannelIndex, rohcRtpCompressorCID, rohcRtpPayloadSize }
       ::= { rohcRtpPayloadSizeTable 1 }

   RohcRtpPayloadSizeEntry ::= SEQUENCE {
       rohcRtpPayloadSize      Integer32
   }

   rohcRtpPayloadSize OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A payload size used as index."
       ::= { rohcRtpPayloadSizeEntry 4 }

   --
   -- Decompressor contexts
   --
   -- This group defines a table which lists all decompressor contexts
   -- per channel and interface.
   --

   rohcRtpDecompressorTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcRtpDecompressorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists and describes all decompressor contexts
            per channel and interface."
       ::= { rohcRtpObjects 2 }

   rohcRtpDecompressorEntry OBJECT-TYPE
       SYNTAX      RohcRtpDecompressorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION


Quittek, Hartenstein, Stiemerling                              [Page 26]


Internet-Draft                  ROHC MIB                       June 2002


           "An entry describing a particular decompressor context."
       INDEX { ifIndex, rohcChannelIndex, rohcRtpDecompressorCID }
       ::= { rohcRtpDecompressorTable 1 }

   RohcRtpDecompressorEntry ::= SEQUENCE {
       rohcRtpDecompressorCID        Integer32,
       rohcRtpDecompressorCIDState   INTEGER,
       rohcRtpDecompressorState      INTEGER,
       rohcRtpDecompressorMode       INTEGER,
       rohcRtpDecompressorProfile    Integer32,
       rohcRtpDecompressorDepth      Integer32,
       rohcRtpDecompressorInPackets  Counter32,
       rohcRtpDecompressorInIRs      Counter32,
       rohcRtpDecompressorInIRDYNs   Counter32,
       rohcRtpDecompressorFailures   Counter32,
       rohcRtpDecompressorRepairs    Counter32,
       rohcRtpDecompressorOutACKs    Counter32,
       rohcRtpDecompressorOutNACKs   Counter32,
       rohcRtpDecompressorOutSNACKs  Counter32
   }

   rohcRtpDecompressorCID OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The context identifier (CID) of this decompressor
            context as defined in RFC 3095, Section 5.1.3."
       ::= { rohcRtpDecompressorEntry 3 }

   rohcRtpDecompressorCIDState OBJECT-TYPE
       SYNTAX      INTEGER {
                       unused(1),
                       active(2),
                       expired(3),
                       terminated(4)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "State of the CID. When a CID is assigned to a decompressor,
            its state changes from `unused' to `active'. The active
            decompressor may stop operation due to some explicit
            signalling or after observing no packet for some specified
            time. In the first case then the CID state changes to
            `terminated', in the latter case it changes to `expired'.
            If the CID is re-used again for another decompressor, the
            state changes back to `active'."
       ::= { rohcRtpDecompressorEntry 4 }



Quittek, Hartenstein, Stiemerling                              [Page 27]


Internet-Draft                  ROHC MIB                       June 2002


   rohcRtpDecompressorState OBJECT-TYPE
       SYNTAX      INTEGER {
                       ir(1),
                       fo(2),
                       so(3)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "State of the decompressor context as defined in RFC 3095,
            Section 4.3.1."
       ::= { rohcRtpDecompressorEntry 5 }

   rohcRtpDecompressorMode OBJECT-TYPE
       SYNTAX      INTEGER {
                       u(1),
                       o(2),
                       r(3)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Mode of the decompressor context as defined in RFC 3095,
            Section 4.4."
       ::= { rohcRtpDecompressorEntry 6 }

   rohcRtpDecompressorProfile OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "Identifier of the profile for this decompressor context.
            The profile is identified by its index in the
            rohcProfileTable for this channel."
       ::= { rohcRtpDecompressorEntry 7 }

   rohcRtpDecompressorDepth OBJECT-TYPE
       SYNTAX      Integer32 (0..2147483647)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object indicates whether reverse decompression
            as described in RFC 3095, Section 6.1 should be used or
            not, and if used, to what extent. For more details see
            RFC 3095, Section 6.3.2."
       ::= { rohcRtpDecompressorEntry 8 }

   -- The remaining elements of the rohcRtpDecompressorEntry defined
   -- below belong to the statistics group.



Quittek, Hartenstein, Stiemerling                              [Page 28]


Internet-Draft                  ROHC MIB                       June 2002


   rohcRtpDecompressorInPackets OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all packets sent so far in this
            decompressor context."
       ::= { rohcRtpDecompressorEntry 9 }

   rohcRtpDecompressorInIRs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all received IR packets so far in this
            decompressor context."
       ::= { rohcRtpDecompressorEntry 10 }

   rohcRtpDecompressorInIRDYNs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all received IR-DYN packets so far in this
            decompressor context."
       ::= { rohcRtpDecompressorEntry 11 }

   rohcRtpDecompressorFailures OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all decompressor failures so far in this
            decompressor context."
       ::= { rohcRtpDecompressorEntry 12 }

   rohcRtpDecompressorRepairs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all context repairs so far in this
            decompressor context."
       ::= { rohcRtpDecompressorEntry 13 }

   rohcRtpDecompressorOutACKs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION


Quittek, Hartenstein, Stiemerling                              [Page 29]


Internet-Draft                  ROHC MIB                       June 2002


           "The number of all sent positive feedbacks (ACK)
            from this decompressor context,
            as defined by RFC 3095, Section 5.2.1."
       ::= { rohcRtpDecompressorEntry 14 }

   rohcRtpDecompressorOutNACKs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all sent dynamic negative feedbacks
            (NACK) from this decompressor
            context, as defined by RFC 3095, Section 5.2.1."
       ::= { rohcRtpDecompressorEntry 15 }

   rohcRtpDecompressorOutSNACKs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all rsent static negative feedbacks
            (STATIC-NACK) from the decompressor
            context, as defined by RFC 3095, Section 5.2.1."
       ::= { rohcRtpDecompressorEntry 16 }


   --
   -- conformance information
   --

   rohcRtpCompliances OBJECT IDENTIFIER ::= { rohcRtpConformance 1 }
   rohcRtpGroups      OBJECT IDENTIFIER ::= { rohcRtpConformance 2 }

   --
   -- compliance statements
   --


   rohcRtpCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION
           "The compliance statement for SNMP entities that implement
            the ROHC MIB."
       MODULE      -- this module
       MANDATORY-GROUPS {
               rohcRtpCompressorGroup, rohcRtpDecompressorGroup
       }
       GROUP   rohcRtpStatisticsGroup
       DESCRIPTION
          "A compliant implementation does not have to implement


Quittek, Hartenstein, Stiemerling                              [Page 30]


Internet-Draft                  ROHC MIB                       June 2002


           the rohcRtpStatisticsGroup."
       OBJECT  rohcRtpCompressorReinit
       MIN-ACCESS  not-accessible
       DESCRIPTION
           "A compliant implementation does not have to support
            re-initialization of contexts initiated via this
            object."
       ::= { rohcRtpCompliances 1 }

   rohcRtpCompressorGroup OBJECT-GROUP
       OBJECTS {
           rohcRtpCompressorCIDState,
           rohcRtpCompressorState,
           rohcRtpCompressorMode,
           rohcRtpCompressorProfile,
           rohcRtpCompressorReinit,
           rohcRtpCompressorSizesAllowed,
           rohcRtpCompressorSizesUsed,
           rohcRtpPacketSizeUsed,
           rohcRtpPayloadSize
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            ROHC RTP compressors."
       ::= { rohcRtpGroups 1 }

   rohcRtpDecompressorGroup OBJECT-GROUP
       OBJECTS {
           rohcRtpDecompressorCIDState,
           rohcRtpDecompressorState,
           rohcRtpDecompressorMode,
           rohcRtpDecompressorProfile,
           rohcRtpDecompressorDepth
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            ROHC RTP decompressors."
       ::= { rohcRtpGroups 2 }

   rohcRtpStatisticsGroup OBJECT-GROUP
       OBJECTS {
           rohcRtpCompressorTotalRatio,
           rohcRtpCompressorTotalMeanSize,
           rohcRtpCompressorCurrentRatio,
           rohcRtpCompressorCurrentMeanSize,
           rohcRtpCompressorOutPackets,
           rohcRtpCompressorOutIRs,
           rohcRtpCompressorOutIRDYNs,


Quittek, Hartenstein, Stiemerling                              [Page 31]


Internet-Draft                  ROHC MIB                       June 2002


           rohcRtpCompressorInACKs,
           rohcRtpCompressorInNACKs,
           rohcRtpCompressorInSNACKs,
           rohcRtpDecompressorInPackets,
           rohcRtpDecompressorInIRs,
           rohcRtpDecompressorInIRDYNs,
           rohcRtpDecompressorFailures,
           rohcRtpDecompressorRepairs,
           rohcRtpDecompressorOutACKs,
           rohcRtpDecompressorOutNACKs,
           rohcRtpDecompressorOutSNACKs
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing ROHC compressor and
            decompressor statistics."
       ::= { rohcRtpGroups 3 }

   END

7.  Security Considerations

   The managed objects defined by the ROHC MIB are read-only with just
   one exception, the rohcCompressorReinit object. Therefore,
   unauthorized users getting access to the MIB via SNMP cannot cause
   harm to existing ROHC connections nor can they manipulate running
   instances of ROHC in a malicious way. The only effect they could
   achieve is reinitializing compressor contexts unnecessarily and
   thereby downgrading the performance.

   Another security issue is mis-use of he MIB for getting information
   about existing communication sessions. However, the only information
   that might be disclosed is the use of channels. Users and their
   addresses are not visible in the MIB. This information can only be
   mis-used in conjunction with the mis-use of further information.

   Although, the security risks arising from the ROHC MIB are not
   considered to be high, it is recommended for implementors and
   operators to apply the means for security offered by SNMPv3,
   particularly encryption of communication and the User-based Security
   Model described in [RFC2574].


8.  References

[RFC3095]   Bormann, C., et al. "An RObust Header Compression (ROHC):
            Framework and four profiles: RTP, UDP, ESP, and uncompressed
            ", RFC 3095, July 2001.




Quittek, Hartenstein, Stiemerling                              [Page 32]


Internet-Draft                  ROHC MIB                       June 2002


[RFC2571]   Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture
            for Describing SNMP Management Frameworks", RFC 2571, April
            1999.

[RFC1155]   Rose, M., and K. McCloghrie, "Structure and Identification
            of Management Information for TCP/IP-based Internets", STD
            16, RFC 1155, May 1990.

[RFC1212]   Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD
            16, RFC 1212, March 1991.

[RFC1215]   M. Rose, "A Convention for Defining Traps for use with the
            SNMP", RFC 1215, March 1991.

[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.

[RFC1157]   Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
            Network Management Protocol", STD 15, RFC 1157, May 1990.

[RFC1901]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
            "Introduction to Community-based SNMPv2", RFC 1901, January
            1996.

[RFC1906]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
            "Transport Mappings for Version 2 of the Simple Network
            Management Protocol (SNMPv2)", RFC 1906, January 1996.

[RFC2572]   Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message
            Processing and Dispatching for the Simple Network Management
            Protocol (SNMP)", RFC 2572, April 1999.

[RFC2574]   Blumenthal, U., and B. Wijnen, "User-based Security Model
            (USM) for version 3 of the Simple Network Management
            Protocol (SNMPv3)", RFC 2574, April 1999.

[RFC1905]   Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
            "Protocol Operations for Version 2 of the Simple Network
            Management Protocol (SNMPv2)", RFC 1905, January 1996.



Quittek, Hartenstein, Stiemerling                              [Page 33]


Internet-Draft                  ROHC MIB                       June 2002


[RFC2573]   Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications",
            RFC 2573, April 1999.

[RFC2575]   Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
            Access Control Model (VACM) for the Simple Network
            Management Protocol (SNMP)", RFC 2575, April 1999.

[RFC2570]   Case, J., Mundy, R., Partain, D., and B. Stewart,
            "Introduction to Version 3 of the Internet-standard Network
            Management Framework", RFC 2570, April 1999.

[RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
            Requirement Levels", RFC 2119, March 1997.


9.  Authors' Addresses

     Juergen Quittek
     NEC Europe Ltd.
     Network Laboratories
     Adenauerplatz 6
     69115 Heidelberg
     Germany

     Phone: +49 6221 90511-15
     EMail: quittek@ccrle.nec.de


     Hannes Hartenstein
     NEC Europe Ltd.
     Network Laboratories
     Adenauerplatz 6
     69115 Heidelberg
     Germany

     Phone: +49 6221 13708-14
     Email: hannes.hartenstein@ccrle.nec.de


     Martin Stiemerling
     NEC Europe Ltd.
     Network Laboratories
     Adenauerplatz 6
     69115 Heidelberg
     Germany

     Phone: +49 6221 90511-13
     Email: stiemerling@ccrle.nec.de




Quittek, Hartenstein, Stiemerling                              [Page 34]


Internet-Draft                  ROHC MIB                       June 2002


10.  Full Copyright Statement

   Copyright (C) The Internet Society (2002). All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the  purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS 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.

























Quittek, Hartenstein, Stiemerling                              [Page 35]