Internet-Draft Matt Mathis Raghu Reddy John Heffner Pittsburgh Supercomputing Center J. Saperia JDS Consulting, Inc TCP Extended Statistics MIB draft-mathis-rfc2012-extension-00.txt November 7, 2001 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 mate¡ rial or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Copyright Notice Copyright (C) The Internet Society (2001). All Rights Reserved. Abstract This draft describes extended performance statistics for TCP. They are designed to use TCP's ideal vantage point to diagnose performance problems in both the network and the application. If a network based application is performing poorly, TCP can determine if the bottleneck is Mathis, et al [Page 1] Internet-Draft Expires May 2002 November 2001 in the sender, the receiver or the Internet itself. If the bottle¡ neck is in the network, TCP can provide specific information about its nature. 11.. IINNTTRROODDUUCCTTIIOONN This draft describes extended performance statistics for TCP. They are designed to use TCP's ideal vantage point to diagnose performance problems in both the network and the application. If a network based application is performing poorly, TCP can determine if the bottleneck is in the sender, the receiver or the Internet itself. If the bot¡ tleneck is in the network, TCP can provide specific information about its nature. The SNMP objects defined in this draft should be merged into the existing TCP MIB. However, RFC2012 describing the current TCP MIB, is already under revision to support IPv6 address by the ipngwg. See RFC2012bis. As an interim measure to simplify version control, etc we are pre¡ senting these extensions as a separate document. However we fully expect to merge these objects into the main TCP MIB document at some future date. To facilitate possible prototype implementations we have duplicated a minimal set of objects from RFC2012bis, such that this MIB is self contained. These duplicated objects will be removed when the docu¡ ments are merged. Be aware that this is a very early draft, and the MIB objects here are under active development. Do not be deceived by the polish on this draft: It is automatically generated from a database of poten¡ tial TCP instruments. The most current version can be obtained from http://www.psc.edu/~mathis/papers/draft-mathis-rfc2012-extension- XX.txt 22.. TThhee SSNNMMPP MMaannaaggeemmeenntt FFrraammeewwoorrkk The SNMP Management Framework presently consists of five major compo¡ nents: o An overall architecture, described in RFC 2571 [RFC2571]. Mathis, et al [Page 2] 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 STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC 1215 [RFC1215]. The second version, called SMIv2, is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580]. o Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and described in STD 15, RFC 1157 [RFC1157]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [RFC1901] and RFC 1906 [RFC1906]. The third version of the mes¡ sage protocol is called SNMPv3 and described in RFC 1906 [RFC1906], RFC 2572 [RFC2572] and RFC 2574 [RFC2574]. o Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in STD 15, RFC 1157 [RFC1157]. A second set of proto¡ col operations and associated PDU formats is described in RFC 1905 [RFC1905]. o A set of fundamental applications described in RFC 2573 [RFC2573] and the view-based access control mechanism described in RFC 2575 [RFC2575]. A more detailed introduction to the current SNMP Management Framework can be found in RFC 2570 [RFC2570]. 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. Mathis, et al [Page 3] 33.. TTCCPP EExxtteennddeedd SSttaattiissttiiccss MMIIBB Mathis, et al [Page 4] TCP-ESTATS-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, Counter32, Integer32, Gauge32, OBJECT-TYPE, Counter64, experimental, NOTIFICATION-TYPE FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TEXTUAL-CONVENTION, DateAndTime, TruthValue FROM SNMPv2-TC InetAddressType, InetAddress, InetPortNumber FROM INET-ADDRESS-MIB; tcpEStatsMIB MODULE-IDENTITY LAST-UPDATED "200111020000Z" -- November 2, 2001 ORGANIZATION "IETF XXX Working Group" CONTACT-INFO "Matt Mathis Raghu Reddy Pittsburgh Supercomputing Center Web100 Project Email:mathis@psc.edu Jon Saperia JDS Consulting, Inc. 174 Chapman St. Watertown MA 02472-3063 USA Phone: +1-617-744-1079 Fax: +1-617-249-0874 Email: saperia@jdscons.com" DESCRIPTION "Documentation of TCP performance variables from the Web100 project. See www.web100.org" REVISION "200111020000Z" -- November 2, 2001 DESCRIPTION "Initial version, published as RFC xxxx." -- RFC Editor assigns RFC xxxx ::= { experimental 9999 } tcpEStatsNotifications OBJECT IDENTIFIER ::= { tcpEStatsMIB 0 } tcpEStats OBJECT IDENTIFIER ::= { tcpEStatsMIB 1 } tcpEStatsControl OBJECT IDENTIFIER ::= { tcpEStatsMIB 2 } tcpEStatsConformance OBJECT IDENTIFIER ::= { tcpEStatsMIB 3 } Mathis, et al [Page 5] -- -- Textual Conventions -- TcpEStatsOperation ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Indicates whether the table controled by an object with this syntax is enabled and counting statistics or in a disabled state. Requests for object instances in tables that have been placed in a disabled state should be treated as if the table does not exist, that is a NO SUCH should be returned to the requester." SYNTAX INTEGER { enabled(1), disabled(2) } -- -- TCP Connection State Statistics -- tcpEStatsConnectionTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpEStatsConnectionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains connection state information for each TCP connection. Activation of this table is via the tcpEStatsControlState object." ::= { tcpEStats 1 } tcpEStatsConnectionEntry OBJECT-TYPE SYNTAX TcpEStatsConnectionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each entry in this table has information about the characteristics of each active and recently closed tcp connection." INDEX { tcpEStatsConnectIdId } ::= { tcpEStatsConnectionTable 1 } TcpEStatsConnectionEntry ::= SEQUENCE { tcpEStatsConnectionState INTEGER, tcpEStatsConnectionSACK TruthValue, tcpEStatsConnectionTimeStamps TruthValue, Mathis, et al [Page 6] tcpEStatsConnectionECN TruthValue, tcpEStatsConnectionNagle TruthValue, tcpEStatsConnectionWinScaleRcvd Integer32, tcpEStatsConnectionWinScaleSent Integer32 } tcpEStatsConnectionState OBJECT-TYPE SYNTAX INTEGER { wcStateClosed(1), wcStateListen(2), wcStateSynSent(3), wcStateSynReceived(4), wcStateEstablished(5), wcStateFinWait1(6), wcStateFinWait2(7), wcStateCloseWait(8), wcStateLastAck(9), wcStateClosing(10), wcStateTimeWait(11), wcStateDeleteTcb(12) } MAX-ACCESS read-only STATUS current DESCRIPTION "An integer value representing the connection state from the TCP State Transition Diagram." ::= { tcpEStatsConnectionEntry 1 } tcpEStatsConnectionSACK OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Non-zero if SACK has been negotiated ON by both ends of the connection. Zero otherwise." ::= { tcpEStatsConnectionEntry 2 } tcpEStatsConnectionTimeStamps OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Non-zero if Timestamps have been negotiated ON by both ends of the connection in the SYN. Zero otherwise." ::= { tcpEStatsConnectionEntry 3 } tcpEStatsConnectionECN OBJECT-TYPE Mathis, et al [Page 7] SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Non-zero if ECN has been negotiated ON." ::= { tcpEStatsConnectionEntry 4 } tcpEStatsConnectionNagle OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Non-zero if the Nagle algorithm is being used by the Local Host on this connection. Zero otherwise." ::= { tcpEStatsConnectionEntry 5 } tcpEStatsConnectionWinScaleRcvd OBJECT-TYPE SYNTAX Integer32 (-1..14) MAX-ACCESS read-only STATUS current DESCRIPTION "The window scale value used by the Local Host in calculating incoming window sizes on this connection. Must be initialized to be < 0; Winshift will be considered to be in effect only if WinScaleSent and WinScaleRcvd are both >= 0." ::= { tcpEStatsConnectionEntry 6 } tcpEStatsConnectionWinScaleSent OBJECT-TYPE SYNTAX Integer32 (-1..14) MAX-ACCESS read-only STATUS current DESCRIPTION "The window scale value used by the Local Host in calculating the advertized window on this connection. Must be initialized to be < 0; Winshift will be considered to be in effect only if WinScaleSent and WinScaleRcvd are both >= 0." ::= { tcpEStatsConnectionEntry 7 } -- -- TCP SYN Options -- tcpEStatsSynOptsTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpEStatsSynOptsEntry MAX-ACCESS not-accessible Mathis, et al [Page 8] STATUS current DESCRIPTION "This table contains Statistics on options present on the SYN and SYN-ACK. Table activation is controlled by the tcpEStatsControlSynOpts object." ::= { tcpEStats 2 } tcpEStatsSynOptsEntry OBJECT-TYPE SYNTAX TcpEStatsSynOptsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "" INDEX { tcpEStatsConnectIdId } ::= { tcpEStatsSynOptsTable 1 } TcpEStatsSynOptsEntry ::= SEQUENCE { tcpEStatsSynOptsSACKSent TruthValue, tcpEStatsSynOptsSACKRcvd TruthValue, tcpEStatsSynOptsTimeStampSent TruthValue, tcpEStatsSynOptsTimeStampRcvd TruthValue, tcpEStatsSynOptsActiveOpen TruthValue } tcpEStatsSynOptsSACKSent OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "True if SACKok was sent in SYN or SYN-ACK." ::= { tcpEStatsSynOptsEntry 1 } tcpEStatsSynOptsSACKRcvd OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "True if SACKok was found in SYN or SYN-ACK." ::= { tcpEStatsSynOptsEntry 2 } tcpEStatsSynOptsTimeStampSent OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "True if Timestamp was sent in SYN or SYN-ACK." ::= { tcpEStatsSynOptsEntry 3 } Mathis, et al [Page 9] tcpEStatsSynOptsTimeStampRcvd OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "True if Timestamp was found in SYN or SYN-ACK." ::= { tcpEStatsSynOptsEntry 4 } tcpEStatsSynOptsActiveOpen OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "True if local host was the one that sent the SYN." ::= { tcpEStatsSynOptsEntry 5 } -- -- TCP Data Table -- tcpEStatsDataTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpEStatsDataEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains statistics on aggregate packets and data sent on a connection. These provide a direct measure of the Internet capacity consumed by a connection and TCPs net throughput." ::= { tcpEStats 3 } tcpEStatsDataEntry OBJECT-TYPE SYNTAX TcpEStatsDataEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Per connection statistics for packets and data." INDEX { tcpEStatsConnectIdId } ::= { tcpEStatsDataTable 1 } TcpEStatsDataEntry ::= SEQUENCE { tcpEStatsDataPktsOut Counter32, tcpEStatsDataDataPktsOut Counter32, tcpEStatsDataAckPktsOut Counter32, tcpEStatsDataDataBytesOut Counter64, tcpEStatsDataPktsIn Counter32, tcpEStatsDataDataPktsIn Counter32, Mathis, et al [Page 10] tcpEStatsDataAckPktsIn Counter32, tcpEStatsDataDataBytesIn Counter64, tcpEStatsDataSndUna Counter32, tcpEStatsDataSndNxt Integer32, tcpEStatsDataSndMax Counter32, tcpEStatsDataThruBytesSent Counter32, tcpEStatsDataSendInitial Counter32, tcpEStatsDataSendWraps Counter32, tcpEStatsDataRcvNxt Counter32, tcpEStatsDataThruBytesReceived Counter32, tcpEStatsDataRecInitial Counter32, tcpEStatsDataRecWraps Counter32, tcpEStatsDataCurTime Counter32, tcpEStatsDataStartTime Counter32 } tcpEStatsDataPktsOut OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets that have been sent on this connection by the Local Host." ::= { tcpEStatsDataEntry 1 } tcpEStatsDataDataPktsOut OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of data packets (with len > 0) that have been sent on this connection by the Local Host." ::= { tcpEStatsDataEntry 2 } tcpEStatsDataAckPktsOut OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of pure ack packets that have been sent on this connection by the Local Host." ::= { tcpEStatsDataEntry 3 } tcpEStatsDataDataBytesOut OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current Mathis, et al [Page 11] DESCRIPTION "The number of bytes of data that have been sent on this connection by the Local Host, not including retransmitted packets." ::= { tcpEStatsDataEntry 4 } tcpEStatsDataPktsIn OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets that have been received on this connection by the Local Host." ::= { tcpEStatsDataEntry 5 } tcpEStatsDataDataPktsIn OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of data packets (with len > 0) that have been received on this connection by the Local Host." ::= { tcpEStatsDataEntry 6 } tcpEStatsDataAckPktsIn OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of valid pure ack packets that have been received on this connection by the Local Host." ::= { tcpEStatsDataEntry 7 } tcpEStatsDataDataBytesIn OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of bytes of non-duplicate data that have been received on this connection by the Local Host." ::= { tcpEStatsDataEntry 8 } tcpEStatsDataSndUna OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION Mathis, et al [Page 12] "Oldest Unacknowledged Sequence Number." ::= { tcpEStatsDataEntry 9 } tcpEStatsDataSndNxt OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "Next Sequence Number to be Sent. Note that many TCP implementations retransmit lost data by pulling SndNxt back to the lost data." ::= { tcpEStatsDataEntry 10 } tcpEStatsDataSndMax OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This is equal to snd_next except when doing Tahoe style recovery." ::= { tcpEStatsDataEntry 11 } tcpEStatsDataThruBytesSent OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Total throughput bytes delivered and acknowledged by the remote receiver as indicated by the 64 bit sum of changes in snd_una." ::= { tcpEStatsDataEntry 12 } tcpEStatsDataSendInitial OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Initial SYN sequence number." ::= { tcpEStatsDataEntry 13 } tcpEStatsDataSendWraps OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This is the number of times snd_max 'passes' ISS." ::= { tcpEStatsDataEntry 14 } Mathis, et al [Page 13] tcpEStatsDataRcvNxt OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Next sequence number expected on an incoming segment, and is the left or lower edge of the receive window." ::= { tcpEStatsDataEntry 15 } tcpEStatsDataThruBytesReceived OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Total throughput bytes received and acknowledged to the remote sender as indicated by the 64 bit sum of changes in rcv_nxt." ::= { tcpEStatsDataEntry 16 } tcpEStatsDataRecInitial OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Initial SYN sequence number." ::= { tcpEStatsDataEntry 17 } tcpEStatsDataRecWraps OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This is the number of times rcv_max 'passes' ISS." ::= { tcpEStatsDataEntry 18 } tcpEStatsDataCurTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "Current Time." ::= { tcpEStatsDataEntry 19 } tcpEStatsDataStartTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current Mathis, et al [Page 14] DESCRIPTION "Time of the start of the connection." ::= { tcpEStatsDataEntry 20 } -- -- TCP Sender Table -- tcpEStatsSndCongTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpEStatsSndCongEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "First level instruments to determine which subsystems are controlling overall performance by throttling TCP data transmission. The three parallel sets of instruments measure the extent to which the receiver window, network congestion or the senders available data limit TCP's performance. They reflect bottlenecks at the receiver, network or sender respectively. It also includes instruments on all events needed to model congestion along the network path. The instruments are sufficient to fit the actual performance to an updated macroscopic performance model [MACRO]. This in turn reveals the nature of the congestion " ::= { tcpEStats 4 } tcpEStatsSndCongEntry OBJECT-TYPE SYNTAX TcpEStatsSndCongEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Per connection sender information." INDEX { tcpEStatsConnectIdId } ::= { tcpEStatsSndCongTable 1 } TcpEStatsSndCongEntry ::= SEQUENCE { tcpEStatsSndCongSndLimTransSnd Counter32, tcpEStatsSndCongSndLimTimeSnd Counter32, tcpEStatsSndCongSndLimBytesSnd Counter64, tcpEStatsSndCongSndLimTransCwnd Counter32, tcpEStatsSndCongSndLimTimeCwnd Counter32, tcpEStatsSndCongSndLimBytesCwnd Counter64, tcpEStatsSndCongSndLimTransRwin Counter32, tcpEStatsSndCongSndLimTimeRwin Counter32, tcpEStatsSndCongSndLimBytesRwin Counter64, tcpEStatsSndCongSlowStart Counter32, Mathis, et al [Page 15] tcpEStatsSndCongCongAvoid Counter32, tcpEStatsSndCongCongSignals Counter32, tcpEStatsSndCongOtherReductions Counter32, tcpEStatsSndCongCongOverCount Counter32, tcpEStatsSndCongCurCwnd Gauge32, tcpEStatsSndCongSumCwndAtCong Counter32, tcpEStatsSndCongMaxCwnd Gauge32, tcpEStatsSndCongCurSsthresh Gauge32, tcpEStatsSndCongMaxSsthresh Gauge32, tcpEStatsSndCongMinSsthresh Gauge32 } tcpEStatsSndCongSndLimTransSnd OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of transitions into the 'Sender Limited' state, as determined by the Local Host, when the Local Host is a sender. This state is entered whenever TCP transmission stops because there no more data in sender's buffer." ::= { tcpEStatsSndCongEntry 1 } tcpEStatsSndCongSndLimTimeSnd OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The cumulative time (in msecs) spent in the 'Sender Limited' state, as determined by the Local Host, when the Local Host is a sender. This state is entered whenever TCP transmission stops because there is no more data in sender's buffer." ::= { tcpEStatsSndCongEntry 2 } tcpEStatsSndCongSndLimBytesSnd OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The cumulative bytes sent while in the 'Sender Limited' state, as determined by the Local Host, when the Local Host is a sender. This state is entered whenever TCP transmission stops because there is no more data in sender's buffer." ::= { tcpEStatsSndCongEntry 3 } Mathis, et al [Page 16] tcpEStatsSndCongSndLimTransCwnd OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of transitions into the 'Congestion Limited' state, as determined by the Local Host, when the Local Host is a sender. This state is entered whenever TCP transmission stops due to congestion." ::= { tcpEStatsSndCongEntry 4 } tcpEStatsSndCongSndLimTimeCwnd OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The cumulative time (in msecs) spent in the 'Congestion Limited' state, as determined by the Local Host, when the Local Host is a sender. This state is entered whenever TCP transmission stops due to congestion." ::= { tcpEStatsSndCongEntry 5 } tcpEStatsSndCongSndLimBytesCwnd OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The cumulative bytes sent while in the 'Congestion Limited' state, as determined by the Local Host, when the Local Host is a sender. This state is entered whenever TCP transmission stops due to congestion." ::= { tcpEStatsSndCongEntry 6 } tcpEStatsSndCongSndLimTransRwin OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of transitions into the 'Receiver Limited' state, as determined by the Local Host, when the Local Host is a sender. This state is entered whenever TCP transmission stops due to Receiver not being able to receive data." ::= { tcpEStatsSndCongEntry 7 } tcpEStatsSndCongSndLimTimeRwin OBJECT-TYPE SYNTAX Counter32 Mathis, et al [Page 17] MAX-ACCESS read-only STATUS current DESCRIPTION "The cumulative time (in msecs) spent in the 'Receiver Limited' state, as determined by the Local Host, when the Local Host is a sender. This state is entered whenever TCP transmission stops due to Receiver not being able to receive data." ::= { tcpEStatsSndCongEntry 8 } tcpEStatsSndCongSndLimBytesRwin OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The cumulative bytes sent while in the 'Receiver Limited' state, as determined by the Local Host, when the Local Host is a sender. This state is entered whenever TCP transmission stops due to Receiver not being able to receive data." ::= { tcpEStatsSndCongEntry 9 } tcpEStatsSndCongSlowStart OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Slow Start Window Opens." ::= { tcpEStatsSndCongEntry 10 } tcpEStatsSndCongCongAvoid OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Congestion Avoidance Window Opens." ::= { tcpEStatsSndCongEntry 11 } tcpEStatsSndCongCongSignals OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of multiplicative downward congestion window adjustments due to all forms of congestion signals, including Fast Retransmit, ECN and timeouts. Congestion events which are backed out or suppressed due to overlap Mathis, et al [Page 18] with other events (e.g. Fast Retransmit or ECN followed by a timeout) SHOULD NOT be included. Note that retransmission timeouts reduce the window implicitly by updating ssthresh and a subsequent slowstart." ::= { tcpEStatsSndCongEntry 12 } tcpEStatsSndCongOtherReductions OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of congestion window reductions made by the Local Host as the result anything other than AIMD congestion algorithms. All window reductions MUST be counted as either CongestionSignals or OtherReductions. Examples of non-multiplicative window reductions include sloestart restart and experimental algorithms such as Vegas [VEGAS] CAM." ::= { tcpEStatsSndCongEntry 13 } tcpEStatsSndCongCongOverCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of events counted in CongestionSignals, which were backed out after it is infeasible to backout related variables such as SumCwndAtCong." ::= { tcpEStatsSndCongEntry 14 } tcpEStatsSndCongCurCwnd OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The Local Host's current value of snd_cwnd on this connection, in bytes." ::= { tcpEStatsSndCongEntry 15 } tcpEStatsSndCongSumCwndAtCong OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The sum of the Local Host's values of snd_cwnd captured each time recovery is entered, in bytes. This MUST be updated with CongestionSignals such that the ratio is the Mathis, et al [Page 19] average window at congestion signal." ::= { tcpEStatsSndCongEntry 16 } tcpEStatsSndCongMaxCwnd OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The largest value attained by the Local Host's snd_cwnd on this connection, in bytes." ::= { tcpEStatsSndCongEntry 17 } tcpEStatsSndCongCurSsthresh OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The Local Host's current value of snd_ssthresh on this connection, in bytes." ::= { tcpEStatsSndCongEntry 18 } tcpEStatsSndCongMaxSsthresh OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The largest non-initial value attained by the Local Host's snd_ssthresh on this connection, in bytes." ::= { tcpEStatsSndCongEntry 19 } tcpEStatsSndCongMinSsthresh OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The smallest value attained by the Local Host's snd_ssthresh on this connection, in bytes." ::= { tcpEStatsSndCongEntry 20 } -- -- TCP Path Table -- tcpEStatsPathTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpEStatsPathEntry MAX-ACCESS not-accessible STATUS current Mathis, et al [Page 20] DESCRIPTION "Instruments that characterize the segment loss mechanism by collecting statistics on how the losses are correlated to other losses and protocol events. Instruments at the sender to detect other types of non-loss congestion signals such as source quench or ECN. It also Instruments at the sender to infer that the TCP's reliable delivery mechanisms are being confused by packet reordering on the path from the sender to the receiver. Sender's maximum segment size, and the range of values explored by the MTU discovery algorithm. " ::= { tcpEStats 5 } tcpEStatsPathEntry OBJECT-TYPE SYNTAX TcpEStatsPathEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Stats per connection." INDEX { tcpEStatsConnectIdId } ::= { tcpEStatsPathTable 1 } TcpEStatsPathEntry ::= SEQUENCE { tcpEStatsPathFastRetran Counter32, tcpEStatsPathTimeouts Counter32, tcpEStatsPathSubsequentTimeouts Counter32, tcpEStatsPathCurTimeoutCount Gauge32, tcpEStatsPathAbruptTimeouts Counter32, tcpEStatsPathPktsRetrans Counter32, tcpEStatsPathBytesRetrans Counter32, tcpEStatsPathDupAcksIn Counter32, tcpEStatsPathSACKsRcvd Counter32, tcpEStatsPathSACKBlocksRcvd Counter32, tcpEStatsPathPreCongSumRTT Counter32, tcpEStatsPathPreCongCountRTT Counter32, tcpEStatsPathPostCongSumRTT Counter32, tcpEStatsPathPostCongCountRTT Counter32, tcpEStatsPathECERcvd Counter32, tcpEStatsPathSendStall Counter32, tcpEStatsPathQuenchRcvd Counter32, tcpEStatsPathMaxRetranThresh Gauge32, tcpEStatsPathNonRecovDA Counter32, tcpEStatsPathAckAfterFR Counter32, tcpEStatsPathDSACKDups Counter32, tcpEStatsPathSampleRTT Gauge32, tcpEStatsPathSmoothedRTT Gauge32, tcpEStatsPathMaxRTT Gauge32, Mathis, et al [Page 21] tcpEStatsPathMinRTT Gauge32, tcpEStatsPathSumRTT Counter64, tcpEStatsPathCountRTT Counter32, tcpEStatsPathCurRTO Gauge32, tcpEStatsPathMaxRTO Gauge32, tcpEStatsPathMinRTO Gauge32, tcpEStatsPathCurMSS Gauge32, tcpEStatsPathMaxMSS Gauge32, tcpEStatsPathMinMSS Gauge32 } tcpEStatsPathFastRetran OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of invocations of the Fast Retransmit algorithm when Local Host is the sender." ::= { tcpEStatsPathEntry 1 } tcpEStatsPathTimeouts OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of timeouts experienced by the connection, when the Local Host is the sender and the RTO multiplier is 1." ::= { tcpEStatsPathEntry 2 } tcpEStatsPathSubsequentTimeouts OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of timeouts experienced by the connection, when the Local Host is the sender and the RTO multiplier is greater than one." ::= { tcpEStatsPathEntry 3 } tcpEStatsPathCurTimeoutCount OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Current number of times that RTO has been increased due to repeated timeouts. The timeout multiplier is typically Mathis, et al [Page 22] 2^CurrTimeoutCount." ::= { tcpEStatsPathEntry 4 } tcpEStatsPathAbruptTimeouts OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Total number of timeouts that occurred without any preceding duplicate acknowledgments or other hints of congestion." ::= { tcpEStatsPathEntry 5 } tcpEStatsPathPktsRetrans OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of pkts retransmitted on the connection by the Local Host." ::= { tcpEStatsPathEntry 6 } tcpEStatsPathBytesRetrans OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of bytes retransmitted on the connection by the Local Host." ::= { tcpEStatsPathEntry 7 } tcpEStatsPathDupAcksIn OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of duplicate ACKs received on the connection by the Local Host." ::= { tcpEStatsPathEntry 8 } tcpEStatsPathSACKsRcvd OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of SACK options on the connection, received by the Local Host, that represent new data arriving at the Mathis, et al [Page 23] Remote Host." ::= { tcpEStatsPathEntry 9 } tcpEStatsPathSACKBlocksRcvd OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of SACK blocks on the connection, received by the Local Host, that represent new data arriving at the Remote Host." ::= { tcpEStatsPathEntry 10 } tcpEStatsPathPreCongSumRTT OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Sum of the RTT as measured just before congestion." ::= { tcpEStatsPathEntry 11 } tcpEStatsPathPreCongCountRTT OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Count of the RTT as measured just before congestion." ::= { tcpEStatsPathEntry 12 } tcpEStatsPathPostCongSumRTT OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Sum of the RTT as measured just after congestion." ::= { tcpEStatsPathEntry 13 } tcpEStatsPathPostCongCountRTT OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Count of the RTT as measured just after congestion." ::= { tcpEStatsPathEntry 14 } tcpEStatsPathECERcvd OBJECT-TYPE SYNTAX Counter32 Mathis, et al [Page 24] MAX-ACCESS read-only STATUS current DESCRIPTION "The number of Congestion Signals delivered via ECE." ::= { tcpEStatsPathEntry 15 } tcpEStatsPathSendStall OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of interface stalls or other sender local resources that are treated as congestion signals." ::= { tcpEStatsPathEntry 16 } tcpEStatsPathQuenchRcvd OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of ICMP quench messages that are treated a congestion signals." ::= { tcpEStatsPathEntry 17 } tcpEStatsPathMaxRetranThresh OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Duplicate ACKs needed to trigger FR." ::= { tcpEStatsPathEntry 18 } tcpEStatsPathNonRecovDA OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Duplicate acks (or SACKS) that did not tragger fastretransmit because they were withdrawn prior to reaching MaxRetranThresh." ::= { tcpEStatsPathEntry 19 } tcpEStatsPathAckAfterFR OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION Mathis, et al [Page 25] "ACKs following FR, but not due to FR (way ooo)." ::= { tcpEStatsPathEntry 20 } tcpEStatsPathDSACKDups OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of duplicate segments by the Remote Host using DSACKs." ::= { tcpEStatsPathEntry 21 } tcpEStatsPathSampleRTT OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The most recent round trip time sample in milliseconds for this connection, as seen by the Local Host." ::= { tcpEStatsPathEntry 22 } tcpEStatsPathSmoothedRTT OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The smoothed round trip time in milliseconds for this connection, as seen by the Local Host." ::= { tcpEStatsPathEntry 23 } tcpEStatsPathMaxRTT OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum round trip time sample seen on this connection by the Local Host, in milliseconds." ::= { tcpEStatsPathEntry 24 } tcpEStatsPathMinRTT OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The smallest round trip time sample seen on this connection by the Local Host, in milliseconds." ::= { tcpEStatsPathEntry 25 } Mathis, et al [Page 26] tcpEStatsPathSumRTT OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Cumulative round trip times seen on this connection by the Local Host, in milliseconds." ::= { tcpEStatsPathEntry 26 } tcpEStatsPathCountRTT OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Count of RTT samples included in SumRTT." ::= { tcpEStatsPathEntry 27 } tcpEStatsPathCurRTO OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current value of the retransmit timeout limit (in milliseconds, not including the backoff timer) for this connection, as kept by the Local Host." ::= { tcpEStatsPathEntry 28 } tcpEStatsPathMaxRTO OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum value of the retransmit timeout limit (in milliseconds, not including the backoff timer) for this connection, as seen by the Local Host." ::= { tcpEStatsPathEntry 29 } tcpEStatsPathMinRTO OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The smallest value of the retransmit timeout limit (in milliseconds, not including the backoff timer) for this connection, as seen by the Local Host." ::= { tcpEStatsPathEntry 30 } Mathis, et al [Page 27] tcpEStatsPathCurMSS OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current 'maximum segment size' in bytes used by the Local Host for this connection." ::= { tcpEStatsPathEntry 31 } tcpEStatsPathMaxMSS OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum value of the 'maximum segment size' in bytes used by the Local Host for this connection." ::= { tcpEStatsPathEntry 32 } tcpEStatsPathMinMSS OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The smallest value of the 'maximum segment size' in bytes used by the Local Host for this connection." ::= { tcpEStatsPathEntry 33 } -- -- TCP Sender Buffer Table -- tcpEStatsSendBuffTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpEStatsSendBuffEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Instruments on the senders buffer usage, including any buffering in the application interface to TCP and the retransmit queue." ::= { tcpEStats 6 } tcpEStatsSendBuffEntry OBJECT-TYPE SYNTAX TcpEStatsSendBuffEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Per connection sender buffer information." Mathis, et al [Page 28] INDEX { tcpEStatsConnectIdId } ::= { tcpEStatsSendBuffTable 1 } TcpEStatsSendBuffEntry ::= SEQUENCE { tcpEStatsSendBuffSndBuf Gauge32, tcpEStatsSendBuffCurRetranQueue Gauge32, tcpEStatsSendBuffMaxRetranQueue Gauge32, tcpEStatsSendBuffCurAppWQueue Gauge32, tcpEStatsSendBuffMaxAppWQueue Gauge32, tcpEStatsSendBuffSTuneMode INTEGER, tcpEStatsSendBuffSndbufSet Gauge32, tcpEStatsSendBuffSAppBuf Gauge32, tcpEStatsSendBuffSMaxWinBuf Gauge32, tcpEStatsSendBuffSXtra Gauge32, tcpEStatsSendBuffSTuneErr TruthValue } tcpEStatsSendBuffSndBuf OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current total amount of sender buffer memory available to the connection." ::= { tcpEStatsSendBuffEntry 1 } tcpEStatsSendBuffCurRetranQueue OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current amount of memory used for the retransmit queue." ::= { tcpEStatsSendBuffEntry 2 } tcpEStatsSendBuffMaxRetranQueue OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum amount of memory used for the retransmit queue." ::= { tcpEStatsSendBuffEntry 3 } tcpEStatsSendBuffCurAppWQueue OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION Mathis, et al [Page 29] "The current amount of memory used to hold data that has been written by the application, but has yet to be transmitted on the network for the first time." ::= { tcpEStatsSendBuffEntry 4 } tcpEStatsSendBuffMaxAppWQueue OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum amount of memory used to hold data that has been written by the application, but has yet to be transmitted on the network for the first time." ::= { tcpEStatsSendBuffEntry 5 } tcpEStatsSendBuffSTuneMode OBJECT-TYPE SYNTAX INTEGER { sndTModeDEFAULT(0), sndTModeSETSOCKOPT(1), sndTModeFIXED(2), sndTModeAUTO(3), sndTModeEXP1(4), sndTModeEXP2(5) } MAX-ACCESS read-write STATUS current DESCRIPTION "The mode used for the sender-side TCP tuning by the Local Host." ::= { tcpEStatsSendBuffEntry 6 } tcpEStatsSendBuffSndbufSet OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "A read/write gage to manually set the current buffer size, when sndTMode is sndTModeFIXED. Reading SndbufSet always reports the most recent write to SndbufSet, even if sndTMode is not sndTModeFIXED. Note that when entering manual (aka fixed) tuning modes SndbufSet should be updated before sndTMode." ::= { tcpEStatsSendBuffEntry 7 } tcpEStatsSendBuffSAppBuf OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-write Mathis, et al [Page 30] STATUS current DESCRIPTION "Advise to the auto-tuning algorithm in regards to the amount of buffer used to decouple the application from the TCP end-point. e.g. for the sender, limits (high, low or soft reservation) on the data queued before it is first transmitted." ::= { tcpEStatsSendBuffEntry 8 } tcpEStatsSendBuffSMaxWinBuf OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-write STATUS current DESCRIPTION "Advise to the auto-tuning algorithm in regards to the amount of buffer be used to support TCP retransmissions. e.g. limits on the TCP retransmit buffer. Its precise definition is tuning mode specific." ::= { tcpEStatsSendBuffEntry 9 } tcpEStatsSendBuffSXtra OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Additional mode specific advise to the auto-tuning algorithm." ::= { tcpEStatsSendBuffEntry 10 } tcpEStatsSendBuffSTuneErr OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "True indicates an autotuning error." ::= { tcpEStatsSendBuffEntry 11 } -- -- TCP Local Receiver Table -- tcpEStatsLocRecTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpEStatsRecEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Instruments on the state of the Local receiver and Mathis, et al [Page 31] instruments on the receiver buffer usage, including any buffering in the application interface to TCP and the reassembly queue." ::= { tcpEStats 7 } tcpEStatsRecEntry OBJECT-TYPE SYNTAX TcpEStatsRecEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Per connection information on the local receiver." INDEX { tcpEStatsConnectIdId } ::= { tcpEStatsLocRecTable 1 } TcpEStatsRecEntry ::= SEQUENCE { tcpEStatsRecCurRwinSent Gauge32, tcpEStatsRecMaxRwinSent Gauge32, tcpEStatsRecMinRwinSent Gauge32, tcpEStatsRecDupAcksOut Counter32, tcpEStatsRecRcvBuf Gauge32, tcpEStatsRecCurReasmQueue Gauge32, tcpEStatsRecMaxReasmQueue Gauge32, tcpEStatsRecCurAppRQueue Gauge32, tcpEStatsRecMaxAppRQueue Gauge32, tcpEStatsRecRTuneMode INTEGER, tcpEStatsRecRcvbufSet Gauge32, tcpEStatsRecRAppBuf Gauge32, tcpEStatsRecRMaxWinBuf Gauge32, tcpEStatsRecRXtra Gauge32, tcpEStatsRecRTuneErr TruthValue } tcpEStatsRecCurRwinSent OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current receiver window, in bytes, advertised by the Local Host for this connection." ::= { tcpEStatsRecEntry 1 } tcpEStatsRecMaxRwinSent OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum receiver window, in bytes, ever advertised by Mathis, et al [Page 32] the Local Host for this connection." ::= { tcpEStatsRecEntry 2 } tcpEStatsRecMinRwinSent OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The minimum receiver window, in bytes, ever advertised by the Local Host for this connection." ::= { tcpEStatsRecEntry 3 } tcpEStatsRecDupAcksOut OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of duplicate ACKs sent on the connection by the Local Host." ::= { tcpEStatsRecEntry 4 } tcpEStatsRecRcvBuf OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current total amount of receiver buffer memory available to the connection." ::= { tcpEStatsRecEntry 5 } tcpEStatsRecCurReasmQueue OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current amount of memory used for the reassembly queue." ::= { tcpEStatsRecEntry 6 } tcpEStatsRecMaxReasmQueue OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum amount of memory used for the reassembly queue." ::= { tcpEStatsRecEntry 7 } tcpEStatsRecCurAppRQueue OBJECT-TYPE Mathis, et al [Page 33] SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current amount of memory used to hold data that has been acknowledged to the sender but not delivered to the application." ::= { tcpEStatsRecEntry 8 } tcpEStatsRecMaxAppRQueue OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum amount of memory used to hold data that has been acknowledged to the sender but not delivered to the application." ::= { tcpEStatsRecEntry 9 } tcpEStatsRecRTuneMode OBJECT-TYPE SYNTAX INTEGER { recTModeDEFAULT(0), recTModeSETSOCKOPT(1), recTModeFIXED(2), recTModeAUTO(3), recTModeEXP1(4), recTModeEXP2(5) } MAX-ACCESS read-write STATUS current DESCRIPTION "The mode used for the receiver-side TCP tuning by the Local Host." ::= { tcpEStatsRecEntry 10 } tcpEStatsRecRcvbufSet OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "A read/write gauge to manually set the current buffer size, when RtuneMode is recTModeFIXED. Reading RcvbufSet always reports the most recent write to RcvbufSet, even if RtuneMode is not recTModeFIXED. Note that when entering manual (aka fixed) tuning modes RcvbufSet should be updated before RtuneMode." ::= { tcpEStatsRecEntry 11 } Mathis, et al [Page 34] tcpEStatsRecRAppBuf OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-write STATUS current DESCRIPTION "Advise to the auto-tuning algorithm in regards to the amount of buffer used to decouple the application from the TCP end-point. e.g. for the receiver, limits on the amount of buffer space available for data that has been acknowledged but not read by the application." ::= { tcpEStatsRecEntry 12 } tcpEStatsRecRMaxWinBuf OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-write STATUS current DESCRIPTION "Advise to the auto-tuning algorithm in regards to the amount of buffer be used to support TCP retransmissions. e.g. limits on the TCP reassembly buffer. Its precise definition is tuning mode specific." ::= { tcpEStatsRecEntry 13 } tcpEStatsRecRXtra OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Additional mode specific advise to the auto-tuning algorithm." ::= { tcpEStatsRecEntry 14 } tcpEStatsRecRTuneErr OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "True indicates an autotuning error." ::= { tcpEStatsRecEntry 15 } -- -- TCP Observed Receiver Window Table -- tcpEStatsObsRecTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpEStatsObsRecEntry MAX-ACCESS not-accessible Mathis, et al [Page 35] STATUS current DESCRIPTION "Instruments on receiver window updates that can be used to identify bottlenecks at the receiver. These can be collected at the sender or anywhere along the network path, including at the receiver." ::= { tcpEStats 8 } tcpEStatsObsRecEntry OBJECT-TYPE SYNTAX TcpEStatsObsRecEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Per connection information on receiver window." INDEX { tcpEStatsConnectIdId } ::= { tcpEStatsObsRecTable 1 } TcpEStatsObsRecEntry ::= SEQUENCE { tcpEStatsObsRecCurRwinRcvd Gauge32, tcpEStatsObsRecMaxRwinRcvd Gauge32, tcpEStatsObsRecMinRwinRcvd Gauge32 } tcpEStatsObsRecCurRwinRcvd OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current receiver window, in bytes, advertised by the Remote Host for this connection." ::= { tcpEStatsObsRecEntry 1 } tcpEStatsObsRecMaxRwinRcvd OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum receiver window, in bytes, ever advertised by the Remote Host for this connection." ::= { tcpEStatsObsRecEntry 2 } tcpEStatsObsRecMinRwinRcvd OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The minimum receiver window, in bytes, ever advertised by Mathis, et al [Page 36] the Remote Host for this connection." ::= { tcpEStatsObsRecEntry 3 } -- -- TCP Connection ID Table -- There is overlap with the new RFC2012 TCP Connection -- table. This approach was used to make it easier for -- implementations that may not have access to information in a -- sub-agent realizing the TCP Connection table. Also notice -- there is a semantic difference in the latency of row removal -- in this table. Row are expected to remain in this table longer -- than in a standard TCP Connection table. Other than this -- latency difference the semantics of the first six objects in -- this table are the same as the new TCP Connection table and -- the DESCRIPTIONS come from the new document. tcpEStatsConnectIdTable OBJECT-TYPE SYNTAX SEQUENCE OF TcpEStatsConnectIdEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table maps a connection ID used by other tables in this MIB Module with the information that uniquely identifies each active TCP connection. Entries are retained in this table for at least 30 seconds after the TCP connection first enters the closed state." ::= { tcpEStats 9 } tcpEStatsConnectIdEntry OBJECT-TYPE SYNTAX TcpEStatsConnectIdEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "" INDEX { tcpEStatsConnectLocalAddressType, tcpEStatsConnectLocalAddress, tcpEStatsConnectLocalPort, tcpEStatsConnectRemAddressType, tcpEStatsConnectRemAddress, tcpEStatsConnectRemPort } ::= { tcpEStatsConnectIdTable 1 } TcpEStatsConnectIdEntry ::= SEQUENCE { tcpEStatsConnectLocalAddressType InetAddressType, tcpEStatsConnectLocalAddress InetAddress, tcpEStatsConnectLocalPort InetPortNumber, Mathis, et al [Page 37] tcpEStatsConnectRemAddressType InetAddressType, tcpEStatsConnectRemAddress InetAddress, tcpEStatsConnectRemPort InetPortNumber, tcpEStatsConnectIdId Integer32 } tcpEStatsConnectLocalAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of tcpEStatsConnectLocalAddress. Only IPv4 and IPv6 addresses are expected." ::= { tcpEStatsConnectIdEntry 1 } tcpEStatsConnectLocalAddress OBJECT-TYPE SYNTAX InetAddress (SIZE(0..36)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The local IP address for this TCP connection. In the case of a connection in the listen state which is willing to accept connections for any IP interface associated with the node, a value of all zeroes is used." ::= { tcpEStatsConnectIdEntry 2 } tcpEStatsConnectLocalPort OBJECT-TYPE SYNTAX InetPortNumber MAX-ACCESS not-accessible STATUS current DESCRIPTION "The local port number for this TCP connection." ::= {tcpEStatsConnectIdEntry 3 } tcpEStatsConnectRemAddressType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The address type of tcpEStatsConnectRemAddress. Only IPv4 and IPv6 addresses are expected. Must be the same as tcpEStatsConnectLocalAddressType." ::= { tcpEStatsConnectIdEntry 4 } tcpEStatsConnectRemAddress OBJECT-TYPE SYNTAX InetAddress (SIZE(0..36)) MAX-ACCESS not-accessible STATUS current Mathis, et al [Page 38] DESCRIPTION "The remote IP address for this TCP connection." ::= { tcpEStatsConnectIdEntry 5 } tcpEStatsConnectRemPort OBJECT-TYPE SYNTAX InetPortNumber MAX-ACCESS not-accessible STATUS current DESCRIPTION "The remote port number for this TCP connection." ::= { tcpEStatsConnectIdEntry 6 } tcpEStatsConnectIdId OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "A unique integer value assigned to each TCP Connection entry. Assignment will begin at 1 and increase to the maximum value and then start again at 1 skipping in use values." ::= { tcpEStatsConnectIdEntry 7 } -- The tcpEStatsControl Group -- The scalar objects in this group are used to control the -- activation and deactivation of the TCP Extended Statistics -- tables in this module. -- tcpEStatsControlState OBJECT-TYPE SYNTAX TcpEStatsOperation MAX-ACCESS read-write STATUS current DESCRIPTION "Controls the activation of the TCP Connection State Statistics table." ::= { tcpEStatsControl 1 } tcpEStatsControlSynOpts OBJECT-TYPE SYNTAX TcpEStatsOperation MAX-ACCESS read-write STATUS current DESCRIPTION "Controls the activation of the TCP SYN Options table." ::= { tcpEStatsControl 2 } Mathis, et al [Page 39] tcpEStatsControlData OBJECT-TYPE SYNTAX TcpEStatsOperation MAX-ACCESS read-write STATUS current DESCRIPTION "Controls the activation of the TCP Data Table." ::= { tcpEStatsControl 3 } tcpEStatsControlSndCong OBJECT-TYPE SYNTAX TcpEStatsOperation MAX-ACCESS read-write STATUS current DESCRIPTION "Controls the activation of the TCP Sender Table." ::= { tcpEStatsControl 4 } tcpEStatsControlPath OBJECT-TYPE SYNTAX TcpEStatsOperation MAX-ACCESS read-write STATUS current DESCRIPTION "Controls the activation of the TCP Path Table." ::= { tcpEStatsControl 5 } tcpEStatsControlSendBuff OBJECT-TYPE SYNTAX TcpEStatsOperation MAX-ACCESS read-write STATUS current DESCRIPTION "Controls the activation of the TCP Sender Buffer Table." ::= { tcpEStatsControl 6 } tcpEStatsControlLocRec OBJECT-TYPE SYNTAX TcpEStatsOperation MAX-ACCESS read-write STATUS current DESCRIPTION "Controls the activation of the TCP Local Receiver Table." ::= { tcpEStatsControl 7 } tcpEStatsControlObsRec OBJECT-TYPE SYNTAX TcpEStatsOperation MAX-ACCESS read-write STATUS current DESCRIPTION "Controls the activation of the TCP Observed Receiver Window Table." Mathis, et al [Page 40] ::= { tcpEStatsControl 8 } tcpEStatsControlConnectId OBJECT-TYPE SYNTAX TcpEStatsOperation MAX-ACCESS read-write STATUS current DESCRIPTION "Controls the activation of the TCP Connection ID Table." ::= { tcpEStatsControl 9 } -- TCP Extended Statistics Notifications Group tcpEStatsSTuneErrNotification NOTIFICATION-TYPE OBJECTS { tcpEStatsSendBuffSTuneErr } STATUS current DESCRIPTION "" ::= { tcpEStatsNotifications 1 } tcpEStatsRTuneErrNotification NOTIFICATION-TYPE OBJECTS { tcpEStatsRecRTuneErr } STATUS current DESCRIPTION "" ::= { tcpEStatsNotifications 2 } -- -- Conformance Definitions -- tcpEStatsCompliances OBJECT IDENTIFIER ::= { tcpEStatsConformance 1 } tcpEStatsGroups OBJECT IDENTIFIER ::= { tcpEStatsConformance 2 } -- Compliance Statements tcpEStatsCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance statement for all systems that implement TCP extended statistics." Mathis, et al [Page 41] MODULE -- this module MANDATORY-GROUPS { tcpEStats, tcpEStatsControl, tcpEStatsNotifications } ::= { tcpEStatsCompliances 1 } -- Units of Conformance tcpEStatsGroup OBJECT-GROUP OBJECTS { tcpEStatsConnectionState, tcpEStatsConnectionSACK, tcpEStatsConnectionTimeStamps, tcpEStatsConnectionECN, tcpEStatsConnectionNagle, tcpEStatsConnectionWinScaleRcvd, tcpEStatsConnectionWinScaleSent, tcpEStatsSynOptsSACKSent, tcpEStatsSynOptsSACKRcvd, tcpEStatsSynOptsTimeStampSent, tcpEStatsSynOptsTimeStampRcvd, tcpEStatsSynOptsActiveOpen, tcpEStatsDataPktsOut, tcpEStatsDataDataPktsOut, tcpEStatsDataAckPktsOut, tcpEStatsDataDataBytesOut, tcpEStatsDataPktsIn, tcpEStatsDataDataPktsIn, tcpEStatsDataAckPktsIn, tcpEStatsDataDataBytesIn, tcpEStatsDataSndUna, tcpEStatsDataSndNxt, tcpEStatsDataSndMax, tcpEStatsDataThruBytesSent, tcpEStatsDataSendInitial, tcpEStatsDataSendWraps, tcpEStatsDataRcvNxt, tcpEStatsDataThruBytesReceived, tcpEStatsDataRecInitial, tcpEStatsDataRecWraps, tcpEStatsDataCurTime, tcpEStatsDataStartTime, tcpEStatsSndCongSndLimTransSnd, tcpEStatsSndCongSndLimTimeSnd, tcpEStatsSndCongSndLimBytesSnd, tcpEStatsSndCongSndLimTransCwnd, tcpEStatsSndCongSndLimTimeCwnd, tcpEStatsSndCongSndLimBytesCwnd, tcpEStatsSndCongSndLimTransRwin, tcpEStatsSndCongSndLimTimeRwin, tcpEStatsSndCongSndLimBytesRwin, tcpEStatsSndCongSlowStart, tcpEStatsSndCongCongAvoid, tcpEStatsSndCongCongSignals, tcpEStatsSndCongOtherReductions, tcpEStatsSndCongCongOverCount, Mathis, et al [Page 42] tcpEStatsSndCongCurCwnd, tcpEStatsSndCongSumCwndAtCong, tcpEStatsSndCongMaxCwnd, tcpEStatsSndCongCurSsthresh, tcpEStatsSndCongMaxSsthresh, tcpEStatsSndCongMinSsthresh, tcpEStatsPathFastRetran, tcpEStatsPathTimeouts, tcpEStatsPathSubsequentTimeouts, tcpEStatsPathCurTimeoutCount, tcpEStatsPathAbruptTimeouts, tcpEStatsPathPktsRetrans, tcpEStatsPathBytesRetrans, tcpEStatsPathDupAcksIn, tcpEStatsPathSACKsRcvd, tcpEStatsPathSACKBlocksRcvd, tcpEStatsPathPreCongSumRTT, tcpEStatsPathPreCongCountRTT, tcpEStatsPathPostCongSumRTT, tcpEStatsPathPostCongCountRTT, tcpEStatsPathECERcvd, tcpEStatsPathSendStall, tcpEStatsPathQuenchRcvd, tcpEStatsPathMaxRetranThresh, tcpEStatsPathNonRecovDA, tcpEStatsPathAckAfterFR, tcpEStatsPathDSACKDups, tcpEStatsPathSampleRTT, tcpEStatsPathSmoothedRTT, tcpEStatsPathMaxRTT, tcpEStatsPathMinRTT, tcpEStatsPathSumRTT, tcpEStatsPathCountRTT, tcpEStatsPathCurRTO, tcpEStatsPathMaxRTO, tcpEStatsPathMinRTO, tcpEStatsPathCurMSS, tcpEStatsPathMaxMSS, tcpEStatsPathMinMSS, tcpEStatsSendBuffSndBuf, tcpEStatsSendBuffCurRetranQueue, tcpEStatsSendBuffMaxRetranQueue, tcpEStatsSendBuffCurAppWQueue, tcpEStatsSendBuffMaxAppWQueue, tcpEStatsSendBuffSTuneMode, tcpEStatsSendBuffSndbufSet, tcpEStatsSendBuffSAppBuf, tcpEStatsSendBuffSMaxWinBuf, tcpEStatsSendBuffSXtra, tcpEStatsSendBuffSTuneErr, tcpEStatsRecCurRwinSent, tcpEStatsRecMaxRwinSent, tcpEStatsRecMinRwinSent, tcpEStatsRecDupAcksOut, tcpEStatsRecRcvBuf, tcpEStatsRecCurReasmQueue, tcpEStatsRecMaxReasmQueue, tcpEStatsRecCurAppRQueue, tcpEStatsRecMaxAppRQueue, tcpEStatsRecRTuneMode, tcpEStatsRecRcvbufSet, tcpEStatsRecRAppBuf, tcpEStatsRecRMaxWinBuf, tcpEStatsRecRXtra, tcpEStatsRecRTuneErr, tcpEStatsObsRecCurRwinRcvd, Mathis, et al [Page 43] tcpEStatsObsRecMaxRwinRcvd, tcpEStatsObsRecMinRwinRcvd, tcpEStatsConnectIdId } STATUS current DESCRIPTION "The tcpEStats group is mandatory for all systems that implement this MIB Module." ::= { tcpEStatsGroups 1 } tcpEStatsControlGroup OBJECT-GROUP OBJECTS { tcpEStatsControlState, tcpEStatsControlSynOpts, tcpEStatsControlData, tcpEStatsControlSndCong, tcpEStatsControlPath, tcpEStatsControlSendBuff, tcpEStatsControlLocRec, tcpEStatsControlObsRec, tcpEStatsControlConnectId } STATUS current DESCRIPTION "The tcpEStatsControl group is mandatory for all systems that claim conformance to this MIB Module." ::= { tcpEStatsGroups 2 } tcpEStatsNotificationsGroup NOTIFICATION-GROUP NOTIFICATIONS { tcpEStatsSTuneErrNotification, tcpEStatsRTuneErrNotification } STATUS current DESCRIPTION "Notifications sent by a TCP extended statistics agent." ::= { tcpEStatsGroups 3 } END 44.. SSeeccuurriittyy CCoonnssiiddeerraattiioonnss 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 envi¡ ronment without proper protection can have a negative effect on Mathis, et al [Page 44] network operations. There are a number of managed objects in this MIB that may contain sensitive information. These are: tcpEStatsConnectRemAddress 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 fea¡ tures as provided by the SNMPv3 framework. Specifically, the use of the User-based Security Model RFC 2574 [RFC2574] and the View-based Access Control Model RFC 2575 [RFC2575] 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 config¡ ured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/cre¡ ate/delete) them. 55.. AACCKKNNOOWWLLEEDDGGMMEENNTTSS This document is a product of Web100 (see: www.web100.org), a joint project of the Pittsburgh Supercomputing Center (www.psc.edu), National Center for Atmospheric Research (www.ncar.ucar.edu) and National Center for Supercomputer Applications (www.ncsa.edu). It was supported by the National Science Foundation under Grant No. 0083285 and a research grant from Cisco Systems. Some of the object descriptions are based on an earlier unpublished document by Jeff Semke. 66.. RREEFFEERREENNCCEESS [RFC1155] Rose, M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", STD 16, RFC 1155, May 1990. Mathis, et al [Page 45] [RFC1157] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, May 1990. [RFC1212] Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC 1212, March 1991. [RFC1215] Rose, M., "A Convention for Defining Traps for use with the SNMP", RFC 1215, March 1991. [RFC1901] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Intro¡ duction to Community-based SNMPv2", RFC 1901, January 1996. [RFC1906] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Trans¡ port Mappings for Version 2 of the Simple Network Management Proto¡ col (SNMPv2)", RFC 1906, January 1996. [RFC1905] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Proto¡ col Operations for Version 2 of the Simple Network Management Pro¡ tocol (SNMPv2)", RFC 1905, January 1996. [RFC2012] McCloghrie, K., "SNMPv2 Management Information Base for the Transmission Control Protocol using SMIv2", RFC 2012, November 1996. [RFC2012bis] Bill Fenner, et al, "Management Information Base for the Transmission Control Protocol (TCP)" Internet-Draft draft-ietf- ipngwg-rfc2012-update-00.txt, expires January 2002. [RFC2573] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC 2573, April 1999. [RFC2575] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", RFC 2575, April 1999. [RFC1907] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, q(Man¡ agement Information Base for Version 2 of the Simple Network Man¡ agement Protocol (SNMPv2) q, RFC 1907, January 1996. [RFC2233] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB using SMIv2", RFC 2233, Cisco Systems, FTP Software, November 1997. [RFC2570] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduc¡ tion to Version 3 of the Internet-standard Network Management Framework", RFC 2570, April 1999. Mathis, et al [Page 46] [RFC2571] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2571, April 1999. [RFC2572] Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management Proto¡ col (SNMP)", RFC 2572, April 1999. [RFC2574] Blumenthal, U., and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2574, April 1999. [RFC2578] 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. [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999. [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., and S. Waldbusser, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999. 12. EDITORS' ADDRESSES Matt Mathis Raghu Reddy Pittsburgh Supercomputing Center 4400 Fifth Ave Pittsburgh, PA 15216 mathis@web100.org Jon Saperia JDS Consulting 174 Chapman Street Watertown, MA 02472 email - saperia@jdscons.com 13. INTELLECTUAL PROPERTY The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to Mathis, et al [Page 47] 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 pro¡ prietary rights by implementers 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 Execu¡ tive Director. 14. Full Copyright Statement Copyright (C) The Internet Society (2000). All Rights Reserved. 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, pub¡ lished and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this para¡ graph are included on all such copies and derivative works. How¡ ever, 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 proce¡ dures 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. Mathis, et al [Page 48] This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGI¡ NEERING 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 WAR¡ RANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. TTaabbllee ooff CCoonntteennttss 1. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . 2 2. The SNMP Management Framework . . . . . . . . . . . . . . . 2 3. TCP Extended Statistics MIB . . . . . . . . . . . . . . . . 2 4. Security Considerations . . . . . . . . . . . . . . . . . . 2 5. ACKNOWLEDGMENTS . . . . . . . . . . . . . . . . . . . . . . 2 6. REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . 2 Mathis, et al [Page 49]