TCP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    mib-2, IpAddress, Counter32, Gauge32, Integer32, OBJECT-TYPE, MODULE-IDENTITY
        FROM SNMPv2-SMI;

tcpMIB MODULE-IDENTITY
    LAST-UPDATED "9411010000Z"
    ORGANIZATION "IETF SNMPv2 Working Group"
    CONTACT-INFO
                 "Keith McCloghrie

          Postal: Cisco Systems, Inc.
                  170 West Tasman Drive
                  San Jose, CA  95134-1706
                  US

          Phone:  +1 408 526 5260
          Email:  kzm@cisco.com"
    DESCRIPTION
        "The MIB module for managing TCP implementations."
    REVISION     "9103310000Z"
    DESCRIPTION
        "The initial revision of this MIB module was part of MIB-
         II."
    ::= { mib-2  49 }

tcp ::= { mib-2  6 }

tcpRtoAlgorithm OBJECT-TYPE
    SYNTAX     INTEGER {
                 other(1),
                 constant(2),
                 rsre(3),
                 vanj(4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The algorithm used to determine the timeout value used for
         retransmitting unacknowledged octets."
    ::= { tcp  1 }

tcpRtoMin OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "milliseconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The minimum value permitted by a TCP implementation for the
         retransmission timeout, measured in milliseconds.  More
         refined semantics for objects of this type depend upon the
         algorithm used to determine the retransmission timeout.  In
         particular, when the timeout algorithm is rsre(3), an object
         of this type has the semantics of the LBOUND quantity
         described in RFC 793."
    ::= { tcp  2 }

tcpRtoMax OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "milliseconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The maximum value permitted by a TCP implementation for the

         retransmission timeout, measured in milliseconds.  More
         refined semantics for objects of this type depend upon the
         algorithm used to determine the retransmission timeout.  In
         particular, when the timeout algorithm is rsre(3), an object
         of this type has the semantics of the UBOUND quantity
         described in RFC 793."
    ::= { tcp  3 }

tcpMaxConn OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The limit on the total number of TCP connections the entity
         can support.  In entities where the maximum number of
         connections is dynamic, this object should contain the value
         -1."
    ::= { tcp  4 }

tcpActiveOpens OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times TCP connections have made a direct
         transition to the SYN-SENT state from the CLOSED state."
    ::= { tcp  5 }

tcpPassiveOpens OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times TCP connections have made a direct
         transition to the SYN-RCVD state from the LISTEN state."
    ::= { tcp  6 }

tcpAttemptFails OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times TCP connections have made a direct
         transition to the CLOSED state from either the SYN-SENT
         state or the SYN-RCVD state, plus the number of times TCP
         connections have made a direct transition to the LISTEN
         state from the SYN-RCVD state."
    ::= { tcp  7 }

tcpEstabResets OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times TCP connections have made a direct
         transition to the CLOSED state from either the ESTABLISHED
         state or the CLOSE-WAIT state."
    ::= { tcp  8 }

tcpCurrEstab OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of TCP connections for which the current state
         is either ESTABLISHED or CLOSE- WAIT."
    ::= { tcp  9 }

tcpInSegs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total number of segments received, including those
         received in error.  This count includes segments received on
         currently established connections."
    ::= { tcp  10 }

tcpOutSegs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total number of segments sent, including those on
         current connections but excluding those containing only
         retransmitted octets."
    ::= { tcp  11 }

tcpRetransSegs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total number of segments retransmitted - that is, the
         number of TCP segments transmitted containing one or more
         previously transmitted octets."
    ::= { tcp  12 }

tcpConnTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TcpConnEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A table containing TCP connection-specific information."
    ::= { tcp  13 }

tcpConnEntry OBJECT-TYPE
    SYNTAX     TcpConnEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A conceptual row of the tcpConnTable containing information
         about a particular current TCP connection.  Each row of this
         table is transient, in that it ceases to exist when (or soon
         after) the connection makes the transition to the CLOSED
         state."
    INDEX      {
                 tcpConnLocalAddress,
                 tcpConnLocalPort,
                 tcpConnRemAddress,
                 tcpConnRemPort
               }
    ::= { tcpConnTable  1 }

TcpConnEntry ::=
    SEQUENCE {
        tcpConnState
            INTEGER,

        tcpConnLocalAddress
            IpAddress,

        tcpConnLocalPort
            INTEGER,

        tcpConnRemAddress
            IpAddress,

        tcpConnRemPort
            INTEGER
    }

tcpConnState OBJECT-TYPE
    SYNTAX     INTEGER {
                 closed(1),
                 listen(2),
                 synSent(3),
                 synReceived(4),
                 established(5),
                 finWait1(6),
                 finWait2(7),
                 closeWait(8),
                 lastAck(9),
                 closing(10),
                 timeWait(11),
                 deleteTCB(12)
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The state of this TCP connection.

         The only value which may be set by a management station is
         deleteTCB(12).  Accordingly, it is appropriate for an agent
         to return a `badValue' response if a management station
         attempts to set this object to any other value.

         If a management station sets this object to the value
         deleteTCB(12), then this has the effect of deleting the TCB
         (as defined in RFC 793) of the corresponding connection on
         the managed node, resulting in immediate termination of the
         connection.

         As an implementation-specific option, a RST segment may be
         sent from the managed node to the other TCP endpoint (note
         however that RST segments are not sent reliably)."
    ::= { tcpConnEntry  1 }

tcpConnLocalAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The local IP address for this TCP connection.  In the case
         of a connection in the listen state which is willing to
         accept connections for any IP interface associated with the
         node, the value 0.0.0.0 is used."
    ::= { tcpConnEntry  2 }

tcpConnLocalPort OBJECT-TYPE
    SYNTAX     INTEGER
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The local port number for this TCP connection."
    ::= { tcpConnEntry  3 }

tcpConnRemAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The remote IP address for this TCP connection."
    ::= { tcpConnEntry  4 }

tcpConnRemPort OBJECT-TYPE
    SYNTAX     INTEGER
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The remote port number for this TCP connection."
    ::= { tcpConnEntry  5 }

tcpInErrs OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total number of segments received in error (e.g., bad
         TCP checksums)."
    ::= { tcp  14 }

tcpOutRsts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of TCP segments sent containing the RST flag."
    ::= { tcp  15 }

tcpMIBConformance ::= { tcpMIB  2 }

tcpMIBCompliances ::= { tcpMIBConformance  1 }

tcpMIBGroups ::= { tcpMIBConformance  2 }

tcpMIBCompliance MODULE-COMPLIANCE
    STATUS     current
    DESCRIPTION
        "The compliance statement for SNMPv2 entities which
         implement TCP."

    MODULE           -- this module
    MANDATORY-GROUPS { tcpGroup }
    ::= { tcpMIBCompliances  1 }

tcpGroup OBJECT-GROUP
    OBJECTS    {
                 tcpRtoAlgorithm,
                 tcpRtoMin,
                 tcpRtoMax,
                 tcpMaxConn,
                 tcpActiveOpens,
                 tcpPassiveOpens,
                 tcpAttemptFails,
                 tcpEstabResets,
                 tcpCurrEstab,
                 tcpInSegs,
                 tcpOutSegs,
                 tcpRetransSegs,
                 tcpConnState,
                 tcpConnLocalAddress,
                 tcpConnLocalPort,
                 tcpConnRemAddress,
                 tcpConnRemPort,
                 tcpInErrs,
                 tcpOutRsts
               }
    STATUS     current
    DESCRIPTION
        "The tcp group of objects providing for management of TCP
         entities."
    ::= { tcpMIBGroups  1 }

END
