1 TCP-MIB DEFINITIONS ::= BEGIN
4 MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32,
5 Gauge32, Counter32, Counter64, IpAddress, mib-2
7 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
8 InetAddress, InetAddressType,
9 InetPortNumber FROM INET-ADDRESS-MIB;
11 tcpMIB MODULE-IDENTITY
12 LAST-UPDATED "200502180000Z" -- 18 February 2005
14 "IETF IPv6 MIB Revision Team
15 http://www.ietf.org/html.charters/ipv6-charter.html"
17 "Rajiv Raghunarayan (editor)
23 Phone: +1 408 853 9612
24 Email: <raraghun@cisco.com>
26 Send comments to <ipv6@ietf.org>"
28 "The MIB module for managing TCP implementations.
30 Copyright (C) The Internet Society (2005). This version
31 of this MIB module is a part of RFC 4022; see the RFC
32 itself for full legal notices."
33 REVISION "200502180000Z" -- 18 February 2005
35 "IP version neutral revision, published as RFC 4022."
36 REVISION "9411010000Z"
38 "Initial SMIv2 version, published as RFC 2012."
39 REVISION "9103310000Z"
41 "The initial revision of this MIB module was part of
45 -- the TCP base variables group
50 tcp OBJECT IDENTIFIER ::= { mib-2 6 }
54 tcpRtoAlgorithm OBJECT-TYPE
56 other(1), -- none of the following
57 constant(2), -- a constant rto
58 rsre(3), -- MIL-STD-1778, Appendix B
59 vanj(4), -- Van Jacobson's algorithm
60 rfc2988(5) -- RFC 2988
65 "The algorithm used to determine the timeout value used for
66 retransmitting unacknowledged octets."
70 SYNTAX Integer32 (0..2147483647)
75 "The minimum value permitted by a TCP implementation for
76 the retransmission timeout, measured in milliseconds.
77 More refined semantics for objects of this type depend
78 on the algorithm used to determine the retransmission
79 timeout; in particular, the IETF standard algorithm
80 rfc2988(5) provides a minimum value."
84 SYNTAX Integer32 (0..2147483647)
89 "The maximum value permitted by a TCP implementation for
90 the retransmission timeout, measured in milliseconds.
91 More refined semantics for objects of this type depend
92 on the algorithm used to determine the retransmission
93 timeout; in particular, the IETF standard algorithm
94 rfc2988(5) provides an upper bound (as part of an
95 adaptive backoff algorithm)."
101 tcpMaxConn OBJECT-TYPE
102 SYNTAX Integer32 (-1 | 0..2147483647)
106 "The limit on the total number of TCP connections the entity
107 can support. In entities where the maximum number of
108 connections is dynamic, this object should contain the
112 tcpActiveOpens OBJECT-TYPE
117 "The number of times that TCP connections have made a direct
118 transition to the SYN-SENT state from the CLOSED state.
120 Discontinuities in the value of this counter are
121 indicated via discontinuities in the value of sysUpTime."
124 tcpPassiveOpens OBJECT-TYPE
129 "The number of times TCP connections have made a direct
130 transition to the SYN-RCVD state from the LISTEN state.
132 Discontinuities in the value of this counter are
133 indicated via discontinuities in the value of sysUpTime."
136 tcpAttemptFails OBJECT-TYPE
141 "The number of times that TCP connections have made a direct
142 transition to the CLOSED state from either the SYN-SENT
143 state or the SYN-RCVD state, plus the number of times that
144 TCP connections have made a direct transition to the
145 LISTEN state from the SYN-RCVD state.
147 Discontinuities in the value of this counter are
148 indicated via discontinuities in the value of sysUpTime."
154 tcpEstabResets OBJECT-TYPE
159 "The number of times that TCP connections have made a direct
160 transition to the CLOSED state from either the ESTABLISHED
161 state or the CLOSE-WAIT state.
163 Discontinuities in the value of this counter are
164 indicated via discontinuities in the value of sysUpTime."
167 tcpCurrEstab OBJECT-TYPE
172 "The number of TCP connections for which the current state
173 is either ESTABLISHED or CLOSE-WAIT."
176 tcpInSegs OBJECT-TYPE
181 "The total number of segments received, including those
182 received in error. This count includes segments received
183 on currently established connections.
185 Discontinuities in the value of this counter are
186 indicated via discontinuities in the value of sysUpTime."
189 tcpOutSegs OBJECT-TYPE
194 "The total number of segments sent, including those on
195 current connections but excluding those containing only
196 retransmitted octets.
198 Discontinuities in the value of this counter are
199 indicated via discontinuities in the value of sysUpTime."
205 tcpRetransSegs OBJECT-TYPE
210 "The total number of segments retransmitted; that is, the
211 number of TCP segments transmitted containing one or more
212 previously transmitted octets.
214 Discontinuities in the value of this counter are
215 indicated via discontinuities in the value of sysUpTime."
218 tcpInErrs OBJECT-TYPE
223 "The total number of segments received in error (e.g., bad
226 Discontinuities in the value of this counter are
227 indicated via discontinuities in the value of sysUpTime."
230 tcpOutRsts OBJECT-TYPE
235 "The number of TCP segments sent containing the RST flag.
237 Discontinuities in the value of this counter are
238 indicated via discontinuities in the value of sysUpTime."
241 -- { tcp 16 } was used to represent the ipv6TcpConnTable in RFC 2452,
242 -- which has since been obsoleted. It MUST not be used.
244 tcpHCInSegs OBJECT-TYPE
249 "The total number of segments received, including those
250 received in error. This count includes segments received
254 on currently established connections. This object is
255 the 64-bit equivalent of tcpInSegs.
257 Discontinuities in the value of this counter are
258 indicated via discontinuities in the value of sysUpTime."
261 tcpHCOutSegs OBJECT-TYPE
266 "The total number of segments sent, including those on
267 current connections but excluding those containing only
268 retransmitted octets. This object is the 64-bit
269 equivalent of tcpOutSegs.
271 Discontinuities in the value of this counter are
272 indicated via discontinuities in the value of sysUpTime."
276 -- The TCP Connection table
278 tcpConnectionTable OBJECT-TYPE
279 SYNTAX SEQUENCE OF TcpConnectionEntry
280 MAX-ACCESS not-accessible
283 "A table containing information about existing TCP
284 connections. Note that unlike earlier TCP MIBs, there
285 is a separate table for connections in the LISTEN state."
288 tcpConnectionEntry OBJECT-TYPE
289 SYNTAX TcpConnectionEntry
290 MAX-ACCESS not-accessible
293 "A conceptual row of the tcpConnectionTable containing
294 information about a particular current TCP connection.
295 Each row of this table is transient in that it ceases to
296 exist when (or soon after) the connection makes the
297 transition to the CLOSED state."
298 INDEX { tcpConnectionLocalAddressType,
299 tcpConnectionLocalAddress,
300 tcpConnectionLocalPort,
301 tcpConnectionRemAddressType,
305 tcpConnectionRemAddress,
306 tcpConnectionRemPort }
307 ::= { tcpConnectionTable 1 }
309 TcpConnectionEntry ::= SEQUENCE {
310 tcpConnectionLocalAddressType InetAddressType,
311 tcpConnectionLocalAddress InetAddress,
312 tcpConnectionLocalPort InetPortNumber,
313 tcpConnectionRemAddressType InetAddressType,
314 tcpConnectionRemAddress InetAddress,
315 tcpConnectionRemPort InetPortNumber,
316 tcpConnectionState INTEGER,
317 tcpConnectionProcess Unsigned32
320 tcpConnectionLocalAddressType OBJECT-TYPE
321 SYNTAX InetAddressType
322 MAX-ACCESS not-accessible
325 "The address type of tcpConnectionLocalAddress."
326 ::= { tcpConnectionEntry 1 }
328 tcpConnectionLocalAddress OBJECT-TYPE
330 MAX-ACCESS not-accessible
333 "The local IP address for this TCP connection. The type
334 of this address is determined by the value of
335 tcpConnectionLocalAddressType.
337 As this object is used in the index for the
338 tcpConnectionTable, implementors should be
339 careful not to create entries that would result in OIDs
340 with more than 128 subidentifiers; otherwise the information
341 cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
342 ::= { tcpConnectionEntry 2 }
344 tcpConnectionLocalPort OBJECT-TYPE
345 SYNTAX InetPortNumber
346 MAX-ACCESS not-accessible
349 "The local port number for this TCP connection."
350 ::= { tcpConnectionEntry 3 }
352 tcpConnectionRemAddressType OBJECT-TYPE
356 SYNTAX InetAddressType
357 MAX-ACCESS not-accessible
360 "The address type of tcpConnectionRemAddress."
361 ::= { tcpConnectionEntry 4 }
363 tcpConnectionRemAddress OBJECT-TYPE
365 MAX-ACCESS not-accessible
368 "The remote IP address for this TCP connection. The type
369 of this address is determined by the value of
370 tcpConnectionRemAddressType.
372 As this object is used in the index for the
373 tcpConnectionTable, implementors should be
374 careful not to create entries that would result in OIDs
375 with more than 128 subidentifiers; otherwise the information
376 cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
377 ::= { tcpConnectionEntry 5 }
379 tcpConnectionRemPort OBJECT-TYPE
380 SYNTAX InetPortNumber
381 MAX-ACCESS not-accessible
384 "The remote port number for this TCP connection."
385 ::= { tcpConnectionEntry 6 }
387 tcpConnectionState OBJECT-TYPE
402 MAX-ACCESS read-write
408 "The state of this TCP connection.
410 The value listen(2) is included only for parallelism to the
411 old tcpConnTable and should not be used. A connection in
412 LISTEN state should be present in the tcpListenerTable.
414 The only value that may be set by a management station is
415 deleteTCB(12). Accordingly, it is appropriate for an agent
416 to return a `badValue' response if a management station
417 attempts to set this object to any other value.
419 If a management station sets this object to the value
420 deleteTCB(12), then the TCB (as defined in [RFC793]) of
421 the corresponding connection on the managed node is
422 deleted, resulting in immediate termination of the
425 As an implementation-specific option, a RST segment may be
426 sent from the managed node to the other TCP endpoint (note,
427 however, that RST segments are not sent reliably)."
428 ::= { tcpConnectionEntry 7 }
430 tcpConnectionProcess OBJECT-TYPE
435 "The system's process ID for the process associated with
436 this connection, or zero if there is no such process. This
437 value is expected to be the same as HOST-RESOURCES-MIB::
438 hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
439 row in the appropriate tables."
440 ::= { tcpConnectionEntry 8 }
442 -- The TCP Listener table
444 tcpListenerTable OBJECT-TYPE
445 SYNTAX SEQUENCE OF TcpListenerEntry
446 MAX-ACCESS not-accessible
449 "A table containing information about TCP listeners. A
450 listening application can be represented in three
453 1. An application that is willing to accept both IPv4 and
454 IPv6 datagrams is represented by
458 a tcpListenerLocalAddressType of unknown (0) and
459 a tcpListenerLocalAddress of ''h (a zero-length
462 2. An application that is willing to accept only IPv4 or
463 IPv6 datagrams is represented by a
464 tcpListenerLocalAddressType of the appropriate address
465 type and a tcpListenerLocalAddress of '0.0.0.0' or '::'
468 3. An application that is listening for data destined
469 only to a specific IP address, but from any remote
470 system, is represented by a tcpListenerLocalAddressType
471 of an appropriate address type, with
472 tcpListenerLocalAddress as the specific local address.
474 NOTE: The address type in this table represents the
475 address type used for the communication, irrespective
476 of the higher-layer abstraction. For example, an
477 application using IPv6 'sockets' to communicate via
478 IPv4 between ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would
479 use InetAddressType ipv4(1))."
482 tcpListenerEntry OBJECT-TYPE
483 SYNTAX TcpListenerEntry
484 MAX-ACCESS not-accessible
487 "A conceptual row of the tcpListenerTable containing
488 information about a particular TCP listener."
489 INDEX { tcpListenerLocalAddressType,
490 tcpListenerLocalAddress,
491 tcpListenerLocalPort }
492 ::= { tcpListenerTable 1 }
494 TcpListenerEntry ::= SEQUENCE {
495 tcpListenerLocalAddressType InetAddressType,
496 tcpListenerLocalAddress InetAddress,
497 tcpListenerLocalPort InetPortNumber,
498 tcpListenerProcess Unsigned32
501 tcpListenerLocalAddressType OBJECT-TYPE
502 SYNTAX InetAddressType
503 MAX-ACCESS not-accessible
509 "The address type of tcpListenerLocalAddress. The value
510 should be unknown (0) if connection initiations to all
511 local IP addresses are accepted."
512 ::= { tcpListenerEntry 1 }
514 tcpListenerLocalAddress OBJECT-TYPE
516 MAX-ACCESS not-accessible
519 "The local IP address for this TCP connection.
521 The value of this object can be represented in three
522 possible ways, depending on the characteristics of the
523 listening application:
525 1. For an application willing to accept both IPv4 and
526 IPv6 datagrams, the value of this object must be
527 ''h (a zero-length octet-string), with the value
528 of the corresponding tcpListenerLocalAddressType
529 object being unknown (0).
531 2. For an application willing to accept only IPv4 or
532 IPv6 datagrams, the value of this object must be
533 '0.0.0.0' or '::' respectively, with
534 tcpListenerLocalAddressType representing the
535 appropriate address type.
537 3. For an application which is listening for data
538 destined only to a specific IP address, the value
539 of this object is the specific local address, with
540 tcpListenerLocalAddressType representing the
541 appropriate address type.
543 As this object is used in the index for the
544 tcpListenerTable, implementors should be
545 careful not to create entries that would result in OIDs
546 with more than 128 subidentifiers; otherwise the information
547 cannot be accessed, using SNMPv1, SNMPv2c, or SNMPv3."
548 ::= { tcpListenerEntry 2 }
550 tcpListenerLocalPort OBJECT-TYPE
551 SYNTAX InetPortNumber
552 MAX-ACCESS not-accessible
555 "The local port number for this TCP connection."
556 ::= { tcpListenerEntry 3 }
560 tcpListenerProcess OBJECT-TYPE
565 "The system's process ID for the process associated with
566 this listener, or zero if there is no such process. This
567 value is expected to be the same as HOST-RESOURCES-MIB::
568 hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
569 row in the appropriate tables."
570 ::= { tcpListenerEntry 4 }
573 -- The deprecated TCP Connection table
575 tcpConnTable OBJECT-TYPE
576 SYNTAX SEQUENCE OF TcpConnEntry
577 MAX-ACCESS not-accessible
580 "A table containing information about existing IPv4-specific
581 TCP connections or listeners. This table has been
582 deprecated in favor of the version neutral
586 tcpConnEntry OBJECT-TYPE
588 MAX-ACCESS not-accessible
591 "A conceptual row of the tcpConnTable containing information
592 about a particular current IPv4 TCP connection. Each row
593 of this table is transient in that it ceases to exist when
594 (or soon after) the connection makes the transition to the
596 INDEX { tcpConnLocalAddress,
600 ::= { tcpConnTable 1 }
602 TcpConnEntry ::= SEQUENCE {
603 tcpConnState INTEGER,
604 tcpConnLocalAddress IpAddress,
605 tcpConnLocalPort Integer32,
606 tcpConnRemAddress IpAddress,
607 tcpConnRemPort Integer32
613 tcpConnState OBJECT-TYPE
628 MAX-ACCESS read-write
631 "The state of this TCP connection.
633 The only value that may be set by a management station is
634 deleteTCB(12). Accordingly, it is appropriate for an agent
635 to return a `badValue' response if a management station
636 attempts to set this object to any other value.
638 If a management station sets this object to the value
639 deleteTCB(12), then the TCB (as defined in [RFC793]) of
640 the corresponding connection on the managed node is
641 deleted, resulting in immediate termination of the
644 As an implementation-specific option, a RST segment may be
645 sent from the managed node to the other TCP endpoint (note,
646 however, that RST segments are not sent reliably)."
647 ::= { tcpConnEntry 1 }
649 tcpConnLocalAddress OBJECT-TYPE
654 "The local IP address for this TCP connection. In the case
655 of a connection in the listen state willing to
656 accept connections for any IP interface associated with the
657 node, the value 0.0.0.0 is used."
658 ::= { tcpConnEntry 2 }
662 tcpConnLocalPort OBJECT-TYPE
663 SYNTAX Integer32 (0..65535)
667 "The local port number for this TCP connection."
668 ::= { tcpConnEntry 3 }
670 tcpConnRemAddress OBJECT-TYPE
675 "The remote IP address for this TCP connection."
676 ::= { tcpConnEntry 4 }
678 tcpConnRemPort OBJECT-TYPE
679 SYNTAX Integer32 (0..65535)
683 "The remote port number for this TCP connection."
684 ::= { tcpConnEntry 5 }
686 -- conformance information
688 tcpMIBConformance OBJECT IDENTIFIER ::= { tcpMIB 2 }
690 tcpMIBCompliances OBJECT IDENTIFIER ::= { tcpMIBConformance 1 }
691 tcpMIBGroups OBJECT IDENTIFIER ::= { tcpMIBConformance 2 }
693 -- compliance statements
695 tcpMIBCompliance2 MODULE-COMPLIANCE
698 "The compliance statement for systems that implement TCP.
700 A number of INDEX objects cannot be
701 represented in the form of OBJECT clauses in SMIv2 but
702 have the following compliance requirements,
703 expressed in OBJECT clause form in this description
706 -- OBJECT tcpConnectionLocalAddressType
707 -- SYNTAX InetAddressType { ipv4(1), ipv6(2) }
709 -- This MIB requires support for only global IPv4
713 -- and IPv6 address types.
715 -- OBJECT tcpConnectionRemAddressType
716 -- SYNTAX InetAddressType { ipv4(1), ipv6(2) }
718 -- This MIB requires support for only global IPv4
719 -- and IPv6 address types.
721 -- OBJECT tcpListenerLocalAddressType
722 -- SYNTAX InetAddressType { unknown(0), ipv4(1),
725 -- This MIB requires support for only global IPv4
726 -- and IPv6 address types. The type unknown also
727 -- needs to be supported to identify a special
728 -- case in the listener table: a listen using
729 -- both IPv4 and IPv6 addresses on the device.
732 MODULE -- this module
733 MANDATORY-GROUPS { tcpBaseGroup, tcpConnectionGroup,
737 "This group is mandatory for systems that are capable
738 of receiving or transmitting more than 1 million TCP
739 segments per second. 1 million segments per second will
740 cause a Counter32 to wrap in just over an hour."
741 OBJECT tcpConnectionState
742 SYNTAX INTEGER { closed(1), listen(2), synSent(3),
743 synReceived(4), established(5),
744 finWait1(6), finWait2(7), closeWait(8),
745 lastAck(9), closing(10), timeWait(11) }
748 "Write access is not required, nor is support for the value
750 ::= { tcpMIBCompliances 2 }
752 tcpMIBCompliance MODULE-COMPLIANCE
755 "The compliance statement for IPv4-only systems that
756 implement TCP. In order to be IP version independent, this
757 compliance statement is deprecated in favor of
758 tcpMIBCompliance2. However, agents are still encouraged
759 to implement these objects in order to interoperate with
760 the deployed base of managers."
764 MODULE -- this module
765 MANDATORY-GROUPS { tcpGroup }
769 "Write access is not required."
770 ::= { tcpMIBCompliances 1 }
773 -- units of conformance
775 tcpGroup OBJECT-GROUP
776 OBJECTS { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
777 tcpMaxConn, tcpActiveOpens,
778 tcpPassiveOpens, tcpAttemptFails,
779 tcpEstabResets, tcpCurrEstab, tcpInSegs,
780 tcpOutSegs, tcpRetransSegs, tcpConnState,
781 tcpConnLocalAddress, tcpConnLocalPort,
782 tcpConnRemAddress, tcpConnRemPort,
783 tcpInErrs, tcpOutRsts }
786 "The tcp group of objects providing for management of TCP
788 ::= { tcpMIBGroups 1 }
790 tcpBaseGroup OBJECT-GROUP
791 OBJECTS { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
792 tcpMaxConn, tcpActiveOpens,
793 tcpPassiveOpens, tcpAttemptFails,
794 tcpEstabResets, tcpCurrEstab, tcpInSegs,
795 tcpOutSegs, tcpRetransSegs,
796 tcpInErrs, tcpOutRsts }
799 "The group of counters common to TCP entities."
800 ::= { tcpMIBGroups 2 }
802 tcpConnectionGroup OBJECT-GROUP
803 OBJECTS { tcpConnectionState, tcpConnectionProcess }
806 "The group provides general information about TCP
808 ::= { tcpMIBGroups 3 }
810 tcpListenerGroup OBJECT-GROUP
811 OBJECTS { tcpListenerProcess }
817 "This group has objects providing general information about
819 ::= { tcpMIBGroups 4 }
821 tcpHCGroup OBJECT-GROUP
822 OBJECTS { tcpHCInSegs, tcpHCOutSegs }
825 "The group of objects providing for counters of high speed
826 TCP implementations."
827 ::= { tcpMIBGroups 5 }