~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/trace/events/mptcp.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #undef TRACE_SYSTEM
  3 #define TRACE_SYSTEM mptcp
  4 
  5 #if !defined(_TRACE_MPTCP_H) || defined(TRACE_HEADER_MULTI_READ)
  6 #define _TRACE_MPTCP_H
  7 
  8 #include <linux/tracepoint.h>
  9 
 10 #define show_mapping_status(status)                                     \
 11         __print_symbolic(status,                                        \
 12                 { 0, "MAPPING_OK" },                                    \
 13                 { 1, "MAPPING_INVALID" },                               \
 14                 { 2, "MAPPING_EMPTY" },                                 \
 15                 { 3, "MAPPING_DATA_FIN" },                              \
 16                 { 4, "MAPPING_DUMMY" })
 17 
 18 TRACE_EVENT(mptcp_subflow_get_send,
 19 
 20         TP_PROTO(struct mptcp_subflow_context *subflow),
 21 
 22         TP_ARGS(subflow),
 23 
 24         TP_STRUCT__entry(
 25                 __field(bool, active)
 26                 __field(bool, free)
 27                 __field(u32, snd_wnd)
 28                 __field(u32, pace)
 29                 __field(u8, backup)
 30                 __field(u64, ratio)
 31         ),
 32 
 33         TP_fast_assign(
 34                 struct sock *ssk;
 35 
 36                 __entry->active = mptcp_subflow_active(subflow);
 37                 __entry->backup = subflow->backup || subflow->request_bkup;
 38 
 39                 if (subflow->tcp_sock && sk_fullsock(subflow->tcp_sock))
 40                         __entry->free = sk_stream_memory_free(subflow->tcp_sock);
 41                 else
 42                         __entry->free = 0;
 43 
 44                 ssk = mptcp_subflow_tcp_sock(subflow);
 45                 if (ssk && sk_fullsock(ssk)) {
 46                         __entry->snd_wnd = tcp_sk(ssk)->snd_wnd;
 47                         __entry->pace = READ_ONCE(ssk->sk_pacing_rate);
 48                 } else {
 49                         __entry->snd_wnd = 0;
 50                         __entry->pace = 0;
 51                 }
 52 
 53                 if (ssk && sk_fullsock(ssk) && __entry->pace)
 54                         __entry->ratio = div_u64((u64)ssk->sk_wmem_queued << 32, __entry->pace);
 55                 else
 56                         __entry->ratio = 0;
 57         ),
 58 
 59         TP_printk("active=%d free=%d snd_wnd=%u pace=%u backup=%u ratio=%llu",
 60                   __entry->active, __entry->free,
 61                   __entry->snd_wnd, __entry->pace,
 62                   __entry->backup, __entry->ratio)
 63 );
 64 
 65 DECLARE_EVENT_CLASS(mptcp_dump_mpext,
 66 
 67         TP_PROTO(struct mptcp_ext *mpext),
 68 
 69         TP_ARGS(mpext),
 70 
 71         TP_STRUCT__entry(
 72                 __field(u64, data_ack)
 73                 __field(u64, data_seq)
 74                 __field(u32, subflow_seq)
 75                 __field(u16, data_len)
 76                 __field(u16, csum)
 77                 __field(u8, use_map)
 78                 __field(u8, dsn64)
 79                 __field(u8, data_fin)
 80                 __field(u8, use_ack)
 81                 __field(u8, ack64)
 82                 __field(u8, mpc_map)
 83                 __field(u8, frozen)
 84                 __field(u8, reset_transient)
 85                 __field(u8, reset_reason)
 86                 __field(u8, csum_reqd)
 87                 __field(u8, infinite_map)
 88         ),
 89 
 90         TP_fast_assign(
 91                 __entry->data_ack = mpext->ack64 ? mpext->data_ack : mpext->data_ack32;
 92                 __entry->data_seq = mpext->data_seq;
 93                 __entry->subflow_seq = mpext->subflow_seq;
 94                 __entry->data_len = mpext->data_len;
 95                 __entry->csum = (__force u16)mpext->csum;
 96                 __entry->use_map = mpext->use_map;
 97                 __entry->dsn64 = mpext->dsn64;
 98                 __entry->data_fin = mpext->data_fin;
 99                 __entry->use_ack = mpext->use_ack;
100                 __entry->ack64 = mpext->ack64;
101                 __entry->mpc_map = mpext->mpc_map;
102                 __entry->frozen = mpext->frozen;
103                 __entry->reset_transient = mpext->reset_transient;
104                 __entry->reset_reason = mpext->reset_reason;
105                 __entry->csum_reqd = mpext->csum_reqd;
106                 __entry->infinite_map = mpext->infinite_map;
107         ),
108 
109         TP_printk("data_ack=%llu data_seq=%llu subflow_seq=%u data_len=%u csum=%x use_map=%u dsn64=%u data_fin=%u use_ack=%u ack64=%u mpc_map=%u frozen=%u reset_transient=%u reset_reason=%u csum_reqd=%u infinite_map=%u",
110                   __entry->data_ack, __entry->data_seq,
111                   __entry->subflow_seq, __entry->data_len,
112                   __entry->csum, __entry->use_map,
113                   __entry->dsn64, __entry->data_fin,
114                   __entry->use_ack, __entry->ack64,
115                   __entry->mpc_map, __entry->frozen,
116                   __entry->reset_transient, __entry->reset_reason,
117                   __entry->csum_reqd, __entry->infinite_map)
118 );
119 
120 DEFINE_EVENT(mptcp_dump_mpext, mptcp_sendmsg_frag,
121         TP_PROTO(struct mptcp_ext *mpext),
122         TP_ARGS(mpext));
123 
124 DEFINE_EVENT(mptcp_dump_mpext, get_mapping_status,
125         TP_PROTO(struct mptcp_ext *mpext),
126         TP_ARGS(mpext));
127 
128 TRACE_EVENT(ack_update_msk,
129 
130         TP_PROTO(u64 data_ack, u64 old_snd_una,
131                  u64 new_snd_una, u64 new_wnd_end,
132                  u64 msk_wnd_end),
133 
134         TP_ARGS(data_ack, old_snd_una,
135                 new_snd_una, new_wnd_end,
136                 msk_wnd_end),
137 
138         TP_STRUCT__entry(
139                 __field(u64, data_ack)
140                 __field(u64, old_snd_una)
141                 __field(u64, new_snd_una)
142                 __field(u64, new_wnd_end)
143                 __field(u64, msk_wnd_end)
144         ),
145 
146         TP_fast_assign(
147                 __entry->data_ack = data_ack;
148                 __entry->old_snd_una = old_snd_una;
149                 __entry->new_snd_una = new_snd_una;
150                 __entry->new_wnd_end = new_wnd_end;
151                 __entry->msk_wnd_end = msk_wnd_end;
152         ),
153 
154         TP_printk("data_ack=%llu old_snd_una=%llu new_snd_una=%llu new_wnd_end=%llu msk_wnd_end=%llu",
155                   __entry->data_ack, __entry->old_snd_una,
156                   __entry->new_snd_una, __entry->new_wnd_end,
157                   __entry->msk_wnd_end)
158 );
159 
160 TRACE_EVENT(subflow_check_data_avail,
161 
162         TP_PROTO(__u8 status, struct sk_buff *skb),
163 
164         TP_ARGS(status, skb),
165 
166         TP_STRUCT__entry(
167                 __field(u8, status)
168                 __field(const void *, skb)
169         ),
170 
171         TP_fast_assign(
172                 __entry->status = status;
173                 __entry->skb = skb;
174         ),
175 
176         TP_printk("mapping_status=%s, skb=%p",
177                   show_mapping_status(__entry->status),
178                   __entry->skb)
179 );
180 
181 #endif /* _TRACE_MPTCP_H */
182 
183 /* This part must be outside protection */
184 #include <trace/define_trace.h>
185 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php