Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2)  * net/tipc/trace.h: TIPC tracepoints
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  * Copyright (c) 2018, Ericsson AB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  * All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7)  * Redistribution and use in source and binary forms, with or without
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)  * modification, are permitted provided that the following conditions are met:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)  * 1. Redistributions of source code must retain the above copyright
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11)  *    notice, this list of conditions and the following disclaimer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)  * 2. Redistributions in binary form must reproduce the above copyright
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13)  *    notice, this list of conditions and the following disclaimer in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)  *    documentation and/or other materials provided with the distribution.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)  * 3. Neither the names of the copyright holders nor the names of its
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)  *    contributors may be used to endorse or promote products derived from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17)  *    this software without specific prior written permission.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19)  * Alternatively, this software may be distributed under the terms of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)  * GNU General Public License ("GPL") version 2 as published by the Free
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)  * Software Foundation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23)  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "ASIS"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,THE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27)  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29)  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31)  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33)  * POSSIBILITY OF SUCH DAMAGE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) #define TRACE_SYSTEM tipc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) #if !defined(_TIPC_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) #define _TIPC_TRACE_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) #include "core.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) #include "link.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) #include "socket.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) #include "node.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) #define SKB_LMIN	(100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) #define SKB_LMAX	(SKB_LMIN * 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) #define LIST_LMIN	(SKB_LMIN * 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) #define LIST_LMAX	(SKB_LMIN * 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) #define SK_LMIN		(SKB_LMIN * 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) #define SK_LMAX		(SKB_LMIN * 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) #define LINK_LMIN	(SKB_LMIN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) #define LINK_LMAX	(SKB_LMIN * 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) #define NODE_LMIN	(SKB_LMIN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) #define NODE_LMAX	(SKB_LMIN * 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) #ifndef __TIPC_TRACE_ENUM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) #define __TIPC_TRACE_ENUM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) enum {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	TIPC_DUMP_NONE		= 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	TIPC_DUMP_TRANSMQ	= 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	TIPC_DUMP_BACKLOGQ	= (1 << 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	TIPC_DUMP_DEFERDQ	= (1 << 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	TIPC_DUMP_INPUTQ	= (1 << 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	TIPC_DUMP_WAKEUP        = (1 << 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	TIPC_DUMP_SK_SNDQ	= (1 << 8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	TIPC_DUMP_SK_RCVQ	= (1 << 9),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	TIPC_DUMP_SK_BKLGQ	= (1 << 10),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	TIPC_DUMP_ALL		= 0xffffu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) /* Link & Node FSM states: */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) #define state_sym(val)							  \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	__print_symbolic(val,						  \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 			{(0xe),		"ESTABLISHED"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 			{(0xe << 4),	"ESTABLISHING"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 			{(0x1 << 8),	"RESET"				},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 			{(0x2 << 12),	"RESETTING"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 			{(0xd << 16),	"PEER_RESET"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 			{(0xf << 20),	"FAILINGOVER"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 			{(0xc << 24),	"SYNCHING"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 			{(0xdd),	"SELF_DOWN_PEER_DOWN"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 			{(0xaa),	"SELF_UP_PEER_UP"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 			{(0xd1),	"SELF_DOWN_PEER_LEAVING"	},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 			{(0xac),	"SELF_UP_PEER_COMING"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 			{(0xca),	"SELF_COMING_PEER_UP"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 			{(0x1d),	"SELF_LEAVING_PEER_DOWN"	},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 			{(0xf0),	"FAILINGOVER"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 			{(0xcc),	"SYNCHING"			})
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) /* Link & Node FSM events: */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) #define evt_sym(val)							  \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	__print_symbolic(val,						  \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 			{(0xec1ab1e),	"ESTABLISH_EVT"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 			{(0x9eed0e),	"PEER_RESET_EVT"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 			{(0xfa110e),	"FAILURE_EVT"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 			{(0x10ca1d0e),	"RESET_EVT"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 			{(0xfa110bee),	"FAILOVER_BEGIN_EVT"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 			{(0xfa110ede),	"FAILOVER_END_EVT"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 			{(0xc1ccbee),	"SYNCH_BEGIN_EVT"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 			{(0xc1ccede),	"SYNCH_END_EVT"			},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 			{(0xece),	"SELF_ESTABL_CONTACT_EVT"	},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 			{(0x1ce),	"SELF_LOST_CONTACT_EVT"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 			{(0x9ece),	"PEER_ESTABL_CONTACT_EVT"	},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 			{(0x91ce),	"PEER_LOST_CONTACT_EVT"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 			{(0xfbe),	"FAILOVER_BEGIN_EVT"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 			{(0xfee),	"FAILOVER_END_EVT"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 			{(0xcbe),	"SYNCH_BEGIN_EVT"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 			{(0xcee),	"SYNCH_END_EVT"			})
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) /* Bearer, net device events: */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) #define dev_evt_sym(val)						  \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	__print_symbolic(val,						  \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 			{(NETDEV_CHANGE),	"NETDEV_CHANGE"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 			{(NETDEV_GOING_DOWN),	"NETDEV_GOING_DOWN"	},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 			{(NETDEV_UP),		"NETDEV_UP"		},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 			{(NETDEV_CHANGEMTU),	"NETDEV_CHANGEMTU"	},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 			{(NETDEV_CHANGEADDR),	"NETDEV_CHANGEADDR"	},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 			{(NETDEV_UNREGISTER),	"NETDEV_UNREGISTER"	},\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 			{(NETDEV_CHANGENAME),	"NETDEV_CHANGENAME"	})
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) extern unsigned long sysctl_tipc_sk_filter[5] __read_mostly;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) int tipc_skb_dump(struct sk_buff *skb, bool more, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) int tipc_list_dump(struct sk_buff_head *list, bool more, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) int tipc_sk_dump(struct sock *sk, u16 dqueues, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) int tipc_link_dump(struct tipc_link *l, u16 dqueues, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) int tipc_node_dump(struct tipc_node *n, bool more, char *buf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) bool tipc_sk_filtering(struct sock *sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) DECLARE_EVENT_CLASS(tipc_skb_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 	TP_PROTO(struct sk_buff *skb, bool more, const char *header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 	TP_ARGS(skb, more, header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 		__string(header, header)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 		__dynamic_array(char, buf, (more) ? SKB_LMAX : SKB_LMIN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 		__assign_str(header, header);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 		tipc_skb_dump(skb, more, __get_str(buf));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 	TP_printk("%s\n%s", __get_str(header), __get_str(buf))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) #define DEFINE_SKB_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) DEFINE_EVENT(tipc_skb_class, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 	TP_PROTO(struct sk_buff *skb, bool more, const char *header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 	TP_ARGS(skb, more, header))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) DEFINE_SKB_EVENT(tipc_skb_dump);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) DEFINE_SKB_EVENT(tipc_proto_build);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) DEFINE_SKB_EVENT(tipc_proto_rcv);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) DECLARE_EVENT_CLASS(tipc_list_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 	TP_PROTO(struct sk_buff_head *list, bool more, const char *header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 	TP_ARGS(list, more, header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) 		__string(header, header)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 		__dynamic_array(char, buf, (more) ? LIST_LMAX : LIST_LMIN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 		__assign_str(header, header);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 		tipc_list_dump(list, more, __get_str(buf));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 	TP_printk("%s\n%s", __get_str(header), __get_str(buf))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) #define DEFINE_LIST_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) DEFINE_EVENT(tipc_list_class, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 	TP_PROTO(struct sk_buff_head *list, bool more, const char *header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 	TP_ARGS(list, more, header))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) DEFINE_LIST_EVENT(tipc_list_dump);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) DECLARE_EVENT_CLASS(tipc_sk_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 	TP_PROTO(struct sock *sk, struct sk_buff *skb, u16 dqueues,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 		 const char *header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 	TP_ARGS(sk, skb, dqueues, header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 		__string(header, header)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 		__field(u32, portid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 		__dynamic_array(char, buf, (dqueues) ? SK_LMAX : SK_LMIN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 		__dynamic_array(char, skb_buf, (skb) ? SKB_LMIN : 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 		__assign_str(header, header);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 		__entry->portid = tipc_sock_get_portid(sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 		tipc_sk_dump(sk, dqueues, __get_str(buf));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 		if (skb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 			tipc_skb_dump(skb, false, __get_str(skb_buf));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 		else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 			*(__get_str(skb_buf)) = '\0';
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 	TP_printk("<%u> %s\n%s%s", __entry->portid, __get_str(header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 		  __get_str(skb_buf), __get_str(buf))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) #define DEFINE_SK_EVENT_FILTER(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) DEFINE_EVENT_CONDITION(tipc_sk_class, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 	TP_PROTO(struct sock *sk, struct sk_buff *skb, u16 dqueues, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 		 const char *header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 	TP_ARGS(sk, skb, dqueues, header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 	TP_CONDITION(tipc_sk_filtering(sk)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) DEFINE_SK_EVENT_FILTER(tipc_sk_dump);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) DEFINE_SK_EVENT_FILTER(tipc_sk_create);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) DEFINE_SK_EVENT_FILTER(tipc_sk_sendmcast);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) DEFINE_SK_EVENT_FILTER(tipc_sk_sendmsg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) DEFINE_SK_EVENT_FILTER(tipc_sk_sendstream);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) DEFINE_SK_EVENT_FILTER(tipc_sk_poll);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) DEFINE_SK_EVENT_FILTER(tipc_sk_filter_rcv);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) DEFINE_SK_EVENT_FILTER(tipc_sk_advance_rx);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) DEFINE_SK_EVENT_FILTER(tipc_sk_rej_msg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) DEFINE_SK_EVENT_FILTER(tipc_sk_drop_msg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) DEFINE_SK_EVENT_FILTER(tipc_sk_release);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) DEFINE_SK_EVENT_FILTER(tipc_sk_shutdown);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) #define DEFINE_SK_EVENT_FILTER_COND(name, cond) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) DEFINE_EVENT_CONDITION(tipc_sk_class, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 	TP_PROTO(struct sock *sk, struct sk_buff *skb, u16 dqueues, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 		 const char *header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 	TP_ARGS(sk, skb, dqueues, header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 	TP_CONDITION(tipc_sk_filtering(sk) && (cond)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) DEFINE_SK_EVENT_FILTER_COND(tipc_sk_overlimit1, tipc_sk_overlimit1(sk, skb));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) DEFINE_SK_EVENT_FILTER_COND(tipc_sk_overlimit2, tipc_sk_overlimit2(sk, skb));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) DECLARE_EVENT_CLASS(tipc_link_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 	TP_PROTO(struct tipc_link *l, u16 dqueues, const char *header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 	TP_ARGS(l, dqueues, header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 		__string(header, header)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 		__array(char, name, TIPC_MAX_LINK_NAME)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 		__dynamic_array(char, buf, (dqueues) ? LINK_LMAX : LINK_LMIN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 		__assign_str(header, header);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 		memcpy(__entry->name, tipc_link_name(l), TIPC_MAX_LINK_NAME);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 		tipc_link_dump(l, dqueues, __get_str(buf));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 	TP_printk("<%s> %s\n%s", __entry->name, __get_str(header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 		  __get_str(buf))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) #define DEFINE_LINK_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) DEFINE_EVENT(tipc_link_class, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 	TP_PROTO(struct tipc_link *l, u16 dqueues, const char *header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 	TP_ARGS(l, dqueues, header))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) DEFINE_LINK_EVENT(tipc_link_dump);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) DEFINE_LINK_EVENT(tipc_link_conges);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) DEFINE_LINK_EVENT(tipc_link_timeout);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) DEFINE_LINK_EVENT(tipc_link_reset);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) #define DEFINE_LINK_EVENT_COND(name, cond) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) DEFINE_EVENT_CONDITION(tipc_link_class, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 	TP_PROTO(struct tipc_link *l, u16 dqueues, const char *header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 	TP_ARGS(l, dqueues, header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 	TP_CONDITION(cond))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) DEFINE_LINK_EVENT_COND(tipc_link_too_silent, tipc_link_too_silent(l));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) DECLARE_EVENT_CLASS(tipc_link_transmq_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) 	TP_PROTO(struct tipc_link *r, u16 f, u16 t, struct sk_buff_head *tq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) 	TP_ARGS(r, f, t, tq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) 		__array(char, name, TIPC_MAX_LINK_NAME)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) 		__field(u16, from)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) 		__field(u16, to)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) 		__field(u32, len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) 		__field(u16, fseqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) 		__field(u16, lseqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) 		memcpy(__entry->name, tipc_link_name(r), TIPC_MAX_LINK_NAME);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) 		__entry->from = f;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) 		__entry->to = t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) 		__entry->len = skb_queue_len(tq);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) 		__entry->fseqno = __entry->len ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) 				  msg_seqno(buf_msg(skb_peek(tq))) : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) 		__entry->lseqno = __entry->len ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) 				  msg_seqno(buf_msg(skb_peek_tail(tq))) : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) 	TP_printk("<%s> retrans req: [%u-%u] transmq: %u [%u-%u]\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) 		  __entry->name, __entry->from, __entry->to,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) 		  __entry->len, __entry->fseqno, __entry->lseqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) DEFINE_EVENT_CONDITION(tipc_link_transmq_class, tipc_link_retrans,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) 	TP_PROTO(struct tipc_link *r, u16 f, u16 t, struct sk_buff_head *tq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) 	TP_ARGS(r, f, t, tq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) 	TP_CONDITION(less_eq(f, t))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) DEFINE_EVENT_PRINT(tipc_link_transmq_class, tipc_link_bc_ack,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) 	TP_PROTO(struct tipc_link *r, u16 f, u16 t, struct sk_buff_head *tq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) 	TP_ARGS(r, f, t, tq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) 	TP_printk("<%s> acked: %u gap: %u transmq: %u [%u-%u]\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) 		  __entry->name, __entry->from, __entry->to,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) 		  __entry->len, __entry->fseqno, __entry->lseqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) DECLARE_EVENT_CLASS(tipc_node_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) 	TP_PROTO(struct tipc_node *n, bool more, const char *header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 	TP_ARGS(n, more, header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 		__string(header, header)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 		__field(u32, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 		__dynamic_array(char, buf, (more) ? NODE_LMAX : NODE_LMIN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 		__assign_str(header, header);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 		__entry->addr = tipc_node_get_addr(n);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 		tipc_node_dump(n, more, __get_str(buf));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) 	TP_printk("<%x> %s\n%s", __entry->addr, __get_str(header),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 		  __get_str(buf))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) #define DEFINE_NODE_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) DEFINE_EVENT(tipc_node_class, name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) 	TP_PROTO(struct tipc_node *n, bool more, const char *header), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) 	TP_ARGS(n, more, header))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) DEFINE_NODE_EVENT(tipc_node_dump);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) DEFINE_NODE_EVENT(tipc_node_create);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) DEFINE_NODE_EVENT(tipc_node_delete);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) DEFINE_NODE_EVENT(tipc_node_lost_contact);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) DEFINE_NODE_EVENT(tipc_node_timeout);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) DEFINE_NODE_EVENT(tipc_node_link_up);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) DEFINE_NODE_EVENT(tipc_node_link_down);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) DEFINE_NODE_EVENT(tipc_node_reset_links);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) DEFINE_NODE_EVENT(tipc_node_check_state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) DECLARE_EVENT_CLASS(tipc_fsm_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 	TP_PROTO(const char *name, u32 os, u32 ns, int evt),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 	TP_ARGS(name, os, ns, evt),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 		__string(name, name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 		__field(u32, os)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) 		__field(u32, ns)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 		__field(u32, evt)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 		__assign_str(name, name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 		__entry->os = os;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 		__entry->ns = ns;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 		__entry->evt = evt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) 	TP_printk("<%s> %s--(%s)->%s\n", __get_str(name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 		  state_sym(__entry->os), evt_sym(__entry->evt),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) 		  state_sym(__entry->ns))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) #define DEFINE_FSM_EVENT(fsm_name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) DEFINE_EVENT(tipc_fsm_class, fsm_name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 	TP_PROTO(const char *name, u32 os, u32 ns, int evt), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 	TP_ARGS(name, os, ns, evt))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) DEFINE_FSM_EVENT(tipc_link_fsm);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) DEFINE_FSM_EVENT(tipc_node_fsm);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) TRACE_EVENT(tipc_l2_device_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) 	TP_PROTO(struct net_device *dev, struct tipc_bearer *b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) 		 unsigned long evt),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) 	TP_ARGS(dev, b, evt),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) 		__string(dev_name, dev->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) 		__string(b_name, b->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) 		__field(unsigned long, evt)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) 		__field(u8, b_up)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) 		__field(u8, carrier)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) 		__field(u8, oper)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) 		__assign_str(dev_name, dev->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) 		__assign_str(b_name, b->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 		__entry->evt = evt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) 		__entry->b_up = test_bit(0, &b->up);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) 		__entry->carrier = netif_carrier_ok(dev);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 		__entry->oper = netif_oper_up(dev);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) 	TP_printk("%s on: <%s>/<%s> oper: %s carrier: %s bearer: %s\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 		  dev_evt_sym(__entry->evt), __get_str(dev_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 		  __get_str(b_name), (__entry->oper) ? "up" : "down",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) 		  (__entry->carrier) ? "ok" : "notok",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 		  (__entry->b_up) ? "up" : "down")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) #endif /* _TIPC_TRACE_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) #undef TRACE_INCLUDE_PATH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) #define TRACE_INCLUDE_PATH .
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) #undef TRACE_INCLUDE_FILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) #define TRACE_INCLUDE_FILE trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) #include <trace/define_trace.h>