1/* SPDX-License-Identifier: GPL-2.0 */ 2#undef TRACE_SYSTEM 3#define TRACE_SYSTEM skb 4 5#if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) 6#define _TRACE_SKB_H 7 8#include <linux/skbuff.h> 9#include <linux/netdevice.h> 10#include <linux/tracepoint.h> 11 12/* 13 * Tracepoint for free an sk_buff: 14 */ 15TRACE_EVENT(kfree_skb, 16 17 TP_PROTO(struct sk_buff *skb, void *location), 18 19 TP_ARGS(skb, location), 20 21 TP_STRUCT__entry( 22 __field( void *, skbaddr ) 23 __field( void *, location ) 24 __field( unsigned short, protocol ) 25 ), 26 27 TP_fast_assign( 28 __entry->skbaddr = skb; 29 __entry->location = location; 30 __entry->protocol = ntohs(skb->protocol); 31 ), 32 33 TP_printk("skbaddr=%p protocol=%u location=%p", 34 __entry->skbaddr, __entry->protocol, __entry->location) 35); 36 37TRACE_EVENT(consume_skb, 38 39 TP_PROTO(struct sk_buff *skb), 40 41 TP_ARGS(skb), 42 43 TP_STRUCT__entry( 44 __field( void *, skbaddr ) 45 ), 46 47 TP_fast_assign( 48 __entry->skbaddr = skb; 49 ), 50 51 TP_printk("skbaddr=%p", __entry->skbaddr) 52); 53 54TRACE_EVENT(skb_copy_datagram_iovec, 55 56 TP_PROTO(const struct sk_buff *skb, int len), 57 58 TP_ARGS(skb, len), 59 60 TP_STRUCT__entry( 61 __field( const void *, skbaddr ) 62 __field( int, len ) 63 ), 64 65 TP_fast_assign( 66 __entry->skbaddr = skb; 67 __entry->len = len; 68 ), 69 70 TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len) 71); 72 73#endif /* _TRACE_SKB_H */ 74 75/* This part must be outside protection */ 76#include <trace/define_trace.h> 77