-struct tcpstat {
- u_long tcps_connattempt; /* connections initiated */
- u_long tcps_accepts; /* connections accepted */
- u_long tcps_connects; /* connections established */
- u_long tcps_drops; /* connections dropped */
- u_long tcps_conndrops; /* embryonic connections dropped */
- u_long tcps_closed; /* conn. closed (includes drops) */
- u_long tcps_segstimed; /* segs where we tried to get rtt */
- u_long tcps_rttupdated; /* times we succeeded */
- u_long tcps_delack; /* delayed acks sent */
- u_long tcps_timeoutdrop; /* conn. dropped in rxmt timeout */
- u_long tcps_rexmttimeo; /* retransmit timeouts */
- u_long tcps_persisttimeo; /* persist timeouts */
- u_long tcps_keeptimeo; /* keepalive timeouts */
- u_long tcps_keepprobe; /* keepalive probes sent */
- u_long tcps_keepdrops; /* connections dropped in keepalive */
-
- u_long tcps_sndtotal; /* total packets sent */
- u_long tcps_sndpack; /* data packets sent */
- u_long tcps_sndbyte; /* data bytes sent */
- u_long tcps_sndrexmitpack; /* data packets retransmitted */
- u_long tcps_sndrexmitbyte; /* data bytes retransmitted */
- u_long tcps_sndacks; /* ack-only packets sent */
- u_long tcps_sndprobe; /* window probes sent */
- u_long tcps_sndurg; /* packets sent with URG only */
- u_long tcps_sndwinup; /* window update-only packets sent */
- u_long tcps_sndctrl; /* control (SYN|FIN|RST) packets sent */
-
- u_long tcps_rcvtotal; /* total packets received */
- u_long tcps_rcvpack; /* packets received in sequence */
- u_long tcps_rcvbyte; /* bytes received in sequence */
- u_long tcps_rcvbadsum; /* packets received with ccksum errs */
- u_long tcps_rcvbadoff; /* packets received with bad offset */
- u_long tcps_rcvmemdrop; /* packets dropped for lack of memory */
- u_long tcps_rcvshort; /* packets received too short */
- u_long tcps_rcvduppack; /* duplicate-only packets received */
- u_long tcps_rcvdupbyte; /* duplicate-only bytes received */
- u_long tcps_rcvpartduppack; /* packets with some duplicate data */
- u_long tcps_rcvpartdupbyte; /* dup. bytes in part-dup. packets */
- u_long tcps_rcvoopack; /* out-of-order packets received */
- u_long tcps_rcvoobyte; /* out-of-order bytes received */
- u_long tcps_rcvpackafterwin; /* packets with data after window */
- u_long tcps_rcvbyteafterwin; /* bytes rcvd after window */
- u_long tcps_rcvafterclose; /* packets rcvd after "close" */
- u_long tcps_rcvwinprobe; /* rcvd window probe packets */
- u_long tcps_rcvdupack; /* rcvd duplicate acks */
- u_long tcps_rcvacktoomuch; /* rcvd acks for unsent data */
- u_long tcps_rcvackpack; /* rcvd ack packets */
- u_long tcps_rcvackbyte; /* bytes acked by rcvd acks */
- u_long tcps_rcvwinupd; /* rcvd window update packets */
- u_long tcps_pawsdrop; /* segments dropped due to PAWS */
- u_long tcps_predack; /* times hdr predict ok for acks */
- u_long tcps_preddat; /* times hdr predict ok for data pkts */
- u_long tcps_pcbcachemiss;
- u_long tcps_cachedrtt; /* times cached RTT in route updated */
- u_long tcps_cachedrttvar; /* times cached rttvar updated */
- u_long tcps_cachedssthresh; /* times cached ssthresh updated */
- u_long tcps_usedrtt; /* times RTT initialized from route */
- u_long tcps_usedrttvar; /* times RTTVAR initialized from rt */
- u_long tcps_usedssthresh; /* times ssthresh initialized from rt*/
- u_long tcps_persistdrop; /* timeout in persist state */
- u_long tcps_badsyn; /* bogus SYN, e.g. premature ACK */
- u_long tcps_mturesent; /* resends due to MTU discovery */
- u_long tcps_listendrop; /* listen queue overflows */
+struct tcpstat {
+ 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_pcbcachemiss;
+ 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 */
+
+ /* new stats from FreeBSD 5.4 sync up */
+ u_int32_t tcps_minmssdrops; /* 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_added; /* entry added to syncache */
+ u_int32_t tcps_sc_retransmitted; /* syncache entry was retransmitted */
+ u_int32_t tcps_sc_dupsyn; /* duplicate SYN packet */
+ 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_bucketoverflow; /* syncache per-bucket limit hit */
+ u_int32_t tcps_sc_cacheoverflow; /* syncache cache limit hit */
+ u_int32_t tcps_sc_reset; /* RST removed entry from syncache */
+ u_int32_t tcps_sc_stale; /* timed out or listen socket gone */
+ u_int32_t tcps_sc_aborted; /* syncache entry aborted */
+ u_int32_t tcps_sc_badack; /* removed due to bad ACK */
+ u_int32_t tcps_sc_unreach; /* ICMP unreachable received */
+ u_int32_t tcps_sc_zonefail; /* zalloc() failed */
+ u_int32_t tcps_sc_sendcookie; /* SYN cookie sent */
+ u_int32_t tcps_sc_recvcookie; /* SYN cookie received */
+
+ u_int32_t tcps_hc_added; /* entry added to hostcache */
+ u_int32_t tcps_hc_bucketoverflow; /* hostcache per bucket limit hit */
+
+ /* SACK related stats */
+ u_int32_t tcps_sack_recovery_episode; /* 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_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 */
+
+ /* LRO related stats */
+ u_int32_t tcps_coalesced_pack; /* number of coalesced packets */
+ u_int32_t tcps_flowtbl_full; /* times flow table was full */
+ u_int32_t tcps_flowtbl_collision; /* collisions in flow tbl */
+ u_int32_t tcps_lro_twopack; /* 2 packets coalesced */
+ u_int32_t tcps_lro_multpack; /* 3 or 4 pkts coalesced */
+ u_int32_t tcps_lro_largepack; /* 5 or more pkts coalesced */
+
+ 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 */
+
+ /* Checksum related stats */
+ u_int32_t tcps_rcv_swcsum; /* 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_msg_unopkts; /* unordered packet on TCP msg stream */
+ u_int32_t tcps_msg_unoappendfail; /* failed to append unordered pkt */
+ u_int32_t tcps_msg_sndwaithipri; /* send is waiting for high priority data */
+
+ /* MPTCP Related stats */
+ u_int32_t tcps_invalid_mpcap; /* 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_outofwin; /* Packet lies outside the
+ * shared recv window */
+ 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_unnecessary_rxmt; /* Retransmission was not needed */
+ u_int32_t tcps_nostretchack; /* disabled stretch ack algorithm on a connection */
+ u_int32_t tcps_rescue_rxmt; /* SACK rescue retransmit */
+ u_int32_t tcps_pto_in_recovery; /* rescue retransmit in fast recovery */
+ u_int32_t tcps_pmtudbh_reverted; /* PMTU Blackhole detection, segment size reverted */
+
+ /* DSACK related statistics */
+ u_int32_t tcps_dsack_disable; /* DSACK disabled due to n/w duplication */
+ u_int32_t tcps_dsack_ackloss; /* 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 */
+
+ /* MPTCP Subflow selection stats */
+ u_int32_t tcps_mp_sel_symtomsd; /* By symptomsd */
+ u_int32_t tcps_mp_sel_rtt; /* By RTT comparison */
+ u_int32_t tcps_mp_sel_rto; /* By RTO comparison */
+ u_int32_t tcps_mp_sel_peer; /* By peer's output pattern */
+ 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_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_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 */
+
+ /* TFO-related statistics */
+ u_int32_t tcps_tfo_syn_data_rcv; /* 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 */
+
+ /* TCP timer statistics */
+ u_int32_t tcps_timer_drift_le_1_ms; /* 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 */
+
+ /* TCP offload statistics */
+ u_int32_t tcps_ka_offload_drops; /* 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 */
+};
+
+
+struct tcpstat_local {
+ u_int64_t badformat;
+ u_int64_t unspecv6;
+ u_int64_t synfin;
+ u_int64_t badformatipsec;
+ u_int64_t noconnnolist;
+ u_int64_t noconnlist;
+ u_int64_t listbadsyn;
+ u_int64_t icmp6unreach;
+ u_int64_t deprecate6;
+ u_int64_t ooopacket;
+ u_int64_t rstinsynrcv;
+ u_int64_t dospacket;
+ u_int64_t cleanup;
+ u_int64_t synwindow;