On Tue, 2011-09-27 at 13:51 -0700, Luis R. Rodriguez wrote: > > + /* > > + * If all ACs are delivery-enabled then we should build > > + * the TIM bit for all ACs anyway; if only some are then > > + * we ignore those and build the TIM bit using only the > > + * non-enabled ones. > > + */ > > As per the documentation uapsd_queues is the "bitmap of queues > configured for uapsd". As I read this we are ignoring setting the TIM > for the STA if an AC queue was marked as uapsd-enabled but had > buffered frames for it, so we'd only set the TIM if we had at least > one AC queue that did not have uapsd enabled and had buffered frames > pending. Is that accurate? Almost. First of all, we need to differentiate between delivery- and trigger-enabled, which currently we don't. Since this only happens with TSPEC, we're not worried about that right now, but it's good to keep it in mind. So right now, the uapsd_queues bitmap marks those that are both trigger- and delivery-enabled. Now, to the TIM bit: when *all* ACs are delivery-enabled, the TIM bit will be set from all ACs. This is the case you missed. When only some of the ACs are delivery-enabled, the delivery-enabled ACs are ignored for purposes of setting the TIM bit. This is what you described. This is described in 11.2.1.5 (IIRC). johannes -- 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