TCP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32,
    Gauge32, Counter32, Counter64, IpAddress, mib-2
                                       FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
    InetAddress, InetAddressType,
    InetPortNumber                     FROM INET-ADDRESS-MIB;

tcpMIB MODULE-IDENTITY
    LAST-UPDATED "200502180000Z"  -- 18 February 2005
    ORGANIZATION
           "IETF IPv6 MIB Revision Team
            http://www.ietf.org/html.charters/ipv6-charter.html"
    CONTACT-INFO
           "Rajiv Raghunarayan (editor)

            Cisco Systems Inc.
            170 West Tasman Drive
            San Jose, CA 95134

            Phone: +1 408 853 9612
            Email: <raraghun@cisco.com>

            Send comments to <ipv6@ietf.org>"
    DESCRIPTION
           "The MIB module for managing TCP implementations.

            Copyright (C) The Internet Society (2005). This version
            of this MIB module is a part of RFC 4022; see the RFC
            itself for full legal notices."
    REVISION      "200502180000Z"  -- 18 February 2005
    DESCRIPTION
           "IP version neutral revision, published as RFC 4022."
    REVISION      "9411010000Z"
    DESCRIPTION
           "Initial SMIv2 version, published as RFC 2012."
    REVISION      "9103310000Z"
    DESCRIPTION
           "The initial revision of this MIB module was part of
            MIB-II."
    ::= { mib-2 49 }

-- the TCP base variables group

tcp      OBJECT IDENTIFIER ::= { mib-2 6 }

-- Scalars

tcpRtoAlgorithm OBJECT-TYPE
    SYNTAX      INTEGER {
                    other(1),    -- none of the following
                    constant(2), -- a constant rto
                    rsre(3),     -- MIL-STD-1778, Appendix B
                    vanj(4),     -- Van Jacobson's algorithm
                    rfc2988(5)   -- RFC 2988
                }
    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 (0..2147483647)
    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
            on the algorithm used to determine the retransmission
            timeout; in particular, the IETF standard algorithm
            rfc2988(5) provides a minimum value."
    ::= { tcp 2 }

tcpRtoMax OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    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
            on the algorithm used to determine the retransmission
            timeout; in particular, the IETF standard algorithm
            rfc2988(5) provides an upper bound (as part of an
            adaptive backoff algorithm)."
    ::= { tcp 3 }

tcpMaxConn OBJECT-TYPE
    SYNTAX     Integer32 (-1 | 0..2147483647)
    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 that TCP connections have made a direct
            transition to the SYN-SENT state from the CLOSED state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { 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.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 6 }

tcpAttemptFails OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times that 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 that
            TCP connections have made a direct transition to the
            LISTEN state from the SYN-RCVD state.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."

    ::= { tcp 7 }

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

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { 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.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { 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.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."

    ::= { 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.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 12 }

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).

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 14 }

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

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 15 }

-- { tcp 16 } was used to represent the ipv6TcpConnTable in RFC 2452,
-- which has since been obsoleted.  It MUST not be used.

tcpHCInSegs OBJECT-TYPE
    SYNTAX     Counter64
    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.  This object is
            the 64-bit equivalent of tcpInSegs.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 17 }

tcpHCOutSegs OBJECT-TYPE
    SYNTAX     Counter64
    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.  This object is the 64-bit
            equivalent of tcpOutSegs.

            Discontinuities in the value of this counter are
            indicated via discontinuities in the value of sysUpTime."
    ::= { tcp 18 }


-- The TCP Connection table

tcpConnectionTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TcpConnectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A table containing information about existing TCP
            connections.  Note that unlike earlier TCP MIBs, there
            is a separate table for connections in the LISTEN state."
    ::= { tcp 19 }

tcpConnectionEntry OBJECT-TYPE
    SYNTAX     TcpConnectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A conceptual row of the tcpConnectionTable 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   { tcpConnectionLocalAddressType,
              tcpConnectionLocalAddress,
              tcpConnectionLocalPort,
              tcpConnectionRemAddressType,
              tcpConnectionRemAddress,
              tcpConnectionRemPort }
    ::= { tcpConnectionTable 1 }

TcpConnectionEntry ::= SEQUENCE {
        tcpConnectionLocalAddressType   InetAddressType,
        tcpConnectionLocalAddress       InetAddress,
        tcpConnectionLocalPort          InetPortNumber,
        tcpConnectionRemAddressType     InetAddressType,
        tcpConnectionRemAddress         InetAddress,
        tcpConnectionRemPort            InetPortNumber,
        tcpConnectionState              INTEGER,
        tcpConnectionProcess            Unsigned32
    }

tcpConnectionLocalAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The address type of tcpConnectionLocalAddress."
    ::= { tcpConnectionEntry 1 }

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

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

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

tcpConnectionRemAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The address type of tcpConnectionRemAddress."
    ::= { tcpConnectionEntry 4 }

tcpConnectionRemAddress 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
            tcpConnectionRemAddressType.

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

tcpConnectionRemPort OBJECT-TYPE
    SYNTAX     InetPortNumber
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The remote port number for this TCP connection."
    ::= { tcpConnectionEntry 6 }

tcpConnectionState 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 value listen(2) is included only for parallelism to the
            old tcpConnTable and should not be used.  A connection in
            LISTEN state should be present in the tcpListenerTable.

            The only value that 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 the TCB (as defined in [RFC793]) of
            the corresponding connection on the managed node is
            deleted, 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)."
    ::= { tcpConnectionEntry 7 }

tcpConnectionProcess OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The system's process ID for the process associated with
            this connection, or zero if there is no such process.  This
            value is expected to be the same as HOST-RESOURCES-MIB::
            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
            row in the appropriate tables."
    ::= { tcpConnectionEntry 8 }

-- The TCP Listener table

tcpListenerTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TcpListenerEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A table containing information about TCP listeners.  A
            listening application can be represented in three
            possible ways:

            1. An application that is willing to accept both IPv4 and
               IPv6 datagrams is represented by
               a tcpListenerLocalAddressType of unknown (0) and
               a tcpListenerLocalAddress of ''h (a zero-length
               octet-string).

            2. An application that is willing to accept only IPv4 or
               IPv6 datagrams is represented by a
               tcpListenerLocalAddressType of the appropriate address
               type and a tcpListenerLocalAddress of '0.0.0.0' or '::'
               respectively.

            3. An application that is listening for data destined
               only to a specific IP address, but from any remote
               system, is represented by a tcpListenerLocalAddressType
               of an appropriate address type, with
               tcpListenerLocalAddress as the specific local address.

            NOTE: The address type in this table represents the
            address type used for the communication, irrespective
            of the higher-layer abstraction.  For example, an
            application using IPv6 'sockets' to communicate via
            IPv4 between ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would
            use InetAddressType ipv4(1))."
    ::= { tcp 20 }

tcpListenerEntry OBJECT-TYPE
    SYNTAX     TcpListenerEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A conceptual row of the tcpListenerTable containing
            information about a particular TCP listener."
    INDEX   { tcpListenerLocalAddressType,
              tcpListenerLocalAddress,
              tcpListenerLocalPort }
    ::= { tcpListenerTable 1 }

TcpListenerEntry ::= SEQUENCE {
        tcpListenerLocalAddressType       InetAddressType,
        tcpListenerLocalAddress           InetAddress,
        tcpListenerLocalPort              InetPortNumber,
        tcpListenerProcess                Unsigned32
    }

tcpListenerLocalAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION

           "The address type of tcpListenerLocalAddress.  The value
            should be unknown (0) if connection initiations to all
            local IP addresses are accepted."
    ::= { tcpListenerEntry 1 }

tcpListenerLocalAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The local IP address for this TCP connection.

            The value of this object can be represented in three
            possible ways, depending on the characteristics of the
            listening application:

            1. For an application willing to accept both IPv4 and
               IPv6 datagrams, the value of this object must be
               ''h (a zero-length octet-string), with the value
               of the corresponding tcpListenerLocalAddressType
               object being unknown (0).

            2. For an application willing to accept only IPv4 or
               IPv6 datagrams, the value of this object must be
               '0.0.0.0' or '::' respectively, with
               tcpListenerLocalAddressType representing the
               appropriate address type.

            3. For an application which is listening for data
               destined only to a specific IP address, the value
               of this object is the specific local address, with
               tcpListenerLocalAddressType representing the
               appropriate address type.

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

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

tcpListenerProcess OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The system's process ID for the process associated with
            this listener, or zero if there is no such process.  This
            value is expected to be the same as HOST-RESOURCES-MIB::
            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
            row in the appropriate tables."
    ::= { tcpListenerEntry 4 }


-- The deprecated TCP Connection table

tcpConnTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TcpConnEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "A table containing information about existing IPv4-specific
            TCP connections or listeners.  This table has been
            deprecated in favor of the version neutral
            tcpConnectionTable."
    ::= { tcp 13 }

tcpConnEntry OBJECT-TYPE
    SYNTAX     TcpConnEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "A conceptual row of the tcpConnTable containing information
            about a particular current IPv4 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     Integer32,
        tcpConnRemAddress    IpAddress,
        tcpConnRemPort       Integer32
    }

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     deprecated
    DESCRIPTION
           "The state of this TCP connection.

            The only value that 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 the TCB (as defined in [RFC793]) of
            the corresponding connection on the managed node is
            deleted, 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     deprecated
    DESCRIPTION
           "The local IP address for this TCP connection.  In the case
            of a connection in the listen state 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     Integer32 (0..65535)
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The local port number for this TCP connection."
    ::= { tcpConnEntry 3 }

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

tcpConnRemPort OBJECT-TYPE
    SYNTAX     Integer32 (0..65535)
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The remote port number for this TCP connection."
    ::= { tcpConnEntry 5 }

-- conformance information

tcpMIBConformance OBJECT IDENTIFIER ::= { tcpMIB 2 }

tcpMIBCompliances OBJECT IDENTIFIER ::= { tcpMIBConformance 1 }
tcpMIBGroups      OBJECT IDENTIFIER ::= { tcpMIBConformance 2 }

-- compliance statements

tcpMIBCompliance2 MODULE-COMPLIANCE
    STATUS     current
    DESCRIPTION
           "The compliance statement for systems that implement TCP.

            A number of INDEX objects cannot be
            represented in the form of OBJECT clauses in SMIv2 but
            have the following compliance requirements,
            expressed in OBJECT clause form in this description
            clause:

            -- OBJECT      tcpConnectionLocalAddressType
            -- SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
            -- DESCRIPTION
            --     This MIB requires support for only global IPv4
            --     and IPv6 address types.
            --
            -- OBJECT      tcpConnectionRemAddressType
            -- SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
            -- DESCRIPTION
            --     This MIB requires support for only global IPv4
            --     and IPv6 address types.
            --
            -- OBJECT      tcpListenerLocalAddressType
            -- SYNTAX      InetAddressType { unknown(0), ipv4(1),
            --                               ipv6(2) }
            -- DESCRIPTION
            --     This MIB requires support for only global IPv4
            --     and IPv6 address types.  The type unknown also
            --     needs to be supported to identify a special
            --     case in the listener table: a listen using
            --     both IPv4 and IPv6 addresses on the device.
            --
           "
    MODULE  -- this module
        MANDATORY-GROUPS { tcpBaseGroup, tcpConnectionGroup,
                           tcpListenerGroup }
        GROUP       tcpHCGroup
        DESCRIPTION
           "This group is mandatory for systems that are capable
            of receiving or transmitting more than 1 million TCP
            segments per second.  1 million segments per second will
            cause a Counter32 to wrap in just over an hour."
        OBJECT      tcpConnectionState
        SYNTAX      INTEGER { closed(1), listen(2), synSent(3),
                              synReceived(4), established(5),
                              finWait1(6), finWait2(7), closeWait(8),
                              lastAck(9), closing(10), timeWait(11) }
        MIN-ACCESS  read-only
        DESCRIPTION
           "Write access is not required, nor is support for the value
            deleteTCB (12)."
    ::= { tcpMIBCompliances 2 }

tcpMIBCompliance MODULE-COMPLIANCE
    STATUS     deprecated
    DESCRIPTION
           "The compliance statement for IPv4-only systems that
            implement TCP.  In order to be IP version independent, this
            compliance statement is deprecated in favor of
            tcpMIBCompliance2.  However, agents are still encouraged
            to implement these objects in order to interoperate with
            the deployed base of managers."
    MODULE  -- this module
        MANDATORY-GROUPS { tcpGroup }
        OBJECT      tcpConnState
        MIN-ACCESS  read-only
        DESCRIPTION
           "Write access is not required."
    ::= { tcpMIBCompliances 1 }


-- units of conformance

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

tcpBaseGroup OBJECT-GROUP
    OBJECTS   { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
                tcpMaxConn, tcpActiveOpens,
                tcpPassiveOpens, tcpAttemptFails,
                tcpEstabResets, tcpCurrEstab, tcpInSegs,
                tcpOutSegs, tcpRetransSegs,
                tcpInErrs, tcpOutRsts }
    STATUS     current
    DESCRIPTION
           "The group of counters common to TCP entities."
    ::= { tcpMIBGroups 2 }

tcpConnectionGroup OBJECT-GROUP
    OBJECTS    { tcpConnectionState, tcpConnectionProcess }
    STATUS     current
    DESCRIPTION
           "The group provides general information about TCP
            connections."
    ::= { tcpMIBGroups 3 }

tcpListenerGroup OBJECT-GROUP
    OBJECTS    { tcpListenerProcess }
    STATUS     current
    DESCRIPTION
           "This group has objects providing general information about
            TCP listeners."
    ::= { tcpMIBGroups 4 }

tcpHCGroup OBJECT-GROUP
    OBJECTS    { tcpHCInSegs, tcpHCOutSegs }
    STATUS     current
    DESCRIPTION
           "The group of objects providing for counters of high speed
            TCP implementations."
    ::= { tcpMIBGroups 5 }

END