xref: /linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/fwil_types.h (revision 8be4d31cb8aaeea27bde4b7ddb26e28a89062ebf)
1 // SPDX-License-Identifier: ISC
2 /*
3  * Copyright (c) 2012 Broadcom Corporation
4  */
5 
6 #ifndef CYW_FWIL_TYPES_H_
7 #define CYW_FWIL_TYPES_H_
8 
9 #include <fwil_types.h>
10 
11 enum brcmf_event_msgs_ext_command {
12 	CYW_EVENTMSGS_NONE	= 0,
13 	CYW_EVENTMSGS_SET_BIT	= 1,
14 	CYW_EVENTMSGS_RESET_BIT	= 2,
15 	CYW_EVENTMSGS_SET_MASK	= 3,
16 };
17 
18 #define EVENTMSGS_VER 1
19 #define EVENTMSGS_EXT_STRUCT_SIZE	offsetof(struct eventmsgs_ext, mask[0])
20 
21 /**
22  * struct brcmf_eventmsgs_ext - structure used with "eventmsgs_ext" iovar.
23  *
24  * @ver: version.
25  * @command: requested operation (see &enum event_msgs_ext_command).
26  * @len: length of the @mask array.
27  * @maxgetsize: indicates maximum mask size that may be returned by firmware
28  *	upon iovar GET.
29  * @mask: array where each bit represents firmware event.
30  */
31 struct brcmf_eventmsgs_ext {
32 	u8	ver;
33 	u8	command;
34 	u8	len;
35 	u8	maxgetsize;
36 	u8	mask[] __counted_by(len);
37 };
38 
39 #define BRCMF_EXTAUTH_START		1
40 #define BRCMF_EXTAUTH_ABORT		2
41 #define BRCMF_EXTAUTH_FAIL		3
42 #define BRCMF_EXTAUTH_SUCCESS		4
43 
44 /**
45  * struct brcmf_auth_req_status_le - external auth request and status update
46  *
47  * @flags: flags for external auth status
48  * @peer_mac: peer MAC address
49  * @ssid_len: length of ssid
50  * @ssid: ssid characters
51  * @pmkid: PMKSA identifier
52  */
53 struct brcmf_auth_req_status_le {
54 	__le16 flags;
55 	u8 peer_mac[ETH_ALEN];
56 	__le32 ssid_len;
57 	u8 ssid[IEEE80211_MAX_SSID_LEN];
58 	u8 pmkid[WLAN_PMKID_LEN];
59 };
60 
61 /**
62  * struct brcmf_mf_params_le - management frame parameters for mgmt_frame iovar
63  *
64  * @version: version of the iovar
65  * @dwell_time: dwell duration in ms
66  * @len: length of frame data
67  * @frame_control: frame control
68  * @channel: channel
69  * @da: peer MAC address
70  * @bssid: BSS network identifier
71  * @packet_id: packet identifier
72  * @data: frame data
73  */
74 struct brcmf_mf_params_le {
75 	__le32 version;
76 	__le32 dwell_time;
77 	__le16 len;
78 	__le16 frame_control;
79 	__le16 channel;
80 	u8 da[ETH_ALEN];
81 	u8 bssid[ETH_ALEN];
82 	__le32 packet_id;
83 	u8 data[] __counted_by_le(len);
84 };
85 
86 #endif /* CYW_FWIL_TYPES_H_ */
87 
88