idnits 2.17.1 draft-ietf-tsvwg-tcp-mib-extension-08.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.1 on line 17. -- Found old boilerplate from RFC 3978, Section 5.5 on line 3302. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 3278. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 3285. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 3291. ** This document has an original RFC 3978 Section 5.4 Copyright Line, instead of the newer IETF Trust Copyright according to RFC 4748. ** This document has an original RFC 3978 Section 5.5 Disclaimer, instead of the newer disclaimer which includes the IETF Trust according to RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 69 longer pages, the longest (page 2) being 60 lines == It seems as if not all pages are separated by form feeds - found 0 form feeds but 70 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 528: '... SHOULD provide a configura...' RFC 2119 keyword, line 736: '... This counter MUST include connecti...' RFC 2119 keyword, line 738: '... and MAY include connections ...' RFC 2119 keyword, line 1619: '... MUST be updated each time t...' RFC 2119 keyword, line 1630: '...ngestion signals. This MUST be updated...' (1 more instance...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date () is 739384 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC3291' is defined on line 3172, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2574 (Obsoleted by RFC 3414) ** Obsolete normative reference: RFC 2575 (Obsoleted by RFC 3415) -- Obsolete informational reference (is this intentional?): RFC 793 (Obsoleted by RFC 9293) -- Obsolete informational reference (is this intentional?): RFC 896 (Obsoleted by RFC 7805) -- Obsolete informational reference (is this intentional?): RFC 1323 (Obsoleted by RFC 7323) -- Obsolete informational reference (is this intentional?): RFC 2021 (Obsoleted by RFC 4502) -- Obsolete informational reference (is this intentional?): RFC 2861 (Obsoleted by RFC 7661) -- Obsolete informational reference (is this intentional?): RFC 2581 (Obsoleted by RFC 5681) -- Obsolete informational reference (is this intentional?): RFC 2988 (Obsoleted by RFC 6298) -- Obsolete informational reference (is this intentional?): RFC 3291 (Obsoleted by RFC 4001) -- Duplicate reference: RFC3291, mentioned in 'RFC4001', was also mentioned in 'RFC3291'. -- Obsolete informational reference (is this intentional?): RFC 3291 (ref. 'RFC4001') (Obsoleted by RFC 4001) Summary: 8 errors (**), 0 flaws (~~), 5 warnings (==), 17 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet-Draft Matt Mathis 3 John Heffner 4 Pittsburgh Supercomputing Center 5 Rajiv Raghunarayan 6 Cisco Systems 8 TCP Extended Statistics MIB 9 draft-ietf-tsvwg-tcp-mib-extension-08.txt 10 Sun Oct 23 12:48:11 EDT 2005 12 Status of this Memo 14 By submitting this Internet-Draft, each author represents that any 15 applicable patent or other IPR claims of which he or she is aware 16 have been or will be disclosed, and any of which he or she becomes 17 aware will be disclosed, in accordance with Section 6 of BCP 79. 19 Internet-Drafts are working documents of the Internet Engineering 20 Task Force (IETF), its areas, and its working groups. Note that other 21 groups may also distribute working documents as Internet-Drafts. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as "work in progress." 28 The list of current Internet-Drafts can be accessed at http:// 29 www.ietf.org/ietf/1id-abstracts.txt. 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 This Internet-Draft will expire April 23, 2006 36 Abstract 38 This draft describes extended performance statistics for TCP. They 39 are designed to use TCP's ideal vantage point to diagnose performance 40 problems in both the network and the application. If a network based 41 application is performing poorly, TCP can determine if the bottleneck 42 is in the sender, the receiver or the network itself. If the 43 bottleneck is in the network, TCP can provide specific information 44 about its nature. 46 Table of Contents 48 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 2 49 2. The Internet-Standard Management Framework . . . . . . . . 4 50 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 4 51 4. TCP Extended Statistics MIB . . . . . . . . . . . . . . . . 8 52 5. Normative References . . . . . . . . . . . . . . . . . . . 58 53 6. Informative References . . . . . . . . . . . . . . . . . . 59 54 7. Security Considerations . . . . . . . . . . . . . . . . . . 59 55 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . 60 56 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 60 57 10. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 60 58 11. Intellectual Property . . . . . . . . . . . . . . . . . . 61 59 12. Disclaimer of Validity . . . . . . . . . . . . . . . . . . 61 60 13. Full Copyright Statement . . . . . . . . . . . . . . . . . 62 62 1. Introduction 64 This draft describes extended performance statistics for TCP. They 65 are designed to use TCP's ideal vantage point to diagnose performance 66 problems in both the network and the application. If a network based 67 application is performing poorly, TCP can determine if the bottleneck 68 is in the sender, the receiver or the network itself. If the 69 bottleneck is in the network, TCP can provide specific information 70 about its nature. 72 The SNMP objects defined in this draft extend TCP MIB, as specified 73 in RFC 4022 [RFC4022]. 75 This document is automatically generated from a database of potential 76 TCP instruments. Beware that the OIDs are still likely to change 77 with future versions. The most current version can be obtained from 78 http://www.web100.org/mib/ . Please use tsvwg@ietf.org to send 79 comments to the entire TSV WG. 81 X. Changes 83 This virtual section will be removed as the draft nears completion. 85 Changes since draft-ietf-tsvwg-tcp-mib-extension-07.txt (20-Feb-2005) 87 Added tcpEStatsStackSpuriousRtoDetected. Renamed AckAfterFR to 88 tcpEStatsStackSpuriousFrDetected and clarified the description. 90 Restructure the tables yet again. The perf, path, and stack tables 91 now each start out with some required objects, followed by optional 92 objects. This permits a much more logical grouping of instruments, 93 lowers the cost for a minimal implementation and encourages 94 incremental deployment. 96 Changes since draft-ietf-tsvwg-tcp-mib-extension-06.txt (20-Feb-2005) 98 Added tcpEStatsPerfPipeSize and tcpEStatsPerfMaxPipeSize to detect 99 when TCP is unable to open the window as large as permitted. 101 Added tcpEStatsStackInRecovery to indicate if the connection is 102 currently in recovery (e.g. has outstanding retransmissions), or 103 about to enter recovery. 105 Move tcpEStatsPerfSumRTT, Tcpestatsperfhcsumrtt and 106 tcpEStatsPerfCountRTT to the path table, tcpEStatsPath. 108 Added tcpEStatsPathHCGroup. 110 Move tcpEstatsPathAckAfterFR and tcpEstatsPathSndDupAckEpisodes back 111 to the performance table, tcpEStatsPerf. 113 Move tcpEStatsPerfSampleRTT, tcpEStatsPerfSampleRTT and 114 tcpEStatsPerfSampleRTT to the stack table, tcpEStatsStack. 116 Clarified the descriptions of tcpEStatsPerfDupAckEpisodes, 117 tcpEStatsPerfDupAcksOut and tcpEStatsPerfCongSignals 119 Changes since draft-ietf-tsvwg-tcp-mib-extension-05.txt 120 (17-July-2004) 122 Many changes to object descriptions MIB comments and overview to 123 improve clarity. 125 Completely restructured the per connection tables. Seven table were 126 reduced to five. The main per connection table tcpEStatsPerfTable 127 is now mandatory. Three other new tables are focused on 128 understanding the details of the behavior of the path, internal TCP 129 algorithms and the application. In addition, there is a new tuning 130 table with per-connection writable controls to work around a number 131 of common problems. Note that due to the table restructuring, most 132 of the object names listed below have changed. 134 Restructured the Listen Table (tcpEStatsListenerTable) to better 135 instrument various SYN flood defenses. 137 Removed minimal receiver window objects, and replaced them by the 138 count of the number of transitions to zero window from non-zero 139 window. 141 Replaced tcpEStatsPathIpTos by tcpEStatsPathIpTosOut and added 142 tcpEStatsPathIpTosIn. 144 Updated the descriptions of tcpEStatsDataSndNxt, tcpEStatsDataSndMax, 145 tcpEStatsDataThruOctetsAcked, tcpEStatsDataHCThruBytesAcked, 146 tcpEStatsDataThruBytesReceived, tcpEStatsDataHCThruBytesReceived, 147 consistiently use RFC791 variables (SND.NXT, etc) or refer to other 148 TCP-ESTATS-MIB objects. 150 Changed tcpEStatsSynOptsMSSSent and tcpEStatsSynOptsMSSRcvd from 151 Gauge32 to Unsigned32 153 Updated descriptions of tcpEStatsConnectLocalAddress and 154 tcpEStatsConnectRemAddress to new conventions for InetAddress 155 [RFC4001] 157 Changes since draft-ietf-tsvwg-tcp-mib-extension-04.txt (27-Oct-2003) 158 Updated ID boiler plate to RFC3668, ID-Guidelines and fixed some 159 formatting glitches 161 Added a Table of Contents 163 Updated the description of tcpEStatsConnectionState to indicate that 164 the listen state included only for document parallelism and should 165 not be used. 167 Explained why it is useful for tcpEStatsConnectIdTable and others to 168 remain for 30 seconds after a connection closes (so you retrieve the 169 total statistics for the entire connection). 171 Added comment about not supporting writing DeleteTcb into the TCP 172 State. 174 Explained that SndNxt is not a counter because it is non-monotonic. 176 Clarified StartTime to be row creation 178 Clarified row creation to be at the first SYN unless techniques to 179 defend against SYN floods are in effect, then at connection 180 establishment. 182 Added tcpEStatsControlNotify to control the generation of 183 notifications. 185 Changed sequence numbers from ZeroBasedCounter32 to Counter32. 187 Changes since draft-ietf-tsvwg-tcp-mib-extension-03.txt (2-Mar-2003) 189 Replaced "queued" with "buffered by TCP" 191 Changed all counters in the TCP connection tables to be ZeroBased 192 Remove tcpEStatsHCInSegs, tcpEStatsHCOutSegs, which appear in as 193 tcpHCInSegs and tcpHCOutSegs in draft-ietf-ipv6-rfc2012-update-03.txt 194 and later drafts. 196 Added changes section. 198 2. The Internet-Standard Management Framework 200 For a detailed overview of the documents that describe the current 201 Internet-Standard Management Framework, please refer to section 7 of 202 RFC 3410 [RFC3410]. 204 Managed objects are accessed via a virtual information store, termed 205 the Management Information Base or MIB. MIB objects are generally 206 accessed through the Simple Network Management Protocol (SNMP). 207 Objects in the MIB are defined using the mechanisms defined in the 208 Structure of Management Information (SMI). This memo specifies a MIB 209 module that is compliant to the SMIv2, which is described in STD 58, 210 RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 211 [RFC2580]. 213 3. Overview 215 The TCP-ESTATS-MIB defined in this memo consists of 6 tables, 216 two groups of scalars and two notifications: 218 - The first group of scalars in this MIB contain a statistic 219 of a TCP protocol engine not covered in RFC 4022. The 220 scalar tcpEStatsListenerTableLastChange, provides management 221 stations with an an easier mechanism to validate their 222 listener caches. 224 - The second group of scalars consist of knobs to enable and 225 disable information collection by the tables containing 226 connection-related statistics/information. For example the 227 tcpEStatsControlPath object controls the activation of the 228 tcpEStatsPathTable. 230 The tcpEStatsConnTableLatency object determines how long 231 table rows are retained after connection close, to permit 232 reading final connection completion statistics. 234 Changing any of these controls may affect the correctness of 235 other management applications accessing this MIB. Generally 236 local policy should only permit limited write access to 237 these controls (e.g. only by one management station or only 238 during system configuration). 240 - The tcpEStatsListenerTable provides information on the 241 active TCP listeners on a device. It supports objects to 242 monitor and diagnose SYN-flood denial-of-service attacks as 243 described below. 245 - The ZeroBasedCounter32 and ZeroBasedCounter64 objects 246 in the tcpEStatsListenerTable and tcpEStatsListenerTable 247 are initialized to zero when the table row is created. 249 - The tcpEStatsConnectIdTable provides a mapping between the 250 connection indices i.e. source address type, source address, 251 source port, destination address type, destination address and 252 destination port, and the connection index. The connection 253 index is used to index into most of the remaining tables in this 254 MIB module, and is designed to facilitate rapid polling of 255 multiple objects associated with one TCP connection. 257 - The tcpEStatsPerfTable contains objects that are useful for 258 measuring TCP performance and first check problem diagnosis. 260 - The tcpEStatsPathTable contains objects that can be used to 261 infer detailed behavior of the Internet path, such as the 262 extent that there are losses or segment reordering, etc. 264 - The tcpEStatsStackTable contains objects that are most 265 useful for determining how well the TCP control algorithms 266 are coping with this particular path. 268 - The tcpEStatsAppTable provides objects that are useful for 269 determining if the application using TCP is limiting TCP 270 performance. 272 - The tcpEStatsTuneTable provides per connection controls that can 273 be used to work around a number of common problems that 274 plague TCP over some paths. 276 - The two notifications defined in this MIB module are 277 tcpEStatsEstablishNotification, indicating that a new 278 connection has been accepted (or established see below), and 279 tcpEStatsCloseNotification, indicating that an existing 280 connection has recently closed. 282 - The tcpEStatsListenerTable is specifically designed to 283 provides information that is useful for diagnosing SYN-flood 284 Denial-of-Service attacks, where a server is overwhelmed by 285 forged or otherwise malicious connection attempts. There 286 are several different techniques that are used to defend 287 against SYN-flooding but none are standardized, and most 288 have never been well described in the literature (ergo there 289 are no normative references). These different techniques 290 all have the same basic characteristics which are 291 instrumentable with a common set of objects even though the 292 techniques differ greatly in the details. 294 All SYN-flood defenses avoid allocating significant 295 resources (memory or CPU) to incoming (passive open) 296 connections until the connections meet some liveness 297 criteria (to defend against forged IP source addresses) and 298 the server has sufficient resources to process the incoming 299 request. Note that allocating resources is an 300 implementation specific event that may not correspond to a 301 observable protocol event (e.g. segments on the wire). 302 There are two general concepts that can be applied to all 303 known SYN-flood defenses. There is generally a well defined 304 event when a connection is allocated full resources, and a 305 "backlog" - a queue of embryonic connections that have been 306 allocated only partial resources. 308 In many implementations incoming TCP connections are allocated 309 resources as a side affect of the POSIX [POSIX] accept() call. 310 For this reason we use the terminology "accepting a connection" 311 to refer to this event: committing sufficient network resources 312 to process the incoming request. Accepting a connection 313 typically entails allocating memory for the protocol control 314 block [RFC793], the per connection table rows described in 315 this MIB and CPU resources, such as process table entries 316 or threads. 318 Note that it is not useful to accept connections before they 319 are ESTABLISHED, because this would create an easy opportunity 320 for Denial-of-Service attacks, using forged source IP 321 addresses. 323 The backlog consists of connections that are in SYN-RCVD or 324 ESTABLISHED states, that have not been accepted. For 325 purposes of this MIB we assume that these connections 326 have been allocated some resources (e.g. an embryonic 327 protocol control block) but not full resources (e.g. do not 328 yet have MIB table rows). 330 Note that some SYN-Flood defenses dispense with explicit 331 SYN-RCVD state by cryptographically encoding the state in 332 the ISS of the SYN-ACK, and then using the sequence number 333 of the first ACK to reconstruct the SYN-RCVD state before 334 transitioning to the ESTABLISHED state. For these 335 implementations there is no explicit representation of the 336 SYN-RCVD state and the backlog only consists of connections 337 that are ESTABLISHED and are waiting to be ACCEPTED. 339 Furthermore, most SYN-flood defenses have some mechanism to 340 throttle connections that might otherwise overwhelm this 341 endpoint. They generally use some combination of discarding 342 incoming SYNs and discarding connections already in the 343 backlog. This does not cause all connections from 344 legitimate clients to fail, as long as the clients 345 retransmit the SYN or first ACK as specified in 346 RFC793. Most of the diversity in SYN flood defenses arises 347 in variations in these algorithms to limit load, and 348 therefore they can not conveniently be instrumented with a 349 common standard MIB. 351 The Listen Table instruments all passively opened TCP 352 connections in terms of observable protocol events 353 (e.g. sent and received segments) and resource allocation 354 events (entering the backlog and being accepted). This 355 approach eases generalization to SYN-flood mechanisms that 356 use alternate TCP state transition diagrams and implicit 357 mechanisms to encode some states. 359 4. TCP Extended Statistics MIB 361 TCP-ESTATS-MIB DEFINITIONS ::= BEGIN 362 IMPORTS 363 MODULE-IDENTITY, Counter32, Integer32, Unsigned32, 364 Gauge32, OBJECT-TYPE, experimental, 365 NOTIFICATION-TYPE 366 FROM SNMPv2-SMI 367 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP 368 FROM SNMPv2-CONF 369 ZeroBasedCounter32 370 FROM RMON2-MIB -- [RFC2021] 371 ZeroBasedCounter64 372 FROM HCNUM-TC -- [RFC2856] 373 TEXTUAL-CONVENTION, 374 DateAndTime, TruthValue, TimeStamp 375 FROM SNMPv2-TC 376 InetAddressType, InetAddress, 377 InetPortNumber 378 FROM INET-ADDRESS-MIB -- [RFC4001] 379 tcpListenerEntry 380 FROM TCP-MIB; -- [RFC4022] 382 tcpEStatsMIB MODULE-IDENTITY 383 LAST-UPDATED "200510231248Z" -- Oct 23, 2005 384 ORGANIZATION "IETF TSV Working Group" 385 CONTACT-INFO 386 "Matt Mathis 387 John Heffner 388 Raghu Reddy 389 Web100 Project 390 Pittsburgh Supercomputing Center 391 4400 Fifth Ave 392 Pittsburgh, PA 15213 393 Email: mathis@psc.edu, jheffner@psc.edu, rreddy@psc.edu 395 Rajiv Raghunarayan 396 Cisco Systems Inc. 397 San Jose, CA 95134 398 Phone: 408 853 9612 399 Email: raraghun@cisco.com 401 Jon Saperia 402 JDS Consulting, Inc. 403 174 Chapman Street 404 Watertown, MA 02472 405 Phone: 617-744-1079 406 Email: saperia@jdscons.com " 407 DESCRIPTION 408 "Documentation of TCP Extended Performance Instrumentation 409 variables from the Web100 project. [Web100] 411 Copyright (C) The Internet Society (2005). This version 412 of this MIB module is a part of RFC xxxx; see the RFC 413 itself for full legal notices." 414 -- RFC Editor: replace xxxx with actual RFC number & remove note 416 REVISION "200510231248Z" -- Oct 23, 2005 417 DESCRIPTION 418 "Initial version, published as RFC xxxx." 419 -- RFC Editor assigns RFC xxxx 420 ::= { experimental 9999 } 421 -- IANA assigns base OID xxxx 422 tcpEStatsNotifications OBJECT IDENTIFIER ::= { tcpEStatsMIB 0 } 423 tcpEStatsMIBObjects OBJECT IDENTIFIER ::= { tcpEStatsMIB 1 } 424 tcpEStatsConformance OBJECT IDENTIFIER ::= { tcpEStatsMIB 2 } 425 tcpEStats OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 1 } 426 tcpEStatsControl OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 2 } 427 tcpEStatsScalar OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 3 } 429 -- 430 -- Textual Conventions 431 -- 433 TcpEStatsOperation ::= TEXTUAL-CONVENTION 434 STATUS current 435 DESCRIPTION 436 "Indicates whether the table or notification controlled 437 by an object with this syntax is enabled or in a 438 disabled state." 439 SYNTAX INTEGER { 440 enabled(1), 441 disabled(2) 442 } 444 -- 445 -- TCP Extended statistics scalars 446 -- 448 tcpEStatsListenerTableLastChange OBJECT-TYPE 449 SYNTAX TimeStamp 450 MAX-ACCESS read-only 451 STATUS current 452 DESCRIPTION 453 "The value of sysUpTime at the time of the last 454 creation or deletion of an entry in the tcpListenerTable. 455 If the number of entries has been unchanged since the 456 last re-initialization of the local network management 457 subsystem, then this object contains a zero value." 458 ::= { tcpEStatsScalar 3 } 460 -- ================================================================ 461 -- 462 -- The tcpEStatsControl Group 463 -- 465 -- The scalar objects in this group are used to control the 466 -- activation and deactivation of the TCP Extended Statistics 467 -- tables and notifications in this module. 468 -- 470 tcpEStatsControlPath OBJECT-TYPE 471 SYNTAX TcpEStatsOperation 472 MAX-ACCESS read-write 473 STATUS current 474 DESCRIPTION 475 "Controls the activation of the TCP Path 476 Statistics table." 477 DEFVAL { disabled } 478 ::= { tcpEStatsControl 1 } 480 tcpEStatsControlStack OBJECT-TYPE 481 SYNTAX TcpEStatsOperation 482 MAX-ACCESS read-write 483 STATUS current 484 DESCRIPTION 485 "Controls the activation of the TCP Stack 486 Statistics table." 487 DEFVAL { disabled } 488 ::= { tcpEStatsControl 2 } 490 tcpEStatsControlApp OBJECT-TYPE 491 SYNTAX TcpEStatsOperation 492 MAX-ACCESS read-write 493 STATUS current 494 DESCRIPTION 495 "Controls the activation of the TCP Application 496 Statistics table." 497 DEFVAL { disabled } 498 ::= { tcpEStatsControl 3 } 500 tcpEStatsControlTune OBJECT-TYPE 501 SYNTAX TcpEStatsOperation 502 MAX-ACCESS read-write 503 STATUS current 504 DESCRIPTION 505 "Controls the activation of the TCP Tuning 506 table." 507 DEFVAL { disabled } 508 ::= { tcpEStatsControl 4 } 510 tcpEStatsControlNotify OBJECT-TYPE 511 SYNTAX TcpEStatsOperation 512 MAX-ACCESS read-write 513 STATUS current 514 DESCRIPTION 515 "Controls the generation of all notifications defined in 516 this MIB." 517 DEFVAL { disabled } 518 ::= { tcpEStatsControl 5 } 520 tcpEStatsConnTableLatency OBJECT-TYPE 521 SYNTAX Integer32 (0..30) 522 MAX-ACCESS read-only 523 STATUS current 524 DESCRIPTION 525 "Specifies the number of seconds that the entity will 526 retain entries in the TCP connection tables, after the 527 connection first enters the closed state. The entity 528 SHOULD provide a configuration option to enable 529 customization of this value. A value of 0 530 results in entries being removed from the tables as soon as 531 the connection enters the closed state. The value of 532 this object pertains to the following tables: 533 tcpEStatsConnectIdTable 534 tcpEStatsPerfTable 535 tcpEStatsPathTable 536 tcpEStatsStackTable 537 tcpEStatsAppTable 538 tcpEStatsTuneTable" 539 ::= { tcpEStatsControl 6 } 541 -- ================================================================ 542 -- 543 -- Listener Table 544 -- 546 tcpEStatsListenerTable OBJECT-TYPE 547 SYNTAX SEQUENCE OF TcpEStatsListenerEntry 548 MAX-ACCESS not-accessible 549 STATUS current 550 DESCRIPTION 551 "This table contains information about TCP Listeners, 552 in addition to the information maintained by the 553 tcpListenerTable RFC4022." 554 ::= { tcpEStats 10 } 556 tcpEStatsListenerEntry OBJECT-TYPE 557 SYNTAX TcpEStatsListenerEntry 558 MAX-ACCESS not-accessible 559 STATUS current 560 DESCRIPTION 561 "Each entry in the table contains information about 562 a specific TCP Listener." 563 AUGMENTS { tcpListenerEntry } 564 ::= { tcpEStatsListenerTable 1 } 566 TcpEStatsListenerEntry ::= SEQUENCE { 567 tcpEStatsListenerStartTime TimeStamp, 568 tcpEStatsListenerSynRcvd ZeroBasedCounter32, 569 tcpEStatsListenerInitial ZeroBasedCounter32, 570 tcpEStatsListenerEstablished ZeroBasedCounter32, 571 tcpEStatsListenerAccepted ZeroBasedCounter32, 572 tcpEStatsListenerExceedBacklog ZeroBasedCounter32, 573 tcpEStatsListenerHCSynRcvd ZeroBasedCounter64, 574 tcpEStatsListenerHCInitial ZeroBasedCounter64, 575 tcpEStatsListenerHCEstablished ZeroBasedCounter64, 576 tcpEStatsListenerHCAccepted ZeroBasedCounter64, 577 tcpEStatsListenerHCExceedBacklog ZeroBasedCounter64, 578 tcpEStatsListenerCurrConns Gauge32, 579 tcpEStatsListenerMaxBacklog Integer32, 580 tcpEStatsListenerCurBacklog Gauge32, 581 tcpEStatsListenerCurEstabBacklog Gauge32 582 } 584 tcpEStatsListenerStartTime OBJECT-TYPE 585 SYNTAX TimeStamp 586 MAX-ACCESS read-only 587 STATUS current 588 DESCRIPTION 589 "The value of sysUpTime at the time this listener was 590 established. If the current state was entered prior to 591 the last re-initialization of the local network management 592 subsystem, then this object contains a zero value." 593 ::= { tcpEStatsListenerEntry 1 } 595 tcpEStatsListenerSynRcvd OBJECT-TYPE 596 SYNTAX ZeroBasedCounter32 597 MAX-ACCESS read-only 598 STATUS current 599 DESCRIPTION 600 "The number of SYNs which have been received for this 601 listener. The total number of failed connections for 602 all reasons can be estimated to be tcpEStatsListenerSynRcvd 603 minus tcpEStatsListenerAccepted and 604 tcpEStatsListenerCurBacklog." 605 ::= { tcpEStatsListenerEntry 2 } 607 tcpEStatsListenerInitial OBJECT-TYPE 608 SYNTAX ZeroBasedCounter32 609 MAX-ACCESS read-only 610 STATUS current 611 DESCRIPTION 612 "The total number of connections for which the Listener 613 has allocated initial state and placed the 614 connection in the backlog. The may happen in the 615 SYN-RCVD or ESTABLISHED states, depending on the 616 implementation." 617 ::= { tcpEStatsListenerEntry 3 } 619 tcpEStatsListenerEstablished OBJECT-TYPE 620 SYNTAX ZeroBasedCounter32 621 MAX-ACCESS read-only 622 STATUS current 623 DESCRIPTION 624 "The number of connections which have been established to 625 this endpoint. E.g. The number of first ACKs which have 626 been received for this listener." 627 ::= { tcpEStatsListenerEntry 4 } 629 tcpEStatsListenerAccepted OBJECT-TYPE 630 SYNTAX ZeroBasedCounter32 631 MAX-ACCESS read-only 632 STATUS current 633 DESCRIPTION 634 "The total number of connections for which the Listener 635 has successfully issued an accept, removing the connection 636 from the backlog." 637 ::= { tcpEStatsListenerEntry 5 } 639 tcpEStatsListenerExceedBacklog OBJECT-TYPE 640 SYNTAX ZeroBasedCounter32 641 MAX-ACCESS read-only 642 STATUS current 643 DESCRIPTION 644 "The total number of connections dropped from the 645 backlog by this listener due to all reasons. This 646 includes all connections that are allocated initial 647 resources but are not accepted for some reason." 648 ::= { tcpEStatsListenerEntry 6 } 650 tcpEStatsListenerHCSynRcvd OBJECT-TYPE 651 SYNTAX ZeroBasedCounter64 652 MAX-ACCESS read-only 653 STATUS current 654 DESCRIPTION 655 "The number of SYNs which have been received for this 656 listener on systems that can process (or reject) more 657 than 1 million connections per second. See 658 tcpEStatsListenerSynRcvd." 659 ::= { tcpEStatsListenerEntry 7 } 661 tcpEStatsListenerHCInitial OBJECT-TYPE 662 SYNTAX ZeroBasedCounter64 663 MAX-ACCESS read-only 664 STATUS current 665 DESCRIPTION 666 "The total number of connections for which the Listener 667 has allocated initial state and placed the connection 668 in the backlog on systems that can process (or reject) 669 more than 1 million connections per second. See 670 tcpEStatsListenerInitial." 671 ::= { tcpEStatsListenerEntry 8 } 673 tcpEStatsListenerHCEstablished OBJECT-TYPE 674 SYNTAX ZeroBasedCounter64 675 MAX-ACCESS read-only 676 STATUS current 677 DESCRIPTION 678 "The number of connections which have been established to 679 this endpoint on systems that can process (or reject) more 680 than 1 million connections per second. See 681 tcpEStatsListenerEstablished." 682 ::= { tcpEStatsListenerEntry 9 } 684 tcpEStatsListenerHCAccepted OBJECT-TYPE 685 SYNTAX ZeroBasedCounter64 686 MAX-ACCESS read-only 687 STATUS current 688 DESCRIPTION 689 "The total number of connections for which the Listener 690 has successfully issued an accept, removing the connection 691 from the backlog on systems that can process (or reject) 692 more than 1 million connections per second. See 693 tcpEStatsListenerAccepted." 694 ::= { tcpEStatsListenerEntry 10 } 696 tcpEStatsListenerHCExceedBacklog OBJECT-TYPE 697 SYNTAX ZeroBasedCounter64 698 MAX-ACCESS read-only 699 STATUS current 700 DESCRIPTION 701 "The total number of connections dropped from the 702 backlog by this listener due to all reasons on 703 systems that can process (or reject) more than 704 1 million connections per second. See 705 tcpEStatsListenerHCExceedBacklog." 706 ::= { tcpEStatsListenerEntry 11 } 708 tcpEStatsListenerCurrConns OBJECT-TYPE 709 SYNTAX Gauge32 710 MAX-ACCESS read-only 711 STATUS current 712 DESCRIPTION 713 "The current number of connections in the ESTABLISHED 714 state, which have also been accepted. It excludes 715 connections that have been established but not accepted 716 because they are still subject to being discarded to 717 shed load without explicit action by either endpoint." 719 ::= { tcpEStatsListenerEntry 12 } 721 tcpEStatsListenerMaxBacklog OBJECT-TYPE 722 SYNTAX Integer32 723 MAX-ACCESS read-only 724 STATUS current 725 DESCRIPTION 726 "The maximum number of connections allowed in 727 backlog at one time." 728 ::= { tcpEStatsListenerEntry 13 } 730 tcpEStatsListenerCurBacklog OBJECT-TYPE 731 SYNTAX Gauge32 732 MAX-ACCESS read-only 733 STATUS current 734 DESCRIPTION 735 "The current number of connections that are in backlog. 736 This counter MUST include connections in ESTABLISHED state, 737 for which the Listener has not yet issued an accept, 738 and MAY include connections in SYN-RECEIVED state." 739 ::= { tcpEStatsListenerEntry 14 } 741 tcpEStatsListenerCurEstabBacklog OBJECT-TYPE 742 SYNTAX Gauge32 743 MAX-ACCESS read-only 744 STATUS current 745 DESCRIPTION 746 "The current number of connections in backlog that are 747 in the ESTABLISHED state, but for which the Listener has 748 not yet issued an accept." 749 ::= { tcpEStatsListenerEntry 15 } 751 -- ================================================================ 752 -- 753 -- TCP Connection ID Table 754 -- 756 -- There is overlap with the RFC 4022 [RFC4022] TCP Connection table 757 -- because there is a semantic difference in the latency of row 758 -- removal in this table. Rows are expected to remain in this 759 -- table longer than in a standard TCP Connection table. Other 760 -- than this latency difference, the semantics of the first six 761 -- objects in this table are the same as the TCP Connection 762 -- table and the DESCRIPTIONS come from RFC 4022. 764 tcpEStatsConnectIdTable OBJECT-TYPE 765 SYNTAX SEQUENCE OF TcpEStatsConnectIdEntry 766 MAX-ACCESS not-accessible 767 STATUS current 768 DESCRIPTION 769 "This table maps a connection ID used by other tables in 770 this MIB Module with the information that uniquely 771 identifies each active TCP connection. Entries are 772 retained in this table for the number of seconds 773 indicated by the tcpEStatsConnTableLatency object, after 774 the TCP connection first enters the closed state." 775 ::= { tcpEStats 1 } 777 tcpEStatsConnectIdEntry OBJECT-TYPE 778 SYNTAX TcpEStatsConnectIdEntry 779 MAX-ACCESS not-accessible 780 STATUS current 781 DESCRIPTION 782 "Each entry in this table maps a TCP connection 783 4-tuple to a connection index." 784 INDEX { tcpEStatsConnectLocalAddressType, 785 tcpEStatsConnectLocalAddress, 786 tcpEStatsConnectLocalPort, 787 tcpEStatsConnectRemAddressType, 788 tcpEStatsConnectRemAddress, 789 tcpEStatsConnectRemPort } 790 ::= { tcpEStatsConnectIdTable 1 } 792 TcpEStatsConnectIdEntry ::= SEQUENCE { 793 tcpEStatsConnectLocalAddressType InetAddressType, 794 tcpEStatsConnectLocalAddress InetAddress, 795 tcpEStatsConnectLocalPort InetPortNumber, 796 tcpEStatsConnectRemAddressType InetAddressType, 797 tcpEStatsConnectRemAddress InetAddress, 798 tcpEStatsConnectRemPort InetPortNumber, 799 tcpEStatsConnectIndex Unsigned32 800 } 802 tcpEStatsConnectLocalAddressType OBJECT-TYPE 803 SYNTAX InetAddressType 804 MAX-ACCESS not-accessible 805 STATUS current 806 DESCRIPTION 807 "The address type of tcpEStatsConnectLocalAddress." 808 ::= { tcpEStatsConnectIdEntry 1 } 810 tcpEStatsConnectLocalAddress OBJECT-TYPE 811 SYNTAX InetAddress 812 MAX-ACCESS not-accessible 813 STATUS current 814 DESCRIPTION 815 "The local IP address for this TCP connection. The type 816 of this address is determined by the value of 817 tcpEStatsConnectLocalAddressType. 819 As this object is used in the index for the 820 tcpEStatsConnectIdTable, implementors of this table should 821 be careful not to create entries that would result in OIDs 822 with more than 128 sub-identifiers; else the information 823 cannot be accessed using SNMPv1, SNMPv2c or SNMPv3." 824 ::= { tcpEStatsConnectIdEntry 2 } 826 tcpEStatsConnectLocalPort OBJECT-TYPE 827 SYNTAX InetPortNumber 828 MAX-ACCESS not-accessible 829 STATUS current 830 DESCRIPTION 831 "The local port number for this TCP connection." 832 ::= {tcpEStatsConnectIdEntry 3 } 834 tcpEStatsConnectRemAddressType OBJECT-TYPE 835 SYNTAX InetAddressType 836 MAX-ACCESS not-accessible 837 STATUS current 838 DESCRIPTION 839 "The address type of tcpEStatsConnectRemAddress." 840 ::= { tcpEStatsConnectIdEntry 4 } 842 tcpEStatsConnectRemAddress OBJECT-TYPE 843 SYNTAX InetAddress 844 MAX-ACCESS not-accessible 845 STATUS current 846 DESCRIPTION 847 "The remote IP address for this TCP connection. The type 848 of this address is determined by the value of 849 tcpEStatsConnectRemAddressType. 851 As this object is used in the index for the 852 tcpEStatsConnectIdTable, implementors of this table should 853 be careful not to create entries that would result in OIDs 854 with more than 128 sub-identifiers; else the information 855 cannot be accessed using SNMPv1, SNMPv2c or SNMPv3." 856 ::= { tcpEStatsConnectIdEntry 5 } 858 tcpEStatsConnectRemPort OBJECT-TYPE 859 SYNTAX InetPortNumber 860 MAX-ACCESS not-accessible 861 STATUS current 862 DESCRIPTION 863 "The remote port number for this TCP connection." 864 ::= { tcpEStatsConnectIdEntry 6 } 866 tcpEStatsConnectIndex OBJECT-TYPE 867 SYNTAX Unsigned32 868 MAX-ACCESS read-only 869 STATUS current 870 DESCRIPTION 871 "A unique integer value assigned to each TCP Connection 872 entry. Assignment will begin at 1 and increase to the 873 maximum value and then start again at 1 skipping in use 874 values." 875 ::= { tcpEStatsConnectIdEntry 7 } 877 -- ================================================================ 878 -- 879 -- Basic TCP Performance Statistics 880 -- 882 tcpEStatsPerfTable OBJECT-TYPE 883 SYNTAX SEQUENCE OF TcpEStatsPerfEntry 884 MAX-ACCESS not-accessible 885 STATUS current 886 DESCRIPTION 887 "This table contains objects that are useful for 888 measuring TCP performance and first line problem 889 diagnosis. Most objects in this table directly 890 expose some TCP state variable or are easily 891 implemented as simple functions (e.g. Maximum) 892 of TCP state variables." 893 ::= { tcpEStats 2 } 895 tcpEStatsPerfEntry OBJECT-TYPE 896 SYNTAX TcpEStatsPerfEntry 897 MAX-ACCESS not-accessible 898 STATUS current 899 DESCRIPTION 900 "Each entry in this table has information about the 901 characteristics of each active and recently closed tcp 902 connection." 903 INDEX { tcpEStatsConnectIndex } 904 ::= { tcpEStatsPerfTable 1 } 906 TcpEStatsPerfEntry ::= SEQUENCE { 908 tcpEStatsPerfSegsOut ZeroBasedCounter32, 909 tcpEStatsPerfDataSegsOut ZeroBasedCounter32, 910 tcpEStatsPerfDataOctetsOut ZeroBasedCounter32, 911 tcpEStatsPerfHCDataOctetsOut ZeroBasedCounter64, 912 tcpEStatsPerfSegsRetrans ZeroBasedCounter32, 913 tcpEStatsPerfOctetsRetrans ZeroBasedCounter32, 914 tcpEStatsPerfSegsIn ZeroBasedCounter32, 915 tcpEStatsPerfDataSegsIn ZeroBasedCounter32, 916 tcpEStatsPerfDataOctetsIn ZeroBasedCounter32, 917 tcpEStatsPerfHCDataOctetsIn ZeroBasedCounter64, 918 tcpEStatsPerfElapsedSecs ZeroBasedCounter32, 919 tcpEStatsPerfElapsedMicroSecs ZeroBasedCounter32, 920 tcpEStatsPerfStartTimeStamp DateAndTime, 921 tcpEStatsPerfCurMSS Gauge32, 922 tcpEStatsPerfPipeSize Gauge32, 923 tcpEStatsPerfMaxPipeSize Gauge32, 924 tcpEStatsPerfSmoothedRTT Gauge32, 925 tcpEStatsPerfCurRTO Gauge32, 926 tcpEStatsPerfCongSignals ZeroBasedCounter32, 927 tcpEStatsPerfCurCwnd Gauge32, 928 tcpEStatsPerfCurSsthresh Gauge32, 929 tcpEStatsPerfTimeouts ZeroBasedCounter32, 930 tcpEStatsPerfCurRwinSent Gauge32, 931 tcpEStatsPerfMaxRwinSent Gauge32, 932 tcpEStatsPerfZeroRwinSent Gauge32, 933 tcpEStatsPerfCurRwinRcvd Gauge32, 934 tcpEStatsPerfMaxRwinRcvd Gauge32, 935 tcpEStatsPerfZeroRwinRcvd Gauge32, 936 tcpEStatsPerfSndLimTransRwin ZeroBasedCounter32, 937 tcpEStatsPerfSndLimTransCwnd ZeroBasedCounter32, 938 tcpEStatsPerfSndLimTransSnd ZeroBasedCounter32, 939 tcpEStatsPerfSndLimTimeRwin ZeroBasedCounter32, 940 tcpEStatsPerfSndLimTimeCwnd ZeroBasedCounter32, 941 tcpEStatsPerfSndLimTimeSnd ZeroBasedCounter32 942 } 944 -- 945 -- The following objects provide statistics on aggregate 946 -- segments and data sent on a connection. These provide a 947 -- direct measure of the Internet capacity consumed by a 948 -- connection. 949 -- 951 tcpEStatsPerfSegsOut OBJECT-TYPE 952 SYNTAX ZeroBasedCounter32 953 MAX-ACCESS read-only 954 STATUS current 955 DESCRIPTION 956 "The total number of segments sent." 957 ::= { tcpEStatsPerfEntry 1 } 959 tcpEStatsPerfDataSegsOut OBJECT-TYPE 960 SYNTAX ZeroBasedCounter32 961 MAX-ACCESS read-only 962 STATUS current 963 DESCRIPTION 964 "The number of segments sent containing a positive length 965 data segment." 966 ::= { tcpEStatsPerfEntry 2 } 968 tcpEStatsPerfDataOctetsOut OBJECT-TYPE 969 SYNTAX ZeroBasedCounter32 970 MAX-ACCESS read-only 971 STATUS current 972 DESCRIPTION 973 "The number of octets of data contained in transmitted 974 segments, including retransmitted data. Note that this does 975 not include TCP headers." 976 ::= { tcpEStatsPerfEntry 3 } 978 tcpEStatsPerfHCDataOctetsOut OBJECT-TYPE 979 SYNTAX ZeroBasedCounter64 980 MAX-ACCESS read-only 981 STATUS current 982 DESCRIPTION 983 "The number of octets of data contained in transmitted 984 segments, including retransmitted data, on systems that can 985 transmit more than 10 million bits per second. Note that 986 this does not include TCP headers." 987 ::= { tcpEStatsPerfEntry 4 } 989 tcpEStatsPerfSegsRetrans OBJECT-TYPE 990 SYNTAX ZeroBasedCounter32 991 MAX-ACCESS read-only 992 STATUS current 993 DESCRIPTION 994 "The number of segments transmitted containing at least some 995 retransmitted data." 996 ::= { tcpEStatsPerfEntry 5 } 998 tcpEStatsPerfOctetsRetrans OBJECT-TYPE 999 SYNTAX ZeroBasedCounter32 1000 MAX-ACCESS read-only 1001 STATUS current 1002 DESCRIPTION 1003 "The number of octets retransmitted." 1004 ::= { tcpEStatsPerfEntry 6 } 1006 tcpEStatsPerfSegsIn OBJECT-TYPE 1007 SYNTAX ZeroBasedCounter32 1008 MAX-ACCESS read-only 1009 STATUS current 1010 DESCRIPTION 1011 "The total number of segments received." 1012 ::= { tcpEStatsPerfEntry 7 } 1014 tcpEStatsPerfDataSegsIn OBJECT-TYPE 1015 SYNTAX ZeroBasedCounter32 1016 MAX-ACCESS read-only 1017 STATUS current 1018 DESCRIPTION 1019 "The number of segments received containing a positive 1020 length data segment." 1021 ::= { tcpEStatsPerfEntry 8 } 1023 tcpEStatsPerfDataOctetsIn OBJECT-TYPE 1024 SYNTAX ZeroBasedCounter32 1025 MAX-ACCESS read-only 1026 STATUS current 1027 DESCRIPTION 1028 "The number of octets contained in received data segments, 1029 including retransmitted data. Note that this does not 1030 include TCP headers." 1031 ::= { tcpEStatsPerfEntry 9 } 1033 tcpEStatsPerfHCDataOctetsIn OBJECT-TYPE 1034 SYNTAX ZeroBasedCounter64 1035 MAX-ACCESS read-only 1036 STATUS current 1037 DESCRIPTION 1038 "The number of octets contained in received data segments, 1039 including retransmitted data, on systems that can receive 1040 more than 10 million bits per second. Note that this does 1041 not include TCP headers." 1042 ::= { tcpEStatsPerfEntry 10 } 1044 tcpEStatsPerfElapsedSecs OBJECT-TYPE 1045 SYNTAX ZeroBasedCounter32 1046 MAX-ACCESS read-only 1047 STATUS current 1048 DESCRIPTION 1049 "The seconds part of the time elapsed between 1050 tcpEStatsPerfStartTimeStamp and the most recent protocol 1051 event (segment sent or received)." 1052 ::= { tcpEStatsPerfEntry 11 } 1054 tcpEStatsPerfElapsedMicroSecs OBJECT-TYPE 1055 SYNTAX ZeroBasedCounter32 1056 MAX-ACCESS read-only 1057 STATUS current 1058 DESCRIPTION 1059 "The micro-second part of time elapsed between 1060 tcpEStatsPerfStartTimeStamp to the most recent protocol 1061 event (segment sent or received). This may be updated in 1062 what ever time granularity is the system supports." 1063 ::= { tcpEStatsPerfEntry 12 } 1065 tcpEStatsPerfStartTimeStamp OBJECT-TYPE 1066 SYNTAX DateAndTime 1067 MAX-ACCESS read-only 1068 STATUS current 1069 DESCRIPTION 1070 "Time at which this row was created and all 1071 ZeroBasedCounters in the row were initialized to zero." 1072 ::= { tcpEStatsPerfEntry 13 } 1074 -- 1075 -- The following objects can be used to fit minimal 1076 -- performance models to the TCP data rate. 1077 -- 1079 tcpEStatsPerfCurMSS OBJECT-TYPE 1080 SYNTAX Gauge32 1081 MAX-ACCESS read-only 1082 STATUS current 1083 DESCRIPTION 1084 "The current maximum segment size (MSS), in octets." 1085 ::= { tcpEStatsPerfEntry 14 } 1087 tcpEStatsPerfPipeSize OBJECT-TYPE 1088 SYNTAX Gauge32 1089 MAX-ACCESS read-only 1090 STATUS current 1091 DESCRIPTION 1092 "The TCP senders current estimate of the number of 1093 unacknowledged data octets in the network. 1095 While not in recovery, this is the same as ``Flight Size'' 1096 as defined in RFC2581. 1098 While in recovery, this is the same as ``pipe'' as defined 1099 in RFC3517. 1101 If RFC3517 is not in effect, the data octets in flight can 1102 be estimated as SND.NXT minus SND.UNA plus any 1103 retransmitted data, minus some measure of the data that has 1104 left the network. For example, with Reno or NewReno style 1105 TCP, the number of duplicate acknowledgement is used to 1106 count the number of segments that have left the network. 1107 I.e.: PipeSize=SND.NXT-SND.UNA+(retransmits-dupacks)*CurMSS" 1108 ::= { tcpEStatsPerfEntry 15 } 1110 tcpEStatsPerfMaxPipeSize OBJECT-TYPE 1111 SYNTAX Gauge32 1112 MAX-ACCESS read-only 1113 STATUS current 1114 DESCRIPTION 1115 "The maximum value of tcpEStatsPerfPipeSize, for this 1116 connection." 1117 ::= { tcpEStatsPerfEntry 16 } 1119 tcpEStatsPerfSmoothedRTT OBJECT-TYPE 1120 SYNTAX Gauge32 1121 MAX-ACCESS read-only 1122 STATUS current 1123 DESCRIPTION 1124 "The smoothed round trip time, in milliseconds, used in 1125 calculation of the RTO. See SRTT in [RFC2988]." 1126 ::= { tcpEStatsPerfEntry 17 } 1128 tcpEStatsPerfCurRTO OBJECT-TYPE 1129 SYNTAX Gauge32 1130 MAX-ACCESS read-only 1131 STATUS current 1132 DESCRIPTION 1133 "The current value of the retransmit timer RTO, in 1134 milliseconds. See [RFC2988]." 1135 ::= { tcpEStatsPerfEntry 18 } 1137 tcpEStatsPerfCongSignals OBJECT-TYPE 1138 SYNTAX ZeroBasedCounter32 1139 MAX-ACCESS read-only 1140 STATUS current 1141 DESCRIPTION 1142 "The number of multiplicative downward congestion window 1143 adjustments due to all forms of congestion signals, 1144 including Fast Retransmit, ECN and timeouts. This object 1145 summarizes all events that invoke the MD portion of AIMD 1146 congestion control, and as such is the best indicator of 1147 how cwnd is being affected by congestion. 1149 Note that retransmission timeouts multiplicatively reduce 1150 the window implicitly by setting ssthresh, and should be 1151 included in tcpEStatsPerfCongSignals. In order to minimize 1152 spurious congestion indications due to out-of-order 1153 segments, tcpEStatsPerfCongSignals should be incremented in 1154 association with the Fast Retransmit algorithm." 1155 ::= { tcpEStatsPerfEntry 19 } 1157 tcpEStatsPerfCurCwnd OBJECT-TYPE 1158 SYNTAX Gauge32 1159 MAX-ACCESS read-only 1160 STATUS current 1161 DESCRIPTION 1162 "The current congestion window, in octets. See [RFC2581]." 1163 ::= { tcpEStatsPerfEntry 20 } 1165 tcpEStatsPerfCurSsthresh OBJECT-TYPE 1166 SYNTAX Gauge32 1167 MAX-ACCESS read-only 1168 STATUS current 1169 DESCRIPTION 1170 "The current slow start threshold in octets. See [RFC2581]." 1171 ::= { tcpEStatsPerfEntry 21 } 1173 tcpEStatsPerfTimeouts OBJECT-TYPE 1174 SYNTAX ZeroBasedCounter32 1175 MAX-ACCESS read-only 1176 STATUS current 1177 DESCRIPTION 1178 "The number of times the retransmit timeout has expired when 1179 the RTO backoff multiplier is equal to one. See [RFC2988]." 1180 ::= { tcpEStatsPerfEntry 22 } 1182 -- 1183 -- The following objects instrument our receiver window 1184 -- updates to the remote sender. These can be used to 1185 -- determine if the local receiver is exerting flow control 1186 -- back pressure on the remote sender. 1187 -- 1189 tcpEStatsPerfCurRwinSent OBJECT-TYPE 1190 SYNTAX Gauge32 1191 MAX-ACCESS read-only 1192 STATUS current 1193 DESCRIPTION 1194 "The most recent window advertisement sent, in octets." 1195 ::= { tcpEStatsPerfEntry 23 } 1197 tcpEStatsPerfMaxRwinSent OBJECT-TYPE 1198 SYNTAX Gauge32 1199 MAX-ACCESS read-only 1200 STATUS current 1201 DESCRIPTION 1202 "The maximum window advertisement sent, in octets." 1203 ::= { tcpEStatsPerfEntry 24 } 1205 tcpEStatsPerfZeroRwinSent OBJECT-TYPE 1206 SYNTAX Gauge32 1207 MAX-ACCESS read-only 1208 STATUS current 1209 DESCRIPTION 1210 "The number of acknowledgments sent announcing a zero 1211 receive window, when the previously announced window was 1212 not zero." 1213 ::= { tcpEStatsPerfEntry 25 } 1215 -- 1216 -- The following objects instrument receiver window updates 1217 -- from the far end-system to determine if the remote receiver 1218 -- has sufficient buffer space or is exerting flow-control 1219 -- back pressure on the local sender. 1220 -- 1222 tcpEStatsPerfCurRwinRcvd OBJECT-TYPE 1223 SYNTAX Gauge32 1224 MAX-ACCESS read-only 1225 STATUS current 1226 DESCRIPTION 1227 "The most recent window advertisement received, in octets." 1228 ::= { tcpEStatsPerfEntry 26 } 1230 tcpEStatsPerfMaxRwinRcvd OBJECT-TYPE 1231 SYNTAX Gauge32 1232 MAX-ACCESS read-only 1233 STATUS current 1234 DESCRIPTION 1235 "The maximum window advertisement received, in octets." 1236 ::= { tcpEStatsPerfEntry 27 } 1238 tcpEStatsPerfZeroRwinRcvd OBJECT-TYPE 1239 SYNTAX Gauge32 1240 MAX-ACCESS read-only 1241 STATUS current 1242 DESCRIPTION 1243 "The number of acknowledgments received announcing a zero 1244 receive window, when the previously announced window was 1245 not zero." 1246 ::= { tcpEStatsPerfEntry 28 } 1248 -- 1249 -- The following optional objects can be used to quickly 1250 -- identify which subsystems are limiting TCP performance. 1251 -- There are three parallel pairs of instruments that measure 1252 -- the extent to which TCP performance is limited by the 1253 -- announced receiver window (indicating a receiver 1254 -- bottleneck), the current congestion window or 1255 -- retransmission timeout (indicating a path bottleneck) and 1256 -- all others events (indicating a sender bottleneck). 1257 -- 1258 -- These instruments should be updated every time the TCP 1259 -- output routine stops sending data. The elapsed time since 1260 -- the previous stop is accumulated into the appropriate 1261 -- object as determined by the previous stop reason (e.g. stop 1262 -- state). The current stop reason determines which timer will 1263 -- be updated the next time TCP output stops. 1264 -- 1265 -- Since there is no explicit stop at the beginning of a 1266 -- timeout, it is necessary to retroactively reclassify the 1267 -- previous stop as 'Congestion Limited'. 1268 -- 1270 tcpEStatsPerfSndLimTransRwin OBJECT-TYPE 1271 SYNTAX ZeroBasedCounter32 1272 MAX-ACCESS read-only 1273 STATUS current 1274 DESCRIPTION 1275 "The number of transitions into the 'Receiver Limited' state 1276 from either the 'Congestion Limited' or 'Sender Limited' 1277 states. This state is entered whenever TCP transmission 1278 stops because the sender has filled the announced receiver 1279 window." 1280 ::= { tcpEStatsPerfEntry 31 } 1282 tcpEStatsPerfSndLimTransCwnd OBJECT-TYPE 1283 SYNTAX ZeroBasedCounter32 1284 MAX-ACCESS read-only 1285 STATUS current 1286 DESCRIPTION 1287 "The number of transitions into the 'Congestion Limited' 1288 state from either the 'Receiver Limited' or 'Sender 1289 Limited' states. This state is entered whenever TCP 1290 transmission stops because the sender has reached some 1291 limit defined by congestion control (e.g. cwnd) or other 1292 algorithms (retransmission timeouts) designed to control 1293 network traffic." 1294 ::= { tcpEStatsPerfEntry 32 } 1296 tcpEStatsPerfSndLimTransSnd OBJECT-TYPE 1297 SYNTAX ZeroBasedCounter32 1298 MAX-ACCESS read-only 1299 STATUS current 1300 DESCRIPTION 1301 "The number of transitions into the 'Sender Limited' state 1302 from either the 'Receiver Limited' or 'Congestion Limited' 1303 states. This state is entered whenever TCP transmission 1304 stops due to some sender limit such as running out of 1305 application data or other resources and the Karn algorithm. 1306 When TCP stops sending data for any reason which can not be 1307 classified as Receiver Limited or Congestion Limited it 1308 must be treated as Sender Limited." 1309 ::= { tcpEStatsPerfEntry 33 } 1311 tcpEStatsPerfSndLimTimeRwin OBJECT-TYPE 1312 SYNTAX ZeroBasedCounter32 1313 MAX-ACCESS read-only 1314 STATUS current 1315 DESCRIPTION 1316 "The cumulative time (in milliseconds) spent in the 1317 'Receiver Limited' state. See tcpEStatsPerfSndLimTransRwin." 1318 ::= { tcpEStatsPerfEntry 34 } 1320 tcpEStatsPerfSndLimTimeCwnd OBJECT-TYPE 1321 SYNTAX ZeroBasedCounter32 1322 MAX-ACCESS read-only 1323 STATUS current 1324 DESCRIPTION 1325 "The cumulative time (in milliseconds) spent in the 1326 'Congestion Limited' state. See 1327 tcpEStatsPerfSndLimTransCwnd. When there is a 1328 retransmission timeout, it should be counted in 1329 tcpEStatsPerfSndLimTimeCwnd (and not the cumulative time 1330 for some other state.)" 1331 ::= { tcpEStatsPerfEntry 35 } 1333 tcpEStatsPerfSndLimTimeSnd OBJECT-TYPE 1334 SYNTAX ZeroBasedCounter32 1335 MAX-ACCESS read-only 1336 STATUS current 1337 DESCRIPTION 1338 "The cumulative time (in milliseconds) spent in the 'Sender 1339 Limited' state. See tcpEStatsPerfSndLimTransSnd." 1340 ::= { tcpEStatsPerfEntry 36 } 1342 -- ================================================================ 1343 -- 1344 -- Statistics for diagnosing path problems 1345 -- 1347 tcpEStatsPathTable OBJECT-TYPE 1348 SYNTAX SEQUENCE OF TcpEStatsPathEntry 1349 MAX-ACCESS not-accessible 1350 STATUS current 1351 DESCRIPTION 1352 "This table contains objects that can be used to infer 1353 detailed behavior of the Internet path, such as the 1354 extent that there is reordering, ECN bits and if 1355 RTT fluctuations are correlated to losses." 1356 ::= { tcpEStats 3 } 1358 tcpEStatsPathEntry OBJECT-TYPE 1359 SYNTAX TcpEStatsPathEntry 1360 MAX-ACCESS not-accessible 1361 STATUS current 1362 DESCRIPTION 1363 "Each entry in this table has information about the 1364 characteristics of each active and recently closed tcp 1365 connection." 1366 INDEX { tcpEStatsConnectIndex } 1367 ::= { tcpEStatsPathTable 1 } 1369 TcpEStatsPathEntry ::= SEQUENCE { 1371 tcpEStatsPathRetranThresh Gauge32, 1372 tcpEStatsPathNonRecovDAEpisodes Integer32, 1373 tcpEStatsPathSumOctetsReordered Integer32, 1374 tcpEStatsPathNonRecovDA ZeroBasedCounter32, 1375 tcpEStatsPathSampleRTT Gauge32, 1376 tcpEStatsPathRTTVar Gauge32, 1377 tcpEStatsPathMaxRTT Gauge32, 1378 tcpEStatsPathMinRTT Gauge32, 1379 tcpEStatsPathSumRTT ZeroBasedCounter32, 1380 tcpEStatsPathHCSumRTT ZeroBasedCounter64, 1381 tcpEStatsPathCountRTT ZeroBasedCounter32, 1382 tcpEStatsPathMaxRTO Gauge32, 1383 tcpEStatsPathMinRTO Gauge32, 1384 tcpEStatsPathIpTtl Integer32, 1385 tcpEStatsPathIpTosIn Integer32, 1386 tcpEStatsPathIpTosOut Integer32, 1387 tcpEStatsPathPreCongSumCwnd ZeroBasedCounter32, 1388 tcpEStatsPathPreCongSumRTT ZeroBasedCounter32, 1389 tcpEStatsPathPostCongSumRTT ZeroBasedCounter32, 1390 tcpEStatsPathPostCongCountRTT ZeroBasedCounter32, 1391 tcpEStatsPathECNsignals ZeroBasedCounter32, 1392 tcpEStatsPathECERcvd ZeroBasedCounter32, 1393 tcpEStatsPathQuenchRcvd ZeroBasedCounter32, 1394 tcpEStatsPathDupAckEpisodes ZeroBasedCounter32, 1395 tcpEStatsPathDupAcksOut ZeroBasedCounter32, 1396 tcpEStatsPathCERcvd ZeroBasedCounter32, 1397 tcpEStatsPathECNSent ZeroBasedCounter32, 1398 tcpEStatsPathECNNonceRcvd ZeroBasedCounter32 1399 } 1401 -- 1402 -- The following optional objects can be used to infer segment 1403 -- reordering on the path from the local sender to the remote 1404 -- receiver. 1405 -- 1407 tcpEStatsPathRetranThresh OBJECT-TYPE 1408 SYNTAX Gauge32 1409 MAX-ACCESS read-only 1410 STATUS current 1411 DESCRIPTION 1412 "The number of duplicate acknowledgments required to trigger 1413 Fast Retransmit. Note that although this is constant in 1414 traditional Reno TCP implementations, it is adaptive in 1415 many newer TCPs." 1416 ::= { tcpEStatsPathEntry 1 } 1418 tcpEStatsPathNonRecovDAEpisodes OBJECT-TYPE 1419 SYNTAX Integer32 1420 MAX-ACCESS read-only 1421 STATUS current 1422 DESCRIPTION 1423 "The number of duplicate acknowledgment episodes that did 1424 not trigger a Fast Retransmit because ACK advanced prior to 1425 the number of duplicate acknowledgments reaching 1426 RetranThresh. See [RFC2581]. 1428 In many implementations this is the number of times the 1429 'dupacks' counter is set to zero when it is non-zero but 1430 less than RetranThresh. 1432 Note that tcpEStatsPathNonRecovDAEpisodes divided by 1433 tcpEStatsPerfDataSegsOut is an estimate of the frequency of 1434 data reordering on the forward path." 1435 ::= { tcpEStatsPathEntry 2 } 1437 tcpEStatsPathSumOctetsReordered OBJECT-TYPE 1438 SYNTAX Integer32 1439 MAX-ACCESS read-only 1440 STATUS current 1441 DESCRIPTION 1442 "The sum of the amounts SND.UNA advances on the 1443 acknowledgment which ends a dup-ack episode without a 1444 retransmission. 1446 Note tcpEStatsPathSumOctetsReordered divided by 1447 tcpEStatsPathNonRecovDAEpisodes is an estimates of the 1448 average reordering distance, in octets." 1449 ::= { tcpEStatsPathEntry 3 } 1451 tcpEStatsPathNonRecovDA OBJECT-TYPE 1452 SYNTAX ZeroBasedCounter32 1453 MAX-ACCESS read-only 1454 STATUS current 1455 DESCRIPTION 1456 "Duplicate acks (or SACKS) that did not trigger a Fast 1457 Retransmit because ACK advanced prior to the number of 1458 duplicate acknowledgments reaching RetranThresh. 1460 In many implementations, this is the sum of the 'dupacks' 1461 counter, just before it is set to zero because ACK advanced 1462 without a Fast Retransmit. 1464 Note that tcpEStatsPathNonRecovDA divided by 1465 tcpEStatsPathNonRecovDAEpisodes is an estimate of the 1466 average reordering distance in segments." 1467 ::= { tcpEStatsPathEntry 4 } 1469 -- 1470 -- The following optional objects instrument the round trip 1471 -- time estimator and the retransmission timeout timer. See 1472 -- [RFC2988]. 1473 -- 1475 tcpEStatsPathSampleRTT OBJECT-TYPE 1476 SYNTAX Gauge32 1477 MAX-ACCESS read-only 1478 STATUS current 1479 DESCRIPTION 1480 "The most recent raw round trip time measurement, in 1481 milliseconds, used in calculation of the RTO." 1482 ::= { tcpEStatsPathEntry 21 } 1484 tcpEStatsPathRTTVar OBJECT-TYPE 1485 SYNTAX Gauge32 1486 MAX-ACCESS read-only 1487 STATUS current 1488 DESCRIPTION 1489 "The round trip time variation, in milliseconds, used in 1490 calculation of the RTO. See RTTVAR in [RFC2988]." 1491 ::= { tcpEStatsPathEntry 22 } 1493 tcpEStatsPathMaxRTT OBJECT-TYPE 1494 SYNTAX Gauge32 1495 MAX-ACCESS read-only 1496 STATUS current 1497 DESCRIPTION 1498 "The maximum sampled round trip time, in milliseconds." 1499 ::= { tcpEStatsPathEntry 23 } 1501 tcpEStatsPathMinRTT OBJECT-TYPE 1502 SYNTAX Gauge32 1503 MAX-ACCESS read-only 1504 STATUS current 1505 DESCRIPTION 1506 "The minimum sampled round trip time, in milliseconds." 1507 ::= { tcpEStatsPathEntry 24 } 1509 tcpEStatsPathSumRTT OBJECT-TYPE 1510 SYNTAX ZeroBasedCounter32 1511 MAX-ACCESS read-only 1512 STATUS current 1513 DESCRIPTION 1514 "The sum of all sampled round trip times, in milliseconds. 1516 Note that the change in tcpEStatsPathSumRTT divided by the 1517 change in tcpEStatsPathCountRTT is the mean RTT, uniformly 1518 averaged over an enter interval." 1519 ::= { tcpEStatsPathEntry 25 } 1521 tcpEStatsPathHCSumRTT OBJECT-TYPE 1522 SYNTAX ZeroBasedCounter64 1523 MAX-ACCESS read-only 1524 STATUS current 1525 DESCRIPTION 1526 "The sum of all sampled round trip times, in milliseconds, 1527 on all systems that implement multiple concurrent RTT 1528 measurements. 1530 Note that the change in tcpEStatsPathHCSumRTT divided by 1531 the change in tcpEStatsPathCountRTT is the mean RTT, 1532 uniformly averaged over an enter interval." 1533 ::= { tcpEStatsPathEntry 26 } 1535 tcpEStatsPathCountRTT OBJECT-TYPE 1536 SYNTAX ZeroBasedCounter32 1537 MAX-ACCESS read-only 1538 STATUS current 1539 DESCRIPTION 1540 "The number of round trip time samples included in 1541 tcpEStatsPathSumRTT." 1542 ::= { tcpEStatsPathEntry 27 } 1544 tcpEStatsPathMaxRTO OBJECT-TYPE 1545 SYNTAX Gauge32 1546 MAX-ACCESS read-only 1547 STATUS current 1548 DESCRIPTION 1549 "The maximum value of the retransmit timer RTO, in 1550 milliseconds. See [RFC2988]." 1551 ::= { tcpEStatsPathEntry 28 } 1553 tcpEStatsPathMinRTO OBJECT-TYPE 1554 SYNTAX Gauge32 1555 MAX-ACCESS read-only 1556 STATUS current 1557 DESCRIPTION 1558 "The minimum value of the retransmit timer RTO, in 1559 milliseconds. See [RFC2988]." 1560 ::= { tcpEStatsPathEntry 29 } 1562 -- 1563 -- The following optional objects provide information about 1564 -- how TCP is using the IP layer. 1565 -- 1567 tcpEStatsPathIpTtl OBJECT-TYPE 1568 SYNTAX Integer32 1569 MAX-ACCESS read-only 1570 STATUS current 1571 DESCRIPTION 1572 "The value of the TTL field carried in the most recently 1573 received IP header. This is sometimes useful to detect 1574 changing or unstable routes." 1575 ::= { tcpEStatsPathEntry 30 } 1577 tcpEStatsPathIpTosIn OBJECT-TYPE 1578 SYNTAX Integer32 1579 MAX-ACCESS read-only 1580 STATUS current 1581 DESCRIPTION 1582 "The value of the IPv4 Type Of Service octet, or the IPv6 1583 traffic class octet, carried in the most recently received 1584 IP header. See [RFC2474] and [RFC3260]. 1586 This is useful to diagnose interactions between TCP and any 1587 IP layer packet scheduling and delivery policy, which might 1588 be in effect to implement QoS." 1589 ::= { tcpEStatsPathEntry 31 } 1591 tcpEStatsPathIpTosOut OBJECT-TYPE 1592 SYNTAX Integer32 1593 MAX-ACCESS read-only 1594 STATUS current 1595 DESCRIPTION 1596 "The value of the IPv4 Type Of Service octet, or the IPv6 1597 traffic class octet, carried in the most recently 1598 transmitted IP header. See [RFC2474] and [RFC3260]. 1600 This is useful to diagnose interactions between TCP and any 1601 IP layer packet scheduling and delivery policy, which might 1602 be in effect to implement QoS." 1603 ::= { tcpEStatsPathEntry 32 } 1605 -- 1606 -- The following optional objects characterize the congestion 1607 -- feedback signals by collecting statistics on how the 1608 -- congestion events are correlated to losses, changes in RTT 1609 -- and other protocol events. 1610 -- 1612 tcpEStatsPathPreCongSumCwnd OBJECT-TYPE 1613 SYNTAX ZeroBasedCounter32 1614 MAX-ACCESS read-only 1615 STATUS current 1616 DESCRIPTION 1617 "The sum of the values of the congestion window, in octets, 1618 captured each time a congestion signal is received. This 1619 MUST be updated each time tcpEStatsPerfCongSignals is 1620 incremented, such that the ratio is the average window at 1621 congestion." 1622 ::= { tcpEStatsPathEntry 33 } 1624 tcpEStatsPathPreCongSumRTT OBJECT-TYPE 1625 SYNTAX ZeroBasedCounter32 1626 MAX-ACCESS read-only 1627 STATUS current 1628 DESCRIPTION 1629 "Sum of the last sample of the RTT (tcpEStatsPathSampleRTT) 1630 prior to received congestion signals. This MUST be updated 1631 each time tcpEStatsPerfCongSignals is incremented, such 1632 that the ratio is the average RTT just prior to congestion." 1633 ::= { tcpEStatsPathEntry 34 } 1635 tcpEStatsPathPostCongSumRTT OBJECT-TYPE 1636 SYNTAX ZeroBasedCounter32 1637 MAX-ACCESS read-only 1638 STATUS current 1639 DESCRIPTION 1640 "Sum of the first RTT sample following a received congestion 1641 signal." 1642 ::= { tcpEStatsPathEntry 35 } 1644 tcpEStatsPathPostCongCountRTT OBJECT-TYPE 1645 SYNTAX ZeroBasedCounter32 1646 MAX-ACCESS read-only 1647 STATUS current 1648 DESCRIPTION 1649 "The number of RTT samples included in 1650 tcpEStatsPathPostCongSumRTT such that the ratio is average 1651 RTT just after congestion." 1652 ::= { tcpEStatsPathEntry 36 } 1654 -- 1655 -- The following optional objects can be used to detect other 1656 -- types of non-loss congestion signals such as source quench 1657 -- or ECN. 1658 -- 1660 tcpEStatsPathECNsignals OBJECT-TYPE 1661 SYNTAX ZeroBasedCounter32 1662 MAX-ACCESS read-only 1663 STATUS current 1664 DESCRIPTION 1665 "The number of congestion signals delivered via all forms of 1666 explicit congestion notification including the ECE bit and 1667 failing the ECN nonce check, etc." 1668 ::= { tcpEStatsPathEntry 37 } 1670 tcpEStatsPathECERcvd OBJECT-TYPE 1671 SYNTAX ZeroBasedCounter32 1672 MAX-ACCESS read-only 1673 STATUS current 1674 DESCRIPTION 1675 "The number of congestion signals received via the ECE bit 1676 [RFC3168]." 1677 ::= { tcpEStatsPathEntry 38 } 1679 tcpEStatsPathQuenchRcvd OBJECT-TYPE 1680 SYNTAX ZeroBasedCounter32 1681 MAX-ACCESS read-only 1682 STATUS current 1683 DESCRIPTION 1684 "The number of ICMP quench messages that are treated as 1685 congestion signals." 1686 ::= { tcpEStatsPathEntry 39 } 1688 -- 1689 -- The following optional objects are receiver side 1690 -- instruments of the path from the sender to the receiver. In 1691 -- general the receiver has less information about the state 1692 -- of the path, because the receiver does not have a robust 1693 -- mechanism to infer the sender's actions. 1694 -- 1696 tcpEStatsPathDupAckEpisodes OBJECT-TYPE 1697 SYNTAX ZeroBasedCounter32 1698 MAX-ACCESS read-only 1699 STATUS current 1700 DESCRIPTION 1701 "The number of Duplicate Acks Sent when prior Ack was not 1702 duplicate. This is the number of times that a contiguous 1703 series of duplicate acknowledgments have been sent. 1705 This is an indication of the number of data segments lost 1706 or reordered on the path from the remote TCP endpoint to 1707 the near TCP endpoint." 1708 ::= { tcpEStatsPathEntry 40 } 1710 tcpEStatsPathDupAcksOut OBJECT-TYPE 1711 SYNTAX ZeroBasedCounter32 1712 MAX-ACCESS read-only 1713 STATUS current 1714 DESCRIPTION 1715 "The number of duplicate ACKs sent. The ratio of 1716 tcpEStatsPathDupAcksOut to tcpEStatsPathDupAckEpisodes is 1717 an indication of reorder or recovery distance." 1718 ::= { tcpEStatsPathEntry 41 } 1720 tcpEStatsPathCERcvd OBJECT-TYPE 1721 SYNTAX ZeroBasedCounter32 1722 MAX-ACCESS read-only 1723 STATUS current 1724 DESCRIPTION 1725 "Received segments with Congestion Experienced bits. See 1726 [RFC3168]." 1727 ::= { tcpEStatsPathEntry 42 } 1729 tcpEStatsPathECNSent OBJECT-TYPE 1730 SYNTAX ZeroBasedCounter32 1731 MAX-ACCESS read-only 1732 STATUS current 1733 DESCRIPTION 1734 "Number of times CE bits have set ECN. See [RFC3168]." 1735 ::= { tcpEStatsPathEntry 43 } 1737 tcpEStatsPathECNNonceRcvd OBJECT-TYPE 1738 SYNTAX ZeroBasedCounter32 1739 MAX-ACCESS read-only 1740 STATUS current 1741 DESCRIPTION 1742 "Number of ECN Nonces received. Note that the low bit is the 1743 same as the one bit nonce sum." 1744 ::= { tcpEStatsPathEntry 44 } 1746 -- ================================================================ 1747 -- 1748 -- Statistics for diagnosing stack algorithms 1749 -- 1751 tcpEStatsStackTable OBJECT-TYPE 1752 SYNTAX SEQUENCE OF TcpEStatsStackEntry 1753 MAX-ACCESS not-accessible 1754 STATUS current 1755 DESCRIPTION 1756 "This table contains objects that are most useful for 1757 determining how well some of the TCP control 1758 algorithms are coping with this particular 1759 path." 1760 ::= { tcpEStats 4 } 1762 tcpEStatsStackEntry OBJECT-TYPE 1763 SYNTAX TcpEStatsStackEntry 1764 MAX-ACCESS not-accessible 1765 STATUS current 1766 DESCRIPTION 1767 "Each entry in this table has information about the 1768 characteristics of each active and recently closed tcp 1769 connection." 1770 INDEX { tcpEStatsConnectIndex } 1771 ::= { tcpEStatsStackTable 1 } 1773 TcpEStatsStackEntry ::= SEQUENCE { 1775 tcpEStatsStackState INTEGER, 1776 tcpEStatsStackSACK TruthValue, 1777 tcpEStatsStackTimeStamps TruthValue, 1778 tcpEStatsStackECN TruthValue, 1779 tcpEStatsStackNagle TruthValue, 1780 tcpEStatsStackSndWindScale Integer32, 1781 tcpEStatsStackRcvWindScale Integer32, 1782 tcpEStatsStackActiveOpen TruthValue, 1783 tcpEStatsStackMaxSsCwnd Gauge32, 1784 tcpEStatsStackMaxCaCwnd Gauge32, 1785 tcpEStatsStackMaxSsthresh Gauge32, 1786 tcpEStatsStackMinSsthresh Gauge32, 1787 tcpEStatsStackInRecovery INTEGER, 1788 tcpEStatsStackDupAcksIn ZeroBasedCounter32, 1789 tcpEStatsStackSpuriousFrDetected ZeroBasedCounter32, 1790 tcpEStatsStackSpuriousRtoDetected ZeroBasedCounter32, 1791 tcpEStatsStackMSSSent Unsigned32, 1792 tcpEStatsStackMSSRcvd Unsigned32, 1793 tcpEStatsStackWinScaleSent Integer32, 1794 tcpEStatsStackWinScaleRcvd Integer32, 1795 tcpEStatsStackSACKokSent TruthValue, 1796 tcpEStatsStackSACKokRcvd TruthValue, 1797 tcpEStatsStackTimeStampSent TruthValue, 1798 tcpEStatsStackTimeStampRcvd TruthValue, 1799 tcpEStatsStackSoftErrors ZeroBasedCounter32, 1800 tcpEStatsStackSoftErrorReason INTEGER, 1801 tcpEStatsStackSndInitial Counter32, 1802 tcpEStatsStackRecInitial Counter32, 1803 tcpEStatsStackSlowStart ZeroBasedCounter32, 1804 tcpEStatsStackCongAvoid ZeroBasedCounter32, 1805 tcpEStatsStackOtherReductions ZeroBasedCounter32, 1806 tcpEStatsStackCongOverCount ZeroBasedCounter32, 1807 tcpEStatsStackFastRetran ZeroBasedCounter32, 1808 tcpEStatsStackSubsequentTimeouts ZeroBasedCounter32, 1809 tcpEStatsStackCurTimeoutCount Gauge32, 1810 tcpEStatsStackAbruptTimeouts ZeroBasedCounter32, 1811 tcpEStatsStackSACKsRcvd ZeroBasedCounter32, 1812 tcpEStatsStackSACKBlocksRcvd ZeroBasedCounter32, 1813 tcpEStatsStackSendStall ZeroBasedCounter32, 1814 tcpEStatsStackDSACKDups ZeroBasedCounter32, 1815 tcpEStatsStackMaxMSS Gauge32, 1816 tcpEStatsStackMinMSS Gauge32, 1817 tcpEStatsStackCurRetxQueue Gauge32, 1818 tcpEStatsStackMaxRetxQueue Gauge32, 1819 tcpEStatsStackCurReasmQueue Gauge32, 1820 tcpEStatsStackMaxReasmQueue Gauge32 1821 } 1823 -- 1824 -- The following objects indicate TCP state and if various 1825 -- optional TCP features or algorithms are enabled. 1826 -- 1828 tcpEStatsStackState OBJECT-TYPE 1829 SYNTAX INTEGER { 1830 tcpESStateClosed(1), 1831 tcpESStateListen(2), 1832 tcpESStateSynSent(3), 1833 tcpESStateSynReceived(4), 1834 tcpESStateEstablished(5), 1835 tcpESStateFinWait1(6), 1836 tcpESStateFinWait2(7), 1837 tcpESStateCloseWait(8), 1838 tcpESStateLastAck(9), 1839 tcpESStateClosing(10), 1840 tcpESStateTimeWait(11), 1841 tcpESStateDeleteTcb(12) 1842 } 1843 MAX-ACCESS read-only 1844 STATUS current 1845 DESCRIPTION 1846 "An integer value representing the connection state from the 1847 TCP State Transition Diagram. See [RFC793]. 1849 The value listen(2) is included only for parallelism to the 1850 old tcpConnTable, and should not be used because the listen 1851 state in managed by the tcpListenerTable. 1853 The value DeleteTcb(12) is included only for parallelism to 1854 the tcpConnTable mechanism for terminating connections, 1855 although this table does not permit writing." 1856 ::= { tcpEStatsStackEntry 1 } 1858 tcpEStatsStackSACK OBJECT-TYPE 1859 SYNTAX TruthValue 1860 MAX-ACCESS read-only 1861 STATUS current 1862 DESCRIPTION 1863 "True(1) if SACK has been negotiated on, else false(2). See 1864 [RFC2018]." 1865 ::= { tcpEStatsStackEntry 2 } 1867 tcpEStatsStackTimeStamps OBJECT-TYPE 1868 SYNTAX TruthValue 1869 MAX-ACCESS read-only 1870 STATUS current 1871 DESCRIPTION 1872 "True(1) if timestamps have been negotiated on, else 1873 false(2). See [RFC1323]." 1874 ::= { tcpEStatsStackEntry 3 } 1876 tcpEStatsStackECN OBJECT-TYPE 1877 SYNTAX TruthValue 1878 MAX-ACCESS read-only 1879 STATUS current 1880 DESCRIPTION 1881 "True(1) if ECN has been negotiated on, else false(2). See 1882 [RFC3168]." 1883 ::= { tcpEStatsStackEntry 4 } 1885 tcpEStatsStackNagle OBJECT-TYPE 1886 SYNTAX TruthValue 1887 MAX-ACCESS read-only 1888 STATUS current 1889 DESCRIPTION 1890 "True(1) if the Nagle algorithm is being used, else 1891 false(2). See [RFC896] and [RFC1122]." 1892 ::= { tcpEStatsStackEntry 5 } 1894 tcpEStatsStackSndWindScale OBJECT-TYPE 1895 SYNTAX Integer32 1896 MAX-ACCESS read-only 1897 STATUS current 1898 DESCRIPTION 1899 "The value of Snd.Wind.Scale from [RFC1323]. Note that 1900 tcpEStatsStackSndWindScale is either zero or the same as 1901 tcpEStatsStackWinScaleRcvd." 1902 ::= { tcpEStatsStackEntry 6 } 1904 tcpEStatsStackRcvWindScale OBJECT-TYPE 1905 SYNTAX Integer32 1906 MAX-ACCESS read-only 1907 STATUS current 1908 DESCRIPTION 1909 "The value of Rcv.Wind.Scale from [RFC1323]. Note that 1910 tcpEStatsStackRcvWindScale is either zero or the same as 1911 tcpEStatsStackWinScaleSent." 1912 ::= { tcpEStatsStackEntry 7 } 1914 tcpEStatsStackActiveOpen OBJECT-TYPE 1915 SYNTAX TruthValue 1916 MAX-ACCESS read-only 1917 STATUS current 1918 DESCRIPTION 1919 "True(1) if the local connection traversed the SYN-SENT 1920 state, else false(2). See [RFC793]." 1922 ::= { tcpEStatsStackEntry 8 } 1924 -- 1925 -- The following objects instrument the overall operation of 1926 -- TCP congestion control and data retransmissions. These 1927 -- instruments are sufficient to fit the actual performance to 1928 -- an updated macroscopic performance model [RFC2581] [Mat97] 1929 -- [Pad98]. 1930 -- 1932 tcpEStatsStackMaxSsCwnd OBJECT-TYPE 1933 SYNTAX Gauge32 1934 MAX-ACCESS read-only 1935 STATUS current 1936 DESCRIPTION 1937 "The maximum congestion window used during Slow Start, in 1938 octets." 1939 ::= { tcpEStatsStackEntry 9 } 1941 tcpEStatsStackMaxCaCwnd OBJECT-TYPE 1942 SYNTAX Gauge32 1943 MAX-ACCESS read-only 1944 STATUS current 1945 DESCRIPTION 1946 "The maximum congestion window used during Congestion 1947 Avoidance, in octets." 1948 ::= { tcpEStatsStackEntry 10 } 1950 tcpEStatsStackMaxSsthresh OBJECT-TYPE 1951 SYNTAX Gauge32 1952 MAX-ACCESS read-only 1953 STATUS current 1954 DESCRIPTION 1955 "The maximum slow start threshold, excluding the initial 1956 value." 1957 ::= { tcpEStatsStackEntry 11 } 1959 tcpEStatsStackMinSsthresh OBJECT-TYPE 1960 SYNTAX Gauge32 1961 MAX-ACCESS read-only 1962 STATUS current 1963 DESCRIPTION 1964 "The minimum slow start threshold." 1965 ::= { tcpEStatsStackEntry 12 } 1967 tcpEStatsStackInRecovery OBJECT-TYPE 1968 SYNTAX INTEGER { 1969 tcpESDataContiguous(1), 1970 tcpESDataUnordered(2), 1971 tcpESDataRecovery(3) 1972 } 1973 MAX-ACCESS read-only 1974 STATUS current 1975 DESCRIPTION 1976 "An integer value representing the state of the loss 1977 recovery for this connection. 1979 tcpESDataContiguous(1) indicates that the remote receiver 1980 is reporting contiguous data (no duplicate acknowledgments 1981 or SACK options) and that there are no unacknowledged 1982 retransmissions. 1984 tcpESDataUnordered(2) indicates that the remote receiver is 1985 reporting missing or out-of-order data (sending duplicate 1986 acknowledgments or SACK options) and that there are no 1987 unacknowledged retransmissions (because the missing data 1988 has not yet been retransmitted). 1990 tcpESDataRecovery(3) indicates that the sender has 1991 outstanding retransmitted data which is still in flight 1992 (i.e. is still unacknowledged). 1994 tcpEStatsStackInRecovery is a required precondition for 1995 some algorithms on other instruments. E.g. Some algorithms 1996 to estimate path properties may not be valid during 1997 recovery." 1998 ::= { tcpEStatsStackEntry 13 } 2000 tcpEStatsStackDupAcksIn OBJECT-TYPE 2001 SYNTAX ZeroBasedCounter32 2002 MAX-ACCESS read-only 2003 STATUS current 2004 DESCRIPTION 2005 "The number of duplicate ACKs received." 2006 ::= { tcpEStatsStackEntry 14 } 2008 tcpEStatsStackSpuriousFrDetected OBJECT-TYPE 2009 SYNTAX ZeroBasedCounter32 2010 MAX-ACCESS read-only 2011 STATUS current 2012 DESCRIPTION 2013 "The number of acknowledgments reporting out-of-order 2014 segments after the Fast Retransmit algorithm has already 2015 retransmitted the segments. (For example as detected by the 2016 Eiffle algorithm, [RFC3522]).'" 2017 ::= { tcpEStatsStackEntry 15 } 2019 tcpEStatsStackSpuriousRtoDetected OBJECT-TYPE 2020 SYNTAX ZeroBasedCounter32 2021 MAX-ACCESS read-only 2022 STATUS current 2023 DESCRIPTION 2024 "The number of acknowledgments reporting segments that have 2025 already be retransmitted due to a Retransmission Timeout." 2026 ::= { tcpEStatsStackEntry 16 } 2028 -- 2029 -- The following optional objects reflect the options 2030 -- requested on the SYN and/or SYN-ACK. These are useful for 2031 -- debugging problems with TCP option negotiation. 2032 -- 2034 tcpEStatsStackMSSSent OBJECT-TYPE 2035 SYNTAX Unsigned32 2036 MAX-ACCESS read-only 2037 STATUS current 2038 DESCRIPTION 2039 "The value sent in an MSS option, or zero if none." 2040 ::= { tcpEStatsStackEntry 21 } 2042 tcpEStatsStackMSSRcvd OBJECT-TYPE 2043 SYNTAX Unsigned32 2044 MAX-ACCESS read-only 2045 STATUS current 2046 DESCRIPTION 2047 "The value received in an MSS option, or zero if none." 2048 ::= { tcpEStatsStackEntry 22 } 2050 tcpEStatsStackWinScaleSent OBJECT-TYPE 2051 SYNTAX Integer32 (-1..14) 2052 MAX-ACCESS read-only 2053 STATUS current 2054 DESCRIPTION 2055 "The value of the transmitted window scale option if one was 2056 sent; otherwise, a value of -1. See [RFC1323]." 2057 ::= { tcpEStatsStackEntry 23 } 2059 tcpEStatsStackWinScaleRcvd OBJECT-TYPE 2060 SYNTAX Integer32 (-1..14) 2061 MAX-ACCESS read-only 2062 STATUS current 2063 DESCRIPTION 2064 "The value of the received window scale option if one was 2065 received; otherwise, a value of -1. See [RFC1323]." 2066 ::= { tcpEStatsStackEntry 24 } 2068 tcpEStatsStackSACKokSent OBJECT-TYPE 2069 SYNTAX TruthValue 2070 MAX-ACCESS read-only 2071 STATUS current 2072 DESCRIPTION 2073 "True(1) if SACKok option was sent, else false(2). See 2074 [RFC2018]." 2075 ::= { tcpEStatsStackEntry 25 } 2077 tcpEStatsStackSACKokRcvd OBJECT-TYPE 2078 SYNTAX TruthValue 2079 MAX-ACCESS read-only 2080 STATUS current 2081 DESCRIPTION 2082 "True(1) if SACKok option was received, else false(2). See 2083 [RFC2018]." 2084 ::= { tcpEStatsStackEntry 26 } 2086 tcpEStatsStackTimeStampSent OBJECT-TYPE 2087 SYNTAX TruthValue 2088 MAX-ACCESS read-only 2089 STATUS current 2090 DESCRIPTION 2091 "True(1) if Timestamp option was sent, else false(2). See 2092 [RFC1323]." 2093 ::= { tcpEStatsStackEntry 27 } 2095 tcpEStatsStackTimeStampRcvd OBJECT-TYPE 2096 SYNTAX TruthValue 2097 MAX-ACCESS read-only 2098 STATUS current 2099 DESCRIPTION 2100 "True(1) if Timestamp option was received, else false(2). 2101 See [RFC1323]." 2102 ::= { tcpEStatsStackEntry 28 } 2104 -- 2105 -- The following optional objects instrument unusual protocol 2106 -- events that probably indicate implementation problems in 2107 -- the protocol or path. 2108 -- 2110 tcpEStatsStackSoftErrors OBJECT-TYPE 2111 SYNTAX ZeroBasedCounter32 2112 MAX-ACCESS read-only 2113 STATUS current 2114 DESCRIPTION 2115 "The number of segments that fail various consistency tests 2116 during TCP input processing. Soft errors might cause the 2117 segment to be discard but some do not. Some of these soft 2118 errors cause the generation of a TCP acknowledgment, others 2119 are silently discarded." 2120 ::= { tcpEStatsStackEntry 29 } 2122 tcpEStatsStackSoftErrorReason OBJECT-TYPE 2123 SYNTAX INTEGER { 2124 belowDataWindow(1), 2125 aboveDataWindow(2), 2126 belowAckWindow(3), 2127 aboveAckWindow(4), 2128 belowTSWindow(5), 2129 aboveTSWindow(6), 2130 dataCheckSum(7), 2131 otherSoftError(8) 2132 } 2133 MAX-ACCESS read-only 2134 STATUS current 2135 DESCRIPTION 2136 "This object identities which consistency test most recently 2137 failed during tcp input processing. This object should be 2138 set every time tcpEStatsStackSoftErrors is incremented. The 2139 codes are as follows: 2141 belowDataWindow - All data in the segment is below SND.UNA. 2142 (Normal for keep-alives and possibly zero window probes). 2144 aboveDataWindow - Some data in the segment is above 2145 SND.WND. (Indicates an implementation bug or serious 2146 fraud). 2148 belowAckWindow - ACK below SND.UNA. (Indicates that the 2149 return path is reordering ACKs) 2151 aboveAckWindow - An ACK for data that we have not sent. 2152 (Indicates an implementation bug or serious fraud). 2154 belowTSWindow - TSecr on the segment is older than the 2155 current TS.Recent [RFC1323] (Normal for the rare case where 2156 PAWS detects data reordered by the network.) 2158 aboveTSWindow - TSecr on the segment is newer than the 2159 current TS.Recent [RFC1323]. (Indicates an implementation 2160 bug or serious fraud). 2162 dataCheckSum - Incorrect checksum. Note that this value is 2163 intrinsically fragile, because the header fields used to 2164 identify the connection may have been corrupted. 2166 otherSoftError - All other soft errors. 2168 Implementors are permitted to assign additional codes 2169 greater than 8 such that all SoftErrors in their 2170 implementation have unique codes. Management stations are 2171 to accumulate all unassigned codes as 'otherSoftErrors'" 2172 ::= { tcpEStatsStackEntry 30 } 2174 -- 2175 -- The following optional initial value objects are useful for 2176 -- conformance testing instruments on application progress and 2177 -- consumed network resources. 2178 -- 2180 tcpEStatsStackSndInitial OBJECT-TYPE 2181 SYNTAX Counter32 2182 MAX-ACCESS read-only 2183 STATUS current 2184 DESCRIPTION 2185 "Initial send sequence number. Note that by definition 2186 tcpEStatsStackSndInitial never changes for a given 2187 connection. See [RFC793]." 2188 ::= { tcpEStatsStackEntry 31 } 2190 tcpEStatsStackRecInitial OBJECT-TYPE 2191 SYNTAX Counter32 2192 MAX-ACCESS read-only 2193 STATUS current 2194 DESCRIPTION 2195 "Initial receive sequence number. Note that by definition 2196 tcpEStatsStackRecInitial never changes for a given 2197 connection. See [RFC793]." 2198 ::= { tcpEStatsStackEntry 32 } 2200 -- 2201 -- The following optional objects expose the detailed 2202 -- operation of the congestion control algorithms. 2203 -- 2205 tcpEStatsStackSlowStart OBJECT-TYPE 2206 SYNTAX ZeroBasedCounter32 2207 MAX-ACCESS read-only 2208 STATUS current 2209 DESCRIPTION 2210 "The number of times the congestion window has been 2211 increased by the Slow Start algorithm. See [RFC2581]." 2213 ::= { tcpEStatsStackEntry 33 } 2215 tcpEStatsStackCongAvoid OBJECT-TYPE 2216 SYNTAX ZeroBasedCounter32 2217 MAX-ACCESS read-only 2218 STATUS current 2219 DESCRIPTION 2220 "The number of times the congestion window has been 2221 increased by the Congestion Avoidance algorithm. See 2222 [RFC2581]." 2223 ::= { tcpEStatsStackEntry 34 } 2225 tcpEStatsStackOtherReductions OBJECT-TYPE 2226 SYNTAX ZeroBasedCounter32 2227 MAX-ACCESS read-only 2228 STATUS current 2229 DESCRIPTION 2230 "The number of congestion window reductions made as a result 2231 of anything other than AIMD congestion control algorithms. 2232 Examples of non-multiplicative window reductions include 2233 experimental algorithms such as Vegas [Bra94], and 2234 Congestion Window Validation [RFC2861]. 2236 All window reductions MUST be counted as either 2237 tcpEStatsPerfCongSignals or tcpEStatsStackOtherReductions." 2238 ::= { tcpEStatsStackEntry 35 } 2240 tcpEStatsStackCongOverCount OBJECT-TYPE 2241 SYNTAX ZeroBasedCounter32 2242 MAX-ACCESS read-only 2243 STATUS current 2244 DESCRIPTION 2245 "The number of congestion events which were 'backed out' of 2246 the congestion control state machine such that the 2247 congestion window was restored to a prior value. This can 2248 happen due to the Eiffle algorithm [RFC3522] or other 2249 algorithms which can be used to detect and cancel spurious 2250 invocations of the Fast Retransmit Algorithm. 2252 Although it may be feasible to undo the effects of spurious 2253 invocation of the Fast Retransmit congestion events can not 2254 easily be backed out of tcpEStatsPerfCongSignals and 2255 tcpEStatsPathPreCongSumCwnd, etc." 2256 ::= { tcpEStatsStackEntry 36 } 2258 tcpEStatsStackFastRetran OBJECT-TYPE 2259 SYNTAX ZeroBasedCounter32 2260 MAX-ACCESS read-only 2261 STATUS current 2262 DESCRIPTION 2263 "The number of invocations of the Fast Retransmit algorithm. 2264 See [RFC2581]." 2265 ::= { tcpEStatsStackEntry 37 } 2267 tcpEStatsStackSubsequentTimeouts OBJECT-TYPE 2268 SYNTAX ZeroBasedCounter32 2269 MAX-ACCESS read-only 2270 STATUS current 2271 DESCRIPTION 2272 "The number of times the retransmit timeout has expired 2273 after the RTO has been doubled. See 5.5 of [RFC2988]." 2274 ::= { tcpEStatsStackEntry 38 } 2276 tcpEStatsStackCurTimeoutCount OBJECT-TYPE 2277 SYNTAX Gauge32 2278 MAX-ACCESS read-only 2279 STATUS current 2280 DESCRIPTION 2281 "The current number of times the retransmit timeout has 2282 expired without receiving an acknowledgment for new data. 2283 tcpEStatsStackCurTimeoutCount is reset to zero when new 2284 data is acknowledged and incremented for each invocation of 2285 section 5.5 in [RFC2988]." 2286 ::= { tcpEStatsStackEntry 39 } 2288 tcpEStatsStackAbruptTimeouts OBJECT-TYPE 2289 SYNTAX ZeroBasedCounter32 2290 MAX-ACCESS read-only 2291 STATUS current 2292 DESCRIPTION 2293 "The number of timeouts that occurred without any 2294 immediately preceding duplicate acknowledgments or other 2295 indications of congestion. Abrupt Timeouts indicate that 2296 the path lost an entire window of data or acknowledgments. 2298 Timeouts that are preceded by duplicate acknowledgments or 2299 other congestion signals (e.g. ECN) are not counted as 2300 abrupt, and might have been avoided by a more sophisticated 2301 Fast Retransmit algorithm." 2302 ::= { tcpEStatsStackEntry 40 } 2304 tcpEStatsStackSACKsRcvd OBJECT-TYPE 2305 SYNTAX ZeroBasedCounter32 2306 MAX-ACCESS read-only 2307 STATUS current 2308 DESCRIPTION 2309 "The number of SACK options received. See [RFC2018]." 2310 ::= { tcpEStatsStackEntry 41 } 2312 tcpEStatsStackSACKBlocksRcvd OBJECT-TYPE 2313 SYNTAX ZeroBasedCounter32 2314 MAX-ACCESS read-only 2315 STATUS current 2316 DESCRIPTION 2317 "The number of SACK blocks received (within SACK options)." 2318 ::= { tcpEStatsStackEntry 42 } 2320 tcpEStatsStackSendStall OBJECT-TYPE 2321 SYNTAX ZeroBasedCounter32 2322 MAX-ACCESS read-only 2323 STATUS current 2324 DESCRIPTION 2325 "The number of interface stalls or other sender local 2326 resource limitations that are treated as congestion 2327 signals." 2328 ::= { tcpEStatsStackEntry 43 } 2330 tcpEStatsStackDSACKDups OBJECT-TYPE 2331 SYNTAX ZeroBasedCounter32 2332 MAX-ACCESS read-only 2333 STATUS current 2334 DESCRIPTION 2335 "The number of duplicate segments reported to the local host 2336 by D-SACK blocks. See [RFC2883]." 2337 ::= { tcpEStatsStackEntry 44 } 2339 -- 2340 -- The following optional objects instrument path MTU 2341 -- discovery. 2342 -- 2344 tcpEStatsStackMaxMSS OBJECT-TYPE 2345 SYNTAX Gauge32 2346 MAX-ACCESS read-only 2347 STATUS current 2348 DESCRIPTION 2349 "The maximum MSS, in octets. See [RFC1191]." 2350 ::= { tcpEStatsStackEntry 45 } 2352 tcpEStatsStackMinMSS OBJECT-TYPE 2353 SYNTAX Gauge32 2354 MAX-ACCESS read-only 2355 STATUS current 2356 DESCRIPTION 2357 "The minimum MSS, in octets. See [RFC1191]." 2358 ::= { tcpEStatsStackEntry 46 } 2360 -- 2361 -- The following optional objects instrument the senders 2362 -- buffer usage, including any buffering in the application 2363 -- interface to TCP and the retransmit queue. All 'buffer 2364 -- memory' instruments are assumed to include OS data 2365 -- structure overhead. 2366 -- 2368 tcpEStatsStackCurRetxQueue OBJECT-TYPE 2369 SYNTAX Gauge32 2370 MAX-ACCESS read-only 2371 STATUS current 2372 DESCRIPTION 2373 "The current number of octets of data occupying the 2374 retransmit queue." 2375 ::= { tcpEStatsStackEntry 47 } 2377 tcpEStatsStackMaxRetxQueue OBJECT-TYPE 2378 SYNTAX Gauge32 2379 MAX-ACCESS read-only 2380 STATUS current 2381 DESCRIPTION 2382 "The maximum number of octets of data occupying the 2383 retransmit queue." 2384 ::= { tcpEStatsStackEntry 48 } 2386 tcpEStatsStackCurReasmQueue OBJECT-TYPE 2387 SYNTAX Gauge32 2388 MAX-ACCESS read-only 2389 STATUS current 2390 DESCRIPTION 2391 "The current number of octets of sequence space spanned by 2392 the reassembly queue. This is generally the difference 2393 between rcv.nxt and the sequence number of the right most 2394 edge of the reassembly queue." 2395 ::= { tcpEStatsStackEntry 49 } 2397 tcpEStatsStackMaxReasmQueue OBJECT-TYPE 2398 SYNTAX Gauge32 2399 MAX-ACCESS read-only 2400 STATUS current 2401 DESCRIPTION 2402 "The maximum value of tcpEStatsStackCurReasmQueue" 2403 ::= { tcpEStatsStackEntry 50 } 2405 -- ================================================================ 2406 -- 2407 -- Statistics for diagnosing interactions between 2408 -- applications and TCP. 2409 -- 2411 tcpEStatsAppTable OBJECT-TYPE 2412 SYNTAX SEQUENCE OF TcpEStatsAppEntry 2413 MAX-ACCESS not-accessible 2414 STATUS current 2415 DESCRIPTION 2416 "This table contains objects that are useful for 2417 determining if the application using TCP is 2418 limiting TCP performance" 2419 ::= { tcpEStats 5 } 2421 tcpEStatsAppEntry OBJECT-TYPE 2422 SYNTAX TcpEStatsAppEntry 2423 MAX-ACCESS not-accessible 2424 STATUS current 2425 DESCRIPTION 2426 "Each entry in this table has information about the 2427 characteristics of each active and recently closed tcp 2428 connection." 2429 INDEX { tcpEStatsConnectIndex } 2430 ::= { tcpEStatsAppTable 1 } 2432 TcpEStatsAppEntry ::= SEQUENCE { 2434 tcpEStatsAppSndUna Counter32, 2435 tcpEStatsAppSndNxt Integer32, 2436 tcpEStatsAppSndMax Counter32, 2437 tcpEStatsAppThruOctetsAcked ZeroBasedCounter32, 2438 tcpEStatsAppHCThruOctetsAcked ZeroBasedCounter64, 2439 tcpEStatsAppRcvNxt Counter32, 2440 tcpEStatsAppThruOctetsReceived ZeroBasedCounter32, 2441 tcpEStatsAppHCThruOctetsReceived ZeroBasedCounter64, 2442 tcpEStatsAppCurAppWQueue Gauge32, 2443 tcpEStatsAppMaxAppWQueue Gauge32, 2444 tcpEStatsAppCurAppRQueue Gauge32, 2445 tcpEStatsAppMaxAppRQueue Gauge32 2446 } 2448 -- 2449 -- The following objects provide throughput statistics for the 2450 -- connection including sequence numbers and elapsed 2451 -- application data. These permit direct observation of the 2452 -- applications progress, in terms of elapsed data delivery 2453 -- and elapsed time. See [RFC793]. 2454 -- 2456 tcpEStatsAppSndUna OBJECT-TYPE 2457 SYNTAX Counter32 2458 MAX-ACCESS read-only 2459 STATUS current 2460 DESCRIPTION 2461 "The value of SND.UNA, the oldest unacknowledged sequence 2462 number." 2463 ::= { tcpEStatsAppEntry 1 } 2465 tcpEStatsAppSndNxt OBJECT-TYPE 2466 SYNTAX Integer32 2467 MAX-ACCESS read-only 2468 STATUS current 2469 DESCRIPTION 2470 "The value of SND.NXT, the next sequence number to be sent. 2471 Note that tcpEStatsAppSndNxt is not a monotonic (and thus 2472 not a counter) because TCP sometimes retransmits lost data 2473 by pulling tcpEStatsAppSndNxt back to the missing data." 2474 ::= { tcpEStatsAppEntry 2 } 2476 tcpEStatsAppSndMax OBJECT-TYPE 2477 SYNTAX Counter32 2478 MAX-ACCESS read-only 2479 STATUS current 2480 DESCRIPTION 2481 "The farthest forward (right most or largest) SND.NXT value. 2482 Note that this will be equal to tcpEStatsAppSndNxt except 2483 when tcpEStatsAppSndNxt is pulled back during recovery." 2484 ::= { tcpEStatsAppEntry 3 } 2486 tcpEStatsAppThruOctetsAcked OBJECT-TYPE 2487 SYNTAX ZeroBasedCounter32 2488 MAX-ACCESS read-only 2489 STATUS current 2490 DESCRIPTION 2491 "The number of octets for which cumulative acknowledgments 2492 have been received. Note that this will be the sum of 2493 changes to tcpEStatsAppSndUna." 2494 ::= { tcpEStatsAppEntry 4 } 2496 tcpEStatsAppHCThruOctetsAcked OBJECT-TYPE 2497 SYNTAX ZeroBasedCounter64 2498 MAX-ACCESS read-only 2499 STATUS current 2500 DESCRIPTION 2501 "The number of octets for which cumulative acknowledgments 2502 have been received, on systems that can receive more than 2503 10 million bits per second. Note that this will be the sum 2504 of changes in tcpEStatsAppSndUna." 2505 ::= { tcpEStatsAppEntry 5 } 2507 tcpEStatsAppRcvNxt OBJECT-TYPE 2508 SYNTAX Counter32 2509 MAX-ACCESS read-only 2510 STATUS current 2511 DESCRIPTION 2512 "The value of RCV.NXT from [RFC793]. The next sequence 2513 number expected on an incoming segment, and the left or 2514 lower edge of the receive window." 2515 ::= { tcpEStatsAppEntry 6 } 2517 tcpEStatsAppThruOctetsReceived OBJECT-TYPE 2518 SYNTAX ZeroBasedCounter32 2519 MAX-ACCESS read-only 2520 STATUS current 2521 DESCRIPTION 2522 "The number of octets for which cumulative acknowledgments 2523 have been sent. Note that this will be the sum of changes 2524 to tcpEStatsAppRcvNxt." 2525 ::= { tcpEStatsAppEntry 7 } 2527 tcpEStatsAppHCThruOctetsReceived OBJECT-TYPE 2528 SYNTAX ZeroBasedCounter64 2529 MAX-ACCESS read-only 2530 STATUS current 2531 DESCRIPTION 2532 "The number of octets for which cumulative acknowledgments 2533 have been sent, on systems that can transmit more than 10 2534 million bits per second. Note that this will be the sum of 2535 changes in tcpEStatsAppRcvNxt." 2536 ::= { tcpEStatsAppEntry 8 } 2538 tcpEStatsAppCurAppWQueue OBJECT-TYPE 2539 SYNTAX Gauge32 2540 MAX-ACCESS read-only 2541 STATUS current 2542 DESCRIPTION 2543 "The current number of octets of application data buffered 2544 by TCP, pending first transmission, i.e. to the left of 2545 SND.NXT or SndMax. This data will generally be transmitted 2546 (and SND.NXT advanced to the left) as soon as there is 2547 available congestion window (cwnd) or receiver window 2548 (rwin). This is the amount of data readily available for 2549 transmission, without scheduling the application. TCP 2550 performance may suffer if there is insufficient queued 2551 write data." 2552 ::= { tcpEStatsAppEntry 21 } 2554 tcpEStatsAppMaxAppWQueue OBJECT-TYPE 2555 SYNTAX Gauge32 2556 MAX-ACCESS read-only 2557 STATUS current 2558 DESCRIPTION 2559 "The maximum number of octets of application data buffered 2560 by TCP, pending first transmission. This is the maximum 2561 value of tcpEStatsAppCurAppWQueue. This pair of objects can 2562 be used to determine if insufficient queued data is steady 2563 state (suggesting insufficient queue space) or transient 2564 (suggesting insufficient application performance or 2565 excessive CPU load or scheduler latency)." 2566 ::= { tcpEStatsAppEntry 22 } 2568 tcpEStatsAppCurAppRQueue OBJECT-TYPE 2569 SYNTAX Gauge32 2570 MAX-ACCESS read-only 2571 STATUS current 2572 DESCRIPTION 2573 "The current number of octets of application data that has 2574 been acknowledged by TCP but not yet delivered to the 2575 application." 2576 ::= { tcpEStatsAppEntry 23 } 2578 tcpEStatsAppMaxAppRQueue OBJECT-TYPE 2579 SYNTAX Gauge32 2580 MAX-ACCESS read-only 2581 STATUS current 2582 DESCRIPTION 2583 "The maximum number of octets of application data that has 2584 been acknowledged by TCP but not yet delivered to the 2585 application." 2586 ::= { tcpEStatsAppEntry 24 } 2588 -- ================================================================ 2589 -- 2590 -- Controls for Tuning TCP 2591 -- 2593 tcpEStatsTuneTable OBJECT-TYPE 2594 SYNTAX SEQUENCE OF TcpEStatsTuneEntry 2595 MAX-ACCESS not-accessible 2596 STATUS current 2597 DESCRIPTION 2598 "This table contains per connection controls that can 2599 be used to work around a number of common problems that 2600 plague TCP over some paths. All can be characterized as 2601 limiting the growth of the congestion window so as to 2602 prevent TCP from overwhelming some component in the path." 2603 ::= { tcpEStats 6 } 2605 tcpEStatsTuneEntry OBJECT-TYPE 2606 SYNTAX TcpEStatsTuneEntry 2607 MAX-ACCESS not-accessible 2608 STATUS current 2609 DESCRIPTION 2610 "Each entry in this table is a control that can be used to 2611 place limits on each active tcp connection." 2612 INDEX { tcpEStatsConnectIndex } 2613 ::= { tcpEStatsTuneTable 1 } 2615 TcpEStatsTuneEntry ::= SEQUENCE { 2617 tcpEStatsTuneLimCwnd Gauge32, 2618 tcpEStatsTuneLimSsthresh Gauge32, 2619 tcpEStatsTuneLimRwin Gauge32 2620 } 2622 tcpEStatsTuneLimCwnd OBJECT-TYPE 2623 SYNTAX Gauge32 2624 MAX-ACCESS read-write 2625 STATUS current 2626 DESCRIPTION 2627 "A control to set the maximum congestion window which may be 2628 used, in octets." 2629 ::= { tcpEStatsTuneEntry 1 } 2631 tcpEStatsTuneLimSsthresh OBJECT-TYPE 2632 SYNTAX Gauge32 2633 MAX-ACCESS read-write 2634 STATUS current 2635 DESCRIPTION 2636 "A control to limit the maximum queue space (in octets) that 2637 this TCP connection is likely to occupy during slowstart. 2639 It can be implemented with the algorithm described in 2640 RFC3742 by setting the max_ssthresh parameter to twice 2641 tcpEStatsTuneLimSsthresh. 2643 This algorithm can be used to overcome some TCP performance 2644 problems over network paths that do not have sufficient 2645 buffering to withstand the bursts normally present during 2646 slowstart." 2647 ::= { tcpEStatsTuneEntry 2 } 2649 tcpEStatsTuneLimRwin OBJECT-TYPE 2650 SYNTAX Gauge32 2651 MAX-ACCESS read-write 2652 STATUS current 2653 DESCRIPTION 2654 "A control to set the maximum window advertisement which may 2655 be sent, in octets." 2656 ::= { tcpEStatsTuneEntry 3 } 2658 -- ================================================================ 2659 -- 2660 -- TCP Extended Statistics Notifications Group 2661 -- 2663 tcpEStatsEstablishNotification NOTIFICATION-TYPE 2664 OBJECTS { 2665 tcpEStatsConnectIndex 2666 } 2667 STATUS current 2668 DESCRIPTION 2669 "The indicated connection has been accepted 2670 (or alternatively entered the established state)." 2671 ::= { tcpEStatsNotifications 1 } 2673 tcpEStatsCloseNotification NOTIFICATION-TYPE 2674 OBJECTS { 2675 tcpEStatsConnectIndex 2676 } 2677 STATUS current 2678 DESCRIPTION 2679 "The indicated connection has left the 2680 established state" 2681 ::= { tcpEStatsNotifications 2 } 2683 -- ================================================================ 2684 -- 2685 -- Conformance Definitions 2686 -- 2688 tcpEStatsCompliances OBJECT IDENTIFIER 2689 ::= { tcpEStatsConformance 1 } 2690 tcpEStatsGroups OBJECT IDENTIFIER 2691 ::= { tcpEStatsConformance 2 } 2693 -- 2694 -- Compliance Statements 2695 -- 2697 tcpEStatsCompliance MODULE-COMPLIANCE 2698 STATUS current 2699 DESCRIPTION 2700 "Compliance statement for all systems that implement TCP 2701 extended statistics." 2702 MODULE -- this module 2703 MANDATORY-GROUPS { 2704 tcpEStatsListenerGroup, 2705 tcpEStatsConnectIdGroup, 2706 tcpEStatsPerfGroup, 2707 tcpEStatsPathGroup, 2708 tcpEStatsStackGroup, 2709 tcpEStatsAppGroup 2710 } 2711 GROUP tcpEStatsListenerHCGroup 2712 DESCRIPTION 2713 "This group is mandatory for all systems that can 2714 wrap the values of the 32-bit counters in 2715 tcpEStatsListenerGroup in less than one hour." 2717 GROUP tcpEStatsPerfOptionalGroup 2718 DESCRIPTION 2719 "This group is optional for all systems." 2721 GROUP tcpEStatsPerfHCGroup 2722 DESCRIPTION 2723 "This group is mandatory for systems that can 2724 wrap the values of the 32-bit counters in 2725 tcpEStatsPerfGroup in less than one hour. 2727 Note that any system that can attain 10 Mb/s 2728 can potentially wrap 32-Bit Octet counters in 2729 under one hour." 2731 GROUP tcpEStatsPathOptionalGroup 2732 DESCRIPTION 2733 "This group is optional for all systems." 2735 GROUP tcpEStatsPathHCGroup 2736 DESCRIPTION 2737 "This group is mandatory for systems that can 2738 wrap the values of the 32-bit counters in 2739 tcpEStatsPathGroup in less than one hour. 2741 Note that any system that can attain 10 Mb/s 2742 can potentially wrap 32-Bit Octet counters in 2743 under one hour." 2745 GROUP tcpEStatsStackOptionalGroup 2746 DESCRIPTION 2747 "This group is optional for all systems." 2749 GROUP tcpEStatsAppHCGroup 2750 DESCRIPTION 2751 "This group is mandatory for systems that can 2752 wrap the values of the 32-bit counters in 2753 tcpEStatsStackGroup in less than one hour. 2755 Note that any system that can attain 10 Mb/s 2756 can potentially wrap 32-Bit Octet counters in 2757 under one hour." 2759 GROUP tcpEStatsAppOptionalGroup 2760 DESCRIPTION 2761 "This group is optional for all systems." 2763 GROUP tcpEStatsTuneOptionalGroup 2764 DESCRIPTION 2765 "This group is optional for all systems." 2767 GROUP tcpEStatsNotificationsGroup 2768 DESCRIPTION 2769 "This group is optional for all systems." 2771 GROUP tcpEStatsNotificationsCtlGroup 2772 DESCRIPTION 2773 "This group is mandatory for systems that include the 2774 tcpEStatsNotificationGroup." 2776 OBJECT tcpEStatsControlNotify 2777 MIN-ACCESS read-only 2778 DESCRIPTION 2779 "Write access is not required." 2781 ::= { tcpEStatsCompliances 1 } 2783 -- ================================================================ 2784 -- 2785 -- Units of Conformance 2786 -- 2787 tcpEStatsListenerGroup OBJECT-GROUP 2788 OBJECTS { 2789 tcpEStatsListenerTableLastChange, 2790 tcpEStatsListenerStartTime, 2791 tcpEStatsListenerSynRcvd, 2792 tcpEStatsListenerInitial, 2793 tcpEStatsListenerEstablished, 2794 tcpEStatsListenerAccepted, 2795 tcpEStatsListenerExceedBacklog, 2796 tcpEStatsListenerCurrConns, 2797 tcpEStatsListenerMaxBacklog, 2798 tcpEStatsListenerCurBacklog, 2799 tcpEStatsListenerCurEstabBacklog 2800 } 2801 STATUS current 2802 DESCRIPTION 2803 "The tcpEStatsListener group includes objects that 2804 provide valuable statistics and debugging 2805 information for TCP Listeners." 2806 ::= { tcpEStatsGroups 1 } 2808 tcpEStatsListenerHCGroup OBJECT-GROUP 2809 OBJECTS { 2810 tcpEStatsListenerHCSynRcvd, 2811 tcpEStatsListenerHCInitial, 2812 tcpEStatsListenerHCEstablished, 2813 tcpEStatsListenerHCAccepted, 2814 tcpEStatsListenerHCExceedBacklog 2815 } 2816 STATUS current 2817 DESCRIPTION 2818 "The tcpEStatsListenerHC group includes 64 bit 2819 counters in tcpEStatsListenerTable." 2820 ::= { tcpEStatsGroups 2 } 2822 tcpEStatsConnectIdGroup OBJECT-GROUP 2823 OBJECTS { 2824 tcpEStatsConnTableLatency, 2825 tcpEStatsConnectIndex 2826 } 2827 STATUS current 2828 DESCRIPTION 2829 "The tcpEStatsConnectId group includes objects that 2830 identify TCP connections and control how long TCP 2831 connection entries are retained in the tables." 2832 ::= { tcpEStatsGroups 3 } 2834 tcpEStatsPerfGroup OBJECT-GROUP 2835 OBJECTS { 2836 tcpEStatsPerfSegsOut, tcpEStatsPerfDataSegsOut, 2837 tcpEStatsPerfDataOctetsOut, 2838 tcpEStatsPerfSegsRetrans, 2839 tcpEStatsPerfOctetsRetrans, tcpEStatsPerfSegsIn, 2840 tcpEStatsPerfDataSegsIn, 2841 tcpEStatsPerfDataOctetsIn, 2842 tcpEStatsPerfElapsedSecs, 2843 tcpEStatsPerfElapsedMicroSecs, 2844 tcpEStatsPerfStartTimeStamp, tcpEStatsPerfCurMSS, 2845 tcpEStatsPerfPipeSize, tcpEStatsPerfMaxPipeSize, 2846 tcpEStatsPerfSmoothedRTT, tcpEStatsPerfCurRTO, 2847 tcpEStatsPerfCongSignals, tcpEStatsPerfCurCwnd, 2848 tcpEStatsPerfCurSsthresh, tcpEStatsPerfTimeouts, 2849 tcpEStatsPerfCurRwinSent, 2850 tcpEStatsPerfMaxRwinSent, 2851 tcpEStatsPerfZeroRwinSent, 2852 tcpEStatsPerfCurRwinRcvd, 2853 tcpEStatsPerfMaxRwinRcvd, 2854 tcpEStatsPerfZeroRwinRcvd 2855 } 2856 STATUS current 2857 DESCRIPTION 2858 "The tcpEStatsPerf group includes those objects that 2859 provide basic performance data for a TCP connection." 2860 ::= { tcpEStatsGroups 4 } 2862 tcpEStatsPerfOptionalGroup OBJECT-GROUP 2863 OBJECTS { 2864 tcpEStatsPerfSndLimTransRwin, 2865 tcpEStatsPerfSndLimTransCwnd, 2866 tcpEStatsPerfSndLimTransSnd, 2867 tcpEStatsPerfSndLimTimeRwin, 2868 tcpEStatsPerfSndLimTimeCwnd, 2869 tcpEStatsPerfSndLimTimeSnd 2870 } 2871 STATUS current 2872 DESCRIPTION 2873 "The tcpEStatsPerf group includes those objects that 2874 provide basic performance data for a TCP connection." 2875 ::= { tcpEStatsGroups 5 } 2877 tcpEStatsPerfHCGroup OBJECT-GROUP 2878 OBJECTS { 2879 tcpEStatsPerfHCDataOctetsOut, 2880 tcpEStatsPerfHCDataOctetsIn 2881 } 2882 STATUS current 2883 DESCRIPTION 2884 "The tcpEStatsPerfHC group includes 64 bit 2885 counters in the tcpEStatsPerfTable." 2886 ::= { tcpEStatsGroups 6 } 2888 tcpEStatsPathGroup OBJECT-GROUP 2889 OBJECTS { 2890 tcpEStatsControlPath, 2891 tcpEStatsPathRetranThresh, 2892 tcpEStatsPathNonRecovDAEpisodes, 2893 tcpEStatsPathSumOctetsReordered, 2894 tcpEStatsPathNonRecovDA 2895 } 2896 STATUS current 2897 DESCRIPTION 2898 "The tcpEStatsPath group includes objects that 2899 control the creation of the tcpEStatsPathTable, 2900 and provide information about the path 2901 for each TCP connection." 2902 ::= { tcpEStatsGroups 7 } 2904 tcpEStatsPathOptionalGroup OBJECT-GROUP 2905 OBJECTS { 2906 tcpEStatsPathSampleRTT, tcpEStatsPathRTTVar, 2907 tcpEStatsPathMaxRTT, tcpEStatsPathMinRTT, 2908 tcpEStatsPathSumRTT, tcpEStatsPathCountRTT, 2909 tcpEStatsPathMaxRTO, tcpEStatsPathMinRTO, 2910 tcpEStatsPathIpTtl, tcpEStatsPathIpTosIn, 2911 tcpEStatsPathIpTosOut, 2912 tcpEStatsPathPreCongSumCwnd, 2913 tcpEStatsPathPreCongSumRTT, 2914 tcpEStatsPathPostCongSumRTT, 2915 tcpEStatsPathPostCongCountRTT, 2916 tcpEStatsPathECNsignals, tcpEStatsPathECERcvd, 2917 tcpEStatsPathQuenchRcvd, 2918 tcpEStatsPathDupAckEpisodes, 2919 tcpEStatsPathDupAcksOut, tcpEStatsPathCERcvd, 2920 tcpEStatsPathECNSent, tcpEStatsPathECNNonceRcvd 2921 } 2922 STATUS current 2923 DESCRIPTION 2924 "The tcpEStatsPath group includes objects that 2925 provide additional information about the path 2926 for each TCP connection." 2927 ::= { tcpEStatsGroups 8 } 2929 tcpEStatsPathHCGroup OBJECT-GROUP 2930 OBJECTS { 2931 tcpEStatsPathHCSumRTT 2933 } 2934 STATUS current 2935 DESCRIPTION 2936 "The tcpEStatsPathHC group includes 64 bit 2937 counters in the tcpEStatsPathTable." 2938 ::= { tcpEStatsGroups 9 } 2940 tcpEStatsStackGroup OBJECT-GROUP 2941 OBJECTS { 2942 tcpEStatsControlStack, 2943 tcpEStatsStackState, tcpEStatsStackSACK, 2944 tcpEStatsStackTimeStamps, tcpEStatsStackECN, 2945 tcpEStatsStackNagle, tcpEStatsStackSndWindScale, 2946 tcpEStatsStackRcvWindScale, 2947 tcpEStatsStackActiveOpen, tcpEStatsStackMaxSsCwnd, 2948 tcpEStatsStackMaxCaCwnd, 2949 tcpEStatsStackMaxSsthresh, 2950 tcpEStatsStackMinSsthresh, 2951 tcpEStatsStackInRecovery, tcpEStatsStackDupAcksIn, 2952 tcpEStatsStackSpuriousFrDetected, 2953 tcpEStatsStackSpuriousRtoDetected 2954 } 2955 STATUS current 2956 DESCRIPTION 2957 "The tcpEStatsConnState group includes objects that 2958 control the creation of the tcpEStatsStackTable, 2959 and provide information about the operation of 2960 algorithms used within TCP." 2961 ::= { tcpEStatsGroups 10 } 2963 tcpEStatsStackOptionalGroup OBJECT-GROUP 2964 OBJECTS { 2965 tcpEStatsStackMSSSent, tcpEStatsStackMSSRcvd, 2966 tcpEStatsStackWinScaleSent, 2967 tcpEStatsStackWinScaleRcvd, 2968 tcpEStatsStackSACKokSent, 2969 tcpEStatsStackSACKokRcvd, 2970 tcpEStatsStackTimeStampSent, 2971 tcpEStatsStackTimeStampRcvd, 2972 tcpEStatsStackSoftErrors, 2973 tcpEStatsStackSoftErrorReason, 2974 tcpEStatsStackSndInitial, 2975 tcpEStatsStackRecInitial, tcpEStatsStackSlowStart, 2976 tcpEStatsStackCongAvoid, 2977 tcpEStatsStackOtherReductions, 2978 tcpEStatsStackCongOverCount, 2979 tcpEStatsStackFastRetran, 2980 tcpEStatsStackSubsequentTimeouts, 2981 tcpEStatsStackCurTimeoutCount, 2982 tcpEStatsStackAbruptTimeouts, 2983 tcpEStatsStackSACKsRcvd, 2984 tcpEStatsStackSACKBlocksRcvd, 2985 tcpEStatsStackSendStall, tcpEStatsStackDSACKDups, 2986 tcpEStatsStackMaxMSS, tcpEStatsStackMinMSS, 2987 tcpEStatsStackCurRetxQueue, 2988 tcpEStatsStackMaxRetxQueue, 2989 tcpEStatsStackCurReasmQueue, 2990 tcpEStatsStackMaxReasmQueue 2991 } 2992 STATUS current 2993 DESCRIPTION 2994 "The tcpEStatsConnState group includes objects that 2995 provide additional information about the operation of 2996 algorithms used within TCP." 2997 ::= { tcpEStatsGroups 11 } 2999 tcpEStatsAppGroup OBJECT-GROUP 3000 OBJECTS { 3001 tcpEStatsControlApp, 3002 tcpEStatsAppSndUna, tcpEStatsAppSndNxt, 3003 tcpEStatsAppSndMax, tcpEStatsAppThruOctetsAcked, 3004 tcpEStatsAppRcvNxt, 3005 tcpEStatsAppThruOctetsReceived 3006 } 3007 STATUS current 3008 DESCRIPTION 3009 "The tcpEStatsConnState group includes objects that 3010 control the creation of the tcpEStatsAppTable, 3011 and provide information about the operation of 3012 algorithms used within TCP." 3013 ::= { tcpEStatsGroups 12 } 3015 tcpEStatsAppHCGroup OBJECT-GROUP 3016 OBJECTS { 3017 tcpEStatsAppHCThruOctetsAcked, 3018 tcpEStatsAppHCThruOctetsReceived 3019 } 3020 STATUS current 3021 DESCRIPTION 3022 "The tcpEStatsStackHC group includes 64 bit 3023 counters in the tcpEStatsStackTable." 3024 ::= { tcpEStatsGroups 13 } 3026 tcpEStatsAppOptionalGroup OBJECT-GROUP 3027 OBJECTS { 3028 tcpEStatsAppCurAppWQueue, 3029 tcpEStatsAppMaxAppWQueue, 3030 tcpEStatsAppCurAppRQueue, 3031 tcpEStatsAppMaxAppRQueue 3032 } 3033 STATUS current 3034 DESCRIPTION 3035 "The tcpEStatsConnState group includes objects that 3036 provide additional information about how applications 3037 are interacting with each TCP connection." 3038 ::= { tcpEStatsGroups 14 } 3040 tcpEStatsTuneOptionalGroup OBJECT-GROUP 3041 OBJECTS { 3042 tcpEStatsControlTune, 3043 tcpEStatsTuneLimCwnd, tcpEStatsTuneLimSsthresh, 3044 tcpEStatsTuneLimRwin 3045 } 3046 STATUS current 3047 DESCRIPTION 3048 "The tcpEStatsConnState group includes objects that 3049 control the creation of the tcpEStatsConnectionTable, 3050 which can be used to set tuning parameters 3051 for each TCP connection." 3052 ::= { tcpEStatsGroups 15 } 3054 tcpEStatsNotificationsGroup NOTIFICATION-GROUP 3055 NOTIFICATIONS { 3056 tcpEStatsEstablishNotification, 3057 tcpEStatsCloseNotification 3058 } 3059 STATUS current 3060 DESCRIPTION 3061 "Notifications sent by a TCP extended statistics agent." 3062 ::= { tcpEStatsGroups 16 } 3064 tcpEStatsNotificationsCtlGroup OBJECT-GROUP 3065 OBJECTS { 3066 tcpEStatsControlNotify 3067 } 3068 STATUS current 3069 DESCRIPTION 3070 "The tcpEStatsNotificationsCtl group includes the 3071 object that controls the creation of the events 3072 in the tcpEStatsNotificationsGroup." 3073 ::= { tcpEStatsGroups 17 } 3075 END 3077 5. Normative References 3079 [RFC2574] U. Blumenthal, B. Wijnen, "User-based Security Model (USM) for 3080 version 3 of the Simple Network Management Protocol (SNMPv3)", 3081 RFC2574, April 1999. 3083 [RFC2575] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access 3084 Control Model (VACM) for the Simple Network Management Protocol 3085 (SNMP)", RFC 2575, April 1999. 3087 [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., 3088 Rose, M., and S. Waldbusser, "Structure of Management Information 3089 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 3091 [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., 3092 Rose, M., and S. Waldbusser, "Textual Conventions for SMIv2", STD 3093 58, RFC 2579, April 1999. 3095 [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., 3096 Rose, M., and S. Waldbusser, "Conformance Statements for SMIv2", 3097 STD 58, RFC 2580, April 1999. 3099 [RFC4022] Raghunarayan, R., "Management Information Base for the Trans- 3100 mission Control Protocol (TCP)", RFC 4022, March 2005. 3102 6. Informative References 3104 [Mat97] M. Mathis, J. Semke, J. Mahdavi, T. Ott, "The Macroscopic Behav- 3105 ior of the TCP Congestion Avoidance Algorithm", Computer Communica- 3106 tion Review, volume 27, number3, July 1997. 3108 [Bra94] Brakmo, L., O'Malley, S., "TCP Vegas, New Techniques for Conges- 3109 tion Detection and Avoidance," SIGCOMM'94, London, pp 24-35, Octo- 3110 ber 1994. 3112 [POSIX] Portable Operating System Interface, IEEE Std 1003.1 3113 [Pad98] Padhye, J., Firoiu, V., Towsley, D., Kurose, J., "Modeling TCP 3114 Throughput: A Simple Model and its Empirical Validation", SIG- 3115 COMM'98 3117 [Web100] Mathis, M., J. Heffner, R. Reddy, "Web100: Extended TCP Instru- 3118 mentation for Research, Education and Diagnosis", ACM Computer Com- 3119 munications Review, Vol 33, Num 3, July 2003. 3121 [RFC793] J. Postel Ed., "Transmission Control Protocol", Sep 1981. 3123 [RFC896] J. Nagle, "Congestion control in IP/TCP internetworks", 3124 Jan-06-1984. 3126 [RFC1122] R. Braden, Ed, "Requirements for Internet Hosts - Communica- 3127 tion Layers", October 1989. 3129 [RFC1191] J.C. Mogul, S.E. Deering, "Path MTU discovery", Nov-01-1990. 3131 [RFC1323] V. Jacobson, R. Braden, D. Borman, "TCP Extensions for High 3132 Performance", May 1992. 3134 [RFC2018] M. Mathis, J. Mahdavi, S. Floyd, A. Romanow, "TCP Selective 3135 Acknowledgment Options", October 1996. 3137 [RFC2021] S. Waldbusser, "Remote Network Monitoring Management Informa- 3138 tion Base Version 2 using SMIv2", January 1997. 3140 [RFC2474] K. Nichols, S. Blake, F. Baker, D. Black, "Definition of the 3141 Differentiated Services Field (DS Field) in the IPv4 and IPv6 Head- 3142 ers", December 1998. 3144 [RFC2856] A. Bierman, K. McCloghrie, R. Presuhn, "Textual Conventions 3145 for Additional High Capacity Data Types", June 2000. 3147 [RFC2861] M. Handley, J. Padhye, S. Floyd, "TCP Congestion Window Vali- 3148 dation", June 2000. 3150 [RFC2883] S. Floyd, J. Mahdavi, M. Mathis, M. Podolsky, "An Extension to 3151 the Selective Acknowledgment (SACK) Option for TCP", July 2000. 3153 [RFC3168] K. Ramakrishnan, S. Floyd, D. Black, "The Addition of Explicit 3154 Congestion Notification (ECN) to IP", September 2001. 3156 [RFC3260] D. Grossman, "New Terminology and Clarifications for Diff- 3157 serv", April 2002. 3159 [RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction 3160 and Applicability Statements for Internet-Standard Management 3161 Framework", RFC 3410, December 2002. 3163 [RFC3522] R. Ludwig, M. Meyer, "The Eifel Detection Algorithm for TCP", 3164 April 2003. 3166 [RFC2581] M. Allman, V. Paxson, W. Stevens, "TCP Congestion Control", 3167 April 1999. 3169 [RFC2988] V. Paxson, M. Allman, "Computing TCP's Retransmission Timer", 3170 November 2000. 3172 [RFC3291] M. Daniele, B. Haberman, S. Routhier, J. Schoenwaelder, "Tex- 3173 tual Conventions for Internet Network Addresses", May 2002. 3175 [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, 3176 "Textual Conventions for Internet Network Addresses", RFC 3291, May 3177 2002. 3179 7. Security Considerations 3181 There are a number of management objects defined in this MIB that 3182 have a MAX-ACCESS clause of read-write and/or read-create. Such 3183 objects may be considered sensitive or vulnerable in some network 3184 environments. The support for SET operations in a non-secure 3185 environment without proper protection can have a negative effect on 3186 network operations. 3188 There are a number of managed objects in this MIB that may contain 3189 sensitive information. These are: 3191 tcpEStatsConnectRemAddress tcpEStatsAppSndUna tcpEStatsAppSndNxt 3192 tcpEStatsAppSndMax tcpEStatsStackSndInitial tcpEStatsAppRcvNxt 3193 tcpEStatsStackRecInitial 3195 It is thus important to control even GET access to these objects and 3196 possibly to even encrypt the values of these objects when sending 3197 them over the network via SNMP. Not all versions of SNMP provide 3198 features for such a secure environment. SNMPv1 by itself is not a 3199 secure environment. Even if the network itself is secure (for 3200 example by using IPSec) there is no control as to who on the secure 3201 network is allowed to access and GET/SET (read/change/create/delete) 3202 the objects in this MIB. 3204 It is recommended that implementers consider using the security 3205 features as provided by the SNMPv3 framework. Specifically, the use 3206 of the User-based Security Model RFC 2574 [RFC2574] and the View- 3207 based Access Control Model RFC 2575 [RFC2575] is recommended. 3209 It is then a customer/user responsibility to ensure that the SNMP 3210 entity giving access to an instance of this MIB, is properly 3211 configured to only give access to the objects to those principals 3212 (users) that have legitimate rights to indeed GET or SET 3213 (change/create/delete) them. 3215 8. Contributors 3217 The following people contributed text that was incorporated into this 3218 document: 3220 Jon Saperia converted Web100 internal 3221 documentation into a true MIB. Jon can be reached at JDS Consulting, 3222 Inc, 617-744-1079. 3224 Some of the objects in this document were moved from an early draft 3225 of the TCP-MIB, by Bill Fenner et al. 3227 Some of the object descriptions are based on an earlier unpublished 3228 document by Jeff Semke. 3230 9. Acknowledgments 3232 This document is a product of the Web100 project (www.web100.org), a 3233 joint effort of the Pittsburgh Supercomputing Center (www.psc.edu), 3234 National Center for Atmospheric Research (www.ncar.ucar.edu) and 3235 National Center for Supercomputer Applications (www.ncsa.edu). 3237 It would not have been possible without all of the hard work by the 3238 the entire Web100 team, especially Peter O'Neal who read and reread 3239 the entire document several times; Janet Brown and Marla Meehl, who 3240 patiently managed the unmanageable. The Web100 project would not 3241 have been successful without all of the early adopters who suffered 3242 our bugs to provide many good suggestions and insights into their 3243 needs for TCP instrumentation. 3245 Web100 was supported by the National Science Foundation under Grant 3246 No. 0083285 and a research grant from Cisco Systems. 3248 We would also like to thank all of the people who built experimental 3249 implementations of this MIB from early versions of the Internet Draft 3250 and provided us with constructive feedback: Glenn Turner at AARnet, 3251 Kristine Adamson at IBM and Xinyan Zan at Microsoft. 3253 10. Authors' Addresses 3255 Matt Mathis 3256 John Heffner 3257 Pittsburgh Supercomputing Center 3258 4400 Fifth Ave 3259 Pittsburgh, PA 15216 3260 Phone: 412-268-4960 3261 Email: mathis@web100.org, rreddy@psc.edu, jheffner@psc.edu 3263 Rajiv Raghunarayan 3264 Cisco Systems Inc. 3265 San Jose, CA 95134 3266 Phone: 408 853 9612 3267 Email: raraghun@cisco.com 3269 11. Intellectual Property 3271 The IETF takes no position regarding the validity or scope of any 3272 Intellectual Property Rights or other rights that might be claimed 3273 to pertain to the implementation or use of the technology 3274 described in this document or the extent to which any license 3275 under such rights might or might not be available; nor does it 3276 represent that it has made any independent effort to identify any 3277 such rights. Information on the procedures with respect to rights 3278 in RFC documents can be found in BCP 78 and BCP 79. 3280 Copies of IPR disclosures made to the IETF Secretariat and any 3281 assurances of licenses to be made available, or the result of an 3282 attempt made to obtain a general license or permission for the use 3283 of such proprietary rights by implementers or users of this 3284 specification can be obtained from the IETF on-line IPR repository 3285 at http://www.ietf.org/ipr. 3287 The IETF invites any interested party to bring to its attention 3288 any copyrights, patents or patent applications, or other 3289 proprietary rights that may cover technology that may be required 3290 to implement this standard. Please address the information to the 3291 IETF at ietf-ipr@ietf.org. 3293 12. Disclaimer of Validity 3295 This document and the information contained herein are provided 3296 on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE 3297 REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND 3298 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, 3299 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT 3300 THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR 3301 ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A 3302 PARTICULAR PURPOSE. 3304 13. Copyright Statement 3306 Copyright (C) The Internet Society (2005). 3308 This document is subject to the rights, licenses and restrictions 3309 contained in BCP 78, and except as set forth therein, the authors 3310 retain all their rights.