On Thu, Jan 31, 2013 at 8:56 PM, Thomas Pedersen <[email protected]> wrote: > Previously, the entire mesh beacon would be generated each > time the beacon timer fired. Instead generate a beacon > head and tail (so the TIM can easily be inserted when mesh > power save is on) when starting a mesh or the MBSS > parameters change. > > Signed-off-by: Thomas Pedersen <[email protected]> > --- > net/mac80211/cfg.c | 2 + > net/mac80211/ieee80211_i.h | 2 + > net/mac80211/mesh.c | 121 > +++++++++++++++++++++++++++++++++++++++++++- > net/mac80211/mesh.h | 3 ++ > net/mac80211/mesh_plink.c | 6 +-- > net/mac80211/tx.c | 59 ++++----------------- > 6 files changed, 139 insertions(+), 54 deletions(-) > > diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c > index 661b878..f3ca170 100644 > --- a/net/mac80211/cfg.c > +++ b/net/mac80211/cfg.c > @@ -1777,6 +1777,8 @@ static int ieee80211_update_mesh_config(struct wiphy > *wiphy, > if (_chg_mesh_attr(NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL, mask)) > conf->dot11MeshHWMPconfirmationInterval = > nconf->dot11MeshHWMPconfirmationInterval; > + /* need to update the IEs as well */ > + ieee80211_mbss_info_change_notify(sdata, BSS_CHANGED_BEACON); > return 0; > } > > diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h > index 5fba867..2370599 100644 > --- a/net/mac80211/ieee80211_i.h > +++ b/net/mac80211/ieee80211_i.h > @@ -611,6 +611,8 @@ struct ieee80211_if_mesh { > u32 mesh_seqnum; > bool accepting_plinks; > int num_gates; > + struct sk_buff __rcu *bcn_head; > + struct sk_buff __rcu *bcn_tail;
The only reason these are skbs is because the IE builder functions take an skb. It would be nicer to hide that ugliness in mesh_build_beacon() and just store these in the if_mesh as struct beacon_data. -- Thomas _______________________________________________ Devel mailing list [email protected] http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel
