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