On Thu, Oct 18, 2012 at 9:44 AM, Marco Porsch <[email protected]> wrote: >>> diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c >>> index d7c3ead..033c21d 100644 >>> --- a/net/mac80211/tx.c >>> +++ b/net/mac80211/tx.c >>> @@ -1495,6 +1495,8 @@ void ieee80211_xmit(struct ieee80211_sub_if_data >>> *sdata, struct sk_buff *skb) >>> } >>> >>> ieee80211_set_qos_hdr(sdata, skb); >>> + if (ieee80211_vif_is_mesh(&sdata->vif)) >>> + ieee80211_set_mesh_ps_fields(sdata, hdr); >> >> >> Were you not able to call this later in the tx_handlers where we look up >> the sta_info again anyway? > > > Would be a "semantic break". I checked that after your comment during the > codewalk. See, the later TX handlers do not deal with the frame contents > anymore, but only with the TX control stuff. This is already the last > function that modifies the frame fields.
I see. One option would be to fill out the PS bits from mesh_nexthop_lookup() once mpath->next_hop (is a sta_info) is known. Of course it might be too strange to set some PS bits from the HWMP code... >> You should already have the sta pointer in >> the forwarding path as well. > > > That's correct. But only QoS Data unicasts take that route. I will take a > look if and where I could intercept the other frame types. Only unicast frames have a rx->sta pointer, and all mesh data frames are QoS anyway. Thomas _______________________________________________ Devel mailing list [email protected] http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel
