Path: blob/main/sys/contrib/dev/broadcom/brcm80211/brcmfmac/feature.h
178665 views
// SPDX-License-Identifier: ISC1/*2* Copyright (c) 2014 Broadcom Corporation3*/4#ifndef _BRCMF_FEATURE_H5#define _BRCMF_FEATURE_H67/*8* Features:9*10* MBSS: multiple BSSID support (eg. guest network in AP mode).11* MCHAN: multi-channel for concurrent P2P.12* PNO: preferred network offload.13* WOWL: Wake-On-WLAN.14* P2P: peer-to-peer15* RSDB: Real Simultaneous Dual Band16* TDLS: Tunneled Direct Link Setup17* SCAN_RANDOM_MAC: Random MAC during (net detect) scheduled scan.18* WOWL_ND: WOWL net detect (PNO)19* WOWL_GTK: (WOWL) GTK rekeying offload20* WOWL_ARP_ND: ARP and Neighbor Discovery offload support during WOWL.21* MFP: 802.11w Management Frame Protection.22* GSCAN: enhanced scan offload feature.23* FWSUP: Firmware supplicant.24* MONITOR: firmware can pass monitor packets to host.25* MONITOR_FLAG: firmware flags monitor packets.26* MONITOR_FMT_RADIOTAP: firmware provides monitor packets with radiotap header27* MONITOR_FMT_HW_RX_HDR: firmware provides monitor packets with hw/ucode header28* DOT11H: firmware supports 802.11h29* SAE: simultaneous authentication of equals30* FWAUTH: Firmware authenticator31* DUMP_OBSS: Firmware has capable to dump obss info to support ACS32* SCAN_V2: Version 2 scan params33* SAE_EXT: SAE authentication handled by user-space supplicant34*/35#define BRCMF_FEAT_LIST \36BRCMF_FEAT_DEF(MBSS) \37BRCMF_FEAT_DEF(MCHAN) \38BRCMF_FEAT_DEF(PNO) \39BRCMF_FEAT_DEF(WOWL) \40BRCMF_FEAT_DEF(P2P) \41BRCMF_FEAT_DEF(RSDB) \42BRCMF_FEAT_DEF(TDLS) \43BRCMF_FEAT_DEF(SCAN_RANDOM_MAC) \44BRCMF_FEAT_DEF(WOWL_ND) \45BRCMF_FEAT_DEF(WOWL_GTK) \46BRCMF_FEAT_DEF(WOWL_ARP_ND) \47BRCMF_FEAT_DEF(MFP) \48BRCMF_FEAT_DEF(GSCAN) \49BRCMF_FEAT_DEF(FWSUP) \50BRCMF_FEAT_DEF(MONITOR) \51BRCMF_FEAT_DEF(MONITOR_FLAG) \52BRCMF_FEAT_DEF(MONITOR_FMT_RADIOTAP) \53BRCMF_FEAT_DEF(MONITOR_FMT_HW_RX_HDR) \54BRCMF_FEAT_DEF(DOT11H) \55BRCMF_FEAT_DEF(SAE) \56BRCMF_FEAT_DEF(FWAUTH) \57BRCMF_FEAT_DEF(DUMP_OBSS) \58BRCMF_FEAT_DEF(SCAN_V2) \59BRCMF_FEAT_DEF(PMKID_V2) \60BRCMF_FEAT_DEF(PMKID_V3) \61BRCMF_FEAT_DEF(SAE_EXT)6263/*64* Quirks:65*66* AUTO_AUTH: workaround needed for automatic authentication type.67* NEED_MPC: driver needs to disable MPC during scanning operation.68*/69#define BRCMF_QUIRK_LIST \70BRCMF_QUIRK_DEF(AUTO_AUTH) \71BRCMF_QUIRK_DEF(NEED_MPC)7273#define BRCMF_FEAT_DEF(_f) \74BRCMF_FEAT_ ## _f,75/*76* expand feature list to enumeration.77*/78enum brcmf_feat_id {79BRCMF_FEAT_LIST80BRCMF_FEAT_LAST81};82#undef BRCMF_FEAT_DEF8384#define BRCMF_QUIRK_DEF(_q) \85BRCMF_FEAT_QUIRK_ ## _q,86/*87* expand quirk list to enumeration.88*/89enum brcmf_feat_quirk {90BRCMF_QUIRK_LIST91BRCMF_FEAT_QUIRK_LAST92};93#undef BRCMF_QUIRK_DEF9495/**96* brcmf_feat_attach() - determine features and quirks.97*98* @drvr: driver instance.99*/100void brcmf_feat_attach(struct brcmf_pub *drvr);101102/**103* brcmf_feat_debugfs_create() - create debugfs entries.104*105* @drvr: driver instance.106*/107void brcmf_feat_debugfs_create(struct brcmf_pub *drvr);108109/**110* brcmf_feat_is_enabled() - query feature.111*112* @ifp: interface instance.113* @id: feature id to check.114*115* Return: true is feature is enabled; otherwise false.116*/117bool brcmf_feat_is_enabled(struct brcmf_if *ifp, enum brcmf_feat_id id);118119/**120* brcmf_feat_is_quirk_enabled() - query chip quirk.121*122* @ifp: interface instance.123* @quirk: quirk id to check.124*125* Return: true is quirk is enabled; otherwise false.126*/127bool brcmf_feat_is_quirk_enabled(struct brcmf_if *ifp,128enum brcmf_feat_quirk quirk);129130#endif /* _BRCMF_FEATURE_H */131132133