| |
| /*! |
| * @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" |
| /*****************************************************************************/ |
| /* Constants */ |
| /*****************************************************************************/ |
| /* Number of WID Options Supported */ |
| #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 /* MAC_802_11N */ |
| #define NUM_11N_BASIC_SWITCHES 0 |
| #define NUM_11N_HUT_SWITCHES 0 |
| #endif /* MAC_802_11N */ |
| |
| extern u16 g_num_total_switches; |
| |
| #define MAC_HDR_LEN 24 /* No Address4 - non-ESS */ |
| #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 |
| |
| |
| /* Operating Mode: SET */ |
| #define SET_CFG 0 |
| /* Operating Mode: GET */ |
| #define GET_CFG 1 |
| |
| #define MAX_PACKET_BUFF_SIZE 1596 |
| |
| #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 STATUS_MSG_LEN 12 |
| #define MAC_CONNECTED 1 |
| #define MAC_DISCONNECTED 0 |
| |
| |
| |
| /*****************************************************************************/ |
| /* Function Macros */ |
| /*****************************************************************************/ |
| #define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb)) |
| #define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw)) |
| |
| |
| /*****************************************************************************/ |
| /* Type Definitions */ |
| /*****************************************************************************/ |
| /* Status Codes for Authentication and Association Frames */ |
| 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; |
| |
| typedef struct { |
| u16 u16WIDid; |
| tenuWIDtype enuWIDtype; |
| s32 s32ValueSize; |
| s8 *ps8WidVal; |
| |
| } tstrWID; |
| |
| typedef struct { |
| u8 u8Full; |
| u8 u8Index; |
| s8 as8RSSI[NUM_RSSI]; |
| } tstrRSSI; |
| /* This structure is used to support parsing of the received 'N' message */ |
| 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; /* of type unsigned long to be accepted by the linux kernel macro time_after() */ |
| unsigned long u32TimeRcvdInScan; |
| bool bNewNetwork; |
| #ifdef AGING_ALG |
| u8 u8Found; |
| #endif |
| #ifdef WILC_P2P |
| u32 u32Tsf; /* time-stamp [Low only 32 bit] */ |
| #endif |
| u8 *pu8IEs; |
| u16 u16IEsLen; |
| void *pJoinParams; |
| tstrRSSI strRssi; |
| u64 u64Tsf; /* time-stamp [Low and High 64 bit] */ |
| } tstrNetworkInfo; |
| |
| /* This structure is used to support parsing of the received Association Response frame */ |
| 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; |
| |
| #ifndef CONNECT_DIRECT |
| typedef struct wid_site_survey_reslts { |
| char SSID[MAX_SSID_LEN]; |
| u8 BssType; |
| u8 Channel; |
| u8 SecurityStatus; |
| u8 BSSID[6]; |
| char RxPower; |
| u8 Reserved; |
| |
| } wid_site_survey_reslts_s; |
| #endif |
| |
| extern s32 CoreConfiguratorInit(void); |
| extern s32 CoreConfiguratorDeInit(void); |
| |
| extern s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs, |
| u32 u32WIDsCount, bool bRespRequired, u32 drvHandler); |
| extern s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo); |
| extern s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo); |
| |
| extern s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen, |
| tstrConnectRespInfo **ppstrConnectRespInfo); |
| extern s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo); |
| |
| #ifndef CONNECT_DIRECT |
| extern s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZE], |
| wid_site_survey_reslts_s **ppstrSurveyResults, u32 *pu32SurveyResultsCount); |
| extern s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults); |
| #endif |
| |
| extern s32 SendRawPacket(s8 *pspacket, s32 s32PacketLen); |
| extern void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length); |
| void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length); |
| void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length); |
| |
| #endif |