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

Reply via email to