On Fri, 2009-07-31 at 00:09 +0400, Igor Perminov wrote: > How will a driver behave in case a device has no a separate hardware > filter for PS Poll frames? I.e. what value should the driver return from > configure_filter in total_flags? > > In case there is one common filter for all control frames, it's an easy > thing. If FIF_CONTROL or FIF_PSPOLL are passed to driver's > configure_filter in total_flags, both of them should be set there and > the filter should be configured to pass through all control frames. > > And suppose a device has two filters: one for ACK frames and one for all > other control frames. > Suppose FIF_CONTROL is passed in total_flags only. In that case the > driver sets FIF_PSPOLL there and configures both filters to pass through > frames. Right? > And what if FIF_PSPOLL is passed in total_flags only? In that case the > ACK filter should be configured to filter out ACK frames (otherwise it > would have performance overhead at least). And the second filter is > configured to pass through frames only (i.e. all control frames except > for ACK). So, the driver will receive not only PS Poll control frames, > but some others. > The question here is: should the driver set FIF_CONTROL in total_flags > or not in that case? Huh this is getting complicated. I think that driver behave as follows: * PSPOLL: configure control, no-ack, set PSPOLL * CONTROL: configure control, ack, set CONTROL * PSPOLL | CONTROL: configure control, ack, set PSPOLL | CONTROL Although I guess it could also set PSPOLL to indicate that is being passed. OTOH, I don't think CONTROL by itself makes any sense to pass in, so the second case won't really happen anyway. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part