alistair23-linux/net/mac80211
Luis Carlos Cobo eb2b9311fd mac80211: mesh path table implementation
The mesh path table associates destinations with the next hop to reach them. The
table is a hash of linked lists protected by rcu mechanisms. Every mesh path
contains a lock to protect the mesh path state.

Each outgoing mesh frame requires a look up into this table. Therefore, the
table it has been designed so it is not necessary to hold any lock to find the
appropriate next hop.

If the path is determined to be active within a rcu context we can safely
dereference mpath->next_hop->addr, since it holds a reference to the sta
next_hop. After a mesh path has been set active for the first time it next_hop
must always point to a valid sta.  If this is not possible the mpath must be
deleted or replaced in a RCU safe fashion.

Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-03-06 15:30:42 -05:00
..
aes_ccm.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
aes_ccm.h
cfg.c mac80211: mesh data structures and first mesh changes 2008-03-06 15:30:41 -05:00
cfg.h
debugfs.c cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
debugfs.h
debugfs_key.c
debugfs_key.h
debugfs_netdev.c mac80211: remove port control enable switch, clean up sta flags 2008-02-29 15:19:33 -05:00
debugfs_netdev.h
debugfs_sta.c mac80211: remove STA infos last_ack stuff 2008-02-29 15:42:02 -05:00
debugfs_sta.h
event.c
ieee80211.c mac80211: mesh data structures and first mesh changes 2008-03-06 15:30:41 -05:00
ieee80211_i.h mac80211: mesh data structures and first mesh changes 2008-03-06 15:30:41 -05:00
ieee80211_iface.c mac80211: mesh data structures and first mesh changes 2008-03-06 15:30:41 -05:00
ieee80211_ioctl.c mac80211: mesh data structures and first mesh changes 2008-03-06 15:30:41 -05:00
ieee80211_key.h mac80211: split ieee80211_key_alloc/free 2008-02-29 15:42:04 -05: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: mesh changes to the MLME 2008-03-06 15:30:41 -05:00
Kconfig mac80211: Is not EXPERIMENTAL anymore 2008-02-05 14:35:47 -05:00
key.c mac80211: fix key replacing, hw accel 2008-02-29 15:42:07 -05:00
Makefile cfg80211 API for channels/bitrates, mac80211 and driver conversion 2008-02-29 15:19:32 -05:00
mesh.c mac80211: support functions for mesh 2008-03-06 15:30:41 -05:00
mesh.h mac80211: mesh function and data structures definitions 2008-03-06 15:30:41 -05:00
mesh_pathtbl.c mac80211: mesh path table implementation 2008-03-06 15:30:42 -05:00
mesh_plink.c mac80211: mesh peer link implementation 2008-03-06 15:30:41 -05:00
michael.c
michael.h
rc80211_pid.h rc80211-pid: fix definition of rate control interval 2008-01-28 15:00:55 -08:00
rc80211_pid_algo.c mac80211: mesh data structures and first mesh changes 2008-03-06 15:30:41 -05:00
rc80211_pid_debugfs.c mac80211: make rc_pid_fop_events static 2008-01-28 15:00:56 -08:00
rc80211_simple.c mac80211: remove STA infos last_ack stuff 2008-02-29 15:42:02 -05:00
rx.c mac80211: support for mesh interfaces in mac80211 data path 2008-03-06 15:30:41 -05:00
sta_info.c mac80211: mesh data structures and first mesh changes 2008-03-06 15:30:41 -05:00
sta_info.h mac80211: mesh data structures and first mesh changes 2008-03-06 15:30:41 -05:00
tkip.c
tkip.h
tx.c mac80211: support for mesh interfaces in mac80211 data path 2008-03-06 15:30:41 -05:00
util.c mac80211: mesh data structures and first mesh changes 2008-03-06 15:30:41 -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