Request for Comments: 4113 AT&T Labs - Research
Obsoletes: 2454, 2013 J. Flick
Category: Standards Track Hewlett-Packard Company
June 2005
Management Information Base for the User Datagram Protocol (UDP)
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 (2005).
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 managed objects used for implementations
of the User Datagram Protocol (UDP) in an IP version independent
manner. This memo obsoletes RFCs 2013 and 2454.
Table of Contents
1. The Internet-Standard Management Framework . . . . . . . . . . 2
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1. Relationship to Other MIBs . . . . . . . . . . . . . . . 3
2.1.1. Relationship to RFC1213-MIB . . . . . . . . . . 3
2.1.2. Relationship to the IPV6-UDP-MIB . . . . . . . . 3
2.1.3. Relationship to HOST-RESOURCES-MIB and
SYSAPPL-MIB. . . . . . . . . . . . . . . . . . . 4
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
5. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 15
6. Security Considerations . . . . . . . . . . . . . . . . . . . 16
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8.1. Normative References . . . . . . . . . . . . . . . . . . 17
8.2. Informative References . . . . . . . . . . . . . . . . . 18
1. 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].
2. Overview
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 managed objects used for implementations
of the User Datagram Protocol (UDP), as defined in RFC 768 [RFC0768],
in an IP version independent manner.
The current UDP-MIB defined in this memo consists of one table and a
group of scalars:
o The udp group of scalars reports parameters and statistics of a
UDP protocol engine. Two scalars, udpHCInDatagrams and
udpHCOutDatagrams, have been added to this group since the
publication of RFC 2013 [RFC2013] in order to provide high-
capacity counters for fast networks. Discontinuities in the
values of the counters in this group are indicated by
discontinuities in the value of the sysUpTime object, which is
defined in RFC 3418 [RFC3418].
o The udpEndpointTable provides access to status information for all
UDP endpoints handled by a UDP protocol engine. The table
provides for strictly listening endpoints, as with the historical
udpTable, and also for "connected" UDP endpoints, which only
accept packets from a given remote system. It also reports
identification of the operating system level processes that handle
UDP connections. Addresses and ports of UDP endpoints in this
table are represented using the InetAddressType, InetAddress, and
InetPortNumber textual conventions defined in RFC 4001 [RFC4001].
2.1. Relationship to Other MIBs
This section discusses the relationship of this UDP-MIB module to
other MIB modules.
2.1.1. Relationship to RFC1213-MIB
UDP related MIB objects were originally defined as part of the
RFC1213-MIB, defined in RFC 1213 [RFC1213]. The UDP related objects
of the RFC1213-MIB were later copied into a separate MIB module and
published in RFC 2013 [RFC2013] in SMIv2 format.
The previous versions of the UDP-MIB both defined the udpTable, which
has been deprecated for basically two reasons:
(1) The udpTable only supports IPv4.
The current approach in the IETF is to write IP version neutral
MIBs rather than have different definitions for various version
of IP. This reduces the amount of overhead when new objects are
introduced, since there is only one place to add them. Hence,
the approach taken in RFC 2454 [RFC2454] of having separate
tables is not continued.
(2) The udpTable does not permit describing "connected" UDP
endpoints.
It turns out that "connected" endpoints tend to have a different
behaviour and management access pattern from those of listening
endpoints. Adding remote endpoint information to the
udpEndpointTable thus allows for the addition of specific status
and statistic objects for "connected" endpoints and connections.
2.1.2. Relationship to the IPV6-UDP-MIB
The IPV6-UDP-MIB, defined in RFC 2454 [RFC2454], has been moved to
Historic because the approach of having separate IP version specific
tables is not followed anymore. Implementation of RFC 2454 is thus
not suggested anymore.
Note that because scoped addresses are now represented using the
IPv4z and IPv6z address types, there is no longer a need to
explicitly include the ifIndex in the index clause of the
udpEndpointTable. This is a change from the use of ipv6UdpIfIndex in
RFC 2454.
2.1.3. Relationship to HOST-RESOURCES-MIB and SYSAPPL-MIB
The udpEndpointTable reports the identification of the operating
system level process that handles a connection or a listening
endpoint. The value is reported as an Unsigned32, which is expected
to be the same as the hrSWRunIndex of the HOST-RESOURCES-MIB
[RFC2790] (if the value is smaller than 2147483647) or the
sysApplElmtRunIndex of the SYSAPPL-MIB [RFC2287]. This allows
management applications to identify the UDP connections that belong
to an operating system level process, which has proven valuable in
operational environments.
3. Definitions
UDP-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32, Counter64,
Unsigned32, IpAddress, mib-2 FROM SNMPv2-SMI
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
InetAddress, InetAddressType,
InetPortNumber FROM INET-ADDRESS-MIB;
udpMIB MODULE-IDENTITY
LAST-UPDATED "200505200000Z" -- May 20, 2005
ORGANIZATION
"IETF IPv6 Working Group
http://www.ietf.org/html.charters/ipv6-charter.html"
CONTACT-INFO
"Bill Fenner (editor)
AT&T Labs -- Research
75 Willow Rd.
Menlo Park, CA 94025
Phone: +1 650 330-7893
Email: <fenner@research.att.com>
John Flick (editor)
Hewlett-Packard Company
8000 Foothills Blvd. M/S 5557
Roseville, CA 95747
Phone: +1 916 785 4018
Email: <john.flick@hp.com>
Send comments to <ipv6@ietf.org>"
DESCRIPTION
"The MIB module for managing UDP implementations.
Copyright (C) The Internet Society (2005). This
version of this MIB module is part of RFC 4113;
see the RFC itself for full legal notices."
REVISION "200505200000Z" -- May 20, 2005
DESCRIPTION
"IP version neutral revision, incorporating the
following revisions:
- Added udpHCInDatagrams and udpHCOutDatagrams in order
to provide high-capacity counters for fast networks.
- Added text to the descriptions of all counter objects
to indicate how discontinuities are detected.
- Deprecated the IPv4-specific udpTable and replaced it
with the version neutral udpEndpointTable. This
table includes support for connected UDP endpoints
and support for identification of the operating
system process associated with a UDP endpoint.
- Deprecated the udpGroup and replaced it with object
groups representing the current set of objects.
- Deprecated udpMIBCompliance and replaced it with
udpMIBCompliance2, which includes the compliance
information for the new object groups.
This version published as RFC 4113."
REVISION "199411010000Z" -- November 1, 1994
DESCRIPTION
"Initial SMIv2 version, published as RFC 2013."
REVISION "199103310000Z" -- March 31, 1991
DESCRIPTION
"The initial revision of this MIB module was part of
MIB-II, published as RFC 1213."
::= { mib-2 50 }
-- the UDP group
udp OBJECT IDENTIFIER ::= { mib-2 7 }
udpInDatagrams OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of UDP datagrams delivered to UDP
users.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by discontinuities in the
value of sysUpTime."
::= { udp 1 }
udpNoPorts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of received UDP datagrams for which
there was no application at the destination port.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by discontinuities in the
value of sysUpTime."
::= { udp 2 }
udpInErrors OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of received UDP datagrams that could not be
delivered for reasons other than the lack of an
application at the destination port.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by discontinuities in the
value of sysUpTime."
::= { udp 3 }
udpOutDatagrams OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of UDP datagrams sent from this
entity.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by discontinuities in the
value of sysUpTime."
::= { udp 4 }
udpHCInDatagrams OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of UDP datagrams delivered to UDP
users, for devices that can receive more than 1
million UDP datagrams per second.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by discontinuities in the
value of sysUpTime."
::= { udp 8 }
udpHCOutDatagrams OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of UDP datagrams sent from this
entity, for devices that can transmit more than 1
million UDP datagrams per second.
Discontinuities in the value of this counter can occur
at re-initialization of the management system, and at
other times as indicated by discontinuities in the
value of sysUpTime."
::= { udp 9 }
--
-- { udp 6 } was defined as the ipv6UdpTable in RFC2454’s
-- IPV6-UDP-MIB. This RFC obsoletes RFC 2454, so { udp 6 } is
-- obsoleted.
--
-- The UDP "Endpoint" table.
udpEndpointTable OBJECT-TYPE
SYNTAX SEQUENCE OF UdpEndpointEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table containing information about this entity’s UDP
endpoints on which a local application is currently
accepting or sending datagrams.
The address type in this table represents the address
type used for the communication, irrespective of the
higher-layer abstraction. For example, an application
using IPv6 ’sockets’ to communicate via IPv4 between
::ffff:10.0.0.1 and ::ffff:10.0.0.2 would use
InetAddressType ipv4(1).
Unlike the udpTable in RFC 2013, this table also allows
the representation of an application that completely
specifies both local and remote addresses and ports. A
listening application is represented in three possible
ways:
1) An application that is willing to accept both IPv4
and IPv6 datagrams is represented by a
udpEndpointLocalAddressType of unknown(0) and a
udpEndpointLocalAddress of ’’h (a zero-length
octet-string).
2) An application that is willing to accept only IPv4
or only IPv6 datagrams is represented by a
udpEndpointLocalAddressType of the appropriate
address type and a udpEndpointLocalAddress of
’0.0.0.0’ or ’::’ respectively.
3) An application that is listening for datagrams only
for a specific IP address but from any remote
system is represented by a
udpEndpointLocalAddressType of the appropriate
address type, with udpEndpointLocalAddress
specifying the local address.
In all cases where the remote is a wildcard, the
udpEndpointRemoteAddressType is unknown(0), the
udpEndpointRemoteAddress is ’’h (a zero-length
octet-string), and the udpEndpointRemotePort is 0.
If the operating system is demultiplexing UDP packets
by remote address and port, or if the application has
’connected’ the socket specifying a default remote
address and port, the udpEndpointRemote* values should
be used to reflect this."
::= { udp 7 }
udpEndpointEntry OBJECT-TYPE
SYNTAX UdpEndpointEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information about a particular current UDP endpoint.
Implementers need to be aware that if the total number
of elements (octets or sub-identifiers) in
udpEndpointLocalAddress and udpEndpointRemoteAddress
exceeds 111, then OIDs of column instances in this table
will have more than 128 sub-identifiers and cannot be
accessed using SNMPv1, SNMPv2c, or SNMPv3."
INDEX { udpEndpointLocalAddressType,
udpEndpointLocalAddress,
udpEndpointLocalPort,
udpEndpointRemoteAddressType,
udpEndpointRemoteAddress,
udpEndpointRemotePort,
udpEndpointInstance }
::= { udpEndpointTable 1 }
UdpEndpointEntry ::= SEQUENCE {
udpEndpointLocalAddressType InetAddressType,
udpEndpointLocalAddress InetAddress,
udpEndpointLocalPort InetPortNumber,
udpEndpointRemoteAddressType InetAddressType,
udpEndpointRemoteAddress InetAddress,
udpEndpointRemotePort InetPortNumber,
udpEndpointInstance Unsigned32,
udpEndpointProcess Unsigned32
}
udpEndpointLocalAddressType OBJECT-TYPE
SYNTAX InetAddressType
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The address type of udpEndpointLocalAddress. Only
IPv4, IPv4z, IPv6, and IPv6z addresses are expected, or
unknown(0) if datagrams for all local IP addresses are
accepted."
::= { udpEndpointEntry 1 }
udpEndpointLocalAddress OBJECT-TYPE
SYNTAX InetAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The local IP address for this UDP endpoint.
The value of this object can be represented in three
possible ways, depending on the characteristics of the
listening application:
1. For an application that is willing to accept both
IPv4 and IPv6 datagrams, the value of this object
must be ’’h (a zero-length octet-string), with
the value of the corresponding instance of the
udpEndpointLocalAddressType object being unknown(0).
2. For an application that is willing to accept only IPv4
or only IPv6 datagrams, the value of this object
must be ’0.0.0.0’ or ’::’, respectively, while the
corresponding instance of the
udpEndpointLocalAddressType object represents the
appropriate address type.
3. For an application that is listening for data
destined only to a specific IP address, the value
of this object is the specific IP address for which
this node is receiving packets, with the
corresponding instance of the