Search Linux Wireless

RE: [PATCH 5/8] mac80211: A-MPDU Rx handling aggregation reordering

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>> +     int ordered;
>>
>> type int was chosen as it is not a bool type (can be
>> drop/continue/queue) so it can't be fit to flags.

> No, I was thinking that it's enum txrx_result or whatever that is
named.
> But you can't use that type in mac80211.h since it's only defined in
> ieee80211_i.h... Maybe you should put the declaration into mac80211.h
> and use it here so that the compiler can error check this ordered
field
> better...

I thought about doing it. The txrx_result enum did look to me
as a very useful one for low level drivers, as the same set
of actions of drop/continue/queue is relevant there as well.
As you have the same opinion I'll go ahead with it.

>>> @@ -1252,6 +1254,20 @@ void ieee80211_sta_stop_rx_BA_session(struct 
>>>               ieee80211_send_delba(dev, ra, tid, 0, reason);
>>>
>>>       /* free the reordering buffer */
>>> +     for (i = 0; i < sta->ampdu_mlme.tid_rx[tid].buf_size; i++) {
>>> +             if (sta->ampdu_mlme.tid_rx[tid].reorder_buf[i]) {
>>> +                     /* release the reordered frames to stack,
>>> +                      * but drop them there */
>>> +                     memcpy(&status, sta->ampdu_mlme.tid_rx[tid].
>>> +                             reorder_buf[i]->cb, sizeof(status));
>>> +                     status.ordered = TXRX_DROP;
>>> +                     __ieee80211_rx(hw, sta->ampdu_mlme.
>>> +                                    tid_rx[tid].reorder_buf[i],
>>> +                                    &status);
>>>
>>> This is strange. Why are they even passed to __ieee80211_rx?
>> 
>> of course i can get rid from there here, but thought it will be more
>> systematic and clearer to pass them back to __ieee80211_rx. if you
>> have any objection to this (efficiency considerations or like) i will
>> reconsider it.

> I'm just not sure why you'd want to. As far as I can the frames
already
> passed __ieee80211_rx(), no? Maybe only as part of the aggregation?

No, not passed it yet, they are still queued for reordering, but as
aggregation is being tear down I am expected to drop the frames
that are still not in order.
Again, if you see any performance issue with it, although this may
occur only once per session, do tell, if not, I would prefer to
leave it that way, as this will 1 - give more accurate statistics
of dropped frames, 2 - I don't want to drop frames in places
people will have trouble finding, other then the in the handlers.
---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

-
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

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux