Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 171043
b: refs/heads/master
c: 2d46502
h: refs/heads/master
i:
  171041: ff62a69
  171039: 8d531f7
v: v3
  • Loading branch information
Holger Schurig authored and John W. Linville committed Oct 27, 2009
1 parent 66c0937 commit 13816ff
Show file tree
Hide file tree
Showing 10 changed files with 349 additions and 341 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 243e84e91ed810f7dca5ba1c2d1a611811948566
refs/heads/master: 2d46502dce3c79c3c15ac537cb271911f58d12d1
7 changes: 7 additions & 0 deletions trunk/drivers/net/wireless/libertas/assoc.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ static const u8 bssid_off[ETH_ALEN] __attribute__ ((aligned (2))) =
*/
#define CAPINFO_MASK (~(0xda00))

/**
* 802.11b/g supported bitrates (in 500Kb/s units)
*/
u8 lbs_bg_rates[MAX_RATES] =
{ 0x02, 0x04, 0x0b, 0x16, 0x0c, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6c,
0x00, 0x00 };


/**
* @brief This function finds common rates between rates and card rates.
Expand Down
122 changes: 121 additions & 1 deletion trunk/drivers/net/wireless/libertas/assoc.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,127 @@
#ifndef _LBS_ASSOC_H_
#define _LBS_ASSOC_H_

#include "dev.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 */
u8 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);
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/libertas/cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include "dev.h"
#include "assoc.h"
#include "wext.h"
#include "scan.h"
#include "cmd.h"

static struct cmd_ctrl_node *lbs_get_cmd_ctrl_node(struct lbs_private *priv);
Expand Down
6 changes: 3 additions & 3 deletions trunk/drivers/net/wireless/libertas/decl.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@

#include "defs.h"


extern const struct ethtool_ops lbs_ethtool_ops;

/** Function Prototype Declaration */
struct lbs_private;
struct sk_buff;
Expand All @@ -33,7 +36,6 @@ u8 lbs_data_rate_to_fw_index(u32 rate);
/** The proc fs interface */
netdev_tx_t lbs_hard_start_xmit(struct sk_buff *skb,
struct net_device *dev);
int lbs_set_regiontable(struct lbs_private *priv, u8 region, u8 band);

int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *);

Expand All @@ -49,8 +51,6 @@ void lbs_persist_config_init(struct net_device *net);
void lbs_persist_config_remove(struct net_device *net);

/* main.c */
struct chan_freq_power *lbs_get_region_cfp_table(u8 region,
int *cfp_no);
struct lbs_private *lbs_add_card(void *card, struct device *dmdev);
void lbs_remove_card(struct lbs_private *priv);
int lbs_start_card(struct lbs_private *priv);
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/net/wireless/libertas/defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,6 @@ static inline void lbs_deb_hex(unsigned int grp, const char *prompt, u8 *buf, in
extern const char lbs_driver_version[];
extern u16 lbs_region_code_to_index[MRVDRV_MAX_REGION_CODE];

extern u8 lbs_bg_rates[MAX_RATES];

/** ENUM definition*/
/** SNRNF_TYPE */
Expand Down
155 changes: 2 additions & 153 deletions trunk/drivers/net/wireless/libertas/dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,75 +6,10 @@
#ifndef _LBS_DEV_H_
#define _LBS_DEV_H_

#include <linux/netdevice.h>
#include <linux/wireless.h>
#include <linux/ethtool.h>
#include <linux/debugfs.h>
#include "scan.h"
#include "assoc.h"

#include "defs.h"
#include "host.h"

extern const struct ethtool_ops lbs_ethtool_ops;

#define MAX_BSSID_PER_CHANNEL 16

#define NR_TX_QUEUE 3

/* For the extended Scan */
#define MAX_EXTENDED_SCAN_BSSID_LIST MAX_BSSID_PER_CHANNEL * \
MRVDRV_MAX_CHANNEL_SIZE + 1

#define MAX_REGION_CHANNEL_NUM 2

/** 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;
};

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 */
u8 channel;
/** zero-terminated array of supported data rates */
u8 rates[MAX_RATES + 1];
};

/** sleep_params */
struct sleep_params {
Expand Down Expand Up @@ -295,12 +230,6 @@ struct lbs_private {
struct enc_key wpa_mcast_key;
struct enc_key wpa_unicast_key;

/*
* In theory, the IE is limited to the IE length, 255,
* but in practice 64 bytes are enough.
*/
#define MAX_WPA_IE_LEN 64

/** WPA Information Elements*/
u8 wpa_ie[MAX_WPA_IE_LEN];
u8 wpa_ie_len;
Expand Down Expand Up @@ -334,84 +263,4 @@ struct lbs_private {

extern struct cmd_confirm_sleep confirm_sleep;

/**
* @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;
};

#endif
Loading

0 comments on commit 13816ff

Please sign in to comment.