Warning: This file is not a C or C++ file. It does not have highlighting.
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
---|---|
2 | #undef TRACE_SYSTEM |
3 | #define TRACE_SYSTEM sctp |
4 | |
5 | #if !defined(_TRACE_SCTP_H) || defined(TRACE_HEADER_MULTI_READ) |
6 | #define _TRACE_SCTP_H |
7 | |
8 | #include <net/sctp/structs.h> |
9 | #include <linux/tracepoint.h> |
10 | |
11 | TRACE_EVENT(sctp_probe_path, |
12 | |
13 | TP_PROTO(struct sctp_transport *sp, |
14 | const struct sctp_association *asoc), |
15 | |
16 | TP_ARGS(sp, asoc), |
17 | |
18 | TP_STRUCT__entry( |
19 | __field(__u64, asoc) |
20 | __field(__u32, primary) |
21 | __array(__u8, ipaddr, sizeof(union sctp_addr)) |
22 | __field(__u32, state) |
23 | __field(__u32, cwnd) |
24 | __field(__u32, ssthresh) |
25 | __field(__u32, flight_size) |
26 | __field(__u32, partial_bytes_acked) |
27 | __field(__u32, pathmtu) |
28 | ), |
29 | |
30 | TP_fast_assign( |
31 | __entry->asoc = (unsigned long)asoc; |
32 | __entry->primary = (sp == asoc->peer.primary_path); |
33 | memcpy(__entry->ipaddr, &sp->ipaddr, sizeof(union sctp_addr)); |
34 | __entry->state = sp->state; |
35 | __entry->cwnd = sp->cwnd; |
36 | __entry->ssthresh = sp->ssthresh; |
37 | __entry->flight_size = sp->flight_size; |
38 | __entry->partial_bytes_acked = sp->partial_bytes_acked; |
39 | __entry->pathmtu = sp->pathmtu; |
40 | ), |
41 | |
42 | TP_printk("asoc=%#llx%s ipaddr=%pISpc state=%u cwnd=%u ssthresh=%u " |
43 | "flight_size=%u partial_bytes_acked=%u pathmtu=%u", |
44 | __entry->asoc, __entry->primary ? "(*)" : "", |
45 | __entry->ipaddr, __entry->state, __entry->cwnd, |
46 | __entry->ssthresh, __entry->flight_size, |
47 | __entry->partial_bytes_acked, __entry->pathmtu) |
48 | ); |
49 | |
50 | TRACE_EVENT(sctp_probe, |
51 | |
52 | TP_PROTO(const struct sctp_endpoint *ep, |
53 | const struct sctp_association *asoc, |
54 | struct sctp_chunk *chunk), |
55 | |
56 | TP_ARGS(ep, asoc, chunk), |
57 | |
58 | TP_STRUCT__entry( |
59 | __field(__u64, asoc) |
60 | __field(__u32, mark) |
61 | __field(__u16, bind_port) |
62 | __field(__u16, peer_port) |
63 | __field(__u32, pathmtu) |
64 | __field(__u32, rwnd) |
65 | __field(__u16, unack_data) |
66 | ), |
67 | |
68 | TP_fast_assign( |
69 | struct sk_buff *skb = chunk->skb; |
70 | |
71 | __entry->asoc = (unsigned long)asoc; |
72 | __entry->mark = skb->mark; |
73 | __entry->bind_port = ep->base.bind_addr.port; |
74 | __entry->peer_port = asoc->peer.port; |
75 | __entry->pathmtu = asoc->pathmtu; |
76 | __entry->rwnd = asoc->peer.rwnd; |
77 | __entry->unack_data = asoc->unack_data; |
78 | ), |
79 | |
80 | TP_printk("asoc=%#llx mark=%#x bind_port=%d peer_port=%d pathmtu=%d " |
81 | "rwnd=%u unack_data=%d", |
82 | __entry->asoc, __entry->mark, __entry->bind_port, |
83 | __entry->peer_port, __entry->pathmtu, __entry->rwnd, |
84 | __entry->unack_data) |
85 | ); |
86 | |
87 | #endif /* _TRACE_SCTP_H */ |
88 | |
89 | /* This part must be outside protection */ |
90 | #include <trace/define_trace.h> |
91 |
Warning: This file is not a C or C++ file. It does not have highlighting.