Tech-invite3GPPspaceIETFspace
959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 4898

TCP Extended Statistics MIB

Pages: 75
Proposed Standard
Part 2 of 3 – Pages 7 to 40
First   Prev   Next

Top   ToC   RFC4898 - Page 7   prevText

4. TCP Extended Statistics MIB

This MIB module IMPORTS definitions from [RFC2578], [RFC2579], [RFC2580], [RFC2856], [RFC4022], and [RFC4502]. It uses REFERENCE clauses to refer to [RFC791], [RFC793], [RFC1122], [RFC1191], [RFC1323], [RFC2018], [RFC2581], [RFC2861], [RFC2883], [RFC2988], [RFC3168], [RFC3260], [RFC3517], [RFC3522], and [RFC3742]. TCP-ESTATS-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, Counter32, Integer32, Unsigned32, Gauge32, OBJECT-TYPE, mib-2, NOTIFICATION-TYPE FROM SNMPv2-SMI -- [RFC2578] MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF -- [RFC2580] ZeroBasedCounter32 FROM RMON2-MIB -- [RFC4502] ZeroBasedCounter64 FROM HCNUM-TC -- [RFC2856] TEXTUAL-CONVENTION, DateAndTime, TruthValue, TimeStamp
Top   ToC   RFC4898 - Page 8
              FROM SNMPv2-TC                  -- [RFC2579]
          tcpListenerEntry, tcpConnectionEntry
              FROM TCP-MIB;                   -- [RFC4022]

   tcpEStatsMIB MODULE-IDENTITY
       LAST-UPDATED "200705180000Z"    -- 18 May 2007
       ORGANIZATION "IETF TSV Working Group"
       CONTACT-INFO
           "Matt Mathis
           John Heffner
           Web100 Project
           Pittsburgh Supercomputing Center
           300 S. Craig St.
           Pittsburgh, PA 15213
           Email: mathis@psc.edu, jheffner@psc.edu

           Rajiv Raghunarayan
           Cisco Systems Inc.
           San Jose, CA 95134
           Phone: 408 853 9612
           Email: raraghun@cisco.com

           Jon Saperia
           84 Kettell Plain Road
           Stow, MA 01775
           Phone: 617-201-2655
           Email: saperia@jdscons.com "
       DESCRIPTION
           "Documentation of TCP Extended Performance Instrumentation
            variables from the Web100 project.  [Web100]

            All of the objects in this MIB MUST have the same
            persistence properties as the underlying TCP implementation.
            On a reboot, all zero-based counters MUST be cleared, all
            dynamically created table rows MUST be deleted, and all
            read-write objects MUST be restored to their default values.

            It is assumed that all TCP implementation have some
            initialization code (if nothing else to set IP addresses)
            that has the opportunity to adjust tcpEStatsConnTableLatency
            and other read-write scalars controlling the creation of the
            various tables, before establishing the first TCP
            connection.  Implementations MAY also choose to make these
            control scalars persist across reboots.

            Copyright (C) The IETF Trust (2007).  This version
            of this MIB module is a part of RFC 4898; see the RFC
            itself for full legal notices."
Top   ToC   RFC4898 - Page 9
       REVISION "200705180000Z"    -- 18 May 2007
       DESCRIPTION
           "Initial version, published as RFC 4898."
           ::= { mib-2 156 }

   tcpEStatsNotifications OBJECT IDENTIFIER ::= { tcpEStatsMIB 0 }
   tcpEStatsMIBObjects    OBJECT IDENTIFIER ::= { tcpEStatsMIB 1 }
   tcpEStatsConformance   OBJECT IDENTIFIER ::= { tcpEStatsMIB 2 }
   tcpEStats             OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 1 }
   tcpEStatsControl      OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 2 }
   tcpEStatsScalar       OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 3 }

   --
   -- Textual Conventions
   --

   TcpEStatsNegotiated  ::= TEXTUAL-CONVENTION
      STATUS             current
      DESCRIPTION
          "Indicates if some optional TCP feature was negotiated.

           Enabled(1) indicates that the feature was successfully
           negotiated on, which generally requires both hosts to agree
           to use the feature.

           selfDisabled(2) indicates that the local host refused the
           feature because it is not implemented, configured off, or
           refused for some other reason, such as the lack of
           resources.

           peerDisabled(3) indicates that the local host was willing
           to negotiate the feature, but the remote host did not
           do so."
      SYNTAX INTEGER {
                   enabled(1),
                   selfDisabled(2),
                   peerDisabled(3)
           }

   --
   -- TCP Extended statistics scalars
   --

   tcpEStatsListenerTableLastChange OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
Top   ToC   RFC4898 - Page 10
              "The value of sysUpTime at the time of the last
               creation or deletion of an entry in the tcpListenerTable.
               If the number of entries has been unchanged since the
               last re-initialization of the local network management
               subsystem, then this object contains a zero value."
       ::= { tcpEStatsScalar 3 }

   -- ================================================================
   --
   -- The tcpEStatsControl Group
   --

   -- The scalar objects in this group are used to control the
   -- activation and deactivation of the TCP Extended Statistics
   -- tables and notifications in this module.
   --

   tcpEStatsControlPath  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Path Statistics
           table.

           A value 'true' indicates that the TCP Path Statistics
           table is active, while 'false' indicates that the
           table is inactive."
       DEFVAL          { false }
       ::= { tcpEStatsControl 1 }

   tcpEStatsControlStack  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Stack Statistics
           table.

           A value 'true' indicates that the TCP Stack Statistics
           table is active, while 'false' indicates that the
           table is inactive."
       DEFVAL          { false }
       ::= { tcpEStatsControl 2 }

   tcpEStatsControlApp  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-write
Top   ToC   RFC4898 - Page 11
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Application
           Statistics table.

           A value 'true' indicates that the TCP Application
           Statistics table is active, while 'false' indicates
           that the table is inactive."
       DEFVAL          { false }
       ::= { tcpEStatsControl 3 }

   tcpEStatsControlTune  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Tuning table.

           A value 'true' indicates that the TCP Tuning
           table is active, while 'false' indicates that the
           table is inactive."
       DEFVAL          { false }
       ::= { tcpEStatsControl 4 }

   tcpEStatsControlNotify  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the generation of all notifications defined in
           this MIB.

           A value 'true' indicates that the notifications
           are active, while 'false' indicates that the
           notifications are inactive."
       DEFVAL          { false }
       ::= { tcpEStatsControl 5 }

   tcpEStatsConnTableLatency OBJECT-TYPE
       SYNTAX          Unsigned32
       UNITS           "seconds"
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Specifies the number of seconds that the entity will
            retain entries in the TCP connection tables, after the
            connection first enters the closed state.  The entity
            SHOULD provide a configuration option to enable
Top   ToC   RFC4898 - Page 12
            customization of this value.  A value of 0
            results in entries being removed from the tables as soon as
            the connection enters the closed state.  The value of
            this object pertains to the following tables:
              tcpEStatsConnectIdTable
              tcpEStatsPerfTable
              tcpEStatsPathTable
              tcpEStatsStackTable
              tcpEStatsAppTable
              tcpEStatsTuneTable"
       DEFVAL { 0 }
       ::= { tcpEStatsControl 6 }

   -- ================================================================
   --
   -- Listener Table
   --

   tcpEStatsListenerTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsListenerEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains information about TCP Listeners,
           in addition to the information maintained by the
           tcpListenerTable RFC 4022."
       ::= { tcpEStats 1 }

   tcpEStatsListenerEntry OBJECT-TYPE
       SYNTAX       TcpEStatsListenerEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "Each entry in the table contains information about
           a specific TCP Listener."
       AUGMENTS { tcpListenerEntry }
       ::= { tcpEStatsListenerTable 1 }

   TcpEStatsListenerEntry ::= SEQUENCE {
           tcpEStatsListenerStartTime         TimeStamp,
           tcpEStatsListenerSynRcvd           ZeroBasedCounter32,
           tcpEStatsListenerInitial           ZeroBasedCounter32,
           tcpEStatsListenerEstablished       ZeroBasedCounter32,
           tcpEStatsListenerAccepted          ZeroBasedCounter32,
           tcpEStatsListenerExceedBacklog     ZeroBasedCounter32,
           tcpEStatsListenerHCSynRcvd         ZeroBasedCounter64,
           tcpEStatsListenerHCInitial         ZeroBasedCounter64,
           tcpEStatsListenerHCEstablished     ZeroBasedCounter64,
Top   ToC   RFC4898 - Page 13
           tcpEStatsListenerHCAccepted        ZeroBasedCounter64,
           tcpEStatsListenerHCExceedBacklog   ZeroBasedCounter64,
           tcpEStatsListenerCurConns          Gauge32,
           tcpEStatsListenerMaxBacklog        Unsigned32,
           tcpEStatsListenerCurBacklog        Gauge32,
           tcpEStatsListenerCurEstabBacklog   Gauge32
   }

   tcpEStatsListenerStartTime   OBJECT-TYPE
       SYNTAX     TimeStamp
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The value of sysUpTime at the time this listener was
           established.  If the current state was entered prior to
           the last re-initialization of the local network management
           subsystem, then this object contains a zero value."
       ::= { tcpEStatsListenerEntry 1 }

   tcpEStatsListenerSynRcvd OBJECT-TYPE
       SYNTAX     ZeroBasedCounter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of SYNs which have been received for this
           listener.  The total number of failed connections for
           all reasons can be estimated to be tcpEStatsListenerSynRcvd
           minus tcpEStatsListenerAccepted and
           tcpEStatsListenerCurBacklog."
       ::= { tcpEStatsListenerEntry 2 }

   tcpEStatsListenerInitial     OBJECT-TYPE
      SYNTAX     ZeroBasedCounter32
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The total number of connections for which the Listener
          has allocated initial state and placed the
          connection in the backlog.  This may happen in the
          SYN-RCVD or ESTABLISHED states, depending on the
          implementation."
       ::= { tcpEStatsListenerEntry 3 }

   tcpEStatsListenerEstablished OBJECT-TYPE
       SYNTAX     ZeroBasedCounter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
Top   ToC   RFC4898 - Page 14
           "The number of connections that have been established to
           this endpoint (e.g., the number of first ACKs that have
           been received for this listener)."
       ::= { tcpEStatsListenerEntry 4 }

   tcpEStatsListenerAccepted    OBJECT-TYPE
      SYNTAX     ZeroBasedCounter32
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The total number of connections for which the Listener
          has successfully issued an accept, removing the connection
          from the backlog."
       ::= { tcpEStatsListenerEntry 5 }

   tcpEStatsListenerExceedBacklog OBJECT-TYPE
      SYNTAX     ZeroBasedCounter32
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The total number of connections dropped from the
         backlog by this listener due to all reasons.  This
         includes all connections that are allocated initial
         resources, but are not accepted for some reason."
       ::= { tcpEStatsListenerEntry 6 }

   tcpEStatsListenerHCSynRcvd OBJECT-TYPE
       SYNTAX     ZeroBasedCounter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of SYNs that have been received for this
           listener on systems that can process (or reject) more
           than 1 million connections per second.  See
           tcpEStatsListenerSynRcvd."
       ::= { tcpEStatsListenerEntry 7 }

   tcpEStatsListenerHCInitial     OBJECT-TYPE
      SYNTAX     ZeroBasedCounter64
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The total number of connections for which the Listener
          has allocated initial state and placed the connection
          in the backlog on systems that can process (or reject)
          more than 1 million connections per second.  See
          tcpEStatsListenerInitial."
       ::= { tcpEStatsListenerEntry 8 }
Top   ToC   RFC4898 - Page 15
   tcpEStatsListenerHCEstablished OBJECT-TYPE
       SYNTAX     ZeroBasedCounter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of connections that have been established to
           this endpoint on systems that can process (or reject) more
           than 1 million connections per second.  See
           tcpEStatsListenerEstablished."
       ::= { tcpEStatsListenerEntry 9 }

   tcpEStatsListenerHCAccepted    OBJECT-TYPE
      SYNTAX     ZeroBasedCounter64
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The total number of connections for which the Listener
          has successfully issued an accept, removing the connection
          from the backlog on systems that can process (or reject)
          more than 1 million connections per second.  See
          tcpEStatsListenerAccepted."
       ::= { tcpEStatsListenerEntry 10 }

   tcpEStatsListenerHCExceedBacklog OBJECT-TYPE
      SYNTAX     ZeroBasedCounter64
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The total number of connections dropped from the
         backlog by this listener due to all reasons on
         systems that can process (or reject) more than
         1 million connections per second.  See
         tcpEStatsListenerExceedBacklog."
       ::= { tcpEStatsListenerEntry 11 }

   tcpEStatsListenerCurConns   OBJECT-TYPE
      SYNTAX     Gauge32
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The current number of connections in the ESTABLISHED
          state, which have also been accepted.  It excludes
          connections that have been established but not accepted
          because they are still subject to being discarded to
          shed load without explicit action by either endpoint."
       ::= { tcpEStatsListenerEntry 12 }

   tcpEStatsListenerMaxBacklog OBJECT-TYPE
Top   ToC   RFC4898 - Page 16
      SYNTAX     Unsigned32
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The maximum number of connections allowed in the
          backlog at one time."
       ::= { tcpEStatsListenerEntry 13 }

   tcpEStatsListenerCurBacklog OBJECT-TYPE
      SYNTAX     Gauge32
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The current number of connections that are in the backlog.
          This gauge includes connections in ESTABLISHED or
          SYN-RECEIVED states for which the Listener has not yet
          issued an accept.

          If this listener is using some technique to implicitly
          represent the SYN-RECEIVED states (e.g., by
          cryptographically encoding the state information in the
          initial sequence number, ISS), it MAY elect to exclude
          connections in the SYN-RECEIVED state from the backlog."
       ::= { tcpEStatsListenerEntry 14 }

   tcpEStatsListenerCurEstabBacklog OBJECT-TYPE
      SYNTAX     Gauge32
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The current number of connections in the backlog that are
          in the ESTABLISHED state, but for which the Listener has
          not yet issued an accept."
       ::= { tcpEStatsListenerEntry 15 }


   -- ================================================================
   --
   -- TCP Connection ID Table
   --

   tcpEStatsConnectIdTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsConnectIdEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table maps information that uniquely identifies
           each active TCP connection to the connection ID used by
Top   ToC   RFC4898 - Page 17
           other tables in this MIB Module.  It is an extension of
           tcpConnectionTable in RFC 4022.

           Entries are retained in this table for the number of
           seconds indicated by the tcpEStatsConnTableLatency
           object, after the TCP connection first enters the closed
           state."
       ::= { tcpEStats 2 }

   tcpEStatsConnectIdEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsConnectIdEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "Each entry in this table maps a TCP connection
           4-tuple to a connection index."
       AUGMENTS { tcpConnectionEntry }
       ::= { tcpEStatsConnectIdTable 1 }

   TcpEStatsConnectIdEntry ::= SEQUENCE {
           tcpEStatsConnectIndex             Unsigned32
   }

   tcpEStatsConnectIndex  OBJECT-TYPE
       SYNTAX          Unsigned32 (1..4294967295)
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
           "A unique integer value assigned to each TCP Connection
           entry.

           The RECOMMENDED algorithm is to begin at 1 and increase to
           some implementation-specific maximum value and then start
           again at 1 skipping values already in use."
       ::= { tcpEStatsConnectIdEntry 1 }

   -- ================================================================
   --
   -- Basic TCP Performance Statistics
   --

   tcpEStatsPerfTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsPerfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION

           "This table contains objects that are useful for
Top   ToC   RFC4898 - Page 18
           measuring TCP performance and first line problem
           diagnosis.  Most objects in this table directly expose
           some TCP state variable or are easily implemented as
           simple functions (e.g., the maximum value) of TCP
           state variables.

           Entries are retained in this table for the number of
           seconds indicated by the tcpEStatsConnTableLatency
           object, after the TCP connection first enters the closed
           state."
       ::= { tcpEStats 3 }

   tcpEStatsPerfEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsPerfEntry
       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 { tcpEStatsConnectIndex }
      ::= { tcpEStatsPerfTable 1 }

   TcpEStatsPerfEntry ::= SEQUENCE {

           tcpEStatsPerfSegsOut                ZeroBasedCounter32,
           tcpEStatsPerfDataSegsOut            ZeroBasedCounter32,
           tcpEStatsPerfDataOctetsOut          ZeroBasedCounter32,
           tcpEStatsPerfHCDataOctetsOut        ZeroBasedCounter64,
           tcpEStatsPerfSegsRetrans            ZeroBasedCounter32,
           tcpEStatsPerfOctetsRetrans          ZeroBasedCounter32,
           tcpEStatsPerfSegsIn                 ZeroBasedCounter32,
           tcpEStatsPerfDataSegsIn             ZeroBasedCounter32,
           tcpEStatsPerfDataOctetsIn           ZeroBasedCounter32,
           tcpEStatsPerfHCDataOctetsIn         ZeroBasedCounter64,
           tcpEStatsPerfElapsedSecs            ZeroBasedCounter32,
           tcpEStatsPerfElapsedMicroSecs       ZeroBasedCounter32,
           tcpEStatsPerfStartTimeStamp         DateAndTime,
           tcpEStatsPerfCurMSS                 Gauge32,
           tcpEStatsPerfPipeSize               Gauge32,
           tcpEStatsPerfMaxPipeSize            Gauge32,
           tcpEStatsPerfSmoothedRTT            Gauge32,
           tcpEStatsPerfCurRTO                 Gauge32,
           tcpEStatsPerfCongSignals            ZeroBasedCounter32,
           tcpEStatsPerfCurCwnd                Gauge32,
           tcpEStatsPerfCurSsthresh            Gauge32,
           tcpEStatsPerfTimeouts               ZeroBasedCounter32,
           tcpEStatsPerfCurRwinSent            Gauge32,
Top   ToC   RFC4898 - Page 19
           tcpEStatsPerfMaxRwinSent            Gauge32,
           tcpEStatsPerfZeroRwinSent           ZeroBasedCounter32,
           tcpEStatsPerfCurRwinRcvd            Gauge32,
           tcpEStatsPerfMaxRwinRcvd            Gauge32,
           tcpEStatsPerfZeroRwinRcvd           ZeroBasedCounter32,
           tcpEStatsPerfSndLimTransRwin        ZeroBasedCounter32,
           tcpEStatsPerfSndLimTransCwnd        ZeroBasedCounter32,
           tcpEStatsPerfSndLimTransSnd         ZeroBasedCounter32,
           tcpEStatsPerfSndLimTimeRwin         ZeroBasedCounter32,
           tcpEStatsPerfSndLimTimeCwnd         ZeroBasedCounter32,
           tcpEStatsPerfSndLimTimeSnd          ZeroBasedCounter32
       }

   --
   --  The following objects provide statistics on aggregate
   --  segments and data sent on a connection.  These provide a
   --  direct measure of the Internet capacity consumed by a
   --  connection.
   --

   tcpEStatsPerfSegsOut  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The total number of segments sent."
       ::= { tcpEStatsPerfEntry 1 }

   tcpEStatsPerfDataSegsOut  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of segments sent containing a positive length
           data segment."
       ::= { tcpEStatsPerfEntry 2 }

   tcpEStatsPerfDataOctetsOut  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets of data contained in transmitted
           segments, including retransmitted data.  Note that this does
           not include TCP headers."
       ::= { tcpEStatsPerfEntry 3 }
Top   ToC   RFC4898 - Page 20
   tcpEStatsPerfHCDataOctetsOut  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter64
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets of data contained in transmitted
           segments, including retransmitted data, on systems that can
           transmit more than 10 million bits per second.  Note that
           this does not include TCP headers."
       ::= { tcpEStatsPerfEntry 4 }

   tcpEStatsPerfSegsRetrans  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of segments transmitted containing at least some
           retransmitted data."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsPerfEntry 5 }

   tcpEStatsPerfOctetsRetrans  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets retransmitted."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsPerfEntry 6 }

   tcpEStatsPerfSegsIn  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The total number of segments received."
       ::= { tcpEStatsPerfEntry 7 }

   tcpEStatsPerfDataSegsIn  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of segments received containing a positive
Top   ToC   RFC4898 - Page 21
           length data segment."
       ::= { tcpEStatsPerfEntry 8 }

   tcpEStatsPerfDataOctetsIn  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets contained in received data segments,
           including retransmitted data.  Note that this does not
           include TCP headers."
       ::= { tcpEStatsPerfEntry 9 }

   tcpEStatsPerfHCDataOctetsIn  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter64
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of octets contained in received data segments,
           including retransmitted data, on systems that can receive
           more than 10 million bits per second.  Note that this does
           not include TCP headers."
       ::= { tcpEStatsPerfEntry 10 }

   tcpEStatsPerfElapsedSecs  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "seconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The seconds part of the time elapsed between
           tcpEStatsPerfStartTimeStamp and the most recent protocol
           event (segment sent or received)."
       ::= { tcpEStatsPerfEntry 11 }

   tcpEStatsPerfElapsedMicroSecs  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "microseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The micro-second part of time elapsed between
           tcpEStatsPerfStartTimeStamp to the most recent protocol
           event (segment sent or received).  This may be updated in
           whatever time granularity is the system supports."
       ::= { tcpEStatsPerfEntry 12 }
Top   ToC   RFC4898 - Page 22
   tcpEStatsPerfStartTimeStamp  OBJECT-TYPE
       SYNTAX          DateAndTime
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Time at which this row was created and all
           ZeroBasedCounters in the row were initialized to zero."
       ::= { tcpEStatsPerfEntry 13 }

   --
   --  The following objects can be used to fit minimal
   --  performance models to the TCP data rate.
   --

   tcpEStatsPerfCurMSS  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current maximum segment size (MSS), in octets."
       REFERENCE
          "RFC 1122, Requirements for Internet Hosts - Communication
           Layers"
       ::= { tcpEStatsPerfEntry 14 }

   tcpEStatsPerfPipeSize  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The TCP senders current estimate of the number of
           unacknowledged data octets in the network.

           While not in recovery (e.g., while the receiver is not
           reporting missing data to the sender), this is precisely the
           same as 'Flight size' as defined in RFC 2581, which can be
           computed as SND.NXT minus SND.UNA. [RFC793]

           During recovery, the TCP sender has incomplete information
           about the state of the network (e.g., which segments are
           lost vs reordered, especially if the return path is also
           dropping TCP acknowledgments).  Current TCP standards do not
           mandate any specific algorithm for estimating the number of
           unacknowledged data octets in the network.

           RFC 3517 describes a conservative algorithm to use SACK
Top   ToC   RFC4898 - Page 23
           information to estimate the number of unacknowledged data
           octets in the network. tcpEStatsPerfPipeSize object SHOULD
           be the same as 'pipe' as defined in RFC 3517 if it is
           implemented. (Note that while not in recovery the pipe
           algorithm yields the same values as flight size).

           If RFC 3517 is not implemented, the data octets in flight
           SHOULD be estimated as SND.NXT minus SND.UNA adjusted by
           some measure of the data that has left the network and
           retransmitted data.  For example, with Reno or NewReno style
           TCP, the number of duplicate acknowledgment is used to
           count the number of segments that have left the network.
           That is,
           PipeSize=SND.NXT-SND.UNA+(retransmits-dupacks)*CurMSS"
       REFERENCE
          "RFC 793, RFC 2581, RFC 3517"
       ::= { tcpEStatsPerfEntry 15 }

   tcpEStatsPerfMaxPipeSize  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum value of tcpEStatsPerfPipeSize, for this
           connection."
       REFERENCE
          "RFC 793, RFC 2581, RFC 3517"
       ::= { tcpEStatsPerfEntry 16 }

   tcpEStatsPerfSmoothedRTT  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The smoothed round trip time used in calculation of the
           RTO. See SRTT in [RFC2988]."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPerfEntry 17 }

   tcpEStatsPerfCurRTO  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
Top   ToC   RFC4898 - Page 24
          "The current value of the retransmit timer RTO."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPerfEntry 18 }

   tcpEStatsPerfCongSignals  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       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, Explicit Congestion Notification
           (ECN), and timeouts.  This object summarizes all events that
           invoke the MD portion of Additive Increase Multiplicative
           Decrease (AIMD) congestion control, and as such is the best
           indicator of how a cwnd is being affected by congestion.

           Note that retransmission timeouts multiplicatively reduce
           the window implicitly by setting ssthresh, and SHOULD be
           included in tcpEStatsPerfCongSignals.  In order to minimize
           spurious congestion indications due to out-of-order
           segments, tcpEStatsPerfCongSignals SHOULD be incremented in
           association with the Fast Retransmit algorithm."
       REFERENCE
          "RFC 2581, TCP Congestion Control"
       ::= { tcpEStatsPerfEntry 19 }

   tcpEStatsPerfCurCwnd  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current congestion window, in octets."
       REFERENCE
          "RFC 2581, TCP Congestion Control"
       ::= { tcpEStatsPerfEntry 20 }

   tcpEStatsPerfCurSsthresh  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current slow start threshold in octets."
       REFERENCE
          "RFC 2581, TCP Congestion Control"
Top   ToC   RFC4898 - Page 25
       ::= { tcpEStatsPerfEntry 21 }

   tcpEStatsPerfTimeouts  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       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."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPerfEntry 22 }

   --
   --  The following objects instrument receiver window updates
   --  sent by the local receiver to the remote sender.  These can
   --  be used to determine if the local receiver is exerting flow
   --  control back pressure on the remote sender.
   --

   tcpEStatsPerfCurRwinSent  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The most recent window advertisement sent, in octets."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsPerfEntry 23 }

   tcpEStatsPerfMaxRwinSent  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum window advertisement sent, in octets."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsPerfEntry 24 }

   tcpEStatsPerfZeroRwinSent  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of acknowledgments sent announcing a zero
Top   ToC   RFC4898 - Page 26
           receive window, when the previously announced window was
           not zero."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsPerfEntry 25 }

   --
   --  The following objects instrument receiver window updates
   --  from the far end-system to determine if the remote receiver
   --  has sufficient buffer space or is exerting flow-control
   --  back pressure on the local sender.
   --

   tcpEStatsPerfCurRwinRcvd  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The most recent window advertisement received, in octets."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsPerfEntry 26 }

   tcpEStatsPerfMaxRwinRcvd  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum window advertisement received, in octets."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsPerfEntry 27 }

   tcpEStatsPerfZeroRwinRcvd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of acknowledgments received announcing a zero
           receive window, when the previously announced window was
           not zero."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsPerfEntry 28 }

   --
Top   ToC   RFC4898 - Page 27
   --  The following optional objects can be used to quickly
   --  identify which subsystems are limiting TCP performance.
   --  There are three parallel pairs of instruments that measure
   --  the extent to which TCP performance is limited by the
   --  announced receiver window (indicating a receiver
   --  bottleneck), the current congestion window or
   --  retransmission timeout (indicating a path bottleneck) and
   --  all others events (indicating a sender bottleneck).
   --
   --  These instruments SHOULD be updated every time the TCP
   --  output routine stops sending data.  The elapsed time since
   --  the previous stop is accumulated into the appropriate
   --  object as determined by the previous stop reason (e.g.,
   --  stop state).  The current stop reason determines which timer
   --  will be updated the next time TCP output stops.
   --
   --  Since there is no explicit stop at the beginning of a
   --  timeout, it is necessary to retroactively reclassify the
   --  previous stop as 'Congestion Limited'.
   --

   tcpEStatsPerfSndLimTransRwin  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       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
           window, i.e., when SND.NXT has advanced to SND.UNA +
           SND.WND - 1 as described in RFC 793."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsPerfEntry 31 }

   tcpEStatsPerfSndLimTransCwnd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       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.  See the definition of 'CONGESTION WINDOW'
Top   ToC   RFC4898 - Page 28
           in RFC 2581."
       REFERENCE
          "RFC 2581, TCP Congestion Control"
       ::= { tcpEStatsPerfEntry 32 }

   tcpEStatsPerfSndLimTransSnd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       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 cannot be
           classified as Receiver Limited or Congestion Limited, it
           MUST be treated as Sender Limited."
       ::= { tcpEStatsPerfEntry 33 }

   tcpEStatsPerfSndLimTimeRwin  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The cumulative time spent in the 'Receiver Limited' state.
           See tcpEStatsPerfSndLimTransRwin."
       ::= { tcpEStatsPerfEntry 34 }

   tcpEStatsPerfSndLimTimeCwnd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The cumulative time spent in the 'Congestion Limited'
           state.  See tcpEStatsPerfSndLimTransCwnd.  When there is a
           retransmission timeout, it SHOULD be counted in
           tcpEStatsPerfSndLimTimeCwnd (and not the cumulative time
           for some other state.)"
       ::= { tcpEStatsPerfEntry 35 }

   tcpEStatsPerfSndLimTimeSnd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
Top   ToC   RFC4898 - Page 29
       DESCRIPTION
          "The cumulative time spent in the 'Sender Limited' state.
           See tcpEStatsPerfSndLimTransSnd."
       ::= { tcpEStatsPerfEntry 36 }

   -- ================================================================
   --
   -- Statistics for diagnosing path problems
   --

   tcpEStatsPathTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsPathEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains objects that can be used to infer
           detailed behavior of the Internet path, such as the
           extent that there is reordering, ECN bits, and if
           RTT fluctuations are correlated to losses.

           Entries are retained in this table for the number of
           seconds indicated by the tcpEStatsConnTableLatency
           object, after the TCP connection first enters the closed
           state."
       ::= { tcpEStats 4 }

   tcpEStatsPathEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsPathEntry
       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 { tcpEStatsConnectIndex }
      ::= { tcpEStatsPathTable 1 }

   TcpEStatsPathEntry ::= SEQUENCE {

           tcpEStatsPathRetranThresh           Gauge32,
           tcpEStatsPathNonRecovDAEpisodes     ZeroBasedCounter32,
           tcpEStatsPathSumOctetsReordered     ZeroBasedCounter32,
           tcpEStatsPathNonRecovDA             ZeroBasedCounter32,
           tcpEStatsPathSampleRTT              Gauge32,
           tcpEStatsPathRTTVar                 Gauge32,
           tcpEStatsPathMaxRTT                 Gauge32,
           tcpEStatsPathMinRTT                 Gauge32,
           tcpEStatsPathSumRTT                 ZeroBasedCounter32,
Top   ToC   RFC4898 - Page 30
           tcpEStatsPathHCSumRTT               ZeroBasedCounter64,
           tcpEStatsPathCountRTT               ZeroBasedCounter32,
           tcpEStatsPathMaxRTO                 Gauge32,
           tcpEStatsPathMinRTO                 Gauge32,
           tcpEStatsPathIpTtl                  Unsigned32,
           tcpEStatsPathIpTosIn                OCTET STRING,
           tcpEStatsPathIpTosOut               OCTET STRING,
           tcpEStatsPathPreCongSumCwnd         ZeroBasedCounter32,
           tcpEStatsPathPreCongSumRTT          ZeroBasedCounter32,
           tcpEStatsPathPostCongSumRTT         ZeroBasedCounter32,
           tcpEStatsPathPostCongCountRTT       ZeroBasedCounter32,
           tcpEStatsPathECNsignals             ZeroBasedCounter32,
           tcpEStatsPathDupAckEpisodes         ZeroBasedCounter32,
           tcpEStatsPathRcvRTT                 Gauge32,
           tcpEStatsPathDupAcksOut             ZeroBasedCounter32,
           tcpEStatsPathCERcvd                 ZeroBasedCounter32,
           tcpEStatsPathECESent                ZeroBasedCounter32
       }

   --
   --  The following optional objects can be used to infer segment
   --  reordering on the path from the local sender to the remote
   --  receiver.
   --

   tcpEStatsPathRetranThresh  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of duplicate acknowledgments required to trigger
           Fast Retransmit.  Note that although this is constant in
           traditional Reno TCP implementations, it is adaptive in
           many newer TCPs."
       REFERENCE
          "RFC 2581, TCP Congestion Control"
       ::= { tcpEStatsPathEntry 1 }

   tcpEStatsPathNonRecovDAEpisodes  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of duplicate acknowledgment episodes that did
           not trigger a Fast Retransmit because ACK advanced prior to
           the number of duplicate acknowledgments reaching
           RetranThresh.
Top   ToC   RFC4898 - Page 31
           In many implementations this is the number of times the
           'dupacks' counter is set to zero when it is non-zero but
           less than RetranThresh.

           Note that the change in tcpEStatsPathNonRecovDAEpisodes
           divided by the change in tcpEStatsPerfDataSegsOut is an
           estimate of the frequency of data reordering on the forward
           path over some interval."
       REFERENCE
          "RFC 2581, TCP Congestion Control"
       ::= { tcpEStatsPathEntry 2 }

   tcpEStatsPathSumOctetsReordered  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The sum of the amounts SND.UNA advances on the
           acknowledgment which ends a dup-ack episode without a
           retransmission.

           Note the change in tcpEStatsPathSumOctetsReordered divided
           by the change in tcpEStatsPathNonRecovDAEpisodes is an
           estimates of the average reordering distance, over some
           interval."
       ::= { tcpEStatsPathEntry 3 }

   tcpEStatsPathNonRecovDA  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Duplicate acks (or SACKS) that did not trigger a Fast
           Retransmit because ACK advanced prior to the number of
           duplicate acknowledgments reaching RetranThresh.

           In many implementations, this is the sum of the 'dupacks'
           counter, just before it is set to zero because ACK advanced
           without a Fast Retransmit.

           Note that the change in tcpEStatsPathNonRecovDA divided by
           the change in tcpEStatsPathNonRecovDAEpisodes is an
           estimate of the average reordering distance in segments
           over some interval."
       REFERENCE
          "RFC 2581, TCP Congestion Control"
       ::= { tcpEStatsPathEntry 4 }
Top   ToC   RFC4898 - Page 32
   --
   --  The following optional objects instrument the round trip
   --  time estimator and the retransmission timeout timer.
   --

   tcpEStatsPathSampleRTT  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The most recent raw round trip time measurement used in
           calculation of the RTO."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPathEntry 11 }

   tcpEStatsPathRTTVar  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The round trip time variation used in calculation of the
           RTO.  See RTTVAR in [RFC2988]."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPathEntry 12 }

   tcpEStatsPathMaxRTT  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum sampled round trip time."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPathEntry 13 }

   tcpEStatsPathMinRTT  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The minimum sampled round trip time."
       REFERENCE
Top   ToC   RFC4898 - Page 33
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPathEntry 14 }

   tcpEStatsPathSumRTT  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The sum of all sampled round trip times.

           Note that the change in tcpEStatsPathSumRTT divided by the
           change in tcpEStatsPathCountRTT is the mean RTT, uniformly
           averaged over an enter interval."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPathEntry 15 }

   tcpEStatsPathHCSumRTT  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter64
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The sum of all sampled round trip times, on all systems
           that implement multiple concurrent RTT measurements.

           Note that the change in tcpEStatsPathHCSumRTT divided by
           the change in tcpEStatsPathCountRTT is the mean RTT,
           uniformly averaged over an enter interval."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPathEntry 16 }

   tcpEStatsPathCountRTT  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of round trip time samples included in
           tcpEStatsPathSumRTT and tcpEStatsPathHCSumRTT."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPathEntry 17 }

   tcpEStatsPathMaxRTO  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "milliseconds"
Top   ToC   RFC4898 - Page 34
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum value of the retransmit timer RTO."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPathEntry 18 }

   tcpEStatsPathMinRTO  OBJECT-TYPE
       SYNTAX          Gauge32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The minimum value of the retransmit timer RTO."
       REFERENCE
          "RFC 2988, Computing TCP's Retransmission Timer"
       ::= { tcpEStatsPathEntry 19 }

   --
   --  The following optional objects provide information about
   --  how TCP is using the IP layer.
   --

   tcpEStatsPathIpTtl  OBJECT-TYPE
       SYNTAX          Unsigned32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of the TTL field carried in the most recently
           received IP header.  This is sometimes useful to detect
           changing or unstable routes."
       REFERENCE
          "RFC 791, Internet Protocol"
       ::= { tcpEStatsPathEntry 20 }

   tcpEStatsPathIpTosIn  OBJECT-TYPE
       SYNTAX          OCTET STRING (SIZE(1))
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of the IPv4 Type of Service octet, or the IPv6
           traffic class octet, carried in the most recently received
           IP header.

           This is useful to diagnose interactions between TCP and any
           IP layer packet scheduling and delivery policy, which might
           be in effect to implement Diffserv."
Top   ToC   RFC4898 - Page 35
       REFERENCE
          "RFC 3260, New Terminology and Clarifications for Diffserv"
       ::= { tcpEStatsPathEntry 21 }

   tcpEStatsPathIpTosOut  OBJECT-TYPE
       SYNTAX          OCTET STRING (SIZE(1))
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of the IPv4 Type Of Service octet, or the IPv6
           traffic class octet, carried in the most recently
           transmitted IP header.

           This is useful to diagnose interactions between TCP and any
           IP layer packet scheduling and delivery policy, which might
           be in effect to implement Diffserv."
       REFERENCE
          "RFC 3260, New Terminology and Clarifications for Diffserv"
       ::= { tcpEStatsPathEntry 22 }

   --
   --  The following optional objects characterize the congestion
   --  feedback signals by collecting statistics on how the
   --  congestion events are correlated to losses, changes in RTT
   --  and other protocol events.
   --

   tcpEStatsPathPreCongSumCwnd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "octets"
       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 tcpEStatsPerfCongSignals is
           incremented, such that the change in
           tcpEStatsPathPreCongSumCwnd divided by the change in
           tcpEStatsPerfCongSignals is the average window (over some
           interval) just prior to a congestion signal."
       ::= { tcpEStatsPathEntry 23 }

   tcpEStatsPathPreCongSumRTT  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
Top   ToC   RFC4898 - Page 36
          "Sum of the last sample of the RTT (tcpEStatsPathSampleRTT)
           prior to the received congestion signals.  This MUST be
           updated each time tcpEStatsPerfCongSignals is incremented,
           such that the change in tcpEStatsPathPreCongSumRTT divided by
           the change in tcpEStatsPerfCongSignals is the average RTT
           (over some interval) just prior to a congestion signal."
       ::= { tcpEStatsPathEntry 24 }

   tcpEStatsPathPostCongSumRTT  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "octets"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Sum of the first sample of the RTT (tcpEStatsPathSampleRTT)
           following each congestion signal.  Such that the change in
           tcpEStatsPathPostCongSumRTT divided by the change in
           tcpEStatsPathPostCongCountRTT is the average RTT (over some
           interval) just after a congestion signal."
       ::= { tcpEStatsPathEntry 25 }

   tcpEStatsPathPostCongCountRTT  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       UNITS           "milliseconds"
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of RTT samples included in
           tcpEStatsPathPostCongSumRTT such that the change in
           tcpEStatsPathPostCongSumRTT divided by the change in
           tcpEStatsPathPostCongCountRTT is the average RTT (over some
           interval) just after a congestion signal."
       ::= { tcpEStatsPathEntry 26 }

   --
   --  The following optional objects can be used to detect other
   --  types of non-loss congestion signals such as source quench
   --  or ECN.
   --

   tcpEStatsPathECNsignals  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of congestion signals delivered to the TCP
           sender via explicit congestion notification (ECN).  This is
           typically the number of segments bearing Echo Congestion
Top   ToC   RFC4898 - Page 37
           Experienced (ECE) bits, but
           should also include segments failing the ECN nonce check or
           other explicit congestion signals."
       REFERENCE
          "RFC 3168, The Addition of Explicit Congestion Notification
           (ECN) to IP"
       ::= { tcpEStatsPathEntry 27 }

   --
   --  The following optional objects are receiver side
   --  instruments of the path from the sender to the receiver.  In
   --  general, the receiver has less information about the state
   --  of the path because the receiver does not have a robust
   --  mechanism to infer the sender's actions.
   --

   tcpEStatsPathDupAckEpisodes  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of Duplicate Acks Sent when prior Ack was not
           duplicate.  This is the number of times that a contiguous
           series of duplicate acknowledgments have been sent.

           This is an indication of the number of data segments lost
           or reordered on the path from the remote TCP endpoint to
           the near TCP endpoint."
       REFERENCE
          "RFC 2581, TCP Congestion Control"
       ::= { tcpEStatsPathEntry 28 }

   tcpEStatsPathRcvRTT  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The receiver's estimate of the Path RTT.

           Adaptive receiver window algorithms depend on the receiver
           to having a good estimate of the path RTT."
       ::= { tcpEStatsPathEntry 29 }

   tcpEStatsPathDupAcksOut  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
Top   ToC   RFC4898 - Page 38
          "The number of duplicate ACKs sent.  The ratio of the change
           in tcpEStatsPathDupAcksOut to the change in
           tcpEStatsPathDupAckEpisodes is an indication of reorder or
           recovery distance over some interval."
       REFERENCE
          "RFC 2581, TCP Congestion Control"
       ::= { tcpEStatsPathEntry 30 }

   tcpEStatsPathCERcvd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of segments received with IP headers bearing
           Congestion Experienced (CE) markings."
       REFERENCE
          "RFC 3168, The Addition of Explicit Congestion Notification
           (ECN) to IP"
       ::= { tcpEStatsPathEntry 31 }

   tcpEStatsPathECESent  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Number of times the Echo Congestion Experienced (ECE) bit
           in the TCP header has been set (transitioned from 0 to 1),
           due to a Congestion Experienced (CE) marking on an IP
           header.  Note that ECE can be set and reset only once per
           RTT, while CE can be set on many segments per RTT."
       REFERENCE
          "RFC 3168, The Addition of Explicit Congestion Notification
           (ECN) to IP"
       ::= { tcpEStatsPathEntry 32 }

   -- ================================================================
   --
   -- Statistics for diagnosing stack algorithms
   --

   tcpEStatsStackTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsStackEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains objects that are most useful for
           determining how well some of the TCP control
           algorithms are coping with this particular
Top   ToC   RFC4898 - Page 39
           path.

           Entries are retained in this table for the number of
           seconds indicated by the tcpEStatsConnTableLatency
           object, after the TCP connection first enters the closed
           state."
       ::= { tcpEStats 5 }

   tcpEStatsStackEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsStackEntry
       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 { tcpEStatsConnectIndex }
      ::= { tcpEStatsStackTable 1 }

   TcpEStatsStackEntry ::= SEQUENCE {

           tcpEStatsStackActiveOpen            TruthValue,
           tcpEStatsStackMSSSent               Unsigned32,
           tcpEStatsStackMSSRcvd               Unsigned32,
           tcpEStatsStackWinScaleSent          Integer32,
           tcpEStatsStackWinScaleRcvd          Integer32,
           tcpEStatsStackTimeStamps            TcpEStatsNegotiated,
           tcpEStatsStackECN                   TcpEStatsNegotiated,
           tcpEStatsStackWillSendSACK          TcpEStatsNegotiated,
           tcpEStatsStackWillUseSACK           TcpEStatsNegotiated,
           tcpEStatsStackState                 INTEGER,
           tcpEStatsStackNagle                 TruthValue,
           tcpEStatsStackMaxSsCwnd             Gauge32,
           tcpEStatsStackMaxCaCwnd             Gauge32,
           tcpEStatsStackMaxSsthresh           Gauge32,
           tcpEStatsStackMinSsthresh           Gauge32,
           tcpEStatsStackInRecovery            INTEGER,
           tcpEStatsStackDupAcksIn             ZeroBasedCounter32,
           tcpEStatsStackSpuriousFrDetected    ZeroBasedCounter32,
           tcpEStatsStackSpuriousRtoDetected   ZeroBasedCounter32,
           tcpEStatsStackSoftErrors            ZeroBasedCounter32,
           tcpEStatsStackSoftErrorReason       INTEGER,
           tcpEStatsStackSlowStart             ZeroBasedCounter32,
           tcpEStatsStackCongAvoid             ZeroBasedCounter32,
           tcpEStatsStackOtherReductions       ZeroBasedCounter32,
           tcpEStatsStackCongOverCount         ZeroBasedCounter32,
           tcpEStatsStackFastRetran            ZeroBasedCounter32,
           tcpEStatsStackSubsequentTimeouts    ZeroBasedCounter32,
Top   ToC   RFC4898 - Page 40
           tcpEStatsStackCurTimeoutCount       Gauge32,
           tcpEStatsStackAbruptTimeouts        ZeroBasedCounter32,
           tcpEStatsStackSACKsRcvd             ZeroBasedCounter32,
           tcpEStatsStackSACKBlocksRcvd        ZeroBasedCounter32,
           tcpEStatsStackSendStall             ZeroBasedCounter32,
           tcpEStatsStackDSACKDups             ZeroBasedCounter32,
           tcpEStatsStackMaxMSS                Gauge32,
           tcpEStatsStackMinMSS                Gauge32,
           tcpEStatsStackSndInitial            Unsigned32,
           tcpEStatsStackRecInitial            Unsigned32,
           tcpEStatsStackCurRetxQueue          Gauge32,
           tcpEStatsStackMaxRetxQueue          Gauge32,
           tcpEStatsStackCurReasmQueue         Gauge32,
           tcpEStatsStackMaxReasmQueue         Gauge32
       }

   --
   --  The following objects reflect TCP options carried on the
   --  SYN or SYN-ACK.  These options are used to provide
   --  additional protocol parameters or to enable various
   --  optional TCP features or algorithms.
   --
   --  Except as noted, the TCP protocol does not permit these
   --  options to change after the SYN exchange.
   --

   tcpEStatsStackActiveOpen  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "True(1) if the local connection traversed the SYN-SENT
           state, else false(2)."
       REFERENCE
          "RFC 793, Transmission Control Protocol"
       ::= { tcpEStatsStackEntry 1 }

   tcpEStatsStackMSSSent  OBJECT-TYPE
       SYNTAX          Unsigned32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value sent in an MSS option, or zero if none."
       REFERENCE
          "RFC 1122, Requirements for Internet Hosts - Communication
           Layers"
       ::= { tcpEStatsStackEntry 2 }


(next page on part 3)

Next Section