linux/net
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
..
9p net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
802 [TR] net/802/tr.c: sysctl_tr_rif_timeout static 2008-01-31 19:28:31 -08:00
8021q net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
appletalk [ATALK/DECNET]: Use seq_open_private in appletalk and decnet. 2008-02-29 11:38:24 -08:00
atm [ATM]: Use seq_open/release_privade instead of manual manipulations. 2008-02-29 11:37:02 -08:00
ax25 [AX25] ax25_out: check skb for NULL in ax25_kick() 2008-02-17 22:31:19 -08:00
bluetooth [BLUETOOTH]: l2cap info_timer delete fix in hci_conn_del 2008-03-03 12:18:55 -08:00
bridge net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
can [CAN]: Minor clean-ups 2008-02-07 18:05:04 -08:00
core net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
dccp net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
decnet [ATALK/DECNET]: Use seq_open_private in appletalk and decnet. 2008-02-29 11:38:24 -08:00
econet [NET]: Convert init_timer into setup_timer 2008-01-28 14:53:35 -08:00
ethernet [ETH]: Combine format_addr() with print_mac(). 2008-01-28 15:00:05 -08:00
ieee80211 net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
ipv4 net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
ipv6 net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
ipx [IPX]: Use proc_create() to setup ->proc_fops first 2008-02-28 14:06:14 -08:00
irda net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
iucv iucv: fix build error on !SMP 2008-03-03 12:12:33 -08:00
key [AF_KEY]: Dump SA/SP entries non-atomically 2008-03-03 23:40:12 -08:00
lapb [LAPB] net/lapb/lapb_iface.c: use LIST_HEAD instead of LIST_HEAD_INIT 2008-01-28 14:56:52 -08:00
llc net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
mac80211 mac80211: mesh path table implementation 2008-03-06 15:30:42 -05:00
netfilter [IPV4]: Add 'rtable' field in struct sk_buff to alias 'dst' and avoid casts 2008-03-05 18:30:47 -08:00
netlabel [NETLABEL]: Move some initialization code into __init section. 2008-02-17 22:33:57 -08:00
netlink [NET]: Make netlink_kernel_release publically available as sk_release_kernel. 2008-02-29 11:18:32 -08:00
netrom [NET]: Simple ctl_table to ctl_path conversions. 2008-01-28 15:01:07 -08:00
packet [PACKET]: Fix sparse warnings in af_packet.c 2008-01-28 15:00:48 -08:00
rfkill PM: Introduce PM_EVENT_HIBERNATE callback state 2008-02-23 10:40:04 -08:00
rose [ROSE]: Supress sparse warnings 2008-01-28 15:02:44 -08:00
rxrpc net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
sched [IPV4]: Add 'rtable' field in struct sk_buff to alias 'dst' and avoid casts 2008-03-05 18:30:47 -08:00
sctp net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
sunrpc net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
tipc [TIPC]: Convert tsock->sem in a mutex 2008-03-03 23:35:53 -08:00
unix net: replace remaining __FUNCTION__ occurrences 2008-03-05 20:47:47 -08:00
wanrouter [WANROUTER]: Use proc_create() to setup ->proc_fops first 2008-02-28 14:15:56 -08:00
wireless nl80211/cfg80211: support for mesh, sta dumping 2008-03-06 15:30:41 -05:00
x25 [X25]: Use proc_create() to setup ->proc_fops first 2008-02-28 14:16:33 -08:00
xfrm [XFRM]: Speed up xfrm_policy and xfrm_state walking 2008-02-28 21:31:08 -08:00
compat.c [NETFILTER]: ip6_tables: add compat support 2008-01-28 14:58:36 -08:00
Kconfig [IPV4]: Fix size description of CONFIG_INET. 2008-03-04 15:18:22 +09:00
Makefile [CAN]: Add PF_CAN core module 2008-01-28 14:54:10 -08:00
nonet.c
socket.c [NET]: Make sure sockets implement splice_read 2008-02-15 02:35:45 -08:00
sysctl_net.c [NET]: Remove the empty net_table 2008-01-28 14:56:29 -08:00
TUNABLE