Internet-Draft                                            Matt Mathis
                                                          Raghu Reddy
                                                         John Heffner
                                     Pittsburgh Supercomputing Center
                                                           J. Saperia
                                                  JDS Consulting, Inc

                      TCP Extended Statistics MIB
             draft-ietf-tsvwg-tcp-mib-extension-01.txt
                               June 2002

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."

   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 in the sender, the receiver or the network itself.  If the
   bottleneck is in the network, TCP can provide specific information
   about its nature.







Mathis, et al                                                   [Page 1]


Internet-Draft Expires Jan 2003                                June 2002


1. INTRODUCTION

   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 network itself.  If the
   bottleneck 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
   presenting 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
   documents are merged.

   This document is automatically generated from a database of potential
   TCP instruments.  The most current version can be obtained from
   http://www.psc.edu/~mathis/papers/draft-ietf-tsvwg-tcp-mib-extension-
   XX.txt Please use tsvwg@ietf.org to send comments to the entire TSV
   WG.

2. The SNMP Management Framework

   The SNMP Management Framework presently consists of five major
   components:

   An overall architecture, described in RFC 2571 [RFC2571].

   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].

   Message protocols for transferring management information.  The first
   version of the SNMP message protocol is called SNMPv1 and described



Mathis, et al                                                   [Page 2]


Internet-Draft Expires Jan 2003                                June 2002


   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 message protocol is called
   SNMPv3 and described in RFC 1906 [RFC1906], RFC 2572 [RFC2572] and
   RFC 2574 [RFC2574].

   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 protocol operations and
   associated PDU formats is described in RFC 1905 [RFC1905].  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.

3. TCP Extended Statistics MIB



















Mathis, et al                                                   [Page 3]


Internet-Draft Expires Jan 2003                                June 2002


   TCP-ESTATS-MIB DEFINITIONS ::= BEGIN
   IMPORTS
          MODULE-IDENTITY, Counter32, Integer32,
          Gauge32, OBJECT-TYPE, Counter64, experimental
              FROM SNMPv2-SMI
          MODULE-COMPLIANCE, OBJECT-GROUP
              FROM SNMPv2-CONF
          TEXTUAL-CONVENTION,
          DateAndTime, TruthValue
              FROM SNMPv2-TC
          InetAddressType, InetAddress,
          InetPortNumber
              FROM INET-ADDRESS-MIB;

   tcpEStatsMIB MODULE-IDENTITY
       LAST-UPDATED "200202202002Z"  -- February 20, 2002
       ORGANIZATION "IETF TSV 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 "200202202002Z"  -- February 20, 2002
       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 4]


Internet-Draft Expires Jan 2003                                June 2002


   -- 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,
           tcpEStatsConnectionECN              TruthValue,
           tcpEStatsConnectionNagle            TruthValue,



Mathis, et al                                                   [Page 5]


Internet-Draft Expires Jan 2003                                June 2002


           tcpEStatsConnectionSndWindScale     Integer32,
           tcpEStatsConnectionRcvWindScale     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
          "True(1) if SACK has been negotiated on, else false(2). See
           RFC 2018."
       ::= { tcpEStatsConnectionEntry 2 }

   tcpEStatsConnectionTimeStamps  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "true(1) if timestamps have been negotiated on, else
           false(2). See RFC 1323."
       ::= { tcpEStatsConnectionEntry 3 }

   tcpEStatsConnectionECN  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current



Mathis, et al                                                   [Page 6]


Internet-Draft Expires Jan 2003                                June 2002


       DESCRIPTION
          "True(1) if ECN has been negotiated on, else false(2)."
       ::= { tcpEStatsConnectionEntry 4 }

   tcpEStatsConnectionNagle  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "True(1) if the Nagle algorithm is being used, else
           false(2)."
       ::= { tcpEStatsConnectionEntry 5 }

   tcpEStatsConnectionSndWindScale  OBJECT-TYPE
       SYNTAX          Integer32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of Snd.Wind.Scale from RFC 1323. Note that
           SndWindScale is either zero or the same as WinScaleRcvd."
       ::= { tcpEStatsConnectionEntry 6 }

   tcpEStatsConnectionRcvWindScale  OBJECT-TYPE
       SYNTAX          Integer32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of Rcv.Wind.Scale from RFC 1323. Note that
           RcvWindScale is either zero or the same as WinScaleSent."
       ::= { tcpEStatsConnectionEntry 7 }

   --
   -- TCP SYN Options
   --

   tcpEStatsSynOptsTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsSynOptsEntry
       MAX-ACCESS  not-accessible
       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



Mathis, et al                                                   [Page 7]


Internet-Draft Expires Jan 2003                                June 2002


       STATUS       current
       DESCRIPTION
           "Per connection SYN and SYN-ACk options."
              INDEX { tcpEStatsConnectIdId }
       ::= { tcpEStatsSynOptsTable 1 }

   TcpEStatsSynOptsEntry ::= SEQUENCE {
           tcpEStatsSynOptsActiveOpen          TruthValue,
           tcpEStatsSynOptsMSSSent             Gauge32,
           tcpEStatsSynOptsMSSRcvd             Gauge32,
           tcpEStatsSynOptsWinScaleSent        Integer32,
           tcpEStatsSynOptsWinScaleRcvd        Integer32,
           tcpEStatsSynOptsSACKokSent          TruthValue,
           tcpEStatsSynOptsSACKokRcvd          TruthValue,
           tcpEStatsSynOptsTimeStampSent       TruthValue,
           tcpEStatsSynOptsTimeStampRcvd       TruthValue
       }

   tcpEStatsSynOptsActiveOpen  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "True(1) if the local connection traversed the SYN-SENT
           state. See RFC 793."
       ::= { tcpEStatsSynOptsEntry 1 }

   tcpEStatsSynOptsMSSSent  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value sent in an MSS option, or zero if none."
       ::= { tcpEStatsSynOptsEntry 2 }

   tcpEStatsSynOptsMSSRcvd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value received in an MSS option, or zero if none."
       ::= { tcpEStatsSynOptsEntry 3 }

   tcpEStatsSynOptsWinScaleSent  OBJECT-TYPE
       SYNTAX          Integer32 (-1..14)
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION



Mathis, et al                                                   [Page 8]


Internet-Draft Expires Jan 2003                                June 2002


          "The value of the transmitted window scale option if one was
           sent; otherwise, a value of -1. See RFC 1323."
       ::= { tcpEStatsSynOptsEntry 4 }

   tcpEStatsSynOptsWinScaleRcvd  OBJECT-TYPE
       SYNTAX          Integer32 (-1..14)
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of the received window scale option if one was
           received; otherwise, a value of -1. See RFC 1323."
       ::= { tcpEStatsSynOptsEntry 5 }

   tcpEStatsSynOptsSACKokSent  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "True(1) if SACKok option was sent, else false(2). See RFC
           2018."
       ::= { tcpEStatsSynOptsEntry 6 }

   tcpEStatsSynOptsSACKokRcvd  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "True(1) if SACKok option was received, else false(2). See
           RFC 2018."
       ::= { tcpEStatsSynOptsEntry 7 }

   tcpEStatsSynOptsTimeStampSent  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "True(1) if Timestamp option was sent, else false(2). See
           RFC 1323."
       ::= { tcpEStatsSynOptsEntry 8 }

   tcpEStatsSynOptsTimeStampRcvd  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "True(1) if Timestamp option was received, else false(2).
           See RFC 1323."
       ::= { tcpEStatsSynOptsEntry 9 }



Mathis, et al                                                   [Page 9]


Internet-Draft Expires Jan 2003                                June 2002


   --
   -- 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,
           tcpEStatsDataDataBytesOut           Counter64,
           tcpEStatsDataPktsIn                 Counter32,
           tcpEStatsDataDataPktsIn             Counter32,
           tcpEStatsDataDataBytesIn            Counter64,
           tcpEStatsDataSoftErrors             Counter32,
           tcpEStatsDataSoftErrorReason        INTEGER,
           tcpEStatsDataSndUna                 Counter32,
           tcpEStatsDataSndNxt                 Integer32,
           tcpEStatsDataSndMax                 Counter32,
           tcpEStatsDataThruBytesAcked         Counter64,
           tcpEStatsDataSndInitial             Counter32,
           tcpEStatsDataSendWraps              Counter32,
           tcpEStatsDataRcvNxt                 Counter32,
           tcpEStatsDataThruBytesReceived      Counter64,
           tcpEStatsDataRecInitial             Counter32,
           tcpEStatsDataCurTime                Integer64,
           tcpEStatsDataStartTime              Counter32
       }

   tcpEStatsDataPktsOut  OBJECT-TYPE
       SYNTAX          Counter32



Mathis, et al                                                  [Page 10]


Internet-Draft Expires Jan 2003                                June 2002


       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The total number of packets sent."
       ::= { tcpEStatsDataEntry 1 }

   tcpEStatsDataDataPktsOut  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of packets sent containing a positive length
           data segment."
       ::= { tcpEStatsDataEntry 2 }

   tcpEStatsDataDataBytesOut  OBJECT-TYPE
       SYNTAX          Counter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets of data contained in transmitted
           segments, including retransmitted data."
       ::= { tcpEStatsDataEntry 3 }

   tcpEStatsDataPktsIn  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of packets received."
       ::= { tcpEStatsDataEntry 4 }

   tcpEStatsDataDataPktsIn  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of packets received containing a positive length
           data segment."
       ::= { tcpEStatsDataEntry 5 }

   tcpEStatsDataDataBytesIn  OBJECT-TYPE
       SYNTAX          Counter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets contained in received data segments,
           including retransmitted data. Note that this does not



Mathis, et al                                                  [Page 11]


Internet-Draft Expires Jan 2003                                June 2002


           include TCP headers."
       ::= { tcpEStatsDataEntry 6 }

   tcpEStatsDataSoftErrors  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number packets that fail various consistency tests."
       ::= { tcpEStatsDataEntry 7 }

   tcpEStatsDataSoftErrorReason  OBJECT-TYPE
       SYNTAX          INTEGER {
          belowDataWindow(1),
          aboveDataWindow(2),
          belowAckWindow(3),
          aboveAckWindow(4),
          belowTSWindow(5),
          aboveTSWindow(6),
          dataCheckSum(7)
       }
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Identifies the consistency test that most recently failed."
       ::= { tcpEStatsDataEntry 8 }

   tcpEStatsDataSndUna  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Oldest Unacknowledged Sequence Number."
       ::= { tcpEStatsDataEntry 9 }

   tcpEStatsDataSndNxt  OBJECT-TYPE
       SYNTAX          Integer32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of SND.NXT, the next sequence number to be sent.
           Note that TCP can retransmit lost data by pulling SndNxt
           back to the lost data. See 793."
       ::= { tcpEStatsDataEntry 10 }

   tcpEStatsDataSndMax  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only



Mathis, et al                                                  [Page 12]


Internet-Draft Expires Jan 2003                                June 2002


       STATUS          current
       DESCRIPTION
          "The farthest forward SND.NXT value. Note that this will be
           equal to snd_nxt except when snd_nxt is pulled back during
           a recovery."
       ::= { tcpEStatsDataEntry 11 }

   tcpEStatsDataThruBytesAcked  OBJECT-TYPE
       SYNTAX          Counter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets for which cumulative acknowledgments
           have been received. Note that this will be the sum of
           changes in snd_una, accounting for sequence wraps."
       ::= { tcpEStatsDataEntry 12 }

   tcpEStatsDataSndInitial  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Initial send 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 }

   tcpEStatsDataRcvNxt  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of RCV.NXT from RFC 793. The next sequence number
           expected on an incoming segment, and the left or lower edge
           of the receive window."
       ::= { tcpEStatsDataEntry 15 }

   tcpEStatsDataThruBytesReceived  OBJECT-TYPE
       SYNTAX          Counter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION



Mathis, et al                                                  [Page 13]


Internet-Draft Expires Jan 2003                                June 2002


          "The number of octets for which cumulative acknowledgments
           have been sent. Note that this will be the sum of changes
           in rcv_nxt, accounting for sequence wraps."
       ::= { tcpEStatsDataEntry 16 }

   tcpEStatsDataRecInitial  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Initial receive sequence number."
       ::= { tcpEStatsDataEntry 17 }

   tcpEStatsDataCurTime  OBJECT-TYPE
       SYNTAX          DateAndTime
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Connection duration in micro-seconds from StartTime to the
           most recent protocol event (packet sent or received)."
       ::= { tcpEStatsDataEntry 18 }

   tcpEStatsDataStartTime  OBJECT-TYPE
       SYNTAX          DateAndTime
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Time of the start of the connection."
       ::= { tcpEStatsDataEntry 19 }

   --
   -- 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



Mathis, et al                                                  [Page 14]


Internet-Draft Expires Jan 2003                                June 2002


           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 triage statistics."
              INDEX { tcpEStatsConnectIdId }
       ::= { tcpEStatsSndCongTable 1 }

   TcpEStatsSndCongEntry ::= SEQUENCE {
       }
   TcpEStatsSndCongEntry ::= SEQUENCE {
           tcpEStatsSndCongSndLimTransRwin     Counter32,
           tcpEStatsSndCongSndLimTimeRwin      Counter32,
           tcpEStatsSndCongSndLimBytesRwin     Counter64,
           tcpEStatsSndCongSndLimTransCwnd     Counter32,
           tcpEStatsSndCongSndLimTimeCwnd      Counter32,
           tcpEStatsSndCongSndLimBytesCwnd     Counter64,
           tcpEStatsSndCongSndLimTransSnd      Counter32,
           tcpEStatsSndCongSndLimTimeSnd       Counter32,
           tcpEStatsSndCongSndLimBytesSnd      Counter64,
           tcpEStatsSndCongSlowStart           Counter32,
           tcpEStatsSndCongCongAvoid           Counter32,
           tcpEStatsSndCongCongSignals         Counter32,
           tcpEStatsSndCongOtherReductions     Counter32,
           tcpEStatsSndCongCongOverCount       Counter32,
           tcpEStatsSndCongCurCwnd             Gauge32,
           tcpEStatsSndCongMaxCwnd             Gauge32,
           tcpEStatsSndCongLimCwnd             Gauge32,
           tcpEStatsSndCongCurSsthresh         Gauge32,
           tcpEStatsSndCongMaxSsthresh         Gauge32,
           tcpEStatsSndCongMinSsthresh         Gauge32
       }

   tcpEStatsSndCongSndLimTransRwin  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of transitions into the 'Receiver Limited' state
           from either the 'Congestion Limited' or 'Sender Limited'
           states. This state is entered whenever TCP transmission
           stops because the sender has filled the announced receiver



Mathis, et al                                                  [Page 15]


Internet-Draft Expires Jan 2003                                June 2002


           window."
       ::= { tcpEStatsSndCongEntry 1 }

   tcpEStatsSndCongSndLimTimeRwin  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The cumulative time (in msecs) spent in the 'Receiver
           Limited' state. See SndLimTransRwin."
       ::= { tcpEStatsSndCongEntry 2 }

   tcpEStatsSndCongSndLimBytesRwin  OBJECT-TYPE
       SYNTAX          Counter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The cumulative octets sent while in the 'Receiver Limited'
           state. See SndLimTransRwin."
       ::= { tcpEStatsSndCongEntry 3 }

   tcpEStatsSndCongSndLimTransCwnd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of transitions into the 'Congestion Limited'
           state from either the 'Receiver Limited' or 'Sender
           Limited' states. This state is entered whenever TCP
           transmission stops because the sender has reached some
           limit defined by congestion control (e.g. cwnd) or other
           algorithms (retransmission timeouts) designed to control
           network traffic."
       ::= { 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. See SndLimTransCwnd. When there is a
           retransmission timeout, in should be counted in
           SndLimTimeCwnd (and not the cumulative time for some other
           state.)"
       ::= { tcpEStatsSndCongEntry 5 }

   tcpEStatsSndCongSndLimBytesCwnd  OBJECT-TYPE



Mathis, et al                                                  [Page 16]


Internet-Draft Expires Jan 2003                                June 2002


       SYNTAX          Counter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The cumulative bytes sent while in the 'Congestion Limited'
           state. See SndLimTransCwnd."
       ::= { tcpEStatsSndCongEntry 6 }

   tcpEStatsSndCongSndLimTransSnd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of transitions into the 'Sender Limited' state
           from either the 'Receiver Limited' or 'Congestion Limited'
           states. This state is entered whenever TCP transmission
           stops due to some sender limit such as running out of
           application data or other resources and the Karn algorithm.
           When TCP stops sending data for any reason which can not be
           classified as Receiver Limited or Congestion Limited it
           must be treated as Sender Limited."
       ::= { tcpEStatsSndCongEntry 7 }

   tcpEStatsSndCongSndLimTimeSnd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The cumulative time (in msecs) spent in the 'Sender
           Limited' state. See SndLimTransSnd."
       ::= { tcpEStatsSndCongEntry 8 }

   tcpEStatsSndCongSndLimBytesSnd  OBJECT-TYPE
       SYNTAX          Counter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The cumulative bytes sent while in the 'Sender Limited'
           state. See SndLimTransSnd."
       ::= { tcpEStatsSndCongEntry 9 }

   tcpEStatsSndCongSlowStart  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of times the congestion window has been
           increased by the Slow Start algorithm. See RFC 2581."



Mathis, et al                                                  [Page 17]


Internet-Draft Expires Jan 2003                                June 2002


       ::= { tcpEStatsSndCongEntry 10 }

   tcpEStatsSndCongCongAvoid  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of times the congestion window has been
           increased by the Congestion Avoidance algorithm. See RFC
           2581."
       ::= { 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. Note that
           retransmission timeouts multiplicatively reduce the window
           implicitly by setting ssthresh. In order to minimize
           spurious congestion indications due to out of order
           segments, CongstionSignals should be increment in
           association with the Fast Retransmit algorithm."
       ::= { tcpEStatsSndCongEntry 12 }

   tcpEStatsSndCongOtherReductions  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of congestion window reductions made as a result
           of anything other than AIMD congestion control algorithms.
           All window reductions MUST be counted as either
           CongestionSignals or OtherReductions. Examples of
           non-multiplicative window reductions include experimental
           algorithms such as Vegas."
       ::= { tcpEStatsSndCongEntry 13 }

   tcpEStatsSndCongCongOverCount  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of congestion events which were 'backed out' of
           the congestion control state machine such that the
           congestion window was restored to a prior value. Backed out



Mathis, et al                                                  [Page 18]


Internet-Draft Expires Jan 2003                                June 2002


           congestion events can not be backed out of PreCongSumCwnd,
           etc."
       ::= { tcpEStatsSndCongEntry 14 }

   tcpEStatsSndCongCurCwnd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current congestion window, in octets."
       ::= { tcpEStatsSndCongEntry 15 }

   tcpEStatsSndCongMaxCwnd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum congestion window used, in octets."
       ::= { tcpEStatsSndCongEntry 16 }

   tcpEStatsSndCongLimCwnd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
          "The maximum congestion window which may be used, in octets."
       ::= { tcpEStatsSndCongEntry 17 }

   tcpEStatsSndCongCurSsthresh  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current slow start threshold in octets."
       ::= { tcpEStatsSndCongEntry 18 }

   tcpEStatsSndCongMaxSsthresh  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum slow start threshold, excluding the initial
           value."
       ::= { tcpEStatsSndCongEntry 19 }

   tcpEStatsSndCongMinSsthresh  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only



Mathis, et al                                                  [Page 19]


Internet-Draft Expires Jan 2003                                June 2002


       STATUS          current
       DESCRIPTION
          "The minimum slow start threshold."
       ::= { tcpEStatsSndCongEntry 20 }

   --
   -- TCP Path Table
   --

   tcpEStatsPathTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsPathEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       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
           "Per connection path statistics."
              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,
           tcpEStatsPathPreCongSumCwnd         Counter32,
           tcpEStatsPathPreCongSumRTT          Counter32,



Mathis, et al                                                  [Page 20]


Internet-Draft Expires Jan 2003                                June 2002


           tcpEStatsPathPostCongSumRTT         Counter32,
           tcpEStatsPathPostCongCountRTT       Counter32,
           tcpEStatsPathECNsignals             Counter32,
           tcpEStatsPathECERcvd                Counter32,
           tcpEStatsPathSendStall              Counter32,
           tcpEStatsPathQuenchRcvd             Counter32,
           tcpEStatsPathRetranThresh           Gauge32,
           tcpEStatsPathSndDupAckEpisodes      Integer32,
           tcpEStatsPathSumBytesReordered      Integer32,
           tcpEStatsPathNonRecovDA             Counter32,
           tcpEStatsPathAckAfterFR             Counter32,
           tcpEStatsPathDSACKDups              Counter32,
           tcpEStatsPathSampleRTT              Gauge32,
           tcpEStatsPathSmoothedRTT            Gauge32,
           tcpEStatsPathRTTVar                 Gauge32,
           tcpEStatsPathMaxRTT                 Gauge32,
           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."
       ::= { tcpEStatsPathEntry 1 }

   tcpEStatsPathTimeouts  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of times the retransmit timeout has expired when
           the RTO backoff multiplier is equal to one."
       ::= { tcpEStatsPathEntry 2 }

   tcpEStatsPathSubsequentTimeouts  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current



Mathis, et al                                                  [Page 21]


Internet-Draft Expires Jan 2003                                June 2002


       DESCRIPTION
          "The number of times the retransmit timeout has expired when
           the RTO backoff multiplier is greater than one. See RFC
           2988."
       ::= { tcpEStatsPathEntry 3 }

   tcpEStatsPathCurTimeoutCount  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current number of times the retransmit timeout has
           expired without receiving an acknowledgment for new data.
           See RFC 2988."
       ::= { tcpEStatsPathEntry 4 }

   tcpEStatsPathAbruptTimeouts  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of timeouts that occured without any immediately
           preceding duplicate acknowledgments or other indications of
           congestion as determined by the implementation."
       ::= { tcpEStatsPathEntry 5 }

   tcpEStatsPathPktsRetrans  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of segments transmitted containing at least some
           retransmitted data."
       ::= { tcpEStatsPathEntry 6 }

   tcpEStatsPathBytesRetrans  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets retransmitted."
       ::= { tcpEStatsPathEntry 7 }

   tcpEStatsPathDupAcksIn  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION



Mathis, et al                                                  [Page 22]


Internet-Draft Expires Jan 2003                                June 2002


          "The number of duplicate ACKs received."
       ::= { tcpEStatsPathEntry 8 }

   tcpEStatsPathSACKsRcvd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of SACK options received. See RFC 2018."
       ::= { tcpEStatsPathEntry 9 }

   tcpEStatsPathSACKBlocksRcvd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of SACK blocks received (within SACK options)."
       ::= { tcpEStatsPathEntry 10 }

   tcpEStatsPathPreCongSumCwnd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The sum of the values of the congestion window, in octets,
           captured each time a congestion signal is received. This
           MUST be updated each time CongestionSignals is incremented,
           such that the ratio is the average window at congestion."
       ::= { tcpEStatsPathEntry 11 }

   tcpEStatsPathPreCongSumRTT  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Sum of the last sample of the RTT prior to a received
           congestion signals. This MUST be updated each time
           CongestionSignals is incremented, such that the ratio is
           the average RTT just prior to congestion."
       ::= { tcpEStatsPathEntry 12 }

   tcpEStatsPathPostCongSumRTT  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Sum of the first RTT sample following a received congestion
           signal."



Mathis, et al                                                  [Page 23]


Internet-Draft Expires Jan 2003                                June 2002


       ::= { tcpEStatsPathEntry 13 }

   tcpEStatsPathPostCongCountRTT  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of RTT samples included in PostCongSumRTT, such
           that the ratio is average RTT just after congestion."
       ::= { tcpEStatsPathEntry 14 }

   tcpEStatsPathECNsignals  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of congestion signals delivered via all forms of
           explicit congestion notification including the ECE bit and
           failing the ECN nonce check, etc."
       ::= { tcpEStatsPathEntry 15 }

   tcpEStatsPathECERcvd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of congestion signals received via the RFC3168
           ECE bit."
       ::= { tcpEStatsPathEntry 16 }

   tcpEStatsPathSendStall  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of interface stalls or other sender local
           resource limitations that are treated as congestion
           signals."
       ::= { tcpEStatsPathEntry 17 }

   tcpEStatsPathQuenchRcvd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of ICMP quench messages that are treated as
           congestion signals."
       ::= { tcpEStatsPathEntry 18 }



Mathis, et al                                                  [Page 24]


Internet-Draft Expires Jan 2003                                June 2002


   tcpEStatsPathRetranThresh  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of duplicate acknowledgments required to trigger
           Fast Retransmit."
       ::= { tcpEStatsPathEntry 19 }

   tcpEStatsPathSndDupAckEpisodes  OBJECT-TYPE
       SYNTAX          Integer32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of times that a duplicate acknowledgment episode
           ends without a retransmission (e.g. due to reorderd data)."
       ::= { tcpEStatsPathEntry 20 }

   tcpEStatsPathSumBytesReordered  OBJECT-TYPE
       SYNTAX          Integer32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The sum of the amounts SND.UNA advances on the
           acknowledgment which ends a dup-ack episodes without a
           retransmission."
       ::= { tcpEStatsPathEntry 21 }

   tcpEStatsPathNonRecovDA  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Duplicate acks (or SACKS) attributed to out-of-order
           segments because they were withdrawn prior to reaching
           RetranThresh and triggering fast retransmit."
       ::= { tcpEStatsPathEntry 22 }

   tcpEStatsPathAckAfterFR  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of acknowledgments reporting out-of-order
           segments after the segments have already be retransmitted
           (e.g. as detected by the Eiffel algorithm)."
       ::= { tcpEStatsPathEntry 23 }




Mathis, et al                                                  [Page 25]


Internet-Draft Expires Jan 2003                                June 2002


   tcpEStatsPathDSACKDups  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of duplicate segments reported to the local host
           by D-SACK blocks. See RFC 2883."
       ::= { tcpEStatsPathEntry 24 }

   tcpEStatsPathSampleRTT  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The most recent raw round trip time measurement, in
           milliseconds, used in calculation of the RTO."
       ::= { tcpEStatsPathEntry 25 }

   tcpEStatsPathSmoothedRTT  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The smoothed round trip time, in milliseconds, used in
           calculation of the RTO. See SRTT in RFC 2988"
       ::= { tcpEStatsPathEntry 26 }

   tcpEStatsPathRTTVar  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The round trip time variation, in milliseconds, used in
           calculation of the RTO. See RTTVAR in RFC 2988."
       ::= { tcpEStatsPathEntry 27 }

   tcpEStatsPathMaxRTT  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum sampled round trip time, in milliseconds."
       ::= { tcpEStatsPathEntry 28 }

   tcpEStatsPathMinRTT  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current



Mathis, et al                                                  [Page 26]


Internet-Draft Expires Jan 2003                                June 2002


       DESCRIPTION
          "The minimum sampled round trip time, in milliseconds."
       ::= { tcpEStatsPathEntry 29 }

   tcpEStatsPathSumRTT  OBJECT-TYPE
       SYNTAX          Counter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The sum of all sampled round trip times, in milliseconds."
       ::= { tcpEStatsPathEntry 30 }

   tcpEStatsPathCountRTT  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of round trip time samples included in SumRTT."
       ::= { tcpEStatsPathEntry 31 }

   tcpEStatsPathCurRTO  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current value of the retransmit timer RTO, in
           milliseconds, not scaled by the RTO backoff multiplier. See
           RFC 2988."
       ::= { tcpEStatsPathEntry 32 }

   tcpEStatsPathMaxRTO  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum value of the retransmit timmer RTO, in
           milliseconds, not scaled by the RTO backoff multiplier. See
           RFC 2988."
       ::= { tcpEStatsPathEntry 33 }

   tcpEStatsPathMinRTO  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The minimum value of the retransmit timmer RTO, in
           milliseconds, not scaled by the RTO backoff multiplier. See
           RFC 2988."



Mathis, et al                                                  [Page 27]


Internet-Draft Expires Jan 2003                                June 2002


       ::= { tcpEStatsPathEntry 34 }

   tcpEStatsPathCurMSS  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current maximum segment size (MSS), in octets."
       ::= { tcpEStatsPathEntry 35 }

   tcpEStatsPathMaxMSS  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum MSS, in octets."
       ::= { tcpEStatsPathEntry 36 }

   tcpEStatsPathMinMSS  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The minimum MSS, in octets."
       ::= { tcpEStatsPathEntry 37 }

   --
   -- 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 statistics."
              INDEX { tcpEStatsConnectIdId }
       ::= { tcpEStatsSendBuffTable 1 }



Mathis, et al                                                  [Page 28]


Internet-Draft Expires Jan 2003                                June 2002


   TcpEStatsSendBuffEntry ::= SEQUENCE {
           tcpEStatsSendBuffLimSndBuf          Gauge32,
           tcpEStatsSendBuffCurRetxQ           Gauge32,
           tcpEStatsSendBuffMaxRetxQ           Gauge32,
           tcpEStatsSendBuffCurAppWQueue       Gauge32,
           tcpEStatsSendBuffMaxAppWQueue       Gauge32,
           tcpEStatsSendBuffLimAppWQueue       Gauge32,
           tcpEStatsSendBuffCurRetxQSeq        Gauge32,
           tcpEStatsSendBuffMaxRetxQSeq        Gauge32,
           tcpEStatsSendBuffCurAppWQueueSeq    Gauge32,
           tcpEStatsSendBuffMaxAppWQueueSeq    Gauge32,
           tcpEStatsSendBuffLimAppWQueueSeq    Gauge32,
           tcpEStatsSendBuffSTuneErr           TruthValue
       }

   tcpEStatsSendBuffLimSndBuf  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
          "The maximum number of bytes of memory which may be
           allocated to queuing both transmitted and untransmitted
           data."
       ::= { tcpEStatsSendBuffEntry 1 }

   tcpEStatsSendBuffCurRetxQ  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of bytes of memory currently allocated to the
           retransmit queue."
       ::= { tcpEStatsSendBuffEntry 2 }

   tcpEStatsSendBuffMaxRetxQ  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum number of bytes or memory allocated to the
           retransmit queue."
       ::= { tcpEStatsSendBuffEntry 3 }

   tcpEStatsSendBuffCurAppWQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION



Mathis, et al                                                  [Page 29]


Internet-Draft Expires Jan 2003                                June 2002


          "The number of bytes of memory currently allocated to
           queuing untransmitted data."
       ::= { tcpEStatsSendBuffEntry 4 }

   tcpEStatsSendBuffMaxAppWQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum number of bytes of memory allocated to queuing
           untransmitted data."
       ::= { tcpEStatsSendBuffEntry 5 }

   tcpEStatsSendBuffLimAppWQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
          "The maximum number of bytes of memory which may be
           allocated to queuing untransmitted data."
       ::= { tcpEStatsSendBuffEntry 6 }

   tcpEStatsSendBuffCurRetxQSeq  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets of sequence space data currently held
           in the retransmit queue."
       ::= { tcpEStatsSendBuffEntry 7 }

   tcpEStatsSendBuffMaxRetxQSeq  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum number of octets of sequence space data held in
           the retransmit queue."
       ::= { tcpEStatsSendBuffEntry 8 }

   tcpEStatsSendBuffCurAppWQueueSeq  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets of untransmitted sequence space data
           currently queued."
       ::= { tcpEStatsSendBuffEntry 9 }



Mathis, et al                                                  [Page 30]


Internet-Draft Expires Jan 2003                                June 2002


   tcpEStatsSendBuffMaxAppWQueueSeq  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "he maximum number of octets of untransmitted sequence space
           data queued."
       ::= { tcpEStatsSendBuffEntry 10 }

   tcpEStatsSendBuffLimAppWQueueSeq  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
          "The maximum number of octets of untransmitted sequence
           space data which may be queued."
       ::= { tcpEStatsSendBuffEntry 11 }

   tcpEStatsSendBuffSTuneErr  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
          "True indicates an tuning error. Error indications must be
           explicitly cleared."
       ::= { tcpEStatsSendBuffEntry 12 }

   --
   -- TCP Local Receiver Table
   --

   tcpEStatsRecTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsRecEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Instruments on the state of the Local receiver and
           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 local receiver statistics."



Mathis, et al                                                  [Page 31]


Internet-Draft Expires Jan 2003                                June 2002


              INDEX { tcpEStatsConnectIdId }
       ::= { tcpEStatsRecTable 1 }

   TcpEStatsRecEntry ::= SEQUENCE {
           tcpEStatsRecCurRwinSent             Gauge32,
           tcpEStatsRecMaxRwinSent             Gauge32,
           tcpEStatsRecMinRwinSent             Gauge32,
           tcpEStatsRecLimRwin                 Integer32,
           tcpEStatsRecDupAckEpisodes          Counter32,
           tcpEStatsRecDupAcksOut              Counter32,
           tcpEStatsRecCERcvd                  Counter32,
           tcpEStatsRecECNSent                 Counter32,
           tcpEStatsRecECNNonceRcvd            Counter32,
           tcpEStatsRecLimRcvBuf               Gauge32,
           tcpEStatsRecCurReasmQueue           Gauge32,
           tcpEStatsRecMaxReasmQueue           Gauge32,
           tcpEStatsRecCurAppRQueue            Gauge32,
           tcpEStatsRecMaxAppRQueue            Gauge32,
           tcpEStatsRecCurReasmQueueSeq        Gauge32,
           tcpEStatsRecMaxReasmQueueSeq        Gauge32,
           tcpEStatsRecCurAppRQueueSeq         Gauge32,
           tcpEStatsRecMaxAppRQueueSeq         Gauge32
       }

   tcpEStatsRecCurRwinSent  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The most recent window advertisement sent, in octets."
       ::= { tcpEStatsRecEntry 1 }

   tcpEStatsRecMaxRwinSent  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum window advertisement sent, in octets."
       ::= { tcpEStatsRecEntry 2 }

   tcpEStatsRecMinRwinSent  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The minimum window advertisement sent, excluding the
           initial unscaled window advertised on the SYN, in octets."
       ::= { tcpEStatsRecEntry 3 }



Mathis, et al                                                  [Page 32]


Internet-Draft Expires Jan 2003                                June 2002


   tcpEStatsRecLimRwin  OBJECT-TYPE
       SYNTAX          Integer32
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
          "The maximum window advertisement which may be sent, in
           octets."
       ::= { tcpEStatsRecEntry 4 }

   tcpEStatsRecDupAckEpisodes  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of times that a contiguous series of duplicate
           acknowledgments have been sent."
       ::= { tcpEStatsRecEntry 5 }

   tcpEStatsRecDupAcksOut  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of duplicate ACKs sent."
       ::= { tcpEStatsRecEntry 6 }

   tcpEStatsRecCERcvd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Received segments with Congestion Experienced bits. See RFC
           2481."
       ::= { tcpEStatsRecEntry 7 }

   tcpEStatsRecECNSent  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Number of times CE bits have set ECN. See RFC 2481."
       ::= { tcpEStatsRecEntry 8 }

   tcpEStatsRecECNNonceRcvd  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION



Mathis, et al                                                  [Page 33]


Internet-Draft Expires Jan 2003                                June 2002


          "Number of ECN Nonces received. Note that the low bit is the
           same as the one bit nonce sum."
       ::= { tcpEStatsRecEntry 9 }

   tcpEStatsRecLimRcvBuf  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
          "The maximum number of bytes of memory which may be
           allocated to queuing both in-order and out-of-order
           recieved data."
       ::= { tcpEStatsRecEntry 10 }

   tcpEStatsRecCurReasmQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of bytes of memory currently allocated to the
           reassembly queue."
       ::= { tcpEStatsRecEntry 11 }

   tcpEStatsRecMaxReasmQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum number of bytes of memory allocated to the
           reassembly queue."
       ::= { tcpEStatsRecEntry 12 }

   tcpEStatsRecCurAppRQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current number of bytes of memory used to hold receive
           data that has been acknowledged but not yet delivered to
           the application."
       ::= { tcpEStatsRecEntry 13 }

   tcpEStatsRecMaxAppRQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum number of bytes of memory used to hold receive



Mathis, et al                                                  [Page 34]


Internet-Draft Expires Jan 2003                                June 2002


           data that has been acknowledged but not yet delivered to
           the application."
       ::= { tcpEStatsRecEntry 14 }

   tcpEStatsRecCurReasmQueueSeq  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current number of octets of sequence space data spanned
           by the reassembly queue, from the newest (left most byte)
           to RCV.NXT. See RFC 793."
       ::= { tcpEStatsRecEntry 15 }

   tcpEStatsRecMaxReasmQueueSeq  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum number of octets of sequence space data spanned
           by the reassembly queue, from the newest (left most byte)
           to RCV.NXT. See RFC 793."
       ::= { tcpEStatsRecEntry 16 }

   tcpEStatsRecCurAppRQueueSeq  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current number of octets of sequence space spanned by
           receive data that has been acknowledged but not yet
           delivered to the application."
       ::= { tcpEStatsRecEntry 17 }

   tcpEStatsRecMaxAppRQueueSeq  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum number of octets of sequence space spanned by
           receive data that has been acknowledged but not yet
           delivered to the application."
       ::= { tcpEStatsRecEntry 18 }

   --
   -- TCP Observed Receiver Window Table
   --




Mathis, et al                                                  [Page 35]


Internet-Draft Expires Jan 2003                                June 2002


   tcpEStatsObsRecTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsObsRecEntry
       MAX-ACCESS  not-accessible
       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 most recent window advertisement received, in octets."
       ::= { tcpEStatsObsRecEntry 1 }

   tcpEStatsObsRecMaxRwinRcvd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum window advertisement received, in octets."
       ::= { tcpEStatsObsRecEntry 2 }

   tcpEStatsObsRecMinRwinRcvd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The minimum window advertisement received, in octets."



Mathis, et al                                                  [Page 36]


Internet-Draft Expires Jan 2003                                June 2002


       ::= { tcpEStatsObsRecEntry 3 }

   --
   -- TCP Connection ID Table

   -- There is overlap with the new RFC2012bis 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
           "Connection ID table."
       INDEX   { tcpEStatsConnectLocalAddressType,
                 tcpEStatsConnectLocalAddress,
                 tcpEStatsConnectLocalPort,
                 tcpEStatsConnectRemAddressType,
                 tcpEStatsConnectRemAddress,
                 tcpEStatsConnectRemPort }
       ::= { tcpEStatsConnectIdTable 1 }

   TcpEStatsConnectIdEntry ::= SEQUENCE {
                 tcpEStatsConnectLocalAddressType  InetAddressType,
                 tcpEStatsConnectLocalAddress      InetAddress,
                 tcpEStatsConnectLocalPort         InetPortNumber,
                 tcpEStatsConnectRemAddressType    InetAddressType,
                 tcpEStatsConnectRemAddress        InetAddress,



Mathis, et al                                                  [Page 37]


Internet-Draft Expires Jan 2003                                June 2002


                 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
       DESCRIPTION
           "The remote IP address for this TCP connection."
       ::= { tcpEStatsConnectIdEntry 5 }



Mathis, et al                                                  [Page 38]


Internet-Draft Expires Jan 2003                                June 2002


   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 }

   tcpEStatsControlData  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION



Mathis, et al                                                  [Page 39]


Internet-Draft Expires Jan 2003                                June 2002


           "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."
       ::= { tcpEStatsControl 8 }

   tcpEStatsControlConnectId  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current



Mathis, et al                                                  [Page 40]


Internet-Draft Expires Jan 2003                                June 2002


       DESCRIPTION
           "Controls the activation of the TCP Connection ID Table."
       ::= { tcpEStatsControl 9 }

   --
   -- 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."
        MODULE -- this module
            MANDATORY-GROUPS {
                               tcpEStats,
                               tcpEStatsControl,
                               tcpEStatsNotifications
                             }
      ::= { tcpEStatsCompliances 1 }

   -- Units of Conformance

       tcpEStatsGroup  OBJECT-GROUP
            OBJECTS {
                 tcpEStatsConnectionState, tcpEStatsConnectionSACK,
                 tcpEStatsConnectionTimeStamps,
                 tcpEStatsConnectionECN, tcpEStatsConnectionNagle,
                 tcpEStatsConnectionSndWindScale,
                 tcpEStatsConnectionRcvWindScale,
                 tcpEStatsSynOptsActiveOpen,
                 tcpEStatsSynOptsMSSSent, tcpEStatsSynOptsMSSRcvd,
                 tcpEStatsSynOptsWinScaleSent,
                 tcpEStatsSynOptsWinScaleRcvd,
                 tcpEStatsSynOptsSACKokSent,
                 tcpEStatsSynOptsSACKokRcvd,
                 tcpEStatsSynOptsTimeStampSent,
                 tcpEStatsSynOptsTimeStampRcvd,
                 tcpEStatsDataPktsOut, tcpEStatsDataDataPktsOut,
                 tcpEStatsDataDataBytesOut, tcpEStatsDataPktsIn,
                 tcpEStatsDataDataPktsIn, tcpEStatsDataDataBytesIn,



Mathis, et al                                                  [Page 41]


Internet-Draft Expires Jan 2003                                June 2002


                 tcpEStatsDataSoftErrors,
                 tcpEStatsDataSoftErrorReason, tcpEStatsDataSndUna,
                 tcpEStatsDataSndNxt, tcpEStatsDataSndMax,
                 tcpEStatsDataThruBytesAcked,
                 tcpEStatsDataSndInitial, tcpEStatsDataSendWraps,
                 tcpEStatsDataRcvNxt,
                 tcpEStatsDataThruBytesReceived,
                 tcpEStatsDataRecInitial, tcpEStatsDataCurTime,
                 tcpEStatsDataStartTime,
                 tcpEStatsSndCongSndLimTransRwin,
                 tcpEStatsSndCongSndLimTimeRwin,
                 tcpEStatsSndCongSndLimBytesRwin,
                 tcpEStatsSndCongSndLimTransCwnd,
                 tcpEStatsSndCongSndLimTimeCwnd,
                 tcpEStatsSndCongSndLimBytesCwnd,
                 tcpEStatsSndCongSndLimTransSnd,
                 tcpEStatsSndCongSndLimTimeSnd,
                 tcpEStatsSndCongSndLimBytesSnd,
                 tcpEStatsSndCongSlowStart,
                 tcpEStatsSndCongCongAvoid,
                 tcpEStatsSndCongCongSignals,
                 tcpEStatsSndCongOtherReductions,
                 tcpEStatsSndCongCongOverCount,
                 tcpEStatsSndCongCurCwnd, tcpEStatsSndCongMaxCwnd,
                 tcpEStatsSndCongLimCwnd,
                 tcpEStatsSndCongCurSsthresh,
                 tcpEStatsSndCongMaxSsthresh,
                 tcpEStatsSndCongMinSsthresh,
                 tcpEStatsPathFastRetran, tcpEStatsPathTimeouts,
                 tcpEStatsPathSubsequentTimeouts,
                 tcpEStatsPathCurTimeoutCount,
                 tcpEStatsPathAbruptTimeouts,
                 tcpEStatsPathPktsRetrans,
                 tcpEStatsPathBytesRetrans, tcpEStatsPathDupAcksIn,
                 tcpEStatsPathSACKsRcvd,
                 tcpEStatsPathSACKBlocksRcvd,
                 tcpEStatsPathPreCongSumCwnd,
                 tcpEStatsPathPreCongSumRTT,
                 tcpEStatsPathPostCongSumRTT,
                 tcpEStatsPathPostCongCountRTT,
                 tcpEStatsPathECNsignals, tcpEStatsPathECERcvd,
                 tcpEStatsPathSendStall, tcpEStatsPathQuenchRcvd,
                 tcpEStatsPathRetranThresh,
                 tcpEStatsPathSndDupAckEpisodes,
                 tcpEStatsPathSumBytesReordered,
                 tcpEStatsPathNonRecovDA, tcpEStatsPathAckAfterFR,
                 tcpEStatsPathDSACKDups, tcpEStatsPathSampleRTT,
                 tcpEStatsPathSmoothedRTT, tcpEStatsPathRTTVar,



Mathis, et al                                                  [Page 42]


Internet-Draft Expires Jan 2003                                June 2002


                 tcpEStatsPathMaxRTT, tcpEStatsPathMinRTT,
                 tcpEStatsPathSumRTT, tcpEStatsPathCountRTT,
                 tcpEStatsPathCurRTO, tcpEStatsPathMaxRTO,
                 tcpEStatsPathMinRTO, tcpEStatsPathCurMSS,
                 tcpEStatsPathMaxMSS, tcpEStatsPathMinMSS,
                 tcpEStatsSendBuffLimSndBuf,
                 tcpEStatsSendBuffCurRetxQ,
                 tcpEStatsSendBuffMaxRetxQ,
                 tcpEStatsSendBuffCurAppWQueue,
                 tcpEStatsSendBuffMaxAppWQueue,
                 tcpEStatsSendBuffLimAppWQueue,
                 tcpEStatsSendBuffCurRetxQSeq,
                 tcpEStatsSendBuffMaxRetxQSeq,
                 tcpEStatsSendBuffCurAppWQueueSeq,
                 tcpEStatsSendBuffMaxAppWQueueSeq,
                 tcpEStatsSendBuffLimAppWQueueSeq,
                 tcpEStatsSendBuffSTuneErr,
                 tcpEStatsRecCurRwinSent, tcpEStatsRecMaxRwinSent,
                 tcpEStatsRecMinRwinSent, tcpEStatsRecLimRwin,
                 tcpEStatsRecDupAckEpisodes,
                 tcpEStatsRecDupAcksOut, tcpEStatsRecCERcvd,
                 tcpEStatsRecECNSent, tcpEStatsRecECNNonceRcvd,
                 tcpEStatsRecLimRcvBuf, tcpEStatsRecCurReasmQueue,
                 tcpEStatsRecMaxReasmQueue,
                 tcpEStatsRecCurAppRQueue,
                 tcpEStatsRecMaxAppRQueue,
                 tcpEStatsRecCurReasmQueueSeq,
                 tcpEStatsRecMaxReasmQueueSeq,
                 tcpEStatsRecCurAppRQueueSeq,
                 tcpEStatsRecMaxAppRQueueSeq,
                 tcpEStatsObsRecCurRwinRcvd,
                 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



Mathis, et al                                                  [Page 43]


Internet-Draft Expires Jan 2003                                June 2002


            }
            STATUS current
            DESCRIPTION
                "The tcpEStatsControl group is mandatory for all
                systems that claim conformance to this MIB Module."
      ::= { tcpEStatsGroups 2 }

      END


4. 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.

   There are a number of managed objects in this MIB that may contain
   sensitive information. These are:

   tcpEStatsConnectRemAddress tcpEStatsDataSndUna tcpEStatsDataSndNxt
   tcpEStatsDataSndMax tcpEStatsDataSendInitial tcpEStatsDataRcvNxt
   tcpEStatsDataRecInitial

   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 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
   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.






Mathis, et al                                                  [Page 44]


Internet-Draft Expires Jan 2003                                June 2002


5. ACKNOWLEDGMENTS

   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.


6. REFERENCES


[RFC1155] Rose, M., and K. McCloghrie, "Structure and Identification of
     Management Information for TCP/IP-based Internets", STD 16, RFC
     1155, May 1990.

[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.




Mathis, et al                                                  [Page 45]


Internet-Draft Expires Jan 2003                                June 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.

[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.


7.  EDITORS' ADDRESSES








Mathis, et al                                                  [Page 46]


Internet-Draft Expires Jan 2003                                June 2002


        Matt Mathis
        Raghu Reddy
        John Heffner
        Pittsburgh Supercomputing Center
        4400 Fifth Ave
        Pittsburgh, PA 15216
        mathis@web100.org, rreddy@psc.edu, jheffner@psc.edu

        Jon Saperia
        JDS Consulting
        174 Chapman Street
        Watertown, MA 02472
        email - saperia@jdscons.com


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  per-
   tain 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 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 Executive
   Director.


9.  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, 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



Mathis, et al                                                  [Page 47]


Internet-Draft Expires Jan 2003                                June 2002


   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 develop-
   ing 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 MER-
   CHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.



































Mathis, et al                                                  [Page 48]