TCP Application Statistics

Onload User Guide (UG1586)

Document ID
UG1586
Release Date
2023-07-31
Revision
1.2 English

The following onload_stackdump commands can be used to monitor accelerated TCP connections:

onload_stackdump tcp_stats
Table 1. Output from onload_stackdump tcp_stats
Field Description
tcp_active_opens

Number of socket connections initiated by the local end.

This is the number of times TCP connections have made a direct transition to the SYN-SENT state from the CLOSED state

tcp_passive_opens

Number of sockets connections accepted by the local end.

This is the number of times TCP connections have made a direct transition to the SYN-RCVD state from the LISTEN state.

tcp_l3xudp_active_opens

Number of l3xudp socket connections initiated by the local end.

This is the number of times TCP connections have made a direct transition to the SYN-SENT state from the CLOSED state and that socket is using l3xudp encapsulation.

tcp_l3xudp_passive_opens

Number of l3xudp sockets connections accepted by the local end.

This is the number of times TCP connections have made a direct transition to the SYN-RCVD state from the LISTEN state and that socket is using l3xudp encapsulation.

tcp_attempt_fails

Number of failed connection attempts.

This is the number of times TCP connection have made a direct transition to the CLOSED state from 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_estab_resets

Number of established connections which were subsequently reset.

This is 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_curr_estab Number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT.
tcp_in_segs Total number of segments received, including those received in error.
tcp_out_segs Total number of segments sent, including those on current connections but excluding those containing only retransmitted octets.
tcp_retran_segs Total number of segments retransmitted.
tcp_in_errs Number of erroneous segments received.
tcp_out_rsts Number of RST segments sent.
onload_stackdump more_stats | grep tcp
Table 2. Output from onload_stackdump more_stats | grep tcp
Field Description
tcp_has_recvq The number of TCP sockets that currently have data in a receive queue.
tcp_recvq_bytes The number of bytes currently waiting in TCP receive queues.
tcp_recvq_pkts The number of packets currently waiting in TCP receive queues.
tcp_has_recv_reorder

The number of sockets with out of sequence bytes.

This is the number of sockets with packets in the re-ordering queue. Re-ordering usually (though not always) indicates loss. We hold on to the future packets until the intervening ones arrive, then push them to the receive queue. So unless Onload is currently waiting for some retransmits; this counter will be zero. It is not a historical log.

tcp_recv_reorder_pkts:

Number of out of sequence packets received.

This is the number of packets currently in re-ordering queues. Re-ordering usually (though not always) indicates loss. We hold on to the future packets until the intervening ones arrive, then push them to the receive queue. So unless Onload is currently waiting for some retransmits; this counter will be zero. It is not a historical log.

tcp_has_sendq

Non zero if send queues have data ready

This is the number of TCP sockets with packets in the send queue. This counter will usually be zero; unless something is preventing Onload from sending immediately (for example congestion window).

See also send+pre= in Table 1 for per-socket information.

tcp_sendq_bytes

Number of bytes currently in all send queues for this connection

This is the count of bytes in TCP send queues. This counter will usually be zero; unless something is preventing Onload from sending immediately (for example congestion window).

See also send+pre= in Table 1 for per-socket information.

tcp_sendq_pkts

Number of packets currently in all send queues for this connection

This is the number of packets in TCP send queues. This counter will usually be zero; unless something is preventing Onload from sending immediately (for example congestion window).

See also send+pre= in Table 1 for per-socket information.

tcp_has_inflight

Non zero if some data remains unacknowledged

This is the number of sockets that have packets 'in-flight' (sent but for which Onload has not yet received an ACK).

See also inflight= in Table 1 for per-socket information.

tcp_inflight_bytes

Total number of unacknowledged bytes

This is the number of bytes that are 'in-flight' (sent but for which Onload has not yet received an ACK).

See also inflight= in Table 1 for per-socket information.

tcp_inflight_pkts

Total number of unacknowledged packets

This is the number of packets 'in-flight' (sent but for which Onload has not yet received an ACK).

See also inflight= in Table 1 for per-socket information.

tcp_n_in_listenq

Number of sockets in SYN-RECEIVED state.

This is the number of sockets (summed across all listening sockets) where the local end has responded to SYN with a SYN_ACK, but this has not yet been acknowledged by the remote end

The size of the listen queue is limited by EF_TCP_BACKLOG_MAX.

tcp_n_in_acceptq Number of sockets that have reached ESTABLISHED state, that the application has not yet called accept() for.

Use the onload_stackdump -h command to list all TCP connection, stack and socket commands.