blob: 6294d929a800ce3532836fbfe0ac7a28f48203ef [file] [log] [blame]
/*!
* @file coreconfigurator.h
* @brief
* @author
* @sa coreconfigurator.c
* @date 1 Mar 2012
* @version 1.0
*/
#ifndef CORECONFIGURATOR_H
#define CORECONFIGURATOR_H
#include "wilc_wlan_if.h"
#define NUM_BASIC_SWITCHES 45
#define NUM_FHSS_SWITCHES 0
#define NUM_RSSI 5
#ifdef MAC_802_11N
#define NUM_11N_BASIC_SWITCHES 25
#define NUM_11N_HUT_SWITCHES 47
#else
#define NUM_11N_BASIC_SWITCHES 0
#define NUM_11N_HUT_SWITCHES 0
#endif
#define MAC_HDR_LEN 24
#define MAX_SSID_LEN 33
#define FCS_LEN 4
#define TIME_STAMP_LEN 8
#define BEACON_INTERVAL_LEN 2
#define CAP_INFO_LEN 2
#define STATUS_CODE_LEN 2
#define AID_LEN 2
#define IE_HDR_LEN 2
#define SET_CFG 0
#define GET_CFG 1
#define MAX_STRING_LEN 256
#define MAX_SURVEY_RESULT_FRAG_SIZE MAX_STRING_LEN
#define SURVEY_RESULT_LENGTH 44
#define MAX_ASSOC_RESP_FRAME_SIZE MAX_STRING_LEN
#define MAC_CONNECTED 1
#define MAC_DISCONNECTED 0
#define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb))
#define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw))
typedef enum {
SUCCESSFUL_STATUSCODE = 0,
UNSPEC_FAIL = 1,
UNSUP_CAP = 10,
REASOC_NO_ASOC = 11,
FAIL_OTHER = 12,
UNSUPT_ALG = 13,
AUTH_SEQ_FAIL = 14,
CHLNG_FAIL = 15,
AUTH_TIMEOUT = 16,
AP_FULL = 17,
UNSUP_RATE = 18,
SHORT_PREAMBLE_UNSUP = 19,
PBCC_UNSUP = 20,
CHANNEL_AGIL_UNSUP = 21,
SHORT_SLOT_UNSUP = 25,
OFDM_DSSS_UNSUP = 26,
CONNECT_STS_FORCE_16_BIT = 0xFFFF
} tenuConnectSts;
struct wid {
u16 id;
enum WID_TYPE type;
s32 size;
s8 *val;
};
typedef struct {
u8 u8Full;
u8 u8Index;
s8 as8RSSI[NUM_RSSI];
} tstrRSSI;
typedef struct {
s8 s8rssi;
u16 u16CapInfo;
u8 au8ssid[MAX_SSID_LEN];
u8 u8SsidLen;
u8 au8bssid[6];
u16 u16BeaconPeriod;
u8 u8DtimPeriod;
u8 u8channel;
unsigned long u32TimeRcvdInScanCached;
unsigned long u32TimeRcvdInScan;
bool bNewNetwork;
u8 u8Found;
u32 u32Tsf;
u8 *pu8IEs;
u16 u16IEsLen;
void *pJoinParams;
tstrRSSI strRssi;
u64 u64Tsf;
} tstrNetworkInfo;
typedef struct {
u16 u16capability;
u16 u16ConnectStatus;
u16 u16AssocID;
u8 *pu8RespIEs;
u16 u16RespIEsLen;
} tstrConnectRespInfo;
typedef struct {
u8 au8bssid[6];
u8 *pu8ReqIEs;
size_t ReqIEsLen;
u8 *pu8RespIEs;
u16 u16RespIEsLen;
u16 u16ConnectStatus;
} tstrConnectInfo;
typedef struct {
u16 u16reason;
u8 *ie;
size_t ie_len;
} tstrDisconnectNotifInfo;
s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv);
s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo);
s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo);
s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen,
tstrConnectRespInfo **ppstrConnectRespInfo);
s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo);
void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length);
void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length);
void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length);
#endif