#-MIBFILE: udp-mib.mib

UDP-MIB DEFINITIONS ::= BEGIN


mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
InetAddressType ::=
	INTEGER {
	unknown(0),
	ipv4(1),
	ipv6(2),
	ipv4z(3),
	ipv6z(4),
	dns(16)
	}

InetAddress ::=
	OCTET STRING (SIZE(0..255))

InetAddressIPv4 ::=
	OCTET STRING (SIZE(4))

InetAddressIPv6 ::=
	OCTET STRING (SIZE(16))

InetAddressIPv4z ::=
	OCTET STRING (SIZE(8))

InetAddressIPv6z ::=
	OCTET STRING (SIZE(20))

InetAddressDNS ::=
	OCTET STRING (SIZE(1..255))

InetAddressPrefixLength ::=
	OCTET STRING

InetPortNumber ::=
	OCTET STRING

InetAutonomousSystemNumber ::=
	OCTET STRING

udpMIB OBJECT IDENTIFIER ::= { mib-2 50 }

udp OBJECT IDENTIFIER ::= { mib-2 7 }

udpInDatagrams OBJECT-TYPE
	SYNTAX Counter
	ACCESS read-only
	STATUS mandatory
	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 Counter
	ACCESS read-only
	STATUS mandatory
	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 Counter
	ACCESS read-only
	STATUS mandatory
	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 Counter
	ACCESS read-only
	STATUS mandatory
	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 Counter
	ACCESS read-only
	STATUS mandatory
	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 Counter
	ACCESS read-only
	STATUS mandatory
	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 }


udpEndpointTable OBJECT-TYPE
	SYNTAX SEQUENCE OF UdpEndpointEntry
	ACCESS read-only
	STATUS mandatory
	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
	ACCESS read-only
	STATUS mandatory
	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
	ACCESS read-only
	STATUS mandatory
	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
	ACCESS read-only
	STATUS mandatory
	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
udpEndpointLocalAddressType object representing the
appropriate address type.

As this object is used in the index for the
udpEndpointTable, implementors of this table should be
careful not to create entries that would result in OIDs
with more than 128 subidentifiers; else the information
cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
	::= { udpEndpointEntry 2 }


udpEndpointLocalPort OBJECT-TYPE
	SYNTAX InetPortNumber
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The local port number for this UDP endpoint."
	::= { udpEndpointEntry 3 }


udpEndpointRemoteAddressType OBJECT-TYPE
	SYNTAX InetAddressType
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The address type of udpEndpointRemoteAddress.  Only
IPv4, IPv4z, IPv6, and IPv6z addresses are expected, or
unknown(0) if datagrams for all remote IP addresses are
accepted.  Also, note that some combinations of

udpEndpointLocalAdressType and
udpEndpointRemoteAddressType are not supported.  In
particular, if the value of this object is not
unknown(0), it is expected to always refer to the
same IP version as udpEndpointLocalAddressType."
	::= { udpEndpointEntry 4 }


udpEndpointRemoteAddress OBJECT-TYPE
	SYNTAX InetAddress
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The remote IP address for this UDP endpoint.  If
datagrams from any remote system are to be accepted,
this value is ''h (a zero-length octet-string).
Otherwise, it has the type described by
udpEndpointRemoteAddressType and is the address of the
remote system from which datagrams are to be accepted
(or to which all datagrams will be sent).

As this object is used in the index for the
udpEndpointTable, implementors of this table should be
careful not to create entries that would result in OIDs
with more than 128 subidentifiers; else the information
cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
	::= { udpEndpointEntry 5 }


udpEndpointRemotePort OBJECT-TYPE
	SYNTAX InetPortNumber
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The remote port number for this UDP endpoint.  If
datagrams from any remote system are to be accepted,
this value is zero."
	::= { udpEndpointEntry 6 }


udpEndpointInstance OBJECT-TYPE
	SYNTAX INTEGER (1..'ffffffff'h)
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The instance of this tuple.  This object is used to
distinguish among multiple processes 'connected' to
the same UDP endpoint.  For example, on a system
implementing the BSD sockets interface, this would be
used to support the SO_REUSEADDR and SO_REUSEPORT
socket options."
	::= { udpEndpointEntry 7 }


udpEndpointProcess OBJECT-TYPE
	SYNTAX INTEGER
	ACCESS read-only
	STATUS mandatory
	DESCRIPTION "The system's process ID for the process associated with
this endpoint, or zero if there is no such process.
This value is expected to be the same as
HOST-RESOURCES-MIB::hrSWRunIndex or SYSAPPL-MIB::
sysApplElmtRunIndex for some row in the appropriate
tables."
	::= { udpEndpointEntry 8 }


udpTable OBJECT-TYPE
	SYNTAX SEQUENCE OF UdpEntry
	ACCESS read-only
	STATUS optional
	DESCRIPTION "A table containing IPv4-specific UDP listener
information.  It contains information about all local
IPv4 UDP end-points on which an application is
currently accepting datagrams.  This table has been
deprecated in favor of the version neutral
udpEndpointTable."
	::= { udp 5 }


udpEntry OBJECT-TYPE
	SYNTAX UdpEntry
	ACCESS read-only
	STATUS optional
	DESCRIPTION "Information about a particular current UDP listener."
	INDEX { udpLocalAddress , udpLocalPort }

	::= { udpTable 1 }

udpEntry ::=
	SEQUENCE {
		udpLocalAddress IpAddress,
		udpLocalPort Integer32
		}

udpLocalAddress OBJECT-TYPE
	SYNTAX IpAddress
	ACCESS read-only
	STATUS optional
	DESCRIPTION "The local IP address for this UDP listener.  In the
case of a UDP listener that is willing to accept
datagrams for any IP interface associated with the
node, the value 0.0.0.0 is used."
	::= { udpEntry 1 }


udpLocalPort OBJECT-TYPE
	SYNTAX INTEGER (0..65535)
	ACCESS read-only
	STATUS optional
	DESCRIPTION "The local port number for this UDP listener."
	::= { udpEntry 2 }


udpMIBConformance OBJECT IDENTIFIER ::= { udpMIB 2 }

udpMIBCompliances OBJECT IDENTIFIER ::= { udpMIBConformance 1 }

udpMIBGroups OBJECT IDENTIFIER ::= { udpMIBConformance 2 }

udpGroup OBJECT IDENTIFIER ::= { udpMIBGroups 1 }

udpBaseGroup OBJECT IDENTIFIER ::= { udpMIBGroups 2 }

udpHCGroup OBJECT IDENTIFIER ::= { udpMIBGroups 3 }

udpEndpointGroup OBJECT IDENTIFIER ::= { udpMIBGroups 4 }

END

