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).

Reply via email to