UDPLITE-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY,
	OBJECT-TYPE,
	mib-2,
	Unsigned32,
	Counter32,
	Counter64
		FROM SNMPv2-SMI		-- [RFC2578]
	TimeStamp
		FROM SNMPv2-TC		-- [RFC2579]
	MODULE-COMPLIANCE,
	OBJECT-GROUP
		FROM SNMPv2-CONF		-- [RFC2580]
	InetAddress,
	InetAddressType,
	InetPortNumber
		FROM INET-ADDRESS-MIB;

-- [RFC4001]

udpliteMIB MODULE-IDENTITY
	LAST-UPDATED "200712180000Z"	-- Dec 18, 2007 12:00:00 AM
	ORGANIZATION "IETF TSV Working Group (TSVWG)"
	CONTACT-INFO
		"IETF TSV Working Group
		http://www.ietf.org/html.charters/tsvwg-charter.html
		Mailing List: tsvwg@ietf.org






		Gerrit Renker, Godred Fairhurst
		Electronics Research Group
		School of Engineering, University of Aberdeen
		Fraser Noble Building, Aberdeen AB24 3UE, UK"
	DESCRIPTION
		"The MIB module for managing UDP-Lite implementations.
		Copyright (C) The IETF Trust (2008).  This version of
		this MIB module is part of RFC 5097; see the RFC
		itself for full legal notices."
	REVISION "200712180000Z"	-- Dec 18, 2007 12:00:00 AM
	DESCRIPTION
		"Initial SMIv2 revision, based on the format of the UDP
		MIB module (RFC 4113) and published as RFC 5097."
	-- 1.3.6.1.2.1.170
	::= { mib-2 170 }


udplite OBJECT IDENTIFIER 
	-- 1.3.6.1.2.1.170.1
	::= { udpliteMIB 1 }

udpliteInDatagrams OBJECT-TYPE
	SYNTAX  Counter64
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The total number of UDP-Lite datagrams that were
		delivered to UDP-Lite users.
		Discontinuities in the value of this counter can occur
		at re-initialisation of the management system, and at
		other times as indicated by the value of
		udpliteStatsDiscontinuityTime."
	-- 1.3.6.1.2.1.170.1.1
	::= { udplite 1 }


udpliteInPartialCov OBJECT-TYPE
	SYNTAX  Counter64
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The total number of UDP-Lite datagrams that were
		delivered to UDP-Lite users (applications) and whose
		checksum coverage was strictly less than the datagram
		length.
		Discontinuities in the value of this counter can occur
		at re-initialisation of the management system, and at
		other times as indicated by the value of
		udpliteStatsDiscontinuityTime."
	-- 1.3.6.1.2.1.170.1.2
	::= { udplite 2 }


udpliteNoPorts OBJECT-TYPE
	SYNTAX  Counter32
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The total number of received UDP-Lite datagrams for
		which there was no listener at the destination port.
		Discontinuities in the value of this counter can occur
		at re-initialisation of the management system, and at
		other times as indicated by the value of
		udpliteStatsDiscontinuityTime."
	-- 1.3.6.1.2.1.170.1.3
	::= { udplite 3 }


udpliteInErrors OBJECT-TYPE
	SYNTAX  Counter32
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The number of received UDP-Lite 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-initialisation of the management system, and at
		other times as indicated by the value of
		udpliteStatsDiscontinuityTime."
	-- 1.3.6.1.2.1.170.1.4
	::= { udplite 4 }


udpliteInBadChecksum OBJECT-TYPE
	SYNTAX  Counter32
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The number of received UDP-Lite datagrams whose checksum
		could not be validated.  This includes illegal checksum
		coverage values, as their use would lead to incorrect
		checksums.
		Discontinuities in the value of this counter can occur
		at re-initialisation of the management system, and at
		other times as indicated by the value of
		udpliteStatsDiscontinuityTime."
	REFERENCE
		"RFC 3828, section 3.1"
	-- 1.3.6.1.2.1.170.1.5
	::= { udplite 5 }


udpliteOutDatagrams OBJECT-TYPE
	SYNTAX  Counter64
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The total number of UDP-Lite datagrams sent from this
		entity.
		Discontinuities in the value of this counter can occur
		at re-initialisation of the management system, and at
		other times as indicated by the value of
		udpliteStatsDiscontinuityTime."
	-- 1.3.6.1.2.1.170.1.6
	::= { udplite 6 }


udpliteOutPartialCov OBJECT-TYPE
	SYNTAX  Counter64
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The total number of udpliteOutDatagrams whose
		checksum coverage was strictly less than the
		datagram length.
		Discontinuities in the value of this counter can occur
		at re-initialisation of the management system, and at
		other times as indicated by the value of
		udpliteStatsDiscontinuityTime."
	-- 1.3.6.1.2.1.170.1.7
	::= { udplite 7 }


udpliteEndpointTable OBJECT-TYPE
	SYNTAX  SEQUENCE OF UdpLiteEndpointEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"A table containing information about this entity's
		UDP-Lite 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).

		Like the udpTable in RFC 4113, 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
		   udpliteEndpointLocalAddressType of unknown(0) and a
		   udpliteEndpointLocalAddress 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
		   udpliteEndpointLocalAddressType of the appropriate
		   address type and a udpliteEndpointLocalAddress 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
		   udpliteEndpointLocalAddressType of the appropriate
		   address type, with udpliteEndpointLocalAddress
		   specifying the local address.

		In all cases where the remote address is a wildcard,
		the udpliteEndpointRemoteAddressType is unknown(0),
		the udpliteEndpointRemoteAddress is ''h (a zero-length
		octet-string), and the udpliteEndpointRemotePort is 0.

		If the operating system is demultiplexing UDP-Lite
		packets by remote address/port, or if the application
		has 'connected' the socket specifying a default remote
		address/port, the udpliteEndpointRemote* values should
		be used to reflect this."
	-- 1.3.6.1.2.1.170.1.8
	::= { udplite 8 }


udpliteEndpointEntry OBJECT-TYPE
	SYNTAX  UdpLiteEndpointEntry
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"Information about a particular current UDP-Lite endpoint.
		Implementers need to pay attention to the sizes of
		udpliteEndpointLocalAddress/RemoteAddress, as Object
		Identifiers (OIDs) of column instances in this table must
		have no more than 128 sub-identifiers in order to remain
		 accessible with SNMPv1, SNMPv2c, and SNMPv3."
	INDEX {
		udpliteEndpointLocalAddressType,
		udpliteEndpointLocalAddress,
		udpliteEndpointLocalPort,
		udpliteEndpointRemoteAddressType,
		udpliteEndpointRemoteAddress,
		udpliteEndpointRemotePort,
		udpliteEndpointInstance }
	-- 1.3.6.1.2.1.170.1.8.1
	::= { udpliteEndpointTable 1 }


UdpLiteEndpointEntry ::= SEQUENCE {

	udpliteEndpointLocalAddressType  InetAddressType,
	udpliteEndpointLocalAddress      InetAddress,
	udpliteEndpointLocalPort         InetPortNumber,
	udpliteEndpointRemoteAddressType InetAddressType,
	udpliteEndpointRemoteAddress     InetAddress,
	udpliteEndpointRemotePort        InetPortNumber,
	udpliteEndpointInstance          Unsigned32,
	udpliteEndpointProcess           Unsigned32,
	udpliteEndpointMinCoverage       Unsigned32,
	udpliteEndpointViolCoverage      Counter32 }


udpliteEndpointLocalAddressType OBJECT-TYPE
	SYNTAX  InetAddressType
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"The address type of udpliteEndpointLocalAddress.  Only
		IPv4, IPv4z, IPv6, and IPv6z addresses are expected, or
		unknown(0) if datagrams for all local IP addresses are
		accepted."
	-- 1.3.6.1.2.1.170.1.8.1.1
	::= { udpliteEndpointEntry 1 }


udpliteEndpointLocalAddress OBJECT-TYPE
	SYNTAX  InetAddress
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"The local IP address for this UDP-Lite 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
		   EndpointLocalAddressType 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
		   EndpointLocalAddressType 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
		   EndpointLocalAddressType object representing the
		   appropriate address type.

		As this object is used in the index for the
		udpliteEndpointTable, implementors should be careful
		not to create entries that would result in OIDs with
		more than 128 sub-identifiers; this is because of SNMP
		and SMI limitations."
	-- 1.3.6.1.2.1.170.1.8.1.2
	::= { udpliteEndpointEntry 2 }


udpliteEndpointLocalPort OBJECT-TYPE
	SYNTAX  InetPortNumber
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"The local port number for this UDP-Lite endpoint."
	-- 1.3.6.1.2.1.170.1.8.1.3
	::= { udpliteEndpointEntry 3 }


udpliteEndpointRemoteAddressType OBJECT-TYPE
	SYNTAX  InetAddressType
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"The address type of udpliteEndpointRemoteAddress.  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
		udpliteEndpointLocalAdressType and
		udpliteEndpointRemoteAddressType 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 udpliteEndpointLocalAddressType."
	-- 1.3.6.1.2.1.170.1.8.1.4
	::= { udpliteEndpointEntry 4 }


udpliteEndpointRemoteAddress OBJECT-TYPE
	SYNTAX  InetAddress
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"The remote IP address for this UDP-Lite 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
		udpliteEndpointRemoteAddressType 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
		udpliteEndpointTable, implementors should be careful
		not to create entries that would result in OIDs with
		more than 128 sub-identifiers; this is because of SNMP
		and SMI limitations."
	-- 1.3.6.1.2.1.170.1.8.1.5
	::= { udpliteEndpointEntry 5 }


udpliteEndpointRemotePort OBJECT-TYPE
	SYNTAX  InetPortNumber
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"The remote port number for this UDP-Lite endpoint.  If
		datagrams from any remote system are to be accepted,
		this value is zero."
	-- 1.3.6.1.2.1.170.1.8.1.6
	::= { udpliteEndpointEntry 6 }


udpliteEndpointInstance OBJECT-TYPE
	SYNTAX  Unsigned32 (1..4294967295)
	MAX-ACCESS not-accessible
	STATUS  current
	DESCRIPTION
		"The instance of this tuple.  This object is used to
		distinguish among multiple processes 'connected' to
		the same UDP-Lite 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."
	-- 1.3.6.1.2.1.170.1.8.1.7
	::= { udpliteEndpointEntry 7 }


udpliteEndpointProcess OBJECT-TYPE
	SYNTAX  Unsigned32
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"A unique value corresponding to a piece of software
		running on this endpoint.

		If this endpoint is associated with more than one piece
		of software, the agent should choose one of these.  As
		long as the representative piece of software
		is running and still associated with the endpoint,
		subsequent reads will consistently return the same
		value.  The implementation may use any algorithm
		satisfying these constraints (e.g., choosing the entity





		with the oldest start time).

		This identifier is platform-specific.  Wherever possible,
		it should use the system's native, unique identification
		number as the value.

		If the SYSAPPL-MIB module is available, the value should
		be the same as sysApplElmtRunIndex.  If not available, an
		alternative should be used (e.g., the hrSWRunIndex of the
		HOST-RESOURCES-MIB module).

		If it is not possible to uniquely identify the pieces of
		software associated with this endpoint, then the value
		zero should be used.  (Note that zero is otherwise a
		valid value for sysApplElmtRunIndex.)"
	-- 1.3.6.1.2.1.170.1.8.1.8
	::= { udpliteEndpointEntry 8 }


udpliteEndpointMinCoverage OBJECT-TYPE
	SYNTAX  Unsigned32
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The minimum checksum coverage expected by this endpoint.
		A value of 0 indicates that only fully covered datagrams
		are accepted."
	REFERENCE
		"RFC 3828, section 3.1"
	-- 1.3.6.1.2.1.170.1.8.1.9
	::= { udpliteEndpointEntry 9 }


udpliteEndpointViolCoverage OBJECT-TYPE
	SYNTAX  Counter32
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The number of datagrams received by this endpoint whose
		checksum coverage violated the minimum coverage threshold
		set for this connection (i.e., all valid datagrams whose
		checksum coverage was strictly smaller than the minimum,
		as defined in RFC 3828).
		Discontinuities in the value of this counter can occur
		at re-initialisation of the management system, and at
		other times as indicated by the value of
		udpliteStatsDiscontinuityTime."
	-- 1.3.6.1.2.1.170.1.8.1.10
	::= { udpliteEndpointEntry 10 }


udpliteStatsDiscontinuityTime OBJECT-TYPE
	SYNTAX  TimeStamp
	MAX-ACCESS read-only
	STATUS  current
	DESCRIPTION
		"The value of sysUpTime at the most recent occasion at
		which one or more of the UDP-Lite counters suffered a
		discontinuity.
		A value of zero indicates no such discontinuity has
		occurred since the last re-initialisation of the local
		management subsystem."
	-- 1.3.6.1.2.1.170.1.9
	::= { udplite 9 }


-- Conformance Information

udpliteMIBConformance OBJECT IDENTIFIER 
	-- 1.3.6.1.2.1.170.2
	::= { udpliteMIB 2 }


udpliteMIBCompliance MODULE-COMPLIANCE
	STATUS  current
	DESCRIPTION
		"The compliance statement for systems that implement
		UDP-Lite.

		There are a number of INDEX objects that cannot be
		represented in the form of OBJECT clauses in SMIv2,
		but for which we have the following compliance
		requirements, expressed in OBJECT clause form in this
		description clause:

		-- OBJECT      udpliteEndpointLocalAddressType
		-- SYNTAX      InetAddressType { unknown(0), ipv4(1),
		--                               ipv6(2), ipv4z(3),
		--                               ipv6z(4) }
		-- DESCRIPTION
		--     Support for dns(16) is not required.
		-- OBJECT      udpliteEndpointLocalAddress
		-- SYNTAX      InetAddress (SIZE(0|4|8|16|20))
		-- DESCRIPTION
		--     Support is only required for zero-length
		--     octet-strings, and for scoped and unscoped
		--     IPv4 and IPv6 addresses.
		-- OBJECT      udpliteEndpointRemoteAddressType
		-- SYNTAX      InetAddressType { unknown(0), ipv4(1),
		--                               ipv6(2), ipv4z(3),
		--                               ipv6z(4) }
		-- DESCRIPTION
		--     Support for dns(16) is not required.
		-- OBJECT      udpliteEndpointRemoteAddress





		-- SYNTAX      InetAddress (SIZE(0|4|8|16|20))
		-- DESCRIPTION
		--     Support is only required for zero-length
		--     octet-strings, and for scoped and unscoped
		--     IPv4 and IPv6 addresses.

		"

	MODULE 
	MANDATORY-GROUPS {
			udpliteBaseGroup,
			udplitePartialCsumGroup,
			udpliteEndpointGroup }

	GROUP udpliteAppGroup
	  DESCRIPTION
		"This group is optional and provides supplementary
		information about the effectiveness of using minimum
		checksum coverage thresholds on endpoints."
	-- 1.3.6.1.2.1.170.2.1
	::= { udpliteMIBConformance 1 }

udpliteMIBGroups OBJECT IDENTIFIER 
	-- 1.3.6.1.2.1.170.2.2
	::= { udpliteMIBConformance 2 }

udpliteBaseGroup OBJECT-GROUP
	OBJECTS {
		udpliteInDatagrams,
		udpliteNoPorts,
		udpliteInErrors,
		udpliteOutDatagrams,
		udpliteStatsDiscontinuityTime }
	STATUS  current
	DESCRIPTION
		"The group of objects providing for counters of
		basic UDP-like statistics."
	-- 1.3.6.1.2.1.170.2.2.1
	::= { udpliteMIBGroups 1 }

udplitePartialCsumGroup OBJECT-GROUP
	OBJECTS {
		udpliteInPartialCov,
		udpliteInBadChecksum,
		udpliteOutPartialCov }
	STATUS  current
	DESCRIPTION
		"The group of objects providing for counters of
		transport layer statistics exclusive to UDP-Lite."
	-- 1.3.6.1.2.1.170.2.2.2
	::= { udpliteMIBGroups 2 }

udpliteEndpointGroup OBJECT-GROUP
	OBJECTS {
		udpliteEndpointProcess,
		udpliteEndpointMinCoverage }
	STATUS  current
	DESCRIPTION
		"The group of objects providing for the IP version
		independent management of UDP-Lite 'endpoints'."
	-- 1.3.6.1.2.1.170.2.2.3
	::= { udpliteMIBGroups 3 }

udpliteAppGroup OBJECT-GROUP
	OBJECTS {
		udpliteEndpointViolCoverage }
	STATUS  current
	DESCRIPTION
		"The group of objects that provide application-level
		information for the configuration management of
		UDP-Lite 'endpoints'."
	-- 1.3.6.1.2.1.170.2.2.4
	::= { udpliteMIBGroups 4 }

END
