wpa_cli action script


wpa_action IFACE ACTION


wpa_action is a shell script designed to control the ifupdown framework according to ACTION events received from wpa_supplicant. wpa_cli re‐ ceives CONNECTED and DISCONNECTED events from wpa_supplicant via the crtl_iface socket and gives the ACTION event to the wpa_action script as an argument, along with the IFACE to be acted upon. wpa_action also receives an environment variable from wpa_cli, WPA_ID_STR, containing an alphanumeric identification string for the CURRENT network block. WPA_ID_STR is provided by the 'id_str' network block option of wpa_supplicant.conf, and provides a means to map the ACTION to a LOGICAL interface configured in the interfaces file. If either the ifupdown interfaces or ifstate file cannot be found, wpa_action will exit silently (status 0). wpa_action will search the following locations for their existence: /etc/network/run/ifstate /run/network/ifstate /etc/network/interfaces


Network interface to be acted upon, for example 'eth1' or 'wlan0'.


An ACTION to be performed on the IFACE. CONNECTED wpa_supplicant has completed authentication. ifup IFACE=WPA_ID_STR is invoked and the action is logged to syslog. Network settings for the LOGICAL interface WPA_ID_STR are ap‐ plied. DISCONNECTED wpa_supplicant has detected disconnection. ifdown IFACE=WPA_ID_STR is invoked and the action is logged to syslog. Network settings for the LOGICAL interface WPA_ID_STR are un‐ done. stop The 'stop' ACTION is a called manually by the user, to stop the wpa_cli daemon, invoke ifdown IFACE (if the IFACE is present in the ifstate file) and stop the wpa_supplicant daemon. reload The 'reload' ACTION can be used to reload the wpa_supplicant configuration file specified by wpa-roam . 'restart' is a syn‐ onym for 'reload' and can be used equally. The action is logged to /var/log/wpa_action.log.


An alphanumeric identification string provided by the 'id_str' network block option of wpa_supplicant.conf is exported to wpa_action as an en‐ vironment variable, WPA_ID_STR. When 'id_str' is not configured for the CURRENT network block, 'default' is substituted for the absent WPA_ID_STR environment variable. A unique network identifier, WPA_ID, is exported to wpa_action. It is the number assigned to the CURRENT wpa_supplicant network block (net‐ work_id).


The only reasons for wpa_action to be explicitly executed by the user is to stop wpa_cli from controlling ifupdown or reload the wpa_suppli‐ cant.conf file after editing. wpa_action eth1 stop Otherwise, wpa_action is given as an argument to a wpa_cli daemon. wpa_cli -i eth1 -a /sbin/wpa_action -B This can be done by using the wpa-roam option in the interfaces file. wpa-roam takes one argument, a user provided wpa_supplicant.conf file. The inet METHOD must be 'manual' for this interface, as it will be con‐ figured according to wpa_cli action events. Also supply a 'default' in‐ terfaces stanza using the dhcp inet METHOD so that networks without an 'id_str' option can fallback to attempting to receive an ip via dhcp. If one or more networks requires additional network configuration, pro‐ vide an unique 'id_str' for each network, and an interfaces stanza us‐ ing the 'id_str' value as a LOGICAL interface. The following interfaces file is configured to use dhcp for any network without an 'id_str', a static ip for the network with an 'id_str' of 'home_static' and dhcp plus an additional post-up command for the network with an 'id_str' of 'uni'. An example wpa_supplicant.conf configured to roam between 3 different networks: network={ ssid="foo" id_str="uni" key_mgmt=NONE } network={ ssid="bar" id_str="home_static" psk=123456789... } network={ ssid="" key_mgmt=NONE } The corresponding interfaces file would contain LOGICAL interfaces, that correlate to each unique 'id_str' provided by the configuration file: iface eth1 inet manual wpa-driver wext wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp iface uni inet dhcp iface home_static inet static address netmask network broadcast gateway


wpa_cli(8), wpa_supplicant(8), wpa_supplicant.conf(5), ifup(8), inter‐ faces(5)


This manual page was written by Kel Modderman for the Debian GNU system (but may be used by others). 26 May 2006 WPA_ACTION(8)

Copied to clipboard