brintos

brintos / linux-shallow public Read only

0
0
Text · 2.4 KiB · d4aac34 Raw
91 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#undef TRACE_SYSTEM3#define TRACE_SYSTEM sctp4 5#if !defined(_TRACE_SCTP_H) || defined(TRACE_HEADER_MULTI_READ)6#define _TRACE_SCTP_H7 8#include <net/sctp/structs.h>9#include <linux/tracepoint.h>10 11TRACE_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 50TRACE_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