brintos

brintos / linux-shallow public Read only

0
0
Text · 7.7 KiB · d55162c Raw
320 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#undef TRACE_SYSTEM3#define TRACE_SYSTEM net4 5#if !defined(_TRACE_NET_H) || defined(TRACE_HEADER_MULTI_READ)6#define _TRACE_NET_H7 8#include <linux/skbuff.h>9#include <linux/netdevice.h>10#include <linux/if_vlan.h>11#include <linux/ip.h>12#include <linux/tracepoint.h>13 14TRACE_EVENT(net_dev_start_xmit,15 16	TP_PROTO(const struct sk_buff *skb, const struct net_device *dev),17 18	TP_ARGS(skb, dev),19 20	TP_STRUCT__entry(21		__string(	name,			dev->name	)22		__field(	u16,			queue_mapping	)23		__field(	const void *,		skbaddr		)24		__field(	bool,			vlan_tagged	)25		__field(	u16,			vlan_proto	)26		__field(	u16,			vlan_tci	)27		__field(	u16,			protocol	)28		__field(	u8,			ip_summed	)29		__field(	unsigned int,		len		)30		__field(	unsigned int,		data_len	)31		__field(	int,			network_offset	)32		__field(	bool,			transport_offset_valid)33		__field(	int,			transport_offset)34		__field(	u8,			tx_flags	)35		__field(	u16,			gso_size	)36		__field(	u16,			gso_segs	)37		__field(	u16,			gso_type	)38	),39 40	TP_fast_assign(41		__assign_str(name);42		__entry->queue_mapping = skb->queue_mapping;43		__entry->skbaddr = skb;44		__entry->vlan_tagged = skb_vlan_tag_present(skb);45		__entry->vlan_proto = ntohs(skb->vlan_proto);46		__entry->vlan_tci = skb_vlan_tag_get(skb);47		__entry->protocol = ntohs(skb->protocol);48		__entry->ip_summed = skb->ip_summed;49		__entry->len = skb->len;50		__entry->data_len = skb->data_len;51		__entry->network_offset = skb_network_offset(skb);52		__entry->transport_offset_valid =53			skb_transport_header_was_set(skb);54		__entry->transport_offset = skb_transport_header_was_set(skb) ?55			skb_transport_offset(skb) : 0;56		__entry->tx_flags = skb_shinfo(skb)->tx_flags;57		__entry->gso_size = skb_shinfo(skb)->gso_size;58		__entry->gso_segs = skb_shinfo(skb)->gso_segs;59		__entry->gso_type = skb_shinfo(skb)->gso_type;60	),61 62	TP_printk("dev=%s queue_mapping=%u skbaddr=%p vlan_tagged=%d vlan_proto=0x%04x vlan_tci=0x%04x protocol=0x%04x ip_summed=%d len=%u data_len=%u network_offset=%d transport_offset_valid=%d transport_offset=%d tx_flags=%d gso_size=%d gso_segs=%d gso_type=%#x",63		  __get_str(name), __entry->queue_mapping, __entry->skbaddr,64		  __entry->vlan_tagged, __entry->vlan_proto, __entry->vlan_tci,65		  __entry->protocol, __entry->ip_summed, __entry->len,66		  __entry->data_len,67		  __entry->network_offset, __entry->transport_offset_valid,68		  __entry->transport_offset, __entry->tx_flags,69		  __entry->gso_size, __entry->gso_segs, __entry->gso_type)70);71 72TRACE_EVENT(net_dev_xmit,73 74	TP_PROTO(struct sk_buff *skb,75		 int rc,76		 struct net_device *dev,77		 unsigned int skb_len),78 79	TP_ARGS(skb, rc, dev, skb_len),80 81	TP_STRUCT__entry(82		__field(	void *,		skbaddr		)83		__field(	unsigned int,	len		)84		__field(	int,		rc		)85		__string(	name,		dev->name	)86	),87 88	TP_fast_assign(89		__entry->skbaddr = skb;90		__entry->len = skb_len;91		__entry->rc = rc;92		__assign_str(name);93	),94 95	TP_printk("dev=%s skbaddr=%p len=%u rc=%d",96		__get_str(name), __entry->skbaddr, __entry->len, __entry->rc)97);98 99TRACE_EVENT(net_dev_xmit_timeout,100 101	TP_PROTO(struct net_device *dev,102		 int queue_index),103 104	TP_ARGS(dev, queue_index),105 106	TP_STRUCT__entry(107		__string(	name,		dev->name	)108		__string(	driver,		netdev_drivername(dev))109		__field(	int,		queue_index	)110	),111 112	TP_fast_assign(113		__assign_str(name);114		__assign_str(driver);115		__entry->queue_index = queue_index;116	),117 118	TP_printk("dev=%s driver=%s queue=%d",119		__get_str(name), __get_str(driver), __entry->queue_index)120);121 122DECLARE_EVENT_CLASS(net_dev_template,123 124	TP_PROTO(struct sk_buff *skb),125 126	TP_ARGS(skb),127 128	TP_STRUCT__entry(129		__field(	void *,		skbaddr		)130		__field(	unsigned int,	len		)131		__string(	name,		skb->dev->name	)132	),133 134	TP_fast_assign(135		__entry->skbaddr = skb;136		__entry->len = skb->len;137		__assign_str(name);138	),139 140	TP_printk("dev=%s skbaddr=%p len=%u",141		__get_str(name), __entry->skbaddr, __entry->len)142)143 144DEFINE_EVENT(net_dev_template, net_dev_queue,145 146	TP_PROTO(struct sk_buff *skb),147 148	TP_ARGS(skb)149);150 151DEFINE_EVENT(net_dev_template, netif_receive_skb,152 153	TP_PROTO(struct sk_buff *skb),154 155	TP_ARGS(skb)156);157 158DEFINE_EVENT(net_dev_template, netif_rx,159 160	TP_PROTO(struct sk_buff *skb),161 162	TP_ARGS(skb)163);164 165DECLARE_EVENT_CLASS(net_dev_rx_verbose_template,166 167	TP_PROTO(const struct sk_buff *skb),168 169	TP_ARGS(skb),170 171	TP_STRUCT__entry(172		__string(	name,			skb->dev->name	)173		__field(	unsigned int,		napi_id		)174		__field(	u16,			queue_mapping	)175		__field(	const void *,		skbaddr		)176		__field(	bool,			vlan_tagged	)177		__field(	u16,			vlan_proto	)178		__field(	u16,			vlan_tci	)179		__field(	u16,			protocol	)180		__field(	u8,			ip_summed	)181		__field(	u32,			hash		)182		__field(	bool,			l4_hash		)183		__field(	unsigned int,		len		)184		__field(	unsigned int,		data_len	)185		__field(	unsigned int,		truesize	)186		__field(	bool,			mac_header_valid)187		__field(	int,			mac_header	)188		__field(	unsigned char,		nr_frags	)189		__field(	u16,			gso_size	)190		__field(	u16,			gso_type	)191	),192 193	TP_fast_assign(194		__assign_str(name);195#ifdef CONFIG_NET_RX_BUSY_POLL196		__entry->napi_id = skb->napi_id;197#else198		__entry->napi_id = 0;199#endif200		__entry->queue_mapping = skb->queue_mapping;201		__entry->skbaddr = skb;202		__entry->vlan_tagged = skb_vlan_tag_present(skb);203		__entry->vlan_proto = ntohs(skb->vlan_proto);204		__entry->vlan_tci = skb_vlan_tag_get(skb);205		__entry->protocol = ntohs(skb->protocol);206		__entry->ip_summed = skb->ip_summed;207		__entry->hash = skb->hash;208		__entry->l4_hash = skb->l4_hash;209		__entry->len = skb->len;210		__entry->data_len = skb->data_len;211		__entry->truesize = skb->truesize;212		__entry->mac_header_valid = skb_mac_header_was_set(skb);213		__entry->mac_header = skb_mac_header(skb) - skb->data;214		__entry->nr_frags = skb_shinfo(skb)->nr_frags;215		__entry->gso_size = skb_shinfo(skb)->gso_size;216		__entry->gso_type = skb_shinfo(skb)->gso_type;217	),218 219	TP_printk("dev=%s napi_id=%#x queue_mapping=%u skbaddr=%p vlan_tagged=%d vlan_proto=0x%04x vlan_tci=0x%04x protocol=0x%04x ip_summed=%d hash=0x%08x l4_hash=%d len=%u data_len=%u truesize=%u mac_header_valid=%d mac_header=%d nr_frags=%d gso_size=%d gso_type=%#x",220		  __get_str(name), __entry->napi_id, __entry->queue_mapping,221		  __entry->skbaddr, __entry->vlan_tagged, __entry->vlan_proto,222		  __entry->vlan_tci, __entry->protocol, __entry->ip_summed,223		  __entry->hash, __entry->l4_hash, __entry->len,224		  __entry->data_len, __entry->truesize,225		  __entry->mac_header_valid, __entry->mac_header,226		  __entry->nr_frags, __entry->gso_size, __entry->gso_type)227);228 229DEFINE_EVENT(net_dev_rx_verbose_template, napi_gro_frags_entry,230 231	TP_PROTO(const struct sk_buff *skb),232 233	TP_ARGS(skb)234);235 236DEFINE_EVENT(net_dev_rx_verbose_template, napi_gro_receive_entry,237 238	TP_PROTO(const struct sk_buff *skb),239 240	TP_ARGS(skb)241);242 243DEFINE_EVENT(net_dev_rx_verbose_template, netif_receive_skb_entry,244 245	TP_PROTO(const struct sk_buff *skb),246 247	TP_ARGS(skb)248);249 250DEFINE_EVENT(net_dev_rx_verbose_template, netif_receive_skb_list_entry,251 252	TP_PROTO(const struct sk_buff *skb),253 254	TP_ARGS(skb)255);256 257DEFINE_EVENT(net_dev_rx_verbose_template, netif_rx_entry,258 259	TP_PROTO(const struct sk_buff *skb),260 261	TP_ARGS(skb)262);263 264DECLARE_EVENT_CLASS(net_dev_rx_exit_template,265 266	TP_PROTO(int ret),267 268	TP_ARGS(ret),269 270	TP_STRUCT__entry(271		__field(int,	ret)272	),273 274	TP_fast_assign(275		__entry->ret = ret;276	),277 278	TP_printk("ret=%d", __entry->ret)279);280 281DEFINE_EVENT(net_dev_rx_exit_template, napi_gro_frags_exit,282 283	TP_PROTO(int ret),284 285	TP_ARGS(ret)286);287 288DEFINE_EVENT(net_dev_rx_exit_template, napi_gro_receive_exit,289 290	TP_PROTO(int ret),291 292	TP_ARGS(ret)293);294 295DEFINE_EVENT(net_dev_rx_exit_template, netif_receive_skb_exit,296 297	TP_PROTO(int ret),298 299	TP_ARGS(ret)300);301 302DEFINE_EVENT(net_dev_rx_exit_template, netif_rx_exit,303 304	TP_PROTO(int ret),305 306	TP_ARGS(ret)307);308 309DEFINE_EVENT(net_dev_rx_exit_template, netif_receive_skb_list_exit,310 311	TP_PROTO(int ret),312 313	TP_ARGS(ret)314);315 316#endif /* _TRACE_NET_H */317 318/* This part must be outside protection */319#include <trace/define_trace.h>320