Need direction to understand mac80211

2016-01-26 Thread Sunil Shahu
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

2016-01-20 Thread Sunil Shahu
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