Internet Draft RTP MIB March 24, 1997 Real-Time Transport Protocol Management Information Base March 24, 1997 Mark Baugher Intel Corporation 2111 N.E.25th Avenue Hillsboro, Oregon 97124 mbaugher@ibeam.intel.com John Du Intel Corporation 2111 N.E.25th Avenue Hillsboro, Oregon 97124 John_Du@ccm.jf.intel.com Stan Naudus U.S. Robotics, Incorporated 2070 Chain Bridge Road Vienna, Virginia snaudus@usrva.co 1. 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 September 24, 1997 [Page 1] Internet Draft RTP MIB March 24, 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. 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. 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. Baugher, Du, Naudus Expires September 24, 1997 [Page 2] Internet Draft RTP MIB March 24, 1997 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" is an end-system or an intermediate-system that has one or more RTP Sessions with one or more RTP Data Streams. Each RTP Data Stream is either being transmitted or received by one RTP Session Participant. An RTP Control Stream (RTCP) which describes an RTP Data Stream that is being transmitted or received is sent on behalf of each Participant[1]. 4.1 Components There are four component objects of the RTP MIB. 4.1.1 An "RTP Session" is defined by an IP address and a pair of transport-layer port numbers, this is a "Session Address". There is one Session Address for a multicast session and two for unicast. 4.1.2 An "RTP Data Stream" is a sequence of packets sent to the even-numbered port of the RTP Session when UDP is used to transport the RTP data. Data streams are uniquely identified within an RTP Session by "SSRC" attributes. 4.1.3 An RTP "Participant" is either a source or a receiver of an RTP Data Stream, and has a session-unique "CNAME" attribute. Baugher, Du, Naudus Expires September 24, 1997 [Page 3] Internet Draft RTP MIB March 24, 1997 4.1.4 An "RTP Control Stream" is a sequence of packets sent by the sending host of an RTP Data Stream, or a sequence of packets sent by the receiving host of an RTP Data Stream that describe the RTP Data Stream attributes, state, and statistics. 4.2 Applicability of the MIB to RTP System Implementations The RTP MIB may be used in four types of RTP Systems [1]. 4.2.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 during or after the commencement of an RTP Session as in a "help-desk" scenario. 4.2.2 RTP 3rd-party Monitors of multicast RTP sessions are end-systems that 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. 4.2.3 RTP Translators are intermediate-systems that map RTP sessions onto other RTP sessions for such purposes as address translation and the transcoding of RTP session data. An RTP Translator may use the RTP MIB to collect session and stream data needed by a network manager to diagnose faults and monitor performance. 4.2.4 RTP Mixers are specialized Translators that multiplex RTP session data. The RTP MIB may be used to support management of a Mixer in ways similar to a Translator. 4.3 The Structure of the RTP MIB There are two modules in the RTP MIB: The RTP-SYSTEM module is used for all RTP Systems, but the RTP-IS module is designed for RTP Monitors and Intermediate Systems such as Translators and Mixers. There are two tables in RTP-SYSTEM and three tables in RTP-IS. RTP-SYSTEM Tables: rtpInTable rtpEgTable Baugher, Du, Naudus Expires September 24, 1997 [Page 4] Internet Draft RTP MIB March 24, 1997 The attribute, state and statistical information of the components described in section 4.1 compose the column objects of the tables. Since there are 1:N mappings between some of the components, a more structured and efficient representation would create separate tables for some of the components, such as a Session table, and this would make some streams table columns redundant (i.e., obtainable through a join). The two-table model is proposed here for the sake of simplicity in the management entity and management application. rtpEgTable is the egress streams table that will contain rows of information about streams being sent by an RTP System. The rtpInTable is the ingress streams table that will contain rows of information about streams being received by an RTP System. The rows are uniquely identified by the incoming session address, in the case of ingress streams, or the outgoing RTP session address in the egress streams case, Section 4.1.1, and by the SSRC information, Section 4.1.2. The information in the table includes the information from the RTCP reports, Section 4.1.4. The ingress streams table also contains information used for loop detection[1]. In a host, Translator or Mixer, a row is maintained in the rtpInTable for each RTP data stream that is being received, and a row is to be maintained in the rtpEgTable for each RTP data stream that is being sent. In a 3rd-party Monitor, the rtpEgTable contains management information about streams being sent to the session, and the rtpInTable contains information about streams being received for the session. A row is removed when the session inactive time exceeds the session timeout value[1], as a result of an RTCP BYE message being sent for the ingress or egress stream, or as a result of some higher-level protocol stopping stream or session operations. The rtpEgTable and the rtpInTable are read-only, though one RTP-IS table, the rtpSessionTable, does feature write access. RTP-IS Tables: rtpSessionTable rtpSessionIndexTable rtpSessionMapTable The RTP-IS tables maintain the list of RTP sessions, provide a means to obtain an index to each RTP session in the rtpSessionTable, and to support a trace of mapped sessions. The network manager has write access to the rtpSessionTable to create sessions for the purpose of monitoring. Baugher, Du, Naudus Expires September 24, 1997 [Page 5] Internet Draft RTP MIB March 24, 1997 4.4 SNMP Implementations Although 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, for host end-systems (i.e. the vast majority of RTP implementations), such a "monolithic" solution may be inadequate if management of RTP end-systems proves to be truly useful. The RTP-SYSTEM module described in 4.3 contains tables that may be shared among RTP application programs that run concurrently on the same device. Sharing occurs on a table basis, and this is a complication. Rows in the RTP MIB tables, however, probably do not need to be shared among multiple RTP application programs since each row is uniquely identified by RTP Session and SSRC pairs which are not shared among RTP application programs, or at least by a single RTP management entity by assumption. Table sharing, however, is a problem for SNMP management entities: All SNMP management requests are sent to UDP Port 161, and special procedures are generally needed for an SNMP Agent to support multiple management entities that share the object name space[4]. +------------------------+ +------------------------+ | +-----------------+| | +-----------------+| | | +----------+|| | | +----------+|| | APP | RTP | SUBAGENT ||| ... | APP | RTP | SUBAGENT ||| | | +----------+|| | | +----------+|| | +-----------------+| | +-----------------+| +------------------------+ +------------------------+ -- e.g., flavors of DPI[5], AgentX[6] -- +--------------------------+ | | | SNMP AGENT | | | +--------------------------+ -- UDP Port 161 -- Figure 1: Relationship of Application RTP Subagent to SNMP Agent Thus, some means are needed so that operations against RTP MIB objects in a shared name space can be properly routed and received by the SNMP Agent. Figure 1 shows multiple application programs having RTP embedded in them. Not shown is the management entity, which is assumed to be part of the RTP System. A "Subagent" may be embedded in Baugher, Du, Naudus Expires September 24, 1997 [Page 6] Internet Draft RTP MIB March 24, 1997 the application program, or linked to the application program's management entity in a variety of ways that are not of interest to this memo. A straightforward implementation would embed the subagent in the application program as shown in Figure 1. There is one Experimental approach, DPI[5], and some ongoing work, named "Agentx"[6], for supporting the structure shown in Figure 1. The agent extensions needed to support the RTP MIB in a general-purpose operating environment may be modest if the four assumptions listed below prove to be true. 4.4.1 The ingress and egress stream tables may be shared. Any RTP application program may have zero or more streams being sent and/or received, but stream-table rows are uniquely-identified by a combination of session and SSRC index values that are not shared across RTP management entities. 4.4.2 Since the ingress and egress stream tables are read-only, there are no requirements to support concurrent SNMP SET operations. 4.4.3 The session tables in RTP-IS in section 4.3, are not shared by multiple subagents by assumption. 4.4.4 There is no need to share table indices or support intra-subagent communication given the RTP-SYSTEM MIB described in sections 4.3 and defined in 5.0. 4.5 Proxy Implementations An "RTP management proxy" may map the RTP MIB onto other management systems: A variety of management systems beyond SNMP may be make use of the RTP MIB to support SNMP management queries. A relatively simple definition of the RTP MIB should make it relatively easier to implement on a variety of systems-management platforms. Baugher, Du, Naudus Expires September 24, 1997 [Page 7] Internet Draft RTP MIB March 24, 1997 5. RTP MIB Definitions 5.1 RTP-SYSTEM MODULE -- rtp.mi2 contains an experimental SMIv2 MIB for RTP (RFC 1889). -- rtp.mi2 has two modules -- 1. RTP-SYSTEM -- 2. RTP-IS -- -- ***************** -- RTP-SYSTEM MODULE -- ***************** RTP-SYSTEM DEFINITIONS ::= BEGIN IMPORTS Counter32, experimental, Gauge32,MODULE-IDENTITY, OBJECT-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI OBJECT-GROUP, MODULE-COMPLIANCE FROM SNMPv2-CONF; rtpSystem MODULE-IDENTITY LAST-UPDATED "9703241800Z" 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 that describes managed objects of general use by RTP Systems. This module has two tables of information about RTP streams. 1. A information table about RTP streams being sent to a session by a particular source. 2. A table of information about RTP streams received by a particular SSRC." ::= { experimental 9999 1 } rtp OBJECT-IDENTITY STATUS current DESCRIPTION "The root of RTP Object-identifiers." ::= { experimental 9999 } Baugher, Du, Naudus Expires September 24, 1997 [Page 8] Internet Draft RTP MIB March 24, 1997 -- -- OBJECTS -- -- Stream Tables: -- Egress streams are sourced by an RTP System to an RTP Session. -- Ingress Streams are received by an SSRC from an RTP Session. -- Egress and Ingress Streams have distinct state and attributes -- -- EGRESS STREAMS TABLE -- An RTP System sources zero or more Egress Streams to a Session -- rtpEgTable OBJECT-TYPE SYNTAX SEQUENCE OF RtpEgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Data in rtpEgTable are associated with an RTP data-stream that is sourced from an RTP System. This table will at least contain a row for each stream being sourced (egress stream) from the local RTP System." ::= { rtpSystem 1 } rtpEgEntry OBJECT-TYPE SYNTAX RtpEgEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Columnar objects include Egress Stream state, attributes and statistics from the RTP packet header, RTCP SR PDU, and RTCP SDES PDU. Table rows cannot be created nor deleted via SNMP operations." INDEX { rtpEgNetAddr, rtpEgPort, rtpEgSSRC } ::= { rtpEgTable 1 } RtpEgEntry ::= SEQUENCE { rtpEgNetAddr OCTET STRING (SIZE(4..16)), rtpEgPort INTEGER(1..65535), rtpEgSSRC INTEGER, rtpEgCNAME OCTET STRING, rtpEgPT INTEGER, rtpEgSentPackets Counter32, rtpEgSentOctets Counter32, rtpEgTool OCTET STRING, rtpEgInactiveTime Gauge32 } Baugher, Du, Naudus Expires September 24, 1997 [Page 9] Internet Draft RTP MIB March 24, 1997 rtpEgNetAddr OBJECT-TYPE SYNTAX OCTET STRING (SIZE(4..16)) MAX-ACCESS read-only STATUS current DESCRIPTION "Session destination network address attribute." ::= { rtpEgEntry 1} rtpEgPort OBJECT-TYPE SYNTAX INTEGER(1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Session destination transport address attribute." ::= { rtpEgEntry 2} rtpEgSSRC OBJECT-TYPE SYNTAX INTEGER(1..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "Attribute uniquely identifies the stream sender." ::= { rtpEgEntry 3} rtpEgCNAME OBJECT-TYPE SYNTAX OCTET STRING (SIZE(1..128)) MAX-ACCESS read-only STATUS current DESCRIPTION "Attribute uniquely identifies the SSRC participant" ::= { rtpEgEntry 4} rtpEgPT OBJECT-TYPE SYNTAX INTEGER (1..128) MAX-ACCESS read-only STATUS current DESCRIPTION "Static or dynamic Payload Type state variable from the RTP header." ::= { rtpEgEntry 5} Baugher, Du, Naudus Expires September 24, 1997 [Page 10] Internet Draft RTP MIB March 24, 1997 rtpEgSentPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Count statistic of packets sent from this SSRC." ::= { rtpEgEntry 6} rtpEgSentOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Count statistic of octets sent from this SSRC." ::= { rtpEgEntry 7 } rtpEgTool OBJECT-TYPE SYNTAX OCTET STRING (SIZE(1..128)) MAX-ACCESS read-only STATUS current DESCRIPTION "State variable names the tool sourcing the stream." ::= { rtpEgEntry 8 } rtpEgInactiveTime OBJECT-TYPE SYNTAX Gauge32 UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "Elapsed time since last stream packet." ::= { rtpEgEntry 9 } Baugher, Du, Naudus Expires September 24, 1997 [Page 11] Internet Draft RTP MIB March 24, 1997 -- -- INGRESS STREAMS TABLE -- RTP System has zero or more Ingress Streams per RTP Session. -- RTP Streams are received from multiple RTP Session senders, -- Multiple, local participants may receive a given RTP Stream. -- Each stream received by a Participant is an Ingress Stream row. -- This table contains RTCP RR, RFC 1989 "loop list" information. 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." ::= { rtpSystem 2 } rtpInEntry OBJECT-TYPE SYNTAX RtpInEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An rtpInTable entry uniquely identifies an RTP Data Stream received by an RTP receiver/Participant. There is an rtpInEntry for each stream received by the local RTP System. Columnar objects describe state, attributes and statistics from the RTP packet header, RTCP RR PDU, and RTCP SDES PDU. Table rows cannot be created nor deleted via SNMP operations." INDEX { rtpInNetAddr, rtpInPort, rtpInLocalSSRC, rtpInRemoteSSRC } ::= { rtpInTable 1 } Baugher, Du, Naudus Expires September 24, 1997 [Page 12] Internet Draft RTP MIB March 24, 1997 RtpInEntry ::= SEQUENCE { rtpInNetAddr OCTET STRING (SIZE(4..16)), rtpInPort INTEGER(1..65535), rtpInLocalSSRC INTEGER, rtpInRemoteSSRC INTEGER, rtpInRemoteCNAME OCTET STRING, rtpInPT INTEGER, rtpInRemoteAddr OCTET STRING (SIZE(4..16)), rtpInRemotePort INTEGER(1..65535), rtpInFracLost Gauge32, rtpInLostPackets Counter32, rtpInOctets Counter32, rtpInTool OCTET STRING, rtpInInactiveTime Gauge32 } rtpInNetAddr OBJECT-TYPE SYNTAX OCTET STRING (SIZE(4..16)) MAX-ACCESS read-only STATUS current DESCRIPTION "The Network Address of a multicast RTP Session, or the Network Address of this end of a unicast RTP Session (remote end is rtpInRemoteAddr)." ::= { rtpInEntry 1} rtpInPort OBJECT-TYPE SYNTAX INTEGER(1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The transport-layer port of a multicast RTP Session, or the transport-layer port of this end of a unicast RTP Session (remote is rtpInRemotePort)." ::= { rtpInEntry 2} rtpInLocalSSRC OBJECT-TYPE SYNTAX INTEGER(1..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "Identifies receiver/participant." ::= { rtpInEntry 3} Baugher, Du, Naudus Expires September 24, 1997 [Page 13] Internet Draft RTP MIB March 24, 1997 rtpInRemoteSSRC OBJECT-TYPE SYNTAX INTEGER(1.. 4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "identifies remote sender/participant." ::= { rtpInEntry 4 } rtpInPT OBJECT-TYPE SYNTAX INTEGER(1..128) MAX-ACCESS read-only STATUS current DESCRIPTION "Payload Type state variable." ::= { rtpInEntry 5 } rtpInRemoteCNAME OBJECT-TYPE SYNTAX OCTET STRING (SIZE(1..128)) MAX-ACCESS read-only STATUS current DESCRIPTION "attribute uniquely identifies receiver/participant." ::= { rtpInEntry 6 } rtpInRemoteAddr OBJECT-TYPE SYNTAX OCTET STRING (SIZE(4..16)) MAX-ACCESS read-only STATUS current DESCRIPTION "The Network Address of the stream source." ::= { rtpInEntry 7 } rtpInRemotePort OBJECT-TYPE SYNTAX INTEGER(1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The source transport-layer port of this streams." ::= { rtpInEntry 8 } Baugher, Du, Naudus Expires September 24, 1997 [Page 14] Internet Draft RTP MIB March 24, 1997 rtpInFracLost OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Statistic identifies the fraction of lost packets in the receive stream relative to the total packets." ::= { rtpInEntry 9 } rtpInLostPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Statistic identifies the total number of packets lost from the receive stream." ::= { rtpInEntry 10 } rtpInOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Statistic total of the number of octets received on the receive stream." ::= { rtpInEntry 11 } rtpInTool OBJECT-TYPE SYNTAX OCTET STRING (SIZE(1..128)) MAX-ACCESS read-only STATUS current DESCRIPTION "optional tool identifier state variable." ::= { rtpInEntry 12 } rtpInInactiveTime OBJECT-TYPE SYNTAX Gauge32 UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "Elapsed time since last stream packet." ::= { rtpInEntry 13 } Baugher, Du, Naudus Expires September 24, 1997 [Page 15] Internet Draft RTP MIB March 24, 1997 -- -- GROUPS -- rtpSystemGroup OBJECT-GROUP OBJECTS { rtpEgNetAddr, rtpEgPort, rtpEgSSRC, rtpEgCNAME, rtpEgPT, rtpEgSentPackets, rtpEgSentOctets, rtpEgTool, rtpEgInactiveTime, rtpInLocalSSRC, rtpInRemoteSSRC, rtpInNetAddr, rtpInPort, rtpInRemoteCNAME, rtpInPT, rtpInRemoteAddr, rtpInRemotePort, rtpInFracLost, rtpInLostPackets, rtpInOctets, rtpInTool, rtpInInactiveTime } STATUS current DESCRIPTION "Objects used to define RTP streams." ::= { rtpSystem 9 } Baugher, Du, Naudus Expires September 24, 1997 [Page 16] Internet Draft RTP MIB March 24, 1997 rtpSystemCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "All objects are mandatory with the the exceptions listed below." MODULE RTP-SYSTEM MANDATORY-GROUPS { rtpSystemGroup } OBJECT rtpInPT MIN-ACCESS not-accessible DESCRIPTION "This object is not always obtainable, and is optional" OBJECT rtpInTool MIN-ACCESS not-accessible DESCRIPTION "This object is not always obtainable, and is optional" OBJECT rtpEgPT MIN-ACCESS not-accessible DESCRIPTION "This object is not always obtainable, and is optional" OBJECT rtpEgTool MIN-ACCESS not-accessible DESCRIPTION "This object is not always obtainable, and is optional" ::= { rtpSystem 10 } END Baugher, Du, Naudus Expires September 24, 1997 [Page 17] Internet Draft RTP MIB March 24, 1997 -- ****** -- RTP-IS -- ****** RTP-IS DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI RowStatus FROM SNMPv2-TC OBJECT-GROUP, MODULE-COMPLIANCE FROM SNMPv2-CONF rtp FROM RTP-SYSTEM; rtpIS MODULE-IDENTITY LAST-UPDATED "9703241800Z" 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 Intermediate-Systems, such as Translators and Mixers, and by RTP 3rd-party multicast monitors." ::= { rtp 2 } -- -- SESSION TABLE -- There's a row instance for each RTP Session on an RTP System -- 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 has a corresponding egress or ingress stream. Row creation has the side effect of causing the RTP System to join the session for the purposes of gathering management information." ::= { rtpIS 1 } Baugher, Du, Naudus Expires September 24, 1997 [Page 18] Internet Draft RTP MIB March 24, 1997 rtpSessionEntry OBJECT-TYPE SYNTAX RtpSessionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Data in rtpSessionTable either uniquely identify an RTP session, or are attributes, statistics, or state associated with an RTP session. Rows of the rtpSessionTable can be created and deleted via SNMP operations." INDEX { rtpSessionIndex } ::= { rtpSessionTable 1 } RtpSessionEntry ::= SEQUENCE { rtpSessionIndex INTEGER(1..65535), rtpSessionAddr OCTET STRING (SIZE(4..16)), rtpSessionPort INTEGER(1..65535), rtpSessionIf OCTET STRING (SIZE(4..16)), rtpSessionOwner OCTET STRING (SIZE(64)), rtpSessionRowStatus RowStatus } rtpSessionIndex OBJECT-TYPE SYNTAX INTEGER(1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Specifies the value of the rtpSessionTable index." ::= { rtpSessionEntry 1} rtpSessionAddr OBJECT-TYPE SYNTAX OCTET STRING (SIZE(4..16)) MAX-ACCESS read-create STATUS current DESCRIPTION "The destination IP address of RTP Session streams." ::= { rtpSessionEntry 2} rtpSessionPort OBJECT-TYPE SYNTAX INTEGER(1..65535) MAX-ACCESS read-create STATUS current DESCRIPTION "The destination transport-layer port of RTP Session streams; this is the even port of the even-odd pair when UDP is used as the transport for RTP streams." ::= { rtpSessionEntry 3} Baugher, Du, Naudus Expires September 24, 1997 [Page 19] Internet Draft RTP MIB March 24, 1997 rtpSessionIf OBJECT-TYPE SYNTAX OCTET STRING (SIZE(4..16)) MAX-ACCESS read-create STATUS current DESCRIPTION "The local interface network address where RTP data packets are sent and received for session." ::= { rtpSessionEntry 4} rtpSessionOwner OBJECT-TYPE SYNTAX OCTET STRING(SIZE(64)) MAX-ACCESS read-create STATUS current DESCRIPTION "This manager created the session. Other managers wishing to monitor the session defined by the tuple , cannot do so until this manager destroys the particular row; these semantics are forced by the 1:1 mapping of the row index to the session tuple enforced by rtpSessionIndexTable." ::= { rtpSessionEntry 5 } rtpSessionRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Session entries can be created by a manager." ::= { rtpSessionEntry 6} -- -- SESSION INDEX QUERY -- rtpSessionIndexTable OBJECT-TYPE SYNTAX SEQUENCE OF RtpSessionIndexEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Management entity stores the rtpSessionIndex into a row of this table when an rtpSessionTable row is mapped to another rtpSessionTable row by some non-RTP means. Manager can use this index to access rtpSessionTable entries ordered by Session address and interface." ::= {rtpIS 2 } Baugher, Du, Naudus Expires September 24, 1997 [Page 20] Internet Draft RTP MIB March 24, 1997 rtpSessionIndexEntry OBJECT-TYPE SYNTAX RtpSessionIndexEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "One column only to store the rtpSessionIndex of the rtpSessionTable. Rows cannot be created, written nor destroyed by a manager." INDEX { rtpSessionAddr, rtpSessionPort, rtpSessionIf } ::= { rtpSessionIndexTable 1 } RtpSessionIndexEntry ::= SEQUENCE { rtpSessionIndexValue INTEGER(1..65535) } rtpSessionIndexValue OBJECT-TYPE SYNTAX INTEGER(1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Instance of rtpSessionIndex corresponds 1:1 with {rtpSessionAddr,rtpSessionPort,rtpSessionIf}." ::= { rtpSessionIndexEntry 1 } -- -- SESSION MAP -- rtpSessionMapTable OBJECT-TYPE SYNTAX SEQUENCE OF RtpSessionMapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Traces the mapping of one session (the rtpSessionMapIn) to another (rtpSessionMapEg) where all ingress streams from the former are assumed to be egress streams of the latter." ::= { rtpIS 3 } Baugher, Du, Naudus Expires September 24, 1997 [Page 21] Internet Draft RTP MIB March 24, 1997 rtpSessionMapEntry OBJECT-TYPE SYNTAX RtpSessionMapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry defines an association of an entry from the rtpSessionTable with another entry from the rtpSessionTable that is asymmetric in that streams from rtpSessionMapIn session are forwarded to the address,port and interface of rtpSessionMapEg. Another entry is needed to define the reverse mapping." INDEX { rtpSessionMapIn, rtpSessionMapEg } ::= { rtpSessionMapTable 1 } RtpSessionMapEntry ::= SEQUENCE { rtpSessionMapIn INTEGER(1..65535), rtpSessionMapEg INTEGER(1..65535) } rtpSessionMapIn OBJECT-TYPE SYNTAX INTEGER(1..65535) MAX-ACCESS read-create STATUS current DESCRIPTION "Refers to rtpSessionTable entry in which all streams are forwarded to that corresponds to the rtpSessionMapEg entry." ::= { rtpSessionMapEntry 1 } rtpSessionMapEg OBJECT-TYPE SYNTAX INTEGER(1..65535) MAX-ACCESS read-create STATUS current DESCRIPTION "Refers to rtpSessionTable entry to which all streams from rtpSessionMapIn are forwarded." ::= { rtpSessionMapEntry 2 } Baugher, Du, Naudus Expires September 24, 1997 [Page 22] Internet Draft RTP MIB March 24, 1997 -- -- MODULE GROUPS -- rtpISGroup OBJECT-GROUP OBJECTS { rtpSessionAddr, rtpSessionPort, rtpSessionIf, rtpSessionOwner, rtpSessionRowStatus, rtpSessionIndexValue, rtpSessionMapIn, rtpSessionMapEg } STATUS current DESCRIPTION "Objects used to define RTP sessions." ::= { rtpIS 9 } rtpISCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "All objects are mandatory with the the exceptions listed below." MODULE RTP-IS MANDATORY-GROUPS { rtpISGroup } OBJECT rtpSessionAddr MIN-ACCESS read-only DESCRIPTION "This is useful even if the agent chooses not support create access." OBJECT rtpSessionPort MIN-ACCESS read-only DESCRIPTION "This is useful even if the agent chooses not support create access." OBJECT rtpSessionIf MIN-ACCESS read-only DESCRIPTION "This is useful even if the agent chooses not support create access." OBJECT rtpSessionOwner MIN-ACCESS read-only DESCRIPTION "This is useful even if the agent chooses not support create access." OBJECT rtpSessionRowStatus MIN-ACCESS not-accessible DESCRIPTION "Not needed when Addr, Port, and If cannot be created by manager." ::= { rtpIS 10 } END Baugher, Du, Naudus Expires September 24, 1997 [Page 23] Internet Draft RTP MIB March 24, 1997 6. Possible Additions to the RTP MIB The following additions to the RTP MIB have been considered, but not added to this revision of the draft. 6.1 A Receivers Table for an RTP Source An RTP source is capable of collecting various statistics from its receivers such as loss and delay. There is no such management information structure in this revision of the RTP MIB. The authors felt that this information was transient and probably not of great use to an SNMP network manager. This conclusion could turn out to be wrong, especially in the case of servers. The modular structure of the RTP MIB, however, can accommodate the addition of an RTP-SOURCE module that would allow a manager to view a table of information constructed from the RTCP RR's and SDES PDU's that have been received from the receivers. Such a table should be optional, since a MIB that required a source to store an entry for every receiver would not scale. 6.2 Delay or RTT If there were a Receivers table as described in section 6.1, then it could contain the round-trip time (RTT) computed from the RTCP RR's and the sender's clock[1]. Alternatively, an RTP Monitor may not be able to reliably compute RTT, but there are other means for estimating delays between a sender and a particular receiver which can be done by non-RTP means. Such a delay statistic computed in the Monitor could be added by augmenting the ingress streams table. 6.3 Various SDES Items Name, email address, location, and many other items from the SDES PDU do not appear in the MIB. Since accounting was not one of the uses that were assumed for the MIB in section 4.2 of this document, the addition of the user-specific or site-specific objects were deemed to be superfluous. User tool, an optional item, is included in the RTP-SYSTEM module. Tool and CNAME are the only SDES items found in the RTP MIB. Other SDES items could be added to the column objects of the streams table by augmenting the tables. Baugher, Du, Naudus Expires September 24, 1997 [Page 24] Internet Draft RTP MIB March 24, 1997 7. Acknowledgments The authors wish to thank Steve Casner, Karl Auerbach, Don Ryan and Christian Maciocco for sharing their views on management, in general, and RTP management in particular. Bill Strahm has provided guidance on RTP instrumentation and the RTP management entity. 8. 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.T.Rose, SNMP MUX Protocol and MIB, RFC 1227, May 1991. [5] B.Wijner, G. Carpenter, K. Curran, A. Sehgal, G. Waters, "Simple Network Management Protocol Distributed Protocol Interface Version 2.0", RFC 1592, March, 1994. [6] M.Daniele, B. Wijner, D. Franciso, "Agent Extensibility (AgentX) Protocol, Version 1", work in progress, , November, 1996. Baugher, Du, Naudus Expires September 24, 1997 [Page 25]