1 .. SPDX-License-Identifier: GPL-2.0 2 .. Copyright (C) 2023 Google LLC 3 4 ========================================= 5 tcp_sock struct fast path usage breakdown 6 ========================================= 7 8 Type Name fastpath_tx_access fastpath_rx_access Comments 9 ..struct ..tcp_sock 10 struct_inet_connection_sock inet_conn 11 u16 tcp_header_len read_mostly read_mostly tcp_bound_to_half_wnd,tcp_current_mss(tx);tcp_rcv_established(rx) 12 u16 gso_segs read_mostly - tcp_xmit_size_goal 13 __be32 pred_flags read_write read_mostly tcp_select_window(tx);tcp_rcv_established(rx) 14 u64 bytes_received - read_write tcp_rcv_nxt_update(rx) 15 u32 segs_in - read_write tcp_v6_rcv(rx) 16 u32 data_segs_in - read_write tcp_v6_rcv(rx) 17 u32 rcv_nxt read_mostly read_write tcp_cleanup_rbuf,tcp_send_ack,tcp_inq_hint,tcp_transmit_skb,tcp_receive_window(tx);tcp_v6_do_rcv,tcp_rcv_established,tcp_data_queue,tcp_receive_window,tcp_rcv_nxt_update(write)(rx) 18 u32 copied_seq - read_mostly tcp_cleanup_rbuf,tcp_rcv_space_adjust,tcp_inq_hint 19 u32 rcv_wup - read_write __tcp_cleanup_rbuf,tcp_receive_window,tcp_receive_established 20 u32 snd_nxt read_write read_mostly tcp_rate_check_app_limited,__tcp_transmit_skb,tcp_event_new_data_sent(write)(tx);tcp_rcv_established,tcp_ack,tcp_clean_rtx_queue(rx) 21 u32 segs_out read_write - __tcp_transmit_skb 22 u32 data_segs_out read_write - __tcp_transmit_skb,tcp_update_skb_after_send 23 u64 bytes_sent read_write - __tcp_transmit_skb 24 u64 bytes_acked - read_write tcp_snd_una_update/tcp_ack 25 u32 dsack_dups 26 u32 snd_una read_mostly read_write tcp_wnd_end,tcp_urg_mode,tcp_minshall_check,tcp_cwnd_validate(tx);tcp_ack,tcp_may_update_window,tcp_clean_rtx_queue(write),tcp_ack_tstamp(rx) 27 u32 snd_sml read_write - tcp_minshall_check,tcp_minshall_update 28 u32 rcv_tstamp - read_mostly tcp_ack 29 u32 lsndtime read_write - tcp_slow_start_after_idle_check,tcp_event_data_sent 30 u32 last_oow_ack_time 31 u32 compressed_ack_rcv_nxt 32 u32 tsoffset read_mostly read_mostly tcp_established_options(tx);tcp_fast_parse_options(rx) 33 struct_list_head tsq_node - - 34 struct_list_head tsorted_sent_queue read_write - tcp_update_skb_after_send 35 u32 snd_wl1 - read_mostly tcp_may_update_window 36 u32 snd_wnd read_mostly read_mostly tcp_wnd_end,tcp_tso_should_defer(tx);tcp_fast_path_on(rx) 37 u32 max_window read_mostly - tcp_bound_to_half_wnd,forced_push 38 u32 mss_cache read_mostly read_mostly tcp_rate_check_app_limited,tcp_current_mss,tcp_sync_mss,tcp_sndbuf_expand,tcp_tso_should_defer(tx);tcp_update_pacing_rate,tcp_clean_rtx_queue(rx) 39 u32 window_clamp read_mostly read_write tcp_rcv_space_adjust,__tcp_select_window 40 u32 rcv_ssthresh read_mostly - __tcp_select_window 41 u8 scaling_ratio read_mostly read_mostly tcp_win_from_space 42 struct tcp_rack 43 u16 advmss - read_mostly tcp_rcv_space_adjust 44 u8 compressed_ack 45 u8:2 dup_ack_counter 46 u8:1 tlp_retrans 47 u8:1 tcp_usec_ts read_mostly read_mostly 48 u32 chrono_start read_write - tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data) 49 u32[3] chrono_stat read_write - tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data) 50 u8:2 chrono_type read_write - tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data) 51 u8:1 rate_app_limited - read_write tcp_rate_gen 52 u8:1 fastopen_connect 53 u8:1 fastopen_no_cookie 54 u8:1 is_sack_reneg - read_mostly tcp_skb_entail,tcp_ack 55 u8:2 fastopen_client_fail 56 u8:4 nonagle read_write - tcp_skb_entail,tcp_push_pending_frames 57 u8:1 thin_lto 58 u8:1 recvmsg_inq 59 u8:1 repair read_mostly - tcp_write_xmit 60 u8:1 frto 61 u8 repair_queue - - 62 u8:2 save_syn 63 u8:1 syn_data 64 u8:1 syn_fastopen 65 u8:1 syn_fastopen_exp 66 u8:1 syn_fastopen_ch 67 u8:1 syn_data_acked 68 u8:1 is_cwnd_limited read_mostly - tcp_cwnd_validate,tcp_is_cwnd_limited 69 u32 tlp_high_seq - read_mostly tcp_ack 70 u32 tcp_tx_delay 71 u64 tcp_wstamp_ns read_write - tcp_pacing_check,tcp_tso_should_defer,tcp_update_skb_after_send 72 u64 tcp_clock_cache read_write read_write tcp_mstamp_refresh(tcp_write_xmit/tcp_rcv_space_adjust),__tcp_transmit_skb,tcp_tso_should_defer;timer 73 u64 tcp_mstamp read_write read_write tcp_mstamp_refresh(tcp_write_xmit/tcp_rcv_space_adjust)(tx);tcp_rcv_space_adjust,tcp_rate_gen,tcp_clean_rtx_queue,tcp_ack_update_rtt/tcp_time_stamp(rx);timer 74 u32 srtt_us read_mostly read_write tcp_tso_should_defer(tx);tcp_update_pacing_rate,__tcp_set_rto,tcp_rtt_estimator(rx) 75 u32 mdev_us read_write - tcp_rtt_estimator 76 u32 mdev_max_us 77 u32 rttvar_us - read_mostly __tcp_set_rto 78 u32 rtt_seq read_write tcp_rtt_estimator 79 struct_minmax rtt_min - read_mostly tcp_min_rtt/tcp_rate_gen,tcp_min_rtttcp_update_rtt_min 80 u32 packets_out read_write read_write tcp_packets_in_flight(tx/rx);tcp_slow_start_after_idle_check,tcp_nagle_check,tcp_rate_skb_sent,tcp_event_new_data_sent,tcp_cwnd_validate,tcp_write_xmit(tx);tcp_ack,tcp_clean_rtx_queue,tcp_update_pacing_rate(rx) 81 u32 retrans_out - read_mostly tcp_packets_in_flight,tcp_rate_check_app_limited 82 u32 max_packets_out - read_write tcp_cwnd_validate 83 u32 cwnd_usage_seq - read_write tcp_cwnd_validate 84 u16 urg_data - read_mostly tcp_fast_path_check 85 u8 ecn_flags read_write - tcp_ecn_send 86 u8 keepalive_probes 87 u32 reordering read_mostly - tcp_sndbuf_expand 88 u32 reord_seen 89 u32 snd_up read_write read_mostly tcp_mark_urg,tcp_urg_mode,__tcp_transmit_skb(tx);tcp_clean_rtx_queue(rx) 90 struct_tcp_options_received rx_opt read_mostly read_write tcp_established_options(tx);tcp_fast_path_on,tcp_ack_update_window,tcp_is_sack,tcp_data_queue,tcp_rcv_established,tcp_ack_update_rtt(rx) 91 u32 snd_ssthresh - read_mostly tcp_update_pacing_rate 92 u32 snd_cwnd read_mostly read_mostly tcp_snd_cwnd,tcp_rate_check_app_limited,tcp_tso_should_defer(tx);tcp_update_pacing_rate 93 u32 snd_cwnd_cnt 94 u32 snd_cwnd_clamp 95 u32 snd_cwnd_used 96 u32 snd_cwnd_stamp 97 u32 prior_cwnd 98 u32 prr_delivered 99 u32 prr_out read_mostly read_mostly tcp_rate_skb_sent,tcp_newly_delivered(tx);tcp_ack,tcp_rate_gen,tcp_clean_rtx_queue(rx) 100 u32 delivered read_mostly read_write tcp_rate_skb_sent, tcp_newly_delivered(tx);tcp_ack, tcp_rate_gen, tcp_clean_rtx_queue (rx) 101 u32 delivered_ce read_mostly read_write tcp_rate_skb_sent(tx);tcp_rate_gen(rx) 102 u32 lost - read_mostly tcp_ack 103 u32 app_limited read_write read_mostly tcp_rate_check_app_limited,tcp_rate_skb_sent(tx);tcp_rate_gen(rx) 104 u64 first_tx_mstamp read_write - tcp_rate_skb_sent 105 u64 delivered_mstamp read_write - tcp_rate_skb_sent 106 u32 rate_delivered - read_mostly tcp_rate_gen 107 u32 rate_interval_us - read_mostly rate_delivered,rate_app_limited 108 u32 rcv_wnd read_write read_mostly tcp_select_window,tcp_receive_window,tcp_fast_path_check 109 u32 write_seq read_write - tcp_rate_check_app_limited,tcp_write_queue_empty,tcp_skb_entail,forced_push,tcp_mark_push 110 u32 notsent_lowat read_mostly - tcp_stream_memory_free 111 u32 pushed_seq read_write - tcp_mark_push,forced_push 112 u32 lost_out read_mostly read_mostly tcp_left_out(tx);tcp_packets_in_flight(tx/rx);tcp_rate_check_app_limited(rx) 113 u32 sacked_out read_mostly read_mostly tcp_left_out(tx);tcp_packets_in_flight(tx/rx);tcp_clean_rtx_queue(rx) 114 struct_hrtimer pacing_timer 115 struct_hrtimer compressed_ack_timer 116 struct_sk_buff* lost_skb_hint read_mostly tcp_clean_rtx_queue 117 struct_sk_buff* retransmit_skb_hint read_mostly - tcp_clean_rtx_queue 118 struct_rb_root out_of_order_queue - read_mostly tcp_data_queue,tcp_fast_path_check 119 struct_sk_buff* ooo_last_skb 120 struct_tcp_sack_block[1] duplicate_sack 121 struct_tcp_sack_block[4] selective_acks 122 struct_tcp_sack_block[4] recv_sack_cache 123 struct_sk_buff* highest_sack read_write - tcp_event_new_data_sent 124 int lost_cnt_hint 125 u32 prior_ssthresh 126 u32 high_seq 127 u32 retrans_stamp 128 u32 undo_marker 129 int undo_retrans 130 u64 bytes_retrans 131 u32 total_retrans 132 u32 rto_stamp 133 u16 total_rto 134 u16 total_rto_recoveries 135 u32 total_rto_time 136 u32 urg_seq - - 137 unsigned_int keepalive_time 138 unsigned_int keepalive_intvl 139 int linger2 140 u8 bpf_sock_ops_cb_flags 141 u8:1 bpf_chg_cc_inprogress 142 u16 timeout_rehash 143 u32 rcv_ooopack 144 u32 rcv_rtt_last_tsecr 145 struct rcv_rtt_est - read_write tcp_rcv_space_adjust,tcp_rcv_established 146 struct rcvq_space - read_write tcp_rcv_space_adjust 147 struct mtu_probe 148 u32 plb_rehash 149 u32 mtu_info 150 bool is_mptcp 151 bool smc_hs_congested 152 bool syn_smc 153 struct_tcp_sock_af_ops* af_specific 154 struct_tcp_md5sig_info* md5sig_info 155 struct_tcp_fastopen_request* fastopen_req 156 struct_request_sock* fastopen_rsk 157 struct_saved_syn* saved_syn
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.