TCP statistics.
Many of these should be kept per connection,
but that's inconvenient at the moment.
| u_int32_t | tcps_connattempt | connections initiated |
| u_int32_t | tcps_accepts | connections accepted |
| u_int32_t | tcps_connects | connections established |
| u_int32_t | tcps_drops | connections dropped |
| u_int32_t | tcps_conndrops | embryonic connections dropped |
| u_int32_t | tcps_closed | conn. closed (includes drops) |
| u_int32_t | tcps_segstimed | segs where we tried to get rtt |
| u_int32_t | tcps_rttupdated | times we succeeded |
| u_int32_t | tcps_delack | delayed acks sent |
| u_int32_t | tcps_timeoutdrop | conn. dropped in rxmt timeout |
| u_int32_t | tcps_rexmttimeo | retransmit timeouts |
| u_int32_t | tcps_persisttimeo | persist timeouts |
| u_int32_t | tcps_keeptimeo | keepalive timeouts |
| u_int32_t | tcps_keepprobe | keepalive probes sent |
| u_int32_t | tcps_keepdrops | connections dropped in keepalive |
| u_int32_t | tcps_sndtotal | total packets sent |
| u_int32_t | tcps_sndpack | data packets sent |
| u_int32_t | tcps_sndbyte | data bytes sent |
| u_int32_t | tcps_sndrexmitpack | data packets retransmitted |
| u_int32_t | tcps_sndrexmitbyte | data bytes retransmitted |
| u_int32_t | tcps_sndacks | ack-only packets sent |
| u_int32_t | tcps_sndprobe | window probes sent |
| u_int32_t | tcps_sndurg | packets sent with URG only |
| u_int32_t | tcps_sndwinup | window update-only packets sent |
| u_int32_t | tcps_sndctrl | control (SYN|FIN|RST) packets sent |
| u_int32_t | tcps_rcvtotal | total packets received |
| u_int32_t | tcps_rcvpack | packets received in sequence |
| u_int32_t | tcps_rcvbyte | bytes received in sequence |
| u_int32_t | tcps_rcvbadsum | packets received with ccksum errs |
| u_int32_t | tcps_rcvbadoff | packets received with bad offset |
| u_int32_t | tcps_rcvmemdrop | packets dropped for lack of memory |
| u_int32_t | tcps_rcvshort | packets received too short |
| u_int32_t | tcps_rcvduppack | duplicate-only packets received |
| u_int32_t | tcps_rcvdupbyte | duplicate-only bytes received |
| u_int32_t | tcps_rcvpartduppack | packets with some duplicate data |
| u_int32_t | tcps_rcvpartdupbyte | dup. bytes in part-dup. packets |
| u_int32_t | tcps_rcvoopack | out-of-order packets received |
| u_int32_t | tcps_rcvoobyte | out-of-order bytes received |
| u_int32_t | tcps_rcvpackafterwin | packets with data after window |
| u_int32_t | tcps_rcvbyteafterwin | bytes rcvd after window |
| u_int32_t | tcps_rcvafterclose | packets rcvd after "close" |
| u_int32_t | tcps_rcvwinprobe | rcvd window probe packets |
| u_int32_t | tcps_rcvdupack | rcvd duplicate acks |
| u_int32_t | tcps_rcvacktoomuch | rcvd acks for unsent data |
| u_int32_t | tcps_rcvackpack | rcvd ack packets |
| u_int32_t | tcps_rcvackbyte | bytes acked by rcvd acks |
| u_int32_t | tcps_rcvwinupd | rcvd window update packets |
| u_int32_t | tcps_pawsdrop | segments dropped due to PAWS |
| u_int32_t | tcps_predack | times hdr predict ok for acks |
| u_int32_t | tcps_preddat | times hdr predict ok for data pkts |
| u_int32_t | tcps_cachedrtt | times cached RTT in route updated |
| u_int32_t | tcps_cachedrttvar | times cached rttvar updated |
| u_int32_t | tcps_cachedssthresh | times cached ssthresh updated |
| u_int32_t | tcps_usedrtt | times RTT initialized from route |
| u_int32_t | tcps_usedrttvar | times RTTVAR initialized from rt |
| u_int32_t | tcps_usedssthresh | times ssthresh initialized from rt |
| u_int32_t | tcps_persistdrop | timeout in persist state |
| u_int32_t | tcps_badsyn | bogus SYN, e.g. premature ACK |
| u_int32_t | tcps_mturesent | resends due to MTU discovery |
| u_int32_t | tcps_listendrop | listen queue overflows |
| u_int32_t | tcps_synchallenge | challenge ACK due to bad SYN |
| u_int32_t | tcps_rstchallenge | challenge ACK due to bad RST |
| u_int32_t | tcps_minmssdrops | new stats from FreeBSD 5.4 sync up average minmss too low drops |
| u_int32_t | tcps_sndrexmitbad | unnecessary packet retransmissions |
| u_int32_t | tcps_badrst | ignored RSTs in the window |
| u_int32_t | tcps_sc_dropped | could not reply to packet |
| u_int32_t | tcps_sc_completed | successful extraction of entry |
| u_int32_t | tcps_sc_aborted | syncache entry aborted |
| u_int32_t | tcps_sc_sendcookie | SYN cookie sent |
| u_int32_t | tcps_sc_recvcookie | SYN cookie received |
| u_int32_t | tcps_sack_recovery_episode | SACK related stats SACK recovery episodes |
| u_int32_t | tcps_sack_rexmits | SACK rexmit segments |
| u_int32_t | tcps_sack_rexmit_bytes | SACK rexmit bytes |
| u_int32_t | tcps_sack_rcv_blocks | SACK blocks (options) received |
| u_int32_t | tcps_sack_send_blocks | SACK blocks (options) sent |
| u_int32_t | tcps_sack_sboverflow | SACK sendblock overflow |
| u_int32_t | tcps_rack_recovery_episode | RACK related stats RACK recovery episodes |
| u_int32_t | tcps_rack_reordering_timeout_recovery_episode | RACK recovery episodes due to reordering timeout |
| u_int32_t | tcps_rack_rexmits | RACK rexmit segments |
| u_int32_t | tcps_bg_rcvtotal | total background packets received |
| u_int32_t | tcps_rxtfindrop | drop conn after retransmitting FIN |
| u_int32_t | tcps_fcholdpacket | packets withheld because of flow control |
| u_int32_t | tcps_limited_txt | Limited transmit used |
| u_int32_t | tcps_early_rexmt | Early retransmit used |
| u_int32_t | tcps_sack_ackadv | Cumulative ack advanced along with sack |
| u_int32_t | tcps_rcv_swcsum | Checksum related stats tcp swcksum (inbound), packets |
| u_int32_t | tcps_rcv_swcsum_bytes | tcp swcksum (inbound), bytes |
| u_int32_t | tcps_rcv6_swcsum | tcp6 swcksum (inbound), packets |
| u_int32_t | tcps_rcv6_swcsum_bytes | tcp6 swcksum (inbound), bytes |
| u_int32_t | tcps_snd_swcsum | tcp swcksum (outbound), packets |
| u_int32_t | tcps_snd_swcsum_bytes | tcp swcksum (outbound), bytes |
| u_int32_t | tcps_snd6_swcsum | tcp6 swcksum (outbound), packets |
| u_int32_t | tcps_snd6_swcsum_bytes | tcp6 swcksum (outbound), bytes |
| u_int32_t | tcps_invalid_mpcap | MPTCP Related stats Invalid MPTCP capable opts |
| u_int32_t | tcps_invalid_joins | Invalid MPTCP joins |
| u_int32_t | tcps_mpcap_fallback | TCP fallback in primary |
| u_int32_t | tcps_join_fallback | No MPTCP in secondary |
| u_int32_t | tcps_estab_fallback | DSS option dropped |
| u_int32_t | tcps_invalid_opt | Catchall error stat |
| u_int32_t | tcps_mp_reducedwin | Reduced subflow window |
| u_int32_t | tcps_mp_badcsum | Bad DSS csum |
| u_int32_t | tcps_mp_oodata | Out of order data |
| u_int32_t | tcps_mp_switches | number of subflow switch |
| u_int32_t | tcps_mp_rcvtotal | number of rcvd packets |
| u_int32_t | tcps_mp_rcvbytes | number of bytes received |
| u_int32_t | tcps_mp_sndpacks | number of data packs sent |
| u_int32_t | tcps_mp_sndbytes | number of bytes sent |
| u_int32_t | tcps_join_rxmts | join ack retransmits |
| u_int32_t | tcps_tailloss_rto | RTO due to tail loss |
| u_int32_t | tcps_reordered_pkts | packets reorderd |
| u_int32_t | tcps_recovered_pkts | recovered after loss |
| u_int32_t | tcps_pto | probe timeout |
| u_int32_t | tcps_rto_after_pto | RTO after a probe |
| u_int32_t | tcps_tlp_recovery | TLP induced fast recovery |
| u_int32_t | tcps_tlp_recoverlastpkt | TLP recoverd last pkt |
| u_int32_t | tcps_ecn_client_success | client-side connection negotiated ECN |
| u_int32_t | tcps_ecn_recv_ece | ECE received, sent CWR |
| u_int32_t | tcps_ecn_sent_ece | Sent ECE notification |
| u_int32_t | tcps_detect_reordering | Detect pkt reordering |
| u_int32_t | tcps_delay_recovery | Delay fast recovery |
| u_int32_t | tcps_avoid_rxmt | Retransmission was avoided |
| u_int32_t | tcps_pto_in_recovery | rescue retransmit in fast recovery |
| u_int32_t | tcps_pmtudbh_reverted | PMTU Blackhole detection, segment size reverted |
| u_int32_t | tcps_dsack_ackloss | DSACK related statistics ignore DSACK due to ack loss |
| u_int32_t | tcps_dsack_badrexmt | DSACK based bad rexmt recovery |
| u_int32_t | tcps_dsack_sent | Sent DSACK notification |
| u_int32_t | tcps_dsack_recvd | Received a valid DSACK option |
| u_int32_t | tcps_dsack_recvd_old | Received an out of window DSACK option |
| u_int32_t | tcps_mp_sel_rtt | MPTCP Subflow selection stats By RTT comparison |
| u_int32_t | tcps_mp_sel_rto | By RTO comparison |
| u_int32_t | tcps_mp_num_probes | Number of probes sent |
| u_int32_t | tcps_mp_verdowngrade | MPTCP version downgrade |
| u_int32_t | tcps_drop_after_sleep | drop after long AP sleep |
| u_int32_t | tcps_probe_if | probe packets after interface availability |
| u_int32_t | tcps_probe_if_conflict | Can't send probe packets for interface |
| u_int32_t | tcps_ecn_client_setup | Attempted ECN setup from client side |
| u_int32_t | tcps_ecn_server_setup | Attempted ECN setup from server side |
| u_int32_t | tcps_ecn_server_success | server-side connection negotiated ECN |
| u_int32_t | tcps_ecn_ace_syn_not_ect | received AccECN SYN packet with Not-ECT |
| u_int32_t | tcps_ecn_ace_syn_ect1 | received AccECN SYN packet with ECT1 |
| u_int32_t | tcps_ecn_ace_syn_ect0 | received AccECN SYN packet with ECT0 |
| u_int32_t | tcps_ecn_ace_syn_ce | received AccECN SYN packet with CE |
| u_int32_t | tcps_ecn_lost_synack | Lost SYN-ACK with ECN setup |
| u_int32_t | tcps_ecn_lost_syn | Lost SYN with ECN setup |
| u_int32_t | tcps_ecn_not_supported | Server did not support ECN setup |
| u_int32_t | tcps_ecn_recv_ce | Received CE from the network |
| u_int32_t | tcps_ecn_ace_recv_ce | CE count received in ACE field |
| u_int32_t | tcps_ecn_conn_recv_ce | Number of connections received CE atleast once |
| u_int32_t | tcps_ecn_conn_recv_ece | Number of connections received ECE atleast once |
| u_int32_t | tcps_ecn_conn_plnoce | Number of connections that received no CE and sufferred packet loss |
| u_int32_t | tcps_ecn_conn_pl_ce | Number of connections that received CE and sufferred packet loss |
| u_int32_t | tcps_ecn_conn_nopl_ce | Number of connections that received CE and sufferred no packet loss |
| u_int32_t | tcps_ecn_fallback_synloss | Number of times we did fall back due to SYN-Loss |
| u_int32_t | tcps_ecn_fallback_reorder | Number of times we fallback because we detected the PAWS-issue |
| u_int32_t | tcps_ecn_fallback_ce | Number of times we fallback because we received too many CEs |
| u_int32_t | tcps_tfo_syn_data_rcv | TFO-related statistics Received a SYN+data with valid cookie |
| u_int32_t | tcps_tfo_cookie_req_rcv | Received a TFO cookie-request |
| u_int32_t | tcps_tfo_cookie_sent | Offered a TFO-cookie to the client |
| u_int32_t | tcps_tfo_cookie_invalid | Received an invalid TFO-cookie |
| u_int32_t | tcps_tfo_cookie_req | Cookie requested with the SYN |
| u_int32_t | tcps_tfo_cookie_rcv | Cookie received in a SYN/ACK |
| u_int32_t | tcps_tfo_syn_data_sent | SYN+data+cookie sent |
| u_int32_t | tcps_tfo_syn_data_acked | SYN+data has been acknowledged |
| u_int32_t | tcps_tfo_syn_loss | SYN+TFO has been lost and we fallback |
| u_int32_t | tcps_tfo_blackhole | TFO got blackholed by a middlebox. |
| u_int32_t | tcps_tfo_cookie_wrong | TFO-cookie we sent was wrong |
| u_int32_t | tcps_tfo_no_cookie_rcv | We asked for a cookie but didn't get one |
| u_int32_t | tcps_tfo_heuristics_disable | TFO got disabled due to heuristics |
| u_int32_t | tcps_tfo_sndblackhole | TFO got blackholed in the sending direction |
| u_int32_t | tcps_mss_to_default | Change MSS to default using link status report |
| u_int32_t | tcps_mss_to_medium | Change MSS to medium using link status report |
| u_int32_t | tcps_mss_to_low | Change MSS to low using link status report |
| u_int32_t | tcps_ecn_fallback_droprst | ECN fallback caused by connection drop due to RST |
| u_int32_t | tcps_ecn_fallback_droprxmt | ECN fallback due to drop after multiple retransmits |
| u_int32_t | tcps_ecn_fallback_synrst | ECN fallback due to rst after syn |
| u_int32_t | tcps_mptcp_rcvmemdrop | MPTCP packets dropped for lack of memory |
| u_int32_t | tcps_mptcp_rcvduppack | MPTCP duplicate-only packets received |
| u_int32_t | tcps_mptcp_rcvpackafterwin | MPTCP packets with data after window |
| u_int32_t | tcps_timer_drift_le_1_ms | TCP timer statistics Timer drift less or equal to 1 ms |
| u_int32_t | tcps_timer_drift_le_10_ms | Timer drift less or equal to 10 ms |
| u_int32_t | tcps_timer_drift_le_20_ms | Timer drift less or equal to 20 ms |
| u_int32_t | tcps_timer_drift_le_50_ms | Timer drift less or equal to 50 ms |
| u_int32_t | tcps_timer_drift_le_100_ms | Timer drift less or equal to 100 ms |
| u_int32_t | tcps_timer_drift_le_200_ms | Timer drift less or equal to 200 ms |
| u_int32_t | tcps_timer_drift_le_500_ms | Timer drift less or equal to 500 ms |
| u_int32_t | tcps_timer_drift_le_1000_ms | Timer drift less or equal to 1000 ms |
| u_int32_t | tcps_timer_drift_gt_1000_ms | Timer drift greater than 1000 ms |
| u_int32_t | tcps_mptcp_handover_attempt | Total number of MPTCP-attempts using handover mode |
| u_int32_t | tcps_mptcp_interactive_attempt | Total number of MPTCP-attempts using interactive mode |
| u_int32_t | tcps_mptcp_aggregate_attempt | Total number of MPTCP-attempts using aggregate mode |
| u_int32_t | tcps_mptcp_fp_handover_attempt | Same as previous three but only for first-party apps |
| u_int32_t | tcps_mptcp_fp_interactive_attempt | |
| u_int32_t | tcps_mptcp_fp_aggregate_attempt | |
| u_int32_t | tcps_mptcp_heuristic_fallback | Total number of MPTCP-connections that fell back due to heuristics |
| u_int32_t | tcps_mptcp_fp_heuristic_fallback | Same as previous but for first-party apps |
| u_int32_t | tcps_mptcp_handover_success_wifi | Total number of successfull handover-mode connections that *started* on WiFi |
| u_int32_t | tcps_mptcp_handover_success_cell | Total number of successfull handover-mode connections that *started* on Cell |
| u_int32_t | tcps_mptcp_interactive_success | Total number of interactive-mode connections that negotiated MPTCP |
| u_int32_t | tcps_mptcp_aggregate_success | Same as previous but for aggregate |
| u_int32_t | tcps_mptcp_fp_handover_success_wifi | Same as previous four, but for first-party apps |
| u_int32_t | tcps_mptcp_fp_handover_success_cell | |
| u_int32_t | tcps_mptcp_fp_interactive_success | |
| u_int32_t | tcps_mptcp_fp_aggregate_success | |
| u_int32_t | tcps_mptcp_handover_cell_from_wifi | Total number of connections that use cell in handover-mode (coming from WiFi) |
| u_int32_t | tcps_mptcp_handover_wifi_from_cell | Total number of connections that use WiFi in handover-mode (coming from cell) |
| u_int32_t | tcps_mptcp_interactive_cell_from_wifi | Total number of connections that use cell in interactive mode (coming from WiFi) |
| u_int64_t | tcps_mptcp_handover_cell_bytes | Total number of bytes sent on cell in handover-mode (on new subflows, ignoring initial one) |
| u_int64_t | tcps_mptcp_interactive_cell_bytes | Same as previous but for interactive |
| u_int64_t | tcps_mptcp_aggregate_cell_bytes | |
| u_int64_t | tcps_mptcp_handover_all_bytes | Total number of bytes sent in handover |
| u_int64_t | tcps_mptcp_interactive_all_bytes | |
| u_int64_t | tcps_mptcp_aggregate_all_bytes | |
| u_int32_t | tcps_mptcp_back_to_wifi | Total number of connections that succeed to move traffic away from cell (when starting on cell) |
| u_int32_t | tcps_mptcp_wifi_proxy | Total number of new subflows that fell back to regular TCP on cell |
| u_int32_t | tcps_mptcp_cell_proxy | Total number of new subflows that fell back to regular TCP on WiFi |
| u_int32_t | tcps_ka_offload_drops | TCP offload statistics Keep alive drops for timeout reported by firmware |
| u_int32_t | tcps_mptcp_triggered_cell | Total number of times an MPTCP-connection triggered cell bringup |
| u_int32_t | tcps_fin_timeout_drops | |
| u_int64_t | tcps_rst_dup_suppressed | RST compression statistics |
| u_int64_t | tcps_rst_not_suppressed | |