]>
Commit | Line | Data |
---|---|---|
103d750c MH |
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; | |
103d750c MH |
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> |