1/*
2 * WPA Supplicant - binder interface for wpa_supplicant daemon
3 * Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi>
4 * Copyright (c) 2004-2016, Roshan Pius <rpius@google.com>
5 *
6 * This software may be distributed under the terms of the BSD license.
7 * See README for more details.
8 */
9
10package fi.w1.wpa_supplicant;
11
12import android.os.PersistableBundle;
13import fi.w1.wpa_supplicant.IIface;
14
15/**
16 * Interface exposed by the wpa_supplicant binder service registered
17 * with the service manager with name: fi.w1.wpa_supplicant.
18 */
19interface ISupplicant {
20	/* Error values returned by the service to RPC method calls. */
21	const int ERROR_INVALID_ARGS = 1;
22	const int ERROR_UNKNOWN = 2;
23	const int ERROR_IFACE_EXISTS = 3;
24	const int ERROR_IFACE_UNKNOWN = 4;
25
26	/**
27	 * Registers a wireless interface in wpa_supplicant.
28	 *
29	 * @param args A dictionary with arguments used to add the interface to
30	 *             wpa_supplicant.
31	 * The dictionary may contain the following entries:
32	 *   Ifname(String) Name of the network interface to control, e.g.,
33	 *   wlan0.
34	 *   BridgeIfname(String) Name of the bridge interface to control, e.g.,
35	 *   br0.
36	 *   Driver(String) Driver name which the interface uses, e.g., nl80211.
37	 *   ConfigFile(String) Configuration file path.
38	 *
39	 * @return Binder object representing the interface.
40	 */
41	IIface CreateInterface(in PersistableBundle args);
42
43	/**
44	 * Deregisters a wireless interface from wpa_supplicant.
45	 *
46	 * @param ifname Name of the network interface, e.g., wlan0
47	 */
48	void RemoveInterface(in @utf8InCpp String ifname);
49
50	/**
51	 * Gets a binder object for the interface corresponding to ifname
52	 * which wpa_supplicant already controls.
53	 *
54	 * @param ifname Name of the network interface, e.g., wlan0
55	 *
56	 * @return Binder object representing the interface.
57	 */
58	IIface GetInterface(in @utf8InCpp String ifname);
59}
60