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: Send comments to " 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