Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
b4bf3430
Commit
b4bf3430
authored
Aug 25, 2005
by
Jeff Garzik
Browse files
Options
Browse Files
Download
Plain Diff
/spare/repo/netdev-2.6 branch 'ieee80211'
parents
343b0597
099c5bb1
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
317 additions
and
275 deletions
+317
-275
drivers/net/wireless/Kconfig
drivers/net/wireless/Kconfig
+1
-1
drivers/net/wireless/atmel.c
drivers/net/wireless/atmel.c
+4
-4
drivers/net/wireless/ipw2100.c
drivers/net/wireless/ipw2100.c
+147
-109
drivers/net/wireless/ipw2100.h
drivers/net/wireless/ipw2100.h
+0
-28
drivers/net/wireless/ipw2200.c
drivers/net/wireless/ipw2200.c
+1
-9
drivers/net/wireless/ipw2200.h
drivers/net/wireless/ipw2200.h
+1
-29
include/net/ieee80211.h
include/net/ieee80211.h
+128
-86
net/ieee80211/ieee80211_module.c
net/ieee80211/ieee80211_module.c
+26
-0
net/ieee80211/ieee80211_rx.c
net/ieee80211/ieee80211_rx.c
+8
-8
net/ieee80211/ieee80211_tx.c
net/ieee80211/ieee80211_tx.c
+1
-1
No files found.
drivers/net/wireless/Kconfig
View file @
b4bf3430
...
...
@@ -164,7 +164,7 @@ config IPW2100
say M here and read <file:Documentation/modules.txt>. The module
will be called ipw2100.ko.
config IPW2100_
PROMISC
config IPW2100_
MONITOR
bool "Enable promiscuous mode"
depends on IPW2100
---help---
...
...
drivers/net/wireless/atmel.c
View file @
b4bf3430
...
...
@@ -867,7 +867,7 @@ static int start_tx (struct sk_buff *skb, struct net_device *dev)
header
.
duration_id
=
0
;
header
.
seq_ctl
=
0
;
if
(
priv
->
wep_is_on
)
frame_ctl
|=
IEEE80211_FCTL_
WEP
;
frame_ctl
|=
IEEE80211_FCTL_
PROTECTED
;
if
(
priv
->
operating_mode
==
IW_MODE_ADHOC
)
{
memcpy
(
&
header
.
addr1
,
skb
->
data
,
6
);
memcpy
(
&
header
.
addr2
,
dev
->
dev_addr
,
6
);
...
...
@@ -1117,7 +1117,7 @@ static void rx_done_irq(struct atmel_private *priv)
/* probe for CRC use here if needed once five packets have arrived with
the same crc status, we assume we know what's happening and stop probing */
if
(
priv
->
probe_crc
)
{
if
(
!
priv
->
wep_is_on
||
!
(
frame_ctl
&
IEEE80211_FCTL_
WEP
))
{
if
(
!
priv
->
wep_is_on
||
!
(
frame_ctl
&
IEEE80211_FCTL_
PROTECTED
))
{
priv
->
do_rx_crc
=
probe_crc
(
priv
,
rx_packet_loc
,
msdu_size
);
}
else
{
priv
->
do_rx_crc
=
probe_crc
(
priv
,
rx_packet_loc
+
24
,
msdu_size
-
24
);
...
...
@@ -1132,7 +1132,7 @@ static void rx_done_irq(struct atmel_private *priv)
}
/* don't CRC header when WEP in use */
if
(
priv
->
do_rx_crc
&&
(
!
priv
->
wep_is_on
||
!
(
frame_ctl
&
IEEE80211_FCTL_
WEP
)))
{
if
(
priv
->
do_rx_crc
&&
(
!
priv
->
wep_is_on
||
!
(
frame_ctl
&
IEEE80211_FCTL_
PROTECTED
)))
{
crc
=
crc32_le
(
0xffffffff
,
(
unsigned
char
*
)
&
header
,
24
);
}
msdu_size
-=
24
;
/* header */
...
...
@@ -2677,7 +2677,7 @@ static void send_authentication_request(struct atmel_private *priv, u8 *challeng
auth
.
alg
=
cpu_to_le16
(
C80211_MGMT_AAN_SHAREDKEY
);
/* no WEP for authentication frames with TrSeqNo 1 */
if
(
priv
->
CurrentAuthentTransactionSeqNum
!=
1
)
header
.
frame_ctl
|=
cpu_to_le16
(
IEEE80211_FCTL_
WEP
);
header
.
frame_ctl
|=
cpu_to_le16
(
IEEE80211_FCTL_
PROTECTED
);
}
else
{
auth
.
alg
=
cpu_to_le16
(
C80211_MGMT_AAN_OPENSYSTEM
);
}
...
...
drivers/net/wireless/ipw2100.c
View file @
b4bf3430
This diff is collapsed.
Click to expand it.
drivers/net/wireless/ipw2100.h
View file @
b4bf3430
...
...
@@ -48,22 +48,6 @@ struct ipw2100_priv;
struct
ipw2100_tx_packet
;
struct
ipw2100_rx_packet
;
#ifdef CONFIG_IPW_DEBUG
enum
{
IPW_DEBUG_ENABLED
=
1
};
extern
u32
ipw2100_debug_level
;
#define IPW_DEBUG(level, message...) \
do { \
if (ipw2100_debug_level & (level)) { \
printk(KERN_DEBUG "ipw2100: %c %s ", \
in_interrupt() ? 'I' : 'U', __FUNCTION__); \
printk(message); \
} \
} while (0)
#else
enum
{
IPW_DEBUG_ENABLED
=
0
};
#define IPW_DEBUG(level, message...) do {} while (0)
#endif
/* CONFIG_IPW_DEBUG */
#define IPW_DL_UNINIT 0x80000000
#define IPW_DL_NONE 0x00000000
#define IPW_DL_ALL 0x7FFFFFFF
...
...
@@ -1144,10 +1128,6 @@ typedef enum _ORDINAL_TABLE_2 { // NS - means Not Supported by FW
#define WIRELESS_SPY // enable iwspy support
#endif
extern
struct
iw_handler_def
ipw2100_wx_handler_def
;
extern
struct
iw_statistics
*
ipw2100_wx_wireless_stats
(
struct
net_device
*
dev
);
extern
void
ipw2100_wx_event_work
(
struct
ipw2100_priv
*
priv
);
#define IPW_HOST_FW_SHARED_AREA0 0x0002f200
#define IPW_HOST_FW_SHARED_AREA0_END 0x0002f510 // 0x310 bytes
...
...
@@ -1182,14 +1162,6 @@ struct ipw2100_fw {
const
struct
firmware
*
fw_entry
;
};
int
ipw2100_get_firmware
(
struct
ipw2100_priv
*
priv
,
struct
ipw2100_fw
*
fw
);
void
ipw2100_release_firmware
(
struct
ipw2100_priv
*
priv
,
struct
ipw2100_fw
*
fw
);
int
ipw2100_fw_download
(
struct
ipw2100_priv
*
priv
,
struct
ipw2100_fw
*
fw
);
int
ipw2100_ucode_download
(
struct
ipw2100_priv
*
priv
,
struct
ipw2100_fw
*
fw
);
#define MAX_FW_VERSION_LEN 14
int
ipw2100_get_fwversion
(
struct
ipw2100_priv
*
priv
,
char
*
buf
,
size_t
max
);
int
ipw2100_get_ucodeversion
(
struct
ipw2100_priv
*
priv
,
char
*
buf
,
size_t
max
);
#endif
/* _IPW2100_H */
drivers/net/wireless/ipw2200.c
View file @
b4bf3430
...
...
@@ -4485,7 +4485,7 @@ static void ipw_debug_config(struct ipw_priv *priv)
IPW_DEBUG_INFO
(
"RATE MASK: 0x%08X
\n
"
,
priv
->
rates_mask
);
}
#else
#define ipw_debug_config(x) do {} while (0)
;
#define ipw_debug_config(x) do {} while (0)
#endif
static
inline
void
ipw_set_fixed_rate
(
struct
ipw_priv
*
priv
,
...
...
@@ -6617,11 +6617,7 @@ static int ipw_setup_deferred_work(struct ipw_priv *priv)
{
int
ret
=
0
;
#ifdef CONFIG_SOFTWARE_SUSPEND2
priv
->
workqueue
=
create_workqueue
(
DRV_NAME
,
0
);
#else
priv
->
workqueue
=
create_workqueue
(
DRV_NAME
);
#endif
init_waitqueue_head
(
&
priv
->
wait_command_queue
);
INIT_WORK
(
&
priv
->
adhoc_check
,
ipw_adhoc_check
,
priv
);
...
...
@@ -7242,11 +7238,7 @@ static int ipw_pci_suspend(struct pci_dev *pdev, u32 state)
/* Remove the PRESENT state of the device */
netif_device_detach
(
dev
);
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
pci_save_state
(
pdev
,
priv
->
pm_state
);
#else
pci_save_state
(
pdev
);
#endif
pci_disable_device
(
pdev
);
pci_set_power_state
(
pdev
,
state
);
...
...
drivers/net/wireless/ipw2200.h
View file @
b4bf3430
...
...
@@ -53,26 +53,6 @@
#include <linux/workqueue.h>
#ifndef IRQ_NONE
typedef
void
irqreturn_t
;
#define IRQ_NONE
#define IRQ_HANDLED
#define IRQ_RETVAL(x)
#endif
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9) )
#define __iomem
#endif
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5) )
#define pci_dma_sync_single_for_cpu pci_dma_sync_single
#define pci_dma_sync_single_for_device pci_dma_sync_single
#endif
#ifndef HAVE_FREE_NETDEV
#define free_netdev(x) kfree(x)
#endif
/* Authentication and Association States */
enum
connection_manager_assoc_states
{
...
...
@@ -93,8 +73,6 @@ enum connection_manager_assoc_states
};
#define IPW_NORMAL 0
#define IPW_NOWAIT 0
#define IPW_WAIT (1<<0)
#define IPW_QUIET (1<<1)
#define IPW_ROAMING (1<<2)
...
...
@@ -200,7 +178,7 @@ enum connection_manager_assoc_states
/* even if MAC WEP set (allows pre-encrypt) */
#define DCT_FLAG_NO_WEP 0x20
#define IPW_
/* overwrite TSF field */
#define DCT_FLAG_TSF_REQD 0x40
...
...
@@ -533,12 +511,6 @@ struct notif_authenticate {
u16
status
;
}
__attribute__
((
packed
));
struct
temperature
{
s32
measured
;
s32
active
;
}
__attribute__
((
packed
));
struct
notif_calibration
{
u8
data
[
104
];
}
__attribute__
((
packed
));
...
...
include/net/ieee80211.h
View file @
b4bf3430
This diff is collapsed.
Click to expand it.
net/ieee80211/ieee80211_module.c
View file @
b4bf3430
...
...
@@ -269,5 +269,31 @@ module_exit(ieee80211_exit);
module_init
(
ieee80211_init
);
#endif
const
char
*
escape_essid
(
const
char
*
essid
,
u8
essid_len
)
{
static
char
escaped
[
IW_ESSID_MAX_SIZE
*
2
+
1
];
const
char
*
s
=
essid
;
char
*
d
=
escaped
;
if
(
ieee80211_is_empty_essid
(
essid
,
essid_len
))
{
memcpy
(
escaped
,
"<hidden>"
,
sizeof
(
"<hidden>"
));
return
escaped
;
}
essid_len
=
min
(
essid_len
,
(
u8
)
IW_ESSID_MAX_SIZE
);
while
(
essid_len
--
)
{
if
(
*
s
==
'\0'
)
{
*
d
++
=
'\\'
;
*
d
++
=
'0'
;
s
++
;
}
else
{
*
d
++
=
*
s
++
;
}
}
*
d
=
'\0'
;
return
escaped
;
}
EXPORT_SYMBOL
(
alloc_ieee80211
);
EXPORT_SYMBOL
(
free_ieee80211
);
EXPORT_SYMBOL
(
escape_essid
);
net/ieee80211/ieee80211_rx.c
View file @
b4bf3430
...
...
@@ -439,7 +439,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
crypt
->
ops
->
decrypt_mpdu
==
NULL
))
crypt
=
NULL
;
if
(
!
crypt
&&
(
fc
&
IEEE80211_FCTL_
WEP
))
{
if
(
!
crypt
&&
(
fc
&
IEEE80211_FCTL_
PROTECTED
))
{
/* This seems to be triggered by some (multicast?)
* frames from other than current BSS, so just drop the
* frames silently instead of filling system log with
...
...
@@ -455,7 +455,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
#ifdef NOT_YET
if
(
type
!=
WLAN_FC_TYPE_DATA
)
{
if
(
type
==
WLAN_FC_TYPE_MGMT
&&
stype
==
WLAN_FC_STYPE_AUTH
&&
fc
&
IEEE80211_FCTL_
WEP
&&
ieee
->
host_decrypt
&&
fc
&
IEEE80211_FCTL_
PROTECTED
&&
ieee
->
host_decrypt
&&
(
keyidx
=
hostap_rx_frame_decrypt
(
ieee
,
skb
,
crypt
))
<
0
)
{
printk
(
KERN_DEBUG
"%s: failed to decrypt mgmt::auth "
...
...
@@ -556,7 +556,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
/* skb: hdr + (possibly fragmented, possibly encrypted) payload */
if
(
ieee
->
host_decrypt
&&
(
fc
&
IEEE80211_FCTL_
WEP
)
&&
if
(
ieee
->
host_decrypt
&&
(
fc
&
IEEE80211_FCTL_
PROTECTED
)
&&
(
keyidx
=
ieee80211_rx_frame_decrypt
(
ieee
,
skb
,
crypt
))
<
0
)
goto
rx_dropped
;
...
...
@@ -564,7 +564,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
/* skb: hdr + (possibly fragmented) plaintext payload */
// PR: FIXME: hostap has additional conditions in the "if" below:
// ieee->host_decrypt && (fc & IEEE80211_FCTL_
WEP
) &&
// ieee->host_decrypt && (fc & IEEE80211_FCTL_
PROTECTED
) &&
if
((
frag
!=
0
||
(
fc
&
IEEE80211_FCTL_MOREFRAGS
)))
{
int
flen
;
struct
sk_buff
*
frag_skb
=
ieee80211_frag_cache_get
(
ieee
,
hdr
);
...
...
@@ -620,12 +620,12 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
/* skb: hdr + (possible reassembled) full MSDU payload; possibly still
* encrypted/authenticated */
if
(
ieee
->
host_decrypt
&&
(
fc
&
IEEE80211_FCTL_
WEP
)
&&
if
(
ieee
->
host_decrypt
&&
(
fc
&
IEEE80211_FCTL_
PROTECTED
)
&&
ieee80211_rx_frame_decrypt_msdu
(
ieee
,
skb
,
keyidx
,
crypt
))
goto
rx_dropped
;
hdr
=
(
struct
ieee80211_hdr
*
)
skb
->
data
;
if
(
crypt
&&
!
(
fc
&
IEEE80211_FCTL_
WEP
)
&&
!
ieee
->
open_wep
)
{
if
(
crypt
&&
!
(
fc
&
IEEE80211_FCTL_
PROTECTED
)
&&
!
ieee
->
open_wep
)
{
if
(
/*ieee->ieee802_1x &&*/
ieee80211_is_eapol_frame
(
ieee
,
skb
))
{
#ifdef CONFIG_IEEE80211_DEBUG
...
...
@@ -646,7 +646,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
}
#ifdef CONFIG_IEEE80211_DEBUG
if
(
crypt
&&
!
(
fc
&
IEEE80211_FCTL_
WEP
)
&&
if
(
crypt
&&
!
(
fc
&
IEEE80211_FCTL_
PROTECTED
)
&&
ieee80211_is_eapol_frame
(
ieee
,
skb
))
{
struct
eapol
*
eap
=
(
struct
eapol
*
)(
skb
->
data
+
24
);
...
...
@@ -655,7 +655,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
}
#endif
if
(
crypt
&&
!
(
fc
&
IEEE80211_FCTL_
WEP
)
&&
!
ieee
->
open_wep
&&
if
(
crypt
&&
!
(
fc
&
IEEE80211_FCTL_
PROTECTED
)
&&
!
ieee
->
open_wep
&&
!
ieee80211_is_eapol_frame
(
ieee
,
skb
))
{
IEEE80211_DEBUG_DROP
(
"dropped unencrypted RX data "
...
...
net/ieee80211/ieee80211_tx.c
View file @
b4bf3430
...
...
@@ -313,7 +313,7 @@ int ieee80211_xmit(struct sk_buff *skb,
if
(
encrypt
)
fc
=
IEEE80211_FTYPE_DATA
|
IEEE80211_STYPE_DATA
|
IEEE80211_FCTL_
WEP
;
IEEE80211_FCTL_
PROTECTED
;
else
fc
=
IEEE80211_FTYPE_DATA
|
IEEE80211_STYPE_DATA
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment