STANNIX Solutions for the Real World


Manual: wpa_action

WPA_ACTION(8)										       WPA_ACTION(8)

NAME
       wpa_action - wpa_cli action script

SYNOPSIS
       wpa_action IFACE ACTION

DESCRIPTION
       wpa_action  is  a  shell script designed to control the ifupdown framework according to ACTION events
       received from wpa_supplicant.  wpa_cli receives 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

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

ACTION
       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 applied.

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

       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 synonym for 'reload' and can be used equally. The action  is  logged
	      to /var/log/wpa_action.log.

ENVIRONMENT
       An  alphanumeric	 identification	 string provided by the 'id_str' network block option of wpa_suppli‐
       cant.conf is exported to wpa_action as an environment variable, WPA_ID_STR. When 'id_str' is not con‐
       figured 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 CUR‐
       RENT wpa_supplicant network block (network_id).

USAGE
       The only reasons for wpa_action to be explicitly executed by the user is to stop	 wpa_cli  from	con‐
       trolling ifupdown or reload the wpa_supplicant.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 /usr/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 configured  according	 to  wpa_cli
       action  events. Also supply a 'default' interfaces 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	net‐
       works  requires additional network configuration, provide an unique 'id_str' for each network, and an
       interfaces stanza 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:

	      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 192.168.0.20
		      netmask 255.255.255.0
		      network 192.168.0.0
		      broadcast 192.168.0.255
		      gateway 192.168.0.1

SEE ALSO
       wpa_cli(8), wpa_supplicant(8), wpa_supplicant.conf(5), ifup(8), interfaces(5)

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