Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
75e47b36
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
75e47b36
编写于
3月 01, 2006
作者:
J
Jeff Garzik
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'upstream' of
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
上级
68727fed
07981aa4
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
98 addition
and
128 deletion
+98
-128
drivers/net/Kconfig
drivers/net/Kconfig
+9
-9
drivers/net/arcnet/Kconfig
drivers/net/arcnet/Kconfig
+2
-2
drivers/net/irda/Kconfig
drivers/net/irda/Kconfig
+2
-2
drivers/net/wan/Kconfig
drivers/net/wan/Kconfig
+1
-1
drivers/net/wireless/Kconfig
drivers/net/wireless/Kconfig
+20
-5
drivers/net/wireless/airo.c
drivers/net/wireless/airo.c
+8
-5
drivers/net/wireless/atmel.c
drivers/net/wireless/atmel.c
+36
-74
drivers/net/wireless/ipw2200.c
drivers/net/wireless/ipw2200.c
+3
-4
net/ieee80211/ieee80211_geo.c
net/ieee80211/ieee80211_geo.c
+6
-3
net/ieee80211/ieee80211_module.c
net/ieee80211/ieee80211_module.c
+1
-1
net/ieee80211/ieee80211_wx.c
net/ieee80211/ieee80211_wx.c
+10
-22
未找到文件。
drivers/net/Kconfig
浏览文件 @
75e47b36
...
...
@@ -66,7 +66,7 @@ config BONDING
'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
The driver supports multiple bonding modes to allow for both high
perfomance and high availability operation.
perfo
r
mance and high availability operation.
Refer to <file:Documentation/networking/bonding.txt> for more
information.
...
...
@@ -698,8 +698,8 @@ config VORTEX
depends on NET_VENDOR_3COM && (PCI || EISA)
select MII
---help---
This option enables driver support for a large number of 10
m
bps and
10/100
m
bps EISA, PCI and PCMCIA 3Com network cards:
This option enables driver support for a large number of 10
M
bps and
10/100
M
bps EISA, PCI and PCMCIA 3Com network cards:
"Vortex" (Fast EtherLink 3c590/3c592/3c595/3c597) EISA and PCI
"Boomerang" (EtherLink XL 3c900 or 3c905) PCI
...
...
@@ -1021,7 +1021,7 @@ config EEXPRESS_PRO
depends on NET_ISA
---help---
If you have a network (Ethernet) card of this type, say Y. This
driver supports
i
ntel i82595{FX,TX} based boards. Note however
driver supports
I
ntel i82595{FX,TX} based boards. Note however
that the EtherExpress PRO/100 Ethernet card has its own separate
driver. Please read the Ethernet-HOWTO, available from
<http://www.tldp.org/docs.html#howto>.
...
...
@@ -1207,7 +1207,7 @@ config IBM_EMAC_RX_SKB_HEADROOM
help
Additional receive skb headroom. Note, that driver
will always reserve at least 2 bytes to make IP header
aligned, so usualy there is no need to add any additional
aligned, so usual
l
y there is no need to add any additional
headroom.
If unsure, set to 0.
...
...
@@ -1933,7 +1933,7 @@ config MYRI_SBUS
will be called myri_sbus. This is recommended.
config NS83820
tristate "National Semiconduct DP83820 support"
tristate "National Semiconduct
or
DP83820 support"
depends on PCI
help
This is a driver for the National Semiconductor DP83820 series
...
...
@@ -2513,7 +2513,7 @@ config PPP_FILTER
Say Y here if you want to be able to filter the packets passing over
PPP interfaces. This allows you to control which packets count as
activity (i.e. which packets will reset the idle timer or bring up
a demand-dial
l
ed link) and which packets are to be dropped entirely.
a demand-dialed link) and which packets are to be dropped entirely.
You need to say Y here if you wish to use the pass-filter and
active-filter options to pppd.
...
...
@@ -2701,8 +2701,8 @@ config SHAPER
<file:Documentation/networking/shaper.txt> for more information.
An alternative to this traffic shaper is the experimental
Class-Based Queu
e
ing (CBQ) scheduling support which you get if you
say Y to "QoS and/or fair queu
e
ing" above.
Class-Based Queuing (CBQ) scheduling support which you get if you
say Y to "QoS and/or fair queuing" above.
To compile this driver as a module, choose M here: the module
will be called shaper. If unsure, say N.
...
...
drivers/net/arcnet/Kconfig
浏览文件 @
75e47b36
...
...
@@ -68,10 +68,10 @@ config ARCNET_CAP
packet is stuffed with an extra 4 byte "cookie" which doesn't
actually appear on the network. After transmit the driver will send
back a packet with protocol byte 0 containing the status of the
transmi
t
ion:
transmi
ss
ion:
0=no hardware acknowledge
1=excessive nak
2=transmi
tion accepted by the recie
ver hardware
2=transmi
ssion accepted by the recei
ver hardware
Received packets are also stuffed with the extra 4 bytes but it will
be random data.
...
...
drivers/net/irda/Kconfig
浏览文件 @
75e47b36
...
...
@@ -283,7 +283,7 @@ config USB_IRDA
Say Y here if you want to build support for the USB IrDA FIR Dongle
device driver. To compile it as a module, choose M here: the module
will be called irda-usb. IrDA-USB support the various IrDA USB
dongles available and most of their pecularities. Those dongles
dongles available and most of their pecul
i
arities. Those dongles
plug in the USB port of your computer, are plug and play, and
support SIR and FIR (4Mbps) speeds. On the other hand, those
dongles tend to be less efficient than a FIR chipset.
...
...
@@ -360,7 +360,7 @@ config ALI_FIR
help
Say Y here if you want to build support for the ALi M5123 FIR
Controller. The ALi M5123 FIR Controller is embedded in ALi M1543C,
M1535, M1535D, M1535+, M1535D Sou
r
th Bridge. This driver supports
M1535, M1535D, M1535+, M1535D South Bridge. This driver supports
SIR, MIR and FIR (4Mbps) speeds.
To compile it as a module, choose M here: the module will be called
...
...
drivers/net/wan/Kconfig
浏览文件 @
75e47b36
...
...
@@ -459,7 +459,7 @@ config WANPIPE_FR
bool "WANPIPE Frame Relay support"
depends on VENDOR_SANGOMA
help
Connect a WANPIPE card to a Frame Relay network, or use Frame
F
elay
Connect a WANPIPE card to a Frame Relay network, or use Frame
R
elay
API to develop custom applications.
Contains the Ethernet Bridging over Frame Relay feature, where
...
...
drivers/net/wireless/Kconfig
浏览文件 @
75e47b36
...
...
@@ -136,8 +136,9 @@ comment "Wireless 802.11b ISA/PCI cards support"
config IPW2100
tristate "Intel PRO/Wireless 2100 Network Connection"
depends on NET_RADIO && PCI
&& IEEE80211
depends on NET_RADIO && PCI
select FW_LOADER
select IEEE80211
---help---
A driver for the Intel PRO/Wireless 2100 Network
Connection 802.11b wireless network adapter.
...
...
@@ -189,8 +190,9 @@ config IPW2100_DEBUG
config IPW2200
tristate "Intel PRO/Wireless 2200BG and 2915ABG Network Connection"
depends on NET_RADIO &&
IEEE80211 &&
PCI
depends on NET_RADIO && PCI
select FW_LOADER
select IEEE80211
---help---
A driver for the Intel PRO/Wireless 2200BG and 2915ABG Network
Connection adapters.
...
...
@@ -202,7 +204,7 @@ config IPW2200
In order to use this driver, you will need a firmware image for it.
You can obtain the firmware from
<http://ipw2200.sf.net/>. See the above referenced README.ipw2200
for information on where to install the firmare images.
for information on where to install the firm
w
are images.
You will also very likely need the Wireless Tools in order to
configure your card:
...
...
@@ -214,6 +216,19 @@ config IPW2200
say M here and read <file:Documentation/modules.txt>. The module
will be called ipw2200.ko.
config IPW2200_MONITOR
bool "Enable promiscuous mode"
depends on IPW2200
---help---
Enables promiscuous/monitor mode support for the ipw2200 driver.
With this feature compiled into the driver, you can switch to
promiscuous mode via the Wireless Tool's Monitor mode. While in this
mode, no packets can be sent.
config IPW_QOS
bool "Enable QoS support"
depends on IPW2200 && EXPERIMENTAL
config IPW2200_DEBUG
bool "Enable full debugging output in IPW2200 module."
depends on IPW2200
...
...
@@ -247,7 +262,7 @@ config AIRO
PCI 802.11 wireless cards.
It supports the new 802.11b cards from Cisco (Cisco 34X, Cisco 35X
- with or without encryption) as well as card before the Cisco
aquisition (Aironet 4500, Aironet 4800, Aironet 4800B).
a
c
quisition (Aironet 4500, Aironet 4800, Aironet 4800B).
This driver support both the standard Linux Wireless Extensions
and Cisco proprietary API, so both the Linux Wireless Tools and the
...
...
@@ -396,7 +411,7 @@ config AIRO_CS
driver part of the Linux Pcmcia package.
It supports the new 802.11b cards from Cisco (Cisco 34X, Cisco 35X
- with or without encryption) as well as card before the Cisco
aquisition (Aironet 4500, Aironet 4800, Aironet 4800B). It also
a
c
quisition (Aironet 4500, Aironet 4800, Aironet 4800B). It also
supports OEM of Cisco such as the DELL TrueMobile 4800 and Xircom
802.11b cards.
...
...
drivers/net/wireless/airo.c
浏览文件 @
75e47b36
...
...
@@ -5036,7 +5036,6 @@ static int set_wep_key(struct airo_info *ai, u16 index,
wkr
.
len
=
sizeof
(
wkr
);
wkr
.
kindex
=
0xffff
;
wkr
.
mac
[
0
]
=
(
char
)
index
;
if
(
perm
)
printk
(
KERN_INFO
"Setting transmit key to %d
\n
"
,
index
);
if
(
perm
)
ai
->
defindex
=
(
char
)
index
;
}
else
{
// We are actually setting the key
...
...
@@ -5045,7 +5044,6 @@ static int set_wep_key(struct airo_info *ai, u16 index,
wkr
.
klen
=
keylen
;
memcpy
(
wkr
.
key
,
key
,
keylen
);
memcpy
(
wkr
.
mac
,
macaddr
,
ETH_ALEN
);
printk
(
KERN_INFO
"Setting key %d
\n
"
,
index
);
}
if
(
perm
)
disable_MAC
(
ai
,
lock
);
...
...
@@ -6266,7 +6264,7 @@ static int airo_set_encodeext(struct net_device *dev,
CapabilityRid
cap_rid
;
/* Card capability info */
int
perm
=
(
encoding
->
flags
&
IW_ENCODE_TEMP
?
0
:
1
);
u16
currentAuthType
=
local
->
config
.
authType
;
int
idx
,
key_len
,
alg
=
ext
->
alg
;
/* Check encryption mode */
int
idx
,
key_len
,
alg
=
ext
->
alg
,
set_key
=
1
;
wep_key_t
key
;
/* Is WEP supported ? */
...
...
@@ -6289,10 +6287,15 @@ static int airo_set_encodeext(struct net_device *dev,
if
(
encoding
->
flags
&
IW_ENCODE_DISABLED
)
alg
=
IW_ENCODE_ALG_NONE
;
/* Just setting the transmit key? */
if
(
ext
->
ext_flags
&
IW_ENCODE_EXT_SET_TX_KEY
)
{
/* Only set transmit key index here, actual
* key is set below if needed.
*/
set_wep_key
(
local
,
idx
,
NULL
,
0
,
perm
,
1
);
}
else
{
set_key
=
ext
->
key_len
>
0
?
1
:
0
;
}
if
(
set_key
)
{
/* Set the requested key first */
memset
(
key
.
key
,
0
,
MAX_KEY_SIZE
);
switch
(
alg
)
{
...
...
drivers/net/wireless/atmel.c
浏览文件 @
75e47b36
...
...
@@ -137,44 +137,6 @@ static struct {
#define MAC_BOOT_COMPLETE 0x0010 // MAC boot has been completed
#define MAC_INIT_OK 0x0002 // MAC boot has been completed
#define C80211_SUBTYPE_MGMT_ASS_REQUEST 0x00
#define C80211_SUBTYPE_MGMT_ASS_RESPONSE 0x10
#define C80211_SUBTYPE_MGMT_REASS_REQUEST 0x20
#define C80211_SUBTYPE_MGMT_REASS_RESPONSE 0x30
#define C80211_SUBTYPE_MGMT_ProbeRequest 0x40
#define C80211_SUBTYPE_MGMT_ProbeResponse 0x50
#define C80211_SUBTYPE_MGMT_BEACON 0x80
#define C80211_SUBTYPE_MGMT_ATIM 0x90
#define C80211_SUBTYPE_MGMT_DISASSOSIATION 0xA0
#define C80211_SUBTYPE_MGMT_Authentication 0xB0
#define C80211_SUBTYPE_MGMT_Deauthentication 0xC0
#define C80211_MGMT_AAN_OPENSYSTEM 0x0000
#define C80211_MGMT_AAN_SHAREDKEY 0x0001
#define C80211_MGMT_CAPABILITY_ESS 0x0001 // see 802.11 p.58
#define C80211_MGMT_CAPABILITY_IBSS 0x0002 // - " -
#define C80211_MGMT_CAPABILITY_CFPollable 0x0004 // - " -
#define C80211_MGMT_CAPABILITY_CFPollRequest 0x0008 // - " -
#define C80211_MGMT_CAPABILITY_Privacy 0x0010 // - " -
#define C80211_MGMT_SC_Success 0
#define C80211_MGMT_SC_Unspecified 1
#define C80211_MGMT_SC_SupportCapabilities 10
#define C80211_MGMT_SC_ReassDenied 11
#define C80211_MGMT_SC_AssDenied 12
#define C80211_MGMT_SC_AuthAlgNotSupported 13
#define C80211_MGMT_SC_AuthTransSeqNumError 14
#define C80211_MGMT_SC_AuthRejectChallenge 15
#define C80211_MGMT_SC_AuthRejectTimeout 16
#define C80211_MGMT_SC_AssDeniedHandleAP 17
#define C80211_MGMT_SC_AssDeniedBSSRate 18
#define C80211_MGMT_ElementID_SSID 0
#define C80211_MGMT_ElementID_SupportedRates 1
#define C80211_MGMT_ElementID_ChallengeText 16
#define C80211_MGMT_CAPABILITY_ShortPreamble 0x0020
#define MIB_MAX_DATA_BYTES 212
#define MIB_HEADER_SIZE 4
/* first four fields */
...
...
@@ -2835,7 +2797,7 @@ static void handle_beacon_probe(struct atmel_private *priv, u16 capability,
u8
channel
)
{
int
rejoin
=
0
;
int
new
=
capability
&
C80211_MGMT_CAPABILITY_ShortPreamble
?
int
new
=
capability
&
MFIE_TYPE_POWER_CONSTRAINT
?
SHORT_PREAMBLE
:
LONG_PREAMBLE
;
if
(
priv
->
preamble
!=
new
)
{
...
...
@@ -2921,11 +2883,11 @@ static void send_association_request(struct atmel_private *priv, int is_reassoc)
memcpy
(
header
.
addr2
,
priv
->
dev
->
dev_addr
,
6
);
memcpy
(
header
.
addr3
,
priv
->
CurrentBSSID
,
6
);
body
.
capability
=
cpu_to_le16
(
C80211_MGMT
_CAPABILITY_ESS
);
body
.
capability
=
cpu_to_le16
(
WLAN
_CAPABILITY_ESS
);
if
(
priv
->
wep_is_on
)
body
.
capability
|=
cpu_to_le16
(
C80211_MGMT_CAPABILITY_Privacy
);
body
.
capability
|=
cpu_to_le16
(
WLAN_CAPABILITY_PRIVACY
);
if
(
priv
->
preamble
==
SHORT_PREAMBLE
)
body
.
capability
|=
cpu_to_le16
(
C80211_MGMT_CAPABILITY_ShortPreamble
);
body
.
capability
|=
cpu_to_le16
(
MFIE_TYPE_POWER_CONSTRAINT
);
body
.
listen_interval
=
cpu_to_le16
(
priv
->
listen_interval
*
priv
->
beacon_period
);
...
...
@@ -2939,10 +2901,10 @@ static void send_association_request(struct atmel_private *priv, int is_reassoc)
bodysize
=
12
+
priv
->
SSID_size
;
}
ssid_el_p
[
0
]
=
C80211_MGMT_ElementID
_SSID
;
ssid_el_p
[
0
]
=
MFIE_TYPE
_SSID
;
ssid_el_p
[
1
]
=
priv
->
SSID_size
;
memcpy
(
ssid_el_p
+
2
,
priv
->
SSID
,
priv
->
SSID_size
);
ssid_el_p
[
2
+
priv
->
SSID_size
]
=
C80211_MGMT_ElementID_SupportedRates
;
ssid_el_p
[
2
+
priv
->
SSID_size
]
=
MFIE_TYPE_RATES
;
ssid_el_p
[
3
+
priv
->
SSID_size
]
=
4
;
/* len of suported rates */
memcpy
(
ssid_el_p
+
4
+
priv
->
SSID_size
,
atmel_basic_rates
,
4
);
...
...
@@ -3004,7 +2966,7 @@ static void store_bss_info(struct atmel_private *priv,
u16
beacon_period
,
u8
channel
,
u8
rssi
,
u8
ssid_len
,
u8
*
ssid
,
int
is_beacon
)
{
u8
*
bss
=
capability
&
C80211_MGMT
_CAPABILITY_ESS
?
header
->
addr2
:
header
->
addr3
;
u8
*
bss
=
capability
&
WLAN
_CAPABILITY_ESS
?
header
->
addr2
:
header
->
addr3
;
int
i
,
index
;
for
(
index
=
-
1
,
i
=
0
;
i
<
priv
->
BSS_list_entries
;
i
++
)
...
...
@@ -3030,16 +2992,16 @@ static void store_bss_info(struct atmel_private *priv,
priv
->
BSSinfo
[
index
].
channel
=
channel
;
priv
->
BSSinfo
[
index
].
beacon_period
=
beacon_period
;
priv
->
BSSinfo
[
index
].
UsingWEP
=
capability
&
C80211_MGMT_CAPABILITY_Privacy
;
priv
->
BSSinfo
[
index
].
UsingWEP
=
capability
&
WLAN_CAPABILITY_PRIVACY
;
memcpy
(
priv
->
BSSinfo
[
index
].
SSID
,
ssid
,
ssid_len
);
priv
->
BSSinfo
[
index
].
SSIDsize
=
ssid_len
;
if
(
capability
&
C80211_MGMT
_CAPABILITY_IBSS
)
if
(
capability
&
WLAN
_CAPABILITY_IBSS
)
priv
->
BSSinfo
[
index
].
BSStype
=
IW_MODE_ADHOC
;
else
if
(
capability
&
C80211_MGMT
_CAPABILITY_ESS
)
else
if
(
capability
&
WLAN
_CAPABILITY_ESS
)
priv
->
BSSinfo
[
index
].
BSStype
=
IW_MODE_INFRA
;
priv
->
BSSinfo
[
index
].
preamble
=
capability
&
C80211_MGMT_CAPABILITY_ShortPreamble
?
priv
->
BSSinfo
[
index
].
preamble
=
capability
&
MFIE_TYPE_POWER_CONSTRAINT
?
SHORT_PREAMBLE
:
LONG_PREAMBLE
;
}
...
...
@@ -3050,7 +3012,7 @@ static void authenticate(struct atmel_private *priv, u16 frame_len)
u16
trans_seq_no
=
le16_to_cpu
(
auth
->
trans_seq
);
u16
system
=
le16_to_cpu
(
auth
->
alg
);
if
(
status
==
C80211_MGMT_SC_Success
&&
!
priv
->
wep_is_on
)
{
if
(
status
==
WLAN_STATUS_SUCCESS
&&
!
priv
->
wep_is_on
)
{
/* no WEP */
if
(
priv
->
station_was_associated
)
{
atmel_enter_state
(
priv
,
STATION_STATE_REASSOCIATING
);
...
...
@@ -3063,19 +3025,19 @@ static void authenticate(struct atmel_private *priv, u16 frame_len)
}
}
if
(
status
==
C80211_MGMT_SC_Success
&&
priv
->
wep_is_on
)
{
if
(
status
==
WLAN_STATUS_SUCCESS
&&
priv
->
wep_is_on
)
{
int
should_associate
=
0
;
/* WEP */
if
(
trans_seq_no
!=
priv
->
ExpectedAuthentTransactionSeqNum
)
return
;
if
(
system
==
C80211_MGMT_AAN_OPENSYSTEM
)
{
if
(
system
==
WLAN_AUTH_OPEN
)
{
if
(
trans_seq_no
==
0x0002
)
{
should_associate
=
1
;
}
}
else
if
(
system
==
C80211_MGMT_AAN_SHARED
KEY
)
{
}
else
if
(
system
==
WLAN_AUTH_SHARED_
KEY
)
{
if
(
trans_seq_no
==
0x0002
&&
auth
->
el_id
==
C80211_MGMT_ElementID_ChallengeText
)
{
auth
->
el_id
==
MFIE_TYPE_CHALLENGE
)
{
send_authentication_request
(
priv
,
system
,
auth
->
chall_text
,
auth
->
chall_text_len
);
return
;
}
else
if
(
trans_seq_no
==
0x0004
)
{
...
...
@@ -3140,8 +3102,8 @@ static void associate(struct atmel_private *priv, u16 frame_len, u16 subtype)
if
(
frame_len
<
8
+
rates_len
)
return
;
if
(
status
==
C80211_MGMT_SC_Success
)
{
if
(
subtype
==
C80211_SUBTYPE_MGMT_ASS_RESPONSE
)
if
(
status
==
WLAN_STATUS_SUCCESS
)
{
if
(
subtype
==
IEEE80211_STYPE_ASSOC_RESP
)
priv
->
AssociationRequestRetryCnt
=
0
;
else
priv
->
ReAssociationRequestRetryCnt
=
0
;
...
...
@@ -3178,9 +3140,9 @@ static void associate(struct atmel_private *priv, u16 frame_len, u16 subtype)
return
;
}
if
(
subtype
==
C80211_SUBTYPE_MGMT_ASS_RESPONSE
&&
status
!=
C80211_MGMT_SC_AssDeniedBSSRate
&&
status
!=
C80211_MGMT_SC_SupportCapabilities
&&
if
(
subtype
==
IEEE80211_STYPE_ASSOC_RESP
&&
status
!=
WLAN_STATUS_ASSOC_DENIED_RATES
&&
status
!=
WLAN_STATUS_CAPS_UNSUPPORTED
&&
priv
->
AssociationRequestRetryCnt
<
MAX_ASSOCIATION_RETRIES
)
{
mod_timer
(
&
priv
->
management_timer
,
jiffies
+
MGMT_JIFFIES
);
priv
->
AssociationRequestRetryCnt
++
;
...
...
@@ -3188,9 +3150,9 @@ static void associate(struct atmel_private *priv, u16 frame_len, u16 subtype)
return
;
}
if
(
subtype
==
C80211_SUBTYPE_MGMT_REASS_RESPONSE
&&
status
!=
C80211_MGMT_SC_AssDeniedBSSRate
&&
status
!=
C80211_MGMT_SC_SupportCapabilities
&&
if
(
subtype
==
IEEE80211_STYPE_REASSOC_RESP
&&
status
!=
WLAN_STATUS_ASSOC_DENIED_RATES
&&
status
!=
WLAN_STATUS_CAPS_UNSUPPORTED
&&
priv
->
AssociationRequestRetryCnt
<
MAX_ASSOCIATION_RETRIES
)
{
mod_timer
(
&
priv
->
management_timer
,
jiffies
+
MGMT_JIFFIES
);
priv
->
ReAssociationRequestRetryCnt
++
;
...
...
@@ -3325,8 +3287,8 @@ static void atmel_management_frame(struct atmel_private *priv,
subtype
=
le16_to_cpu
(
header
->
frame_ctl
)
&
IEEE80211_FCTL_STYPE
;
switch
(
subtype
)
{
case
C80211_SUBTYPE_MGMT
_BEACON
:
case
C80211_SUBTYPE_MGMT_ProbeResponse
:
case
IEEE80211_STYPE
_BEACON
:
case
IEEE80211_STYPE_PROBE_RESP
:
/* beacon frame has multiple variable-length fields -
never let an engineer loose with a data structure design. */
...
...
@@ -3384,19 +3346,19 @@ static void atmel_management_frame(struct atmel_private *priv,
beacon_interval
,
channel
,
rssi
,
ssid_length
,
&
beacon
->
rates_el_id
,
subtype
==
C80211_SUBTYPE_MGMT
_BEACON
);
subtype
==
IEEE80211_STYPE
_BEACON
);
}
break
;
case
C80211_SUBTYPE_MGMT_Authentication
:
case
IEEE80211_STYPE_AUTH
:
if
(
priv
->
station_state
==
STATION_STATE_AUTHENTICATING
)
authenticate
(
priv
,
frame_len
);
break
;
case
C80211_SUBTYPE_MGMT_ASS_RESPONSE
:
case
C80211_SUBTYPE_MGMT_REASS_RESPONSE
:
case
IEEE80211_STYPE_ASSOC_RESP
:
case
IEEE80211_STYPE_REASSOC_RESP
:
if
(
priv
->
station_state
==
STATION_STATE_ASSOCIATING
||
priv
->
station_state
==
STATION_STATE_REASSOCIATING
)
...
...
@@ -3404,7 +3366,7 @@ static void atmel_management_frame(struct atmel_private *priv,
break
;
case
C80211_SUBTYPE_MGMT_DISASSOSIATION
:
case
IEEE80211_STYPE_DISASSOC
:
if
(
priv
->
station_is_associated
&&
priv
->
operating_mode
==
IW_MODE_INFRA
&&
is_frame_from_current_bss
(
priv
,
header
))
{
...
...
@@ -3417,7 +3379,7 @@ static void atmel_management_frame(struct atmel_private *priv,
break
;
case
C80211_SUBTYPE_MGMT_Deauthentication
:
case
IEEE80211_STYPE_DEAUTH
:
if
(
priv
->
operating_mode
==
IW_MODE_INFRA
&&
is_frame_from_current_bss
(
priv
,
header
))
{
priv
->
station_was_associated
=
0
;
...
...
@@ -3453,12 +3415,12 @@ static void atmel_management_timer(u_long a)
priv
->
AuthenticationRequestRetryCnt
=
0
;
restart_search
(
priv
);
}
else
{
int
auth
=
C80211_MGMT_AAN_OPENSYSTEM
;
int
auth
=
WLAN_AUTH_OPEN
;
priv
->
AuthenticationRequestRetryCnt
++
;
priv
->
CurrentAuthentTransactionSeqNum
=
0x0001
;
mod_timer
(
&
priv
->
management_timer
,
jiffies
+
MGMT_JIFFIES
);
if
(
priv
->
wep_is_on
&&
priv
->
exclude_unencrypted
)
auth
=
C80211_MGMT_AAN_SHARED
KEY
;
auth
=
WLAN_AUTH_SHARED_
KEY
;
send_authentication_request
(
priv
,
auth
,
NULL
,
0
);
}
break
;
...
...
@@ -3558,14 +3520,14 @@ static void atmel_command_irq(struct atmel_private *priv)
priv
->
station_was_associated
=
priv
->
station_is_associated
;
atmel_enter_state
(
priv
,
STATION_STATE_READY
);
}
else
{
int
auth
=
C80211_MGMT_AAN_OPENSYSTEM
;
int
auth
=
WLAN_AUTH_OPEN
;
priv
->
AuthenticationRequestRetryCnt
=
0
;
atmel_enter_state
(
priv
,
STATION_STATE_AUTHENTICATING
);
mod_timer
(
&
priv
->
management_timer
,
jiffies
+
MGMT_JIFFIES
);
priv
->
CurrentAuthentTransactionSeqNum
=
0x0001
;
if
(
priv
->
wep_is_on
&&
priv
->
exclude_unencrypted
)
auth
=
C80211_MGMT_AAN_SHARED
KEY
;
auth
=
WLAN_AUTH_SHARED_
KEY
;
send_authentication_request
(
priv
,
auth
,
NULL
,
0
);
}
return
;
...
...
drivers/net/wireless/ipw2200.c
浏览文件 @
75e47b36
...
...
@@ -5533,8 +5533,8 @@ static int ipw_best_network(struct ipw_priv *priv,
return
0
;
}
if
(
!
priv
->
ieee
->
wpa_enabled
&&
(
network
->
wpa_ie_len
>
0
||
network
->
rsn_ie_len
>
0
)
)
{
if
(
priv
->
ieee
->
wpa_enabled
&&
network
->
wpa_ie_len
==
0
&&
network
->
rsn_ie_len
==
0
)
{
IPW_DEBUG_ASSOC
(
"Network '%s ("
MAC_FMT
")' excluded "
"because of WPA capability mismatch.
\n
"
,
escape_essid
(
network
->
ssid
,
network
->
ssid_len
),
...
...
@@ -7061,8 +7061,7 @@ static int ipw_associate_network(struct ipw_priv *priv,
priv
->
assoc_request
.
auth_type
=
AUTH_SHARED_KEY
;
priv
->
assoc_request
.
auth_key
=
priv
->
ieee
->
sec
.
active_key
;
if
((
priv
->
ieee
->
sec
.
level
==
SEC_LEVEL_1
)
&&
!
(
priv
->
ieee
->
host_encrypt
||
priv
->
ieee
->
host_decrypt
))
if
(
priv
->
ieee
->
sec
.
level
==
SEC_LEVEL_1
)
ipw_send_wep_keys
(
priv
,
DCW_WEP_KEY_SEC_TYPE_WEP
);
}
else
if
((
priv
->
capability
&
CAP_PRIVACY_ON
)
&&
...
...
net/ieee80211/ieee80211_geo.c
浏览文件 @
75e47b36
...
...
@@ -50,7 +50,8 @@ int ieee80211_is_valid_channel(struct ieee80211_device *ieee, u8 channel)
/* Driver needs to initialize the geography map before using
* these helper functions */
BUG_ON
(
ieee
->
geo
.
bg_channels
==
0
&&
ieee
->
geo
.
a_channels
==
0
);
if
(
ieee
->
geo
.
bg_channels
==
0
&&
ieee
->
geo
.
a_channels
==
0
)
return
0
;
if
(
ieee
->
freq_band
&
IEEE80211_24GHZ_BAND
)
for
(
i
=
0
;
i
<
ieee
->
geo
.
bg_channels
;
i
++
)
...
...
@@ -78,7 +79,8 @@ int ieee80211_channel_to_index(struct ieee80211_device *ieee, u8 channel)
/* Driver needs to initialize the geography map before using
* these helper functions */
BUG_ON
(
ieee
->
geo
.
bg_channels
==
0
&&
ieee
->
geo
.
a_channels
==
0
);
if
(
ieee
->
geo
.
bg_channels
==
0
&&
ieee
->
geo
.
a_channels
==
0
)
return
-
1
;
if
(
ieee
->
freq_band
&
IEEE80211_24GHZ_BAND
)
for
(
i
=
0
;
i
<
ieee
->
geo
.
bg_channels
;
i
++
)
...
...
@@ -99,7 +101,8 @@ u8 ieee80211_freq_to_channel(struct ieee80211_device * ieee, u32 freq)
/* Driver needs to initialize the geography map before using
* these helper functions */
BUG_ON
(
ieee
->
geo
.
bg_channels
==
0
&&
ieee
->
geo
.
a_channels
==
0
);
if
(
ieee
->
geo
.
bg_channels
==
0
&&
ieee
->
geo
.
a_channels
==
0
)
return
0
;
freq
/=
100000
;
...
...
net/ieee80211/ieee80211_module.c
浏览文件 @
75e47b36
...
...
@@ -213,7 +213,7 @@ void free_ieee80211(struct net_device *dev)
static
int
debug
=
0
;
u32
ieee80211_debug_level
=
0
;
struct
proc_dir_entry
*
ieee80211_proc
=
NULL
;
st
atic
st
ruct
proc_dir_entry
*
ieee80211_proc
=
NULL
;
static
int
show_debug_level
(
char
*
page
,
char
**
start
,
off_t
offset
,
int
count
,
int
*
eof
,
void
*
data
)
...
...
net/ieee80211/ieee80211_wx.c
浏览文件 @
75e47b36
...
...
@@ -193,33 +193,21 @@ static char *ipw2100_translate_scan(struct ieee80211_device *ieee,
if
(
iwe
.
u
.
data
.
length
)
start
=
iwe_stream_add_point
(
start
,
stop
,
&
iwe
,
custom
);
memset
(
&
iwe
,
0
,
sizeof
(
iwe
));
if
(
network
->
wpa_ie_len
)
{
char
buf
[
MAX_WPA_IE_LEN
*
2
+
30
];
u8
*
p
=
buf
;
p
+=
sprintf
(
p
,
"wpa_ie="
);
for
(
i
=
0
;
i
<
network
->
wpa_ie_len
;
i
++
)
{
p
+=
sprintf
(
p
,
"%02x"
,
network
->
wpa_ie
[
i
]);
}
memset
(
&
iwe
,
0
,
sizeof
(
iwe
));
iwe
.
cmd
=
IWEVCUSTOM
;
iwe
.
u
.
data
.
length
=
strlen
(
buf
);
char
buf
[
MAX_WPA_IE_LEN
];
memcpy
(
buf
,
network
->
wpa_ie
,
network
->
wpa_ie_len
);
iwe
.
cmd
=
IWEVGENIE
;
iwe
.
u
.
data
.
length
=
network
->
wpa_ie_len
;
start
=
iwe_stream_add_point
(
start
,
stop
,
&
iwe
,
buf
);
}
memset
(
&
iwe
,
0
,
sizeof
(
iwe
));
if
(
network
->
rsn_ie_len
)
{
char
buf
[
MAX_WPA_IE_LEN
*
2
+
30
];
u8
*
p
=
buf
;
p
+=
sprintf
(
p
,
"rsn_ie="
);
for
(
i
=
0
;
i
<
network
->
rsn_ie_len
;
i
++
)
{
p
+=
sprintf
(
p
,
"%02x"
,
network
->
rsn_ie
[
i
]);
}
memset
(
&
iwe
,
0
,
sizeof
(
iwe
));
iwe
.
cmd
=
IWEVCUSTOM
;
iwe
.
u
.
data
.
length
=
strlen
(
buf
);
char
buf
[
MAX_WPA_IE_LEN
];
memcpy
(
buf
,
network
->
rsn_ie
,
network
->
rsn_ie_len
);
iwe
.
cmd
=
IWEVGENIE
;
iwe
.
u
.
data
.
length
=
network
->
rsn_ie_len
;
start
=
iwe_stream_add_point
(
start
,
stop
,
&
iwe
,
buf
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录