Internet Draft C. Kalbfleisch Verio, Inc. R.G. Cole AT&T D. Romascanu Avaya Communication 20 November 2000 Definition of Managed Objects for Synthetic Sources for Performance Monitoring algorithms. Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." To view the list Internet-Draft Shadow Directories, see http://www.ietf.org/shadow.html. Copyright Notice Copyright (C) The Internet Society (2000). All Rights Reserved. Abstract This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes objects for configuring Synthetic Sources for Performance Monitoring algorithms (SSPM). This memo specifies a MIB module in a manner that is both compliant to the SMIv2, and semantically identical to the peer SMIv1 definitions. Distribution of this memo is unlimited. 1. Introduction This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it defines a method of describing Synthetic Sources for Performance Monitoring (SSPM). This is useful within the RMON framework for performance monitoring in the cases where it is desireable to inject packets into the network for the purpose of monitoring their performance with the other MIBs in that framework. This memo also includes a MIB module. This MIB module extends the list of managed objects specified in [17] and [18]. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [20]. 2. The SNMP Management Framework The SNMP Management Framework presently consists of five major components: o An overall architecture, described in RFC 2271 [1]. o Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and described in RFC 1155 [2], RFC 1212 [3] and RFC 1215 [4]. The second version, called SMIv2, is described in RFC 1902 [5], RFC 1903 [6] and RFC 1904 [7]. o Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and described in RFC 1157 [8]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10]. The third version of the message protocol is called SNMPv3 and described in RFC 1906 [10], RFC 2272 [11] and RFC 2274 [12]. o Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in RFC 1157 [8]. A second set of protocol operations and associated PDU formats is described in RFC 1905 [13]. o A set of fundamental applications described in RFC 2273 [14] and the view-based access control mechanism described in RFC 2275 [15]. Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms defined in the SMI. This memo specifies a MIB module that is compliant to the SMIv2. A MIB conforming to the SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (use of Counter64). Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during the translation process. However, this loss of machine readable information is not considered to change the semantics of the MIB. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED","MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119 [16]. 3. Overview This document defines a MIB for the purpose of remotely controlling synthetic sources (or 'active' probes) and sinks for the purpose of enhancing remote performance monitoring capabilities within IP networks and services. Much work within the IETF exists related to performance monitoring. One interesting aspect of this body of work is that it does not explicitly define an 'active' probe capability. An active probe capability is complimentary to existing capabilities, and this MIB is developed to fill this void. The utility of this function within the Internet and the relationship of this MIB to other working group activities is discussed in a framework document []. The rperfman BOF in Adelaide in March of 2000 was held to discuss the possibility of developing a standard set of synthetic probes for performance management functions. It was agreed at that time to move forward with the development of this MIB and that this work would be sponsored within the RMONMIB WG. For more information on the outcome of this BOF, refer to the meeting minutes [rperfmanBOF minutes by Bierman]. The following definitions apply throughout this document: + 'Performance monitoring' is the act of monitoring traffic for the purpose of evaluating a statistic of a metric related to the performance of the system. A performance monitoring system is comprised of a) traffic generators, b) measurement, c) data reduction, and d) reporting. The traffic generators may be natural sources, synthetic sources or intrusive sources [appmcapsMIB]. + A 'synthetic source' is a device or an embedded software program which generates a data packet (or packets) and injects it (them) onto the path to a corresponding probe or existing server solely in support of a performance monitoring function. A synthetic source may talk intrusively to existing application servers. The design goals for this MIB are: + Compliment the overall performance management architecture being defined within the RMONMIB WG - this MIB is defined within the context of the appmcapsMIB. + Extensibility - the MIB should be easily extended to include a greater set of protocols and applications for performance monitoring purposes. + Flexible - it should support both round trip and one way measurements. + Security - the control of the source and sink of traffic is handled by a management application and communication is recommended via SNMPv3. This document is organized as follows. The next section discusses the relationship of this MIB to other MIBs from the RMONMIB and DISMAN working groups. Then the structure of the MIB is discussed. Finally, the MIB definitions are given. 4. Relationship to other MIBs This MIB is designed to be used in conjunction with the RMON MIB Working Groupss two other MIBs for application performance measurement: Application Performance Measurement MIB and Application Performance Measurement Framework Transport Performance Metrics MIB. These MIBs define reporting capabilities for that framework. The intent of this MIB is to define a method for injecting packets into the network utilizing probe capabilities defined in the base MIBs and measured with the reporting MIBs. Specifically, this MIB uses the AppLocalIndex as defined in the APM- MIB to map measurement configuration information to defintion and reporting structures defined in the APM-MIB. 5. MIB Structure This section presents the structure of the MIB. The objects are arranged into the following groups: o general information o source configuration o link layer extentions o application layer extentions o sink configuration o history information 5.1. general information This section provides general information about the capabilities of the probe. Currently this information is related to the resolution of the probe clock and its source. 5.2. source configuration This MIB takes an IP centric view of the configuration of the measurement. The source table provides configuration information for the IP layer portions of the measurements. 5.3. link layer extentions The link layer extentions table allows configuration of link layer attributes within the test. 5.4. application layer extentions The application layer extentions provides the ability to provide the configuration of application layer attributes. 5.5. sink configuration Conifgures the sink for measurements. If the test is round-trip then this table is on the same probe as the source configuration. If the test is one-way then the table is on a different probe. The sspmSinkInstance is a unique identifer for the entry per probe. Additional attributes are provided for test type and source of the test to uniquely identifier entries in the table. 5.6. history information This section of the MIB defines some configuration attributes to control the size of the history table and what happens when the table is full. The table is intended to provide information about the raw data of the tests from when then measurements were made. It is not intended as the general purpose reporting function. That function is to be provided by the before mentioned MIBs. Two tables are defined: sspmHistoryConfigTable and sspmHistoryTable. The first configures how the history table operates, its size and the the last entry per sink. The second table contains the actual history information. 6. Definitions SSPM-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, mib-2, Counter32, Counter64, Integer32, Unsigned32, TimeTicks FROM SNMPv2-SMI TEXTUAL-CONVENTION, DisplayString, DateAndTime, TimeInterval, TruthValue FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF InetAddressType, InetAddress FROM INET-ADDRESS-MIB InterfaceIndex FROM IF-MIB AppLocalIndex FROM APM-MIB; sspmMIB MODULE-IDENTITY LAST-UPDATED "0011201400Z" ORGANIZATION "Individual submission" CONTACT-INFO " Carl W. Kalbfleisch Postal: Verio, Inc. 1950 Stemmons Freeway Suite 2026 Dallas, TX 75207 US Tel: +1 214 853-7339 Fax: +1 214 744-0742 E-mail: cwk@verio.net" DESCRIPTION "This SSPM MIB module is applicable to probes implementing Synthetic Source for Perfomance Monitoring fucntions." -- revision history REVISION "0011241400Z" DESCRIPTION "Remove references to PMCAPS MIB to align with current RMON WG Application Monitoring approach. Add clarifying text" REVISION "0007041400Z" DESCRIPTION "Numerous updates." REVISION "0006141400Z" DESCRIPTION "Initial version." ::= { mib-2 777 } -- -- Object Identifier Assignements -- sspmMIBObjects OBJECT IDENTIFIER ::= { sspmMIB 1 } sspmMIBNotifications OBJECT IDENTIFIER ::= { sspmMIB 2 } sspmMIBConformance OBJECT IDENTIFIER ::= { sspmMIB 3 } -- -- Textual Conventions -- MicroSeconds ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "A unit of time with resolution of MicroSeconds." SYNTAX Unsigned32 -- -- sspmGeneral -- sspmGeneral OBJECT IDENTIFIER ::= { sspmMIBObjects 1 } sspmClockResolution OBJECT-TYPE SYNTAX MicroSeconds MAX-ACCESS read-only STATUS current -- UNITS Microseconds DESCRIPTION "A read only variable indicating the resolution of the measurements possible by this device." ::= { sspmGeneral 1 } sspmClockSource OBJECT-TYPE SYNTAX INTEGER { other (1), manual (2), gps (3), ntp (4) } MAX-ACCESS read-only STATUS current -- UNITS MicroSeconds DESCRIPTION "A read only variable indicating the source of the clock. This is provided to allow a user to determine how accurate the timing mechanism is compared with other devices. This is mostly needed for the co-ordination of time values between probes for one-way measurements." ::= { sspmGeneral 2 } -- -- sspmCapabilities -- -- Describes the capabilities of the SSPM device. -- sspmCapabilitiesTable OBJECT-TYPE SYNTAX SEQUENCE OF SspmCapabilitiesEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table of SSPM capabilities." ::= { sspmGeneral 3 } sspmCapabilitiesEntry OBJECT-TYPE SYNTAX SspmCapabilitiesEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Deatils about a particular SSPM capabilitiy." INDEX { sspmCapabilityInstance } ::= { sspmCapabilitiesTable 1 } SspmCapabilitiesEntry ::= SEQUENCE { sspmCapabilitiesInstance AppLocalIndex, sspmCapabilitiesIsSupported TruthValue } sspmCapabilitiesInstance OBJECT-TYPE SYNTAX AppLocalIndex MAX-ACCESS read-only STATUS current DESCRIPTION "An arbitrary index." ::= { sspmCapabilitiesEntry 1 } sspmCapabilitiesIsSupported OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates whether SSPM configuration of the corresponding AppLocalIndex is supported by this device. Generally entries in this table are only made by the device when the configuration of the measurement is available." ::= { sspmCapabilitiesEntry 2 } -- -- sspmSource -- -- Contains the IP Layer configuration information used by -- Synthetic Sources for Performance Monitoring algorithms. -- sspmSource OBJECT IDENTIFIER ::= { sspmMIBObjects 2 } sspmSourceTable OBJECT-TYPE SYNTAX SEQUENCE OF SspmSourceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table of SSPM measurements configured." ::= { sspmSource 1 } sspmSourceEntry OBJECT-TYPE SYNTAX SspmSourceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Deatils about a particular SSPM configuration." INDEX { sspmSourceInstance } ::= { sspmSourceTable 1 } SspmSourceEntry ::= SEQUENCE { sspmSourceInstance Integer32, sspmSourceType AppLocalIndex, sspmSourceSrc InterfaceIndex, sspmSourceDestAddressType InetAddressType, sspmSourceDestAddress InetAddress, sspmSourcePacketSize UnsignedInteger32, sspmSourcePacketFillType INTEGER, sspmSourcePacketFillValue OCTET STRING, sspmSourceControl TruthValue, sspmSourceTimeOut MicroSeconds, sspmSourceSamplingDistribution INTEGER, sspmSourceFrequency MicroSeconds, sspmSourceTOS BITS, sspmSourceSrcRouteFill OCTET STRING, sspmSourceSourceSrcRouteLength INTEGER, sspmSourceTTL INTEGER, sspmSourceNoFrag INTEGER, sspmSourceFirstSequenceNumber Integer32, sspmSourceLastSequenceNumber Integer32, sspmSourceOwner OwnerString, sspmSourceStatus RowStatus } sspmSourceInstance OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "An arbitrary index." ::= { sspmSourceEntry 1 } sspmSourceType OBJECT-TYPE SYNTAX AppLocalIndex MAX-ACCESS read-create STATUS current DESCRIPTION "The AppLocalIndex value which uniquely identifies the measurement per the APM-MIB. In order to create a row in this table there must be a corresponding sspmCapabilitiesIsSupported entry set to true." ::= { sspmSourceEntry 2} sspmSourceSrc OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "ifIndex where the packet should originate from the probe (if it matters). Zero value indicates it does not matter and the device decides." ::= { sspmSourceEntry 3 } sspmSourceDestAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "The type of Internet address by which the destination is accessed." ::= { sspmSourceEntry 4 } sspmSourceDestAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The Internet address for the destination." ::= { sspmSourceEntry 5 } sspmSourcePacketSize OBJECT-TYPE SYNTAX UnsignedInteger32 MAX-ACCESS read-create STATUS current DESCRIPTION "The size of packet to be transmitted in bytes. Should we bound to a max size?" ::= { sspmSourceEntry 6 } sspmSourcePacketFillType OBJECT-TYPE SYNTAX INTEGER { random (1), pattern (2), url(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates how the packet is filled. 'random' indicates that the packet contains random data patterns. This is probe and implementation dependent. 'pattern' indicates that the pattern defined in the sspmSourcePacketFillValue attribute is used to fill the packet. 'url' indicates that the value of sspmSourcePacketFillValue should contain a URL. The contents of the document at that URL are retrieved and utilized in the packet." ::= { sspmSourceEntry 7 } sspmSourcePacketFillValue OBJECT-TYPE SYNTAX OCTET STRING (0..255) MAX-ACCESS read-create STATUS current DESCRIPTION "The string value to fill the packet with. If sspmSourcePacketFillType is set to 'pattern' then this pattern is repeated until the packet is sspmSourcePacketSize in bytes. Note that if length of the octet string specified for this value does not divide evenly into the packet size then an incomplete last copy of this data may be copied into the packet. If the value of sspmSourcePacketFillType is set to 'random' then this attribute is unused. If the value of the sspmSourcePacketFillType is set to 'url' then the URL specified in this attribute is retrieved and used by the probe." ::= { sspmSourceEntry 8 } sspmSourceControl OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "When set to Yes this test is enabled. When set to No, it is disabled." ::= { sspmSourceEntry 9 } sspmSourceTimeOut OBJECT-TYPE SYNTAX MicroSeconds MAX-ACCESS read-create STATUS current DESCRIPTION "Timeout value for the measurement response. If no response is received in the time specified then the test fails." ::= { sspmSourceEntry 10 } sspmSourceSamplingDistribution OBJECT-TYPE SYNTAX INTEGER { deterministic(1), random(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "When this attbute is set to 'deterministic', then packets are generated at sspmSourceFrequency rate. When this attribute is set to 'random' then packets are generated at sspmSourceFrequency rate with interpacket injections times distributes exponentially." ::= { sspmSourceEntry 11 } sspmSourceFrequency OBJECT-TYPE SYNTAX MicroSeconds MAX-ACCESS read-create STATUS current DESCRIPTION "The inverse of this value is the rate at which packets are generated. Refer to sspmSourceSamplingDistribution." ::= { sspmSourceEntry 12 } sspmSourceTOS OBJECT-TYPE SYNTAX BITS MAX-ACCESS read-create STATUS current DESCRIPTION "(yes, the whole 8 bit field)" ::= { sspmSourceEntry 13 } sspmSourceSrcRouteFill OBJECT-TYPE SYNTAX OCTET STRING (7..39) MAX-ACCESS read-create STATUS current DESCRIPTION "In the event that the test should run over a specific route. Intent is to force the route. Series of IP addresses along the path that would be put into the source route option in the IP header. Provide reference to IP Header RFC." ::= { sspmSourceEntry 14 } sspmSourceSourceSrcRouteLength OBJECT-TYPE SYNTAX INTEGER(7..39) MAX-ACCESS read-create STATUS current DESCRIPTION "In the event that the test should run over a specific route. Intent is to force the route. This attribute specifies the length of data to be copied from the sspmSourceSrcRouteFill." ::= { sspmSourceEntry 15 } sspmSourceTTL OBJECT-TYPE SYNTAX INTEGER(0..255) MAX-ACCESS read-create STATUS current DESCRIPTION "If non-zero specifies the value to place into the TTL field on transmission." ::= { sspmSourceEntry 16 } sspmSourceNoFrag OBJECT-TYPE SYNTAX INTEGER { fragment(1), noFragment(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "'noFragment' indicates that the Don't Fragment Bit should be set on transmission" ::= { sspmSourceEntry 17 } sspmSourceFirstSequenceNumber OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "The first sequence number of packets to be transmitted." ::= { sspmSourceEntry 18 } sspmSourceLastSequenceNumber OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The last sequence number transmitted." ::= { sspmSourceEntry 19 } sspmSourceOwner OBJECT-TYPE SYNTAX OwnerString MAX-ACCESS read-create STATUS current DESCRIPTION "name of the mgmt station who set up the test." ::= { sspmSourceEntry 20 } sspmSourceStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Status of this test." ::= { sspmSourceEntry 21 } -- -- sspmLinkLayerExtention -- -- Contains additional detailed configuration used by -- some Synthetic Sources for Performance Monitoring -- algorithms at the link layer. -- sspmLinkLayerExtention OBJECT IDENTIFIER ::= { sspmMIBObjects 3 } sspmLinkLayerExtentionTable OBJECT-TYPE SYNTAX SEQUENCE OF SspmLinkLayerExtentionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of link layer extentions used for the measurement. This table is expected to be used for measurements that are below the IP layer." ::= { sspmLinkLayerExtention 1 } sspmLinkLayerExtentionEntry OBJECT-TYPE SYNTAX SspmLinkLayerExtentionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Details on each link layer extention." INDEX { sspmSourceInstance } ::= { sspmLinkLayerExtentionTable 1} SspmLinkLayerExtentionEntry ::= SEQUENCE { sspmLinkLayerExtension8021Tagging BITS, sspmLinkLayerStatus RowStatus } sspmLinkLayerExtension8021Tagging OBJECT-TYPE SYNTAX BITS MAX-ACCESS read-create STATUS current DESCRIPTION "802.1 queue tagging used in bridge environment. 16 bit string. 12 bit vlan, 3 bits priority, 1 bit may be unused." ::= { sspmLinkLayerExtentionEntry 1 } sspmLinkLayerStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Status of this test." ::= { sspmLinkLayerEntry 2 } -- -- sspmApplLayerExtention -- -- Contains additional detailed configuration used by -- some Synthetic Sources for Performance Monitoring -- algorithms at the application Layer. -- sspmApplLayerExtention OBJECT IDENTIFIER ::= { sspmMIBObjects 4 } sspmApplLayerExtentionTable OBJECT-TYPE SYNTAX SEQUENCE OF SspmApplLayerExtentionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table for application level extentions for the measurement. Measurements that are for applications running over IP layer would probably only populate entries in this table and the sspmSourceTable for transmitting packets." ::= { sspmApplLayerExtention 1 } sspmApplLayerExtentionEntry OBJECT-TYPE SYNTAX SspmApplLayerExtentionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The details of a particular application extention. This table includes application specific configuration parameters." INDEX { sspmSourceInstance } ::= { sspmApplLayerExtentionTable 1} SspmApplLayerExtentionEntry ::= SEQUENCE { sspmApplLayerExtentionUsername Utf8Sting, sspmApplLayerExtentionPassword Utf8Sting, sspmApplLayerExtentionParameter Utf8Sting, sspmApplLayerExtentionStatus RowStatus } sspmApplLayerExtentionUsername OBJECT-TYPE SYNTAX Utf8String MAX-ACCESS read-create STATUS current DESCRIPTION "An optional username used by the application protocol." ::= { sspmApplLayerExtentionEntry 1 } sspmApplLayerExtentionPassword OBJECT-TYPE SYNTAX Utf8String MAX-ACCESS read-create STATUS current DESCRIPTION "An optional password used by the application protocol." ::= { sspmApplLayerExtentionEntry 2 } sspmApplLayerExtentionParameter OBJECT-TYPE SYNTAX Utf8String MAX-ACCESS read-create STATUS current DESCRIPTION "An optional parameter used by the application protocol. For DNS this would be the hostname or IP. For HTTP, this would be the URL. For nntp this would be the news group. For TCP this would be the port number. For SMTP this would be the recipient (and could assume the message is predefined)." ::= { sspmApplLayerExtentionEntry 3 } sspmApplLayerExtentionStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Status of this test." ::= { sspmApplLayerExtentionEntry 4 } -- -- sspmSinkTable -- -- Contains attributes for configuration of Synthetic -- Sources for Performance Monitoring sinks. IE -- sinks for receipt of one-way delay measurements. -- sspmSink OBJECT IDENTIFIER ::= { sspmMIBObjects 5 } sspmSinkTable OBJECT-TYPE SYNTAX SEQUENCE OF SspmSinkEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table configuring the sink for measurements." ::= { sspmSink 1 } sspmSinkEntry OBJECT-TYPE SYNTAX SspmSinkEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The details of a particular sink entry. If the measurement is a round trip type then the sink entry will be on the same probe as the corresponding sspmSourceEntry. If the measurement is a one way type then the sink entry will be on a different probe." INDEX { sspmSinkInstance } ::= { sspmSinkTable 1} SspmSinkEntry ::= SEQUENCE { sspmSinkInstance Integer32, sspmSinkType AppLocalIndex, sspmSinkSourceAddressType InetAddressType, sspmSinkSourceAddress InetAddress, sspmSinkExpectationRate MicroSeconds, sspmSinkEnable TruthValue, sspmSinkFirstSequenceNumber Integer32, sspmSinkLastSequenceNumber Integer32, sspmSinkLastSequenceInvalid Counter32, sspmSinkStatus RowStatus } sspmSinkInstance OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "An arbitrary index. When the measurement is for a round trip measurement then this table entry is on the same probe as the corresponding sspmSourceEntry and the value of this attribute should correspond to the value of sspmSourceInstance. Management applications configuring sinks for one way measurements could define some scheme whereby the sspmSinkInstance is unique accross all probes. Note that the unique key to this entry is also constructed with sspmSinkType, sspmSinkSourceAddressType and sspmSinkSourceAddress. Those other attributes are not included in the index to make the implementation simpiler. But, uniqueness is still needed to receive all of the packets." ::= { sspmSinkEntry 1 } sspmSinkType OBJECT-TYPE SYNTAX AppLocalIndex MAX-ACCESS read-create STATUS current DESCRIPTION "The AppLocalIndex value which uniquely identifies the measurement per the APM-MIB. In order to create a row in this table there must be a corresponding sspmCapabilitiesIsSupported entry set to true." ::= { sspmSinkEntry 2} sspmSinkSourceAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "The type of Internet address of the source." ::= { sspmSinkEntry 2 } sspmSinkSourceAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The Internet address of the source." ::= { sspmSinkEntry 3 } sspmSinkExpectationRate OBJECT-TYPE SYNTAX MicroSeconds MAX-ACCESS read-create STATUS current DESCRIPTION "The expected rate of packets to arrive." ::= { sspmSinkEntry 4 } sspmSinkEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates if the sink is enabled or not." ::= { sspmSinkEntry 5 } sspmSinkFirstSequenceNumber OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "The expected first sequence number of packets." ::= { sspmSinkEntry 6 } sspmSinkLastSequenceNumber OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The last sequence number received." ::= { sspmSinkEntry 7 } sspmSinkLastSequenceInvalid OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets that arrived where their sequence number was not one plus the value of sspmSinkLastSequenceNumber." ::= { sspmSinkEntry 8 } sspmSinkStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "Status of this conceptual row." ::= { sspmSinkEntry 9 } -- -- sspmHistory -- -- Defines attributes for capturing raw data history -- statistics. -- sspmHistory OBJECT IDENTIFIER ::= { sspmMIBObjects 6 } sspmHistoryConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF SspmHistoryConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table recording configuration information about each history table for each sink." ::= { sspmHistory 1 } sspmHistoryConfigEntry OBJECT-TYPE SYNTAX SspmHistoryConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The details of a given history. This entry extends the sspmSinkEntry for probes supporting this the history functions." INDEX { sspmSinkIndex } ::= { sspmHistoryConfigTable 1} SspmHistoryConfigEntry ::= SEQUENCE { sspmHistoryConfigMaxSize Integer32, sspmHistiryConfigControl INTEGER, sspmHistoryConfigLastInstance Integer32 } sspmHistoryConfigMaxSize OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-write STATUS current -- DEFVAL 1000 DESCRIPTION "The maximum size of the sspmHistoryTable for this sink. Configuration of what happens when the sspmHistoryTable reaches this number of entries is controlled by the sspmHistoryControl attribute." ::= { sspmHistoryConfigEntry 1} sspmHistoryConfigControl OBJECT-TYPE SYNTAX INTEGER { wrap(1), stop(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Controls what happens to the sspmHistoryTable when the sspmHistoryMaxSize number of rows are in that table for this sink. Wrap - indicates that the table wraps and old entries are overwritten. Stop - indicates that the entries stop being written to that table." ::= { sspmHistoryConfigEntry 2} sspmHistoryConfigLastInstance OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sspmHistoryInstance of the last entry written to the sspmHistoryTable for this sink. Thus the last entry for this sink has index of sspmSinkInstance and sspmHistoryInstance where sspmHistoryInstance has the value defined by this attribute." ::= { sspmHistoryConfigEntry 3 } -- -- sspmHistoryTable -- sspmHistoryTable OBJECT-TYPE SYNTAX SEQUENCE OF SspmHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table recording information about each packet received into the sink." ::= { sspmHistory 2 } sspmHistoryEntry OBJECT-TYPE SYNTAX SspmHistoryEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The details of a given packet." INDEX { sspmSinkInstance, sspmHistoryInstance } ::= { sspmHistoryTable 1} SspmHistoryEntry ::= SEQUENCE { sspmHistoryInstance Integer32, sspmHistorySrcAddressType InetAddressType, sspmHistorySrcAddress InetAddress, sspmHistoryTimeFrame DateAndTime, sspmHistorySendTimeOffset MicroSeconds, sspmHistoryReceiveTimeOffset MicroSeconds, sspmHistorySequenceNumber Integer32 } sspmHistoryInstance OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "Aribtrary monotonically increasing index value." ::= { sspmHistoryEntry 1 } sspmHistorySrcAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of Internet address where the packet originated from." ::= { sspmHistoryEntry 2 } sspmHistorySrcAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The Internet address where the packet originated from." ::= { sspmHistoryEntry 3 } sspmHistoryTimeFrame OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "Give a base time for time stamps." ::= { sspmHistoryEntry 4 } sspmHistorySendTimeOffset OBJECT-TYPE SYNTAX MicroSeconds MAX-ACCESS read-only STATUS current DESCRIPTION "The time offset from sspmHistoryTimeFrame when the packet was transmitted." ::= { sspmHistoryEntry 5 } sspmHistoryReceiveTimeOffset OBJECT-TYPE SYNTAX MicroSeconds MAX-ACCESS read-only STATUS current DESCRIPTION "Time offset from sspmHistoryTimeFrame when the packet was received at the sink." ::= { sspmHistoryEntry 6 } sspmHistorySequenceNumber OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The sequence number of the packet received." ::= { sspmHistoryEntry 7 } -- -- Notifications -- -- -- Conformance -- sspmMIBCompliances OBJECT IDENTIFIER ::= { sspmMIBConformance 1 } sspmMIBGroups OBJECT IDENTIFIER ::= { sspmMIBConformance 2 } -- -- Compliance -- -- Envision the following: -- -- - Source and Sink is minimum -- - Add LinkLayer -- - Add ApplLayer -- - Add History -- -- -- Groups -- sspmGeneralGroup OBJECT-GROUP OBJECTS { sspmClockResolution, sspmClockSource, sspmCapabilitiesInstance, sspmCapabilitiesIsSupported } STATUS current DESCRIPTION "" ::= { sspmMIBGroups 1 } sspmSourceGroup OBJECT-GROUP OBJECTS { sspmSourceInstance, sspmSourceType, sspmSourceSrc, sspmSourceDestAddressType, sspmSourceDestAddress, sspmSourcePacketSize, sspmSourcePacketFillType, sspmSourcePacketFillValue, sspmSourceControl, sspmSourceTimeOut, sspmSourceSamplingDistribution, sspmSourceFrequency, sspmSourceTOS, sspmSourceSrcRouteFill, sspmSourceSourceSrcRouteLength, sspmSourceTTL, sspmSourceNoFrag, sspmSourceFirstSequenceNumber, sspmSourceLastSequenceNumber, sspmSourceOwner, sspmSourceStatus } STATUS current DESCRIPTION "" ::= { sspmMIBGroups 2 } sspmLinkLayerExtentionGroup OBJECT-GROUP OBJECTS { sspmLinkLayerExtension8021Tagging, sspmLinkLayerExtensionStatus } STATUS current DESCRIPTION "" ::= { sspmMIBGroups 3 } sspmApplLayerExtentionGroup OBJECT-GROUP OBJECTS { sspmApplLayerExtentionUsername, sspmApplLayerExtentionPassword, sspmApplLayerExtentionParameter, sspmApplLayerExtentionStatus } STATUS current DESCRIPTION "" ::= { sspmMIBGroups 4 } sspmSinkGroup OBJECT-GROUP OBJECTS { sspmSinkInstance, sspmSinkType, sspmSinkSourceAddressType, sspmSinkSourceAddress, sspmSinkExpectationRate, sspmSinkEnable, sspmSinkFirstSequenceNumber, sspmSinkLastSequenceNumber, sspmSinkLastSequenceInvalid, sspmSinkStatus } STATUS current DESCRIPTION "" ::= { sspmMIBGroups 5 } sspmHistoryGroup OBJECT-GROUP OBJECTS { sspmHistoryConfigMaxSize, sspmHistoryConfigControl, sspmHistoryConfigLastInstance, sspmHistoryInstance, sspmHistorySrcAddressType, sspmHistorySrcAddress, sspmHistoryTimeFrame, sspmHistorySendTimeOffset, sspmHistoryReceiveTimeOffset, sspmHistorySequenceNumber } STATUS current DESCRIPTION "" ::= { sspmMIBGroups 6 } END 7. References R.G. Cole, C. Kalbfleisch, D. Romascanu, A Framework for Active Probes for Performance Monitoring, S. Waldbusser, Application Performance Measurement MIB, R. Dietz, Application Performance Measurement Framework Transport Performance Metrics MIB, Harrington, D., Presuhn, R., and B. Wijnen, An Architecture for Describing SNMP Management Frameworks, RFC 2571, April 1999. Rose, M., and K. McCloghrie, Structure and Identification of Management Information for TCP/IP-based Internets, STD 16, RFC 1155, May 1990. Rose, M., and K. McCloghrie, Concise MIB Definitions, STD 16, RFC 1212, March 1991. M. Rose, A Convention for Defining Traps for use with the SNMP, RFC 1215, March 1991. McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., and S. Waldbusser, Structure of Management Information Version 2 (SMIv2), STD 58, RFC 2578, April 1999. McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., and S. Waldbusser, Textual Conventions for SMIv2, STD 58, RFC 2579, April 1999. McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., and S. Waldbusser, Conformance Statements for SMIv2, STD 58, RFC 2580, April 1999. Case, J., Fedor, M., Schoffstall, M., and J. Davin, Simple Network Management Protocol, STD 15, RFC 1157, May 1990. Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, Introduction to Community-based SNMPv2, RFC 1901, January 1996. Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2), RFC 1906, January 1996. Case, J., Harrington D., Presuhn R., and B. Wijnen, Message Processing and Dispatching for the Simple Network Management Protocol (SNMP), RFC 2572, April 1999. Blumenthal, U., and B. Wijnen, User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3), RFC 2574, April 1999. Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2), RFC 1905, January 1996. Levi, D., Meyer, P., and B. Stewart, SNMPv3 Applications, RFC 2573, April 1999. Wijnen, B., Presuhn, R., and K. McCloghrie, View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP), RFC 2575, April 1999. Case, J., Mundy, R., Partain, D., and B. Stewart, Introduction to Version 3 of the Internet-standard Network Management Framework, RFC 2570, April 1999. Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaeler, Textual Conventions for Internet Network Addresses, RFC 2851, June 2000. McCloghrie, K. and F. Kastenholz, The Interfaces Group MIBq, RFC 2863, June 2000. 8. Intellectual Property The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. 9. Security Considerations There are a number of management objects defined in this MIB that have a MAX-ACCESS clause of read-write and/or read-create. Such objects may be considered sensitive or vulnerable in some network environments. The support for SET operations in a non-secure environment without proper protection can have a negative effect on network operations. The nature of the MIB is that it defines objects to allow packets to be injected into the network for the purpose of measuring some performance characteristics. There are some attributes which allow specifically configuring various fields in Link and IP layer packets. There are some attributes which configure username and password information for some application level protocols. Access to these attributes may provide unauthorized use of resources. It is thus important to control even GET access to these objects and possibly to even encrypt the values of these object when sending them over the network via SNMP. Not all versions of SNMP provide features for such a secure environment. SNMPv1 by itself is not a secure environment. Even if the network itself is secure (for example by using IPSec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB. It is RECOMMENDED that the implementers consider the security features as provided by the SNMPv3 framework. Specifically, the use of the User-based Security Model RFC 2274 [12] and the View-based Access Control Model RFC 2275 [15] is RECOMMENDED. It is then a customer/user responsibility to ensure that the SNMP entity giving access to an instance of this MIB, is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them. 10. Acknowledgments The editors gratefully acknowledge the comments of the following individuals: Andy Bierman, Jim McQuaid, Steven Waldbusser 11. Author's Addresses Carl W. Kalbfleisch Verio, Inc. 1950 Stemmons Freeway, Suite 2026 Dallas, TX 75207 USA Tel: +1 214-853-7339 Email: cwk@verio.net Robert G. Cole AT&T Laboratories Network Design and Performance Analysis Department 330 Saint John Street, 2nd Floor Havre de Grace, MD 21078 Phone: +1 410-939-8732 Fax: +1 410-939-8732 Email: rgcole@att.com Dan Romascanu Avaya Communication Atidim Technology Park, Bldg. #3 Tel Aviv, 61131 Israel Tel: +972-3-645-8414 Email: dromasca@avaya.com A. Full Copyright Statement This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 12. Issues This section will ultimately be removed from the document. It captures a list of open issues that need to be resolved as this document is discussed. Should sspmClockSource define various levels of ntp resolution? Should the packet fill for URL fail if the probe does not support that ability? sspmApplLayerExtentionParameter - We also discussed deleteing this attribute and instead describing how one might define such an attribute in a private extention in the appendix of this ID. Should start/end times be specified? Or should these be left to the NMS and or implementation of the schedule/script MIBs to set the control bit on/off. start time - time to start some test. Controlled by the control object to enable end time - when test ends. Purhaps duration is a better term repeat time - for configuing test which run once per hour, day, week, etc. Purhaps this can/should be done with the DISMAN shedule MIB. Should Appl Layer Parameter be defined. Could need to set more attributes for this. One option is a follow on MIB say for HTTP to set header values, etc. This was is a reference to a performance monitoring protocol. ( http://telesto.advanced.org/~kalidindi/STR/owdp.html ). Need to consider if the constructs described can be implemented with this MIB. Need to flush out conformance and compliance. Current definition of sspmSourceType and sspmSinkType prevent configuration of measurements that are not reportable in apm/tpm. May want to add some OID type to indicate non-apLocalIndex. May need to add application specific configuration tables. At least need to configure which attributes are part of the protocol header or body. 13. Change Log -00 to -01 Removed references to PM Caps. That MIB is being deprecated. Removed from references section. Added sspmSourceType attribute to define the type of measurement being made. Resolved indexing for sspmSinkTable. Updated history definition to contain two tables: one for configuration and the other for the actual history. Added text to the description clause of all tables and entries. Resolved how to use the sink. It is used for both one-way and rount-trip. Only differnce is where the sink table resides: one the same probe as the source or a different one. Added RFC 2851 to references for INET-ADDRESS-MIB Added RFC 2863 to references for IF-MIB Added sspmCapabilitiesTable to define whether the capability for configuring a particular measurement is possible.