When we execute command wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf for connecting to AP, wpa_supplicant follows following steps:

 1. wpa_supplicant requests the kernel driver to scan neighboring BSSes 
 2. wpa_supplicant selects a BSS based on its configuration   
 3. wpa_supplicant requests the kernel driver to associate with the   
    chosen BSS

Is there any way to skip the scanning part i.e. step no.1 ? Since scanning takes considerably few seconds, as local env have 50+ SSID.

2 Answers 2


The wpa_supplicant need to gather some information about an AP ( availability , ESSID, BSSID ,Freq , security , channel ...) , for every connect request it will invoke some functions to update the BSS table.

Without the BSS table update the wpa_supplicant can't handle any change on an AP, so it is not possible to skip scanning.


There is ap_scan. From the wpa_supplicant.conf documentation:

# AP scanning/selection
# By default, wpa_supplicant requests driver to perform AP scanning and then
# uses the scan results to select a suitable AP. Another alternative is to
# allow the driver to take care of AP scanning and selection and use
# wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association
# information from the driver.
# 1: wpa_supplicant initiates scanning and AP selection; if no APs matching to
#    the currently enabled networks are found, a new network (IBSS or AP mode
#    operation) may be initialized (if configured) (default)
# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association
#    parameters (e.g., WPA IE generation); this mode can also be used with
#    non-WPA drivers when using IEEE 802.1X mode; do not try to associate with
#    APs (i.e., external program needs to control association). This mode must
#    also be used when using wired Ethernet drivers (including MACsec).
# 2: like 0, but associate with APs using security policy and SSID (but not
#    BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to
#    enable operation with hidden SSIDs and optimized roaming; in this mode,
#    the network blocks in the configuration file are tried one by one until
#    the driver reports successful association; each network block should have
#    explicit security policy (i.e., only one option in the lists) for
#    key_mgmt, pairwise, group, proto variables
# Note: ap_scan=2 should not be used with the nl80211 driver interface (the
# current Linux interface). ap_scan=1 is optimized work working with nl80211.
# For finding networks using hidden SSID, scan_ssid=1 in the network block can
# be used with nl80211.
# When using IBSS or AP mode, ap_scan=2 mode can force the new network to be
# created immediately regardless of scan results. ap_scan=1 mode will first try
# to scan for existing networks and only if no matches with the enabled
# networks are found, a new IBSS or AP mode network is created.

Whether this works or not may depend on your WLAN driver, and the details of how you want to connect.

  • I tried this before putting question, but it failed. I had tried "wext" and "nl80211"
    – SHW
    Commented Dec 20, 2018 at 10:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .