1/* 2 * Copyright (c) 2012 Broadcom Corporation 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 18#ifndef FWIL_TYPES_H_ 19#define FWIL_TYPES_H_ 20 21#include <linux/if_ether.h> 22 23 24#define BRCMF_FIL_ACTION_FRAME_SIZE 1800 25 26/* ARP Offload feature flags for arp_ol iovar */ 27#define BRCMF_ARP_OL_AGENT 0x00000001 28#define BRCMF_ARP_OL_SNOOP 0x00000002 29#define BRCMF_ARP_OL_HOST_AUTO_REPLY 0x00000004 30#define BRCMF_ARP_OL_PEER_AUTO_REPLY 0x00000008 31 32 33enum brcmf_fil_p2p_if_types { 34 BRCMF_FIL_P2P_IF_CLIENT, 35 BRCMF_FIL_P2P_IF_GO, 36 BRCMF_FIL_P2P_IF_DYNBCN_GO, 37 BRCMF_FIL_P2P_IF_DEV, 38}; 39 40struct brcmf_fil_p2p_if_le { 41 u8 addr[ETH_ALEN]; 42 __le16 type; 43 __le16 chspec; 44}; 45 46struct brcmf_fil_chan_info_le { 47 __le32 hw_channel; 48 __le32 target_channel; 49 __le32 scan_channel; 50}; 51 52struct brcmf_fil_action_frame_le { 53 u8 da[ETH_ALEN]; 54 __le16 len; 55 __le32 packet_id; 56 u8 data[BRCMF_FIL_ACTION_FRAME_SIZE]; 57}; 58 59struct brcmf_fil_af_params_le { 60 __le32 channel; 61 __le32 dwell_time; 62 u8 bssid[ETH_ALEN]; 63 u8 pad[2]; 64 struct brcmf_fil_action_frame_le action_frame; 65}; 66 67struct brcmf_fil_bss_enable_le { 68 __le32 bsscfg_idx; 69 __le32 enable; 70}; 71 72/** 73 * struct tdls_iovar - common structure for tdls iovars. 74 * 75 * @ea: ether address of peer station. 76 * @mode: mode value depending on specific tdls iovar. 77 * @chanspec: channel specification. 78 * @pad: unused (for future use). 79 */ 80struct brcmf_tdls_iovar_le { 81 u8 ea[ETH_ALEN]; /* Station address */ 82 u8 mode; /* mode: depends on iovar */ 83 __le16 chanspec; 84 __le32 pad; /* future */ 85}; 86 87enum brcmf_tdls_manual_ep_ops { 88 BRCMF_TDLS_MANUAL_EP_CREATE = 1, 89 BRCMF_TDLS_MANUAL_EP_DELETE = 3, 90 BRCMF_TDLS_MANUAL_EP_DISCOVERY = 6 91}; 92 93#endif /* FWIL_TYPES_H_ */ 94