132 lines
3 KiB
C
132 lines
3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
/*!
|
|
* @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))
|
|
|
|
enum connect_status {
|
|
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
|
|
};
|
|
|
|
struct rssi_history_buffer {
|
|
bool full;
|
|
u8 index;
|
|
s8 samples[NUM_RSSI];
|
|
};
|
|
|
|
struct network_info {
|
|
s8 rssi;
|
|
u16 cap_info;
|
|
u8 ssid[MAX_SSID_LEN];
|
|
u8 ssid_len;
|
|
u8 bssid[6];
|
|
u16 beacon_period;
|
|
u8 dtim_period;
|
|
u8 ch;
|
|
unsigned long time_scan_cached;
|
|
unsigned long time_scan;
|
|
bool new_network;
|
|
u8 found;
|
|
u32 tsf_lo;
|
|
u8 *ies;
|
|
u16 ies_len;
|
|
void *join_params;
|
|
struct rssi_history_buffer rssi_history;
|
|
u64 tsf_hi;
|
|
};
|
|
|
|
struct connect_resp_info {
|
|
u16 capability;
|
|
u16 status;
|
|
u16 assoc_id;
|
|
u8 *ies;
|
|
u16 ies_len;
|
|
};
|
|
|
|
struct connect_info {
|
|
u8 bssid[6];
|
|
u8 *req_ies;
|
|
size_t req_ies_len;
|
|
u8 *resp_ies;
|
|
u16 resp_ies_len;
|
|
u16 status;
|
|
};
|
|
|
|
struct disconnect_info {
|
|
u16 reason;
|
|
u8 *ie;
|
|
size_t ie_len;
|
|
};
|
|
|
|
s32 wilc_parse_network_info(u8 *msg_buffer,
|
|
struct network_info **ret_network_info);
|
|
s32 wilc_parse_assoc_resp_info(u8 *buffer, u32 buffer_len,
|
|
struct connect_resp_info **ret_connect_resp_info);
|
|
void wilc_scan_complete_received(struct wilc *wilc, u8 *buffer, u32 length);
|
|
void wilc_network_info_received(struct wilc *wilc, u8 *buffer, u32 length);
|
|
void wilc_gnrl_async_info_received(struct wilc *wilc, u8 *buffer, u32 length);
|
|
#endif
|