summaryrefslogblamecommitdiffstats
path: root/drivers/staging/wilc1000/wilc_wfi_cfgoperations.h
blob: 28858daf97ddc4bf63d5e5a946114e5119c34d3e (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                          
                                                                                                   







                                      

               











                                                                    













                                                                    
      



                                                                 






                                    
 
                                         
                                                             


























                                                               
 









                                                                       
                                             
                                        
                                                                                              



                                           
                                       


      
/*!
 *  @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"

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

#ifdef WILC_P2P

/*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
#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
#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(u8 *buff, u32 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
void Enable_TCP_ACK_Filter(bool value);
#endif

#endif