linux/net/mac80211
Bruno Randolf 9d9bf77d16 mac80211: enable IBSS merging
enable IBSS cell merging. if an IBSS beacon with the same channel, same ESSID
and a TSF higher than the local TSF (mactime) is received, we have to join its
BSSID. while this might not be immediately apparent from reading the 802.11
standard it is compliant and necessary to make IBSS mode functional in many
cases. most drivers have a similar behaviour.

* move the relevant code section (previously only containing debug code) down
to the end of the function, so we can reuse the bss structure.

* we have to compare the mactime (TSF at the time of packet receive) rather
than the current TSF. since mactime is defined as the time the first data
symbol arrived we add the time until byte 24 where the timestamp resides, since
this is how the beacon timestamp is defined. as some some drivers are not able
to give a reliable mactime we fall back to use the current TSF, which will be
enough to catch most (but not all) cases where an IBSS merge is necessary.

* in IBSS mode we want to allow beacons to override probe response info so we
can correctly do merges.

* we don't only configure beacons based on scan results, so change that
message.

* to enable this we have to let all beacons thru in IBSS mode, even if they
have a different BSSID.

Signed-off-by: Bruno Randolf <bruno@thinktube.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
History 2008-02-29 15:37:12 -05:00
..
aes_ccm.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
aes_ccm.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
cfg.c mac80211: Use monitor configuration flags 2008-02-29 15:37:02 -05:00
cfg.h [MAC80211]: rename ieee80211_cfg.h to cfg.h 2007-10-10 16:52:34 -07:00
debugfs.c cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
debugfs.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_key.c [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
debugfs_key.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_netdev.c mac80211: remove port control enable switch, clean up sta flags 2008-02-29 15:19:33 -05:00
debugfs_netdev.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_sta.c mac80211: remove port control enable switch, clean up sta flags 2008-02-29 15:19:33 -05:00
debugfs_sta.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
event.c [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
ieee80211.c mac80211: defer master netdev allocation to ieee80211_register_hw 2008-02-29 15:37:06 -05:00
ieee80211_i.h mac80211: Add cooked monitor mode support 2008-02-29 15:37:03 -05:00
ieee80211_iface.c mac80211: Use monitor configuration flags 2008-02-29 15:37:02 -05:00
ieee80211_ioctl.c cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
ieee80211_key.h [PATCH] mac80211: remove crypto algorithm typedef 2007-10-10 16:53:00 -07:00
ieee80211_led.c mac80211: Add radio led trigger 2008-01-28 15:01:04 -08:00
ieee80211_led.h mac80211: Add radio led trigger 2008-01-28 15:01:04 -08:00
ieee80211_rate.c cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
ieee80211_rate.h cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
ieee80211_sta.c mac80211: enable IBSS merging 2008-02-29 15:37:12 -05:00
Kconfig mac80211: Is not EXPERIMENTAL anymore 2008-02-05 14:35:47 -05:00
key.c mac80211: move interface type to vif structure 2008-01-28 15:09:37 -08:00
Makefile cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
michael.c [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
michael.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
rc80211_pid.h rc80211-pid: fix definition of rate control interval 2008-01-28 15:00:55 -08:00
rc80211_pid_algo.c rc80211-pid: fix rate adjustment 2008-02-29 15:19:33 -05:00
rc80211_pid_debugfs.c mac80211: make rc_pid_fop_events static 2008-01-28 15:00:56 -08:00
rc80211_simple.c net/mac80211/: Use time_* macros 2008-02-29 15:37:10 -05:00
rx.c mac80211: enable IBSS merging 2008-02-29 15:37:12 -05:00
sta_info.c cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
sta_info.h mac80211: remove port control enable switch, clean up sta flags 2008-02-29 15:19:33 -05:00
tkip.c [PATCH] mac80211: fix TKIP IV update 2007-10-10 16:53:16 -07:00
tkip.h [PATCH] mac80211: fix TKIP IV update 2007-10-10 16:53:16 -07:00
tx.c mac80211: remove "dynamic" RX/TX handlers 2008-02-29 15:37:03 -05:00
util.c cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
wep.c mac80211: split RX_DROP 2008-02-29 15:37:02 -05:00
wep.h mac80211: split ieee80211_txrx_result 2008-02-29 15:37:01 -05:00
wme.c mac80211: adjustable number of bits for qdisc pool 2008-02-29 15:37:05 -05:00
wme.h mac80211: A-MPDU Tx adding qdisc support 2008-02-29 15:19:17 -05:00
wpa.c mac80211: split RX_DROP 2008-02-29 15:37:02 -05:00
wpa.h mac80211: split ieee80211_txrx_result 2008-02-29 15:37:01 -05:00