CVSROOT: /cvs Module name: src Changes by: s...@cvs.openbsd.org 2019/08/27 08:57:48
Modified files: sys/dev/ic : bwfm.c pgt.c sys/dev/pci : if_iwm.c if_iwn.c if_wpi.c sys/dev/usb : if_atu.c sys/net80211 : ieee80211_node.c ieee80211_node.h Log message: Keep ieee80211_node structures cached across scans, rather than wiping the entire cache every time a scan is triggered. This has benefits for userland programs trying to look at scan results, and for drivers which don't get a full view from hardware on every scan. Nodes will still be evicted from the cache in one of several ways: Add a new way of timing out inactive nodes which don't send a beacon within 10 scan iterations, for client mode only. This should get rid of stale APs if we're scanning for some time in a changing environment. If we fail to associate a few times, the corresponding node is removed. If net80211 transitions back to INIT state (e.g. because of a user-initiated configuration change) all nodes are removed. When a background scan starts all nodes will be removed. This could be revisited later but has been intentionally left as-is for now. Tested by myself, jmc@, benno@, procter@ on iwm(4), athn(4) and ral(4).