Hi Marco, > I am working on a mesh powersave implementation. One requirement for > that is to buffer broadcasts, set the TIM map and count powersave > neighbors. All of these routines are currently bound to the AP-specific > ieee80211_if_ap structure. > Do you have any recommendations how to properly implement this for mesh > interfaces? > > a) allocate/free ieee80211_if_ap in > iface.c:ieee80211_do_open/ieee80211_do_stop and bind to sdata->bss pointer? > b) include ieee80211_if_ap into ieee80211_if_mesh structure and use > sdata->bss? > c) completely different? I don't think a) or b) are appropriate since the if_ap structure contains a number of fields that you won't use or need. I would therefore suggest to split out the PS related fields of that structure into a substructure that you embed in both if_ap and if_mesh, and in the code you could then pass a pointer to that structure to the powersave handling functions. Please do a separate patch to separate it out though, not just one huge patch to do both mesh & the splitting up :) > Also, what is the purpose of the sdata->bss pointer? It seems to be used > at times and not at others. The sdata->bss pointer should be used in *most* cases, it's a link to the "AP data" for the AP interface (where it just points to itself) and any AP_VLAN interface (where it points to the master AP interface) -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html