linux/net/mac80211
Javier Cardona dbf498fbaf mac80211: Implement mesh synchronization framework
This patch adds MBSS extensible synchronization framework (Sec.
13.13.2 of IEEE Std. 802.11-2012).

The framework is implemented via an ops table which defines the
following functions:

    rx_bcn_presp() - this is called every time a mesh beacon is
received.
    adjust_tbtt() - this is called immediately before a beacon is about
to be transmitted.

The default neighbor offset synchronization defined in the standard is
implemented.  We also provide template functions for vendor specific
methods.

When neighbor offset synchronization is active (which is the default)
mesh neighbors in the same MBSS will track timing offsets to each other
and compensate clock drift.

In our tests we observed that this mesh synchronization implementation
successfully corrected drifts between stations of ~2PPM while
introducing a jitter of ~20us.

It is also possible to test this framework on mac80211_hwsim simulated
phys to see how it behaves under different topologies, over poor links,
etc.

Signed-off-by: Marco Porsch <marco.porsch@s2005.tu-chemnitz.de>
Signed-off-by: Pavel Zubarev <pavel.zubarev@gmail.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-04-10 15:20:31 -04:00
..
aes_ccm.c mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_ccm.h mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_cmac.c mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_cmac.h mac80211: fix CMAC races 2011-07-08 11:11:20 -04:00
agg-rx.c mac80211: optimize aggregation session timeout handling 2012-04-09 16:09:36 -04:00
agg-tx.c mac80211: optimize aggregation session timeout handling 2012-04-09 16:09:36 -04:00
cfg.c mac80211: refuse TX queue configuration on non-QoS HW 2012-04-10 14:54:10 -04:00
cfg.h
chan.c mac80211: remove channel type argument from rate_update 2012-04-10 14:54:08 -04:00
debugfs_key.c mac80211: fix debugfs key->station symlink 2012-01-18 14:38:05 -05:00
debugfs_key.h mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
debugfs_netdev.c mac80211: Allow tsf increments via debugfs 2012-04-10 15:20:30 -04:00
debugfs_netdev.h
debugfs_sta.c mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
debugfs_sta.h
debugfs.c mac80211: make uapsd_* keys per-vif 2012-03-15 13:43:12 -04:00
debugfs.h
driver-ops.h cfg80211/nl80211: clarify TX queue API 2012-04-10 14:54:09 -04:00
driver-trace.c
driver-trace.h cfg80211/nl80211: clarify TX queue API 2012-04-10 14:54:09 -04:00
event.c
ht.c mac80211: set HT channel before association 2012-04-10 14:54:07 -04:00
ibss.c mac80211: use IEEE80211_NUM_ACS 2012-04-10 14:56:10 -04:00
ieee80211_i.h mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
iface.c mac80211: use IEEE80211_NUM_ACS 2012-04-10 14:56:10 -04:00
Kconfig mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
key.c mac80211: clean up asm/unaligned.h inclusion 2012-02-27 14:06:32 -05:00
key.h mac80211: allow driver to disconnect after resume 2011-07-13 14:49:43 -04:00
led.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
led.h mac80211: selective throughput LED trigger active 2010-12-22 14:33:37 -05:00
main.c mac80211: don't always advertise remain-on-channel 2012-04-10 14:54:04 -04:00
Makefile mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
mesh_hwmp.c mac80211: fix the RANN propagation issues 2012-04-09 16:37:10 -04:00
mesh_pathtbl.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-03-20 21:04:47 -07:00
mesh_plink.c wireless: rename ht_info to ht_operation 2012-04-09 16:05:55 -04:00
mesh_sync.c mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
mesh.c mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
mesh.h mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
michael.c
michael.h
mlme.c mac80211: sanity check for null SSID 2012-04-10 15:20:28 -04:00
offchannel.c mac80211: remove dead code 2012-01-04 14:31:47 -05:00
pm.c mac80211: use proper sub_if_data on suspend path 2012-02-27 14:06:40 -05:00
rate.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-02-29 14:53:21 -05:00
rate.h mac80211: notify driver of rate control updates 2012-04-10 14:54:08 -04:00
rc80211_minstrel_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_minstrel_ht_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_minstrel_ht.c mac80211: remove channel type argument from rate_update 2012-04-10 14:54:08 -04:00
rc80211_minstrel_ht.h
rc80211_minstrel.c minstrel: Remove unused function parameter in calc_rate_durations() 2011-11-11 12:32:52 -05:00
rc80211_minstrel.h minstrel_ht: fixed rate mode through debugfs 2011-06-01 15:12:29 -04:00
rc80211_pid_algo.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
rc80211_pid_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_pid.h Fix common misspellings 2011-03-31 11:26:23 -03:00
rx.c mac80211: remove channel type argument from rate_update 2012-04-10 14:54:08 -04:00
scan.c mac80211: Filter duplicate IE ids 2012-03-07 13:51:37 -05:00
spectmgmt.c mac80211: Remove unnecessary OOM logging messages 2011-09-13 15:45:02 -04:00
sta_info.c mac80211: end service period only after sending last buffered frame 2012-04-09 16:06:00 -04:00
sta_info.h mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
status.c mac80211: use compare_ether_addr on MAC addresses instead of memcmp 2012-03-05 15:38:31 -05:00
tkip.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
tkip.h mac80211: fix TKIP races, make API easier to use 2011-07-08 11:11:19 -04:00
tx.c mac80211: Implement mesh synchronization framework 2012-04-10 15:20:31 -04:00
util.c mac80211: lazily stop queues in add_pending 2012-04-10 14:54:11 -04:00
wep.c mac80211: linearize SKBs as needed for crypto 2012-03-13 14:54:17 -04:00
wep.h mac80211: move RX WEP weak IV counting 2012-03-13 14:54:16 -04:00
wme.c mac80211: use IEEE80211_NUM_ACS 2012-04-10 14:56:10 -04:00
wme.h mac80211: make ieee80211_downgrade_queue static 2012-04-10 14:54:06 -04:00
work.c mac80211: redesign auth/assoc 2012-02-06 14:50:37 -05:00
wpa.c mac80211: linearize SKBs as needed for crypto 2012-03-13 14:54:17 -04:00
wpa.h mac80211: fix tx->skb NULL pointer dereference 2012-01-16 15:01:16 -05:00