Request for Comments: 3816 M. Stiemerling
Category: Standards Track NEC
H. Hartenstein
University of Karlsruhe
June 2004
Definitions of Managed Objects for RObust Header Compression (ROHC)
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2004).
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 (ROHC).
The managed objects defined in this memo are grouped into three MIB
modules. The ROHC-MIB module defines managed objects shared by all
ROHC profiles, the ROHC-UNCOMPRESSED-MIB module defines managed
objects specific to the ROHC uncompressed profile, the ROHC-RTP-MIB
module defines managed objects specific to the ROHC RTP (Real-Time
Transport Protocol) profile, the ROHC UDP (User Datagram Protocol)
profile, the ROHC ESP (Encapsulating Security Payload) profile, and
the ROHC LLA (Link Layer Assisted) profile.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. The Internet-Standard Management Framework . . . . . . . . . . 2
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Structure of the MIB modules . . . . . . . . . . . . . . . . . 3
4.1. The ROHC-MIB module . . . . . . . . . . . . . . . . . . . 4
4.1.1. rohcChannelTable . . . . . . . . . . . . . . . . . 5
4.1.2. rohcInstanceTable. . . . . . . . . . . . . . . . . 5
4.1.3. rohcProfileTable . . . . . . . . . . . . . . . . . 6
4.1.4. rohcContextTable . . . . . . . . . . . . . . . . . 7
4.2. The ROHC-UNCOMPRESSED-MIB module. . . . . . . . . . . . . 8
4.2.1. rohcUncmprContextTable . . . . . . . . . . . . . . 8
4.3. The ROHC-RTP-MIB module . . . . . . . . . . . . . . . . . 8
4.3.1. rohcRtpContextTable. . . . . . . . . . . . . . . . 8
4.3.2. rohcPacketSizeTable. . . . . . . . . . . . . . . . 9
5. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 9
6. Security Considerations. . . . . . . . . . . . . . . . . . . . 50
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 51
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.1. Normative References. . . . . . . . . . . . . . . . . . . 51
8.2. Informative References. . . . . . . . . . . . . . . . . . 52
9. Authors’ Addresses . . . . . . . . . . . . . . . . . . . . . . 52
10. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 53
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", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14, RFC 2119 [RFC2119].
2. The Internet-Standard Management Framework
For a detailed overview of the documents that describe the current
Internet-Standard Management Framework, please refer to section 7 of
RFC 3410 [RFC3410].
Managed objects are accessed via a virtual information store, termed
the Management Information Base or MIB. MIB objects are generally
accessed through the Simple Network Management Protocol (SNMP).
Objects in the MIB are defined using the mechanisms defined in the
Structure of Management Information (SMI). This memo specifies a MIB
module that is compliant to the SMIv2, which is described in STD 58,
RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
[RFC2580].
3. 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.
ROHC introduces header compressors/decompressors at the end-points
(interfaces) of (wireless) channels on which packets with compressed
headers are transferred. 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.
This document specifies MIB modules in order to provide a means for
managing ROHC implementations via SNMP and within the IETF management
framework. The objects defined support configuration management,
fault management and performance monitoring.
For configuration management implementation parameters (see Section
6.3 of [RFC3095]) and configuration parameters (including the ones
specified in Section 5.1.1 of [RFC3095] and in Section 5.1.1 of
[RFC3242]) can be verified by using the MIB modules specified below.
For fault management compressor/decompressor state and mode can be
checked.
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. Structure of the MIB modules
This section presents the structure of the MIB modules that are
specified in Section 5. Basically, the MIB is structured according
to the ROHC architecture described in [RFC3759].
ROHC is an evolving technology. [RFC3095] specifies the header
compression framework and four profiles: uncompressed, RTP, UDP, and
ESP (Real-Time Transport Protocol, User Datagram Protocol,
Encapsulating Security Payload). [RFC3242] specifies a profile with
additional link layer assistance called LLA (Link Layer Assisted). A
profile for compression of TCP (Transmission Control Protocol) flows
is under development within the ROHC working group and SCTP (Stream
Control Transmission Protocol) compression is being discussed as
potential next candidate. Therefore, the managed objects defined
below are structured into three MIB modules: the general ROHC-MIB
module and the profile-specific ROHC-UNCOMPRESSED-MIB and ROHC-RTP-
MIB modules. This flexible approach allows to support future
profiles each by its own profile-specific module.
The ROHC-MIB module defines properties of information on ROHC
instances, ROHC channels, ROHC profiles, and ROHC compressor and
decompressor contexts. All managed objects in this module are
assumed to be shared by all profiles.
The ROHC-UNCOMPRESSED-MIB module extends the ROHC-MIB by managed
objects that are specific to the ROHC uncompressed profile 0x0000
defined in [RFC3095]. The ROHC-RTP-MIB module extends the ROHC-MIB
by managed objects that are specific to the three profiles defined in
[RFC3095] (ROHC RTP profile 0x0001, ROHC UDP profile 0x0002, and ROHC
ESP profile 0x0003), and to the ROHC LLA profile 0x0005 defined in
[RFC3242]. An analysis of these profiles showed that they are
tightly related and can share most of the managed objects in the
ROHC-UNCOMPRESSED-MIB module. Therefore, a joint module for all of
them was preferred to individual modules.
The number of managed objects in the ROHC-UNCOMPRESSED-MIB Module and
the ROHC-RTP-MIB Module is rather small. They contain context state
and context mode, and profile-specific context statistics. It is
assumed that MIB modules for future profiles, such as TCP and SCTP,
will be similarly small and easy to design.
4.1. The ROHC-MIB module
The ROHC-MIB module defines managed objects that are expected to be
useful for all current and future ROHC profiles. Objects in the
ROHC-MIB module are arranged into four tables: the rohcChannelTable,
the rohcInstanceTable, the rohcProfileTable, and the
rohcContextTable. The managed objects in the first three tables are
rather static (except for provided statistics), while the objects in
the rohcContextTable are more dynamic.
All tables are indexed by the IP interface number and by a numeric
channel identifier. The channel identifier is used for channels to
which compressors and decompressors are attached (called ROHC
channels in [RFC3759]), as well as for dedicated feedback channels
(called ROHC feedback channels in [RFC3759]). Compressor and
decompressor instances are further indexed by their type (either
compressor or decompressor). Contexts are indexed by the same index
as their corresponding instance and their individual context
identifier (CID).
4.1.1. rohcChannelTable
The rohcChannelTable lists all channels used by ROHC instances for
transferring compressed packets and/or for giving feedback from the
decompressor to the compressor. Listed channels are either ROHC
channels or feedback channels as defined in [RFC3759]. The channels
are listed per IP interface.
The information per channel in the rohcChannelTable includes
o the channel ID,
o the channel type, either ’notInUse’, ’rohc’, or
’dedicatedFeedback’,
o the channel for which feedback is provided by this channel (if
applicable),
o a string for describing the channel, and
o the status of the channel being either ’enabled’ or ’disabled’.
4.1.2. rohcInstanceTable
The rohcInstanceTable defines properties of ROHC compressor instances
and ROHC decompressor instances.
As described in [RFC3759], an instance is associated with exactly one
channel and only one instance can be associated with the same
channel. Therefore, the same index consisting of ifIndex and
rohcChannelID could have been used for both tables. But when
accessing the rohcInstanceTable (and the rohcContextTable that shares
a part of its index with the rohcInstanceTable) there are many cases
where either a compressor contexts or a decompressor contexts are of
interest. Therefore, the rohcInstanceType indicating either a
compressor or a decompressor was added to the table’s index. This
allows listing all compressors without accessing any decompressor.
Note that still the combination of ifIndex and rohcChannelID uniquely
identifies an instance. It is always possible to directly identify
and access the channel corresponding to a given instance.
The set of instance properties in the rochInstanceTable includes
o the vendor of the implementation, version number and description,
o the channels used for compressed packets and for feedback,
o implementation and configuration properties including clock
resolution, maximum context identifier number (MAX_CID), the
LARGE_CIDS flag, and the Maximum Reconstructed Reception Unit
(MRRU),
o the storage time for contexts created by this instance,
o the status of the instance (operational or not).
Optionally, the rohcInstanceTable also contains instance statistics
including
o the total number of compressed flows,
o the current number of compressed flows,
o the total number of packets passing this instance
o the total number of static Initialization and Refreshes (IRs)
passing this instance
o the total number of dynamic Initialization and Refreshes (IR-DYNs)
passing this instance, and
o the total compression ratio achieved on the channel.
Instances are listed per IP interface.
4.1.3. rohcProfileTable
The rohcProfileTable lists available profiles per instance including
information on
o the profile number,
o the vendor and version number, and
o a string describing the profile.
o a flag indicating whether or not using this profile has been
negotiated with the corresponding (de)compressor.
4.1.4. rohcContextTable
The rohcContextTable lists compressor contexts or decompressor
contexts per instance and context identifier (CID). Each row of this
table represents a context. If a new context is created, also a new
row in this table is created. After expiration or termination of a
context, the row will continue to exist until the context’s storage
time expires or until the CID is re-used. Then the row will be
deleted.
For each context, the following attributes are listed:
o the type of context (’compressor’ or ’decompressor’), also used as
part of the table index,
o the CID,
o the state of the CID (’unused’, ’active’, ’expired’, or
’terminated’), also used as part of the table index,
o the used profile,
o in case of a decompressor: the decompressor depth, and
o the storage time.
Optionally, context statistics is provided including
o activation and deactivation time of the context,
o the number of packets sent or received, respectively,
o the numbers of IRs and IR-DYNs sent or received, respectively,
o the number of feedbacks sent or received, respectively,
o in case of a decompressor context: the numbers of decompressor
failures and repairs,
o the total compression ratio of all packets passing this context,
o the total compression ratio of all packet headers compressed in
this context,
o the mean compressed packet size of all packets passing this
context,
o the mean header size of all compressed headers passing this
context,
o the compression ratio of the last 16 packets passing this context,
o the compression ratio of the last 16 packet headers compressed in
this context,
o the mean compressed packet size of the last 16 packets passing
this context,
o the mean header size of the last 16 compressed headers passing
this context.
4.2. The ROHC-UNCOMPRESSED-MIB module
The ROHC-UNCOMPRESSED-MIB module defines managed objects that are
specific to ROHC uncompressed profile (0x0000) specified in
[RFC3095].
4.2.1. rohcUncmprContextTable
The rohcUncmprContextTable extends the rohcContextTable. It provides
information on state and mode of the compressor for profile 0x0000.
Optionally, it also provides a counter of ACK feedbacks sent or
received by the context, respectively.
4.3. The ROHC-RTP-MIB module
The ROHC-RTP-MIB module defines managed objects that are specific to
three profiles specified in [RFC3095] (ROHC RTP profile 0x0001, ROHC
UDP profile 0x0002, and ROHC ESP profile 0x0003) and to the ROHC LLA
profile 0x0005 specified in [RFC3242]. The ROHC-RTP-MIB contains two
tables, the rohcRtpContextTable and the rohcRtpPacketSizeTable.
4.3.1. rohcRtpContextTable
The rohcRtpContextTable extends the rohcContextTable. It provides
information on context state and context mode for profiles 0x0001 -
0x0003 and 0x0005. For compressor contexts it optionally contains
managed object containing the numbers of allowed and used packet
sizes. As further option, counters of the numbers of ACKs, NACKs,
and SNACKs in this context are specified.
4.3.2. rohcPacketSizeTable
The optional rohcPacketSizeTable lists per compressor context the
allowed packet sizes for profiles ROHC RTP, ROHC UDP, ROHC ESP, or
the preferred packet sizes for ROHC LLA, respectively. Allowed
packet sizes are marked if they are used. For preferred packet
sizes, it is indicated whether the preferred size applies to NHP
only, to RHP only or to all packets.
5. Definitions
ROHC-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE,
Unsigned32, Counter32, mib-2
FROM SNMPv2-SMI -- [RFC2578]
TEXTUAL-CONVENTION, TruthValue,
TimeInterval, DateAndTime
FROM SNMPv2-TC -- [RFC2579]
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF -- [RFC2580]
SnmpAdminString
FROM SNMP-FRAMEWORK-MIB -- [RFC3411]
ifIndex
FROM IF-MIB; -- [RFC2863]
rohcMIB MODULE-IDENTITY
LAST-UPDATED "200406030000Z" -- June 3, 2004
ORGANIZATION "IETF Robust Header Compression Working Group"
CONTACT-INFO
"WG charter:
http://www.ietf.org/html.charters/rohc-charter.html
Mailing Lists:
General Discussion: rohc@ietf.org
To Subscribe: rohc-request@ietf.org
In Body: subscribe your_email_address
Editor:
Juergen Quittek
NEC Europe Ltd.
Network Laboratories
Kurfuersten-Anlage 36
69221 Heidelberg
Germany
Tel: +49 6221 90511-15
EMail: quittek@netlab.nec.de"
DESCRIPTION
"This MIB module defines a set of basic objects for
monitoring and configuring robust header compression.
The module covers information about running instances
of ROHC (compressors or decompressors) at IP interfaces.
Information about compressor contexts and decompressor
contexts has different structure for different profiles.
Therefore it is not provided by this MIB module, but by
individual modules for different profiles.
Copyright (C) The Internet Society (2004). The
initial version of this MIB module was published
in RFC 3816. For full legal notices see the RFC
itself or see:
http://www.ietf.org/copyrights/ianamib.html"
REVISION "200406030000Z" -- June 3, 2004
DESCRIPTION "Initial version, published as RFC 3816."
::= { mib-2 112 }
RohcChannelIdentifier ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"A number identifying a channel.
The value of 0 must not be used as identifier
of an existing channel."
SYNTAX Unsigned32 (1..4294967295)
RohcChannelIdentifierOrZero ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"A number identifying a channel.
The value of 0 is indicates that
no channel is identified."
SYNTAX Unsigned32 (0..4294967295)
RohcCompressionRatio ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"A number indicating a compression ratio over
a set of bytes. The value is defined as
1000 * bytes(compressed) / bytes(original)
rounded to the next integer value.
Note that compressed sets of bytes can be larger
than the corresponding uncompressed ones.
Therefore, the number can be greater than 1000."
SYNTAX Unsigned32
--
-- The groups defined within this MIB module:
--
rohcObjects OBJECT IDENTIFIER ::= { rohcMIB 1 }
rohcConformance OBJECT IDENTIFIER ::= { rohcMIB 2 }
--
-- The ROHC Instance group lists properties of ROHC
-- instances in the rohcInstanceTable, about the channels used
-- by the instances in the rohcChanneltable and about the profiles
-- available at the instances in the rohcProfileTable.
--
rohcInstanceObjects OBJECT IDENTIFIER ::= { rohcObjects 1 }
--
-- Channel Table
--
-- Listing all channels used for ROHC data channel
-- and/or as feedback channel.
--
rohcChannelTable OBJECT-TYPE
SYNTAX SEQUENCE OF RohcChannelEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table lists and describes all ROHC channels
per interface."
::= { rohcInstanceObjects 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.
Note, that the rohcChannelID identifies the channel
uniquely. The ifIndex is part of the index of this table
just in order to allow addressing channels per interface."
INDEX { ifIndex, rohcChannelID }
::= { rohcChannelTable 1 }
RohcChannelEntry ::= SEQUENCE {
rohcChannelID RohcChannelIdentifier,
rohcChannelType INTEGER,
rohcChannelFeedbackFor RohcChannelIdentifierOrZero,
rohcChannelDescr SnmpAdminString,
rohcChannelStatus INTEGER
}
rohcChannelID OBJECT-TYPE
SYNTAX RohcChannelIdentifier
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The locally arbitrary, but unique identifier associated
with this channel. The value is REQUIRED to be unique
per ROHC MIB implementation independent of the associated
interface.
The value is REQUIRED to remain constant at least from one
re-initialization of the entity’s network management system
to the next re-initialization. It is RECOMMENDED that the