blob: 39cd8e1b567567efc8ad161b42a14820a3fcf224 [file] [log] [blame]
Johnny Kimc5c77ba2015-05-11 14:30:56 +09001/*!
2 * @file wilc_wfi_cfgoperations.h
3 * @brief Definitions for the network module
4 * @author syounan
5 * @sa wilc_oswrapper.h top level OS wrapper file
6 * @date 31 Aug 2010
7 * @version 1.0
8 */
9#ifndef NM_WFI_CFGOPERATIONS
10#define NM_WFI_CFGOPERATIONS
11#include "wilc_wfi_netdevice.h"
12
Johnny Kimc5c77ba2015-05-11 14:30:56 +090013/* The following macros describe the bitfield map used by the firmware to determine its 11i mode */
Chaehyun Limf57fb212015-09-15 14:06:19 +090014#define NO_ENCRYPT 0
15#define ENCRYPT_ENABLED BIT(0)
16#define WEP BIT(1)
17#define WEP_EXTENDED BIT(2)
18#define WPA BIT(3)
19#define WPA2 BIT(4)
20#define AES BIT(5)
21#define TKIP BIT(6)
Johnny Kimc5c77ba2015-05-11 14:30:56 +090022
Johnny Kimc5c77ba2015-05-11 14:30:56 +090023/*Public action frame index IDs*/
Chaehyun Lim1130fec2015-09-15 14:06:28 +090024#define FRAME_TYPE_ID 0
25#define ACTION_CAT_ID 24
26#define ACTION_SUBTYPE_ID 25
27#define P2P_PUB_ACTION_SUBTYPE 30
Johnny Kimc5c77ba2015-05-11 14:30:56 +090028
29/*Public action frame Attribute IDs*/
Chaehyun Lim1130fec2015-09-15 14:06:28 +090030#define ACTION_FRAME 0xd0
31#define GO_INTENT_ATTR_ID 0x04
32#define CHANLIST_ATTR_ID 0x0b
33#define OPERCHAN_ATTR_ID 0x11
34#define PUB_ACTION_ATTR_ID 0x04
35#define P2PELEM_ATTR_ID 0xdd
Johnny Kimc5c77ba2015-05-11 14:30:56 +090036
37/*Public action subtype values*/
Chaehyun Lim1130fec2015-09-15 14:06:28 +090038#define GO_NEG_REQ 0x00
39#define GO_NEG_RSP 0x01
40#define GO_NEG_CONF 0x02
41#define P2P_INV_REQ 0x03
42#define P2P_INV_RSP 0x04
43#define PUBLIC_ACT_VENDORSPEC 0x09
44#define GAS_INTIAL_REQ 0x0a
45#define GAS_INTIAL_RSP 0x0b
Johnny Kimc5c77ba2015-05-11 14:30:56 +090046
Chaehyun Lim1130fec2015-09-15 14:06:28 +090047#define INVALID_CHANNEL 0
Johnny Kimc5c77ba2015-05-11 14:30:56 +090048
49#define nl80211_SCAN_RESULT_EXPIRE (3 * HZ)
Chaehyun Lim1130fec2015-09-15 14:06:28 +090050#define SCAN_RESULT_EXPIRE (40 * HZ)
Johnny Kimc5c77ba2015-05-11 14:30:56 +090051
Johnny Kimc5c77ba2015-05-11 14:30:56 +090052static const u32 cipher_suites[] = {
53 WLAN_CIPHER_SUITE_WEP40,
54 WLAN_CIPHER_SUITE_WEP104,
55 WLAN_CIPHER_SUITE_TKIP,
56 WLAN_CIPHER_SUITE_CCMP,
57 WLAN_CIPHER_SUITE_AES_CMAC,
58};
Johnny Kimc5c77ba2015-05-11 14:30:56 +090059
Johnny Kimc5c77ba2015-05-11 14:30:56 +090060static const struct ieee80211_txrx_stypes
Sasha Levinadf1b352015-05-28 11:03:56 -040061 wilc_wfi_cfg80211_mgmt_types[NUM_NL80211_IFTYPES] = {
Johnny Kimc5c77ba2015-05-11 14:30:56 +090062 [NL80211_IFTYPE_STATION] = {
63 .tx = 0xffff,
64 .rx = BIT(IEEE80211_STYPE_ACTION >> 4) |
65 BIT(IEEE80211_STYPE_PROBE_REQ >> 4)
66 },
67 [NL80211_IFTYPE_AP] = {
68 .tx = 0xffff,
69 .rx = BIT(IEEE80211_STYPE_ASSOC_REQ >> 4) |
70 BIT(IEEE80211_STYPE_REASSOC_REQ >> 4) |
71 BIT(IEEE80211_STYPE_PROBE_REQ >> 4) |
72 BIT(IEEE80211_STYPE_DISASSOC >> 4) |
73 BIT(IEEE80211_STYPE_AUTH >> 4) |
74 BIT(IEEE80211_STYPE_DEAUTH >> 4) |
75 BIT(IEEE80211_STYPE_ACTION >> 4)
76 },
77 [NL80211_IFTYPE_P2P_CLIENT] = {
78 .tx = 0xffff,
79 .rx = BIT(IEEE80211_STYPE_ACTION >> 4) |
80 BIT(IEEE80211_STYPE_PROBE_REQ >> 4) |
81 BIT(IEEE80211_STYPE_ASSOC_REQ >> 4) |
82 BIT(IEEE80211_STYPE_REASSOC_REQ >> 4) |
Johnny Kimc5c77ba2015-05-11 14:30:56 +090083 BIT(IEEE80211_STYPE_DISASSOC >> 4) |
84 BIT(IEEE80211_STYPE_AUTH >> 4) |
85 BIT(IEEE80211_STYPE_DEAUTH >> 4)
86 }
87};
Arnd Bergmanne5af0562015-05-29 22:52:12 +020088
Johnny Kimc5c77ba2015-05-11 14:30:56 +090089/* Time to stay on the channel */
90#define WILC_WFI_DWELL_PASSIVE 100
91#define WILC_WFI_DWELL_ACTIVE 40
92
93struct wireless_dev *WILC_WFI_CfgAlloc(void);
Chaehyun Lim8459fd52015-09-20 15:51:09 +090094struct wireless_dev *wilc_create_wiphy(struct net_device *net);
Chaehyun Lim96da20a2015-09-20 15:51:08 +090095void wilc_free_wiphy(struct net_device *net);
Johnny Kimc5c77ba2015-05-11 14:30:56 +090096int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed);
Chaehyun Lima9a16822015-09-20 15:51:24 +090097int wilc_deinit_host_int(struct net_device *net);
Chaehyun Limdd4b6a82015-09-20 15:51:25 +090098int wilc_init_host_int(struct net_device *net);
Chaehyun Limfbc2fe12015-09-15 14:06:16 +090099void WILC_WFI_monitor_rx(u8 *buff, u32 size);
Johnny Kimc5c77ba2015-05-11 14:30:56 +0900100int WILC_WFI_deinit_mon_interface(void);
Arnd Bergmann057d1e92015-06-01 21:06:44 +0200101struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_device *real_dev);
Chaehyun Lim8e0735c2015-09-20 15:51:16 +0900102void wilc_mgmt_frame_register(struct wiphy *wiphy, struct wireless_dev *wdev,
103 u16 frame_type, bool reg);
Johnny Kimc5c77ba2015-05-11 14:30:56 +0900104
Chaehyun Lim1130fec2015-09-15 14:06:28 +0900105#define TCP_ACK_FILTER_LINK_SPEED_THRESH 54
106#define DEFAULT_LINK_SPEED 72
Joe Perchesb3ff2912015-08-10 14:51:33 -0700107void Enable_TCP_ACK_Filter(bool value);
Johnny Kimc5c77ba2015-05-11 14:30:56 +0900108
109#endif