Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/dev/broadcom/brcm80211/brcmfmac/feature.h
178665 views
1
// SPDX-License-Identifier: ISC
2
/*
3
* Copyright (c) 2014 Broadcom Corporation
4
*/
5
#ifndef _BRCMF_FEATURE_H
6
#define _BRCMF_FEATURE_H
7
8
/*
9
* Features:
10
*
11
* MBSS: multiple BSSID support (eg. guest network in AP mode).
12
* MCHAN: multi-channel for concurrent P2P.
13
* PNO: preferred network offload.
14
* WOWL: Wake-On-WLAN.
15
* P2P: peer-to-peer
16
* RSDB: Real Simultaneous Dual Band
17
* TDLS: Tunneled Direct Link Setup
18
* SCAN_RANDOM_MAC: Random MAC during (net detect) scheduled scan.
19
* WOWL_ND: WOWL net detect (PNO)
20
* WOWL_GTK: (WOWL) GTK rekeying offload
21
* WOWL_ARP_ND: ARP and Neighbor Discovery offload support during WOWL.
22
* MFP: 802.11w Management Frame Protection.
23
* GSCAN: enhanced scan offload feature.
24
* FWSUP: Firmware supplicant.
25
* MONITOR: firmware can pass monitor packets to host.
26
* MONITOR_FLAG: firmware flags monitor packets.
27
* MONITOR_FMT_RADIOTAP: firmware provides monitor packets with radiotap header
28
* MONITOR_FMT_HW_RX_HDR: firmware provides monitor packets with hw/ucode header
29
* DOT11H: firmware supports 802.11h
30
* SAE: simultaneous authentication of equals
31
* FWAUTH: Firmware authenticator
32
* DUMP_OBSS: Firmware has capable to dump obss info to support ACS
33
* SCAN_V2: Version 2 scan params
34
* SAE_EXT: SAE authentication handled by user-space supplicant
35
*/
36
#define BRCMF_FEAT_LIST \
37
BRCMF_FEAT_DEF(MBSS) \
38
BRCMF_FEAT_DEF(MCHAN) \
39
BRCMF_FEAT_DEF(PNO) \
40
BRCMF_FEAT_DEF(WOWL) \
41
BRCMF_FEAT_DEF(P2P) \
42
BRCMF_FEAT_DEF(RSDB) \
43
BRCMF_FEAT_DEF(TDLS) \
44
BRCMF_FEAT_DEF(SCAN_RANDOM_MAC) \
45
BRCMF_FEAT_DEF(WOWL_ND) \
46
BRCMF_FEAT_DEF(WOWL_GTK) \
47
BRCMF_FEAT_DEF(WOWL_ARP_ND) \
48
BRCMF_FEAT_DEF(MFP) \
49
BRCMF_FEAT_DEF(GSCAN) \
50
BRCMF_FEAT_DEF(FWSUP) \
51
BRCMF_FEAT_DEF(MONITOR) \
52
BRCMF_FEAT_DEF(MONITOR_FLAG) \
53
BRCMF_FEAT_DEF(MONITOR_FMT_RADIOTAP) \
54
BRCMF_FEAT_DEF(MONITOR_FMT_HW_RX_HDR) \
55
BRCMF_FEAT_DEF(DOT11H) \
56
BRCMF_FEAT_DEF(SAE) \
57
BRCMF_FEAT_DEF(FWAUTH) \
58
BRCMF_FEAT_DEF(DUMP_OBSS) \
59
BRCMF_FEAT_DEF(SCAN_V2) \
60
BRCMF_FEAT_DEF(PMKID_V2) \
61
BRCMF_FEAT_DEF(PMKID_V3) \
62
BRCMF_FEAT_DEF(SAE_EXT)
63
64
/*
65
* Quirks:
66
*
67
* AUTO_AUTH: workaround needed for automatic authentication type.
68
* NEED_MPC: driver needs to disable MPC during scanning operation.
69
*/
70
#define BRCMF_QUIRK_LIST \
71
BRCMF_QUIRK_DEF(AUTO_AUTH) \
72
BRCMF_QUIRK_DEF(NEED_MPC)
73
74
#define BRCMF_FEAT_DEF(_f) \
75
BRCMF_FEAT_ ## _f,
76
/*
77
* expand feature list to enumeration.
78
*/
79
enum brcmf_feat_id {
80
BRCMF_FEAT_LIST
81
BRCMF_FEAT_LAST
82
};
83
#undef BRCMF_FEAT_DEF
84
85
#define BRCMF_QUIRK_DEF(_q) \
86
BRCMF_FEAT_QUIRK_ ## _q,
87
/*
88
* expand quirk list to enumeration.
89
*/
90
enum brcmf_feat_quirk {
91
BRCMF_QUIRK_LIST
92
BRCMF_FEAT_QUIRK_LAST
93
};
94
#undef BRCMF_QUIRK_DEF
95
96
/**
97
* brcmf_feat_attach() - determine features and quirks.
98
*
99
* @drvr: driver instance.
100
*/
101
void brcmf_feat_attach(struct brcmf_pub *drvr);
102
103
/**
104
* brcmf_feat_debugfs_create() - create debugfs entries.
105
*
106
* @drvr: driver instance.
107
*/
108
void brcmf_feat_debugfs_create(struct brcmf_pub *drvr);
109
110
/**
111
* brcmf_feat_is_enabled() - query feature.
112
*
113
* @ifp: interface instance.
114
* @id: feature id to check.
115
*
116
* Return: true is feature is enabled; otherwise false.
117
*/
118
bool brcmf_feat_is_enabled(struct brcmf_if *ifp, enum brcmf_feat_id id);
119
120
/**
121
* brcmf_feat_is_quirk_enabled() - query chip quirk.
122
*
123
* @ifp: interface instance.
124
* @quirk: quirk id to check.
125
*
126
* Return: true is quirk is enabled; otherwise false.
127
*/
128
bool brcmf_feat_is_quirk_enabled(struct brcmf_if *ifp,
129
enum brcmf_feat_quirk quirk);
130
131
#endif /* _BRCMF_FEATURE_H */
132
133