Internet Draft                                                J. Quittek
Document: draft-ietf-rohc-mib-rtp-01.txt                  H. Hartenstein
Expires: August 2002                                      M. Stiemerling
                                                         NEC Europe Ltd.
                                                              March 2002


      Definitions of Managed Objects for Robust Header Compression

                    <draft-ietf-rohc-mib-rtp-01.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                      March 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 Module ..................................    5
   5.1 The rohcInstanceGroup ......................................    6
   5.2 The rohcChannelGroup .......................................    6
   5.3 The rohcCompressorGroup ....................................    6
   5.4 The rohcDecompressorGroup ..................................    7
   5.5 The rohcStatisticsGroup ....................................    7
   6 Definitions ..................................................    7
   7 Security Considerations ......................................   30
   8 References ...................................................   30
   9 Authors' Addresses ...........................................   32
   10 Full Copyright Statement ....................................   33


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
        in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and


Quittek, Hartenstein, Stiemerling                               [Page 2]


Internet-Draft                  ROHC MIB                      March 2002


        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 in developing the ROHC MIB module.

   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.

   ROHC introduces header compressors/decompressors at the end-points


Quittek, Hartenstein, Stiemerling                               [Page 3]


Internet-Draft                  ROHC MIB                      March 2002


   (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                      March 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


Quittek, Hartenstein, Stiemerling                               [Page 5]


Internet-Draft                  ROHC MIB                      March 2002


   discussions.


4.5.  Channel Used by Single Instance

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


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 Module

   This section presents the structure of the MIB module. The objects
   are arranged into the following groups:

    o   instance group (rohcInstanceGroup)

    o   channel group (rohcChannelGroup)

    o   compressor group (rohcCompressorGroup)

    o   decompressor group (rohcDecompressorGroup)

    o   statistics group (rohcStatisticsGroup)


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


Quittek, Hartenstein, Stiemerling                               [Page 6]


Internet-Draft                  ROHC MIB                      March 2002


5.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 flows per
   channel, which used ROHC.

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

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

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

5.5.  The rohcStatisticsGroup

   The rohcStatisticsGroup consists of three tables, the
   rohcOutPacketCounterTable, the rohcInPacketCounterTable, and the
   rohcErrorTable. The first two tables contain counters per context and
   per header type for incoming and outgoing packets, repectively.  The
   rohcErrorTable contains counters for different error types.



Quittek, Hartenstein, Stiemerling                               [Page 7]


Internet-Draft                  ROHC MIB                      March 2002


   Furthermore, some elements of the rohcCompressorTable and the
   rohcDecompressorTable belong to the rohcStatisticsGroup. They contain
   compression ratio indicatiors for each compressor context, packet
   counters per context, and reinitialization counters.


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 "200111130837Z"
       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."
       ::= { 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)


Quittek, Hartenstein, Stiemerling                               [Page 8]


Internet-Draft                  ROHC MIB                      March 2002


   --
   -- 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 }

   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
   }



Quittek, Hartenstein, Stiemerling                               [Page 9]


Internet-Draft                  ROHC MIB                      March 2002


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


Quittek, Hartenstein, Stiemerling                              [Page 10]


Internet-Draft                  ROHC MIB                      March 2002


       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 }

   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),


Quittek, Hartenstein, Stiemerling                              [Page 11]


Internet-Draft                  ROHC MIB                      March 2002


                       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 {
       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}


Quittek, Hartenstein, Stiemerling                              [Page 12]


Internet-Draft                  ROHC MIB                      March 2002


   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
       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,


Quittek, Hartenstein, Stiemerling                              [Page 13]


Internet-Draft                  ROHC MIB                      March 2002


       rohcChannelLargeCIDs          TruthValue,
       rohcChannelFeedbackFor        RohcChannelIndex,
       rohcChannelMRRU               Integer32,
       rohcChannelCompressedFlows    Counter32,
       rohcChannelDecompressedFlows  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
            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,


Quittek, Hartenstein, Stiemerling                              [Page 14]


Internet-Draft                  ROHC MIB                      March 2002


            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 }

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

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

   --
   -- 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."
       ::= { rohcChannelObjects 2 }

   rohcProfileEntry OBJECT-TYPE
       SYNTAX      RohcProfileEntry


Quittek, Hartenstein, Stiemerling                              [Page 15]


Internet-Draft                  ROHC MIB                      March 2002


       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 }

   --
   -- Compressor contexts
   --
   -- This group defines three tables:
   -- 1. The rohcCompressorTable lists all compressor contexts per channel
   --    and interface.
   -- 2. The rohcPacketSizeTable lists all allowed packet sizes per
   --    compressor context, channel, and interface. Used packet sizes are
   --    marked.
   -- 3. The rohcPayloadSizeTable lists all payload sizes that can be
   --    expected.
   --

   rohcCompressorObjects    OBJECT IDENTIFIER ::= { rohcObjects 3 }

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

   rohcCompressorEntry OBJECT-TYPE
       SYNTAX      RohcCompressorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION


Quittek, Hartenstein, Stiemerling                              [Page 16]


Internet-Draft                  ROHC MIB                      March 2002


           "An entry describing a particular compressor context."
       INDEX { ifIndex, rohcChannelIndex, rohcCompressorCID }
       ::= { rohcCompressorTable 1 }

   RohcCompressorEntry ::= SEQUENCE {
       rohcCompressorCID           Integer32,
       rohcCompressorCIDState      INTEGER,
       rohcCompressorState         INTEGER,
       rohcCompressorMode          INTEGER,
       rohcCompressorProfile       Integer32,
       rohcCompressorReinit        TruthValue,
       rohcCompressorSizesAllowed  Integer32,
       rohcCompressorSizesUsed     Integer32,
       rohcCompressorTotalRatio    Integer32,
       rohcCompressorCurrentRatio  Integer32,
       rohcCompressorOutPackets    Counter32,
       rohcCompressorInACKs        Counter32,
       rohcCompressorInNACKs       Counter32,
       rohcCompressorInSNACKs      Counter32
   }

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

   rohcCompressorCIDState 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'."
       ::= { rohcCompressorEntry 4 }



Quittek, Hartenstein, Stiemerling                              [Page 17]


Internet-Draft                  ROHC MIB                      March 2002


   rohcCompressorState 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."
       ::= { rohcCompressorEntry 5 }

   rohcCompressorMode 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."
       ::= { rohcCompressorEntry 6 }

   rohcCompressorProfile 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."
       ::= { rohcCompressorEntry 7 }

   rohcCompressorReinit 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)."
       ::= { rohcCompressorEntry 8 }

   rohcCompressorSizesAllowed  OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)


Quittek, Hartenstein, Stiemerling                              [Page 18]


Internet-Draft                  ROHC MIB                      March 2002


       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."
       ::= { rohcCompressorEntry 9 }

   rohcCompressorSizesUsed  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."
       ::= { rohcCompressorEntry 10 }

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

   rohcCompressorTotalRatio OBJECT-TYPE
       SYNTAX      Integer32 (0..1000)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "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."
       ::= { rohcCompressorEntry 11 }

   rohcCompressorCurrentRatio 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."
       ::= { rohcCompressorEntry 12 }

   rohcCompressorOutPackets OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all packets sent so far in this
            compressor context."


Quittek, Hartenstein, Stiemerling                              [Page 19]


Internet-Draft                  ROHC MIB                      March 2002


       ::= { rohcCompressorEntry 13 }

   rohcCompressorInACKs 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."
       ::= { rohcCompressorEntry 14 }

   rohcCompressorInNACKs 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."
       ::= { rohcCompressorEntry 15 }

   rohcCompressorInSNACKs 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."
       ::= { rohcCompressorEntry 16 }

   --
   -- Packet Sizes Table
   --

   rohcPacketSizeTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcPacketSizeEntry
       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."
       ::= { rohcCompressorObjects 2 }

   rohcPacketSizeEntry OBJECT-TYPE
       SYNTAX      RohcPacketSizeEntry
       MAX-ACCESS  not-accessible
       STATUS      current


Quittek, Hartenstein, Stiemerling                              [Page 20]


Internet-Draft                  ROHC MIB                      March 2002


       DESCRIPTION
           "An entry of a particular allowed packet size."
       INDEX { ifIndex, rohcChannelIndex, rohcCompressorCID, rohcPacketSize }
       ::= { rohcPacketSizeTable 1 }

   RohcPacketSizeEntry ::= SEQUENCE {
       rohcPacketSize       Integer32,
       rohcPacketSizeUsed   TruthValue
   }

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

   rohcPacketSizeUsed 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."
       ::= { rohcPacketSizeEntry 5 }

   --
   -- Payload Sizes Table
   --

   rohcPayloadSizeTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcPayloadSizeEntry
       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."
       ::= { rohcCompressorObjects 3 }

   rohcPayloadSizeEntry OBJECT-TYPE
       SYNTAX      RohcPayloadSizeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry of a particular payload size."
       INDEX { ifIndex, rohcChannelIndex, rohcCompressorCID, rohcPayloadSize }
       ::= { rohcPayloadSizeTable 1 }


Quittek, Hartenstein, Stiemerling                              [Page 21]


Internet-Draft                  ROHC MIB                      March 2002


   RohcPayloadSizeEntry ::= SEQUENCE {
       rohcPayloadSize      Integer32
   }

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

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

   rohcDecompressorTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcDecompressorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists and describes all decompressor contexts
            per channel and interface."
       ::= { rohcObjects 4 }

   rohcDecompressorEntry OBJECT-TYPE
       SYNTAX      RohcDecompressorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular decompressor context."
       INDEX { ifIndex, rohcChannelIndex, rohcDecompressorCID }
       ::= { rohcDecompressorTable 1 }

   RohcDecompressorEntry ::= SEQUENCE {
       rohcDecompressorCID        Integer32,
       rohcDecompressorCIDState   INTEGER,
       rohcDecompressorState      INTEGER,
       rohcDecompressorMode       INTEGER,
       rohcDecompressorProfile    Integer32,
       rohcDecompressorDepth      Integer32,
       rohcDecompressorInPackets  Counter32,
       rohcDecompressorOutACKs    Counter32,
       rohcDecompressorOutNACKs   Counter32,
       rohcDecompressorOutSNACKs  Counter32
   }



Quittek, Hartenstein, Stiemerling                              [Page 22]


Internet-Draft                  ROHC MIB                      March 2002


   rohcDecompressorCID 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."
       ::= { rohcDecompressorEntry 3 }

   rohcDecompressorCIDState 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'."
       ::= { rohcDecompressorEntry 4 }


   rohcDecompressorState 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."
       ::= { rohcDecompressorEntry 5 }

   rohcDecompressorMode OBJECT-TYPE
       SYNTAX      INTEGER {
                       u(1),
                       o(2),
                       r(3)
                   }
       MAX-ACCESS  read-only


Quittek, Hartenstein, Stiemerling                              [Page 23]


Internet-Draft                  ROHC MIB                      March 2002


       STATUS      current
       DESCRIPTION
           "Mode of the decompressor context as defined in RFC 3095,
            Section 4.4."
       ::= { rohcDecompressorEntry 6 }

   rohcDecompressorProfile 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."
       ::= { rohcDecompressorEntry 7 }

   rohcDecompressorDepth 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."
       ::= { rohcDecompressorEntry 8 }

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

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

   rohcDecompressorOutACKs OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of all sent positive feedbacks (ACK)
            from this decompressor context,
            as defined by RFC 3095, Section 5.2.1."
       ::= { rohcDecompressorEntry 10 }

   rohcDecompressorOutNACKs OBJECT-TYPE


Quittek, Hartenstein, Stiemerling                              [Page 24]


Internet-Draft                  ROHC MIB                      March 2002


       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."
       ::= { rohcDecompressorEntry 11 }

   rohcDecompressorOutSNACKs 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."
       ::= { rohcDecompressorEntry 12 }

   --
   -- Statistics Group
   --
   -- This group consists of two tables providing packet statistis
   -- information and some statisitics related elements of the compressors
   -- table and the decompressor table.
   --

   rohcStatisticsObjects    OBJECT IDENTIFIER ::= { rohcObjects 5 }

   --
   -- Sent Packet Counter Table
   --

   rohcOutPacketCounterTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcOutPacketCounterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists packet counters per header type,
            compressor context, channel and interface."
       ::= { rohcStatisticsObjects 1 }

   rohcOutPacketCounterEntry OBJECT-TYPE
       SYNTAX      RohcOutPacketCounterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry of a particular sent packet counter."
       INDEX { ifIndex, rohcChannelIndex, rohcCompressorCID, rohcHeaderIndex }
       ::= { rohcOutPacketCounterTable 1 }


Quittek, Hartenstein, Stiemerling                              [Page 25]


Internet-Draft                  ROHC MIB                      March 2002


   RohcOutPacketCounterEntry ::= SEQUENCE {
       rohcOutPacketCounter    Counter32
   }

   rohcOutPacketCounter OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A counter for sent packets of a particular header type."
       ::= { rohcOutPacketCounterEntry 5 }

   --
   -- Received Packet Counter Table
   --

   rohcInPacketCounterTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcInPacketCounterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists received packet counters per
            header type, compressor context, channel and
            interface."
       ::= { rohcStatisticsObjects 2 }

   rohcInPacketCounterEntry OBJECT-TYPE
       SYNTAX      RohcInPacketCounterEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry of a particular received packet counter."
       INDEX { ifIndex, rohcChannelIndex, rohcDecompressorCID, rohcHeaderIndex }
       ::= { rohcInPacketCounterTable 1 }

   RohcInPacketCounterEntry ::= SEQUENCE {
       rohcInPacketCounter    Counter32
   }

   rohcInPacketCounter OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A counter for received packets of a particular header type."
       ::= { rohcInPacketCounterEntry 5 }


   --
   -- CRC Error Counter Table


Quittek, Hartenstein, Stiemerling                              [Page 26]


Internet-Draft                  ROHC MIB                      March 2002


   --

   rohcErrorTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF RohcErrorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists error counters per error type,
            compressor context, channel and interface. Since
            error types are not uniquely defined in RFC 3095,
            Each error type contains next to the error counter
            a textual description of the type."
       ::= { rohcStatisticsObjects 3 }

   rohcErrorEntry OBJECT-TYPE
       SYNTAX      RohcErrorEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry of a particular received packet counter."
       INDEX { ifIndex, rohcChannelIndex, rohcDecompressorCID, rohcErrorIndex }
       ::= { rohcErrorTable 1 }

   RohcErrorEntry ::= SEQUENCE {
       rohcErrorIndex      Integer32,
       rohcErrorDescr      SnmpAdminString,
       rohcErrorCounter    Counter32
   }

   rohcErrorIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally arbitrary, but unique identifier associated
            with this error 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."
       ::= { rohcErrorEntry 4 }

   rohcErrorDescr OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A textual description of the error type."
       ::= { rohcErrorEntry 5 }



Quittek, Hartenstein, Stiemerling                              [Page 27]


Internet-Draft                  ROHC MIB                      March 2002


   rohcErrorCounter OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A counter for occurrences of this error type."
       ::= { rohcErrorEntry 6 }


   --
   -- 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 which implement
            the ROHC MIB."
       MODULE      -- this module
       MANDATORY-GROUPS {
               rohcInstanceGroup, rohcChannelGroup,
               rohcCompressorGroup, rohcDecompressorGroup
       }
       GROUP   rohcStatisticsGroup
       DESCRIPTION
          "A compliant implementation does not have to implement
           the rohcStatisticsGroup."
       OBJECT  rohcCompressorReinit
       MIN-ACCESS  not-accessible
       DESCRIPTION
           "A compliant implementation does not have to support
            re-initialization of contexts initiated via this SNMP."
       ::= { rohcCompliances 1 }

   rohcInstanceGroup OBJECT-GROUP
       OBJECTS {
           rohcInstanceVendor,
           rohcInstanceVersion,
           rohcInstanceDescr,
           rohcInstanceClockRes,
           rohcIfInstance,
           rohcIfStatus,


Quittek, Hartenstein, Stiemerling                              [Page 28]


Internet-Draft                  ROHC MIB                      March 2002


           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,
           rohcChannelCompressedFlows,
           rohcChannelDecompressedFlows,
           rohcProfile
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            supported ROHC headers."
       ::= { rohcGroups 2 }

   rohcCompressorGroup OBJECT-GROUP
       OBJECTS {
           rohcCompressorCIDState,
           rohcCompressorState,
           rohcCompressorMode,
           rohcCompressorProfile,
           rohcCompressorReinit,
           rohcCompressorSizesAllowed,
           rohcCompressorSizesUsed,
           rohcPacketSizeUsed,
           rohcPayloadSize
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            supported ROHC headers."
       ::= { rohcGroups 3 }

   rohcDecompressorGroup OBJECT-GROUP
       OBJECTS {
           rohcDecompressorCIDState,
           rohcDecompressorState,
           rohcDecompressorMode,
           rohcDecompressorProfile,


Quittek, Hartenstein, Stiemerling                              [Page 29]


Internet-Draft                  ROHC MIB                      March 2002


           rohcDecompressorDepth
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            supported ROHC headers."
       ::= { rohcGroups 4 }

   rohcStatisticsGroup OBJECT-GROUP
       OBJECTS {
           rohcCompressorTotalRatio,
           rohcCompressorCurrentRatio,
           rohcCompressorOutPackets,
           rohcCompressorInACKs,
           rohcCompressorInNACKs,
           rohcCompressorInSNACKs,
           rohcDecompressorInPackets,
           rohcDecompressorOutACKs,
           rohcDecompressorOutNACKs,
           rohcDecompressorOutSNACKs,
           rohcOutPacketCounter,
           rohcInPacketCounter,
           rohcErrorDescr,
           rohcErrorCounter
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            supported ROHC headers."
       ::= { rohcGroups 5 }

   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.


Quittek, Hartenstein, Stiemerling                              [Page 30]


Internet-Draft                  ROHC MIB                      March 2002


   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.

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


Quittek, Hartenstein, Stiemerling                              [Page 31]


Internet-Draft                  ROHC MIB                      March 2002


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

[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



Quittek, Hartenstein, Stiemerling                              [Page 32]


Internet-Draft                  ROHC MIB                      March 2002


     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 33]


Internet-Draft                  ROHC MIB                      March 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 34]

Internet-Draft                  ROHC MIB                      March 2002