Need direction to understand mac80211
Hi, I am currently working on an project that aims to provide multiple 802.11ac radio support on a single node for mesh network. In this both the radios will operate in different channel and will talk to different nodes in mesh network. I need to work with kernel mac80211 driver subsystem for the same. I went through different documentation to understand the theories of 802.11s which can help during working on mac80211 driver. However I am not able to understand the source code properly. Can you please provide some guidance to understand mac80211 and related networking stack in Linux kernel. I am looking for 1) How to create bridge bridge for two Phy radios during initialization/packet forwarding? 2) Also, need some idea about how packets will be routed in mesh_hwmp. 3) How the path request and response should behave in this case? 4) Will there be any changes for mesh path table entries? Any suggestion for document/book/blog will be great help. I already went through following materials. http://kernelnewbies.org/Documents/Kernel-Docbooks?action=AttachFile=get=mac80211_2.6.29.pdf http://www.campsmur.cat/files/mac80211_intro.pdf https://www.cwnp.com/uploads/802-11s_mesh_networking_v1-0.pdf http://www.ieee802.org/802_tutorials/06-November/802.11s_Tutorial_r5.pdf Any suggestion and directions will be great help. Thanks, Sunil Shahu.
[PATCH] net:mac80211:mesh_plink: remove redundant sta_info check
Remove unnecessory "if" statement and club it with previos "if" block. Signed-off-by: Sunil Shahu <shsh...@gmail.com> --- net/mac80211/mesh_plink.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c index bd3d55e..e5851ae 100644 --- a/net/mac80211/mesh_plink.c +++ b/net/mac80211/mesh_plink.c @@ -976,6 +976,9 @@ mesh_plink_get_event(struct ieee80211_sub_if_data *sdata, mpl_dbg(sdata, "Mesh plink error: no more free plinks\n"); goto out; } + /* new matching peer */ + event = OPN_ACPT; + goto out; } else { if (!test_sta_flag(sta, WLAN_STA_AUTH)) { mpl_dbg(sdata, "Mesh plink: Action frame from non-authed peer\n"); @@ -985,12 +988,6 @@ mesh_plink_get_event(struct ieee80211_sub_if_data *sdata, goto out; } - /* new matching peer */ - if (!sta) { - event = OPN_ACPT; - goto out; - } - switch (ftype) { case WLAN_SP_MESH_PEERING_OPEN: if (!matches_local) -- 1.9.1