Holger Schurig's patch (https://patchwork.kernel.org/patch/64286/) is rebased to latest wireless-testing tree. (Includes patches from me originally posted as "libertas: fix build error due to undefined symbol" and "libertas: unmangle capability value". -- JWL) Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Kiran Divekar <dkiran@marvell.com> Tested-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>tirimbino
parent
f90754c15f
commit
e86dc1ca46
File diff suppressed because it is too large
Load Diff
@ -1,155 +0,0 @@ |
||||
/* Copyright (C) 2006, Red Hat, Inc. */ |
||||
|
||||
#ifndef _LBS_ASSOC_H_ |
||||
#define _LBS_ASSOC_H_ |
||||
|
||||
|
||||
#include "defs.h" |
||||
#include "host.h" |
||||
|
||||
|
||||
struct lbs_private; |
||||
|
||||
/*
|
||||
* In theory, the IE is limited to the IE length, 255, |
||||
* but in practice 64 bytes are enough. |
||||
*/ |
||||
#define MAX_WPA_IE_LEN 64 |
||||
|
||||
|
||||
|
||||
struct lbs_802_11_security { |
||||
u8 WPAenabled; |
||||
u8 WPA2enabled; |
||||
u8 wep_enabled; |
||||
u8 auth_mode; |
||||
u32 key_mgmt; |
||||
}; |
||||
|
||||
/** Current Basic Service Set State Structure */ |
||||
struct current_bss_params { |
||||
/** bssid */ |
||||
u8 bssid[ETH_ALEN]; |
||||
/** ssid */ |
||||
u8 ssid[IEEE80211_MAX_SSID_LEN + 1]; |
||||
u8 ssid_len; |
||||
|
||||
/** band */ |
||||
u8 band; |
||||
/** channel is directly in priv->channel */ |
||||
/** zero-terminated array of supported data rates */ |
||||
u8 rates[MAX_RATES + 1]; |
||||
}; |
||||
|
||||
/**
|
||||
* @brief Structure used to store information for each beacon/probe response |
||||
*/ |
||||
struct bss_descriptor { |
||||
u8 bssid[ETH_ALEN]; |
||||
|
||||
u8 ssid[IEEE80211_MAX_SSID_LEN + 1]; |
||||
u8 ssid_len; |
||||
|
||||
u16 capability; |
||||
u32 rssi; |
||||
u32 channel; |
||||
u16 beaconperiod; |
||||
__le16 atimwindow; |
||||
|
||||
/* IW_MODE_AUTO, IW_MODE_ADHOC, IW_MODE_INFRA */ |
||||
u8 mode; |
||||
|
||||
/* zero-terminated array of supported data rates */ |
||||
u8 rates[MAX_RATES + 1]; |
||||
|
||||
unsigned long last_scanned; |
||||
|
||||
union ieee_phy_param_set phy; |
||||
union ieee_ss_param_set ss; |
||||
|
||||
u8 wpa_ie[MAX_WPA_IE_LEN]; |
||||
size_t wpa_ie_len; |
||||
u8 rsn_ie[MAX_WPA_IE_LEN]; |
||||
size_t rsn_ie_len; |
||||
|
||||
u8 mesh; |
||||
|
||||
struct list_head list; |
||||
}; |
||||
|
||||
/** Association request
|
||||
* |
||||
* Encapsulates all the options that describe a specific assocation request |
||||
* or configuration of the wireless card's radio, mode, and security settings. |
||||
*/ |
||||
struct assoc_request { |
||||
#define ASSOC_FLAG_SSID 1 |
||||
#define ASSOC_FLAG_CHANNEL 2 |
||||
#define ASSOC_FLAG_BAND 3 |
||||
#define ASSOC_FLAG_MODE 4 |
||||
#define ASSOC_FLAG_BSSID 5 |
||||
#define ASSOC_FLAG_WEP_KEYS 6 |
||||
#define ASSOC_FLAG_WEP_TX_KEYIDX 7 |
||||
#define ASSOC_FLAG_WPA_MCAST_KEY 8 |
||||
#define ASSOC_FLAG_WPA_UCAST_KEY 9 |
||||
#define ASSOC_FLAG_SECINFO 10 |
||||
#define ASSOC_FLAG_WPA_IE 11 |
||||
unsigned long flags; |
||||
|
||||
u8 ssid[IEEE80211_MAX_SSID_LEN + 1]; |
||||
u8 ssid_len; |
||||
u8 channel; |
||||
u8 band; |
||||
u8 mode; |
||||
u8 bssid[ETH_ALEN] __attribute__ ((aligned (2))); |
||||
|
||||
/** WEP keys */ |
||||
struct enc_key wep_keys[4]; |
||||
u16 wep_tx_keyidx; |
||||
|
||||
/** WPA keys */ |
||||
struct enc_key wpa_mcast_key; |
||||
struct enc_key wpa_unicast_key; |
||||
|
||||
struct lbs_802_11_security secinfo; |
||||
|
||||
/** WPA Information Elements*/ |
||||
u8 wpa_ie[MAX_WPA_IE_LEN]; |
||||
u8 wpa_ie_len; |
||||
|
||||
/* BSS to associate with for infrastructure of Ad-Hoc join */ |
||||
struct bss_descriptor bss; |
||||
}; |
||||
|
||||
|
||||
extern u8 lbs_bg_rates[MAX_RATES]; |
||||
|
||||
void lbs_association_worker(struct work_struct *work); |
||||
struct assoc_request *lbs_get_association_request(struct lbs_private *priv); |
||||
|
||||
int lbs_adhoc_stop(struct lbs_private *priv); |
||||
|
||||
int lbs_cmd_80211_deauthenticate(struct lbs_private *priv, |
||||
u8 bssid[ETH_ALEN], u16 reason); |
||||
|
||||
int lbs_cmd_802_11_rssi(struct lbs_private *priv, |
||||
struct cmd_ds_command *cmd); |
||||
int lbs_ret_802_11_rssi(struct lbs_private *priv, |
||||
struct cmd_ds_command *resp); |
||||
|
||||
int lbs_cmd_bcn_ctrl(struct lbs_private *priv, |
||||
struct cmd_ds_command *cmd, |
||||
u16 cmd_action); |
||||
int lbs_ret_802_11_bcn_ctrl(struct lbs_private *priv, |
||||
struct cmd_ds_command *resp); |
||||
|
||||
int lbs_cmd_802_11_set_wep(struct lbs_private *priv, uint16_t cmd_action, |
||||
struct assoc_request *assoc); |
||||
|
||||
int lbs_cmd_802_11_enable_rsn(struct lbs_private *priv, uint16_t cmd_action, |
||||
uint16_t *enable); |
||||
|
||||
int lbs_cmd_802_11_key_material(struct lbs_private *priv, uint16_t cmd_action, |
||||
struct assoc_request *assoc); |
||||
|
||||
#endif /* _LBS_ASSOC_H */ |
File diff suppressed because it is too large
Load Diff
@ -1,16 +1,22 @@ |
||||
#ifndef __LBS_CFG80211_H__ |
||||
#define __LBS_CFG80211_H__ |
||||
|
||||
#include "dev.h" |
||||
struct device; |
||||
struct lbs_private; |
||||
|
||||
struct wireless_dev *lbs_cfg_alloc(struct device *dev); |
||||
int lbs_cfg_register(struct lbs_private *priv); |
||||
void lbs_cfg_free(struct lbs_private *priv); |
||||
|
||||
int lbs_send_specific_ssid_scan(struct lbs_private *priv, u8 *ssid, |
||||
u8 ssid_len); |
||||
int lbs_scan_networks(struct lbs_private *priv, int full_scan); |
||||
void lbs_cfg_scan_worker(struct work_struct *work); |
||||
/* All of those are TODOs: */ |
||||
#define lbs_cmd_802_11_rssi(priv, cmdptr) (0) |
||||
#define lbs_ret_802_11_rssi(priv, resp) (0) |
||||
#define lbs_cmd_bcn_ctrl(priv, cmdptr, cmd_action) (0) |
||||
#define lbs_ret_802_11_bcn_ctrl(priv, resp) (0) |
||||
|
||||
void lbs_send_disconnect_notification(struct lbs_private *priv); |
||||
void lbs_send_mic_failureevent(struct lbs_private *priv, u32 event); |
||||
|
||||
void lbs_scan_deinit(struct lbs_private *priv); |
||||
|
||||
#endif |
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,63 +0,0 @@ |
||||
/**
|
||||
* Interface for the wlan network scan routines |
||||
* |
||||
* Driver interface functions and type declarations for the scan module |
||||
* implemented in scan.c. |
||||
*/ |
||||
#ifndef _LBS_SCAN_H |
||||
#define _LBS_SCAN_H |
||||
|
||||
#include <net/iw_handler.h> |
||||
|
||||
struct lbs_private; |
||||
|
||||
#define MAX_NETWORK_COUNT 128 |
||||
|
||||
/** Chan-freq-TxPower mapping table*/ |
||||
struct chan_freq_power { |
||||
/** channel Number */ |
||||
u16 channel; |
||||
/** frequency of this channel */ |
||||
u32 freq; |
||||
/** Max allowed Tx power level */ |
||||
u16 maxtxpower; |
||||
/** TRUE:channel unsupported; FLASE:supported*/ |
||||
u8 unsupported; |
||||
}; |
||||
|
||||
/** region-band mapping table*/ |
||||
struct region_channel { |
||||
/** TRUE if this entry is valid */ |
||||
u8 valid; |
||||
/** region code for US, Japan ... */ |
||||
u8 region; |
||||
/** band B/G/A, used for BAND_CONFIG cmd */ |
||||
u8 band; |
||||
/** Actual No. of elements in the array below */ |
||||
u8 nrcfp; |
||||
/** chan-freq-txpower mapping table*/ |
||||
struct chan_freq_power *CFP; |
||||
}; |
||||
|
||||
/**
|
||||
* @brief Maximum number of channels that can be sent in a setuserscan ioctl |
||||
*/ |
||||
#define LBS_IOCTL_USER_SCAN_CHAN_MAX 50 |
||||
|
||||
int lbs_ssid_cmp(u8 *ssid1, u8 ssid1_len, u8 *ssid2, u8 ssid2_len); |
||||
|
||||
int lbs_set_regiontable(struct lbs_private *priv, u8 region, u8 band); |
||||
|
||||
int lbs_send_specific_ssid_scan(struct lbs_private *priv, u8 *ssid, |
||||
u8 ssid_len); |
||||
|
||||
int lbs_get_scan(struct net_device *dev, struct iw_request_info *info, |
||||
struct iw_point *dwrq, char *extra); |
||||
int lbs_set_scan(struct net_device *dev, struct iw_request_info *info, |
||||
union iwreq_data *wrqu, char *extra); |
||||
|
||||
int lbs_scan_networks(struct lbs_private *priv, int full_scan); |
||||
|
||||
void lbs_scan_worker(struct work_struct *work); |
||||
|
||||
#endif |
File diff suppressed because it is too large
Load Diff
@ -1,17 +0,0 @@ |
||||
/**
|
||||
* This file contains definition for IOCTL call. |
||||
*/ |
||||
#ifndef _LBS_WEXT_H_ |
||||
#define _LBS_WEXT_H_ |
||||
|
||||
void lbs_send_disconnect_notification(struct lbs_private *priv); |
||||
void lbs_send_mic_failureevent(struct lbs_private *priv, u32 event); |
||||
|
||||
struct chan_freq_power *lbs_find_cfp_by_band_and_channel( |
||||
struct lbs_private *priv, |
||||
u8 band, |
||||
u16 channel); |
||||
|
||||
extern struct iw_handler_def lbs_handler_def; |
||||
|
||||
#endif |
Loading…
Reference in new issue