-- Network Working Group M. Mathis
-- Request for Comments: 4898 J. Heffner
-- Category: Standards Track Pittsburgh Supercomputing Center
-- R. Raghunarayan
-- Cisco Systems
-- May 2007-- TCP Extended Statistics MIBTCP-ESTATS-MIB DEFINITIONS::=BEGINIMPORTSMODULE-IDENTITY,Counter32,Integer32,Unsigned32,Gauge32,OBJECT-TYPE, mib-2,NOTIFICATION-TYPEFROM SNMPv2-SMI -- [RFC2578]MODULE-COMPLIANCE,OBJECT-GROUP,NOTIFICATION-GROUPFROM SNMPv2-CONF -- [RFC2580]ZeroBasedCounter32FROM RMON2-MIB -- [RFC4502]ZeroBasedCounter64FROM HCNUM-TC -- [RFC2856]TEXTUAL-CONVENTION,DateAndTime,TruthValue,TimeStampFROM SNMPv2-TC -- [RFC2579]tcpListenerEntry, tcpConnectionEntry
FROM TCP-MIB;-- [RFC4022]tcpEStatsMIB MODULE-IDENTITYLAST-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."REVISION"200705180000Z"-- 18 May 2007DESCRIPTION"Initial version, published as RFC 4898."::={ mib-2 156}tcpEStatsNotifications OBJECTIDENTIFIER::={ tcpEStatsMIB 0}tcpEStatsMIBObjects OBJECTIDENTIFIER::={ tcpEStatsMIB 1}
tcpEStatsConformance OBJECTIDENTIFIER::={ tcpEStatsMIB 2}tcpEStats OBJECTIDENTIFIER::={ tcpEStatsMIBObjects 1}tcpEStatsControl OBJECTIDENTIFIER::={ tcpEStatsMIBObjects 2}tcpEStatsScalar OBJECTIDENTIFIER::={ tcpEStatsMIBObjects 3}---- Textual Conventions--TcpEStatsNegotiated::=TEXTUAL-CONVENTIONSTATUScurrentDESCRIPTION"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."SYNTAXINTEGER{enabled(1),selfDisabled(2),peerDisabled(3)
}---- TCP Extended statistics scalars--tcpEStatsListenerTableLastChange OBJECT-TYPESYNTAXTimeStampMAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXTruthValueMAX-ACCESSread-writeSTATUScurrentDESCRIPTION"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-TYPESYNTAXTruthValue
MAX-ACCESSread-writeSTATUScurrentDESCRIPTION"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-TYPESYNTAXTruthValueMAX-ACCESSread-writeSTATUScurrentDESCRIPTION"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-TYPESYNTAXTruthValueMAX-ACCESSread-writeSTATUScurrentDESCRIPTION"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-TYPESYNTAXTruthValue
MAX-ACCESSread-writeSTATUScurrentDESCRIPTION"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-TYPESYNTAXUnsigned32UNITS"seconds"MAX-ACCESSread-writeSTATUScurrentDESCRIPTION"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
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-TYPESYNTAXSEQUENCEOF TcpEStatsListenerEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"This table contains information about TCP Listeners,
in addition to the information maintained by the
tcpListenerTable RFC 4022."::={ tcpEStats 1}tcpEStatsListenerEntry OBJECT-TYPESYNTAX TcpEStatsListenerEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"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,
tcpEStatsListenerHCAccepted ZeroBasedCounter64,
tcpEStatsListenerHCExceedBacklog ZeroBasedCounter64,
tcpEStatsListenerCurConns Gauge32,
tcpEStatsListenerMaxBacklog Unsigned32,
tcpEStatsListenerCurBacklog Gauge32,
tcpEStatsListenerCurEstabBacklog Gauge32}tcpEStatsListenerStartTime OBJECT-TYPESYNTAXTimeStampMAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total number of connections for which the Listener
has successfully issued an accept, removing the connection
from the backlog."::={ tcpEStatsListenerEntry 5}tcpEStatsListenerExceedBacklog OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter64MAX-ACCESSread-only
STATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter64MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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}tcpEStatsListenerHCEstablished OBJECT-TYPESYNTAXZeroBasedCounter64MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter64MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter64MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXGauge32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXUnsigned32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum number of connections allowed in the
backlog at one time."::={ tcpEStatsListenerEntry 13}
tcpEStatsListenerCurBacklog OBJECT-TYPESYNTAXGauge32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXGauge32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXSEQUENCEOF TcpEStatsConnectIdEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"This table maps information that uniquely identifies
each active TCP connection to the connection ID used by
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-TYPESYNTAX TcpEStatsConnectIdEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"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-TYPESYNTAXUnsigned32(1..4294967295)MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXSEQUENCEOF TcpEStatsPerfEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"This table contains objects that are useful for
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-TYPESYNTAX TcpEStatsPerfEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"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,
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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total number of segments sent."::={ tcpEStatsPerfEntry 1}tcpEStatsPerfDataSegsOut OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of segments sent containing a positive length
data segment."::={ tcpEStatsPerfEntry 2}tcpEStatsPerfDataOctetsOut OBJECT-TYPESYNTAXZeroBasedCounter32UNITS"octets"MAX-ACCESSread-onlySTATUScurrent
DESCRIPTION"The number of octets of data contained in transmitted
segments, including retransmitted data. Note that this does
not include TCP headers."::={ tcpEStatsPerfEntry 3}tcpEStatsPerfHCDataOctetsOut OBJECT-TYPESYNTAXZeroBasedCounter64UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of segments transmitted containing at least some
retransmitted data."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsPerfEntry 5}tcpEStatsPerfOctetsRetrans OBJECT-TYPESYNTAXZeroBasedCounter32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of octets retransmitted."
REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsPerfEntry 6}tcpEStatsPerfSegsIn OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The total number of segments received."::={ tcpEStatsPerfEntry 7}tcpEStatsPerfDataSegsIn OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of segments received containing a positive
length data segment."::={ tcpEStatsPerfEntry 8}tcpEStatsPerfDataOctetsIn OBJECT-TYPESYNTAXZeroBasedCounter32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of octets contained in received data segments,
including retransmitted data. Note that this does not
include TCP headers."::={ tcpEStatsPerfEntry 9}tcpEStatsPerfHCDataOctetsIn OBJECT-TYPESYNTAXZeroBasedCounter64UNITS"octets"MAX-ACCESSread-only
STATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32UNITS"seconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The seconds part of the time elapsed between
tcpEStatsPerfStartTimeStamp and the most recent protocol
event (segment sent or received)."::={ tcpEStatsPerfEntry 11}tcpEStatsPerfElapsedMicroSecs OBJECT-TYPESYNTAXZeroBasedCounter32UNITS"microseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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}tcpEStatsPerfStartTimeStamp OBJECT-TYPESYNTAXDateAndTimeMAX-ACCESSread-onlySTATUScurrentDESCRIPTION
"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-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The current maximum segment size (MSS), in octets."REFERENCE"RFC 1122, Requirements for Internet Hosts - Communication
Layers"::={ tcpEStatsPerfEntry 14}tcpEStatsPerfPipeSize OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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
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-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum value of tcpEStatsPerfPipeSize, for this
connection."REFERENCE"RFC 793, RFC 2581, RFC 3517"::={ tcpEStatsPerfEntry 16}tcpEStatsPerfSmoothedRTT OBJECT-TYPESYNTAXGauge32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXGauge32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The current value of the retransmit timer RTO."REFERENCE"RFC 2988, Computing TCP's Retransmission Timer"::={ tcpEStatsPerfEntry 18}tcpEStatsPerfCongSignals OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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
SYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The current congestion window, in octets."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsPerfEntry 20}tcpEStatsPerfCurSsthresh OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The current slow start threshold in octets."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsPerfEntry 21}tcpEStatsPerfTimeouts OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The most recent window advertisement sent, in octets."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsPerfEntry 23}tcpEStatsPerfMaxRwinSent OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum window advertisement sent, in octets."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsPerfEntry 24}tcpEStatsPerfZeroRwinSent OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of acknowledgments sent announcing a zero
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-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The most recent window advertisement received, in octets."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsPerfEntry 26}tcpEStatsPerfMaxRwinRcvd OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum window advertisement received, in octets."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsPerfEntry 27}tcpEStatsPerfZeroRwinRcvd OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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}---- 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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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'
in RFC 2581."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsPerfEntry 32}tcpEStatsPerfSndLimTransSnd OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32
UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The cumulative time spent in the 'Receiver Limited' state.
See tcpEStatsPerfSndLimTransRwin."::={ tcpEStatsPerfEntry 34}tcpEStatsPerfSndLimTimeCwnd OBJECT-TYPESYNTAXZeroBasedCounter32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The cumulative time spent in the 'Sender Limited' state.
See tcpEStatsPerfSndLimTransSnd."::={ tcpEStatsPerfEntry 36}-- ================================================================---- Statistics for diagnosing path problems--tcpEStatsPathTable OBJECT-TYPESYNTAXSEQUENCEOF TcpEStatsPathEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"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-TYPESYNTAX TcpEStatsPathEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"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,
tcpEStatsPathHCSumRTT ZeroBasedCounter64,
tcpEStatsPathCountRTT ZeroBasedCounter32,
tcpEStatsPathMaxRTO Gauge32,
tcpEStatsPathMinRTO Gauge32,
tcpEStatsPathIpTtl Unsigned32,
tcpEStatsPathIpTosIn OCTETSTRING,
tcpEStatsPathIpTosOut OCTETSTRING,
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-TYPESYNTAXGauge32
MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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.
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-TYPESYNTAXZeroBasedCounter32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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}---- The following optional objects instrument the round trip-- time estimator and the retransmission timeout timer.--tcpEStatsPathSampleRTT OBJECT-TYPESYNTAXGauge32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXGauge32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXGauge32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum sampled round trip time."REFERENCE"RFC 2988, Computing TCP's Retransmission Timer"::={ tcpEStatsPathEntry 13}tcpEStatsPathMinRTT OBJECT-TYPESYNTAXGauge32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The minimum sampled round trip time."REFERENCE"RFC 2988, Computing TCP's Retransmission Timer"::={ tcpEStatsPathEntry 14}
tcpEStatsPathSumRTT OBJECT-TYPESYNTAXZeroBasedCounter32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter64UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of round trip time samples included in
tcpEStatsPathSumRTT and tcpEStatsPathHCSumRTT."REFERENCE"RFC 2988, Computing TCP's Retransmission Timer"::={ tcpEStatsPathEntry 17}tcpEStatsPathMaxRTO OBJECT-TYPESYNTAXGauge32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum value of the retransmit timer RTO."REFERENCE"RFC 2988, Computing TCP's Retransmission Timer"::={ tcpEStatsPathEntry 18}tcpEStatsPathMinRTO OBJECT-TYPESYNTAXGauge32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXUnsigned32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXOCTETSTRING(SIZE(1))MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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."REFERENCE"RFC 3260, New Terminology and Clarifications for Diffserv"::={ tcpEStatsPathEntry 21}tcpEStatsPathIpTosOut OBJECT-TYPESYNTAXOCTETSTRING(SIZE(1))MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32UNITS"milliseconds"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrent
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
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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXGauge32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION
"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"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-TYPESYNTAXSEQUENCEOF TcpEStatsStackEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"This table contains objects that are most useful for
determining how well some of the TCP control
algorithms are coping with this particular
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-TYPESYNTAX TcpEStatsStackEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"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,
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-TYPESYNTAXTruthValueMAX-ACCESSread-onlySTATUScurrentDESCRIPTION"True(1) if the local connection traversed the SYN-SENT
state, else false(2)."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsStackEntry 1}tcpEStatsStackMSSSent OBJECT-TYPESYNTAXUnsigned32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The value sent in an MSS option, or zero if none."REFERENCE"RFC 1122, Requirements for Internet Hosts - Communication
Layers"::={ tcpEStatsStackEntry 2}tcpEStatsStackMSSRcvd OBJECT-TYPESYNTAXUnsigned32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The value received in an MSS option, or zero if none."REFERENCE"RFC 1122, Requirements for Internet Hosts - Communication
Layers"::={ tcpEStatsStackEntry 3}tcpEStatsStackWinScaleSent OBJECT-TYPESYNTAXInteger32(-1..14)MAX-ACCESSread-only
STATUScurrentDESCRIPTION"The value of the transmitted window scale option if one was
sent; otherwise, a value of -1.
Note that if both tcpEStatsStackWinScaleSent and
tcpEStatsStackWinScaleRcvd are not -1, then Rcv.Wind.Scale
will be the same as this value and used to scale receiver
window announcements from the local host to the remote
host."REFERENCE"RFC 1323, TCP Extensions for High Performance"::={ tcpEStatsStackEntry 4}tcpEStatsStackWinScaleRcvd OBJECT-TYPESYNTAXInteger32(-1..14)MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The value of the received window scale option if one was
received; otherwise, a value of -1.
Note that if both tcpEStatsStackWinScaleSent and
tcpEStatsStackWinScaleRcvd are not -1, then Snd.Wind.Scale
will be the same as this value and used to scale receiver
window announcements from the remote host to the local
host."REFERENCE"RFC 1323, TCP Extensions for High Performance"::={ tcpEStatsStackEntry 5}tcpEStatsStackTimeStamps OBJECT-TYPESYNTAXTcpEStatsNegotiatedMAX-ACCESSread-onlySTATUScurrentDESCRIPTION"Enabled(1) if TCP timestamps have been negotiated on,
selfDisabled(2) if they are disabled or not implemented on
the local host, or peerDisabled(3) if not negotiated by the
remote hosts."REFERENCE"RFC 1323, TCP Extensions for High Performance"::={ tcpEStatsStackEntry 6}tcpEStatsStackECN OBJECT-TYPESYNTAXTcpEStatsNegotiatedMAX-ACCESSread-onlySTATUScurrentDESCRIPTION"Enabled(1) if Explicit Congestion Notification (ECN) has
been negotiated on, selfDisabled(2) if it is disabled or
not implemented on the local host, or peerDisabled(3) if
not negotiated by the remote hosts."REFERENCE"RFC 3168, The Addition of Explicit Congestion Notification
(ECN) to IP"::={ tcpEStatsStackEntry 7}tcpEStatsStackWillSendSACK OBJECT-TYPESYNTAXTcpEStatsNegotiatedMAX-ACCESSread-onlySTATUScurrentDESCRIPTION"Enabled(1) if the local host will send SACK options,
selfDisabled(2) if SACK is disabled or not implemented on
the local host, or peerDisabled(3) if the remote host did
not send the SACK-permitted option.
Note that SACK negotiation is not symmetrical. SACK can
enabled on one side of the connection and not the other."REFERENCE"RFC 2018, TCP Selective Acknowledgement Options"::={ tcpEStatsStackEntry 8}tcpEStatsStackWillUseSACK OBJECT-TYPESYNTAXTcpEStatsNegotiatedMAX-ACCESSread-only
STATUScurrentDESCRIPTION"Enabled(1) if the local host will process SACK options,
selfDisabled(2) if SACK is disabled or not implemented on
the local host, or peerDisabled(3) if the remote host sends
duplicate ACKs without SACK options, or the local host
otherwise decides not to process received SACK options.
Unlike other TCP options, the remote data receiver cannot
explicitly indicate if it is able to generate SACK options.
When sending data, the local host has to deduce if the
remote receiver is sending SACK options. This object can
transition from Enabled(1) to peerDisabled(3) after the SYN
exchange.
Note that SACK negotiation is not symmetrical. SACK can
enabled on one side of the connection and not the other."REFERENCE"RFC 2018, TCP Selective Acknowledgement Options"::={ tcpEStatsStackEntry 9}---- The following two objects reflect the current state of the-- connection.--tcpEStatsStackState OBJECT-TYPESYNTAXINTEGER{tcpESStateClosed(1),tcpESStateListen(2),tcpESStateSynSent(3),tcpESStateSynReceived(4),tcpESStateEstablished(5),tcpESStateFinWait1(6),tcpESStateFinWait2(7),
tcpESStateCloseWait(8),tcpESStateLastAck(9),tcpESStateClosing(10),tcpESStateTimeWait(11),tcpESStateDeleteTcb(12)}MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"An integer value representing the connection state from the
TCP State Transition Diagram.
The value listen(2) is included only for parallelism to the
old tcpConnTable, and SHOULD NOT be used because the listen
state in managed by the tcpListenerTable.
The value DeleteTcb(12) is included only for parallelism to
the tcpConnTable mechanism for terminating connections,
although this table does not permit writing."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsStackEntry 10}tcpEStatsStackNagle OBJECT-TYPESYNTAXTruthValueMAX-ACCESSread-onlySTATUScurrentDESCRIPTION"True(1) if the Nagle algorithm is being used, else
false(2)."REFERENCE"RFC 1122, Requirements for Internet Hosts - Communication
Layers"::={ tcpEStatsStackEntry 11}---- The following objects instrument the overall operation of-- TCP congestion control and data retransmissions. These
-- instruments are sufficient to fit the actual performance to-- an updated macroscopic performance model [RFC2581] [Mat97]-- [Pad98].--tcpEStatsStackMaxSsCwnd OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum congestion window used during Slow Start, in
octets."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsStackEntry 12}tcpEStatsStackMaxCaCwnd OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum congestion window used during Congestion
Avoidance, in octets."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsStackEntry 13}tcpEStatsStackMaxSsthresh OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum slow start threshold, excluding the initial
value."REFERENCE"RFC 2581, TCP Congestion Control"
::={ tcpEStatsStackEntry 14}tcpEStatsStackMinSsthresh OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The minimum slow start threshold."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsStackEntry 15}tcpEStatsStackInRecovery OBJECT-TYPESYNTAXINTEGER{tcpESDataContiguous(1),tcpESDataUnordered(2),tcpESDataRecovery(3)}MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"An integer value representing the state of the loss
recovery for this connection.
tcpESDataContiguous(1) indicates that the remote receiver
is reporting contiguous data (no duplicate acknowledgments
or SACK options) and that there are no unacknowledged
retransmissions.
tcpESDataUnordered(2) indicates that the remote receiver is
reporting missing or out-of-order data (e.g., sending
duplicate acknowledgments or SACK options) and that there
are no unacknowledged retransmissions (because the missing
data has not yet been retransmitted).
tcpESDataRecovery(3) indicates that the sender has
outstanding retransmitted data that is still
unacknowledged."
REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsStackEntry 16}tcpEStatsStackDupAcksIn OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of duplicate ACKs received."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsStackEntry 17}tcpEStatsStackSpuriousFrDetected OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of acknowledgments reporting out-of-order
segments after the Fast Retransmit algorithm has already
retransmitted the segments. (For example as detected by the
Eifel algorithm).'"REFERENCE"RFC 3522, The Eifel Detection Algorithm for TCP"::={ tcpEStatsStackEntry 18}tcpEStatsStackSpuriousRtoDetected OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of acknowledgments reporting segments that have
already been retransmitted due to a Retransmission Timeout."::={ tcpEStatsStackEntry 19}--
-- The following optional objects instrument unusual protocol-- events that probably indicate implementation problems in-- the protocol or path.--tcpEStatsStackSoftErrors OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of segments that fail various consistency tests
during TCP input processing. Soft errors might cause the
segment to be discarded but some do not. Some of these soft
errors cause the generation of a TCP acknowledgment, while
others are silently discarded."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsStackEntry 21}tcpEStatsStackSoftErrorReason OBJECT-TYPESYNTAXINTEGER{belowDataWindow(1),aboveDataWindow(2),belowAckWindow(3),aboveAckWindow(4),belowTSWindow(5),aboveTSWindow(6),dataCheckSum(7),otherSoftError(8)}MAX-ACCESSread-onlySTATUScurrent
DESCRIPTION"This object identifies which consistency test most recently
failed during TCP input processing. This object SHOULD be
set every time tcpEStatsStackSoftErrors is incremented. The
codes are as follows:
belowDataWindow(1) - All data in the segment is below
SND.UNA. (Normal for keep-alives and zero window probes).
aboveDataWindow(2) - Some data in the segment is above
SND.WND. (Indicates an implementation bug or possible
attack).
belowAckWindow(3) - ACK below SND.UNA. (Indicates that the
return path is reordering ACKs)
aboveAckWindow(4) - An ACK for data that we have not sent.
(Indicates an implementation bug or possible attack).
belowTSWindow(5) - TSecr on the segment is older than the
current TS.Recent (Normal for the rare case where PAWS
detects data reordered by the network).
aboveTSWindow(6) - TSecr on the segment is newer than the
current TS.Recent. (Indicates an implementation bug or
possible attack).
dataCheckSum(7) - Incorrect checksum. Note that this value
is intrinsically fragile, because the header fields used to
identify the connection may have been corrupted.
otherSoftError(8) - All other soft errors not listed
above."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsStackEntry 22}---- The following optional objects expose the detailed-- operation of the congestion control algorithms.--tcpEStatsStackSlowStart OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of times the congestion window has been
increased by the Slow Start algorithm."REFERENCE
"RFC 2581, TCP Congestion Control"::={ tcpEStatsStackEntry 23}tcpEStatsStackCongAvoid OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of times the congestion window has been
increased by the Congestion Avoidance algorithm."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsStackEntry 24}tcpEStatsStackOtherReductions OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of congestion window reductions made as a result
of anything other than AIMD congestion control algorithms.
Examples of non-multiplicative window reductions include
Congestion Window Validation [RFC2861] and experimental
algorithms such as Vegas [Bra94].
All window reductions MUST be counted as either
tcpEStatsPerfCongSignals or tcpEStatsStackOtherReductions."REFERENCE"RFC 2861, TCP Congestion Window Validation"::={ tcpEStatsStackEntry 25}tcpEStatsStackCongOverCount OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of congestion events that were 'backed out' of
the congestion control state machine such that the
congestion window was restored to a prior value. This can
happen due to the Eifel algorithm [RFC3522] or other
algorithms that can be used to detect and cancel spurious
invocations of the Fast Retransmit Algorithm.
Although it may be feasible to undo the effects of spurious
invocation of the Fast Retransmit congestion events cannot
easily be backed out of tcpEStatsPerfCongSignals and
tcpEStatsPathPreCongSumCwnd, etc."REFERENCE"RFC 3522, The Eifel Detection Algorithm for TCP"::={ tcpEStatsStackEntry 26}tcpEStatsStackFastRetran OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of invocations of the Fast Retransmit algorithm."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsStackEntry 27}tcpEStatsStackSubsequentTimeouts OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of times the retransmit timeout has expired after
the RTO has been doubled. See Section 5.5 of RFC 2988."REFERENCE"RFC 2988, Computing TCP's Retransmission Timer"::={ tcpEStatsStackEntry 28}tcpEStatsStackCurTimeoutCount OBJECT-TYPESYNTAXGauge32
MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The current number of times the retransmit timeout has
expired without receiving an acknowledgment for new data.
tcpEStatsStackCurTimeoutCount is reset to zero when new
data is acknowledged and incremented for each invocation of
Section 5.5 of RFC 2988."REFERENCE"RFC 2988, Computing TCP's Retransmission Timer"::={ tcpEStatsStackEntry 29}tcpEStatsStackAbruptTimeouts OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of timeouts that occurred without any
immediately preceding duplicate acknowledgments or other
indications of congestion. Abrupt Timeouts indicate that
the path lost an entire window of data or acknowledgments.
Timeouts that are preceded by duplicate acknowledgments or
other congestion signals (e.g., ECN) are not counted as
abrupt, and might have been avoided by a more sophisticated
Fast Retransmit algorithm."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsStackEntry 30}tcpEStatsStackSACKsRcvd OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of SACK options received."REFERENCE"RFC 2018, TCP Selective Acknowledgement Options"::={ tcpEStatsStackEntry 31}
tcpEStatsStackSACKBlocksRcvd OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of SACK blocks received (within SACK options)."REFERENCE"RFC 2018, TCP Selective Acknowledgement Options"::={ tcpEStatsStackEntry 32}tcpEStatsStackSendStall OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of interface stalls or other sender local
resource limitations that are treated as congestion
signals."::={ tcpEStatsStackEntry 33}tcpEStatsStackDSACKDups OBJECT-TYPESYNTAXZeroBasedCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of duplicate segments reported to the local host
by D-SACK blocks."REFERENCE"RFC 2883, An Extension to the Selective Acknowledgement
(SACK) Option for TCP"::={ tcpEStatsStackEntry 34}---- The following optional objects instrument path MTU-- discovery.--tcpEStatsStackMaxMSS OBJECT-TYPE
SYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum MSS, in octets."REFERENCE"RFC 1191, Path MTU discovery"::={ tcpEStatsStackEntry 35}tcpEStatsStackMinMSS OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The minimum MSS, in octets."REFERENCE"RFC 1191, Path MTU discovery"::={ tcpEStatsStackEntry 36}---- The following optional initial value objects are useful for-- conformance testing instruments on application progress and-- consumed network resources.--tcpEStatsStackSndInitial OBJECT-TYPESYNTAXUnsigned32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"Initial send sequence number. Note that by definition
tcpEStatsStackSndInitial never changes for a given
connection."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsStackEntry 37}
tcpEStatsStackRecInitial OBJECT-TYPESYNTAXUnsigned32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"Initial receive sequence number. Note that by definition
tcpEStatsStackRecInitial never changes for a given
connection."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsStackEntry 38}---- The following optional objects instrument the senders-- buffer usage, including any buffering in the application-- interface to TCP and the retransmit queue. All 'buffer-- memory' instruments are assumed to include OS data-- structure overhead.--tcpEStatsStackCurRetxQueue OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The current number of octets of data occupying the
retransmit queue."::={ tcpEStatsStackEntry 39}tcpEStatsStackMaxRetxQueue OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum number of octets of data occupying the
retransmit queue."
::={ tcpEStatsStackEntry 40}tcpEStatsStackCurReasmQueue OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The current number of octets of sequence space spanned by
the reassembly queue. This is generally the difference
between rcv.nxt and the sequence number of the right most
edge of the reassembly queue."::={ tcpEStatsStackEntry 41}tcpEStatsStackMaxReasmQueue OBJECT-TYPESYNTAXGauge32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum value of tcpEStatsStackCurReasmQueue"::={ tcpEStatsStackEntry 42}-- ================================================================---- Statistics for diagnosing interactions between-- applications and TCP.--tcpEStatsAppTable OBJECT-TYPESYNTAXSEQUENCEOF TcpEStatsAppEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"This table contains objects that are useful for
determining if the application using TCP is
limiting TCP performance.
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 6}tcpEStatsAppEntry OBJECT-TYPESYNTAX TcpEStatsAppEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"Each entry in this table has information about the
characteristics of each active and recently closed TCP
connection."INDEX{ tcpEStatsConnectIndex }::={ tcpEStatsAppTable 1}
TcpEStatsAppEntry ::=SEQUENCE{
tcpEStatsAppSndUna Counter32,
tcpEStatsAppSndNxt Unsigned32,
tcpEStatsAppSndMax Counter32,
tcpEStatsAppThruOctetsAcked ZeroBasedCounter32,
tcpEStatsAppHCThruOctetsAcked ZeroBasedCounter64,
tcpEStatsAppRcvNxt Counter32,
tcpEStatsAppThruOctetsReceived ZeroBasedCounter32,
tcpEStatsAppHCThruOctetsReceived ZeroBasedCounter64,
tcpEStatsAppCurAppWQueue Gauge32,
tcpEStatsAppMaxAppWQueue Gauge32,
tcpEStatsAppCurAppRQueue Gauge32,
tcpEStatsAppMaxAppRQueue Gauge32}---- The following objects provide throughput statistics for the-- connection including sequence numbers and elapsed
-- application data. These permit direct observation of the-- applications progress, in terms of elapsed data delivery-- and elapsed time.--tcpEStatsAppSndUna OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The value of SND.UNA, the oldest unacknowledged sequence
number.
Note that SND.UNA is a TCP state variable that is congruent
to Counter32 semantics."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsAppEntry 1}tcpEStatsAppSndNxt OBJECT-TYPESYNTAXUnsigned32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The value of SND.NXT, the next sequence number to be sent.
Note that tcpEStatsAppSndNxt is not monotonic (and thus not
a counter) because TCP sometimes retransmits lost data by
pulling tcpEStatsAppSndNxt back to the missing data."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsAppEntry 2}tcpEStatsAppSndMax OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The farthest forward (right most or largest) SND.NXT value.
Note that this will be equal to tcpEStatsAppSndNxt except
when tcpEStatsAppSndNxt is pulled back during recovery."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsAppEntry 3}tcpEStatsAppThruOctetsAcked OBJECT-TYPESYNTAXZeroBasedCounter32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of octets for which cumulative acknowledgments
have been received. Note that this will be the sum of
changes to tcpEStatsAppSndUna."::={ tcpEStatsAppEntry 4}tcpEStatsAppHCThruOctetsAcked OBJECT-TYPESYNTAXZeroBasedCounter64UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of octets for which cumulative acknowledgments
have been received, on systems that can receive more than
10 million bits per second. Note that this will be the sum
of changes in tcpEStatsAppSndUna."::={ tcpEStatsAppEntry 5}tcpEStatsAppRcvNxt OBJECT-TYPESYNTAXCounter32MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The value of RCV.NXT. The next sequence number expected on
an incoming segment, and the left or lower edge of the
receive window.
Note that RCV.NXT is a TCP state variable that is congruent
to Counter32 semantics."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsAppEntry 6}tcpEStatsAppThruOctetsReceived OBJECT-TYPESYNTAXZeroBasedCounter32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of octets for which cumulative acknowledgments
have been sent. Note that this will be the sum of changes
to tcpEStatsAppRcvNxt."::={ tcpEStatsAppEntry 7}tcpEStatsAppHCThruOctetsReceived OBJECT-TYPESYNTAXZeroBasedCounter64UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The number of octets for which cumulative acknowledgments
have been sent, on systems that can transmit more than 10
million bits per second. Note that this will be the sum of
changes in tcpEStatsAppRcvNxt."::={ tcpEStatsAppEntry 8}tcpEStatsAppCurAppWQueue OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The current number of octets of application data buffered
by TCP, pending first transmission, i.e., to the left of
SND.NXT or SndMax. This data will generally be transmitted
(and SND.NXT advanced to the left) as soon as there is an
available congestion window (cwnd) or receiver window
(rwin). This is the amount of data readily available for
transmission, without scheduling the application. TCP
performance may suffer if there is insufficient queued
write data."::={ tcpEStatsAppEntry 11}tcpEStatsAppMaxAppWQueue OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum number of octets of application data buffered
by TCP, pending first transmission. This is the maximum
value of tcpEStatsAppCurAppWQueue. This pair of objects can
be used to determine if insufficient queued data is steady
state (suggesting insufficient queue space) or transient
(suggesting insufficient application performance or
excessive CPU load or scheduler latency)."::={ tcpEStatsAppEntry 12}tcpEStatsAppCurAppRQueue OBJECT-TYPESYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The current number of octets of application data that has
been acknowledged by TCP but not yet delivered to the
application."::={ tcpEStatsAppEntry 13}tcpEStatsAppMaxAppRQueue OBJECT-TYPE
SYNTAXGauge32UNITS"octets"MAX-ACCESSread-onlySTATUScurrentDESCRIPTION"The maximum number of octets of application data that has
been acknowledged by TCP but not yet delivered to the
application."::={ tcpEStatsAppEntry 14}-- ================================================================---- Controls for Tuning TCP--tcpEStatsTuneTable OBJECT-TYPESYNTAXSEQUENCEOF TcpEStatsTuneEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"This table contains per-connection controls that can
be used to work around a number of common problems that
plague TCP over some paths. All can be characterized as
limiting the growth of the congestion window so as to
prevent TCP from overwhelming some component in the
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 7}tcpEStatsTuneEntry OBJECT-TYPESYNTAX TcpEStatsTuneEntry
MAX-ACCESSnot-accessibleSTATUScurrentDESCRIPTION"Each entry in this table is a control that can be used to
place limits on each active TCP connection."INDEX{ tcpEStatsConnectIndex }
::={ tcpEStatsTuneTable 1}
TcpEStatsTuneEntry ::=SEQUENCE{
tcpEStatsTuneLimCwnd Unsigned32,
tcpEStatsTuneLimSsthresh Unsigned32,
tcpEStatsTuneLimRwin Unsigned32,
tcpEStatsTuneLimMSS Unsigned32}tcpEStatsTuneLimCwnd OBJECT-TYPESYNTAXUnsigned32UNITS"octets"MAX-ACCESSread-writeSTATUScurrentDESCRIPTION"A control to set the maximum congestion window that may be
used, in octets."REFERENCE"RFC 2581, TCP Congestion Control"::={ tcpEStatsTuneEntry 1}tcpEStatsTuneLimSsthresh OBJECT-TYPESYNTAXUnsigned32UNITS"octets"MAX-ACCESSread-writeSTATUScurrentDESCRIPTION"A control to limit the maximum queue space (in octets) that
this TCP connection is likely to occupy during slowstart.
It can be implemented with the algorithm described in
RFC 3742 by setting the max_ssthresh parameter to twice
tcpEStatsTuneLimSsthresh.
This algorithm can be used to overcome some TCP performance
problems over network paths that do not have sufficient
buffering to withstand the bursts normally present during
slowstart."REFERENCE"RFC 3742, Limited Slow-Start for TCP with Large Congestion
Windows"::={ tcpEStatsTuneEntry 2}tcpEStatsTuneLimRwin OBJECT-TYPESYNTAXUnsigned32UNITS"octets"MAX-ACCESSread-writeSTATUScurrentDESCRIPTION"A control to set the maximum window advertisement that may
be sent, in octets."REFERENCE"RFC 793, Transmission Control Protocol"::={ tcpEStatsTuneEntry 3}tcpEStatsTuneLimMSS OBJECT-TYPESYNTAXUnsigned32UNITS"octets"MAX-ACCESSread-writeSTATUScurrentDESCRIPTION"A control to limit the maximum segment size in octets, that
this TCP connection can use."REFERENCE"RFC 1191, Path MTU discovery"::={ tcpEStatsTuneEntry 4}-- ================================================================---- TCP Extended Statistics Notifications Group--tcpEStatsEstablishNotification NOTIFICATION-TYPEOBJECTS{
tcpEStatsConnectIndex
}STATUScurrent
DESCRIPTION"The indicated connection has been accepted
(or alternatively entered the established state)."::={ tcpEStatsNotifications 1}tcpEStatsCloseNotification NOTIFICATION-TYPEOBJECTS{
tcpEStatsConnectIndex
}STATUScurrentDESCRIPTION"The indicated connection has left the
established state"::={ tcpEStatsNotifications 2}-- ================================================================---- Conformance Definitions--tcpEStatsCompliances OBJECTIDENTIFIER::={ tcpEStatsConformance 1}tcpEStatsGroups OBJECTIDENTIFIER::={ tcpEStatsConformance 2}---- Compliance Statements--tcpEStatsCompliance MODULE-COMPLIANCESTATUScurrentDESCRIPTION"Compliance statement for all systems that implement TCP
extended statistics."MODULE-- this moduleMANDATORY-GROUPS{
tcpEStatsListenerGroup,
tcpEStatsConnectIdGroup,
tcpEStatsPerfGroup,
tcpEStatsPathGroup,
tcpEStatsStackGroup,
tcpEStatsAppGroup
}GROUP tcpEStatsListenerHCGroup
DESCRIPTION"This group is mandatory for all systems that can
wrap the values of the 32-bit counters in
tcpEStatsListenerGroup in less than one hour."GROUP tcpEStatsPerfOptionalGroup
DESCRIPTION"This group is optional for all systems."GROUP tcpEStatsPerfHCGroup
DESCRIPTION"This group is mandatory for systems that can
wrap the values of the 32-bit counters in
tcpEStatsPerfGroup in less than one hour.
Note that any system that can attain 10 Mb/s
can potentially wrap 32-Bit Octet counters in
under one hour."GROUP tcpEStatsPathOptionalGroup
DESCRIPTION"This group is optional for all systems."GROUP tcpEStatsPathHCGroup
DESCRIPTION"This group is mandatory for systems that can
wrap the values of the 32-bit counters in
tcpEStatsPathGroup in less than one hour.
Note that any system that can attain 10 Mb/s
can potentially wrap 32-Bit Octet counters in
under one hour."GROUP tcpEStatsStackOptionalGroup
DESCRIPTION"This group is optional for all systems."GROUP tcpEStatsAppHCGroup
DESCRIPTION"This group is mandatory for systems that can
wrap the values of the 32-bit counters in
tcpEStatsStackGroup in less than one hour.
Note that any system that can attain 10 Mb/s
can potentially wrap 32-Bit Octet counters in
under one hour."
GROUP tcpEStatsAppOptionalGroup
DESCRIPTION"This group is optional for all systems."GROUP tcpEStatsTuneOptionalGroup
DESCRIPTION"This group is optional for all systems."GROUP tcpEStatsNotificationsGroup
DESCRIPTION"This group is optional for all systems."GROUP tcpEStatsNotificationsCtlGroup
DESCRIPTION"This group is mandatory for systems that include the
tcpEStatsNotificationGroup."::={ tcpEStatsCompliances 1}-- ================================================================---- Units of Conformance--tcpEStatsListenerGroup OBJECT-GROUPOBJECTS{
tcpEStatsListenerTableLastChange,
tcpEStatsListenerStartTime,
tcpEStatsListenerSynRcvd,
tcpEStatsListenerInitial,
tcpEStatsListenerEstablished,
tcpEStatsListenerAccepted,
tcpEStatsListenerExceedBacklog,
tcpEStatsListenerCurConns,
tcpEStatsListenerMaxBacklog,
tcpEStatsListenerCurBacklog,
tcpEStatsListenerCurEstabBacklog
}STATUScurrentDESCRIPTION"The tcpEStatsListener group includes objects that
provide valuable statistics and debugging
information for TCP Listeners."::={ tcpEStatsGroups 1}
tcpEStatsListenerHCGroup OBJECT-GROUPOBJECTS{
tcpEStatsListenerHCSynRcvd,
tcpEStatsListenerHCInitial,
tcpEStatsListenerHCEstablished,
tcpEStatsListenerHCAccepted,
tcpEStatsListenerHCExceedBacklog
}STATUScurrentDESCRIPTION"The tcpEStatsListenerHC group includes 64-bit
counters in tcpEStatsListenerTable."::={ tcpEStatsGroups 2}tcpEStatsConnectIdGroup OBJECT-GROUPOBJECTS{
tcpEStatsConnTableLatency,
tcpEStatsConnectIndex
}STATUScurrentDESCRIPTION"The tcpEStatsConnectId group includes objects that
identify TCP connections and control how long TCP
connection entries are retained in the tables."::={ tcpEStatsGroups 3}tcpEStatsPerfGroup OBJECT-GROUPOBJECTS{
tcpEStatsPerfSegsOut, tcpEStatsPerfDataSegsOut,
tcpEStatsPerfDataOctetsOut,
tcpEStatsPerfSegsRetrans,
tcpEStatsPerfOctetsRetrans, tcpEStatsPerfSegsIn,
tcpEStatsPerfDataSegsIn,
tcpEStatsPerfDataOctetsIn,
tcpEStatsPerfElapsedSecs,
tcpEStatsPerfElapsedMicroSecs,
tcpEStatsPerfStartTimeStamp, tcpEStatsPerfCurMSS,
tcpEStatsPerfPipeSize, tcpEStatsPerfMaxPipeSize,
tcpEStatsPerfSmoothedRTT, tcpEStatsPerfCurRTO,
tcpEStatsPerfCongSignals, tcpEStatsPerfCurCwnd,
tcpEStatsPerfCurSsthresh, tcpEStatsPerfTimeouts,
tcpEStatsPerfCurRwinSent,
tcpEStatsPerfMaxRwinSent,
tcpEStatsPerfZeroRwinSent,
tcpEStatsPerfCurRwinRcvd,
tcpEStatsPerfMaxRwinRcvd,
tcpEStatsPerfZeroRwinRcvd
}STATUScurrentDESCRIPTION"The tcpEStatsPerf group includes those objects that
provide basic performance data for a TCP connection."::={ tcpEStatsGroups 4}tcpEStatsPerfOptionalGroup OBJECT-GROUPOBJECTS{
tcpEStatsPerfSndLimTransRwin,
tcpEStatsPerfSndLimTransCwnd,
tcpEStatsPerfSndLimTransSnd,
tcpEStatsPerfSndLimTimeRwin,
tcpEStatsPerfSndLimTimeCwnd,
tcpEStatsPerfSndLimTimeSnd
}STATUScurrentDESCRIPTION"The tcpEStatsPerf group includes those objects that
provide basic performance data for a TCP connection."::={ tcpEStatsGroups 5}tcpEStatsPerfHCGroup OBJECT-GROUP
OBJECTS{
tcpEStatsPerfHCDataOctetsOut,
tcpEStatsPerfHCDataOctetsIn
}STATUScurrentDESCRIPTION"The tcpEStatsPerfHC group includes 64-bit
counters in the tcpEStatsPerfTable."::={ tcpEStatsGroups 6}tcpEStatsPathGroup OBJECT-GROUPOBJECTS{
tcpEStatsControlPath,
tcpEStatsPathRetranThresh,
tcpEStatsPathNonRecovDAEpisodes,
tcpEStatsPathSumOctetsReordered,
tcpEStatsPathNonRecovDA
}STATUScurrentDESCRIPTION"The tcpEStatsPath group includes objects that
control the creation of the tcpEStatsPathTable,
and provide information about the path
for each TCP connection."::={ tcpEStatsGroups 7}tcpEStatsPathOptionalGroup OBJECT-GROUPOBJECTS{
tcpEStatsPathSampleRTT, tcpEStatsPathRTTVar,
tcpEStatsPathMaxRTT, tcpEStatsPathMinRTT,
tcpEStatsPathSumRTT, tcpEStatsPathCountRTT,
tcpEStatsPathMaxRTO, tcpEStatsPathMinRTO,
tcpEStatsPathIpTtl, tcpEStatsPathIpTosIn,
tcpEStatsPathIpTosOut,
tcpEStatsPathPreCongSumCwnd,
tcpEStatsPathPreCongSumRTT,
tcpEStatsPathPostCongSumRTT,
tcpEStatsPathPostCongCountRTT,
tcpEStatsPathECNsignals,
tcpEStatsPathDupAckEpisodes, tcpEStatsPathRcvRTT,
tcpEStatsPathDupAcksOut, tcpEStatsPathCERcvd,
tcpEStatsPathECESent
}STATUScurrentDESCRIPTION"The tcpEStatsPath group includes objects that
provide additional information about the path
for each TCP connection."::={ tcpEStatsGroups 8}tcpEStatsPathHCGroup OBJECT-GROUPOBJECTS{
tcpEStatsPathHCSumRTT
}STATUScurrentDESCRIPTION"The tcpEStatsPathHC group includes 64-bit
counters in the tcpEStatsPathTable."::={ tcpEStatsGroups 9}tcpEStatsStackGroup OBJECT-GROUPOBJECTS{
tcpEStatsControlStack,
tcpEStatsStackActiveOpen, tcpEStatsStackMSSSent,
tcpEStatsStackMSSRcvd, tcpEStatsStackWinScaleSent,
tcpEStatsStackWinScaleRcvd,
tcpEStatsStackTimeStamps, tcpEStatsStackECN,
tcpEStatsStackWillSendSACK,
tcpEStatsStackWillUseSACK, tcpEStatsStackState,
tcpEStatsStackNagle, tcpEStatsStackMaxSsCwnd,
tcpEStatsStackMaxCaCwnd,
tcpEStatsStackMaxSsthresh,
tcpEStatsStackMinSsthresh,
tcpEStatsStackInRecovery, tcpEStatsStackDupAcksIn,
tcpEStatsStackSpuriousFrDetected,
tcpEStatsStackSpuriousRtoDetected
}STATUScurrentDESCRIPTION"The tcpEStatsConnState group includes objects that
control the creation of the tcpEStatsStackTable,
and provide information about the operation of
algorithms used within TCP."::={ tcpEStatsGroups 10}tcpEStatsStackOptionalGroup OBJECT-GROUPOBJECTS{
tcpEStatsStackSoftErrors,
tcpEStatsStackSoftErrorReason,
tcpEStatsStackSlowStart, tcpEStatsStackCongAvoid,
tcpEStatsStackOtherReductions,
tcpEStatsStackCongOverCount,
tcpEStatsStackFastRetran,
tcpEStatsStackSubsequentTimeouts,
tcpEStatsStackCurTimeoutCount,
tcpEStatsStackAbruptTimeouts,
tcpEStatsStackSACKsRcvd,
tcpEStatsStackSACKBlocksRcvd,
tcpEStatsStackSendStall, tcpEStatsStackDSACKDups,
tcpEStatsStackMaxMSS, tcpEStatsStackMinMSS,
tcpEStatsStackSndInitial,
tcpEStatsStackRecInitial,
tcpEStatsStackCurRetxQueue,
tcpEStatsStackMaxRetxQueue,
tcpEStatsStackCurReasmQueue,
tcpEStatsStackMaxReasmQueue
}STATUScurrentDESCRIPTION"The tcpEStatsConnState group includes objects that
provide additional information about the operation of
algorithms used within TCP."::={ tcpEStatsGroups 11}tcpEStatsAppGroup OBJECT-GROUPOBJECTS{
tcpEStatsControlApp,
tcpEStatsAppSndUna, tcpEStatsAppSndNxt,
tcpEStatsAppSndMax, tcpEStatsAppThruOctetsAcked,
tcpEStatsAppRcvNxt,
tcpEStatsAppThruOctetsReceived
}STATUScurrentDESCRIPTION"The tcpEStatsConnState group includes objects that
control the creation of the tcpEStatsAppTable,
and provide information about the operation of
algorithms used within TCP."::={ tcpEStatsGroups 12}tcpEStatsAppHCGroup OBJECT-GROUPOBJECTS{
tcpEStatsAppHCThruOctetsAcked,
tcpEStatsAppHCThruOctetsReceived
}STATUScurrentDESCRIPTION"The tcpEStatsStackHC group includes 64-bit
counters in the tcpEStatsStackTable."::={ tcpEStatsGroups 13}tcpEStatsAppOptionalGroup OBJECT-GROUPOBJECTS{
tcpEStatsAppCurAppWQueue,
tcpEStatsAppMaxAppWQueue,
tcpEStatsAppCurAppRQueue,
tcpEStatsAppMaxAppRQueue
}STATUScurrentDESCRIPTION"The tcpEStatsConnState group includes objects that
provide additional information about how applications
are interacting with each TCP connection."::={ tcpEStatsGroups 14}tcpEStatsTuneOptionalGroup OBJECT-GROUPOBJECTS{
tcpEStatsControlTune,
tcpEStatsTuneLimCwnd, tcpEStatsTuneLimSsthresh,
tcpEStatsTuneLimRwin, tcpEStatsTuneLimMSS
}STATUScurrentDESCRIPTION"The tcpEStatsConnState group includes objects that
control the creation of the tcpEStatsConnectionTable,
which can be used to set tuning parameters
for each TCP connection."::={ tcpEStatsGroups 15}tcpEStatsNotificationsGroup NOTIFICATION-GROUPNOTIFICATIONS{
tcpEStatsEstablishNotification,
tcpEStatsCloseNotification
}STATUScurrentDESCRIPTION"Notifications sent by a TCP extended statistics agent."::={ tcpEStatsGroups 16}tcpEStatsNotificationsCtlGroup OBJECT-GROUPOBJECTS{
tcpEStatsControlNotify
}STATUScurrentDESCRIPTION"The tcpEStatsNotificationsCtl group includes the
object that controls the creation of the events
in the tcpEStatsNotificationsGroup."::={ tcpEStatsGroups 17}END