wpa_action - wpa_cli action script
wpa_action IFACE ACTION
is a shell script designed to control the ifupdown
framework according to ACTION
events received from
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.
also receives an environment variable from wpa_cli
, containing an alphanumeric identification string for the
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
If either the ifupdown interfaces
file cannot be found,
will exit silently (status 0). wpa_action
the following locations for their existence:
Network interface to be acted upon, for example 'eth1' or 'wlan0'.
to be performed on the IFACE
- 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 applied.
- 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 undone.
- 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
- The 'reload' ACTION can be used to reload the
wpa_supplicant configuration file specified by wpa-roam .
'restart' is a synonym 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
environment variable, WPA_ID_STR
. When 'id_str' is not configured for
network block, 'default' is substituted for the absent
A unique network identifier, WPA_ID
, is exported to wpa_action
is the number assigned to the CURRENT wpa_supplicant
The only reasons for wpa_action
to be explicitly executed by the user is
to stop wpa_cli
from controlling ifupdown
or reload the
file after editing.
wpa_action eth1 stop
is given as an argument to a wpa_cli
wpa_cli -i eth1 -a /sbin/wpa_action
This can be done by using the wpa-roam
option in the interfaces
takes one argument, a user provided
The inet METHOD
must be 'manual' for this interface, as it will be
configured according to wpa_cli
action events. Also supply a 'default'
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,
provide an unique 'id_str' for each network, and an interfaces
using 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:
The corresponding interfaces
file would contain LOGICAL
interfaces, that correlate to each unique 'id_str' provided by the
iface eth1 inet manual
iface default inet dhcp
iface uni inet dhcp
iface home_static inet static
This manual page was written by Kel Modderman <firstname.lastname@example.org> for the
Debian GNU system (but may be used by others).