+ if (tcp_ecn_inbound == 1) {
+ stat.ecn_server_enabled = 1;
+ }
+ tcp_cumulative_stat(tcpstat.tcps_connattempt,
+ &prev.tcps_connattempt, &stat.connection_attempts);
+ tcp_cumulative_stat(tcpstat.tcps_accepts,
+ &prev.tcps_accepts, &stat.connection_accepts);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_client_setup,
+ &prev.tcps_ecn_client_setup, &stat.ecn_client_setup);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_server_setup,
+ &prev.tcps_ecn_server_setup, &stat.ecn_server_setup);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_client_success,
+ &prev.tcps_ecn_client_success, &stat.ecn_client_success);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_server_success,
+ &prev.tcps_ecn_server_success, &stat.ecn_server_success);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_not_supported,
+ &prev.tcps_ecn_not_supported, &stat.ecn_not_supported);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_lost_syn,
+ &prev.tcps_ecn_lost_syn, &stat.ecn_lost_syn);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_lost_synack,
+ &prev.tcps_ecn_lost_synack, &stat.ecn_lost_synack);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_recv_ce,
+ &prev.tcps_ecn_recv_ce, &stat.ecn_recv_ce);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_recv_ece,
+ &prev.tcps_ecn_recv_ece, &stat.ecn_recv_ece);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_recv_ece,
+ &prev.tcps_ecn_recv_ece, &stat.ecn_recv_ece);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_sent_ece,
+ &prev.tcps_ecn_sent_ece, &stat.ecn_sent_ece);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_sent_ece,
+ &prev.tcps_ecn_sent_ece, &stat.ecn_sent_ece);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_conn_recv_ce,
+ &prev.tcps_ecn_conn_recv_ce, &stat.ecn_conn_recv_ce);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_conn_recv_ece,
+ &prev.tcps_ecn_conn_recv_ece, &stat.ecn_conn_recv_ece);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_conn_plnoce,
+ &prev.tcps_ecn_conn_plnoce, &stat.ecn_conn_plnoce);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_conn_pl_ce,
+ &prev.tcps_ecn_conn_pl_ce, &stat.ecn_conn_pl_ce);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_conn_nopl_ce,
+ &prev.tcps_ecn_conn_nopl_ce, &stat.ecn_conn_nopl_ce);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_fallback_synloss,
+ &prev.tcps_ecn_fallback_synloss, &stat.ecn_fallback_synloss);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_fallback_reorder,
+ &prev.tcps_ecn_fallback_reorder, &stat.ecn_fallback_reorder);
+ tcp_cumulative_stat(tcpstat.tcps_ecn_fallback_ce,
+ &prev.tcps_ecn_fallback_ce, &stat.ecn_fallback_ce);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_syn_data_rcv,
+ &prev.tcps_tfo_syn_data_rcv, &stat.tfo_syn_data_rcv);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_cookie_req_rcv,
+ &prev.tcps_tfo_cookie_req_rcv, &stat.tfo_cookie_req_rcv);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_cookie_sent,
+ &prev.tcps_tfo_cookie_sent, &stat.tfo_cookie_sent);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_cookie_invalid,
+ &prev.tcps_tfo_cookie_invalid, &stat.tfo_cookie_invalid);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_cookie_req,
+ &prev.tcps_tfo_cookie_req, &stat.tfo_cookie_req);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_cookie_rcv,
+ &prev.tcps_tfo_cookie_rcv, &stat.tfo_cookie_rcv);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_syn_data_sent,
+ &prev.tcps_tfo_syn_data_sent, &stat.tfo_syn_data_sent);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_syn_data_acked,
+ &prev.tcps_tfo_syn_data_acked, &stat.tfo_syn_data_acked);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_syn_loss,
+ &prev.tcps_tfo_syn_loss, &stat.tfo_syn_loss);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_blackhole,
+ &prev.tcps_tfo_blackhole, &stat.tfo_blackhole);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_cookie_wrong,
+ &prev.tcps_tfo_cookie_wrong, &stat.tfo_cookie_wrong);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_no_cookie_rcv,
+ &prev.tcps_tfo_no_cookie_rcv, &stat.tfo_no_cookie_rcv);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_heuristics_disable,
+ &prev.tcps_tfo_heuristics_disable, &stat.tfo_heuristics_disable);
+ tcp_cumulative_stat(tcpstat.tcps_tfo_sndblackhole,
+ &prev.tcps_tfo_sndblackhole, &stat.tfo_sndblackhole);
+
+
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_handover_attempt,
+ &prev.tcps_mptcp_handover_attempt, &stat.mptcp_handover_attempt);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_interactive_attempt,
+ &prev.tcps_mptcp_interactive_attempt, &stat.mptcp_interactive_attempt);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_aggregate_attempt,
+ &prev.tcps_mptcp_aggregate_attempt, &stat.mptcp_aggregate_attempt);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_fp_handover_attempt,
+ &prev.tcps_mptcp_fp_handover_attempt, &stat.mptcp_fp_handover_attempt);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_fp_interactive_attempt,
+ &prev.tcps_mptcp_fp_interactive_attempt, &stat.mptcp_fp_interactive_attempt);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_fp_aggregate_attempt,
+ &prev.tcps_mptcp_fp_aggregate_attempt, &stat.mptcp_fp_aggregate_attempt);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_heuristic_fallback,
+ &prev.tcps_mptcp_heuristic_fallback, &stat.mptcp_heuristic_fallback);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_fp_heuristic_fallback,
+ &prev.tcps_mptcp_fp_heuristic_fallback, &stat.mptcp_fp_heuristic_fallback);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_handover_success_wifi,
+ &prev.tcps_mptcp_handover_success_wifi, &stat.mptcp_handover_success_wifi);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_handover_success_cell,
+ &prev.tcps_mptcp_handover_success_cell, &stat.mptcp_handover_success_cell);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_interactive_success,
+ &prev.tcps_mptcp_interactive_success, &stat.mptcp_interactive_success);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_aggregate_success,
+ &prev.tcps_mptcp_aggregate_success, &stat.mptcp_aggregate_success);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_fp_handover_success_wifi,
+ &prev.tcps_mptcp_fp_handover_success_wifi, &stat.mptcp_fp_handover_success_wifi);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_fp_handover_success_cell,
+ &prev.tcps_mptcp_fp_handover_success_cell, &stat.mptcp_fp_handover_success_cell);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_fp_interactive_success,
+ &prev.tcps_mptcp_fp_interactive_success, &stat.mptcp_fp_interactive_success);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_fp_aggregate_success,
+ &prev.tcps_mptcp_fp_aggregate_success, &stat.mptcp_fp_aggregate_success);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_handover_cell_from_wifi,
+ &prev.tcps_mptcp_handover_cell_from_wifi, &stat.mptcp_handover_cell_from_wifi);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_handover_wifi_from_cell,
+ &prev.tcps_mptcp_handover_wifi_from_cell, &stat.mptcp_handover_wifi_from_cell);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_interactive_cell_from_wifi,
+ &prev.tcps_mptcp_interactive_cell_from_wifi, &stat.mptcp_interactive_cell_from_wifi);
+ tcp_cumulative_stat64(tcpstat.tcps_mptcp_handover_cell_bytes,
+ &prev.tcps_mptcp_handover_cell_bytes, &stat.mptcp_handover_cell_bytes);
+ tcp_cumulative_stat64(tcpstat.tcps_mptcp_interactive_cell_bytes,
+ &prev.tcps_mptcp_interactive_cell_bytes, &stat.mptcp_interactive_cell_bytes);
+ tcp_cumulative_stat64(tcpstat.tcps_mptcp_aggregate_cell_bytes,
+ &prev.tcps_mptcp_aggregate_cell_bytes, &stat.mptcp_aggregate_cell_bytes);
+ tcp_cumulative_stat64(tcpstat.tcps_mptcp_handover_all_bytes,
+ &prev.tcps_mptcp_handover_all_bytes, &stat.mptcp_handover_all_bytes);
+ tcp_cumulative_stat64(tcpstat.tcps_mptcp_interactive_all_bytes,
+ &prev.tcps_mptcp_interactive_all_bytes, &stat.mptcp_interactive_all_bytes);
+ tcp_cumulative_stat64(tcpstat.tcps_mptcp_aggregate_all_bytes,
+ &prev.tcps_mptcp_aggregate_all_bytes, &stat.mptcp_aggregate_all_bytes);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_back_to_wifi,
+ &prev.tcps_mptcp_back_to_wifi, &stat.mptcp_back_to_wifi);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_wifi_proxy,
+ &prev.tcps_mptcp_wifi_proxy, &stat.mptcp_wifi_proxy);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_cell_proxy,
+ &prev.tcps_mptcp_cell_proxy, &stat.mptcp_cell_proxy);
+ tcp_cumulative_stat(tcpstat.tcps_mptcp_triggered_cell,
+ &prev.tcps_mptcp_triggered_cell, &stat.mptcp_triggered_cell);