HTTP/1.1 200 OK Date: Tue, 09 Apr 2002 01:09:08 GMT Server: Apache/1.3.20 (Unix) Last-Modified: Tue, 07 Apr 1998 05:43:57 GMT ETag: "2e7a22-e3c0-3529bd1d" Accept-Ranges: bytes Content-Length: 58304 Connection: close Content-Type: text/plain Internet Draft RTP MIB November 18, 1997 Real-Time Transport Protocol Management Information Base November 18, 1997 Mark Baugher Intel Corporation 2111 N.E.25th Avenue Hillsboro, Oregon 97124 mbaugher@intel.com John Du Intel Corporation 2111 N.E.25th Avenue Hillsboro, Oregon 97124 John_Du@ccm.jf.intel.com Stan Naudus 3Com Corporation 2070 Chain Bridge Road Vienna, Virginia 22182 snaudus@usrva.com Status of this Memo This document is an Internet-Draft. 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. Internet-Drafts may be updated, replaced, or made obsolete by other documents at any time. It is not appropriate to use Internet-Drafts as reference material or to cite them other than as a ``working draft'' or ``work in progress.'' To learn the current status of any Internet-Draft, please check the 1id-abstracts.txt listing contained in the Internet- Drafts Shadow Directories on ds.internic.net, nic.nordu.net, venera.isi.edu, or munnari.oz.au. Baugher, Du, Naudus Expires May 18, 1998 [Page 1] Internet Draft RTP MIB November 18, 1997 1. Changes from Previous Draft (1) The DESCRIPTION clauses are changed for those rtpEgEntry and rtpInEntry objects that also appear in RTCP messages. The current values are always to be used rather than the values from the last RTCP message for MIB objects that are also defined in RTCP. (2) Interfaces in rtpEgEntry, rtpInEntry and rtpSessionEntry are now defined by a pair of InterfaceIndex and IpAddress object instances. InterfaceIndex is a Textual Convention that is introduced in this MIB to be zero when the interface has an IP Address; otherwise it is the IfIndex from the IF-MIB. (3) rtpEgIndex and rtpInIndex are added to serve as the sole indexes to rtpEgEntry and rtpInEntry respectively. This change is needed to support multi-homed RTP hosts. (4) rtpEgStartTime, rtpInStartTime and rtpSessionStartTime are added for the purpose of recording the SysUpTime value at the time of conceptual row creation as required by RFC 1902 for conceptual rows that contain counters that do not become active at the start of the epoch. (5) rtpEgTool DEFVAL comment no longer refers to RTCP SDES. (6) The interarrival jitter estimator was added to the rtpInEntry and the rtpRREntry. (7) rtpInPackets added to count the total number of RTP data packets that are received. (8) rtpSessionIfIndex changed to 'read-create.' (9) A potential problem of the duplicate counting of rtpSessionSenders and rtpSessionReceivers is mentioned in their DESCRIPTION clauses. (10) rtpRREntry's last two indexes are reversed with rtpSRSSRC appear- ing before rtpRRSSRC to permit tree walks organized by sender. (11) DisplayString is used in place of OCTET STRING for CNAME's and Tool names. (12) Unsigned32 used for SSRC's in place of INTEGER. (13) OID values are renumbered for rtpIS, rtpISGlobals, rtpSRTable, rtpRRTable, rtpRRFracLost and subsequent columns of rtpRREntry. Baugher, Du, Naudus Expires May 18, 1998 [Page 2] Internet Draft RTP MIB November 18, 1997 2. Abstract This memo defines an experimental Management Information Base (MIB) for use with network management protocols in TCP/IP-based internets. In particular, it defines objects for managing Real-Time Transport Protocol systems [1]. Comments should be made to the IETF Audio/Video Transport Working Group at rem-conf@es.net. This memo does not specify a standard for the Internet community. 3. The Network Management Framework The SNMPv2 Network Management Framework consists of the following major components: RFC 1902 which defines the SMI, the mechanisms used for describing and naming objects for the purpose of management. RFC 1903 Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2). RFC 1904 Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2). RFC 1905 Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2). RFC 1906 Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2). RFC 1907 Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2). RFC 1908 Coexistence between Version 1 and Version 2 of the Internet-standard Network Management Framework. The Framework permits new objects to be defined for the purpose of experimentation and evaluation. Baugher, Du, Naudus Expires May 18, 1998 [Page 3] Internet Draft RTP MIB November 18, 1997 Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Within a given MIB module, objects are defined using the SMI's OBJECT-TYPE macro[2]. At a minimum, each object has a name, a syntax, an access-level, and an implementation-status. The name is an object identifier, an administratively assigned name, which specifies an object type. The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, termed the object descriptor, to also refer to the object type. The syntax of an object type defines the abstract data structure corresponding to that object type. The ASN.1[3] language is used for this purpose. However, RFC 1902 purposely restricts the ASN.1 constructs which may be used. These restrictions are made for simplicity. The access-level of an object type defines whether it makes "protocol sense" to read and/or write the value of an instance of the object type. (This access-level is independent of any administrative authorization policy.) The implementation-status of an object type indicates whether the object is mandatory, optional, obsolete, or deprecated. 4. Overview An "RTP System" may be a host end-system that runs an application program that sends or receives RTP data packets, or it may be an intermediate-system that forwards RTP packets. RTP Control Protocol (RTCP) packets are sent by senders and receivers to convey information about RTP packet transmission and reception [1]. 4.1 Textual Conventions A new data type, InterfaceIndex, is introduced as a textual convention in this MIB document. Textual conventions enhance the readability of the specification and can ease comparison with other specifications if appropriate. It should be noted that the introduction of the textual conventions has no effect on either the syntax nor the semantics of any managed objects. The use of these is merely an artifact of the explanatory method used. Objects defined in terms of one of these methods are always encoded by means of the rules that define the primitive type. Hence, no changes to the SMI or the SNMP are necessary to accommodate these textual conventions which are adopted merely for the convenience of readers and writers. Baugher, Du, Naudus Expires May 18, 1998 [Page 4] Internet Draft RTP MIB November 18, 1997 4.2 Components The RTP MIB is structured around "Session," "Receiver" and "Sender" conceptual abstractions. 4.2.1 An "RTP Session" is the "...association of participants communicating with RTP. For each participant, the session is defined by a particular pair of destination transport addresses (one network address plus a port pair for RTP and RTCP). The destination transport addresses may be common for all participants, as in the case of IP multicast, or may be different for each, as in the case of individual unicast addresses plus a common port pair," as defined in section 3 of [1]. 4.2.2 A "Sender" is identified by a 32-bit numeric "Synchronization Source," or "SSRC", value and is "...the source of a stream of RTP packets" as defined in section 3 of [1]. The Sender is also a source of RTCP Sender Report packets as specified in section 6 of [1]. 4.2.3 A "Receiver" of a "stream of RTP packets" can be a unicast or multicast Receiver as described in 4.2.1, above. An RTP Receiver has an SSRC value that is unique to the session. An RTP Receiver is a source of RTCP Receiver Reports as specified in section 6 of [1]. 4.3 Applicability of the MIB to RTP System Implementations The RTP MIB may be used in two types of RTP implementations, RTP Host Systems (end systems) and RTP Monitors, see section 3 of [1]. Use of the RTP MIB for RTP Translators and Mixers, as defined in section 7 of [1], is for further study. 4.3.1 RTP Host Systems are end-systems that may use the RTP MIB to collect RTP Session and Stream data; these data may be used by a network manager to diagnose faults that occur over the life time of an RTP Session as in a "help-desk" scenario. 4.3.2 RTP Monitors of multicast RTP sessions may be located in an RTP intermediate-system or in the host. RTP Monitors may use the RTP MIB to collect RTP Session and Stream statistical data; these data may be used by a network manager for capacity planning and other network-management purposes. An RTP Monitor may also use the RTP MIB to collect data to permit a network manager to diagnose faults in RTP sessions, or to permit a network manger to configure the Monitor. Baugher, Du, Naudus Expires May 18, 1998 [Page 5] Internet Draft RTP MIB November 18, 1997 4.4 The Structure of the RTP MIB There are two modules in the RTP MIB: The RTP-SYSTEM module is used for RTP Host Systems, and the RTP-IS module is designed for RTP Monitors. There are two tables in RTP-SYSTEM and three tables in RTP-IS. RTP-SYSTEM Tables: rtpInTable rtpEgTable These tables contain information about RTP Streams that an RTP end system is sending (rtpEgTable) or receiving (rtpInTable). These tables are not intended for use by RTP Monitors. rtpInTable and rtpEgTable do not contain objects which are creatable nor writable by a network manager. The rtpSessionTable in RTP-IS permits conceptual rows to be created by a network manager for the purpose of identifying RTP sessions to be monitored. RTP-IS Tables: rtpSessionTable rtpSRTable rtpRRTable rtpSessionNewIndex is a global object that permits a network-management application to obtain a unique index for conceptual row creation in the rtpSessionTable. In this way the SNMP Set operation may be used to configure a monitor which implements RTP-IS. 4.5 SNMP Implementations An RTP System that runs either a single application or multiple applications with a single management-entity may be a practical configuration for monitoring, translating or mixing. Host end- -systems are the vast majority of RTP implementations, however, and a "monolithic" solution may be inadequate if management of RTP end-systems proves to be truly useful. The RTP-SYSTEM module described in 4.4 contains tables that may be shared among RTP application programs that run concurrently on the same device - as many or most do. Sharing occurs on a table basis, and this may be complicated on some host systems. Rows in the RTP MIB tables, however, are uniquely identified by RTP Session and SSRC pairs (or a pair of SSRCs for RTP Receivers). If the RTP Session and SSRC values are unique to the RTP application program, then conceptual rows do not need to be shared. Baugher, Du, Naudus Expires May 18, 1998 [Page 6] Internet Draft RTP MIB November 18, 1997 Table sharing may be a problem for SNMP management entities on some host operting systems: All SNMP management requests are sent to UDP Port 161, and an Application Programming Interface (API) is needed to facilitate this sharing. The API is specific to the host operating system, and there are solutions provided by host operating system vendors and by independent software vendors. There is also a standardization effort within the IETF to at least define a standard system-interface protocol that may be implemented in an API to permit multiple management entities to share the object name space[4]. Whether or not independent RTP application programs can cooperatively and concurrently support the RTP MIB is outside the scope of this draft document and will differ depending on the operating system in question. Baugher, Du, Naudus Expires May 18, 1998 [Page 7] Internet Draft RTP MIB November 18, 1997 5. Definitions RTP-SYSTEM DEFINITIONS ::= BEGIN IMPORTS Counter32, Gauge32, experimental, Integer32, IpAddress, MODULE-IDENTITY, OBJECT-IDENTITY, OBJECT-TYPE, TimeTicks, Unsigned32 FROM SNMPv2-SMI DisplayString, TAddress, TDomain, TEXTUAL-CONVENTION, TimeStamp FROM SNMPv2-TC OBJECT-GROUP, MODULE-COMPLIANCE FROM SNMPv2-CONF; rtpSystem MODULE-IDENTITY LAST-UPDATED "9711112000Z" ORGANIZATION "IETF AVT Working Group" CONTACT-INFO "Mark Baugher Postal: Intel Corporation 2111 NE 25th Avenue Hillsboro, OR 97124 United States Tel: +1 503 264 3849 Email: mbaugher@intel.com John Du Postal: Intel Corporation 2111 NE 25th Avenue Hillsboro, OR 97124 United States Tel: +1 503 264 0636 Email: John_Du@ccm.jf.intel.com Stan Naudus Postal: 3Com Corporation 2070 Chain Bridge Road Vienna, VA United States Tel: +1 703 848 7710 Email: snaudus@usrva.com" DESCRIPTION "The MIB module that describes managed objects of general use by RTP Host Systems. The MIB is structured around two types of information. 1. Information about RTP streams being sent to an RTP Session by a particular source. 2. Information about RTP streams received on an RTP Session by a particular receiver. Refer to 'RTP: A Transport Protocol for Real-Time Applications,' section 3.0, for definitions." ::= { experimental 77 1 } Baugher, Du, Naudus Expires May 18, 1998 [Page 8] Internet Draft RTP MIB November 18, 1997 rtp OBJECT-IDENTITY STATUS current DESCRIPTION "The root of RTP Object-identifiers." ::= { experimental 77 } InterfaceIndex ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "The range of ifIndex." SYNTAX Integer32 -- -- OBJECTS -- rtpGlobals OBJECT IDENTIFIER ::= { rtp 2 } rtpDomains OBJECT IDENTIFIER ::= { rtpGlobals 1 } rtpUDPDomain OBJECT-IDENTITY STATUS current DESCRIPTION "RTP over UDP transport domain over IPv4. This definition uses the transport address type, snmpUDPAddress, which is defined in SNMPv2-TM, 'Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)'." REFERENCE "RFC 1906, p. 3" ::= { rtpDomains 1 } -- Stream Tables: -- Egress Streams are sent by an RTP System to an RTP Session. -- Ingress Streams are received on a session by some RTP System. -- -- -- EGRESS STREAMS TABLE -- rtpEgTable OBJECT-TYPE SYNTAX SEQUENCE OF RtpEgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The rtpEgTable contains state, statistics, and attribute information about a stream being sent by an RTP sender that is local to the RTP System and which is uniquely identified in the RTP Session by a synchronization source (SSRC) value ('RTP: A Transport Protocol for Real-Time Applications, 3'). There is a conceptual row for each stream being sent by the local RTP System." ::= { rtpSystem 1 } Baugher, Du, Naudus Expires May 18, 1998 [Page 9] Internet Draft RTP MIB November 18, 1997 rtpEgEntry OBJECT-TYPE SYNTAX RtpEgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An rtpEgEntry contains information about one stream that's being sent by a sender on the local RTP Host System. Although some object definitions in rtpEgEntry also appear in certain RTCP messages, the values retrieved by the SNMP entity are current values and not values taken from the last RTCP message that was sent. Table rows cannot be created nor deleted via SNMP operations." INDEX { rtpEgIndex } ::= { rtpEgTable 1 } RtpEgEntry ::= SEQUENCE { rtpEgIndex Integer32, rtpEgDstAddr TAddress, rtpEgSSRC Unsigned32, rtpEgCNAME DisplayString, rtpEgPT INTEGER, rtpEgSentPackets Counter32, rtpEgSentOctets Counter32, rtpEgTool DisplayString, rtpEgLastSR TimeTicks, rtpEgDomain TDomain, rtpEgSrcAddr TAddress, rtpEgStartTime TimeStamp, rtpEgIfIndex InterfaceIndex, rtpEgIfAddr IpAddress } rtpEgIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The number of this stream. This is for SNMP Indexing purposes only and has no relation to any protocol value." ::= { rtpEgEntry 1 } Baugher, Du, Naudus Expires May 18, 1998 [Page 10] Internet Draft RTP MIB November 18, 1997 rtpEgDstAddr OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The destination transport service address to which the stream of RTP data packets is being sent. The trasport-service is identified by rtpEgDomain. For rtpUDPDomain, this is an IP address and a even-numbered UDP Port with RTCP packets being sent on the next higher odd-numbered port, according to 'RTP: A Transport Protocol for Real-Time Application' section 10." ::= { rtpEgEntry 2 } rtpEgSSRC OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The RTP SSRC, or synchronization source identifier, of the sender. The RTP Session Address plus an SSRC uniquely identify a sender or receiver of an RTP stream (see 'RTP: A Transport Protocol for Real-Time Applications' sec.3)." ::= { rtpEgEntry 3 } rtpEgCNAME OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The RTP canonical name of the sender." ::= { rtpEgEntry 4 } rtpEgPT OBJECT-TYPE SYNTAX INTEGER (0..127) MAX-ACCESS read-only STATUS current DESCRIPTION "Static or dynamic Payload Type from the RTP header." ::= { rtpEgEntry 5 } rtpEgSentPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Count of RTP packets sent by this sender since the start of the stream at rtpEgStartTime." ::= { rtpEgEntry 6 } Baugher, Du, Naudus Expires May 18, 1998 [Page 11] Internet Draft RTP MIB November 18, 1997 rtpEgSentOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Count of octets sent by this sender since the start of the stream at rtpEgStartTime." ::= { rtpEgEntry 7 } rtpEgTool OBJECT-TYPE SYNTAX DisplayString (SIZE(0..127)) MAX-ACCESS read-only STATUS current DESCRIPTION "Name of the application program source of the stream." DEFVAL { ''H } -- Null if not identified to mgt entity ::= { rtpEgEntry 8 } rtpEgLastSR OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The elapsed time since the most recent RTCP Sender Report was sent for this stream in 0.01 seconds." ::= { rtpEgEntry 9 } rtpEgDomain OBJECT-TYPE SYNTAX TDomain MAX-ACCESS read-only STATUS current DESCRIPTION "The transport-layer protocol used for sending the stream of RTP data packets from this source." DEFVAL { rtpUDPDomain } ::= { rtpEgEntry 10 } rtpEgSrcAddr OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The transport service address from which the stream of RTP data packets is being sent. For rtpUDPDomain, this is an IP address and an even- numbered UDP port, see 'RTP: A Transport Protocol for Real-Time Applications,' section 10." ::= { rtpEgEntry 11 } Baugher, Du, Naudus Expires May 18, 1998 [Page 12] Internet Draft RTP MIB November 18, 1997 rtpEgStartTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of SysUpTime when this row was created." ::= { rtpEgEntry 12 } rtpEgIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-only STATUS current DESCRIPTION "The ifIndex value is zero for interfaces that have an IP address defined for the interface on which RTP data packets are being sent for this stream. Otherwise this object is set to the corresponding value from the Internet Standard MIB." ::= { rtpEgEntry 13 } rtpEgIfAddr OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The IP Address of the interface on which the stream of RTP data packets is being sent for interfaces that have an IP Address and set to 0.0.0.0 when rtpEgIfIndex is non zero." ::= { rtpEgEntry 14 } -- -- INGRESS STREAMS TABLE -- rtpInTable OBJECT-TYPE SYNTAX SEQUENCE OF RtpInEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Data in the rtpInTable identify the stream and session, state and statistics, and include information needed by an RTP receiver to detect loops. This table will at least contain a row for each stream being received (ingress stream) by some SSRC on the local RTP System. (see 'RTP: A Transport Protocol for Real-Time Applications' sec. 3 and 8)." ::= { rtpSystem 2 } Baugher, Du, Naudus Expires May 18, 1998 [Page 13] Internet Draft RTP MIB November 18, 1997 rtpInEntry OBJECT-TYPE SYNTAX RtpInEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An rtpInTable entry uniquely identifies an RTP Data Stream received by the rtpInDstAddr, rtpInReceiverSSRC and rtpInSenderSSRC. There is an rtpInEntry for each stream received by the local RTP System. Although some object definitions also appear in RTCP messages, the values retrieved by the management entity are the current values rather than the values used in the previous RTCP messages that was sent. Table rows cannot be created nor deleted via SNMP operations." INDEX { rtpInIndex } ::= { rtpInTable 1 } RtpInEntry ::= SEQUENCE { rtpInIndex Integer32, rtpInDstAddr TAddress, rtpInReceiverSSRC Unsigned32, rtpInSenderSSRC Unsigned32, rtpInSenderCNAME DisplayString, rtpInPT INTEGER, rtpInSenderAddr TAddress, rtpInPackets Counter32, rtpInLostPackets Counter32, rtpInOctets Counter32, rtpInJitter Gauge32, rtpInTool DisplayString, rtpInLastRR TimeTicks, rtpInDomain TDomain, rtpInSrcAddr TAddress, rtpInStartTime TimeStamp, rtpInIfIndex InterfaceIndex, rtpInIfAddr IpAddress } rtpInIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The number of this stream. This is for SNMP indexing purposes only and has no relation to any protocol value." ::= { rtpInEntry 1 } Baugher, Du, Naudus Expires May 18, 1998 [Page 14] Internet Draft RTP MIB November 18, 1997 rtpInDstAddr OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The destination transport service address on which the stream of RTP data packets is being received. For rtpUDPDomain, this is an IP address and a even-numbered UDP Port with the RTCP being sent and received on the next higher odd-numbered port, see 'RTP: A Transport Protocol for Real-Time Application', 10.0." ::= { rtpInEntry 2 } rtpInReceiverSSRC OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The RTP SSRC, or synchronization source identifier, of the receiver. The RTP Session Address plus an SSRC uniquely identify a sender or receiver of an RTP stream (see 'RTP: A Transport Protocol for Real-Time Applications' sec.3)." ::= { rtpInEntry 3 } rtpInSenderSSRC OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The RTP SSRC, or synchronization source identifier, of the sender. The RTP Session Address plus an SSRC uniquely identify a sender or receiver of an RTP stream (see 'RTP: A Transport Protocol for Real-Time Applications' sec.3)." ::= { rtpInEntry 4 } rtpInPT OBJECT-TYPE SYNTAX INTEGER(0..127) MAX-ACCESS read-only STATUS current DESCRIPTION "The RTP Payload Type of the RTP data stream." ::= { rtpInEntry 5 } Baugher, Du, Naudus Expires May 18, 1998 [Page 15] Internet Draft RTP MIB November 18, 1997 rtpInSenderCNAME OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The RTP canonical name of the sender." ::= { rtpInEntry 6 } rtpInSenderAddr OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The sender's transport address of the RTP data." ::= { rtpInEntry 7 } rtpInPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "A count of total packets sent since the start of the stream at rtpInStartTime. See 'RTP: A Transport Protocol for Real- Time Applications', sec. 6.3." ::= { rtpInEntry 8 } rtpInLostPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "A count from the RTCP RR of lost packets since the start of the stream at rtpInStartTime." ::= { rtpInEntry 9 } rtpInOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "A count by the SNMP entity of bytes received from the ingress stream since the start of stream at rtpInStartTime." ::= { rtpInEntry 10 } Baugher, Du, Naudus Expires May 18, 1998 [Page 16] Internet Draft RTP MIB November 18, 1997 rtpInJitter OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "An estimate by the SNMP entity of current delay variation of packets from the ingress stream (see 'RTP: A Transport Protocol for Real-Time Applications,' sec. 6.3.1)." ::= { rtpInEntry 11 } rtpInTool OBJECT-TYPE SYNTAX DisplayString (SIZE(0..127)) MAX-ACCESS read-only STATUS current DESCRIPTION "The RTCP SDES item identifying the tool used to receive the ingress stream." DEFVAL { ''H } -- Null if not identified to mgt entity ::= { rtpInEntry 12 } rtpInLastRR OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The elapsed time since the most recent RTCP Receiver Report was sent for the ingress stream in 0.01 seconds." ::= { rtpInEntry 13 } rtpInDomain OBJECT-TYPE SYNTAX TDomain MAX-ACCESS read-only STATUS current DESCRIPTION "The transport-layer protocol used for receiving the stream of RTP data packets from this source." DEFVAL { rtpUDPDomain } ::= { rtpInEntry 14 } Baugher, Du, Naudus Expires May 18, 1998 [Page 17] Internet Draft RTP MIB November 18, 1997 rtpInSrcAddr OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The transport service address from which the stream of RTCP data packets is being sent. For rtpUDPDomain, this is an IP address and a UDP port." ::= { rtpInEntry 15 } rtpInStartTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of SysUpTime when this row was created." ::= { rtpInEntry 16 } rtpInIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-only STATUS current DESCRIPTION "The ifIndex value is zero for interfaces that have an IP address defined for the interface on which RTP data packets are being received for this stream. Otherwise this object is set to the corresponding value from the Internet Standard MIB." ::= { rtpInEntry 17 } rtpInIfAddr OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The IP Address of the interface on which the RTP data packets are being received for interfaces that have an IP Address. The value is 0.0.0.0 when rtpInIfIndex is non zero." ::= { rtpInEntry 18 } Baugher, Du, Naudus Expires May 18, 1998 [Page 18] Internet Draft RTP MIB November 18, 1997 -- -- GROUPS -- rtpSystemGroup OBJECT-GROUP OBJECTS { rtpEgDstAddr, rtpEgSSRC, rtpEgCNAME, rtpEgPT, rtpEgSentPackets, rtpEgSentOctets, rtpEgTool, rtpEgLastSR, rtpEgDomain, rtpEgSrcAddr, rtpEgStartTime, rtpEgIfIndex, rtpEgIfAddr, rtpInDstAddr, rtpInSenderSSRC, rtpInReceiverSSRC, rtpInSenderCNAME, rtpInPT, rtpInSenderAddr, rtpInPackets, rtpInLostPackets, rtpInOctets, rtpInJitter, rtpInTool, rtpInLastRR, rtpInDomain, rtpInSrcAddr, rtpInStartTime, rtpInIfIndex, rtpInIfAddr } STATUS current DESCRIPTION "Accessible objects used to define RTP Streams that are being sent or received by an RTP Host System." ::= { rtpSystem 9 } Baugher, Du, Naudus Expires May 18, 1998 [Page 19] Internet Draft RTP MIB November 18, 1997 rtpSystemCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SNMP entities that implement RTP. All accessible objects are read only." MODULE RTP-SYSTEM MANDATORY-GROUPS { rtpSystemGroup } ::= { rtpSystem 10 } END -- ****** -- RTP-IS -- ****** RTP-IS DEFINITIONS ::= BEGIN IMPORTS Counter32, Gauge32, IpAddress, Integer32, MODULE-IDENTITY, OBJECT-TYPE, TimeTicks, Unsigned32 FROM SNMPv2-SMI RowStatus, TAddress, TDomain, DisplayString, TestAndIncr, TimeStamp FROM SNMPv2-TC OBJECT-GROUP, MODULE-COMPLIANCE FROM SNMPv2-CONF InterfaceIndex, rtp, rtpUDPDomain FROM RTP-SYSTEM; rtpIS MODULE-IDENTITY LAST-UPDATED "9711111800Z" ORGANIZATION "IETF AVT Working Group." CONTACT-INFO " Mark Baugher Postal: Intel Corporation 2111 NE 25th Avenue Hillsboro, OR 97124 Tel: +1 503 264 3849 Email: mbaugher@intel.com" DESCRIPTION "The MIB module for use by Real-Time Transport Protocol multicast monitors." ::= { rtp 3 } rtpISGlobals OBJECT IDENTIFIER ::= { rtp 4 } Baugher, Du, Naudus Expires May 18, 1998 [Page 20] Internet Draft RTP MIB November 18, 1997 -- -- SESSION TABLE -- rtpSessionNewIndex OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "This object is used to assign values to rtpSessionIndex as described in 'Textual Con- ventions for SNMPv2'. The network manager reads the object, and then writes the value back in the SET that creates a new instance of rtpSessionEntry. If the SET fails with the code inconsistentValue, then the process must be repeated; If the SET succeeds, then the ob- ject is incremented, and the new instance is created according to the managers directions." ::= { rtpISGlobals 1 } rtpSessionTable OBJECT-TYPE SYNTAX SEQUENCE OF RtpSessionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "There's one entry in the SessionTable for each Session that is being monitored. Row creation has the side effect of causing the RTP System to join the session for the purposes of gathering management information." ::= { rtpIS 1 } rtpSessionEntry OBJECT-TYPE SYNTAX RtpSessionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Data in rtpSessionTable uniquely identify an RTP Session. Rows of the rtpSessionTable can be created and deleted via SNMP operations." INDEX { rtpSessionIndex } ::= { rtpSessionTable 1 } Baugher, Du, Naudus Expires May 18, 1998 [Page 21] Internet Draft RTP MIB November 18, 1997 RtpSessionEntry ::= SEQUENCE { rtpSessionIndex Integer32, rtpSessionDomain TDomain, rtpSessionAddr TAddress, rtpSessionIfIndex InterfaceIndex, rtpSessionIfAddr IpAddress, rtpSessionSenders Counter32, rtpSessionReceivers Counter32, rtpSessionStartTime TimeStamp, rtpSessionRowStatus RowStatus } rtpSessionIndex OBJECT-TYPE SYNTAX Integer32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index of the conceptual row which is for SNMP purposes only and has no relation to any protocol value." ::= { rtpSessionEntry 1} rtpSessionDomain OBJECT-TYPE SYNTAX TDomain MAX-ACCESS read-create STATUS current DESCRIPTION "The transport-layer protocol used for sending the stream of RTP data packets from this source. Cannot be changed after rtpSessionRowStatus is 'active'." DEFVAL { rtpUDPDomain } ::= { rtpSessionEntry 2 } rtpSessionAddr OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The destination transport service address to which the stream of RTP data packets is being sent and received. The transport-service is identified by rtpSessionDomain. For rtpUDPDomain, this is an IP address and an even-numbered UDP Port with the RTCP being sent on the next higher odd-numbered port, see 'RTP: A Transport Protocol for Real-Time Application,' 10. Cannot be changed after rtpSessionRowStatus is 'active'." ::= { rtpSessionEntry 3 } Baugher, Du, Naudus Expires May 18, 1998 [Page 22] Internet Draft RTP MIB November 18, 1997 rtpSessionIfIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "The ifIndex value is zero for interfaces that have an IP address defined for the interface on which RTP data packets are received for this session. Otherwise this object is set to the corresponding value from the Internet Standard MIB. Cannot be changed after rtpSessionRowStatus is 'active'." ::= { rtpSessionEntry 4 } rtpSessionIfAddr OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The IP Address of the interface on which the monitored stream of RTP data packets is being received for interfaces that have an IP Address. If rtpSessionIfIndex is non-zero, then this object should have the value 0.0.0.0. Cannot be changed after rtpSessionRowStatus has become 'active'." ::= { rtpSessionEntry 5 } rtpSessionSenders OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The high-water mark of the number of senders observed by the monitor since this conceptual row was created (rtpSessionStartTime). Senders that leave and then re-join following an RTCP BYE or session timeout may be counted multiple times." ::= { rtpSessionEntry 6 } rtpSessionReceivers OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The high-water mark of the number of receivers that are observed by the monitor since this conceptual row was created (rtpSessionStartTime). Receivers that leave and then re-join following an RTCP BYE or session timeout may be counted multiple times." ::= { rtpSessionEntry 7 } Baugher, Du, Naudus Expires May 18, 1998 [Page 23] Internet Draft RTP MIB November 18, 1997 rtpSessionStartTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of SysUpTime at the time that this row was created." ::= { rtpSessionEntry 8 } rtpSessionRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Value of 'active' when when RTCP messages are being received by a local RTP Monitor System. A manager-created conceptual row must have the rtpSessionAddr initialized by the manager before becoming 'active', and it must have the rtpSessionIf or the rtpSessionIfAddr initialized by the manager before becoming active. A conceptual row that is in the 'notReady' or 'notInService' state may be removed after 5 minutes." ::= { rtpSessionEntry 9 } -- -- SENDERS TABLE -- rtpSRTable OBJECT-TYPE SYNTAX SEQUENCE OF RtpSREntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of RTP Monitor information about senders to an RTP Session. Entries are created as a side-effect by the SNMP entity when a conceptual row in the rtpSessionTable becomes 'active'." ::= { rtpIS 2 } Baugher, Du, Naudus Expires May 18, 1998 [Page 24] Internet Draft RTP MIB November 18, 1997 rtpSREntry OBJECT-TYPE SYNTAX RtpSREntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry contains monitoring information from a single RTP Synchronization Source (SSRC) taken from RTCP Sender Report (SR) messages sent by the senders to an RTP Session (see 'RTP: A Transport Protocol for Real-Time Applications' sec.6). The session is identified to the the SNMP entity by rtpSessionIndex." INDEX { rtpSessionIndex, rtpSRSSRC } ::= { rtpSRTable 1 } RtpSREntry ::= SEQUENCE { rtpSRSSRC Unsigned32, rtpSRCNAME DisplayString, rtpSRSentPackets Counter32, rtpSRSentOctets Counter32, rtpSRTool DisplayString, rtpSRs Counter32, rtpSRLastSR TimeTicks } rtpSRSSRC OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "The RTP SSRC, or synchronization source identifier, of the sender. The RTP Session Address plus an SSRC uniquely identify a sender or receiver of an RTP stream (see 'RTP: A Transport Protocol for Real-Time Applications' sec.3)." ::= { rtpSREntry 1 } rtpSRCNAME OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The RTP canonical name of the sender." ::= { rtpSREntry 2 } Baugher, Du, Naudus Expires May 18, 1998 [Page 25] Internet Draft RTP MIB November 18, 1997 rtpSRSentPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Count of RTP packets sent by this sender since row creation as recorded in rtpSessionStartTime." ::= { rtpSREntry 3 } rtpSRSentOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Count of octets sent by this sender since row creation as recorded in rtpSessionStartTime." ::= { rtpSREntry 4 } rtpSRTool OBJECT-TYPE SYNTAX DisplayString (SIZE(0..127)) MAX-ACCESS read-only STATUS current DESCRIPTION "Name of the application program source of the stream." DEFVAL { ''H } -- Null if not received in RTCP SDES ::= { rtpSREntry 5 } rtpSRs OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "A count of the number of RTCP Sender Reports that have been received from this source since row creation as recorded in rtpSessionStartTime." ::= { rtpSREntry 6 } rtpSRLastSR OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The elapsed time, in units of hundredths of a second, since the last RTCP Sender Report was received from this sender." ::= { rtpSREntry 7 } Baugher, Du, Naudus Expires May 18, 1998 [Page 26] Internet Draft RTP MIB November 18, 1997 -- -- RECEIVERS TABLE -- rtpRRTable OBJECT-TYPE SYNTAX SEQUENCE OF RtpRREntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of RTP Monitor information. Entries are created as a side-effect by the SNMP entity when a conceptual row in the rtpSessionTable becomes 'active'." ::= { rtpIS 3 } rtpRREntry OBJECT-TYPE SYNTAX RtpRREntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry contains monitoring information from a single RTP Synchronization Source (SSRC) taken from RTCP Receiver Report (RR) messages sent by the receivers of an RTP Session (see 'RTP: A Transport Protocol for Real-Time Applications', 3.0) The session is identified to the the SNMP entity by rtpSessionIndex." INDEX { rtpSessionIndex, rtpSRSSRC, rtpRRSSRC } ::= { rtpRRTable 1 } RtpRREntry ::= SEQUENCE { rtpRRSSRC Unsigned32, rtpRRCNAME DisplayString, rtpRRAddr TAddress, rtpRRFracLost Gauge32, rtpRRRTT Gauge32, rtpRRLostPackets Counter32, rtpRRJitter Gauge32, rtpRRs Counter32, rtpRRTool DisplayString, rtpRRLastRR TimeTicks } Baugher, Du, Naudus Expires May 18, 1998 [Page 27] Internet Draft RTP MIB November 18, 1997 rtpRRSSRC OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "The RTP SSRC, or synchronization source identifier, of the receiver. The RTP Session Address plus an SSRC uniquely identify a sender or receiver of an RTP stream (see 'RTP: A Transport Protocol for Real-Time Applications' sec.3)." ::= { rtpRREntry 1 } rtpRRCNAME OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The RTP canonical name of the source of the RR." ::= { rtpRREntry 2 } rtpRRAddr OBJECT-TYPE SYNTAX TAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The unicast transport-service address of the source of the RR." ::= { rtpRREntry 3 } rtpRRFracLost OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The fraction of packets lost over the time as reported by the most recent RTCP RR." ::= { rtpRREntry 4 } Baugher, Du, Naudus Expires May 18, 1998 [Page 28] Internet Draft RTP MIB November 18, 1997 rtpRRRTT OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The round trip time measurement taken by the source of the RTP stream based on the algorithm described in sec. 6.3.1 of 'RTP: A Transport Protocol for Real-Time Applications.' This algorithm can produce meaningful results when the monitor has the same clock as the stream sender. In all other cases the entity should return 'noSuchInstance' in response to queries against rtpRRRTT." ::= { rtpRREntry 5 } rtpRRLostPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "A count from the most recent RTCP Receiver Report of lost packets." ::= { rtpRREntry 6 } rtpRRJitter OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "An estimate by the SNMP entity of current delay variation of packets from the ingress stream (see 'RTP: A Transport Protocol for Real-Time Applications,' sec. 6.3.1)." ::= { rtpRREntry 7 } rtpRRTool OBJECT-TYPE SYNTAX DisplayString (SIZE(0..127)) MAX-ACCESS read-only STATUS current DESCRIPTION "Name of the application program source of the stream." DEFVAL { ''H } -- Null if not received in RTCP SDES ::= { rtpRREntry 8 } Baugher, Du, Naudus Expires May 18, 1998 [Page 29] Internet Draft RTP MIB November 18, 1997 rtpRRs OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "A count of Receiver Reports that have been received from this particular receiver since row creation (rtpSessionStartTime)." ::= { rtpRREntry 9 } rtpRRLastRR OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The elapsed time since the most recent RTCP Receiver Report was received from this receiver, expressed in units of hundredths of a second." ::= { rtpRREntry 10 } Baugher, Du, Naudus Expires May 18, 1998 [Page 30] Internet Draft RTP MIB November 18, 1997 -- -- MODULE GROUPS -- rtpISGroup OBJECT-GROUP OBJECTS { rtpSessionNewIndex, rtpSessionAddr, rtpSessionDomain, rtpSessionIfAddr, rtpSessionIfIndex, rtpSessionSenders, rtpSessionReceivers, rtpSessionStartTime, rtpSessionRowStatus, rtpRRCNAME, rtpRRAddr, rtpRRFracLost, rtpRRRTT, rtpRRLostPackets, rtpRRJitter, rtpRRTool, rtpRRs, rtpRRLastRR, rtpSRCNAME, rtpSRSentPackets, rtpSRSentOctets, rtpSRTool, rtpSRs, rtpSRLastSR } STATUS current DESCRIPTION "Accessible objects used to define RTP sessions." ::= { rtpIS 9 } rtpISCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SNMP entities that implement an RTP monitor." MODULE RTP-IS MANDATORY-GROUPS { rtpISGroup } ::= { rtpIS 10 } END Baugher, Du, Naudus Expires May 18, 1998 [Page 31] Internet Draft RTP MIB November 18, 1997 6. Security Issues In most cases, MIBs are not themselves security risks; if SNMP security is operating as intended, the use of a MIB to view information about a system, or to change some parameter at the system, is a tool, not a threat. None of the read-only objects in this MIB reports a password, though some SDES items such as the CNAME, the canonical name, may be deemed sensitive depending on the particular security policies of a particular enterprise. If access to these objects is not limited by an appropriate access control policy, these objects can provide an attacker with information about a system's configuration and the services that that system is providing. Some enterprises view their network and system configurations themselves, as well as information about usage and performance, as corporate assets; such enterprises may wish to restrict SNMP access to most of the objects in the MIB. This MIB supports read-write operations against rtpSessionNewIndex which has the side effect of creating an entry in the rtpSessionTable when it is written to. Three objects in rtpSessionEntry have read-create access: rtpSessionAddr, rtpSessionIfIndex and rtpSessionIfAddr identify an RTP Session to be monitored on a particular monitor interface. The values of these objects are not to be changed once created, and initialization of these objects affects only the monitoring of an RTP Session and not the operation of an RTP Session on any host end-system. Since write operations to rtpSessionNewIndex and the three objects in rtpSessionEntry affect the operation of the monitor, write access to these objects should be subject to the appropriate access control policy. Confidentiality of RTP and RTCP data packets is defined in section 9 of the RTP specification [1]. Encryption may be performed on RTP packets, RTCP packets, or both. Encryption of RTCP packets may pose a problem for third-party monitors though "For RTCP, it is allowed to split a compound RTCP packet into two lower-layer packets, one to be encrypted and one to be sent in the clear. For example, SDES information might be encrypted while reception reports were sent in the clear to accommodate third-party monitors [1]." 7. Acknowledgements Alan Batie, Bill Strahm and Lenitra Clay developed RTP monitors having SNMP interfaces on FreeBSD and Windows NT. Bill Strahm developed the SNMP interface to Intel's RTP implementation. Bill Lewis developed an RTP management application. Baugher, Du, Naudus Expires May 18, 1998 [Page 32] Internet Draft RTP MIB November 18, 1997 9. References [1] H. Shulzrinne, S. Casner, R. Frederick, and V. Jacobson, "RTP: A Transport Protocol for real-time applications," RFC 1889. [2] J. Case, K. McCloghrie, M. Rose, and S. Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1902, January, 1996. [3] Information processing systems -- Open Systems Interconnection -- Specification of Basic Encoding Rules for Abstract Notation One (ASN.1), International Organization for Standardization. International Standard 8825, (December, 1987). [4] M.Daniele, B. Wijnen, D. Francisco, "Agent Extensibility (AgentX) Protocol, Version 1", work in progress, , November, 1996. Baugher, Du, Naudus Expires May 18, 1998 [Page 33]