TCP ESTABLISHED Connection Sockets

Onload User Guide (UG1586)

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

The following table shows typical output for a TCP ESTABLISHED connection socket.

Table 1. Stackdump Output: TCP Established Connection Socket
Sample Output Description
TCP TCP socket.
7:1 Stack:socket id.
lcl=192.168.1.2:50773 Local ip:port address.
rmt=192.168.1.1:34875 Remote ip:port address.
ESTABLISHED Connection is ESTABLISHED.
lock: 10000000 UNLOCKED

Internal socket lock status, as a hexadecimal number, followed by status names including:

  • LOCKED
  • CONTENDED.
rx_wake=0000b6f4(RQ)

Internal sequence value that is incremented each time a receive queue is ‘woken’.

(RQ) indicates that a wake has been requested.

tx_wake=00000002

Internal sequence value that is incremented each time a transmit queue is ‘woken’.

(RQ) indicates that a wake has been requested.

flags:

Flags (if any), including:

  • WK_TX, WK_RX
  • TCP_PP
  • ORPH
  • ACCEPTQ
  • DEFERRED
  • AVOID_INT
  • O_ASYNC, O_NONBLOCK, O_NDELAY, O_APPEND, O_CLOEXEC
  • CACHE, PASSIVE_CACHE, CACHE_NO_FD
  • OS_BACKED
  • NONB_UNSYNCED.
ul_poll: User-level poll():
  • 301326900 spin cycles
  • in spin cycles
  • 100000 usec
  • in μs.
uid=0 User id that owns this socket.
s_flags:

Socket flags, including:

  • CORK
  • SHUTRD, SHUTWR
  • TCP_NODELAY
  • ACK
  • REUSE
  • KALIVE
  • BCAST
  • OOBIN
  • LINGER
  • DONTROUTE
  • FILTER
  • BOUND, ABOUND, PBOUND
  • SNDBUF, RCVBUF
  • SW_FILTER_FULL
  • TRANSPARENT
  • SCALACTIVE, SCALPASSIVE
  • MAC_FILTER
  • REUSEPORT
  • BOUND_ALIEN
  • CONNECT_MUST_BIND
  • PMTU_DO
  • ALWAYS_DF
  • IP_TTL
  • DEFERRED_BIND
  • V6ONLY
  • NOMCAST.
rcvbuf=129940 Socket receive buffer size.
sndbuf=131072 Socket send buffer size.
bindtodev=-1(-1,0:0) Device to which the socket is bound, given as an interface, or -1 if unbound. This is followed by an (interface index, hardware port:vlan) tuple.
ttl=64 Initial TTL value.
rcvtimeo_ms=0 Timeout value (microseconds) before an error is generated for receive functions, as set by SO_RCVTIMEO.
sndtimeo_ms=0 Timeout value (microseconds) before an error is generated for send functions, as set by SO_SNDTIMEO.
sigown=0 The PID receiving signals from this socket.
cmsg=

Current message flags, including:

  • NO_MCAST_TX.
rx_errno=0 Zero whilst data can still arrive, otherwise contains error code.
tx_errno=0 Zero if transmit can still happen, otherwise contains error code.
so_error=0 Current socket error, or zero if no error.
os_sock=0 0 if the socket is handled by Onload, 1 if the socket is handled by the OS and not by Onload.
TX Socket is being used for transmit.
epoll3: ready_list_id 0 List of ready sockets from the epoll3 set.
tcpflags: TSO WSCL SACK ESTAB PASSIVE

TCP flags currently set for this socket, including:

  • TSO
  • WSCL
  • SACK
  • ECN
  • STRIPE
  • SYNCOOKIE
  • ESTAB
  • NONBCON
  • PASSIVE
  • ARP_FAIL
  • NO_TX_ADVANCE
  • LOOP_DEFER
  • NO_QUICKACK
  • MEM_DROP
  • FIN_RECV
  • ACTIVE_WILD
  • MSG_WARM
  • LOOP_FAKE
  • TOA
  • TLP_TIMER
  • TLP_SENT
  • FIN_PENDING.
local_peer: -1 The peer socket in a local loopback connection.
snd: Send data:
  • up=b554bb86
  • Urgent Pointer: the sequence number of the byte following the 00B byte.
  • una-nxt-max=b554bb86-b554bb87-b556b6a6
  • Sequence numbers of:
  • una: first unacknowledged byte
  • nxt: next byte we expect to be acknowledged
  • max: last byte in the current send window.
  • enq=b554bb87
  • Sequence number of last byte currently queued for transmit.
snd: Further send data:
  • send=0(0)
  • Number of bytes (packets) held in the send buffer.
  • send+pre=0
  • Number of packets in the pre-send queue.
  • A process can add data to this queue when it is prevented from sending the data immediately. The data will be sent when the current sending operation is complete.
  • inflight=1(1)
  • Number of bytes (packets) sent but not yet acknowledged.
  • wnd=129824
  • Advertised window size of the receiver, in bytes.
  • unused=129823
  • Number of unused (free) bytes in that window.
snd: Further send data:
  • cwnd=49733+0
  • Congestion window size, in bytes.
  • used=0
  • Portion of the congestion window that is currently in use.
  • ssthresh=65535
  • Number of bytes that have to be sent before the process can exit slow start.
  • bytes_acked=0
  • Number of bytes acknowledged.
  • This value is used to calculate the rate at which the congestion window is opened.
  • Open
  • Current congestion window status, one of:
  • Open
  • RTO
  • RTORecovery
  • FastRecovery
  • Cooling
  • RTOCooling
  • Notified.
snd: Further send data:
  • timed_seq 0
  • First byte of timed packet.
  • timed_ts 3fa5511c
  • Timestamp for timed packet.
snd: Further send data:
  • sndbuf_pkts=136
  • Size of the send buffer (packets). Send buffer is calculated as bytes.
  • Onloaded(Valid)
  • Status of cached control plane information, one of:
  • Onloaded = can reach the destination via an accelerated interface
  • NoMac
  • NoRoute
  • ViaOs
  • Local
  • MacFail
  • followed by its validity:
  • (Valid): information is up-to-date. Can send immediately using this information.
  • (Old): information might be out-of-date. On next send Onload will do a control plane lookup - this will add some latency.
  • if=6
  • Interface being used.
  • mtu=1500
  • MTU being used.
  • intf_i=0
  • Intf_i value.
  • vlan=0
  • VLAN being used.
  • encap=4
  • Types of encapsulation supported by the NIC, as a hexadecimal mask.
snd: Further send data:
  • limited
  • Counts of transmission being stopped for the following reasons:
  • rwnd=0
  • - receive window size
  • cwnd=0
  • - congestion window size
  • nagle=0
  • - Nagle's algorithm
  • more=0
  • - more (CORK, MSG_MORE)
  • app=412548
  • - transmit queue being empty.
rcv: Receiver data:
  • nxt-max=0e9251fe-0e944d1d
  • Next byte we expect to receive and last byte we expect to receive (because of window size).
  • wnd adv=129823
  • Receiver advertised window size.
  • cur=0e944d92
  • Byte currently being processed.
  • FASTSTART FAST
  • Possible flags:
  • FASTSTART: is in faststart
  • FAST: can use fast path.
rcv: Further receiver data:
  • isn=b8f5ec59
  • Initial sequence number.
  • up=b8f5ec58
  • Urgent Pointer: the sequence number of the byte following the 00B byte.
  • urg_data=0000
  • Urgent data: byte and associated flags.
  • q=recv1
  • Queue in use: rcv1 or rcv2.
rcv: Further receiver data:
  • bytes=13201600
  • Total number of bytes received.
  • tot_pkts=
  • Total number of packets received.
  • rob_pkts=0
  • Number of packets in the reorder buffer.
  • Bytes received out of sequence are put into a reorder buffer awaiting further bytes before reordering can occur.
  • q_pkts=2+0
  • Number of packets queued in (recv1+recv2).
  • usr=0
  • Number of bytes of received data available to the user.
eff_mss=1448 Effective maximum segment size.
smss=1460 Sender maximum segment size.
amss=1460 Advertised maximum segment size.
used_bufs=2 Number of transmit buffers used.
wscl Window scaling:
  • s=2
  • Send window scaling.
  • r=2
  • Receive window scaling.
srtt=01 Smoothed round trip time (RTT), in milliseconds.
rttvar=000 Round trip time (RTT) variation, in milliseconds.
rto=189

Current RTO timeout value, in ticks.

To convert ticks to milliseconds, multiply by ci_ip_time_tick2ms.

zwins=0,0 Zero windows for probes,acks: times when advertised window has gone to zero size.
curr_retrans=0 Current re-transmissions.
total_retrans=0 Total re-transmissions.
dupacks=0 Number of duplicate acks received.
congrecover=0 Next sequence number to send when loss detected.
rtos=0 Number of retrans timeouts.
frecs=0 Number of fast recoveries.
seqerr=0,0 Number of sequence errors.
ooo_pkts=0 Number of out of sequence packets.
ooo=0 Number of out of order events.
tx: Transmit data:
  • defer=0
  • Number of packets where send is deferred to stack lock holder.
  • nomac=0
  • Number of packets sent via the OS using raw sockets when up to date ARP data is not available.
  • warm=0
  • Number of packets sent using MSG_WARM.
  • warm_aborted=0
  • Number of times a message warm send function was called, but not sent due to onload lock constraints.
tmpl: Templated send data:
  • send_fast=0
  • Number of fast templated sends.
  • send_slow=0
  • Number of slow templated sends.
  • active=0
  • Number of active templated sends.
timers: Currently active timers:
  • rto(200ms[3fa586ca])
  • Retransmit timeout timer.