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

                      TCP Extended Statistics MIB
               draft-ietf-tsvwg-tcp-mib-extension-05.txt
                      Sat Jul 17 14:58:24 EDT 2004

Status of this Memo

   By submitting this Internet-Draft, I certify that any applicable
   patent or other IPR claims of which I am aware have been disclosed,
   and any of which I become aware will be disclosed, in accordance with
   RFC 3668.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at http://
   www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire Nov 30, 2004

Copyright Notice

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

Abstract

   This draft describes extended performance statistics for TCP.  They
   are designed to use TCP's ideal vantage point to diagnose performance
   problems in both the network and the application.  If a network based
   application is performing poorly, TCP can determine if the bottleneck
   is in the sender, the receiver or the network itself.  If the



Mathis, et al                                                   [Page 1]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   bottleneck is in the network, TCP can provide specific information
   about its nature.

Table of Contents


      1. Introduction  . . . . . . . . . . . . . . . . . . . . . . . 2
      2. The Internet-Standard Management Framework  . . . . . . . . 3
      3. Overview  . . . . . . . . . . . . . . . . . . . . . . . . . 3
      4. TCP Extended Statistics MIB . . . . . . . . . . . . . . . . 5
      5. Normative References  . . . . . . . . . . . . . . . . . . . 47
      6. Informative References  . . . . . . . . . . . . . . . . . . 48
      7. Security Considerations . . . . . . . . . . . . . . . . . . 48
      8. Contributors  . . . . . . . . . . . . . . . . . . . . . . . 49
      9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 49
      10. Authors' Addresses . . . . . . . . . . . . . . . . . . . . 49
      11. Intellectual Property  . . . . . . . . . . . . . . . . . . 50
      12. Full Copyright Statement . . . . . . . . . . . . . . . . . 50

1. Introduction

   This draft describes extended performance statistics for TCP.  They
   are designed to use TCP's ideal vantage point to diagnose performance
   problems in both the network and the application.  If a network based
   application is performing poorly, TCP can determine if the bottleneck
   is in the sender, the receiver or the network itself.  If the
   bottleneck is in the network, TCP can provide specific information
   about its nature.

   The SNMP objects defined in this draft extend TCP MIB, already under
   revision by the IPv6 team [RFC2012bis].

   This document is automatically generated from a database of potential
   TCP instruments.  Beware that the OIDs are still likely to change
   with future versions.  The most current version can be obtained from
   http://www.web100.org/mib/ .  Please use tsvwg@ietf.org to send
   comments to the entire TSV WG.

X. Changes

   This virtual section will be removed as the draft nears completion.

   Changes since draft-ietf-tsvwg-tcp-mib-extension-04.txt (27-Oct-2003)

   Updated the descriptions of tcpEStatsDataSndNxt, tcpEStatsDataSndMax,
   tcpEStatsDataThruBytesAcked, tcpEStatsDataHCThruBytesAcked,
   tcpEStatsDataThruBytesReceived, tcpEStatsDataHCThruBytesReceived,
   consistiently use RFC791 variables (SND.NXT, etc) or refer to other



Mathis, et al                                                   [Page 2]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   TCP-ESTATS-MIB objects.

   Changed tcpEStatsSynOptsMSSSent and tcpEStatsSynOptsMSSRcvd from
   Gauge32 to Unsigned32

   Updated descriptions of tcpEStatsConnectLocalAddress and
   tcpEStatsConnectRemAddress to new conventions for InetAddress
   [RFC3291bis]

   Updated ID boiler plate to RFC3668, ID-Guidlines and fixed some
   formatting glitches

   Added a Table of Contents

   Updated the description of tcpEStatsConnectionState to indicate that
   the listen state included only for document parallelism and should
   not be used.

   Explained why it is useful for tcpEStatsConnectIdTable and others to
   remain for 30 seconds after a connection closes (so you retrieve the
   total statistics for the entire connection).

   Added comment about not supporting writing DeleteTcb into the TCP
   State.

   Changed IpTos to IpDscp.

   Explained that SndNxt is not a counter because it is non-monotonic.

   Clarified StartTime to be row creation

   Clarified row creation to be at the first SYN unless techniques to
   defend against SYN floods are in effect, then at connection
   establishment.

   Added tcpEStatsControlNotify to control the generation of
   notifications.

   Changed sequence numbers from ZeroBasedCounter32 to Counter32.

   Changes since draft-ietf-tsvwg-tcp-mib-extension-03.txt (2-Mar-2003)

   Replaced "queued" with "buffered by TCP"

   Changed all counters in the TCP connection tables to be ZeroBased

   Remove tcpEStatsHCInSegs, tcpEStatsHCOutSegs, which appear in as
   tcpHCInSegs and tcpHCOutSegs in draft-ietf-ipv6-rfc2012-update-03.txt



Mathis, et al                                                   [Page 3]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   and later drafts.

   Added changes section.

2. The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].


3. Overview

      The TCP-ESTATS-MIB defined in this memo consists of 10 tables,
      two groups of scalars and two notifications:

      - The first group of scalars in this MIB report additional
        parameters and statistics of a TCP protocol engine not covered
        in [RFC2012bis].  The scalar tcpEStatsListenerTableLastChange,
        provides management stations with an an easier mechanism to
        validate their listener caches.

      - The second group of scalars consist of knobs to enable and
        disable information collection by the tables collecting
        connection-related statistics/information.  For e.g. the
        tcpEStatsControlState object controls the activation of the
        tcpEStatsConnectionTable.

      - The tcpEstatsConnectIdTable provides a mapping between the
        connection indices i.e. source address type, source address,
        source port, destination address type, destination address and
        destination port, and the connection index.  The connection
        index is used to index into most the remaining tables in this
        MIB module.

      - The tcpEStatsConnectionTable provides information about the
        characteristics of active (and recently closed) TCP
        connections.




Mathis, et al                                                   [Page 4]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


      - The tcpEStatsSynOptsTable provides information on options
        present in the SYN and SYN-ACK that originated the connection.

      - The tcpEStatsDataTable provides statistics on the aggregate data
        and packets sent on a connection, as well as time and duration
        necessary for computing average data rate.

      - In this and all other tables ZeroBasedCounter32 and
        ZeroBasedCounter64 objects are initialized to zero when the row
        is created.  Ideally the rows should be created when the first
        SYN is sent or received, such that the 3-Way handshake can be
        included in the counters.  However this requirement would be
        incompatible with various techniques used to defend against SYN
        flooding [SYNFLOOD].  These techniques all rely on postponing
        allocating full resources to the TCP connection until after the
        remote host completes the 3-way handshake (i.e. acknowledges the
        SYN-ACK).   If one of these techniques is in use, then the row
        may be created when the connection enters the established state,
        otherwise the row should be created when the first SYN is sent
        or received.

      - The tcpEStatsSndCongTable provides information on sender
        performance for the connection.  This table, along with the
        tcpEStatsPathTable, tcpEStatsSendBuffTable, tcpEStatsRecTable
        and tcpEStatsObsRecTable, is useful in determining the
        subsystems (sender, receiver and path) that control the overall
        performance of a TCP connection.

      - The tcpEStatsPathTable provides information on the connection
        path e.g. count of ICMP source quench messages treated as
        congestion signals, count of ECN signals received etc.  This
        table, along with the tcpEStatsSndCongTable,
        tcpEStatsSendBuffTable, tcpEStatsRecTable and
        tcpEStatsObsRecTable, is useful in determining the subsystems
        (sender, receiver and path) that control the overall
        performance of a TCP connection.

      - The tcpEStatsSendBuffTable provides sender buffer usage
        statistics for the connection.  This table, along with the
        tcpEStatsSndCongTable, tcpEStatsPathTable, tcpEStatsRecTable
        and tcpEStatsObsRecTable, is useful in determining the
        subsystems (sender, receiver and path) that control the overall
        performance of a TCP connection.

      - The tcpEStatsRecTable provides information on the local
        receiver and buffer usage characteristics of the receiver.
        This table, along with the tcpEStatsSndCongTable,
        tcpEStatsPathTable, tcpEStatsSendBuffTable and



Mathis, et al                                                   [Page 5]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


        tcpEStatsObsRecTable, is useful in determining the subsystems
        (sender, receiver and path) that control the overall
        performance of a TCP connection.

      - The tcpEStatsObsRecTable provides information on the window
        advertisement characteristics of receiver.  This table, along
        with the tcpEStatsSndCongTable, tcpEStatsPathTable,
        tcpEStatsSendBuffTable and tcpEStatsRecTable, is useful in
        determining the subsystems (sender, receiver and path) that
        control the overall performance of a TCP connection.

      - The tcpEStatsListenerTable provides information on the active
        TCP listeners on a device.

      - The two notifications defined in this MIB module are
        tcpEStatsEstablishNotification, indicating that a new
        connection has been established, and
        tcpEStatsCloseNotification, indicating that an existing
        connection has recently closed.



4. TCP Extended Statistics MIB

   TCP-ESTATS-MIB DEFINITIONS ::= BEGIN
   IMPORTS
          MODULE-IDENTITY, Counter32, Integer32, Unsigned32,
          Gauge32, OBJECT-TYPE, experimental,
          NOTIFICATION-TYPE
              FROM SNMPv2-SMI
          MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
              FROM SNMPv2-CONF
          ZeroBasedCounter32
              FROM RMON2-MIB                  -- [RFC2021]
          ZeroBasedCounter64
              FROM HCNUM-TC                   -- [RFC2856]
          TEXTUAL-CONVENTION,
          DateAndTime, TruthValue, TimeStamp
              FROM SNMPv2-TC
          InetAddressType, InetAddress,
          InetPortNumber
              FROM INET-ADDRESS-MIB
          tcpListenerEntry
              FROM TCP-MIB;

   tcpEStatsMIB MODULE-IDENTITY
       LAST-UPDATED "200407171458Z"  -- Jul 17, 2004
       ORGANIZATION "IETF TSV Working Group"



Mathis, et al                                                   [Page 6]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       CONTACT-INFO
           "Matt Mathis
           John Heffner
           Raghu Reddy
           Web100 Project
           Pittsburgh Supercomputing Center
           4400 Fifth Ave
           Pittsburgh, PA 15213
           Email: mathis@psc.edu, jheffner@psc.edu, rreddy@psc.edu

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

           Jon Saperia
           JDS Consulting, Inc.
           174 Chapman Street
           Watertown, MA 02472
           Phone: 617-744-1079
           Email: saperia@jdscons.com "
       DESCRIPTION
           "Documentation of TCP Estended Performance Instrumentation
            variables from the Web100 project.  See www.web100.org

            Copyright (C) The Internet Society (2004). This version
            of this MIB module is a part of RFC xxxx; see the RFC
            itself for full legal notices."
   -- RFC Editor: replace xxxx with actual RFC number & remove note

       REVISION "200407171458Z"  -- Jul 17, 2004
       DESCRIPTION
           "Initial version, published as RFC xxxx."
   -- RFC Editor assigns RFC xxxx
           ::= { experimental 9999 }
   tcpEStatsNotifications OBJECT IDENTIFIER ::= { tcpEStatsMIB 0 }
   tcpEStatsMIBObjects    OBJECT IDENTIFIER ::= { tcpEStatsMIB 1 }
   tcpEStatsConformance   OBJECT IDENTIFIER ::= { tcpEStatsMIB 2 }
   tcpEStats             OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 1 }
   tcpEStatsControl      OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 2 }
   tcpEStatsScalar       OBJECT IDENTIFIER ::= { tcpEStatsMIBObjects 3 }

   --
   -- Textual Conventions
   --

    TcpEStatsOperation  ::= TEXTUAL-CONVENTION



Mathis, et al                                                   [Page 7]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       STATUS             current
       DESCRIPTION
           "Indicates whether the table or notification controlled
           by an object with this syntax is enabled or in a
           disabled state."
       SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2)
                   }

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


   -- The tcpEStatsControl Group

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

   tcpEStatsControlState  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Connection State
           Statistics table."
       DEFVAL          { disabled }
       ::= { tcpEStatsControl 1 }

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



Mathis, et al                                                   [Page 8]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           "Controls the activation of the TCP SYN Options table."
       DEFVAL          { disabled }
       ::= { tcpEStatsControl 2 }

   tcpEStatsControlData  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Data Table."
       DEFVAL          { disabled }
       ::= { tcpEStatsControl 3 }

   tcpEStatsControlSndCong  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Sender Table."
       DEFVAL          { disabled }
       ::= { tcpEStatsControl 4 }

   tcpEStatsControlPath  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Path Table."
       DEFVAL          { disabled }
       ::= { tcpEStatsControl 5 }

   tcpEStatsControlSendBuff  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Sender Buffer Table."
       DEFVAL          { disabled }
       ::= { tcpEStatsControl 6 }

   tcpEStatsControlRec  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Local Receiver Table."
       DEFVAL          { disabled }
       ::= { tcpEStatsControl 7 }



Mathis, et al                                                   [Page 9]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   tcpEStatsControlObsRec  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the activation of the TCP Observed Receiver
           Window Table."
       DEFVAL          { disabled }
       ::= { tcpEStatsControl 8 }

   tcpEStatsControlNotify  OBJECT-TYPE
       SYNTAX          TcpEStatsOperation
       MAX-ACCESS      read-write
       STATUS          current
       DESCRIPTION
           "Controls the generation of all notifications defined in
           this MIB."
       DEFVAL          { disabled }
       ::= { tcpEStatsControl 9 }

   --
   -- Listener Table
   --

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

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

      TcpEStatsListenerEntry ::= SEQUENCE {
              tcpEStatsListenerTimeOuts         Counter32,
              tcpEStatsListenerEstablished      Counter32,
              tcpEStatsListenerStartTime        TimeStamp



Mathis, et al                                                  [Page 10]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


      }

      tcpEStatsListenerTimeOuts OBJECT-TYPE
          SYNTAX     Counter32
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
              "The number of connection attempts to this endpoint which
              have failed due to timeout of the three-way handshake,
              i.e. the corresponding connection state never moved from
              synReceived to established."
          ::= { tcpEStatsListenerEntry 1 }

      tcpEStatsListenerEstablished OBJECT-TYPE
          SYNTAX     Counter32
          MAX-ACCESS read-only
          STATUS     current
          DESCRIPTION
              "The number of connections which have been established to
              this endpoint."
          ::= { tcpEStatsListenerEntry 2 }

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


   --
   -- TCP Connection ID Table
   --

   -- There is overlap with the new RFC2012 TCP Connection table
   -- because there is a semantic difference in the latency of row
   -- removal in this table. Row are expected to remain in this
   -- table longer than in a standard TCP Connection table. Other
   -- than this latency difference the semantics of the first six
   -- objects in this table are the same as the new TCP Connection
   -- table and the DESCRIPTIONS come from the new document.

   tcpEStatsConnectIdTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsConnectIdEntry



Mathis, et al                                                  [Page 11]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table maps a connection ID used by other tables in
           this MIB Module with the information that uniquely
           identifies each active TCP connection. Entries are
           retained in this table for at least 30 seconds after the
           TCP connection first enters the closed state."
       ::= { tcpEStats 1 }

   tcpEStatsConnectIdEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsConnectIdEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "Each entry in this table maps a TCP connection
           4-tuple to a connection index."
       INDEX   { tcpEStatsConnectLocalAddressType,
                 tcpEStatsConnectLocalAddress,
                 tcpEStatsConnectLocalPort,
                 tcpEStatsConnectRemAddressType,
                 tcpEStatsConnectRemAddress,
                 tcpEStatsConnectRemPort }
       ::= { tcpEStatsConnectIdTable 1 }

   TcpEStatsConnectIdEntry ::= SEQUENCE {
                 tcpEStatsConnectLocalAddressType  InetAddressType,
                 tcpEStatsConnectLocalAddress      InetAddress,
                 tcpEStatsConnectLocalPort         InetPortNumber,
                 tcpEStatsConnectRemAddressType    InetAddressType,
                 tcpEStatsConnectRemAddress        InetAddress,
                 tcpEStatsConnectRemPort           InetPortNumber,
                 tcpEStatsConnectIndex             Unsigned32
                 }

   tcpEStatsConnectLocalAddressType OBJECT-TYPE
       SYNTAX     InetAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The address type of tcpEStatsConnectLocalAddress."
       ::= { tcpEStatsConnectIdEntry 1 }

   tcpEStatsConnectLocalAddress OBJECT-TYPE
       SYNTAX     InetAddress
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION



Mathis, et al                                                  [Page 12]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           "The local IP address for this TCP connection.The type
            of this address is determined by the value of
            tcpEStatsConnectLocalAddressType.

            As this object is used in the index for the
            tcpEStatsConnectIdTable, implementors of this table should
            be careful not to create entries that would result in OIDs
            with more than 128 subidentifiers; else the information
            cannot be accessed using SNMPv1, SNMPv2c or SNMPv3."
       ::= { tcpEStatsConnectIdEntry 2 }

   tcpEStatsConnectLocalPort OBJECT-TYPE
       SYNTAX     InetPortNumber
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The local port number for this TCP connection."
       ::= {tcpEStatsConnectIdEntry 3 }

   tcpEStatsConnectRemAddressType OBJECT-TYPE
       SYNTAX     InetAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The address type of tcpEStatsConnectRemAddress."
       ::= { tcpEStatsConnectIdEntry 4 }

   tcpEStatsConnectRemAddress OBJECT-TYPE
       SYNTAX     InetAddress
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "The remote IP address for this TCP connection.  The type
            of this address is determined by the value of
            tcpEStatsConnectRemAddressType.

            As this object is used in the index for the
            tcpEStatsConnectIdTable, implementors of this table should
            be careful not to create entries that would result in OIDs
            with more than 128 subidentifiers; else the information
            cannot be accessed using SNMPv1, SNMPv2c or SNMPv3."
       ::= { tcpEStatsConnectIdEntry 5 }

   tcpEStatsConnectRemPort OBJECT-TYPE
       SYNTAX     InetPortNumber
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION



Mathis, et al                                                  [Page 13]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           "The remote port number for this TCP connection."
       ::= { tcpEStatsConnectIdEntry 6 }

   tcpEStatsConnectIndex  OBJECT-TYPE
       SYNTAX          Unsigned32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
           "A unique integer value assigned to each TCP Connection
           entry. Assignment will begin at 1 and increase to the
           maximum value and then start again at 1 skipping in use
           values."
       ::= { tcpEStatsConnectIdEntry 7 }

   --
   -- TCP Connection State Statistics
   --

   tcpEStatsConnectionTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsConnectionEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains connection state information for
           each TCP connection. Activation of this table is via the
           tcpEStatsControlState object."
       ::= { tcpEStats 2 }

   tcpEStatsConnectionEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsConnectionEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "Each entry in this table has information about the
           characteristics of each active and recently closed tcp
           connection."
      INDEX { tcpEStatsConnectIndex }
      ::= { tcpEStatsConnectionTable 1 }

   TcpEStatsConnectionEntry ::= SEQUENCE {
           tcpEStatsConnectionState            INTEGER,
           tcpEStatsConnectionSACK             TruthValue,
           tcpEStatsConnectionTimeStamps       TruthValue,
           tcpEStatsConnectionECN              TruthValue,
           tcpEStatsConnectionNagle            TruthValue,
           tcpEStatsConnectionSndWindScale     Integer32,
           tcpEStatsConnectionRcvWindScale     Integer32
       }



Mathis, et al                                                  [Page 14]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   tcpEStatsConnectionState  OBJECT-TYPE
       SYNTAX          INTEGER {
          wcStateClosed(1),
          wcStateListen(2),
          wcStateSynSent(3),
          wcStateSynReceived(4),
          wcStateEstablished(5),
          wcStateFinWait1(6),
          wcStateFinWait2(7),
          wcStateCloseWait(8),
          wcStateLastAck(9),
          wcStateClosing(10),
          wcStateTimeWait(11),
          wcStateDeleteTcb(12)
       }
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "An integer value representing the connection state from the
           TCP State Transition Diagram. The value listen(2) is
           included only for parallelism to the old tcpConnTable, and
           should not be used because the listen state in managed by
           the tcpListenerTable. The value DeleteTcb(12) is included
           only for parallelism to the tcpConnTable mechanism for
           terminating connections, although this table does not
           permit writing."
       ::= { tcpEStatsConnectionEntry 1 }

   tcpEStatsConnectionSACK  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "True(1) if SACK has been negotiated on, else false(2). See
           RFC 2018."
       ::= { tcpEStatsConnectionEntry 2 }

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

   tcpEStatsConnectionECN  OBJECT-TYPE
       SYNTAX          TruthValue



Mathis, et al                                                  [Page 15]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "True(1) if ECN has been negotiated on, else false(2)."
       ::= { tcpEStatsConnectionEntry 4 }

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

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

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

   --
   -- TCP SYN Options
   --

   tcpEStatsSynOptsTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsSynOptsEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains statistics on options present
           on the SYN and SYN-ACK. Table activation is
           controlled by the tcpEStatsControlSynOpts object."
      ::= { tcpEStats 3 }

   tcpEStatsSynOptsEntry  OBJECT-TYPE



Mathis, et al                                                  [Page 16]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       SYNTAX       TcpEStatsSynOptsEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "Each entry in this table information on options
           present in the SYNs and SYN-ACKs."
       INDEX { tcpEStatsConnectIndex }
       ::= { tcpEStatsSynOptsTable 1 }

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

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

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

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

   tcpEStatsSynOptsWinScaleSent  OBJECT-TYPE
       SYNTAX          Integer32 (-1..14)



Mathis, et al                                                  [Page 17]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


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

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

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

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

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

   tcpEStatsSynOptsTimeStampRcvd  OBJECT-TYPE
       SYNTAX          TruthValue
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION



Mathis, et al                                                  [Page 18]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


          "True(1) if Timestamp option was received, else false(2).
           See RFC 1323."
       ::= { tcpEStatsSynOptsEntry 9 }

   --
   -- TCP Data Table
   --

   tcpEStatsDataTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsDataEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains statistics on aggregate packets and
           data sent on a connection.  These provide a direct
           measure of the Internet capacity consumed by a connection
           and TCPs net throughput.  Table activation is controlled
           by tcpEStatsControlData."
       ::= { tcpEStats 4 }

   tcpEStatsDataEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsDataEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "Per connection statistics for packets and data."
       INDEX { tcpEStatsConnectIndex }
       ::= { tcpEStatsDataTable 1 }

   TcpEStatsDataEntry ::= SEQUENCE {
           tcpEStatsDataPktsOut                ZeroBasedCounter32,
           tcpEStatsDataDataPktsOut            ZeroBasedCounter32,
           tcpEStatsDataDataBytesOut           ZeroBasedCounter32,
           tcpEStatsDataHCDataBytesOut         ZeroBasedCounter64,
           tcpEStatsDataPktsIn                 ZeroBasedCounter32,
           tcpEStatsDataDataPktsIn             ZeroBasedCounter32,
           tcpEStatsDataDataBytesIn            ZeroBasedCounter32,
           tcpEStatsDataHCDataBytesIn          ZeroBasedCounter64,
           tcpEStatsDataSoftErrors             ZeroBasedCounter32,
           tcpEStatsDataSoftErrorReason        INTEGER,
           tcpEStatsDataIpTtl                  Integer32,
           tcpEStatsDataIpDscp                 Integer32,
           tcpEStatsDataSndUna                 Counter32,
           tcpEStatsDataSndNxt                 Integer32,
           tcpEStatsDataSndMax                 Counter32,
           tcpEStatsDataThruBytesAcked         ZeroBasedCounter32,
           tcpEStatsDataHCThruBytesAcked       ZeroBasedCounter64,
           tcpEStatsDataSndInitial             Counter32,



Mathis, et al                                                  [Page 19]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           tcpEStatsDataRcvNxt                 Counter32,
           tcpEStatsDataThruBytesReceived      ZeroBasedCounter32,
           tcpEStatsDataHCThruBytesReceived    ZeroBasedCounter64,
           tcpEStatsDataRecInitial             Counter32,
           tcpEStatsDataElapsedSecs            ZeroBasedCounter32,
           tcpEStatsDataDurationMicroSecs      ZeroBasedCounter32,
           tcpEStatsDataStartTimeStamp         DateAndTime
       }

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

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

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

   tcpEStatsDataHCDataBytesOut  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of bytes of data contained in transmitted
           segments, including retransmitted data, on systems that can
           transmit more than 10 million bits per second."
       ::= { tcpEStatsDataEntry 4 }

   tcpEStatsDataPktsIn  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only



Mathis, et al                                                  [Page 20]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       STATUS          current
       DESCRIPTION
          "The total number of packets received."
       ::= { tcpEStatsDataEntry 5 }

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

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

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

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

   tcpEStatsDataSoftErrorReason  OBJECT-TYPE
       SYNTAX          INTEGER {
          belowDataWindow(1),
          aboveDataWindow(2),
          belowAckWindow(3),



Mathis, et al                                                  [Page 21]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


          aboveAckWindow(4),
          belowTSWindow(5),
          aboveTSWindow(6),
          dataCheckSum(7)
       }
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Identifies the consistency test that most recently failed."
       ::= { tcpEStatsDataEntry 10 }

   tcpEStatsDataIpTtl  OBJECT-TYPE
       SYNTAX          Integer32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of the TTL field carried in the most recently
           received IP header."
       ::= { tcpEStatsDataEntry 11 }

   tcpEStatsDataIpDscp  OBJECT-TYPE
       SYNTAX          Integer32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of the Type Of Service byte carried in the most
           recently received IP header."
       ::= { tcpEStatsDataEntry 12 }

   tcpEStatsDataSndUna  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of SND.UNA, the oldest unacknowledged sequence
           number."
       ::= { tcpEStatsDataEntry 13 }

   tcpEStatsDataSndNxt  OBJECT-TYPE
       SYNTAX          Integer32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The value of SND.NXT, the next sequence number to be sent.
           Note that SndNxt is not a monotonic (and thus not a
           counter) because TCP can retransmit lost data by pulling
           SndNxt back to the missing data. See RFC 793."
       ::= { tcpEStatsDataEntry 14 }



Mathis, et al                                                  [Page 22]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   tcpEStatsDataSndMax  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The farthest forward (right most) SND.NXT value. Note that
           this will be equal to tcpEStatsDataSndNxt except when
           tcpEStatsDataSndNxt is pulled back during recovery."
       ::= { tcpEStatsDataEntry 15 }

   tcpEStatsDataThruBytesAcked  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of bytes for which cumulative acknowledgments
           have been received. Note that this will be the sum of
           changes to tcpEStatsDataSndUna."
       ::= { tcpEStatsDataEntry 16 }

   tcpEStatsDataHCThruBytesAcked  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of bytes for which cumulative acknowledgments
           have been received, on systems that can receive more than
           10 million bits per second. Note that this will be the sum
           of changes in tcpEStatsDataSndUna."
       ::= { tcpEStatsDataEntry 17 }

   tcpEStatsDataSndInitial  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Initial send sequence number."
       ::= { tcpEStatsDataEntry 18 }

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



Mathis, et al                                                  [Page 23]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   tcpEStatsDataThruBytesReceived  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of bytes for which cumulative acknowledgments
           have been sent. Note that this will be the sum of changes
           in tcpEStatsDataRcvNxt."
       ::= { tcpEStatsDataEntry 20 }

   tcpEStatsDataHCThruBytesReceived  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter64
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of bytes for which cumulative acknowledgments
           have been sent, on systems that can transmit more than 10
           million bits per second. Note that this will be the sum of
           changes in tcpEStatsDataRcvNxt."
       ::= { tcpEStatsDataEntry 21 }

   tcpEStatsDataRecInitial  OBJECT-TYPE
       SYNTAX          Counter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Initial receive sequence number. Note that by definition
           tcpEStatsDataRecInitial never changes for a given
           connection."
       ::= { tcpEStatsDataEntry 22 }

   tcpEStatsDataElapsedSecs  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The seconds part of the time elapsed between StartTime and
           the most recent protocol event (packet sent or received)."
       ::= { tcpEStatsDataEntry 23 }

   tcpEStatsDataDurationMicroSecs  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The micro-second part of time elapsed between StartTime to
           the most recent protocol event (packet sent or received).
           This may be updated in what ever time granularity is the



Mathis, et al                                                  [Page 24]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           system supports."
       ::= { tcpEStatsDataEntry 24 }

   tcpEStatsDataStartTimeStamp  OBJECT-TYPE
       SYNTAX          DateAndTime
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Time at which this row was created and all
           ZeroBasedCounters in the row were initalized to zero."
       ::= { tcpEStatsDataEntry 25 }

   --
   -- TCP Sender Table
   --

   tcpEStatsSndCongTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsSndCongEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "First level instruments to determine which subsystems
           are controlling overall performance by throttling TCP
           data transmission.  The three parallel sets of
           instruments measure the extent to which the receiver
           window, network congestion or the senders available data
           limit TCP's performance.  They reflect bottlenecks at the
           receiver, network or sender respectively. It also
           includes instruments on all events needed to model
           congestion along the network path.  The instruments are
           sufficient to fit the actual performance to an updated
           macroscopic performance model [MSMO97].  This in turn
           reveals the nature of the congestion.  Table activation
           is controlled by tcpEStatsControlSndCong."
       ::= { tcpEStats 5 }

   tcpEStatsSndCongEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsSndCongEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "Per connection sender information."
       INDEX { tcpEStatsConnectIndex }
       ::= { tcpEStatsSndCongTable 1 }

   TcpEStatsSndCongEntry ::= SEQUENCE {
           tcpEStatsSndCongSndLimTransRwin     ZeroBasedCounter32,
           tcpEStatsSndCongSndLimTimeRwin      ZeroBasedCounter32,



Mathis, et al                                                  [Page 25]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           tcpEStatsSndCongSndLimTransCwnd     ZeroBasedCounter32,
           tcpEStatsSndCongSndLimTimeCwnd      ZeroBasedCounter32,
           tcpEStatsSndCongSndLimTransSnd      ZeroBasedCounter32,
           tcpEStatsSndCongSndLimTimeSnd       ZeroBasedCounter32,
           tcpEStatsSndCongSlowStart           ZeroBasedCounter32,
           tcpEStatsSndCongCongAvoid           ZeroBasedCounter32,
           tcpEStatsSndCongCongSignals         ZeroBasedCounter32,
           tcpEStatsSndCongOtherReductions     ZeroBasedCounter32,
           tcpEStatsSndCongCongOverCount       ZeroBasedCounter32,
           tcpEStatsSndCongCwndRestores        ZeroBasedCounter32,
           tcpEStatsSndCongCurCwnd             Gauge32,
           tcpEStatsSndCongMaxSsCwnd           Gauge32,
           tcpEStatsSndCongMaxCaCwnd           Gauge32,
           tcpEStatsSndCongLimCwnd             Gauge32,
           tcpEStatsSndCongCurSsthresh         Gauge32,
           tcpEStatsSndCongMaxSsthresh         Gauge32,
           tcpEStatsSndCongMinSsthresh         Gauge32
       }

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

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

   tcpEStatsSndCongSndLimTransCwnd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of transitions into the 'Congestion Limited'
           state from either the 'Receiver Limited' or 'Sender
           Limited' states. This state is entered whenever TCP



Mathis, et al                                                  [Page 26]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           transmission stops because the sender has reached some
           limit defined by congestion control (e.g. cwnd) or other
           algorithms (retransmission timeouts) designed to control
           network traffic."
       ::= { tcpEStatsSndCongEntry 3 }

   tcpEStatsSndCongSndLimTimeCwnd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The cumulative time (in milliseconds) spent in the
           'Congestion Limited' state. See SndLimTransCwnd. When there
           is a retransmission timeout, it should be counted in
           SndLimTimeCwnd (and not the cumulative time for some other
           state.)"
       ::= { tcpEStatsSndCongEntry 4 }

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

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

   tcpEStatsSndCongSlowStart  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of times the congestion window has been



Mathis, et al                                                  [Page 27]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           increased by the Slow Start algorithm. See RFC 2581."
       ::= { tcpEStatsSndCongEntry 7 }

   tcpEStatsSndCongCongAvoid  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of times the congestion window has been
           increased by the Congestion Avoidance algorithm. See RFC
           2581."
       ::= { tcpEStatsSndCongEntry 8 }

   tcpEStatsSndCongCongSignals  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of multiplicative downward congestion window
           adjustments due to all forms of congestion signals,
           including Fast Retransmit, ECN and timeouts. Note that
           retransmission timeouts multiplicatively reduce the window
           implicitly by setting ssthresh. In order to minimize
           spurious congestion indications due to out-of-order
           segments, CongestionSignals should be incremented in
           association with the Fast Retransmit algorithm."
       ::= { tcpEStatsSndCongEntry 9 }

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

   tcpEStatsSndCongCongOverCount  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of congestion events which were 'backed out' of
           the congestion control state machine such that the



Mathis, et al                                                  [Page 28]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           congestion window was restored to a prior value. Backed out
           congestion events can not be backed out of
           CongestionSignals and PreCongSumCwnd, etc."
       ::= { tcpEStatsSndCongEntry 11 }

   tcpEStatsSndCongCwndRestores  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of times cwnd is restored from a prior saved
           value"
       ::= { tcpEStatsSndCongEntry 12 }

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

   tcpEStatsSndCongMaxSsCwnd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum congestion window used during Slow Start, in
           bytes."
       ::= { tcpEStatsSndCongEntry 14 }

   tcpEStatsSndCongMaxCaCwnd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum congestion window used during Congestion
           Avoidance, in bytes."
       ::= { tcpEStatsSndCongEntry 15 }

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




Mathis, et al                                                  [Page 29]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


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

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

   tcpEStatsSndCongMinSsthresh  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The minimum slow start threshold."
       ::= { tcpEStatsSndCongEntry 19 }

   --
   -- TCP Path Table
   --

   tcpEStatsPathTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsPathEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Instruments that characterize the Internet path.
           These include dominant properties, such as packet loss,
           Round Trip Time (RTT), and Maximum Transmission Unit
           (MTU) as well as instruments of other path behaviors
           that might effect TCP performance, such as reordering,
           source quench, etc.   Ideally these instruments would
           parallel other IP path metrics, such as the products of the
           IPPM working group."
       ::= { tcpEStats 6 }

   tcpEStatsPathEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsPathEntry
       MAX-ACCESS   not-accessible
       STATUS       current



Mathis, et al                                                  [Page 30]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       DESCRIPTION
           "Stats per connection."
       INDEX { tcpEStatsConnectIndex }
       ::= { tcpEStatsPathTable 1 }

   TcpEStatsPathEntry ::= SEQUENCE {
           tcpEStatsPathFastRetran             ZeroBasedCounter32,
           tcpEStatsPathTimeouts               ZeroBasedCounter32,
           tcpEStatsPathSubsequentTimeouts     ZeroBasedCounter32,
           tcpEStatsPathCurTimeoutCount        Gauge32,
           tcpEStatsPathAbruptTimeouts         ZeroBasedCounter32,
           tcpEStatsPathPktsRetrans            ZeroBasedCounter32,
           tcpEStatsPathBytesRetrans           ZeroBasedCounter32,
           tcpEStatsPathDupAcksIn              ZeroBasedCounter32,
           tcpEStatsPathSACKsRcvd              ZeroBasedCounter32,
           tcpEStatsPathSACKBlocksRcvd         ZeroBasedCounter32,
           tcpEStatsPathPreCongSumCwnd         ZeroBasedCounter32,
           tcpEStatsPathPreCongSumRTT          ZeroBasedCounter32,
           tcpEStatsPathPostCongSumRTT         ZeroBasedCounter32,
           tcpEStatsPathPostCongCountRTT       ZeroBasedCounter32,
           tcpEStatsPathECNsignals             ZeroBasedCounter32,
           tcpEStatsPathECERcvd                ZeroBasedCounter32,
           tcpEStatsPathSendStall              ZeroBasedCounter32,
           tcpEStatsPathQuenchRcvd             ZeroBasedCounter32,
           tcpEStatsPathRetranThresh           Gauge32,
           tcpEStatsPathSndDupAckEpisodes      Integer32,
           tcpEStatsPathSumBytesReordered      Integer32,
           tcpEStatsPathNonRecovDA             ZeroBasedCounter32,
           tcpEStatsPathAckAfterFR             ZeroBasedCounter32,
           tcpEStatsPathDSACKDups              ZeroBasedCounter32,
           tcpEStatsPathSampleRTT              Gauge32,
           tcpEStatsPathSmoothedRTT            Gauge32,
           tcpEStatsPathRTTVar                 Gauge32,
           tcpEStatsPathMaxRTT                 Gauge32,
           tcpEStatsPathMinRTT                 Gauge32,
           tcpEStatsPathSumRTT                 ZeroBasedCounter32,
           tcpEStatsPathHCSumRTT               ZeroBasedCounter64,
           tcpEStatsPathCountRTT               ZeroBasedCounter32,
           tcpEStatsPathCurRTO                 Gauge32,
           tcpEStatsPathMaxRTO                 Gauge32,
           tcpEStatsPathMinRTO                 Gauge32,
           tcpEStatsPathCurMSS                 Gauge32,
           tcpEStatsPathMaxMSS                 Gauge32,
           tcpEStatsPathMinMSS                 Gauge32
       }

   tcpEStatsPathFastRetran  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32



Mathis, et al                                                  [Page 31]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of invocations of the Fast Retransmit algorithm.
           See RFC 2581."
       ::= { tcpEStatsPathEntry 1 }

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

   tcpEStatsPathSubsequentTimeouts  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of times the retransmit timeout has expired when
           the RTO backoff multiplier is greater than one. See RFC
           2988."
       ::= { tcpEStatsPathEntry 3 }

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

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

   tcpEStatsPathPktsRetrans  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32



Mathis, et al                                                  [Page 32]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


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

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

   tcpEStatsPathDupAcksIn  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of duplicate ACKs received."
       ::= { tcpEStatsPathEntry 8 }

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

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

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



Mathis, et al                                                  [Page 33]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       ::= { tcpEStatsPathEntry 11 }

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

   tcpEStatsPathPostCongSumRTT  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Sum of the first RTT sample following a received congestion
           signal."
       ::= { tcpEStatsPathEntry 13 }

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

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

   tcpEStatsPathECERcvd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of congestion signals received via the RFC3168
           ECE bit."



Mathis, et al                                                  [Page 34]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       ::= { tcpEStatsPathEntry 16 }

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

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

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

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

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



Mathis, et al                                                  [Page 35]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


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

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

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

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

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

   tcpEStatsPathRTTVar  OBJECT-TYPE



Mathis, et al                                                  [Page 36]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


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

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

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

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

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

   tcpEStatsPathCountRTT  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The number of round trip time samples included in SumRTT."



Mathis, et al                                                  [Page 37]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       ::= { tcpEStatsPathEntry 32 }

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

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

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

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

   tcpEStatsPathMaxMSS  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum MSS, in bytes. See RFC 1191."
       ::= { tcpEStatsPathEntry 37 }




Mathis, et al                                                  [Page 38]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   tcpEStatsPathMinMSS  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The minimum MSS, in bytes. See RFC 1191."
       ::= { tcpEStatsPathEntry 38 }

   --
   -- TCP Sender Buffer Table
   --

   tcpEStatsSendBuffTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsSendBuffEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Instruments on the senders buffer usage, including any
           buffering in the application interface to TCP and the
           retransmit queue.  Table activation is controlled by
           tcpEStatsControlSendBuff."
       ::= { tcpEStats 7 }

   tcpEStatsSendBuffEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsSendBuffEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "Per connection sender buffer information."
       INDEX { tcpEStatsConnectIndex }
       ::= { tcpEStatsSendBuffTable 1 }

   TcpEStatsSendBuffEntry ::= SEQUENCE {
           tcpEStatsSendBuffCurRetxQueue       Gauge32,
           tcpEStatsSendBuffMaxRetxQueue       Gauge32,
           tcpEStatsSendBuffCurAppWQueue       Gauge32,
           tcpEStatsSendBuffMaxAppWQueue       Gauge32
       }

   tcpEStatsSendBuffCurRetxQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current number of bytes of data occupying the
           retransmit queue."
       ::= { tcpEStatsSendBuffEntry 1 }




Mathis, et al                                                  [Page 39]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   tcpEStatsSendBuffMaxRetxQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum number of bytes of data occupying the
           retransmit queue."
       ::= { tcpEStatsSendBuffEntry 2 }

   tcpEStatsSendBuffCurAppWQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current number of bytes of application data buffered by
           TCP, pending first transmission."
       ::= { tcpEStatsSendBuffEntry 3 }

   tcpEStatsSendBuffMaxAppWQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum number of bytes of application data buffered by
           TCP, pending first transmission."
       ::= { tcpEStatsSendBuffEntry 4 }

   --
   -- TCP Local Receiver Table
   --

   tcpEStatsRecTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsRecEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Instruments on the state of the local receiver and
           instruments on the receiver buffer usage, including any
           buffering in the application interface to TCP and the
           reassembly queue.  Table activation is controlled by
           tcpEStatsControlRec."
       ::= { tcpEStats 8 }

   tcpEStatsRecEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsRecEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION



Mathis, et al                                                  [Page 40]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           "Per connection information on the local receiver."
       INDEX { tcpEStatsConnectIndex }
       ::= { tcpEStatsRecTable 1 }

   TcpEStatsRecEntry ::= SEQUENCE {
           tcpEStatsRecCurRwinSent             Gauge32,
           tcpEStatsRecMaxRwinSent             Gauge32,
           tcpEStatsRecMinRwinSent             Gauge32,
           tcpEStatsRecLimRwin                 Gauge32,
           tcpEStatsRecDupAckEpisodes          ZeroBasedCounter32,
           tcpEStatsRecDupAcksOut              ZeroBasedCounter32,
           tcpEStatsRecCERcvd                  ZeroBasedCounter32,
           tcpEStatsRecECNSent                 ZeroBasedCounter32,
           tcpEStatsRecECNNonceRcvd            ZeroBasedCounter32,
           tcpEStatsRecCurReasmQueue           Gauge32,
           tcpEStatsRecMaxReasmQueue           Gauge32,
           tcpEStatsRecCurAppRQueue            Gauge32,
           tcpEStatsRecMaxAppRQueue            Gauge32
       }

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

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

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

   tcpEStatsRecLimRwin  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-write



Mathis, et al                                                  [Page 41]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


       STATUS          current
       DESCRIPTION
          "The maximum window advertisement which may be sent, in
           bytes."
       ::= { tcpEStatsRecEntry 4 }

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

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

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

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

   tcpEStatsRecECNNonceRcvd  OBJECT-TYPE
       SYNTAX          ZeroBasedCounter32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "Number of ECN Nonces received. Note that the low bit is the
           same as the one bit nonce sum."
       ::= { tcpEStatsRecEntry 9 }



Mathis, et al                                                  [Page 42]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   tcpEStatsRecCurReasmQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The current number of bytes of sequence space spanned by
           the reassembly queue. This is generally the difference
           between rcv.nxt and the sequence number of the right most
           edge of the reassembly queue."
       ::= { tcpEStatsRecEntry 10 }

   tcpEStatsRecMaxReasmQueue  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The maximum value of CurReasmQueue"
       ::= { tcpEStatsRecEntry 11 }

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

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

   --
   -- TCP Observed Receiver Window Table
   --

   tcpEStatsObsRecTable    OBJECT-TYPE
       SYNTAX      SEQUENCE OF TcpEStatsObsRecEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION



Mathis, et al                                                  [Page 43]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


           "Instruments on receiver window updates that can be used
           to identify bottlenecks at the receiver.  These can be
           collected at the sender or anywhere along the network
           path, including at the receiver.  Table activation is
           controlled by tcpEStatsControlObsRec."
       ::= { tcpEStats 9 }

   tcpEStatsObsRecEntry  OBJECT-TYPE
       SYNTAX       TcpEStatsObsRecEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "Per connection information on receiver window."
       INDEX { tcpEStatsConnectIndex }
       ::= { tcpEStatsObsRecTable 1 }

   TcpEStatsObsRecEntry ::= SEQUENCE {
           tcpEStatsObsRecCurRwinRcvd          Gauge32,
           tcpEStatsObsRecMaxRwinRcvd          Gauge32,
           tcpEStatsObsRecMinRwinRcvd          Gauge32
       }

   tcpEStatsObsRecCurRwinRcvd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The most recent window advertisement received, in bytes."
       ::= { tcpEStatsObsRecEntry 1 }

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

   tcpEStatsObsRecMinRwinRcvd  OBJECT-TYPE
       SYNTAX          Gauge32
       MAX-ACCESS      read-only
       STATUS          current
       DESCRIPTION
          "The minimum window advertisement received, in bytes."
       ::= { tcpEStatsObsRecEntry 3 }

   --
   -- TCP Extended Statistics Notifications Group



Mathis, et al                                                  [Page 44]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   --

   tcpEStatsEstablishNotification NOTIFICATION-TYPE
       OBJECTS     {
                     tcpEStatsConnectIndex
                   }
       STATUS      current
       DESCRIPTION
           "The indicated connection has entered the
           established state"
       ::= { tcpEStatsNotifications 1 }

   tcpEStatsCloseNotification NOTIFICATION-TYPE
       OBJECTS     {
                     tcpEStatsConnectIndex
                   }
       STATUS      current
       DESCRIPTION
           "The indicated connection has left the
           established state"
       ::= { tcpEStatsNotifications 2 }

   --
   -- Conformance Definitions
   --

      tcpEStatsCompliances   OBJECT IDENTIFIER
           ::= { tcpEStatsConformance 1 }
      tcpEStatsGroups        OBJECT IDENTIFIER
           ::= { tcpEStatsConformance 2 }

   --
   -- Compliance Statements
   --

     tcpEStatsCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
            "Compliance statement for all systems that implement TCP
            extended statistics."
        MODULE -- this module
            MANDATORY-GROUPS {
                               tcpEStatsGroup,
                               tcpEStatsControlGroup,
                               tcpEStatsNotificationsGroup
                             }
      ::= { tcpEStatsCompliances 1 }




Mathis, et al                                                  [Page 45]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


   --
   -- Units of Conformance
   --
       tcpEStatsGroup  OBJECT-GROUP
            OBJECTS {
                 tcpEStatsConnectionState, tcpEStatsConnectionSACK,
                 tcpEStatsConnectionTimeStamps,
                 tcpEStatsConnectionECN, tcpEStatsConnectionNagle,
                 tcpEStatsConnectionSndWindScale,
                 tcpEStatsConnectionRcvWindScale,
                 tcpEStatsSynOptsActiveOpen,
                 tcpEStatsSynOptsMSSSent, tcpEStatsSynOptsMSSRcvd,
                 tcpEStatsSynOptsWinScaleSent,
                 tcpEStatsSynOptsWinScaleRcvd,
                 tcpEStatsSynOptsSACKokSent,
                 tcpEStatsSynOptsSACKokRcvd,
                 tcpEStatsSynOptsTimeStampSent,
                 tcpEStatsSynOptsTimeStampRcvd,
                 tcpEStatsDataPktsOut, tcpEStatsDataDataPktsOut,
                 tcpEStatsDataDataBytesOut,
                 tcpEStatsDataHCDataBytesOut, tcpEStatsDataPktsIn,
                 tcpEStatsDataDataPktsIn, tcpEStatsDataDataBytesIn,
                 tcpEStatsDataHCDataBytesIn,
                 tcpEStatsDataSoftErrors,
                 tcpEStatsDataSoftErrorReason, tcpEStatsDataIpTtl,
                 tcpEStatsDataIpDscp, tcpEStatsDataSndUna,
                 tcpEStatsDataSndNxt, tcpEStatsDataSndMax,
                 tcpEStatsDataThruBytesAcked,
                 tcpEStatsDataHCThruBytesAcked,
                 tcpEStatsDataSndInitial, tcpEStatsDataRcvNxt,
                 tcpEStatsDataThruBytesReceived,
                 tcpEStatsDataHCThruBytesReceived,
                 tcpEStatsDataRecInitial, tcpEStatsDataElapsedSecs,
                 tcpEStatsDataDurationMicroSecs,
                 tcpEStatsDataStartTimeStamp,
                 tcpEStatsSndCongSndLimTransRwin,
                 tcpEStatsSndCongSndLimTimeRwin,
                 tcpEStatsSndCongSndLimTransCwnd,
                 tcpEStatsSndCongSndLimTimeCwnd,
                 tcpEStatsSndCongSndLimTransSnd,
                 tcpEStatsSndCongSndLimTimeSnd,
                 tcpEStatsSndCongSlowStart,
                 tcpEStatsSndCongCongAvoid,
                 tcpEStatsSndCongCongSignals,
                 tcpEStatsSndCongOtherReductions,
                 tcpEStatsSndCongCongOverCount,
                 tcpEStatsSndCongCwndRestores,
                 tcpEStatsSndCongCurCwnd,



Mathis, et al                                                  [Page 46]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


                 tcpEStatsSndCongMaxSsCwnd,
                 tcpEStatsSndCongMaxCaCwnd,
                 tcpEStatsSndCongLimCwnd,
                 tcpEStatsSndCongCurSsthresh,
                 tcpEStatsSndCongMaxSsthresh,
                 tcpEStatsSndCongMinSsthresh,
                 tcpEStatsPathFastRetran, tcpEStatsPathTimeouts,
                 tcpEStatsPathSubsequentTimeouts,
                 tcpEStatsPathCurTimeoutCount,
                 tcpEStatsPathAbruptTimeouts,
                 tcpEStatsPathPktsRetrans,
                 tcpEStatsPathBytesRetrans, tcpEStatsPathDupAcksIn,
                 tcpEStatsPathSACKsRcvd,
                 tcpEStatsPathSACKBlocksRcvd,
                 tcpEStatsPathPreCongSumCwnd,
                 tcpEStatsPathPreCongSumRTT,
                 tcpEStatsPathPostCongSumRTT,
                 tcpEStatsPathPostCongCountRTT,
                 tcpEStatsPathECNsignals, tcpEStatsPathECERcvd,
                 tcpEStatsPathSendStall, tcpEStatsPathQuenchRcvd,
                 tcpEStatsPathRetranThresh,
                 tcpEStatsPathSndDupAckEpisodes,
                 tcpEStatsPathSumBytesReordered,
                 tcpEStatsPathNonRecovDA, tcpEStatsPathAckAfterFR,
                 tcpEStatsPathDSACKDups, tcpEStatsPathSampleRTT,
                 tcpEStatsPathSmoothedRTT, tcpEStatsPathRTTVar,
                 tcpEStatsPathMaxRTT, tcpEStatsPathMinRTT,
                 tcpEStatsPathSumRTT, tcpEStatsPathHCSumRTT,
                 tcpEStatsPathCountRTT, tcpEStatsPathCurRTO,
                 tcpEStatsPathMaxRTO, tcpEStatsPathMinRTO,
                 tcpEStatsPathCurMSS, tcpEStatsPathMaxMSS,
                 tcpEStatsPathMinMSS,
                 tcpEStatsSendBuffCurRetxQueue,
                 tcpEStatsSendBuffMaxRetxQueue,
                 tcpEStatsSendBuffCurAppWQueue,
                 tcpEStatsSendBuffMaxAppWQueue,
                 tcpEStatsRecCurRwinSent, tcpEStatsRecMaxRwinSent,
                 tcpEStatsRecMinRwinSent, tcpEStatsRecLimRwin,
                 tcpEStatsRecDupAckEpisodes,
                 tcpEStatsRecDupAcksOut, tcpEStatsRecCERcvd,
                 tcpEStatsRecECNSent, tcpEStatsRecECNNonceRcvd,
                 tcpEStatsRecCurReasmQueue,
                 tcpEStatsRecMaxReasmQueue,
                 tcpEStatsRecCurAppRQueue,
                 tcpEStatsRecMaxAppRQueue,
                 tcpEStatsObsRecCurRwinRcvd,
                 tcpEStatsObsRecMaxRwinRcvd,
                 tcpEStatsObsRecMinRwinRcvd,



Mathis, et al                                                  [Page 47]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


                 tcpEStatsListenerTableLastChange,
                 tcpEStatsListenerTimeOuts,
                 tcpEStatsListenerEstablished,
                 tcpEStatsListenerStartTime,
                 tcpEStatsConnectIndex
            }
            STATUS current
            DESCRIPTION
                 "The tcpEStats group includes objects that provide
                 valuable statistics and debugging information for
                 TCP Connections."

         ::= { tcpEStatsGroups 1 }

       tcpEStatsControlGroup  OBJECT-GROUP
            OBJECTS {
                    tcpEStatsControlState, tcpEStatsControlSynOpts,
                    tcpEStatsControlData, tcpEStatsControlSndCong,
                    tcpEStatsControlPath, tcpEStatsControlSendBuff,
                    tcpEStatsControlRec, tcpEStatsControlObsRec,
                    tcpEStatsControlNotify
            }
            STATUS current
            DESCRIPTION
                 "The tcpEStatsControl group consists of objects
                 that control collection of statistics/debugging
                 information for TCP connections."

      ::= { tcpEStatsGroups 2 }

   tcpEStatsNotificationsGroup  NOTIFICATION-GROUP
       NOTIFICATIONS {
                     tcpEStatsEstablishNotification,
                     tcpEStatsCloseNotification
       }
       STATUS        current
       DESCRIPTION
           "Notifications sent by a TCP extended statistics agent."
       ::= { tcpEStatsGroups 3 }

      END


5. Normative References


[RFC2574] U. Blumenthal, B. Wijnen, "User-based Security Model (USM) for
     version 3 of the Simple Network Management Protocol (SNMPv3)",



Mathis, et al                                                  [Page 48]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


     RFC2574, April 1999.

[RFC2575] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access
     Control Model (VACM) for the Simple Network Management Protocol
     (SNMP)", RFC 2575, April 1999.

[RFC2578]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
     Rose, M., and S. Waldbusser, "Structure of Management Information
     Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

[RFC2579]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
     Rose, M., and S. Waldbusser, "Textual Conventions for SMIv2", STD
     58, RFC 2579, April 1999.

[RFC2580]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
     Rose, M., and S. Waldbusser, "Conformance Statements for SMIv2",
     STD 58, RFC 2580, April 1999.

6. Informative References


[RFC2012] McCloghrie, K., "SNMPv2 Management Information Base for the
     Transmission Control Protocol using SMIv2", RFC 2012, November
     1996.

[RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction
     and Applicability Statements for Internet-Standard Management
     Framework", RFC 3410, December 2002.

[RFC2012bis] Bill Fenner, et al, "Management Information Base for the
     Transmission Control Protocol (TCP)" Internet-Draft draft-ietf-
     ipngwg-rfc2012-update-00.txt, expires January 2002.

[MSMO97] M. Mathis, J. Semke, J. Mahdavi, T. Ott, "The Macroscopic
     Behavior of the TCP Congestion Avoidance Algorithm", Computer Com-
     munication Review, volume 27, number3, July 1997.




7. Security Considerations

   There are a number of management objects defined in this MIB that
   have a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be considered sensitive or vulnerable in some network
   environments.  The support for SET operations in a non-secure
   environment without proper protection can have a negative effect on
   network operations.



Mathis, et al                                                  [Page 49]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


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

   tcpEStatsConnectRemAddress tcpEStatsDataSndUna tcpEStatsDataSndNxt
   tcpEStatsDataSndMax tcpEStatsDataSendInitial tcpEStatsDataRcvNxt
   tcpEStatsDataRecInitial

   It is thus important to control even GET access to these objects and
   possibly to even encrypt the values of these objects when sending
   them over the network via SNMP.  Not all versions of SNMP provide
   features for such a secure environment.  SNMPv1 by itself is not a
   secure environment.  Even if the network itself is secure (for
   example by using IPSec) there is no control as to who on the secure
   network is allowed to access and GET/SET (read/change/create/delete)
   the objects in this MIB.

   It is recommended that implementers consider using the security
   features as provided by the SNMPv3 framework.  Specifically, the use
   of the User-based Security Model RFC 2574 [RFC2574] and the View-
   based Access Control Model RFC 2575 [RFC2575] is recommended.

   It is then a customer/user responsibility to ensure that the SNMP
   entity giving access to an instance of this MIB, is properly
   configured to only give access to the objects to those principals
   (users) that have legitimate rights to indeed GET or SET
   (change/create/delete) them.


8. Contributors

   The following people have contributed substantially to this document.

   Some of the objects in this document were moved from an early draft
   of RFC2012bis, by Bill Fenner etal.

   Some of the object descriptions are based on an earlier unpublished
   document by Jeff Semke.

9. Acknowledgments

   This document is a product of Web100 (see: www.web100.org), a joint
   project of the Pittsburgh Supercomputing Center (www.psc.edu),
   National Center for Atmospheric Research (www.ncar.ucar.edu) and
   National Center for Supercomputer Applications (www.ncsa.edu).   It
   was supported by the National Science Foundation under Grant No.
   0083285 and a research grant from Cisco Systems.





Mathis, et al                                                  [Page 50]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


10. Authors' Addresses

        Matt Mathis
        Raghu Reddy
        John Heffner
        Pittsburgh Supercomputing Center
        4400 Fifth Ave
        Pittsburgh, PA 15216
        Phone: 412-268-4960
        Email: mathis@web100.org, rreddy@psc.edu, jheffner@psc.edu

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

        Jon Saperia
        JDS Consulting, Inc.
        174 Chapman Street
        Watertown, MA 02472
        Phone: 617-744-1079
        Email: saperia@jdscons.com


11. Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org.



Mathis, et al                                                  [Page 51]


Internet-Draft Expires Nov 30, 2004                         Jul 17, 2004


12. Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

13. Full Copyright Statement

   Copyright (C) The Internet Society (2004).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.




































Mathis, et al                                                  [Page 52]