Commit | Line | Data |
---|---|---|
071c0fc6 JB |
1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | ||
3 | #ifndef _LINUX_DROPREASON_H | |
4 | #define _LINUX_DROPREASON_H | |
5 | #include <net/dropreason-core.h> | |
6 | ||
7 | /** | |
8 | * enum skb_drop_reason_subsys - subsystem tag for (extended) drop reasons | |
9 | */ | |
10 | enum skb_drop_reason_subsys { | |
11 | /** @SKB_DROP_REASON_SUBSYS_CORE: core drop reasons defined above */ | |
12 | SKB_DROP_REASON_SUBSYS_CORE, | |
13 | ||
baa951a1 JB |
14 | /** |
15 | * @SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE: mac80211 drop reasons | |
16 | * for unusable frames, see net/mac80211/drop.h | |
17 | */ | |
18 | SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE, | |
19 | ||
20 | /** | |
21 | * @SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR: mac80211 drop reasons | |
22 | * for frames still going to monitor, see net/mac80211/drop.h | |
23 | */ | |
24 | SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR, | |
25 | ||
071c0fc6 JB |
26 | /** @SKB_DROP_REASON_SUBSYS_NUM: number of subsystems defined */ |
27 | SKB_DROP_REASON_SUBSYS_NUM | |
28 | }; | |
29 | ||
30 | struct drop_reason_list { | |
31 | const char * const *reasons; | |
32 | size_t n_reasons; | |
33 | }; | |
34 | ||
35 | /* Note: due to dynamic registrations, access must be under RCU */ | |
36 | extern const struct drop_reason_list __rcu * | |
37 | drop_reasons_by_subsys[SKB_DROP_REASON_SUBSYS_NUM]; | |
38 | ||
39 | void drop_reasons_register_subsys(enum skb_drop_reason_subsys subsys, | |
40 | const struct drop_reason_list *list); | |
41 | void drop_reasons_unregister_subsys(enum skb_drop_reason_subsys subsys); | |
42 | ||
43 | #endif |