| 1 |
|
| 2 | |
| 3 | * mac80211 drop reason list
|
| 4 | *
|
| 5 | * Copyright (C) 2023-2024, 2026 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 | \
|
| 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 | \
|
| 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 | \
|
| 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 | \
|
| 66 | R(RX_DROP_U_BAD_MGMT_KEYIDX) \
|
| 67 | R(RX_DROP_U_UNKNOWN_ACTION_REJECTED) \
|
| 68 | R(RX_DROP_U_MESH_DS_BITS) \
|
| 69 | R(RX_DROP_U_MESH_A3_MISMATCH) \
|
| 70 | R(RX_DROP_U_MESH_NO_A4) \
|
| 71 | R(RX_DROP_U_MESH_A4_MISMATCH) \
|
| 72 | R(RX_DROP_U_MESH_UNEXP_DATA) \
|
| 73 | R(RX_DROP_U_MESH_WRONG_ACTION) \
|
| 74 | R(RX_DROP_U_MESH_UNEXP_MGMT) \
|
| 75 | R(RX_DROP_U_SPURIOUS_NOTIF) \
|
| 76 | R(RX_DROP_U_RUNT_DATA) \
|
| 77 | R(RX_DROP_U_KEY_TAINTED) \
|
| 78 | R(RX_DROP_U_UNPROTECTED) \
|
| 79 | R(RX_DROP_U_MCAST_FRAGMENT) \
|
| 80 | R(RX_DROP_U_DEFRAG_MISMATCH) \
|
| 81 | R(RX_DROP_U_RUNT_MESH_DATA) \
|
| 82 | \
|
| 83 | R(RX_DROP_U_MESH_NO_TTL) \
|
| 84 | R(RX_DROP_U_MESH_RMC) \
|
| 85 | R(RX_DROP_U_MESH_BAD_AE) \
|
| 86 | R(RX_DROP_U_MESH_TTL_EXPIRED) \
|
| 87 | R(RX_DROP_U_MESH_NOT_FORWARDING) \
|
| 88 | R(RX_DROP_U_AMSDU_WITHOUT_DATA) \
|
| 89 | R(RX_DROP_U_NULL_DATA) \
|
| 90 | R(RX_DROP_U_UNEXPECTED_4ADDR) \
|
| 91 | R(RX_DROP_U_PORT_CONTROL) \
|
| 92 | R(RX_DROP_U_UNKNOWN_STA) \
|
| 93 | R(RX_DROP_U_RUNT_BAR) \
|
| 94 | R(RX_DROP_U_BAR_OUTSIDE_SESSION) \
|
| 95 | R(RX_DROP_U_CTRL_FRAME) \
|
| 96 | R(RX_DROP_U_RUNT_MGMT) \
|
| 97 | R(RX_DROP_U_EXPECTED_MGMT) \
|
| 98 | R(RX_DROP_U_NONBCAST_BEACON) \
|
| 99 | \
|
| 100 | R(RX_DROP_U_MALFORMED_ACTION) \
|
| 101 | R(RX_DROP_U_UNKNOWN_MCAST_ACTION) \
|
| 102 | R(RX_DROP_U_UNEXPECTED_EXT_FRAME) \
|
| 103 | R(RX_DROP_U_UNHANDLED_MGMT) \
|
| 104 | R(RX_DROP_U_MCAST_DEAUTH) \
|
| 105 | R(RX_DROP_U_UNHANDLED_DEAUTH) \
|
| 106 | R(RX_DROP_U_MCAST_DISASSOC) \
|
| 107 | R(RX_DROP_U_UNHANDLED_DISASSOC) \
|
| 108 | R(RX_DROP_U_UNHANDLED_PREQ) \
|
| 109 | R(RX_DROP_U_UNHANDLED_MGMT_STYPE) \
|
| 110 | R(RX_DROP_U_NO_LINK) \
|
| 111 | R(RX_DROP_U_DEFRAG_OVERFLOW) \
|
| 112 |
|
| 113 |
|
| 114 |
|
| 115 | enum ___mac80211_drop_reason {
|
| 116 |
|
| 117 | ___RX_CONTINUE = SKB_CONSUMED,
|
| 118 |
|
| 119 |
|
| 120 | ___RX_QUEUED = SKB_NOT_DROPPED_YET,
|
| 121 |
|
| 122 | #define ENUM(x) ___ ## x,
|
| 123 | ___RX_DROP_UNUSABLE = SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE <<
|
| 124 | SKB_DROP_REASON_SUBSYS_SHIFT,
|
| 125 | MAC80211_DROP_REASONS_UNUSABLE(ENUM)
|
| 126 | #undef ENUM
|
| 127 | };
|
| 128 |
|
| 129 | enum mac80211_drop_reason {
|
| 130 | RX_CONTINUE = (__force ieee80211_rx_result)___RX_CONTINUE,
|
| 131 | RX_QUEUED = (__force ieee80211_rx_result)___RX_QUEUED,
|
| 132 | #define DEF(x) x = (__force ieee80211_rx_result)___ ## x,
|
| 133 | MAC80211_DROP_REASONS_UNUSABLE(DEF)
|
| 134 | #undef DEF
|
| 135 | };
|
| 136 |
|
| 137 | #define RX_RES_IS_UNUSABLE(result) \
|
| 138 | (((__force u32)(result) & SKB_DROP_REASON_SUBSYS_MASK) == ___RX_DROP_UNUSABLE)
|
| 139 |
|
| 140 | #endif
|