Commit bea385ac authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz Committed by Greg Kroah-Hartman

Staging: rtl8187se/ieee80211: ieee80211.h reorderings

Reorder the code in ieee80211.h for easier comparisions with
rtl8192su's version of the file.

While at it:
* use IEEE80211_4ADDR_LEN for IEEE80211_LEN definition
* remove unused country_code_type_t typedef
* make some minor coding style fixes
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 03ea5099
...@@ -133,102 +133,14 @@ typedef struct ieee_param { ...@@ -133,102 +133,14 @@ typedef struct ieee_param {
represents the 2304 bytes of real data, plus a possible 8 bytes of represents the 2304 bytes of real data, plus a possible 8 bytes of
WEP IV and ICV. (this interpretation suggested by Ramiro Barreiro) */ WEP IV and ICV. (this interpretation suggested by Ramiro Barreiro) */
#define IEEE80211_HLEN 30
#define IEEE80211_FRAME_LEN (IEEE80211_DATA_LEN + IEEE80211_HLEN)
/* this is stolen and modified from the madwifi driver*/
#define IEEE80211_FC0_TYPE_MASK 0x0c
#define IEEE80211_FC0_TYPE_DATA 0x08
#define IEEE80211_FC0_SUBTYPE_MASK 0xB0
#define IEEE80211_FC0_SUBTYPE_QOS 0x80
#define IEEE80211_QOS_HAS_SEQ(fc) \
(((fc) & (IEEE80211_FC0_TYPE_MASK | IEEE80211_FC0_SUBTYPE_MASK)) == \
(IEEE80211_FC0_TYPE_DATA | IEEE80211_FC0_SUBTYPE_QOS))
/* this is stolen from ipw2200 driver */
#define IEEE_IBSS_MAC_HASH_SIZE 31
struct ieee_ibss_seq {
u8 mac[ETH_ALEN];
u16 seq_num[17];
u16 frag_num[17];
unsigned long packet_time[17];
struct list_head list;
};
struct ieee80211_hdr_4addr {
u16 frame_ctl;
u16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
u16 seq_ctl;
u8 addr4[ETH_ALEN];
} __attribute__ ((packed));
struct ieee80211_hdr_4addrqos {
u16 frame_ctl;
u16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
u16 seq_ctl;
u8 addr4[ETH_ALEN];
u16 qos_ctl;
} __attribute__ ((packed));
struct ieee80211_hdr_3addr {
u16 frame_ctl;
u16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
u16 seq_ctl;
} __attribute__ ((packed));
struct ieee80211_hdr_3addrqos {
u16 frame_ctl;
u16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
u16 seq_ctl;
u16 qos_ctl;
} __attribute__ ((packed));
enum eap_type {
EAP_PACKET = 0,
EAPOL_START,
EAPOL_LOGOFF,
EAPOL_KEY,
EAPOL_ENCAP_ASF_ALERT
};
static const char *eap_types[] = {
[EAP_PACKET] = "EAP-Packet",
[EAPOL_START] = "EAPOL-Start",
[EAPOL_LOGOFF] = "EAPOL-Logoff",
[EAPOL_KEY] = "EAPOL-Key",
[EAPOL_ENCAP_ASF_ALERT] = "EAPOL-Encap-ASF-Alert"
};
static inline const char *eap_get_type(int type)
{
return (type >= ARRAY_SIZE(eap_types)) ? "Unknown" : eap_types[type];
}
struct eapol {
u8 snap[6];
u16 ethertype;
u8 version;
u8 type;
u16 length;
} __attribute__ ((packed));
#define IEEE80211_3ADDR_LEN 24 #define IEEE80211_3ADDR_LEN 24
#define IEEE80211_4ADDR_LEN 30 #define IEEE80211_4ADDR_LEN 30
#define IEEE80211_FCS_LEN 4 #define IEEE80211_FCS_LEN 4
#define IEEE80211_HLEN IEEE80211_4ADDR_LEN
#define IEEE80211_FRAME_LEN (IEEE80211_DATA_LEN + IEEE80211_HLEN)
#define IEEE80211_MGMT_HDR_LEN 24
#define IEEE80211_DATA_HDR3_LEN 24
#define IEEE80211_DATA_HDR4_LEN 30
#define MIN_FRAG_THRESHOLD 256U #define MIN_FRAG_THRESHOLD 256U
#define MAX_FRAG_THRESHOLD 2346U #define MAX_FRAG_THRESHOLD 2346U
...@@ -249,6 +161,10 @@ do { if (ieee80211_debug_level & (level)) \ ...@@ -249,6 +161,10 @@ do { if (ieee80211_debug_level & (level)) \
#define IEEE80211_DEBUG(level, fmt, args...) do {} while (0) #define IEEE80211_DEBUG(level, fmt, args...) do {} while (0)
#endif /* CONFIG_IEEE80211_DEBUG */ #endif /* CONFIG_IEEE80211_DEBUG */
#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
#define MAC_ARG(x) ((u8 *)(x))[0], ((u8 *)(x))[1], ((u8 *)(x))[2], \
((u8 *)(x))[3], ((u8 *)(x))[4], ((u8 *)(x))[5]
/* /*
* To use the debug system; * To use the debug system;
* *
...@@ -344,11 +260,6 @@ struct ieee80211_snap_hdr { ...@@ -344,11 +260,6 @@ struct ieee80211_snap_hdr {
#define WLAN_CAPABILITY_BSS (1<<0) #define WLAN_CAPABILITY_BSS (1<<0)
#define WLAN_CAPABILITY_SHORT_SLOT (1<<10) #define WLAN_CAPABILITY_SHORT_SLOT (1<<10)
#define IEEE80211_MGMT_HDR_LEN 24
#define IEEE80211_DATA_HDR3_LEN 24
#define IEEE80211_DATA_HDR4_LEN 30
#define IEEE80211_STATMASK_SIGNAL (1<<0) #define IEEE80211_STATMASK_SIGNAL (1<<0)
#define IEEE80211_STATMASK_RSSI (1<<1) #define IEEE80211_STATMASK_RSSI (1<<1)
#define IEEE80211_STATMASK_NOISE (1<<2) #define IEEE80211_STATMASK_NOISE (1<<2)
...@@ -415,8 +326,25 @@ struct ieee80211_snap_hdr { ...@@ -415,8 +326,25 @@ struct ieee80211_snap_hdr {
#define IEEE80211_NUM_CCK_RATES 4 #define IEEE80211_NUM_CCK_RATES 4
#define IEEE80211_OFDM_SHIFT_MASK_A 4 #define IEEE80211_OFDM_SHIFT_MASK_A 4
/* this is stolen and modified from the madwifi driver*/
#define IEEE80211_FC0_TYPE_MASK 0x0c
#define IEEE80211_FC0_TYPE_DATA 0x08
#define IEEE80211_FC0_SUBTYPE_MASK 0xB0
#define IEEE80211_FC0_SUBTYPE_QOS 0x80
#define IEEE80211_QOS_HAS_SEQ(fc) \
(((fc) & (IEEE80211_FC0_TYPE_MASK | IEEE80211_FC0_SUBTYPE_MASK)) == \
(IEEE80211_FC0_TYPE_DATA | IEEE80211_FC0_SUBTYPE_QOS))
/* this is stolen from ipw2200 driver */
#define IEEE_IBSS_MAC_HASH_SIZE 31
struct ieee_ibss_seq {
u8 mac[ETH_ALEN];
u16 seq_num[17];
u16 frag_num[17];
unsigned long packet_time[17];
struct list_head list;
};
/* NOTE: This data is for statistical purposes; not all hardware provides this /* NOTE: This data is for statistical purposes; not all hardware provides this
* information for frames received. Not setting these will not cause * information for frames received. Not setting these will not cause
...@@ -475,26 +403,6 @@ struct ieee80211_stats { ...@@ -475,26 +403,6 @@ struct ieee80211_stats {
unsigned int rx_message_in_bad_msg_fragments; unsigned int rx_message_in_bad_msg_fragments;
}; };
struct ieee80211_softmac_stats{
unsigned int rx_ass_ok;
unsigned int rx_ass_err;
unsigned int rx_probe_rq;
unsigned int tx_probe_rs;
unsigned int tx_beacons;
unsigned int rx_auth_rq;
unsigned int rx_auth_rs_ok;
unsigned int rx_auth_rs_err;
unsigned int tx_auth_rq;
unsigned int no_auth_rs;
unsigned int no_ass_rs;
unsigned int tx_ass_rq;
unsigned int rx_ass_rq;
unsigned int tx_probe_rq;
unsigned int reassoc;
unsigned int swtxstop;
unsigned int swtxawake;
};
struct ieee80211_device; struct ieee80211_device;
#include "ieee80211_crypt.h" #include "ieee80211_crypt.h"
...@@ -548,17 +456,6 @@ Total: 28-2340 bytes ...@@ -548,17 +456,6 @@ Total: 28-2340 bytes
*/ */
struct ieee80211_header_data {
u16 frame_ctl;
u16 duration_id;
u8 addr1[6];
u8 addr2[6];
u8 addr3[6];
u16 seq_ctrl;
};
#define BEACON_PROBE_SSID_ID_POSITION 12
/* Management Frame Information Element Types */ /* Management Frame Information Element Types */
#define MFIE_TYPE_SSID 0 #define MFIE_TYPE_SSID 0
#define MFIE_TYPE_RATES 1 #define MFIE_TYPE_RATES 1
...@@ -574,20 +471,54 @@ struct ieee80211_header_data { ...@@ -574,20 +471,54 @@ struct ieee80211_header_data {
#define MFIE_TYPE_RATES_EX 50 #define MFIE_TYPE_RATES_EX 50
#define MFIE_TYPE_GENERIC 221 #define MFIE_TYPE_GENERIC 221
typedef enum struct ieee80211_header_data {
{ u16 frame_ctl;
COUNTRY_CODE_FCC = 0, u16 duration_id;
COUNTRY_CODE_IC = 1, u8 addr1[6];
COUNTRY_CODE_ETSI = 2, u8 addr2[6];
COUNTRY_CODE_SPAIN = 3, u8 addr3[6];
COUNTRY_CODE_FRANCE = 4, u16 seq_ctrl;
COUNTRY_CODE_MKK = 5, };
COUNTRY_CODE_MKK1 = 6,
COUNTRY_CODE_ISRAEL = 7, struct ieee80211_hdr_3addr {
COUNTRY_CODE_TELEC = 8, u16 frame_ctl;
COUNTRY_CODE_GLOBAL_DOMAIN = 9, u16 duration_id;
COUNTRY_CODE_WORLD_WIDE_13_INDEX = 10 u8 addr1[ETH_ALEN];
}country_code_type_t; u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
u16 seq_ctl;
} __attribute__ ((packed));
struct ieee80211_hdr_4addr {
u16 frame_ctl;
u16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
u16 seq_ctl;
u8 addr4[ETH_ALEN];
} __attribute__ ((packed));
struct ieee80211_hdr_3addrqos {
u16 frame_ctl;
u16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
u16 seq_ctl;
u16 qos_ctl;
} __attribute__ ((packed));
struct ieee80211_hdr_4addrqos {
u16 frame_ctl;
u16 duration_id;
u8 addr1[ETH_ALEN];
u8 addr2[ETH_ALEN];
u8 addr3[ETH_ALEN];
u16 seq_ctl;
u8 addr4[ETH_ALEN];
u16 qos_ctl;
} __attribute__ ((packed));
struct ieee80211_info_element_hdr { struct ieee80211_info_element_hdr {
u8 id; u8 id;
...@@ -600,26 +531,6 @@ struct ieee80211_info_element { ...@@ -600,26 +531,6 @@ struct ieee80211_info_element {
u8 data[0]; u8 data[0];
} __attribute__ ((packed)); } __attribute__ ((packed));
/*
* These are the data types that can make up management packets
*
u16 auth_algorithm;
u16 auth_sequence;
u16 beacon_interval;
u16 capability;
u8 current_ap[ETH_ALEN];
u16 listen_interval;
struct {
u16 association_id:14, reserved:2;
} __attribute__ ((packed));
u32 time_stamp[2];
u16 reason;
u16 status;
*/
#define IEEE80211_DEFAULT_TX_ESSID "Penguin"
#define IEEE80211_DEFAULT_BASIC_RATE 10
struct ieee80211_authentication { struct ieee80211_authentication {
struct ieee80211_header_data header; struct ieee80211_header_data header;
u16 algorithm; u16 algorithm;
...@@ -628,6 +539,15 @@ struct ieee80211_authentication { ...@@ -628,6 +539,15 @@ struct ieee80211_authentication {
//struct ieee80211_info_element_hdr info_element; //struct ieee80211_info_element_hdr info_element;
} __attribute__ ((packed)); } __attribute__ ((packed));
struct ieee80211_disassoc_frame {
struct ieee80211_hdr_3addr header;
u16 reasoncode;
} __attribute__ ((packed));
struct ieee80211_probe_request {
struct ieee80211_header_data header;
/* struct ieee80211_info_element info_element; */
} __attribute__ ((packed));
struct ieee80211_probe_response { struct ieee80211_probe_response {
struct ieee80211_header_data header; struct ieee80211_header_data header;
...@@ -637,11 +557,6 @@ struct ieee80211_probe_response { ...@@ -637,11 +557,6 @@ struct ieee80211_probe_response {
struct ieee80211_info_element info_element; struct ieee80211_info_element info_element;
} __attribute__ ((packed)); } __attribute__ ((packed));
struct ieee80211_probe_request {
struct ieee80211_header_data header;
/*struct ieee80211_info_element info_element;*/
} __attribute__ ((packed));
struct ieee80211_assoc_request_frame { struct ieee80211_assoc_request_frame {
struct ieee80211_hdr_3addr header; struct ieee80211_hdr_3addr header;
u16 capability; u16 capability;
...@@ -658,11 +573,6 @@ struct ieee80211_assoc_response_frame { ...@@ -658,11 +573,6 @@ struct ieee80211_assoc_response_frame {
struct ieee80211_info_element info_element; /* supported rates */ struct ieee80211_info_element info_element; /* supported rates */
} __attribute__ ((packed)); } __attribute__ ((packed));
struct ieee80211_disassoc_frame{
struct ieee80211_hdr_3addr header;
u16 reasoncode;
}__attribute__ ((packed));
struct ieee80211_txb { struct ieee80211_txb {
u8 nr_frags; u8 nr_frags;
u8 encrypted; u8 encrypted;
...@@ -672,6 +582,32 @@ struct ieee80211_txb { ...@@ -672,6 +582,32 @@ struct ieee80211_txb {
struct sk_buff *fragments[0]; struct sk_buff *fragments[0];
}; };
/* SWEEP TABLE ENTRIES NUMBER */
#define MAX_SWEEP_TAB_ENTRIES 42
#define MAX_SWEEP_TAB_ENTRIES_PER_PACKET 7
/* MAX_RATES_LENGTH needs to be 12. The spec says 8, and many APs
* only use 8, and then use extended rates for the remaining supported
* rates. Other APs, however, stick all of their supported rates on the
* main rates information element... */
#define MAX_RATES_LENGTH ((u8)12)
#define MAX_RATES_EX_LENGTH ((u8)16)
#define MAX_NETWORK_COUNT 128
#define MAX_CHANNEL_NUMBER 165
#define IEEE80211_SOFTMAC_SCAN_TIME 100 /* (HZ / 2) */
#define IEEE80211_SOFTMAC_ASSOC_RETRY_TIME (HZ * 2)
#define CRC_LENGTH 4U
#define MAX_WPA_IE_LEN 64
#define NETWORK_EMPTY_ESSID (1 << 0)
#define NETWORK_HAS_OFDM (1 << 1)
#define NETWORK_HAS_CCK (1 << 2)
struct ieee80211_wmm_ac_param { struct ieee80211_wmm_ac_param {
u8 ac_aci_acm_aifsn; u8 ac_aci_acm_aifsn;
u8 ac_ecwmin_ecwmax; u8 ac_ecwmin_ecwmax;
...@@ -703,23 +639,82 @@ struct ieee80211_wmm_tspec_elem { ...@@ -703,23 +639,82 @@ struct ieee80211_wmm_tspec_elem {
u16 medium_time; u16 medium_time;
}__attribute__((packed)); }__attribute__((packed));
enum eap_type {
EAP_PACKET = 0,
EAPOL_START,
EAPOL_LOGOFF,
EAPOL_KEY,
EAPOL_ENCAP_ASF_ALERT
};
static const char *eap_types[] = {
[EAP_PACKET] = "EAP-Packet",
[EAPOL_START] = "EAPOL-Start",
[EAPOL_LOGOFF] = "EAPOL-Logoff",
[EAPOL_KEY] = "EAPOL-Key",
[EAPOL_ENCAP_ASF_ALERT] = "EAPOL-Encap-ASF-Alert"
};
static inline const char *eap_get_type(int type)
{
return (type >= ARRAY_SIZE(eap_types)) ? "Unknown" : eap_types[type];
}
struct eapol {
u8 snap[6];
u16 ethertype;
u8 version;
u8 type;
u16 length;
} __attribute__ ((packed));
struct ieee80211_softmac_stats {
unsigned int rx_ass_ok;
unsigned int rx_ass_err;
unsigned int rx_probe_rq;
unsigned int tx_probe_rs;
unsigned int tx_beacons;
unsigned int rx_auth_rq;
unsigned int rx_auth_rs_ok;
unsigned int rx_auth_rs_err;
unsigned int tx_auth_rq;
unsigned int no_auth_rs;
unsigned int no_ass_rs;
unsigned int tx_ass_rq;
unsigned int rx_ass_rq;
unsigned int tx_probe_rq;
unsigned int reassoc;
unsigned int swtxstop;
unsigned int swtxawake;
};
#define BEACON_PROBE_SSID_ID_POSITION 12
/*
* These are the data types that can make up management packets
*
u16 auth_algorithm;
u16 auth_sequence;
u16 beacon_interval;
u16 capability;
u8 current_ap[ETH_ALEN];
u16 listen_interval;
struct {
u16 association_id:14, reserved:2;
} __attribute__ ((packed));
u32 time_stamp[2];
u16 reason;
u16 status;
*/
#define IEEE80211_DEFAULT_TX_ESSID "Penguin"
#define IEEE80211_DEFAULT_BASIC_RATE 10
enum {WMM_all_frame, WMM_two_frame, WMM_four_frame, WMM_six_frame}; enum {WMM_all_frame, WMM_two_frame, WMM_four_frame, WMM_six_frame};
#define MAX_SP_Len (WMM_all_frame << 4) #define MAX_SP_Len (WMM_all_frame << 4)
#define IEEE80211_QOS_TID 0x0f #define IEEE80211_QOS_TID 0x0f
#define QOS_CTL_NOTCONTAIN_ACK (0x01 << 5) #define QOS_CTL_NOTCONTAIN_ACK (0x01 << 5)
/* SWEEP TABLE ENTRIES NUMBER*/
#define MAX_SWEEP_TAB_ENTRIES 42
#define MAX_SWEEP_TAB_ENTRIES_PER_PACKET 7
/* MAX_RATES_LENGTH needs to be 12. The spec says 8, and many APs
* only use 8, and then use extended rates for the remaining supported
* rates. Other APs, however, stick all of their supported rates on the
* main rates information element... */
#define MAX_RATES_LENGTH ((u8)12)
#define MAX_RATES_EX_LENGTH ((u8)16)
#define MAX_NETWORK_COUNT 128
//#define MAX_CHANNEL_NUMBER 161
#define MAX_CHANNEL_NUMBER 165 //YJ,modified,080625
#define MAX_IE_LEN 0xFF //+YJ,080625 #define MAX_IE_LEN 0xFF //+YJ,080625
typedef struct _CHANNEL_LIST{ typedef struct _CHANNEL_LIST{
...@@ -727,23 +722,12 @@ typedef struct _CHANNEL_LIST{ ...@@ -727,23 +722,12 @@ typedef struct _CHANNEL_LIST{
u8 Len; u8 Len;
}CHANNEL_LIST, *PCHANNEL_LIST; }CHANNEL_LIST, *PCHANNEL_LIST;
#define IEEE80211_SOFTMAC_SCAN_TIME 100//400
//(HZ / 2)
//by amy for ps //by amy for ps
#define IEEE80211_WATCH_DOG_TIME 2000 #define IEEE80211_WATCH_DOG_TIME 2000
//by amy for ps //by amy for ps
//by amy for antenna //by amy for antenna
#define ANTENNA_DIVERSITY_TIMER_PERIOD 1000 // 1000 m #define ANTENNA_DIVERSITY_TIMER_PERIOD 1000 // 1000 m
//by amy for antenna //by amy for antenna
#define IEEE80211_SOFTMAC_ASSOC_RETRY_TIME (HZ * 2)
#define CRC_LENGTH 4U
#define MAX_WPA_IE_LEN 64
#define NETWORK_EMPTY_ESSID (1<<0)
#define NETWORK_HAS_OFDM (1<<1)
#define NETWORK_HAS_CCK (1<<2)
#define IEEE80211_DTIM_MBCAST 4 #define IEEE80211_DTIM_MBCAST 4
#define IEEE80211_DTIM_UCAST 2 #define IEEE80211_DTIM_UCAST 2
...@@ -882,8 +866,6 @@ enum ieee80211_state { ...@@ -882,8 +866,6 @@ enum ieee80211_state {
#define DEFAULT_MAX_SCAN_AGE (15 * HZ) #define DEFAULT_MAX_SCAN_AGE (15 * HZ)
#define DEFAULT_FTS 2346 #define DEFAULT_FTS 2346
#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
#define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5]
#define CFG_IEEE80211_RESERVE_FCS (1<<0) #define CFG_IEEE80211_RESERVE_FCS (1<<0)
#define CFG_IEEE80211_COMPUTE_FCS (1<<1) #define CFG_IEEE80211_COMPUTE_FCS (1<<1)
...@@ -893,6 +875,19 @@ typedef struct tx_pending_t{ ...@@ -893,6 +875,19 @@ typedef struct tx_pending_t{
struct ieee80211_txb *txb; struct ieee80211_txb *txb;
}tx_pending_t; }tx_pending_t;
enum {
COUNTRY_CODE_FCC = 0,
COUNTRY_CODE_IC = 1,
COUNTRY_CODE_ETSI = 2,
COUNTRY_CODE_SPAIN = 3,
COUNTRY_CODE_FRANCE = 4,
COUNTRY_CODE_MKK = 5,
COUNTRY_CODE_MKK1 = 6,
COUNTRY_CODE_ISRAEL = 7,
COUNTRY_CODE_TELEC = 8,
COUNTRY_CODE_GLOBAL_DOMAIN = 9,
COUNTRY_CODE_WORLD_WIDE_13_INDEX = 10
};
struct ieee80211_device { struct ieee80211_device {
struct net_device *dev; struct net_device *dev;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment