idnits 2.17.1 draft-ietf-tsvwg-tcp-mib-extension-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by 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 49 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 50 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.) ** There are 11 instances of too long lines in the document, the longest one being 5 characters in excess of 72. == There are 1 instance of lines with non-RFC2606-compliant FQDNs in the document. ** 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 1222: '...indow reductions MUST be counted as ei...' RFC 2119 keyword, line 1474: '... MUST be updated each time C...' RFC 2119 keyword, line 1484: '...on signals. This MUST be updated each ...' Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 2312 has weird spacing: '...imed to per-...' == Line 2343 has weird spacing: '...for the purpo...' -- 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 739377 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: 'RFC2012' is defined on line 2214, 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 2012 (Obsoleted by RFC 4022) == Outdated reference: A later version (-01) exists of draft-ietf-ipngwg-rfc2012-update-00 Summary: 7 errors (**), 0 flaws (~~), 9 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet-Draft Matt Mathis 3 John Heffner 4 Raghu Reddy 5 Pittsburgh Supercomputing Center 6 Rajiv Raghunarayan 7 Cisco Systems 8 J. Saperia 9 JDS Consulting, Inc 11 TCP Extended Statistics MIB 12 draft-ietf-tsvwg-tcp-mib-extension-03.txt 13 Sun Mar 2 13:31:22 EST 2003 15 Status of this Memo 17 This document is an Internet-Draft and is in full conformance with 18 all provisions of Section 10 of RFC2026. 20 Internet-Drafts are working documents of the Internet Engineering 21 Task Force (IETF), its areas, and its working groups. Note that other 22 groups may also distribute working documents as Internet-Drafts. 24 Internet-Drafts are draft documents valid for a maximum of six months 25 and may be updated, replaced, or obsoleted by other documents at any 26 time. It is inappropriate to use Internet-Drafts as reference 27 material or to cite them other than as "work in progress." 29 The list of current Internet-Drafts can be accessed at 30 http://www.ietf.org/ietf/1id-abstracts.txt 32 The list of Internet-Draft Shadow Directories can be accessed at 33 http://www.ietf.org/shadow.html. 35 Copyright Notice 37 Copyright (C) The Internet Society (2003). All Rights Reserved. 39 Abstract 41 This draft describes extended performance statistics for TCP. They 42 are designed to use TCP's ideal vantage point to diagnose performance 43 problems in both the network and the application. If a network based 44 application is performing poorly, TCP can determine if the bottleneck 45 is in the sender, the receiver or the network itself. If the 46 bottleneck is in the network, TCP can provide specific information 47 about its nature. 49 Table of Contents 51 (Future TOC here) 53 1. Introduction 55 This draft describes extended performance statistics for TCP. They 56 are designed to use TCP's ideal vantage point to diagnose performance 57 problems in both the network and the application. If a network based 58 application is performing poorly, TCP can determine if the bottleneck 59 is in the sender, the receiver or the network itself. If the 60 bottleneck is in the network, TCP can provide specific information 61 about its nature. 63 The SNMP objects defined in this draft extend TCP MIB, already under 64 revision by the IPv6 team [RFC2012bis]. 66 This document is automatically generated from a database of potential 67 TCP instruments. Beware that the OIDs are still likely to change 68 with future versions. The most current version can be obtained from 69 http://www.web100.org/mib/ . Please use tsvwg@ietf.org to send 70 comments to the entire TSV WG. 72 2. The Internet-Standard Management Framework 74 For a detailed overview of the documents that describe the current 75 Internet-Standard Management Framework, please refer to section 7 of 76 RFC 3410 [RFC3410]. 78 Managed objects are accessed via a virtual information store, termed 79 the Management Information Base or MIB. MIB objects are generally 80 accessed through the Simple Network Management Protocol (SNMP). 81 Objects in the MIB are defined using the mechanisms defined in the 82 Structure of Management Information (SMI). This memo specifies a MIB 83 module that is compliant to the SMIv2, which is described in STD 58, 84 RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 85 [RFC2580]. 87 3. Overview 89 The TCP-ESTATS-MIB defined in this memo consists of 10 tables, 90 two groups of scalars and two notifications: 92 - The scalars in this MIB report parameters and statistics of a 93 TCP protocol engine. The first two, tcpEStatsHCInSegs and 94 tcpEStatsHCOutSegs, provide high-capacity counters for fast 95 networks. The third one, tcpEStatsListenerTableLastChange, 96 provides management stations with an easier mechanism to 97 validate their listener caches. 99 - The second group of scalars consist of knobs to enable and 100 disable information collection by the tables collecting 101 connection-related statistics/information. For e.g. the 102 tcpEStatsControlState object controls the activation of the 103 tcpEStatsConnectionTable. 105 - The tcpEstatsConnectIdTable provides a mapping between the 106 connection indices i.e. source address type, source address, 107 source port, destination address type, destination address and 108 destination port, and the connection index. The connection 109 index is used to index into most the remaining tables in this 110 MIB module. 112 - The tcpEStatsConnectionTable provides information about the 113 characteristics of active (and recently closed) TCP 114 connections. 116 - The tcpEStatsSynOptsTable provides information on options 117 present in the SYN and SYN-ACK that originated the connection. 119 - The tcpEStatsDataTable provides statistics information on the 120 connection. 122 - The tcpEStatsSndCongTable provides information on sender 123 performance for the connection. This table, along with the 124 tcpEStatsPathTable, tcpEStatsSendBuffTable, tcpEStatsRecTable 125 and tcpEStatsObsRecTable, is useful in determining the 126 subsystems (sender, receiver and path) that control the overall 127 performance of a TCP connection. 129 - The tcpEStatsPathTable provides information on the connection 130 path e.g. count of ICMP source quench messages treated as 131 congestion signals, count of ECN signals received etc. This 132 table, along with the tcpEStatsSndCongTable, 133 tcpEStatsSendBuffTable, tcpEStatsRecTable and 134 tcpEStatsObsRecTable, is useful in determining the subsystems 135 (sender, receiver and path) that control the overall 136 performance of a TCP connection. 138 - The tcpEStatsSendBuffTable provides sender buffer usage 139 statistics for the connection. This table, along with the 140 tcpEStatsSndCongTable, tcpEStatsPathTable, tcpEStatsRecTable 141 and tcpEStatsObsRecTable, is useful in determining the 142 subsystems (sender, receiver and path) that control the overall 143 performance of a TCP connection. 145 - The tcpEStatsRecTable provides information on the local 146 receiver and buffer usage characteristics of the receiver. 147 This table, along with the tcpEStatsSndCongTable, 148 tcpEStatsPathTable, tcpEStatsSendBuffTable and 149 tcpEStatsObsRecTable, is useful in determining the subsystems 150 (sender, receiver and path) that control the overall 151 performance of a TCP connection. 153 - The tcpEStatsObsRecTable provides information on the window 154 advertisement characteristics of receiver. This table, along 155 with the tcpEStatsSndCongTable, tcpEStatsPathTable, 156 tcpEStatsSendBuffTable and tcpEStatsRecTable, is useful in 157 determining the subsystems (sender, receiver and path) that 158 control the overall performance of a TCP connection. 160 - The tcpEStatsListenerTable provides information on the active 161 TCP listeners on a device. 163 - The two notifications defined in this MIB module are 164 tcpEStatsEstablishNotification, indicating that a new 165 connection has been established, and 166 tcpEStatsCloseNotification, indicating that an existing 167 connection has recently closed. 169 4. TCP Extended Statistics MIB 170 TCP-ESTATS-MIB DEFINITIONS ::= BEGIN 171 IMPORTS 172 MODULE-IDENTITY, Counter32, Integer32, Unsigned32, 173 Gauge32, OBJECT-TYPE, Counter64, experimental, 174 NOTIFICATION-TYPE 175 FROM SNMPv2-SMI 176 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP 177 FROM SNMPv2-CONF 178 TEXTUAL-CONVENTION, 179 DateAndTime, TruthValue, TimeStamp 180 FROM SNMPv2-TC 181 InetAddressType, InetAddress, 182 InetPortNumber 183 FROM INET-ADDRESS-MIB 184 tcpListenerEntry 185 FROM TCP-MIB; 187 tcpEStatsMIB MODULE-IDENTITY 188 LAST-UPDATED "200303021331Z" -- Mar 2, 2003 189 ORGANIZATION "IETF TSV Working Group" 190 CONTACT-INFO 191 "Matt Mathis 192 John Heffner 193 Raghu Reddy 194 Web100 Project 195 Pittsburgh Supercomputing Center 196 4400 Fifth Ave 197 Pittsburgh, PA 15213 198 Email: mathis@psc.edu, jheffner@psc.edu, rreddy@psc.edu 200 Rajiv Raghunarayan 201 Cisco Systems Inc. 202 San Jose, CA 95134 203 Phone: 408 853 9612 204 Email: raraghun@cisco.com 206 Jon Saperia 207 JDS Consulting, Inc. 208 174 Chapman Street 209 Watertown, MA 02472 210 Phone: 617-744-1079 211 Email: saperia@jdscons.com " 212 DESCRIPTION 213 "Documentation of TCP performance instrumentation 214 variables from the Web100 project. See www.web100.org" 215 REVISION "200303021331Z" -- Mar 2, 2003 216 DESCRIPTION 217 "Initial version, published as RFC xxxx." 218 -- RFC Editor assigns RFC xxxx 219 ::= { experimental 9999 } 221 tcpEStatsNotifications OBJECT IDENTIFIER ::= { tcpEStatsMIB 0 } 222 tcpEStatsMIBObjects OBJECT IDENTIFIER ::= { tcpEStatsMIB 1 } 223 tcpEStatsConformance OBJECT IDENTIFIER ::= { tcpEStatsMIB 2 } 224 tcpEStats OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 1 } 225 tcpEStatsControl OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 2 } 226 tcpEStatsScalar OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 3 } 228 -- 229 -- Textual Conventions 230 -- 232 TcpEStatsOperation ::= TEXTUAL-CONVENTION 233 STATUS current 234 DESCRIPTION 235 "Indicates whether the table controlled by an object with 236 this syntax is enabled and counting statistics or in a 237 disabled state." 238 SYNTAX INTEGER { 239 enabled(1), 240 disabled(2) 241 } 243 -- 244 -- TCP Extended statistics scalars 245 -- 246 tcpEStatsHCInSegs OBJECT-TYPE 247 SYNTAX Counter64 248 MAX-ACCESS read-only 249 STATUS current 250 DESCRIPTION 251 "The total number of segments received, including those 252 received in error, on systems that can receive more than 1 253 million TCP segments per second. This count includes 254 segments received on currently established connections." 255 ::= { tcpEStatsScalar 1 } 257 tcpEStatsHCOutSegs OBJECT-TYPE 258 SYNTAX Counter64 259 MAX-ACCESS read-only 260 STATUS current 261 DESCRIPTION 262 "The total number of segments sent, including those on 263 current connections but excluding those containing only 264 retransmitted octets, on systems that can transmit more 265 than 1 million TCP segments per second." 267 ::= { tcpEStatsScalar 2 } 269 tcpEStatsListenerTableLastChange OBJECT-TYPE 270 SYNTAX TimeStamp 271 MAX-ACCESS read-only 272 STATUS current 273 DESCRIPTION 274 "The value of sysUpTime at the time of the last 275 creation or deletion of an entry in the tcpListenerTable. 276 If the number of entries has been unchanged since the 277 last re-initialization of the local network management 278 subsystem, then this object contains a zero value." 279 ::= { tcpEStatsScalar 3 } 281 -- The tcpEStatsControl Group 283 -- The scalar objects in this group are used to control the 284 -- activation and deactivation of the TCP Extended Statistics 285 -- tables in this module. 286 -- 288 tcpEStatsControlState OBJECT-TYPE 289 SYNTAX TcpEStatsOperation 290 MAX-ACCESS read-write 291 STATUS current 292 DESCRIPTION 293 "Controls the activation of the TCP Connection State 294 Statistics table." 295 DEFVAL { disabled } 296 ::= { tcpEStatsControl 1 } 298 tcpEStatsControlSynOpts OBJECT-TYPE 299 SYNTAX TcpEStatsOperation 300 MAX-ACCESS read-write 301 STATUS current 302 DESCRIPTION 303 "Controls the activation of the TCP SYN Options table." 304 DEFVAL { disabled } 305 ::= { tcpEStatsControl 2 } 307 tcpEStatsControlData OBJECT-TYPE 308 SYNTAX TcpEStatsOperation 309 MAX-ACCESS read-write 310 STATUS current 311 DESCRIPTION 312 "Controls the activation of the TCP Data Table." 313 DEFVAL { disabled } 314 ::= { tcpEStatsControl 3 } 316 tcpEStatsControlSndCong OBJECT-TYPE 317 SYNTAX TcpEStatsOperation 318 MAX-ACCESS read-write 319 STATUS current 320 DESCRIPTION 321 "Controls the activation of the TCP Sender Table." 322 DEFVAL { disabled } 323 ::= { tcpEStatsControl 4 } 325 tcpEStatsControlPath OBJECT-TYPE 326 SYNTAX TcpEStatsOperation 327 MAX-ACCESS read-write 328 STATUS current 329 DESCRIPTION 330 "Controls the activation of the TCP Path Table." 331 DEFVAL { disabled } 332 ::= { tcpEStatsControl 5 } 334 tcpEStatsControlSendBuff OBJECT-TYPE 335 SYNTAX TcpEStatsOperation 336 MAX-ACCESS read-write 337 STATUS current 338 DESCRIPTION 339 "Controls the activation of the TCP Sender Buffer Table." 340 DEFVAL { disabled } 341 ::= { tcpEStatsControl 6 } 343 tcpEStatsControlRec OBJECT-TYPE 344 SYNTAX TcpEStatsOperation 345 MAX-ACCESS read-write 346 STATUS current 347 DESCRIPTION 348 "Controls the activation of the TCP Local Receiver Table." 349 DEFVAL { disabled } 350 ::= { tcpEStatsControl 7 } 352 tcpEStatsControlObsRec OBJECT-TYPE 353 SYNTAX TcpEStatsOperation 354 MAX-ACCESS read-write 355 STATUS current 356 DESCRIPTION 357 "Controls the activation of the TCP Observed Receiver 358 Window Table." 359 DEFVAL { disabled } 360 ::= { tcpEStatsControl 8 } 362 -- 363 -- Listener Table 364 -- 366 tcpEStatsListenerTable OBJECT-TYPE 367 SYNTAX SEQUENCE OF TcpEStatsListenerEntry 368 MAX-ACCESS not-accessible 369 STATUS current 370 DESCRIPTION 371 "This table contains information about TCP Listeners, 372 in addition to the information maintained by the 373 tcpListenerTable [RFC2012bis]." 374 ::= { tcpEStats 10 } 376 tcpEStatsListenerEntry OBJECT-TYPE 377 SYNTAX TcpEStatsListenerEntry 378 MAX-ACCESS not-accessible 379 STATUS current 380 DESCRIPTION 381 "Each entry in the table contains information about 382 a specific TCP Listener." 383 AUGMENTS { tcpListenerEntry } 384 ::= { tcpEStatsListenerTable 1 } 386 TcpEStatsListenerEntry ::= SEQUENCE { 387 tcpEStatsListenerTimeOuts Counter32, 388 tcpEStatsListenerEstablished Counter32, 389 tcpEStatsListenerStartTime TimeStamp 390 } 392 tcpEStatsListenerTimeOuts OBJECT-TYPE 393 SYNTAX Counter32 394 MAX-ACCESS read-only 395 STATUS current 396 DESCRIPTION 397 "The number of connection attempts to this endpoint which 398 have failed due to timeout of the three-way handshake, i.e. 399 the corresponding connection state never moved from 400 synReceived to established." 401 ::= { tcpEStatsListenerEntry 1 } 403 tcpEStatsListenerEstablished OBJECT-TYPE 404 SYNTAX Counter32 405 MAX-ACCESS read-only 406 STATUS current 407 DESCRIPTION 408 "The number of connections which have been established to 409 this endpoint." 411 ::= { tcpEStatsListenerEntry 2 } 413 tcpEStatsListenerStartTime OBJECT-TYPE 414 SYNTAX TimeStamp 415 MAX-ACCESS read-only 416 STATUS current 417 DESCRIPTION 418 "The value of sysUpTime at the time this listener was 419 established. If the current state was entered prior to 420 the last re-initialization of the local network management 421 subsystem, then this object contains a zero value." 422 ::= { tcpEStatsListenerEntry 3 } 424 -- 425 -- TCP Connection ID Table 426 -- 428 -- There is overlap with the new RFC2012 TCP Connection table 429 -- because there is a semantic difference in the latency of row 430 -- removal in this table. Row are expected to remain in this 431 -- table longer than in a standard TCP Connection table. Other 432 -- than this latency difference the semantics of the first six 433 -- objects in this table are the same as the new TCP Connection 434 -- table and the DESCRIPTIONS come from the new document. 436 tcpEStatsConnectIdTable OBJECT-TYPE 437 SYNTAX SEQUENCE OF TcpEStatsConnectIdEntry 438 MAX-ACCESS not-accessible 439 STATUS current 440 DESCRIPTION 441 "This table maps a connection ID used by other tables in 442 this MIB Module with the information that uniquely 443 identifies each active TCP connection. Entries are 444 retained in this table for at least 30 seconds after the 445 TCP connection first enters the closed state." 446 ::= { tcpEStats 1 } 448 tcpEStatsConnectIdEntry OBJECT-TYPE 449 SYNTAX TcpEStatsConnectIdEntry 450 MAX-ACCESS not-accessible 451 STATUS current 452 DESCRIPTION 453 "Each entry in this table maps a TCP connection 454 4-tuple to a connection index." 455 INDEX { tcpEStatsConnectLocalAddressType, 456 tcpEStatsConnectLocalAddress, 457 tcpEStatsConnectLocalPort, 458 tcpEStatsConnectRemAddressType, 459 tcpEStatsConnectRemAddress, 460 tcpEStatsConnectRemPort } 461 ::= { tcpEStatsConnectIdTable 1 } 463 TcpEStatsConnectIdEntry ::= SEQUENCE { 464 tcpEStatsConnectLocalAddressType InetAddressType, 465 tcpEStatsConnectLocalAddress InetAddress, 466 tcpEStatsConnectLocalPort InetPortNumber, 467 tcpEStatsConnectRemAddressType InetAddressType, 468 tcpEStatsConnectRemAddress InetAddress, 469 tcpEStatsConnectRemPort InetPortNumber, 470 tcpEStatsConnectIndex Unsigned32 471 } 473 tcpEStatsConnectLocalAddressType OBJECT-TYPE 474 SYNTAX InetAddressType 475 MAX-ACCESS not-accessible 476 STATUS current 477 DESCRIPTION 478 "The address type of tcpEStatsConnectLocalAddress. 479 Only IPv4, IPv4z, IPv6 and IPv6z address types are 480 expected." 481 ::= { tcpEStatsConnectIdEntry 1 } 483 tcpEStatsConnectLocalAddress OBJECT-TYPE 484 SYNTAX InetAddress (SIZE(0..36)) 485 MAX-ACCESS not-accessible 486 STATUS current 487 DESCRIPTION 488 "The local IP address for this TCP connection." 489 ::= { tcpEStatsConnectIdEntry 2 } 491 tcpEStatsConnectLocalPort OBJECT-TYPE 492 SYNTAX InetPortNumber 493 MAX-ACCESS not-accessible 494 STATUS current 495 DESCRIPTION 496 "The local port number for this TCP connection." 497 ::= {tcpEStatsConnectIdEntry 3 } 499 tcpEStatsConnectRemAddressType OBJECT-TYPE 500 SYNTAX InetAddressType 501 MAX-ACCESS not-accessible 502 STATUS current 503 DESCRIPTION 504 "The address type of tcpEStatsConnectRemAddress. Only 505 IPv4, IPv4z, IPv6 and IPv6z address types are expected." 507 ::= { tcpEStatsConnectIdEntry 4 } 509 tcpEStatsConnectRemAddress OBJECT-TYPE 510 SYNTAX InetAddress (SIZE(0..36)) 511 MAX-ACCESS not-accessible 512 STATUS current 513 DESCRIPTION 514 "The remote IP address for this TCP connection." 515 ::= { tcpEStatsConnectIdEntry 5 } 517 tcpEStatsConnectRemPort OBJECT-TYPE 518 SYNTAX InetPortNumber 519 MAX-ACCESS not-accessible 520 STATUS current 521 DESCRIPTION 522 "The remote port number for this TCP connection." 523 ::= { tcpEStatsConnectIdEntry 6 } 525 tcpEStatsConnectIndex OBJECT-TYPE 526 SYNTAX Unsigned32 527 MAX-ACCESS read-only 528 STATUS current 529 DESCRIPTION 530 "A unique integer value assigned to each TCP Connection 531 entry. Assignment will begin at 1 and increase to the 532 maximum value and then start again at 1 skipping in use 533 values." 534 ::= { tcpEStatsConnectIdEntry 7 } 536 -- 537 -- TCP Connection State Statistics 538 -- 540 tcpEStatsConnectionTable OBJECT-TYPE 541 SYNTAX SEQUENCE OF TcpEStatsConnectionEntry 542 MAX-ACCESS not-accessible 543 STATUS current 544 DESCRIPTION 545 "This table contains connection state information for 546 each TCP connection. Activation of this table is via the 547 tcpEStatsControlState object." 548 ::= { tcpEStats 2 } 550 tcpEStatsConnectionEntry OBJECT-TYPE 551 SYNTAX TcpEStatsConnectionEntry 552 MAX-ACCESS not-accessible 553 STATUS current 554 DESCRIPTION 555 "Each entry in this table has information about the 556 characteristics of each active and recently closed tcp 557 connection." 558 INDEX { tcpEStatsConnectIndex } 559 ::= { tcpEStatsConnectionTable 1 } 561 TcpEStatsConnectionEntry ::= SEQUENCE { 562 tcpEStatsConnectionState INTEGER, 563 tcpEStatsConnectionSACK TruthValue, 564 tcpEStatsConnectionTimeStamps TruthValue, 565 tcpEStatsConnectionECN TruthValue, 566 tcpEStatsConnectionNagle TruthValue, 567 tcpEStatsConnectionSndWindScale Integer32, 568 tcpEStatsConnectionRcvWindScale Integer32 569 } 571 tcpEStatsConnectionState OBJECT-TYPE 572 SYNTAX INTEGER { 573 wcStateClosed(1), 574 wcStateListen(2), 575 wcStateSynSent(3), 576 wcStateSynReceived(4), 577 wcStateEstablished(5), 578 wcStateFinWait1(6), 579 wcStateFinWait2(7), 580 wcStateCloseWait(8), 581 wcStateLastAck(9), 582 wcStateClosing(10), 583 wcStateTimeWait(11), 584 wcStateDeleteTcb(12) 585 } 586 MAX-ACCESS read-only 587 STATUS current 588 DESCRIPTION 589 "An integer value representing the connection state from the 590 TCP State Transition Diagram." 591 ::= { tcpEStatsConnectionEntry 1 } 593 tcpEStatsConnectionSACK OBJECT-TYPE 594 SYNTAX TruthValue 595 MAX-ACCESS read-only 596 STATUS current 597 DESCRIPTION 598 "True(1) if SACK has been negotiated on, else false(2). See 599 RFC 2018." 600 ::= { tcpEStatsConnectionEntry 2 } 602 tcpEStatsConnectionTimeStamps OBJECT-TYPE 603 SYNTAX TruthValue 604 MAX-ACCESS read-only 605 STATUS current 606 DESCRIPTION 607 "True(1) if timestamps have been negotiated on, else 608 false(2). See RFC 1323." 609 ::= { tcpEStatsConnectionEntry 3 } 611 tcpEStatsConnectionECN OBJECT-TYPE 612 SYNTAX TruthValue 613 MAX-ACCESS read-only 614 STATUS current 615 DESCRIPTION 616 "True(1) if ECN has been negotiated on, else false(2)." 617 ::= { tcpEStatsConnectionEntry 4 } 619 tcpEStatsConnectionNagle OBJECT-TYPE 620 SYNTAX TruthValue 621 MAX-ACCESS read-only 622 STATUS current 623 DESCRIPTION 624 "True(1) if the Nagle algorithm is being used, else 625 false(2)." 626 ::= { tcpEStatsConnectionEntry 5 } 628 tcpEStatsConnectionSndWindScale OBJECT-TYPE 629 SYNTAX Integer32 630 MAX-ACCESS read-only 631 STATUS current 632 DESCRIPTION 633 "The value of Snd.Wind.Scale from RFC 1323. Note that 634 SndWindScale is either zero or the same as WinScaleRcvd." 635 ::= { tcpEStatsConnectionEntry 6 } 637 tcpEStatsConnectionRcvWindScale OBJECT-TYPE 638 SYNTAX Integer32 639 MAX-ACCESS read-only 640 STATUS current 641 DESCRIPTION 642 "The value of Rcv.Wind.Scale from RFC 1323. Note that 643 RcvWindScale is either zero or the same as WinScaleSent." 644 ::= { tcpEStatsConnectionEntry 7 } 646 -- 647 -- TCP SYN Options 648 -- 650 tcpEStatsSynOptsTable OBJECT-TYPE 651 SYNTAX SEQUENCE OF TcpEStatsSynOptsEntry 652 MAX-ACCESS not-accessible 653 STATUS current 654 DESCRIPTION 655 "This table contains statistics on options present 656 on the SYN and SYN-ACK. Table activation is 657 controlled by the tcpEStatsControlSynOpts object." 658 ::= { tcpEStats 3 } 660 tcpEStatsSynOptsEntry OBJECT-TYPE 661 SYNTAX TcpEStatsSynOptsEntry 662 MAX-ACCESS not-accessible 663 STATUS current 664 DESCRIPTION 665 "Each entry in this table information on options 666 present in the SYNs and SYN-ACKs." 667 INDEX { tcpEStatsConnectIndex } 668 ::= { tcpEStatsSynOptsTable 1 } 670 TcpEStatsSynOptsEntry ::= SEQUENCE { 671 tcpEStatsSynOptsActiveOpen TruthValue, 672 tcpEStatsSynOptsMSSSent Gauge32, 673 tcpEStatsSynOptsMSSRcvd Gauge32, 674 tcpEStatsSynOptsWinScaleSent Integer32, 675 tcpEStatsSynOptsWinScaleRcvd Integer32, 676 tcpEStatsSynOptsSACKokSent TruthValue, 677 tcpEStatsSynOptsSACKokRcvd TruthValue, 678 tcpEStatsSynOptsTimeStampSent TruthValue, 679 tcpEStatsSynOptsTimeStampRcvd TruthValue 680 } 682 tcpEStatsSynOptsActiveOpen OBJECT-TYPE 683 SYNTAX TruthValue 684 MAX-ACCESS read-only 685 STATUS current 686 DESCRIPTION 687 "True(1) if the local connection traversed the SYN-SENT 688 state, else false(2). See RFC 793." 689 ::= { tcpEStatsSynOptsEntry 1 } 691 tcpEStatsSynOptsMSSSent OBJECT-TYPE 692 SYNTAX Gauge32 693 MAX-ACCESS read-only 694 STATUS current 695 DESCRIPTION 696 "The value sent in an MSS option, or zero if none." 697 ::= { tcpEStatsSynOptsEntry 2 } 699 tcpEStatsSynOptsMSSRcvd OBJECT-TYPE 700 SYNTAX Gauge32 701 MAX-ACCESS read-only 702 STATUS current 703 DESCRIPTION 704 "The value received in an MSS option, or zero if none." 705 ::= { tcpEStatsSynOptsEntry 3 } 707 tcpEStatsSynOptsWinScaleSent OBJECT-TYPE 708 SYNTAX Integer32 (-1..14) 709 MAX-ACCESS read-only 710 STATUS current 711 DESCRIPTION 712 "The value of the transmitted window scale option if one was 713 sent; otherwise, a value of -1. See RFC 1323." 714 ::= { tcpEStatsSynOptsEntry 4 } 716 tcpEStatsSynOptsWinScaleRcvd OBJECT-TYPE 717 SYNTAX Integer32 (-1..14) 718 MAX-ACCESS read-only 719 STATUS current 720 DESCRIPTION 721 "The value of the received window scale option if one was 722 received; otherwise, a value of -1. See RFC 1323." 723 ::= { tcpEStatsSynOptsEntry 5 } 725 tcpEStatsSynOptsSACKokSent OBJECT-TYPE 726 SYNTAX TruthValue 727 MAX-ACCESS read-only 728 STATUS current 729 DESCRIPTION 730 "True(1) if SACKok option was sent, else false(2). See RFC 731 2018." 732 ::= { tcpEStatsSynOptsEntry 6 } 734 tcpEStatsSynOptsSACKokRcvd OBJECT-TYPE 735 SYNTAX TruthValue 736 MAX-ACCESS read-only 737 STATUS current 738 DESCRIPTION 739 "True(1) if SACKok option was received, else false(2). See 740 RFC 2018." 741 ::= { tcpEStatsSynOptsEntry 7 } 743 tcpEStatsSynOptsTimeStampSent OBJECT-TYPE 744 SYNTAX TruthValue 745 MAX-ACCESS read-only 746 STATUS current 747 DESCRIPTION 748 "True(1) if Timestamp option was sent, else false(2). See 749 RFC 1323." 750 ::= { tcpEStatsSynOptsEntry 8 } 752 tcpEStatsSynOptsTimeStampRcvd OBJECT-TYPE 753 SYNTAX TruthValue 754 MAX-ACCESS read-only 755 STATUS current 756 DESCRIPTION 757 "True(1) if Timestamp option was received, else false(2). 758 See RFC 1323." 759 ::= { tcpEStatsSynOptsEntry 9 } 761 -- 762 -- TCP Data Table 763 -- 765 tcpEStatsDataTable OBJECT-TYPE 766 SYNTAX SEQUENCE OF TcpEStatsDataEntry 767 MAX-ACCESS not-accessible 768 STATUS current 769 DESCRIPTION 770 "This table contains statistics on aggregate packets and 771 data sent on a connection. These provide a direct 772 measure of the Internet capacity consumed by a connection 773 and TCPs net throughput. Table activation is controlled 774 by tcpEStatsControlData." 775 ::= { tcpEStats 4 } 777 tcpEStatsDataEntry OBJECT-TYPE 778 SYNTAX TcpEStatsDataEntry 779 MAX-ACCESS not-accessible 780 STATUS current 781 DESCRIPTION 782 "Per connection statistics for packets and data." 783 INDEX { tcpEStatsConnectIndex } 784 ::= { tcpEStatsDataTable 1 } 786 TcpEStatsDataEntry ::= SEQUENCE { 787 tcpEStatsDataPktsOut Counter32, 788 tcpEStatsDataDataPktsOut Counter32, 789 tcpEStatsDataDataBytesOut Counter32, 790 tcpEStatsDataHCDataBytesOut Counter64, 791 tcpEStatsDataPktsIn Counter32, 792 tcpEStatsDataDataPktsIn Counter32, 793 tcpEStatsDataDataBytesIn Counter32, 794 tcpEStatsDataHCDataBytesIn Counter64, 795 tcpEStatsDataSoftErrors Counter32, 796 tcpEStatsDataSoftErrorReason INTEGER, 797 tcpEStatsDataIpTtl Integer32, 798 tcpEStatsDataIpTos Integer32, 799 tcpEStatsDataSndUna Counter32, 800 tcpEStatsDataSndNxt Integer32, 801 tcpEStatsDataSndMax Counter32, 802 tcpEStatsDataThruBytesAcked Counter32, 803 tcpEStatsDataHCThruBytesAcked Counter64, 804 tcpEStatsDataSndInitial Counter32, 805 tcpEStatsDataRcvNxt Counter32, 806 tcpEStatsDataThruBytesReceived Counter32, 807 tcpEStatsDataHCThruBytesReceived Counter64, 808 tcpEStatsDataRecInitial Counter32, 809 tcpEStatsDataElapsedSecs Counter32, 810 tcpEStatsDataDurationMicroSecs Counter32, 811 tcpEStatsDataStartTimeStamp DateAndTime 812 } 814 tcpEStatsDataPktsOut OBJECT-TYPE 815 SYNTAX Counter32 816 MAX-ACCESS read-only 817 STATUS current 818 DESCRIPTION 819 "The total number of packets sent." 820 ::= { tcpEStatsDataEntry 1 } 822 tcpEStatsDataDataPktsOut OBJECT-TYPE 823 SYNTAX Counter32 824 MAX-ACCESS read-only 825 STATUS current 826 DESCRIPTION 827 "The number of packets sent containing a positive length 828 data segment." 829 ::= { tcpEStatsDataEntry 2 } 831 tcpEStatsDataDataBytesOut OBJECT-TYPE 832 SYNTAX Counter32 833 MAX-ACCESS read-only 834 STATUS current 835 DESCRIPTION 836 "The number of bytes of data contained in transmitted 837 segments, including retransmitted data." 838 ::= { tcpEStatsDataEntry 3 } 840 tcpEStatsDataHCDataBytesOut OBJECT-TYPE 841 SYNTAX Counter64 842 MAX-ACCESS read-only 843 STATUS current 844 DESCRIPTION 845 "The number of bytes of data contained in transmitted 846 segments, including retransmitted data, on systems that can 847 transmit more than 10 million bits per second." 848 ::= { tcpEStatsDataEntry 4 } 850 tcpEStatsDataPktsIn OBJECT-TYPE 851 SYNTAX Counter32 852 MAX-ACCESS read-only 853 STATUS current 854 DESCRIPTION 855 "The total number of packets received." 856 ::= { tcpEStatsDataEntry 5 } 858 tcpEStatsDataDataPktsIn OBJECT-TYPE 859 SYNTAX Counter32 860 MAX-ACCESS read-only 861 STATUS current 862 DESCRIPTION 863 "The number of packets received containing a positive length 864 data segment." 865 ::= { tcpEStatsDataEntry 6 } 867 tcpEStatsDataDataBytesIn OBJECT-TYPE 868 SYNTAX Counter32 869 MAX-ACCESS read-only 870 STATUS current 871 DESCRIPTION 872 "The number of bytes contained in received data segments, 873 including retransmitted data. Note that this does not 874 include TCP headers." 875 ::= { tcpEStatsDataEntry 7 } 877 tcpEStatsDataHCDataBytesIn OBJECT-TYPE 878 SYNTAX Counter64 879 MAX-ACCESS read-only 880 STATUS current 881 DESCRIPTION 882 "The number of bytes contained in received data segments, 883 including retransmitted data, on systems that can receive 884 more than 10 million bits per second. Note that this does 885 not include TCP headers." 886 ::= { tcpEStatsDataEntry 8 } 888 tcpEStatsDataSoftErrors OBJECT-TYPE 889 SYNTAX Counter32 890 MAX-ACCESS read-only 891 STATUS current 892 DESCRIPTION 893 "The number packets that fail various consistency tests." 894 ::= { tcpEStatsDataEntry 9 } 896 tcpEStatsDataSoftErrorReason OBJECT-TYPE 897 SYNTAX INTEGER { 898 belowDataWindow(1), 899 aboveDataWindow(2), 900 belowAckWindow(3), 901 aboveAckWindow(4), 902 belowTSWindow(5), 903 aboveTSWindow(6), 904 dataCheckSum(7) 905 } 906 MAX-ACCESS read-only 907 STATUS current 908 DESCRIPTION 909 "Identifies the consistency test that most recently failed." 910 ::= { tcpEStatsDataEntry 10 } 912 tcpEStatsDataIpTtl OBJECT-TYPE 913 SYNTAX Integer32 914 MAX-ACCESS read-only 915 STATUS current 916 DESCRIPTION 917 "The value of the TTL field carried in the most recently 918 received IP header." 919 ::= { tcpEStatsDataEntry 11 } 921 tcpEStatsDataIpTos OBJECT-TYPE 922 SYNTAX Integer32 923 MAX-ACCESS read-only 924 STATUS current 925 DESCRIPTION 926 "The value of the Type Of Service byte carried in the most 927 recently received IP header." 928 ::= { tcpEStatsDataEntry 12 } 930 tcpEStatsDataSndUna OBJECT-TYPE 931 SYNTAX Counter32 932 MAX-ACCESS read-only 933 STATUS current 934 DESCRIPTION 935 "The value of SND.UNA, the oldest unacknowledged sequence 936 number." 937 ::= { tcpEStatsDataEntry 13 } 939 tcpEStatsDataSndNxt OBJECT-TYPE 940 SYNTAX Integer32 941 MAX-ACCESS read-only 942 STATUS current 943 DESCRIPTION 944 "The value of SND.NXT, the next sequence number to be sent. 945 Note that TCP can retransmit lost data by pulling SndNxt 946 back to the lost data. See 793." 947 ::= { tcpEStatsDataEntry 14 } 949 tcpEStatsDataSndMax OBJECT-TYPE 950 SYNTAX Counter32 951 MAX-ACCESS read-only 952 STATUS current 953 DESCRIPTION 954 "The farthest forward (right most) SND.NXT value. Note that 955 this will be equal to snd_nxt except when snd_nxt is pulled 956 back during a recovery." 957 ::= { tcpEStatsDataEntry 15 } 959 tcpEStatsDataThruBytesAcked OBJECT-TYPE 960 SYNTAX Counter32 961 MAX-ACCESS read-only 962 STATUS current 963 DESCRIPTION 964 "The number of bytes for which cumulative acknowledgments 965 have been received. Note that this will be the sum of 966 changes in snd_una, accounting for sequence wraps." 967 ::= { tcpEStatsDataEntry 16 } 969 tcpEStatsDataHCThruBytesAcked OBJECT-TYPE 970 SYNTAX Counter64 971 MAX-ACCESS read-only 972 STATUS current 973 DESCRIPTION 974 "The number of bytes for which cumulative acknowledgments 975 have been received, on systems that can receive more than 976 10 million bits per second. Note that this will be the sum 977 of changes in snd_una, accounting for sequence wraps." 978 ::= { tcpEStatsDataEntry 17 } 980 tcpEStatsDataSndInitial OBJECT-TYPE 981 SYNTAX Counter32 982 MAX-ACCESS read-only 983 STATUS current 984 DESCRIPTION 985 "Initial send sequence number." 986 ::= { tcpEStatsDataEntry 18 } 988 tcpEStatsDataRcvNxt OBJECT-TYPE 989 SYNTAX Counter32 990 MAX-ACCESS read-only 991 STATUS current 992 DESCRIPTION 993 "The value of RCV.NXT from RFC 793. The next sequence number 994 expected on an incoming segment, and the left or lower edge 995 of the receive window." 996 ::= { tcpEStatsDataEntry 19 } 998 tcpEStatsDataThruBytesReceived OBJECT-TYPE 999 SYNTAX Counter32 1000 MAX-ACCESS read-only 1001 STATUS current 1002 DESCRIPTION 1003 "The number of bytes for which cumulative acknowledgments 1004 have been sent. Note that this will be the sum of changes 1005 in rcv_nxt, accounting for sequence wraps." 1006 ::= { tcpEStatsDataEntry 20 } 1008 tcpEStatsDataHCThruBytesReceived OBJECT-TYPE 1009 SYNTAX Counter64 1010 MAX-ACCESS read-only 1011 STATUS current 1012 DESCRIPTION 1013 "The number of bytes for which cumulative acknowledgments 1014 have been sent, on systems that can transmit more than 10 1015 million bits per second. Note that this will be the sum of 1016 changes in rcv_nxt, accounting for sequence wraps." 1017 ::= { tcpEStatsDataEntry 21 } 1019 tcpEStatsDataRecInitial OBJECT-TYPE 1020 SYNTAX Counter32 1021 MAX-ACCESS read-only 1022 STATUS current 1023 DESCRIPTION 1024 "Initial receive sequence number." 1025 ::= { tcpEStatsDataEntry 22 } 1027 tcpEStatsDataElapsedSecs OBJECT-TYPE 1028 SYNTAX Counter32 1029 MAX-ACCESS read-only 1030 STATUS current 1031 DESCRIPTION 1032 "The seconds part of the time elapsed between StartTime and 1033 the most recent protocol event (packet sent or received)." 1034 ::= { tcpEStatsDataEntry 23 } 1036 tcpEStatsDataDurationMicroSecs OBJECT-TYPE 1037 SYNTAX Counter32 1038 MAX-ACCESS read-only 1039 STATUS current 1040 DESCRIPTION 1041 "The micro-second part of time elapsed between StartTime to 1042 the most recent protocol event (packet sent or received). 1043 This may be updated in what ever time granularity is the 1044 system supports. @@ Make optional?" 1045 ::= { tcpEStatsDataEntry 24 } 1047 tcpEStatsDataStartTimeStamp OBJECT-TYPE 1048 SYNTAX DateAndTime 1049 MAX-ACCESS read-only 1050 STATUS current 1051 DESCRIPTION 1052 "Time of the start of the connection." 1053 ::= { tcpEStatsDataEntry 25 } 1055 -- 1056 -- TCP Sender Table 1057 -- 1059 tcpEStatsSndCongTable OBJECT-TYPE 1060 SYNTAX SEQUENCE OF TcpEStatsSndCongEntry 1061 MAX-ACCESS not-accessible 1062 STATUS current 1063 DESCRIPTION 1064 "First level instruments to determine which subsystems 1065 are controlling overall performance by throttling TCP 1066 data transmission. The three parallel sets of 1067 instruments measure the extent to which the receiver 1068 window, network congestion or the senders available data 1069 limit TCP's performance. They reflect bottlenecks at the 1070 receiver, network or sender respectively. It also 1071 includes instruments on all events needed to model 1072 congestion along the network path. The instruments are 1073 sufficient to fit the actual performance to an updated 1074 macroscopic performance model [MSMO97]. This in turn 1075 reveals the nature of the congestion. Table activation 1076 is controlled by tcpEStatsControlSndCong." 1077 ::= { tcpEStats 5 } 1079 tcpEStatsSndCongEntry OBJECT-TYPE 1080 SYNTAX TcpEStatsSndCongEntry 1081 MAX-ACCESS not-accessible 1082 STATUS current 1083 DESCRIPTION 1084 "Per connection sender information." 1085 INDEX { tcpEStatsConnectIndex } 1086 ::= { tcpEStatsSndCongTable 1 } 1088 TcpEStatsSndCongEntry ::= SEQUENCE { 1089 tcpEStatsSndCongSndLimTransRwin Counter32, 1090 tcpEStatsSndCongSndLimTimeRwin Counter32, 1091 tcpEStatsSndCongSndLimTransCwnd Counter32, 1092 tcpEStatsSndCongSndLimTimeCwnd Counter32, 1093 tcpEStatsSndCongSndLimTransSnd Counter32, 1094 tcpEStatsSndCongSndLimTimeSnd Counter32, 1095 tcpEStatsSndCongSlowStart Counter32, 1096 tcpEStatsSndCongCongAvoid Counter32, 1097 tcpEStatsSndCongCongSignals Counter32, 1098 tcpEStatsSndCongOtherReductions Counter32, 1099 tcpEStatsSndCongCongOverCount Counter32, 1100 tcpEStatsSndCongCwndRestores Counter32, 1101 tcpEStatsSndCongCurCwnd Gauge32, 1102 tcpEStatsSndCongMaxSsCwnd Gauge32, 1103 tcpEStatsSndCongMaxCaCwnd Gauge32, 1104 tcpEStatsSndCongLimCwnd Gauge32, 1105 tcpEStatsSndCongCurSsthresh Gauge32, 1106 tcpEStatsSndCongMaxSsthresh Gauge32, 1107 tcpEStatsSndCongMinSsthresh Gauge32 1108 } 1110 tcpEStatsSndCongSndLimTransRwin OBJECT-TYPE 1111 SYNTAX Counter32 1112 MAX-ACCESS read-only 1113 STATUS current 1114 DESCRIPTION 1115 "The number of transitions into the 'Receiver Limited' state 1116 from either the 'Congestion Limited' or 'Sender Limited' 1117 states. This state is entered whenever TCP transmission 1118 stops because the sender has filled the announced receiver 1119 window." 1120 ::= { tcpEStatsSndCongEntry 1 } 1122 tcpEStatsSndCongSndLimTimeRwin OBJECT-TYPE 1123 SYNTAX Counter32 1124 MAX-ACCESS read-only 1125 STATUS current 1126 DESCRIPTION 1127 "The cumulative time (in milliseconds) spent in the 1128 'Receiver Limited' state. See SndLimTransRwin." 1129 ::= { tcpEStatsSndCongEntry 2 } 1131 tcpEStatsSndCongSndLimTransCwnd OBJECT-TYPE 1132 SYNTAX Counter32 1133 MAX-ACCESS read-only 1134 STATUS current 1135 DESCRIPTION 1136 "The number of transitions into the 'Congestion Limited' 1137 state from either the 'Receiver Limited' or 'Sender 1138 Limited' states. This state is entered whenever TCP 1139 transmission stops because the sender has reached some 1140 limit defined by congestion control (e.g. cwnd) or other 1141 algorithms (retransmission timeouts) designed to control 1142 network traffic." 1143 ::= { tcpEStatsSndCongEntry 3 } 1145 tcpEStatsSndCongSndLimTimeCwnd OBJECT-TYPE 1146 SYNTAX Counter32 1147 MAX-ACCESS read-only 1148 STATUS current 1149 DESCRIPTION 1150 "The cumulative time (in milliseconds) spent in the 1151 'Congestion Limited' state. See SndLimTransCwnd. When there 1152 is a retransmission timeout, it should be counted in 1153 SndLimTimeCwnd (and not the cumulative time for some other 1154 state.)" 1155 ::= { tcpEStatsSndCongEntry 4 } 1157 tcpEStatsSndCongSndLimTransSnd OBJECT-TYPE 1158 SYNTAX Counter32 1159 MAX-ACCESS read-only 1160 STATUS current 1161 DESCRIPTION 1162 "The number of transitions into the 'Sender Limited' state 1163 from either the 'Receiver Limited' or 'Congestion Limited' 1164 states. This state is entered whenever TCP transmission 1165 stops due to some sender limit such as running out of 1166 application data or other resources and the Karn algorithm. 1167 When TCP stops sending data for any reason which can not be 1168 classified as Receiver Limited or Congestion Limited it 1169 must be treated as Sender Limited." 1170 ::= { tcpEStatsSndCongEntry 5 } 1172 tcpEStatsSndCongSndLimTimeSnd OBJECT-TYPE 1173 SYNTAX Counter32 1174 MAX-ACCESS read-only 1175 STATUS current 1176 DESCRIPTION 1177 "The cumulative time (in milliseconds) spent in the 'Sender 1178 Limited' state. See SndLimTransSnd." 1179 ::= { tcpEStatsSndCongEntry 6 } 1181 tcpEStatsSndCongSlowStart OBJECT-TYPE 1182 SYNTAX Counter32 1183 MAX-ACCESS read-only 1184 STATUS current 1185 DESCRIPTION 1186 "The number of times the congestion window has been 1187 increased by the Slow Start algorithm. See RFC 2581." 1188 ::= { tcpEStatsSndCongEntry 7 } 1190 tcpEStatsSndCongCongAvoid OBJECT-TYPE 1191 SYNTAX Counter32 1192 MAX-ACCESS read-only 1193 STATUS current 1194 DESCRIPTION 1195 "The number of times the congestion window has been 1196 increased by the Congestion Avoidance algorithm. See RFC 1197 2581." 1198 ::= { tcpEStatsSndCongEntry 8 } 1200 tcpEStatsSndCongCongSignals OBJECT-TYPE 1201 SYNTAX Counter32 1202 MAX-ACCESS read-only 1203 STATUS current 1204 DESCRIPTION 1205 "The number of multiplicative downward congestion window 1206 adjustments due to all forms of congestion signals, 1207 including Fast Retransmit, ECN and timeouts. Note that 1208 retransmission timeouts multiplicatively reduce the window 1209 implicitly by setting ssthresh. In order to minimize 1210 spurious congestion indications due to out-of-order 1211 segments, CongestionSignals should be incremented in 1212 association with the Fast Retransmit algorithm." 1213 ::= { tcpEStatsSndCongEntry 9 } 1215 tcpEStatsSndCongOtherReductions OBJECT-TYPE 1216 SYNTAX Counter32 1217 MAX-ACCESS read-only 1218 STATUS current 1219 DESCRIPTION 1220 "The number of congestion window reductions made as a result 1221 of anything other than AIMD congestion control algorithms. 1222 All window reductions MUST be counted as either 1223 CongestionSignals or OtherReductions. Examples of 1224 non-multiplicative window reductions include experimental 1225 algorithms such as Vegas." 1226 ::= { tcpEStatsSndCongEntry 10 } 1228 tcpEStatsSndCongCongOverCount OBJECT-TYPE 1229 SYNTAX Counter32 1230 MAX-ACCESS read-only 1231 STATUS current 1232 DESCRIPTION 1233 "The number of congestion events which were 'backed out' of 1234 the congestion control state machine such that the 1235 congestion window was restored to a prior value. Backed out 1236 congestion events can not be backed out of 1237 CongestionSignals and PreCongSumCwnd, etc." 1238 ::= { tcpEStatsSndCongEntry 11 } 1240 tcpEStatsSndCongCwndRestores OBJECT-TYPE 1241 SYNTAX Counter32 1242 MAX-ACCESS read-only 1243 STATUS current 1244 DESCRIPTION 1245 "The number of times cwnd is restored from a prior saved 1246 value" 1247 ::= { tcpEStatsSndCongEntry 12 } 1249 tcpEStatsSndCongCurCwnd OBJECT-TYPE 1250 SYNTAX Gauge32 1251 MAX-ACCESS read-only 1252 STATUS current 1253 DESCRIPTION 1254 "The current congestion window, in bytes." 1255 ::= { tcpEStatsSndCongEntry 13 } 1257 tcpEStatsSndCongMaxSsCwnd OBJECT-TYPE 1258 SYNTAX Gauge32 1259 MAX-ACCESS read-only 1260 STATUS current 1261 DESCRIPTION 1262 "The maximum congestion window used during Slow Start, in 1263 bytes." 1264 ::= { tcpEStatsSndCongEntry 14 } 1266 tcpEStatsSndCongMaxCaCwnd OBJECT-TYPE 1267 SYNTAX Gauge32 1268 MAX-ACCESS read-only 1269 STATUS current 1270 DESCRIPTION 1271 "The maximum congestion window used during Congestion 1272 Avoidance, in bytes." 1273 ::= { tcpEStatsSndCongEntry 15 } 1275 tcpEStatsSndCongLimCwnd OBJECT-TYPE 1276 SYNTAX Gauge32 1277 MAX-ACCESS read-write 1278 STATUS current 1279 DESCRIPTION 1280 "The maximum congestion window which may be used, in bytes." 1281 ::= { tcpEStatsSndCongEntry 16 } 1283 tcpEStatsSndCongCurSsthresh OBJECT-TYPE 1284 SYNTAX Gauge32 1285 MAX-ACCESS read-only 1286 STATUS current 1287 DESCRIPTION 1288 "The current slow start threshold in bytes." 1289 ::= { tcpEStatsSndCongEntry 17 } 1291 tcpEStatsSndCongMaxSsthresh OBJECT-TYPE 1292 SYNTAX Gauge32 1293 MAX-ACCESS read-only 1294 STATUS current 1295 DESCRIPTION 1296 "The maximum slow start threshold, excluding the initial 1297 value." 1298 ::= { tcpEStatsSndCongEntry 18 } 1300 tcpEStatsSndCongMinSsthresh OBJECT-TYPE 1301 SYNTAX Gauge32 1302 MAX-ACCESS read-only 1303 STATUS current 1304 DESCRIPTION 1305 "The minimum slow start threshold." 1306 ::= { tcpEStatsSndCongEntry 19 } 1308 -- 1309 -- TCP Path Table 1310 -- 1312 tcpEStatsPathTable OBJECT-TYPE 1313 SYNTAX SEQUENCE OF TcpEStatsPathEntry 1314 MAX-ACCESS not-accessible 1315 STATUS current 1316 DESCRIPTION 1317 "Instruments that characterize the Internet path. 1318 These include dominant properties, such as packet loss, 1319 Round Trip Time (RTT), and Maximum Transmission Unit 1320 (MTU) as well as instruments of other path behaviors 1321 that might effect TCP performance, such as reordering, 1322 source quench, etc. Ideally these instruments would 1323 parallel other IP path metrics, such as the products of the 1324 IPPM working group." 1326 ::= { tcpEStats 6 } 1328 tcpEStatsPathEntry OBJECT-TYPE 1329 SYNTAX TcpEStatsPathEntry 1330 MAX-ACCESS not-accessible 1331 STATUS current 1332 DESCRIPTION 1333 "Stats per connection." 1334 INDEX { tcpEStatsConnectIndex } 1335 ::= { tcpEStatsPathTable 1 } 1337 TcpEStatsPathEntry ::= SEQUENCE { 1338 tcpEStatsPathFastRetran Counter32, 1339 tcpEStatsPathTimeouts Counter32, 1340 tcpEStatsPathSubsequentTimeouts Counter32, 1341 tcpEStatsPathCurTimeoutCount Gauge32, 1342 tcpEStatsPathAbruptTimeouts Counter32, 1343 tcpEStatsPathPktsRetrans Counter32, 1344 tcpEStatsPathBytesRetrans Counter32, 1345 tcpEStatsPathDupAcksIn Counter32, 1346 tcpEStatsPathSACKsRcvd Counter32, 1347 tcpEStatsPathSACKBlocksRcvd Counter32, 1348 tcpEStatsPathPreCongSumCwnd Counter32, 1349 tcpEStatsPathPreCongSumRTT Counter32, 1350 tcpEStatsPathPostCongSumRTT Counter32, 1351 tcpEStatsPathPostCongCountRTT Counter32, 1352 tcpEStatsPathECNsignals Counter32, 1353 tcpEStatsPathECERcvd Counter32, 1354 tcpEStatsPathSendStall Counter32, 1355 tcpEStatsPathQuenchRcvd Counter32, 1356 tcpEStatsPathRetranThresh Gauge32, 1357 tcpEStatsPathSndDupAckEpisodes Integer32, 1358 tcpEStatsPathSumBytesReordered Integer32, 1359 tcpEStatsPathNonRecovDA Counter32, 1360 tcpEStatsPathAckAfterFR Counter32, 1361 tcpEStatsPathDSACKDups Counter32, 1362 tcpEStatsPathSampleRTT Gauge32, 1363 tcpEStatsPathSmoothedRTT Gauge32, 1364 tcpEStatsPathRTTVar Gauge32, 1365 tcpEStatsPathMaxRTT Gauge32, 1366 tcpEStatsPathMinRTT Gauge32, 1367 tcpEStatsPathSumRTT Counter32, 1368 tcpEStatsPathHCSumRTT Counter64, 1369 tcpEStatsPathCountRTT Counter32, 1370 tcpEStatsPathCurRTO Gauge32, 1371 tcpEStatsPathMaxRTO Gauge32, 1372 tcpEStatsPathMinRTO Gauge32, 1373 tcpEStatsPathCurMSS Gauge32, 1374 tcpEStatsPathMaxMSS Gauge32, 1375 tcpEStatsPathMinMSS Gauge32 1376 } 1378 tcpEStatsPathFastRetran OBJECT-TYPE 1379 SYNTAX Counter32 1380 MAX-ACCESS read-only 1381 STATUS current 1382 DESCRIPTION 1383 "The number of invocations of the Fast Retransmit algorithm. 1384 See RFC 2581." 1385 ::= { tcpEStatsPathEntry 1 } 1387 tcpEStatsPathTimeouts OBJECT-TYPE 1388 SYNTAX Counter32 1389 MAX-ACCESS read-only 1390 STATUS current 1391 DESCRIPTION 1392 "The number of times the retransmit timeout has expired when 1393 the RTO backoff multiplier is equal to one. See RFC 2988." 1394 ::= { tcpEStatsPathEntry 2 } 1396 tcpEStatsPathSubsequentTimeouts OBJECT-TYPE 1397 SYNTAX Counter32 1398 MAX-ACCESS read-only 1399 STATUS current 1400 DESCRIPTION 1401 "The number of times the retransmit timeout has expired when 1402 the RTO backoff multiplier is greater than one. See RFC 1403 2988." 1404 ::= { tcpEStatsPathEntry 3 } 1406 tcpEStatsPathCurTimeoutCount OBJECT-TYPE 1407 SYNTAX Gauge32 1408 MAX-ACCESS read-only 1409 STATUS current 1410 DESCRIPTION 1411 "The current number of times the retransmit timeout has 1412 expired without receiving an acknowledgment for new data. 1413 See RFC 2988." 1414 ::= { tcpEStatsPathEntry 4 } 1416 tcpEStatsPathAbruptTimeouts OBJECT-TYPE 1417 SYNTAX Counter32 1418 MAX-ACCESS read-only 1419 STATUS current 1420 DESCRIPTION 1421 "The number of timeouts that occured without any immediately 1422 preceding duplicate acknowledgments or other indications of 1423 congestion as determined by the implementation." 1424 ::= { tcpEStatsPathEntry 5 } 1426 tcpEStatsPathPktsRetrans OBJECT-TYPE 1427 SYNTAX Counter32 1428 MAX-ACCESS read-only 1429 STATUS current 1430 DESCRIPTION 1431 "The number of segments transmitted containing at least some 1432 retransmitted data." 1433 ::= { tcpEStatsPathEntry 6 } 1435 tcpEStatsPathBytesRetrans OBJECT-TYPE 1436 SYNTAX Counter32 1437 MAX-ACCESS read-only 1438 STATUS current 1439 DESCRIPTION 1440 "The number of bytes retransmitted." 1441 ::= { tcpEStatsPathEntry 7 } 1443 tcpEStatsPathDupAcksIn OBJECT-TYPE 1444 SYNTAX Counter32 1445 MAX-ACCESS read-only 1446 STATUS current 1447 DESCRIPTION 1448 "The number of duplicate ACKs received." 1449 ::= { tcpEStatsPathEntry 8 } 1451 tcpEStatsPathSACKsRcvd OBJECT-TYPE 1452 SYNTAX Counter32 1453 MAX-ACCESS read-only 1454 STATUS current 1455 DESCRIPTION 1456 "The number of SACK options received. See RFC 2018." 1457 ::= { tcpEStatsPathEntry 9 } 1459 tcpEStatsPathSACKBlocksRcvd OBJECT-TYPE 1460 SYNTAX Counter32 1461 MAX-ACCESS read-only 1462 STATUS current 1463 DESCRIPTION 1464 "The number of SACK blocks received (within SACK options)." 1465 ::= { tcpEStatsPathEntry 10 } 1467 tcpEStatsPathPreCongSumCwnd OBJECT-TYPE 1468 SYNTAX Counter32 1469 MAX-ACCESS read-only 1470 STATUS current 1471 DESCRIPTION 1472 "The sum of the values of the congestion window, in bytes, 1473 captured each time a congestion signal is received. This 1474 MUST be updated each time CongestionSignals is incremented, 1475 such that the ratio is the average window at congestion." 1476 ::= { tcpEStatsPathEntry 11 } 1478 tcpEStatsPathPreCongSumRTT OBJECT-TYPE 1479 SYNTAX Counter32 1480 MAX-ACCESS read-only 1481 STATUS current 1482 DESCRIPTION 1483 "Sum of the last sample of the RTT (SampledRTT) prior to 1484 received congestion signals. This MUST be updated each time 1485 CongestionSignals is incremented, such that the ratio is 1486 the average RTT just prior to congestion." 1487 ::= { tcpEStatsPathEntry 12 } 1489 tcpEStatsPathPostCongSumRTT OBJECT-TYPE 1490 SYNTAX Counter32 1491 MAX-ACCESS read-only 1492 STATUS current 1493 DESCRIPTION 1494 "Sum of the first RTT sample following a received congestion 1495 signal." 1496 ::= { tcpEStatsPathEntry 13 } 1498 tcpEStatsPathPostCongCountRTT OBJECT-TYPE 1499 SYNTAX Counter32 1500 MAX-ACCESS read-only 1501 STATUS current 1502 DESCRIPTION 1503 "The number of RTT samples included in PostCongSumRTT, such 1504 that the ratio is average RTT just after congestion." 1505 ::= { tcpEStatsPathEntry 14 } 1507 tcpEStatsPathECNsignals OBJECT-TYPE 1508 SYNTAX Counter32 1509 MAX-ACCESS read-only 1510 STATUS current 1511 DESCRIPTION 1512 "The number of congestion signals delivered via all forms of 1513 explicit congestion notification including the ECE bit and 1514 failing the ECN nonce check, etc." 1515 ::= { tcpEStatsPathEntry 15 } 1517 tcpEStatsPathECERcvd OBJECT-TYPE 1518 SYNTAX Counter32 1519 MAX-ACCESS read-only 1520 STATUS current 1521 DESCRIPTION 1522 "The number of congestion signals received via the RFC3168 1523 ECE bit." 1524 ::= { tcpEStatsPathEntry 16 } 1526 tcpEStatsPathSendStall OBJECT-TYPE 1527 SYNTAX Counter32 1528 MAX-ACCESS read-only 1529 STATUS current 1530 DESCRIPTION 1531 "The number of interface stalls or other sender local 1532 resource limitations that are treated as congestion 1533 signals." 1534 ::= { tcpEStatsPathEntry 17 } 1536 tcpEStatsPathQuenchRcvd OBJECT-TYPE 1537 SYNTAX Counter32 1538 MAX-ACCESS read-only 1539 STATUS current 1540 DESCRIPTION 1541 "The number of ICMP quench messages that are treated as 1542 congestion signals." 1543 ::= { tcpEStatsPathEntry 18 } 1545 tcpEStatsPathRetranThresh OBJECT-TYPE 1546 SYNTAX Gauge32 1547 MAX-ACCESS read-only 1548 STATUS current 1549 DESCRIPTION 1550 "The number of duplicate acknowledgments required to trigger 1551 Fast Retransmit." 1552 ::= { tcpEStatsPathEntry 19 } 1554 tcpEStatsPathSndDupAckEpisodes OBJECT-TYPE 1555 SYNTAX Integer32 1556 MAX-ACCESS read-only 1557 STATUS current 1558 DESCRIPTION 1559 "The number of times that a duplicate acknowledgment episode 1560 ends without a retransmission (e.g. due to reordered data)." 1561 ::= { tcpEStatsPathEntry 20 } 1563 tcpEStatsPathSumBytesReordered OBJECT-TYPE 1564 SYNTAX Integer32 1565 MAX-ACCESS read-only 1566 STATUS current 1567 DESCRIPTION 1568 "The sum of the amounts SND.UNA advances on the 1569 acknowledgment which ends a dup-ack episode without a 1570 retransmission." 1571 ::= { tcpEStatsPathEntry 21 } 1573 tcpEStatsPathNonRecovDA OBJECT-TYPE 1574 SYNTAX Counter32 1575 MAX-ACCESS read-only 1576 STATUS current 1577 DESCRIPTION 1578 "Duplicate acks (or SACKS) attributed to out-of-order 1579 segments because they were withdrawn prior to reaching 1580 RetranThresh and triggering fast retransmit." 1581 ::= { tcpEStatsPathEntry 22 } 1583 tcpEStatsPathAckAfterFR OBJECT-TYPE 1584 SYNTAX Counter32 1585 MAX-ACCESS read-only 1586 STATUS current 1587 DESCRIPTION 1588 "The number of acknowledgments reporting out-of-order 1589 segments after the segments have already be retransmitted 1590 (For example as detected by the Eiffel algorithm)." 1591 ::= { tcpEStatsPathEntry 23 } 1593 tcpEStatsPathDSACKDups OBJECT-TYPE 1594 SYNTAX Counter32 1595 MAX-ACCESS read-only 1596 STATUS current 1597 DESCRIPTION 1598 "The number of duplicate segments reported to the local host 1599 by D-SACK blocks. See RFC 2883." 1600 ::= { tcpEStatsPathEntry 24 } 1602 tcpEStatsPathSampleRTT OBJECT-TYPE 1603 SYNTAX Gauge32 1604 MAX-ACCESS read-only 1605 STATUS current 1606 DESCRIPTION 1607 "The most recent raw round trip time measurement, in 1608 milliseconds, used in calculation of the RTO." 1609 ::= { tcpEStatsPathEntry 25 } 1611 tcpEStatsPathSmoothedRTT OBJECT-TYPE 1612 SYNTAX Gauge32 1613 MAX-ACCESS read-only 1614 STATUS current 1615 DESCRIPTION 1616 "The smoothed round trip time, in milliseconds, used in 1617 calculation of the RTO. See SRTT in RFC 2988" 1618 ::= { tcpEStatsPathEntry 26 } 1620 tcpEStatsPathRTTVar OBJECT-TYPE 1621 SYNTAX Gauge32 1622 MAX-ACCESS read-only 1623 STATUS current 1624 DESCRIPTION 1625 "The round trip time variation, in milliseconds, used in 1626 calculation of the RTO. See RTTVAR in RFC 2988." 1627 ::= { tcpEStatsPathEntry 27 } 1629 tcpEStatsPathMaxRTT OBJECT-TYPE 1630 SYNTAX Gauge32 1631 MAX-ACCESS read-only 1632 STATUS current 1633 DESCRIPTION 1634 "The maximum sampled round trip time, in milliseconds." 1635 ::= { tcpEStatsPathEntry 28 } 1637 tcpEStatsPathMinRTT OBJECT-TYPE 1638 SYNTAX Gauge32 1639 MAX-ACCESS read-only 1640 STATUS current 1641 DESCRIPTION 1642 "The minimum sampled round trip time, in milliseconds." 1643 ::= { tcpEStatsPathEntry 29 } 1645 tcpEStatsPathSumRTT OBJECT-TYPE 1646 SYNTAX Counter32 1647 MAX-ACCESS read-only 1648 STATUS current 1649 DESCRIPTION 1650 "The sum of all sampled round trip times, in milliseconds." 1651 ::= { tcpEStatsPathEntry 30 } 1653 tcpEStatsPathHCSumRTT OBJECT-TYPE 1654 SYNTAX Counter64 1655 MAX-ACCESS read-only 1656 STATUS current 1657 DESCRIPTION 1658 "The sum of all sampled round trip times, in milliseconds, 1659 on all systems that implement multiple concurrent RTT 1660 measurements." 1661 ::= { tcpEStatsPathEntry 31 } 1663 tcpEStatsPathCountRTT OBJECT-TYPE 1664 SYNTAX Counter32 1665 MAX-ACCESS read-only 1666 STATUS current 1667 DESCRIPTION 1668 "The number of round trip time samples included in SumRTT." 1669 ::= { tcpEStatsPathEntry 32 } 1671 tcpEStatsPathCurRTO OBJECT-TYPE 1672 SYNTAX Gauge32 1673 MAX-ACCESS read-only 1674 STATUS current 1675 DESCRIPTION 1676 "The current value of the retransmit timer RTO, in 1677 milliseconds, not scaled by the RTO backoff multiplier. See 1678 RFC 2988." 1679 ::= { tcpEStatsPathEntry 33 } 1681 tcpEStatsPathMaxRTO OBJECT-TYPE 1682 SYNTAX Gauge32 1683 MAX-ACCESS read-only 1684 STATUS current 1685 DESCRIPTION 1686 "The maximum value of the retransmit timer RTO, in 1687 milliseconds, not scaled by the RTO backoff multiplier. See 1688 RFC 2988." 1689 ::= { tcpEStatsPathEntry 34 } 1691 tcpEStatsPathMinRTO OBJECT-TYPE 1692 SYNTAX Gauge32 1693 MAX-ACCESS read-only 1694 STATUS current 1695 DESCRIPTION 1696 "The minimum value of the retransmit timer RTO, in 1697 milliseconds, not scaled by the RTO backoff multiplier. See 1698 RFC 2988." 1699 ::= { tcpEStatsPathEntry 35 } 1701 tcpEStatsPathCurMSS OBJECT-TYPE 1702 SYNTAX Gauge32 1703 MAX-ACCESS read-only 1704 STATUS current 1705 DESCRIPTION 1706 "The current maximum segment size (MSS), in bytes." 1707 ::= { tcpEStatsPathEntry 36 } 1709 tcpEStatsPathMaxMSS OBJECT-TYPE 1710 SYNTAX Gauge32 1711 MAX-ACCESS read-only 1712 STATUS current 1713 DESCRIPTION 1714 "The maximum MSS, in bytes. See RFC 1191." 1715 ::= { tcpEStatsPathEntry 37 } 1717 tcpEStatsPathMinMSS OBJECT-TYPE 1718 SYNTAX Gauge32 1719 MAX-ACCESS read-only 1720 STATUS current 1721 DESCRIPTION 1722 "The minimum MSS, in bytes. See RFC 1191." 1723 ::= { tcpEStatsPathEntry 38 } 1725 -- 1726 -- TCP Sender Buffer Table 1727 -- 1729 tcpEStatsSendBuffTable OBJECT-TYPE 1730 SYNTAX SEQUENCE OF TcpEStatsSendBuffEntry 1731 MAX-ACCESS not-accessible 1732 STATUS current 1733 DESCRIPTION 1734 "Instruments on the senders buffer usage, including any 1735 buffering in the application interface to TCP and the 1736 retransmit queue. Table activation is controlled by 1737 tcpEStatsControlSendBuff." 1738 ::= { tcpEStats 7 } 1740 tcpEStatsSendBuffEntry OBJECT-TYPE 1741 SYNTAX TcpEStatsSendBuffEntry 1742 MAX-ACCESS not-accessible 1743 STATUS current 1744 DESCRIPTION 1745 "Per connection sender buffer information." 1746 INDEX { tcpEStatsConnectIndex } 1747 ::= { tcpEStatsSendBuffTable 1 } 1749 TcpEStatsSendBuffEntry ::= SEQUENCE { 1750 tcpEStatsSendBuffCurRetxQueue Gauge32, 1751 tcpEStatsSendBuffMaxRetxQueue Gauge32, 1752 tcpEStatsSendBuffCurAppWQueue Gauge32, 1753 tcpEStatsSendBuffMaxAppWQueue Gauge32 1754 } 1756 tcpEStatsSendBuffCurRetxQueue OBJECT-TYPE 1757 SYNTAX Gauge32 1758 MAX-ACCESS read-only 1759 STATUS current 1760 DESCRIPTION 1761 "The current number of bytes of data occupying the 1762 retransmit queue." 1763 ::= { tcpEStatsSendBuffEntry 1 } 1765 tcpEStatsSendBuffMaxRetxQueue OBJECT-TYPE 1766 SYNTAX Gauge32 1767 MAX-ACCESS read-only 1768 STATUS current 1769 DESCRIPTION 1770 "The maximum number of bytes of data occupying the 1771 retransmit queue." 1772 ::= { tcpEStatsSendBuffEntry 2 } 1774 tcpEStatsSendBuffCurAppWQueue OBJECT-TYPE 1775 SYNTAX Gauge32 1776 MAX-ACCESS read-only 1777 STATUS current 1778 DESCRIPTION 1779 "The current number of bytes of application data queued 1780 pending first transmission." 1781 ::= { tcpEStatsSendBuffEntry 3 } 1783 tcpEStatsSendBuffMaxAppWQueue OBJECT-TYPE 1784 SYNTAX Gauge32 1785 MAX-ACCESS read-only 1786 STATUS current 1787 DESCRIPTION 1788 "The maximum number of bytes of application data queued 1789 pending first transmission." 1790 ::= { tcpEStatsSendBuffEntry 4 } 1792 -- 1793 -- TCP Local Receiver Table 1794 -- 1796 tcpEStatsRecTable OBJECT-TYPE 1797 SYNTAX SEQUENCE OF TcpEStatsRecEntry 1798 MAX-ACCESS not-accessible 1799 STATUS current 1800 DESCRIPTION 1801 "Instruments on the state of the local receiver and 1802 instruments on the receiver buffer usage, including any 1803 buffering in the application interface to TCP and the 1804 reassembly queue. Table activation is controlled by 1805 tcpEStatsControlRec." 1806 ::= { tcpEStats 8 } 1808 tcpEStatsRecEntry OBJECT-TYPE 1809 SYNTAX TcpEStatsRecEntry 1810 MAX-ACCESS not-accessible 1811 STATUS current 1812 DESCRIPTION 1813 "Per connection information on the local receiver." 1814 INDEX { tcpEStatsConnectIndex } 1815 ::= { tcpEStatsRecTable 1 } 1817 TcpEStatsRecEntry ::= SEQUENCE { 1818 tcpEStatsRecCurRwinSent Gauge32, 1819 tcpEStatsRecMaxRwinSent Gauge32, 1820 tcpEStatsRecMinRwinSent Gauge32, 1821 tcpEStatsRecLimRwin Gauge32, 1822 tcpEStatsRecDupAckEpisodes Counter32, 1823 tcpEStatsRecDupAcksOut Counter32, 1824 tcpEStatsRecCERcvd Counter32, 1825 tcpEStatsRecECNSent Counter32, 1826 tcpEStatsRecECNNonceRcvd Counter32, 1827 tcpEStatsRecCurReasmQueue Gauge32, 1828 tcpEStatsRecMaxReasmQueue Gauge32, 1829 tcpEStatsRecCurAppRQueue Gauge32, 1830 tcpEStatsRecMaxAppRQueue Gauge32 1831 } 1833 tcpEStatsRecCurRwinSent OBJECT-TYPE 1834 SYNTAX Gauge32 1835 MAX-ACCESS read-only 1836 STATUS current 1837 DESCRIPTION 1838 "The most recent window advertisement sent, in bytes." 1839 ::= { tcpEStatsRecEntry 1 } 1841 tcpEStatsRecMaxRwinSent OBJECT-TYPE 1842 SYNTAX Gauge32 1843 MAX-ACCESS read-only 1844 STATUS current 1845 DESCRIPTION 1846 "The maximum window advertisement sent, in bytes." 1847 ::= { tcpEStatsRecEntry 2 } 1849 tcpEStatsRecMinRwinSent OBJECT-TYPE 1850 SYNTAX Gauge32 1851 MAX-ACCESS read-only 1852 STATUS current 1853 DESCRIPTION 1854 "The minimum window advertisement sent, excluding the 1855 initial unscaled window advertised on the SYN, in bytes." 1857 ::= { tcpEStatsRecEntry 3 } 1859 tcpEStatsRecLimRwin OBJECT-TYPE 1860 SYNTAX Gauge32 1861 MAX-ACCESS read-write 1862 STATUS current 1863 DESCRIPTION 1864 "The maximum window advertisement which may be sent, in 1865 bytes." 1866 ::= { tcpEStatsRecEntry 4 } 1868 tcpEStatsRecDupAckEpisodes OBJECT-TYPE 1869 SYNTAX Counter32 1870 MAX-ACCESS read-only 1871 STATUS current 1872 DESCRIPTION 1873 "The number of times that a contiguous series of duplicate 1874 acknowledgments have been sent." 1875 ::= { tcpEStatsRecEntry 5 } 1877 tcpEStatsRecDupAcksOut OBJECT-TYPE 1878 SYNTAX Counter32 1879 MAX-ACCESS read-only 1880 STATUS current 1881 DESCRIPTION 1882 "The number of duplicate ACKs sent." 1883 ::= { tcpEStatsRecEntry 6 } 1885 tcpEStatsRecCERcvd OBJECT-TYPE 1886 SYNTAX Counter32 1887 MAX-ACCESS read-only 1888 STATUS current 1889 DESCRIPTION 1890 "Received segments with Congestion Experienced bits. See RFC 1891 2481." 1892 ::= { tcpEStatsRecEntry 7 } 1894 tcpEStatsRecECNSent OBJECT-TYPE 1895 SYNTAX Counter32 1896 MAX-ACCESS read-only 1897 STATUS current 1898 DESCRIPTION 1899 "Number of times CE bits have set ECN. See RFC 2481." 1900 ::= { tcpEStatsRecEntry 8 } 1902 tcpEStatsRecECNNonceRcvd OBJECT-TYPE 1903 SYNTAX Counter32 1904 MAX-ACCESS read-only 1905 STATUS current 1906 DESCRIPTION 1907 "Number of ECN Nonces received. Note that the low bit is the 1908 same as the one bit nonce sum." 1909 ::= { tcpEStatsRecEntry 9 } 1911 tcpEStatsRecCurReasmQueue OBJECT-TYPE 1912 SYNTAX Gauge32 1913 MAX-ACCESS read-only 1914 STATUS current 1915 DESCRIPTION 1916 "The current number of bytes of sequence space spanned by 1917 the reassembly queue. This is generally the difference 1918 between rcv.nxt and the sequence number of the right most 1919 edge of the reassembly queue." 1920 ::= { tcpEStatsRecEntry 10 } 1922 tcpEStatsRecMaxReasmQueue OBJECT-TYPE 1923 SYNTAX Gauge32 1924 MAX-ACCESS read-only 1925 STATUS current 1926 DESCRIPTION 1927 "The maximum value of CurReasmQueue" 1928 ::= { tcpEStatsRecEntry 11 } 1930 tcpEStatsRecCurAppRQueue OBJECT-TYPE 1931 SYNTAX Gauge32 1932 MAX-ACCESS read-only 1933 STATUS current 1934 DESCRIPTION 1935 "The current number of bytes of application data that has 1936 been acknowledged by TCP but not yet delivered to the 1937 application." 1938 ::= { tcpEStatsRecEntry 12 } 1940 tcpEStatsRecMaxAppRQueue OBJECT-TYPE 1941 SYNTAX Gauge32 1942 MAX-ACCESS read-only 1943 STATUS current 1944 DESCRIPTION 1945 "The maximum number of bytes of application data that has 1946 been acknowledged by TCP but not yet delivered to the 1947 application." 1948 ::= { tcpEStatsRecEntry 13 } 1950 -- 1951 -- TCP Observed Receiver Window Table 1952 -- 1953 tcpEStatsObsRecTable OBJECT-TYPE 1954 SYNTAX SEQUENCE OF TcpEStatsObsRecEntry 1955 MAX-ACCESS not-accessible 1956 STATUS current 1957 DESCRIPTION 1958 "Instruments on receiver window updates that can be used 1959 to identify bottlenecks at the receiver. These can be 1960 collected at the sender or anywhere along the network 1961 path, including at the receiver. Table activation is 1962 controlled by tcpEStatsControlObsRec." 1963 ::= { tcpEStats 9 } 1965 tcpEStatsObsRecEntry OBJECT-TYPE 1966 SYNTAX TcpEStatsObsRecEntry 1967 MAX-ACCESS not-accessible 1968 STATUS current 1969 DESCRIPTION 1970 "Per connection information on receiver window." 1971 INDEX { tcpEStatsConnectIndex } 1972 ::= { tcpEStatsObsRecTable 1 } 1974 TcpEStatsObsRecEntry ::= SEQUENCE { 1975 tcpEStatsObsRecCurRwinRcvd Gauge32, 1976 tcpEStatsObsRecMaxRwinRcvd Gauge32, 1977 tcpEStatsObsRecMinRwinRcvd Gauge32 1978 } 1980 tcpEStatsObsRecCurRwinRcvd OBJECT-TYPE 1981 SYNTAX Gauge32 1982 MAX-ACCESS read-only 1983 STATUS current 1984 DESCRIPTION 1985 "The most recent window advertisement received, in bytes." 1986 ::= { tcpEStatsObsRecEntry 1 } 1988 tcpEStatsObsRecMaxRwinRcvd OBJECT-TYPE 1989 SYNTAX Gauge32 1990 MAX-ACCESS read-only 1991 STATUS current 1992 DESCRIPTION 1993 "The maximum window advertisement received, in bytes." 1994 ::= { tcpEStatsObsRecEntry 2 } 1996 tcpEStatsObsRecMinRwinRcvd OBJECT-TYPE 1997 SYNTAX Gauge32 1998 MAX-ACCESS read-only 1999 STATUS current 2000 DESCRIPTION 2001 "The minimum window advertisement received, in bytes." 2002 ::= { tcpEStatsObsRecEntry 3 } 2004 -- 2005 -- TCP Extended Statistics Notifications Group 2006 -- 2008 tcpEStatsEstablishNotification NOTIFICATION-TYPE 2009 OBJECTS { 2010 tcpEStatsConnectIndex 2011 } 2012 STATUS current 2013 DESCRIPTION 2014 "The indicated connection has entered the 2015 established state" 2016 ::= { tcpEStatsNotifications 1 } 2018 tcpEStatsCloseNotification NOTIFICATION-TYPE 2019 OBJECTS { 2020 tcpEStatsConnectIndex 2021 } 2022 STATUS current 2023 DESCRIPTION 2024 "The indicated connection has left the 2025 established state" 2026 ::= { tcpEStatsNotifications 2 } 2028 -- 2029 -- Conformance Definitions 2030 -- 2032 tcpEStatsCompliances OBJECT IDENTIFIER 2033 ::= { tcpEStatsConformance 1 } 2034 tcpEStatsGroups OBJECT IDENTIFIER 2035 ::= { tcpEStatsConformance 2 } 2037 -- 2038 -- Compliance Statements 2039 -- 2041 tcpEStatsCompliance MODULE-COMPLIANCE 2042 STATUS current 2043 DESCRIPTION 2044 "Compliance statement for all systems that implement TCP 2045 extended statistics." 2046 MODULE -- this module 2047 MANDATORY-GROUPS { 2048 tcpEStatsGroup, 2049 tcpEStatsControlGroup, 2050 tcpEStatsNotificationsGroup 2051 } 2052 ::= { tcpEStatsCompliances 1 } 2054 -- 2055 -- Units of Conformance 2056 -- 2057 tcpEStatsGroup OBJECT-GROUP 2058 OBJECTS { 2059 tcpEStatsConnectionState, tcpEStatsConnectionSACK, 2060 tcpEStatsConnectionTimeStamps, 2061 tcpEStatsConnectionECN, tcpEStatsConnectionNagle, 2062 tcpEStatsConnectionSndWindScale, 2063 tcpEStatsConnectionRcvWindScale, 2064 tcpEStatsSynOptsActiveOpen, 2065 tcpEStatsSynOptsMSSSent, tcpEStatsSynOptsMSSRcvd, 2066 tcpEStatsSynOptsWinScaleSent, 2067 tcpEStatsSynOptsWinScaleRcvd, 2068 tcpEStatsSynOptsSACKokSent, 2069 tcpEStatsSynOptsSACKokRcvd, 2070 tcpEStatsSynOptsTimeStampSent, 2071 tcpEStatsSynOptsTimeStampRcvd, 2072 tcpEStatsDataPktsOut, tcpEStatsDataDataPktsOut, 2073 tcpEStatsDataDataBytesOut, 2074 tcpEStatsDataHCDataBytesOut, tcpEStatsDataPktsIn, 2075 tcpEStatsDataDataPktsIn, tcpEStatsDataDataBytesIn, 2076 tcpEStatsDataHCDataBytesIn, 2077 tcpEStatsDataSoftErrors, 2078 tcpEStatsDataSoftErrorReason, tcpEStatsDataIpTtl, 2079 tcpEStatsDataIpTos, tcpEStatsDataSndUna, 2080 tcpEStatsDataSndNxt, tcpEStatsDataSndMax, 2081 tcpEStatsDataThruBytesAcked, 2082 tcpEStatsDataHCThruBytesAcked, 2083 tcpEStatsDataSndInitial, tcpEStatsDataRcvNxt, 2084 tcpEStatsDataThruBytesReceived, 2085 tcpEStatsDataHCThruBytesReceived, 2086 tcpEStatsDataRecInitial, tcpEStatsDataElapsedSecs, 2087 tcpEStatsDataDurationMicroSecs, 2088 tcpEStatsDataStartTimeStamp, 2089 tcpEStatsSndCongSndLimTransRwin, 2090 tcpEStatsSndCongSndLimTimeRwin, 2091 tcpEStatsSndCongSndLimTransCwnd, 2092 tcpEStatsSndCongSndLimTimeCwnd, 2093 tcpEStatsSndCongSndLimTransSnd, 2094 tcpEStatsSndCongSndLimTimeSnd, 2095 tcpEStatsSndCongSlowStart, 2096 tcpEStatsSndCongCongAvoid, 2097 tcpEStatsSndCongCongSignals, 2098 tcpEStatsSndCongOtherReductions, 2099 tcpEStatsSndCongCongOverCount, 2100 tcpEStatsSndCongCwndRestores, 2101 tcpEStatsSndCongCurCwnd, 2102 tcpEStatsSndCongMaxSsCwnd, 2103 tcpEStatsSndCongMaxCaCwnd, 2104 tcpEStatsSndCongLimCwnd, 2105 tcpEStatsSndCongCurSsthresh, 2106 tcpEStatsSndCongMaxSsthresh, 2107 tcpEStatsSndCongMinSsthresh, 2108 tcpEStatsPathFastRetran, tcpEStatsPathTimeouts, 2109 tcpEStatsPathSubsequentTimeouts, 2110 tcpEStatsPathCurTimeoutCount, 2111 tcpEStatsPathAbruptTimeouts, 2112 tcpEStatsPathPktsRetrans, 2113 tcpEStatsPathBytesRetrans, tcpEStatsPathDupAcksIn, 2114 tcpEStatsPathSACKsRcvd, 2115 tcpEStatsPathSACKBlocksRcvd, 2116 tcpEStatsPathPreCongSumCwnd, 2117 tcpEStatsPathPreCongSumRTT, 2118 tcpEStatsPathPostCongSumRTT, 2119 tcpEStatsPathPostCongCountRTT, 2120 tcpEStatsPathECNsignals, tcpEStatsPathECERcvd, 2121 tcpEStatsPathSendStall, tcpEStatsPathQuenchRcvd, 2122 tcpEStatsPathRetranThresh, 2123 tcpEStatsPathSndDupAckEpisodes, 2124 tcpEStatsPathSumBytesReordered, 2125 tcpEStatsPathNonRecovDA, tcpEStatsPathAckAfterFR, 2126 tcpEStatsPathDSACKDups, tcpEStatsPathSampleRTT, 2127 tcpEStatsPathSmoothedRTT, tcpEStatsPathRTTVar, 2128 tcpEStatsPathMaxRTT, tcpEStatsPathMinRTT, 2129 tcpEStatsPathSumRTT, tcpEStatsPathHCSumRTT, 2130 tcpEStatsPathCountRTT, tcpEStatsPathCurRTO, 2131 tcpEStatsPathMaxRTO, tcpEStatsPathMinRTO, 2132 tcpEStatsPathCurMSS, tcpEStatsPathMaxMSS, 2133 tcpEStatsPathMinMSS, 2134 tcpEStatsSendBuffCurRetxQueue, 2135 tcpEStatsSendBuffMaxRetxQueue, 2136 tcpEStatsSendBuffCurAppWQueue, 2137 tcpEStatsSendBuffMaxAppWQueue, 2138 tcpEStatsRecCurRwinSent, tcpEStatsRecMaxRwinSent, 2139 tcpEStatsRecMinRwinSent, tcpEStatsRecLimRwin, 2140 tcpEStatsRecDupAckEpisodes, 2141 tcpEStatsRecDupAcksOut, tcpEStatsRecCERcvd, 2142 tcpEStatsRecECNSent, tcpEStatsRecECNNonceRcvd, 2143 tcpEStatsRecCurReasmQueue, 2144 tcpEStatsRecMaxReasmQueue, 2145 tcpEStatsRecCurAppRQueue, 2146 tcpEStatsRecMaxAppRQueue, 2147 tcpEStatsObsRecCurRwinRcvd, 2148 tcpEStatsObsRecMaxRwinRcvd, 2149 tcpEStatsObsRecMinRwinRcvd, 2150 tcpEStatsHCInSegs, tcpEStatsHCOutSegs, 2151 tcpEStatsListenerTableLastChange, tcpEStatsListenerTimeOuts, 2152 tcpEStatsListenerEstablished, tcpEStatsListenerStartTime, 2153 tcpEStatsConnectIndex 2154 } 2155 STATUS current 2156 DESCRIPTION 2157 "The tcpEStats group includes objects that provide 2158 valuable statistics and debugging information for 2159 TCP Connections." 2161 ::= { tcpEStatsGroups 1 } 2163 tcpEStatsControlGroup OBJECT-GROUP 2164 OBJECTS { 2165 tcpEStatsControlState, tcpEStatsControlSynOpts, 2166 tcpEStatsControlData, tcpEStatsControlSndCong, 2167 tcpEStatsControlPath, tcpEStatsControlSendBuff, 2168 tcpEStatsControlRec, tcpEStatsControlObsRec 2169 } 2170 STATUS current 2171 DESCRIPTION 2172 "The tcpEStatsControl group consists of objects 2173 that control collection of statistics/debugging 2174 information for TCP connections." 2176 ::= { tcpEStatsGroups 2 } 2178 tcpEStatsNotificationsGroup NOTIFICATION-GROUP 2179 NOTIFICATIONS { 2180 tcpEStatsEstablishNotification, 2181 tcpEStatsCloseNotification 2182 } 2183 STATUS current 2184 DESCRIPTION 2185 "Notifications sent by a TCP extended statistics agent." 2186 ::= { tcpEStatsGroups 3 } 2188 END 2190 5. Normative References 2192 [RFC2574] U. Blumenthal, B. Wijnen, "User-based Security Model (USM) 2193 for version 3 of the Simple Network Management Protocol (SNMPv3)", 2194 RFC2574, April 1999. 2196 [RFC2575] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access 2197 Control Model (VACM) for the Simple Network Management Protocol 2198 (SNMP)", RFC 2575, April 1999. 2200 [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., 2201 Rose, M., and S. Waldbusser, "Structure of Management Information 2202 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 2204 [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., 2205 Rose, M., and S. Waldbusser, "Textual Conventions for SMIv2", STD 2206 58, RFC 2579, April 1999. 2208 [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., 2209 Rose, M., and S. Waldbusser, "Conformance Statements for SMIv2", 2210 STD 58, RFC 2580, April 1999. 2212 6. Informative References 2214 [RFC2012] McCloghrie, K., "SNMPv2 Management Information Base for the 2215 Transmission Control Protocol using SMIv2", RFC 2012, November 2216 1996. 2218 [RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction 2219 and Applicability Statements for Internet-Standard Management 2220 Framework", RFC 3410, December 2002. 2222 [RFC2012bis] Bill Fenner, et al, "Management Information Base for the 2223 Transmission Control Protocol (TCP)" Internet-Draft draft-ietf- 2224 ipngwg-rfc2012-update-00.txt, expires January 2002. 2226 [MSMO97] M. Mathis, J. Semke, J. Mahdavi, T. Ott, "The Macroscopic 2227 Behavior of the TCP Congestion Avoidance Algorithm", Computer Com- 2228 munication Review, volume 27, number3, July 1997. 2230 7. Security Considerations 2232 There are a number of management objects defined in this MIB that 2233 have a MAX-ACCESS clause of read-write and/or read-create. Such 2234 objects may be considered sensitive or vulnerable in some network 2235 environments. The support for SET operations in a non-secure envi- 2236 ronment without proper protection can have a negative effect on net- 2237 work operations. 2239 There are a number of managed objects in this MIB that may contain 2240 sensitive information. These are: 2242 tcpEStatsConnectRemAddress tcpEStatsDataSndUna tcpEStatsDataSndNxt 2243 tcpEStatsDataSndMax tcpEStatsDataSendInitial tcpEStatsDataRcvNxt 2244 tcpEStatsDataRecInitial 2246 It is thus important to control even GET access to these objects and 2247 possibly to even encrypt the values of these objects when sending 2248 them over the network via SNMP. Not all versions of SNMP provide 2249 features for such a secure environment. SNMPv1 by itself is not a 2250 secure environment. Even if the network itself is secure (for exam- 2251 ple by using IPSec) there is no control as to who on the secure net- 2252 work is allowed to access and GET/SET (read/change/create/delete) the 2253 objects in this MIB. 2255 It is recommended that implementers consider using the security fea- 2256 tures as provided by the SNMPv3 framework. Specifically, the use of 2257 the User-based Security Model RFC 2574 [RFC2574] and the View-based 2258 Access Control Model RFC 2575 [RFC2575] is recommended. 2260 It is then a customer/user responsibility to ensure that the SNMP 2261 entity giving access to an instance of this MIB, is properly config- 2262 ured to only give access to the objects to those principals (users) 2263 that have legitimate rights to indeed GET or SET (change/cre- 2264 ate/delete) them. 2266 8. Contributors 2268 The following people have contributed substantially to this document. 2270 Some of the objects in this document were moved from an early draft 2271 of RFC2012bis, by Bill Fenner etal. 2273 Some of the object descriptions are based on an earlier unpublished 2274 document by Jeff Semke. 2276 9. Acknowledgments 2278 This document is a product of Web100 (see: www.web100.org), a joint 2279 project of the Pittsburgh Supercomputing Center (www.psc.edu), 2280 National Center for Atmospheric Research (www.ncar.ucar.edu) and 2281 National Center for Supercomputer Applications (www.ncsa.edu). It 2282 was supported by the National Science Foundation under Grant No. 2283 0083285 and a research grant from Cisco Systems. 2285 10. Authors' Addresses 2287 Matt Mathis 2288 Raghu Reddy 2289 John Heffner 2290 Pittsburgh Supercomputing Center 2291 4400 Fifth Ave 2292 Pittsburgh, PA 15216 2293 Phone: 412-268-4960 2294 Email: mathis@web100.org, rreddy@psc.edu, jheffner@psc.edu 2296 Rajiv Raghunarayan 2297 Cisco Systems Inc. 2298 San Jose, CA 95134 2299 Phone: 408 853 9612 2300 Email: raraghun@cisco.com 2302 Jon Saperia 2303 JDS Consulting, Inc. 2304 174 Chapman Street 2305 Watertown, MA 02472 2306 Phone: 617-744-1079 2307 Email: saperia@jdscons.com 2309 11. Intellectual Property 2311 The IETF takes no position regarding the validity or scope of any 2312 intellectual property or other rights that might be claimed to per- 2313 tain to the implementation or use of the technology described in this 2314 document or the extent to which any license under such rights might 2315 or might not be available; neither does it represent that it has made 2316 any effort to identify any such rights. Information on the IETF's 2317 procedures with respect to rights in standards-track and standards- 2318 related documentation can be found in BCP-11. Copies of claims of 2319 rights made available for publication and any assurances of licenses 2320 to be made available, or the result of an attempt made to obtain a 2321 general license or permission for the use of such proprietary rights 2322 by implementers or users of this specification can be obtained from 2323 the IETF Secretariat. 2325 The IETF invites any interested party to bring to its attention any 2326 copyrights, patents or patent applications, or other proprietary 2327 rights which may cover technology that may be required to practice 2328 this standard. Please address the information to the IETF Executive 2329 Director. 2331 12. Full Copyright Statement 2333 Copyright (C) The Internet Society (2000). All Rights Reserved. 2335 This document and translations of it may be copied and furnished to 2336 others, and derivative works that comment on or otherwise explain it 2337 or assist in its implementation may be prepared, copied, published 2338 and distributed, in whole or in part, without restriction of any 2339 kind, provided that the above copyright notice and this paragraph are 2340 included on all such copies and derivative works. However, this doc- 2341 ument itself may not be modified in any way, such as by removing the 2342 copyright notice or references to the Internet Society or other 2343 Internet organizations, except as needed for the purpose of develop- 2344 ing Internet standards in which case the procedures for copyrights 2345 defined in the Internet Standards process must be followed, or as 2346 required to translate it into languages other than English. 2348 The limited permissions granted above are perpetual and will not be 2349 revoked by the Internet Society or its successors or assigns. 2351 This document and the information contained herein is provided on an 2352 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 2353 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 2354 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 2355 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MER- 2356 CHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.