On Sat, 2008-02-16 at 11:29 +0900, Bruno Randolf wrote: > enable IBSS cell merging. if an IBSS beacon with the same channel, same ESSID > and a TSF higher than the local TSF (mactime) is received, we have to join its > BSSID. while this might not be immediately apparent from reading the 802.11 > standard it is compliant and necessary to make IBSS mode functional in many > cases. most drivers have a similar behaviour. > [...] Looks good, thanks for your patience. I have two minor comments still, sorry for the lack of focus in earlier review. > + } else if (local && local->ops && local->ops->get_tsf) > + /* second best option: get current TSF */ > + rx_timestamp = local->ops->get_tsf(local_to_hw(local)); This is assuming that we don't manage to process the frame within 192 usecs. I guess that will be true since we defer it to a tasklet, but do we want to bet on it in the future or should we simply widen the window where the merge *won't* happen because the driver doesn't provide enough info and also add the 24 bytes offset here? Also something else that just occurred to me... You wrote in the description: > * to enable this we have to let all beacons thru in IBSS mode, even if > they have a different BSSID. which I think refers to the last hunk of your patch. However, hardware also has such filters, so I think we also should set the FIF_BCN_PRBRESP_PROMISC filter flag when IBSS is enabled, we don't want to force drivers to do this implicitly when IBSS interfaces are added. Again, thanks for your patience, and if you want this patch merged now here's my Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> and we can address these remaining two points in follow-up patches instead of respinning this all the time. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part