aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h
blob: c25350cb58c8e2a6331c8e1a4831c451fe127eb8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*!
 *  @file	wilc_wfi_cfgoperations.h
 *  @brief	Definitions for the network module
 *  @author	syounan
 *  @sa		wilc_oswrapper.h top level OS wrapper file
 *  @date	31 Aug 2010
 *  @version	1.0
 */
#ifndef NM_WFI_CFGOPERATIONS
#define NM_WFI_CFGOPERATIONS
#include "wilc_wfi_netdevice.h"

#ifdef WILC_FULLY_HOSTING_AP
#include "wilc_host_ap.h"
#endif


/* The following macros describe the bitfield map used by the firmware to determine its 11i mode */
#define NO_ENCRYPT			0
#define ENCRYPT_ENABLED	(1 << 0)
#define WEP					(1 << 1)
#define WEP_EXTENDED		(1 << 2)
#define WPA					(1 << 3)
#define WPA2				(1 << 4)
#define AES					(1 << 5)
#define TKIP					(1 << 6)

#ifdef WILC_P2P
/* #define	USE_SUPPLICANT_GO_INTENT */

/*Public action frame index IDs*/
#define		FRAME_TYPE_ID					0
#define		ACTION_CAT_ID					24
#define		ACTION_SUBTYPE_ID				25
#define		P2P_PUB_ACTION_SUBTYPE          30

/*Public action frame Attribute IDs*/
#define		ACTION_FRAME					0xd0
#define		GO_INTENT_ATTR_ID			0x04
#define		CHANLIST_ATTR_ID		0x0b
#define		OPERCHAN_ATTR_ID                0x11
#ifdef	USE_SUPPLICANT_GO_INTENT
#define	GROUP_BSSID_ATTR_ID			0x07
#endif
#define		PUB_ACTION_ATTR_ID			0x04
#define		P2PELEM_ATTR_ID                     0xdd

/*Public action subtype values*/
#define		GO_NEG_REQ					0x00
#define		GO_NEG_RSP					0x01
#define		GO_NEG_CONF					0x02
#define		P2P_INV_REQ                         0x03
#define		P2P_INV_RSP				0x04
#define		PUBLIC_ACT_VENDORSPEC		0x09
#define		GAS_INTIAL_REQ					0x0a
#define		GAS_INTIAL_RSP					0x0b

#define		INVALID_CHANNEL					0
#ifdef	USE_SUPPLICANT_GO_INTENT
#define		SUPPLICANT_GO_INTENT			6
#define		GET_GO_INTENT(a)				(((a) >> 1) & 0x0f)
#define		GET_TIE_BREAKER(a)			(((a)) & 0x01)
#else
/* #define FORCE_P2P_CLIENT */
#endif
#endif

#define nl80211_SCAN_RESULT_EXPIRE	(3 * HZ)
#define SCAN_RESULT_EXPIRE				(40 * HZ)

static const u32 cipher_suites[] = {
	WLAN_CIPHER_SUITE_WEP40,
	WLAN_CIPHER_SUITE_WEP104,
	WLAN_CIPHER_SUITE_TKIP,
	WLAN_CIPHER_SUITE_CCMP,
	WLAN_CIPHER_SUITE_AES_CMAC,
};

static const struct ieee80211_txrx_stypes
	wilc_wfi_cfg80211_mgmt_types[NUM_NL80211_IFTYPES] = {
	[NL80211_IFTYPE_STATION] = {
		.tx = 0xffff,
		.rx = BIT(IEEE80211_STYPE_ACTION >> 4) |
			BIT(IEEE80211_STYPE_PROBE_REQ >> 4)
	},
	[NL80211_IFTYPE_AP] = {
		.tx = 0xffff,
		.rx = BIT(IEEE80211_STYPE_ASSOC_REQ >> 4) |
			BIT(IEEE80211_STYPE_REASSOC_REQ >> 4) |
			BIT(IEEE80211_STYPE_PROBE_REQ >> 4) |
			BIT(IEEE80211_STYPE_DISASSOC >> 4) |
			BIT(IEEE80211_STYPE_AUTH >> 4) |
			BIT(IEEE80211_STYPE_DEAUTH >> 4) |
			BIT(IEEE80211_STYPE_ACTION >> 4)
	},
	[NL80211_IFTYPE_P2P_CLIENT] = {
		.tx = 0xffff,
		.rx = BIT(IEEE80211_STYPE_ACTION >> 4) |
			BIT(IEEE80211_STYPE_PROBE_REQ >> 4) |
			BIT(IEEE80211_STYPE_ASSOC_REQ >> 4) |
			BIT(IEEE80211_STYPE_REASSOC_REQ >> 4) |
			BIT(IEEE80211_STYPE_PROBE_REQ >> 4) |
			BIT(IEEE80211_STYPE_DISASSOC >> 4) |
			BIT(IEEE80211_STYPE_AUTH >> 4) |
			BIT(IEEE80211_STYPE_DEAUTH >> 4)
	}
};

/* Time to stay on the channel */
#define WILC_WFI_DWELL_PASSIVE 100
#define WILC_WFI_DWELL_ACTIVE  40

struct wireless_dev *WILC_WFI_CfgAlloc(void);
struct wireless_dev *WILC_WFI_WiphyRegister(struct net_device *net);
void WILC_WFI_WiphyFree(struct net_device *net);
int WILC_WFI_update_stats(struct wiphy *wiphy, u32 pktlen, u8 changed);
int WILC_WFI_DeInitHostInt(struct net_device *net);
int WILC_WFI_InitHostInt(struct net_device *net);
void WILC_WFI_monitor_rx(uint8_t *buff, uint32_t size);
int WILC_WFI_deinit_mon_interface(void);
struct net_device *WILC_WFI_init_mon_interface(const char *name, struct net_device *real_dev);

#ifdef TCP_ENHANCEMENTS
#define TCP_ACK_FILTER_LINK_SPEED_THRESH 54
#define DEFAULT_LINK_SPEED 72
extern void Enable_TCP_ACK_Filter(bool value);
#endif

#endif