Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/net/mac80211/drop.h
26288 views
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
/*
3
* mac80211 drop reason list
4
*
5
* Copyright (C) 2023-2024 Intel Corporation
6
*/
7
8
#ifndef MAC80211_DROP_H
9
#define MAC80211_DROP_H
10
#include <net/dropreason.h>
11
12
typedef unsigned int __bitwise ieee80211_rx_result;
13
14
#define MAC80211_DROP_REASONS_UNUSABLE(R) \
15
/* 0x00 == ___RX_DROP_UNUSABLE */ \
16
R(RX_DROP_U_MIC_FAIL) \
17
R(RX_DROP_U_REPLAY) \
18
R(RX_DROP_U_BAD_MMIE) \
19
R(RX_DROP_U_DUP) \
20
R(RX_DROP_U_SPURIOUS) \
21
R(RX_DROP_U_DECRYPT_FAIL) \
22
R(RX_DROP_U_NO_KEY_ID) \
23
R(RX_DROP_U_BAD_CIPHER) \
24
R(RX_DROP_U_OOM) \
25
R(RX_DROP_U_NONSEQ_PN) \
26
R(RX_DROP_U_BAD_KEY_COLOR) \
27
R(RX_DROP_U_BAD_4ADDR) \
28
R(RX_DROP_U_BAD_AMSDU) \
29
R(RX_DROP_U_BAD_AMSDU_CIPHER) \
30
R(RX_DROP_U_INVALID_8023) \
31
/* 0x10 */ \
32
R(RX_DROP_U_RUNT_ACTION) \
33
R(RX_DROP_U_UNPROT_ACTION) \
34
R(RX_DROP_U_UNPROT_DUAL) \
35
R(RX_DROP_U_UNPROT_UCAST_MGMT) \
36
R(RX_DROP_U_UNPROT_MCAST_MGMT) \
37
R(RX_DROP_U_UNPROT_BEACON) \
38
R(RX_DROP_U_UNPROT_UNICAST_PUB_ACTION) \
39
R(RX_DROP_U_UNPROT_ROBUST_ACTION) \
40
R(RX_DROP_U_ACTION_UNKNOWN_SRC) \
41
R(RX_DROP_U_REJECTED_ACTION_RESPONSE) \
42
R(RX_DROP_U_EXPECT_DEFRAG_PROT) \
43
R(RX_DROP_U_WEP_DEC_FAIL) \
44
R(RX_DROP_U_NO_IV) \
45
R(RX_DROP_U_NO_ICV) \
46
R(RX_DROP_U_AP_RX_GROUPCAST) \
47
R(RX_DROP_U_SHORT_MMIC) \
48
/* 0x20 */ \
49
R(RX_DROP_U_MMIC_FAIL) \
50
R(RX_DROP_U_SHORT_TKIP) \
51
R(RX_DROP_U_TKIP_FAIL) \
52
R(RX_DROP_U_SHORT_CCMP) \
53
R(RX_DROP_U_SHORT_CCMP_MIC) \
54
R(RX_DROP_U_SHORT_GCMP) \
55
R(RX_DROP_U_SHORT_GCMP_MIC) \
56
R(RX_DROP_U_SHORT_CMAC) \
57
R(RX_DROP_U_SHORT_CMAC256) \
58
R(RX_DROP_U_SHORT_GMAC) \
59
R(RX_DROP_U_UNEXPECTED_VLAN_4ADDR) \
60
R(RX_DROP_U_UNEXPECTED_STA_4ADDR) \
61
R(RX_DROP_U_UNEXPECTED_VLAN_MCAST) \
62
R(RX_DROP_U_NOT_PORT_CONTROL) \
63
R(RX_DROP_U_UNEXPECTED_4ADDR_FRAME) \
64
R(RX_DROP_U_BAD_BCN_KEYIDX) \
65
/* 0x30 */ \
66
R(RX_DROP_U_BAD_MGMT_KEYIDX) \
67
R(RX_DROP_U_UNKNOWN_ACTION_REJECTED) \
68
/* this line for the trailing \ - add before this */
69
70
/* having two enums allows for checking ieee80211_rx_result use with sparse */
71
enum ___mac80211_drop_reason {
72
/* if we get to the end of handlers with RX_CONTINUE this will be the reason */
73
___RX_CONTINUE = SKB_CONSUMED,
74
75
/* this never gets used as an argument to kfree_skb_reason() */
76
___RX_QUEUED = SKB_NOT_DROPPED_YET,
77
78
#define ENUM(x) ___ ## x,
79
___RX_DROP_UNUSABLE = SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE <<
80
SKB_DROP_REASON_SUBSYS_SHIFT,
81
MAC80211_DROP_REASONS_UNUSABLE(ENUM)
82
#undef ENUM
83
};
84
85
enum mac80211_drop_reason {
86
RX_CONTINUE = (__force ieee80211_rx_result)___RX_CONTINUE,
87
RX_QUEUED = (__force ieee80211_rx_result)___RX_QUEUED,
88
RX_DROP = (__force ieee80211_rx_result)___RX_DROP_UNUSABLE,
89
#define DEF(x) x = (__force ieee80211_rx_result)___ ## x,
90
MAC80211_DROP_REASONS_UNUSABLE(DEF)
91
#undef DEF
92
};
93
94
#define RX_RES_IS_UNUSABLE(result) \
95
(((__force u32)(result) & SKB_DROP_REASON_SUBSYS_MASK) == ___RX_DROP_UNUSABLE)
96
97
#endif /* MAC80211_DROP_H */
98
99