On Tuesday 21 August 2007, Johannes Berg wrote: > Drivers are currently supposed to keep track of monitor > interfaces if they allow so-called "hard" monitor, and > they are also supposed to keep track of multicast etc. > > This patch changes that, replaces the set_multicast_list() > callback with a new configure_filter() callback that takes > filter flags (FIF_*) instead of interface flags (IFF_*). > For a driver, this means it should open the filter as much > as necessary to get all frames according to the filter flags. > > Multicast filtering is a bit special, which is why drivers > that do not require FIF_ALLMULTI for multicast address filters > (i.e. they actually have filters for multicast addresses) > need to set the new IEEE80211_HW_MULTICAST_FILTER flag and > call the ieee80211_get_mc_list_item() function. > > At the same time, drivers are no longer notified about > monitor interfaces at all, this means they now need to > implement the start() and stop() callbacks and the new > change_filter_flags() callback. Also, the start()/stop() > ordering changed, start() is now called *before* any > add_interface() as it really should be, and stop() after > any remove_interface(). > > The patch also changes the behaviour of setting the bssid > to multicast for scanning when IEEE80211_HW_NO_PROBE_FILTERING > is set; the IEEE80211_HW_NO_PROBE_FILTERING flag is removed > and the filter flag FIF_BCN_PRBRESP_PROMISC introduced. > This is a lot more efficient for hardware like b43 that > supports it and other hardware can still set the BSSID > to multicast. Personally I like the idea of this packet filtering, implementation and driver interface looks allright to me. > WARNING: This patch makes the ralink drivers BUG_ON(). If you can give me a warning when you are going to submit this for inclusion, I'll cook up a patch to make it work for rt2x00. :) Ivo - 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