summaryrefslogtreecommitdiffstats
path: root/include/net/drop_monitor.h
blob: 3f5b6ddb3179c16afa2874789dc90592c2916adf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef _NET_DROP_MONITOR_H_
#define _NET_DROP_MONITOR_H_

#include <linux/ktime.h>
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <net/flow_offload.h>

/**
 * struct net_dm_hw_metadata - Hardware-supplied packet metadata.
 * @trap_group_name: Hardware trap group name.
 * @trap_name: Hardware trap name.
 * @input_dev: Input netdevice.
 * @fa_cookie: Flow action user cookie.
 */
struct net_dm_hw_metadata {
	const char *trap_group_name;
	const char *trap_name;
	struct net_device *input_dev;
	const struct flow_action_cookie *fa_cookie;
};

#if IS_REACHABLE(CONFIG_NET_DROP_MONITOR)
void net_dm_hw_report(struct sk_buff *skb,
		      const struct net_dm_hw_metadata *hw_metadata);
#else
static inline void
net_dm_hw_report(struct sk_buff *skb,
		 const struct net_dm_hw_metadata *hw_metadata)
{
}
#endif

#endif /* _NET_DROP_MONITOR_H_ */