wpa_supplicant(interface): Add iface/network type
Add separate types of Iface/Network object for STA (station mode) and
P2P mode ifaces and associated networks. These expose very different
functionality and exposing 2 different types of objects makes the
interface cleaner.
Although, they're still represented via the same struct for both types
in the wpa_supplicant core.
Bug: 32553421
Test: ./hardware/interfaces/update-makefiles.sh
Change-Id: I41601a650709429c65014cb7adaf6cb9ab03787e
diff --git a/wifi/supplicant/1.0/Android.bp b/wifi/supplicant/1.0/Android.bp
index 1898a50..d4247d2 100644
--- a/wifi/supplicant/1.0/Android.bp
+++ b/wifi/supplicant/1.0/Android.bp
@@ -9,18 +9,30 @@
"ISupplicant.hal",
"ISupplicantCallback.hal",
"ISupplicantIface.hal",
- "ISupplicantIfaceCallback.hal",
"ISupplicantNetwork.hal",
- "ISupplicantNetworkCallback.hal",
+ "ISupplicantP2pIface.hal",
+ "ISupplicantP2pIfaceCallback.hal",
+ "ISupplicantP2pNetwork.hal",
+ "ISupplicantP2pNetworkCallback.hal",
+ "ISupplicantStaIface.hal",
+ "ISupplicantStaIfaceCallback.hal",
+ "ISupplicantStaNetwork.hal",
+ "ISupplicantStaNetworkCallback.hal",
],
out: [
"android/hardware/wifi/supplicant/1.0/types.cpp",
"android/hardware/wifi/supplicant/1.0/SupplicantAll.cpp",
"android/hardware/wifi/supplicant/1.0/SupplicantCallbackAll.cpp",
"android/hardware/wifi/supplicant/1.0/SupplicantIfaceAll.cpp",
- "android/hardware/wifi/supplicant/1.0/SupplicantIfaceCallbackAll.cpp",
"android/hardware/wifi/supplicant/1.0/SupplicantNetworkAll.cpp",
- "android/hardware/wifi/supplicant/1.0/SupplicantNetworkCallbackAll.cpp",
+ "android/hardware/wifi/supplicant/1.0/SupplicantP2pIfaceAll.cpp",
+ "android/hardware/wifi/supplicant/1.0/SupplicantP2pIfaceCallbackAll.cpp",
+ "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetworkAll.cpp",
+ "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetworkCallbackAll.cpp",
+ "android/hardware/wifi/supplicant/1.0/SupplicantStaIfaceAll.cpp",
+ "android/hardware/wifi/supplicant/1.0/SupplicantStaIfaceCallbackAll.cpp",
+ "android/hardware/wifi/supplicant/1.0/SupplicantStaNetworkAll.cpp",
+ "android/hardware/wifi/supplicant/1.0/SupplicantStaNetworkCallbackAll.cpp",
],
}
@@ -33,9 +45,15 @@
"ISupplicant.hal",
"ISupplicantCallback.hal",
"ISupplicantIface.hal",
- "ISupplicantIfaceCallback.hal",
"ISupplicantNetwork.hal",
- "ISupplicantNetworkCallback.hal",
+ "ISupplicantP2pIface.hal",
+ "ISupplicantP2pIfaceCallback.hal",
+ "ISupplicantP2pNetwork.hal",
+ "ISupplicantP2pNetworkCallback.hal",
+ "ISupplicantStaIface.hal",
+ "ISupplicantStaIfaceCallback.hal",
+ "ISupplicantStaNetwork.hal",
+ "ISupplicantStaNetworkCallback.hal",
],
out: [
"android/hardware/wifi/supplicant/1.0/types.h",
@@ -54,21 +72,51 @@
"android/hardware/wifi/supplicant/1.0/BnSupplicantIface.h",
"android/hardware/wifi/supplicant/1.0/BpSupplicantIface.h",
"android/hardware/wifi/supplicant/1.0/BsSupplicantIface.h",
- "android/hardware/wifi/supplicant/1.0/ISupplicantIfaceCallback.h",
- "android/hardware/wifi/supplicant/1.0/IHwSupplicantIfaceCallback.h",
- "android/hardware/wifi/supplicant/1.0/BnSupplicantIfaceCallback.h",
- "android/hardware/wifi/supplicant/1.0/BpSupplicantIfaceCallback.h",
- "android/hardware/wifi/supplicant/1.0/BsSupplicantIfaceCallback.h",
"android/hardware/wifi/supplicant/1.0/ISupplicantNetwork.h",
"android/hardware/wifi/supplicant/1.0/IHwSupplicantNetwork.h",
"android/hardware/wifi/supplicant/1.0/BnSupplicantNetwork.h",
"android/hardware/wifi/supplicant/1.0/BpSupplicantNetwork.h",
"android/hardware/wifi/supplicant/1.0/BsSupplicantNetwork.h",
- "android/hardware/wifi/supplicant/1.0/ISupplicantNetworkCallback.h",
- "android/hardware/wifi/supplicant/1.0/IHwSupplicantNetworkCallback.h",
- "android/hardware/wifi/supplicant/1.0/BnSupplicantNetworkCallback.h",
- "android/hardware/wifi/supplicant/1.0/BpSupplicantNetworkCallback.h",
- "android/hardware/wifi/supplicant/1.0/BsSupplicantNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/ISupplicantP2pIface.h",
+ "android/hardware/wifi/supplicant/1.0/IHwSupplicantP2pIface.h",
+ "android/hardware/wifi/supplicant/1.0/BnSupplicantP2pIface.h",
+ "android/hardware/wifi/supplicant/1.0/BpSupplicantP2pIface.h",
+ "android/hardware/wifi/supplicant/1.0/BsSupplicantP2pIface.h",
+ "android/hardware/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/IHwSupplicantP2pIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BnSupplicantP2pIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BpSupplicantP2pIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BsSupplicantP2pIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/ISupplicantP2pNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/IHwSupplicantP2pNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/BnSupplicantP2pNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/BpSupplicantP2pNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/BsSupplicantP2pNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/ISupplicantP2pNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/IHwSupplicantP2pNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BnSupplicantP2pNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BpSupplicantP2pNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BsSupplicantP2pNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/ISupplicantStaIface.h",
+ "android/hardware/wifi/supplicant/1.0/IHwSupplicantStaIface.h",
+ "android/hardware/wifi/supplicant/1.0/BnSupplicantStaIface.h",
+ "android/hardware/wifi/supplicant/1.0/BpSupplicantStaIface.h",
+ "android/hardware/wifi/supplicant/1.0/BsSupplicantStaIface.h",
+ "android/hardware/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/IHwSupplicantStaIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BnSupplicantStaIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BpSupplicantStaIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BsSupplicantStaIfaceCallback.h",
+ "android/hardware/wifi/supplicant/1.0/ISupplicantStaNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/IHwSupplicantStaNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/BnSupplicantStaNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/BpSupplicantStaNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/BsSupplicantStaNetwork.h",
+ "android/hardware/wifi/supplicant/1.0/ISupplicantStaNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/IHwSupplicantStaNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BnSupplicantStaNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BpSupplicantStaNetworkCallback.h",
+ "android/hardware/wifi/supplicant/1.0/BsSupplicantStaNetworkCallback.h",
],
}
diff --git a/wifi/supplicant/1.0/Android.mk b/wifi/supplicant/1.0/Android.mk
index b2c39f5..1f25c10 100644
--- a/wifi/supplicant/1.0/Android.mk
+++ b/wifi/supplicant/1.0/Android.mk
@@ -13,6 +13,23 @@
HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
#
+# Build types.hal (IfaceType)
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/IfaceType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::types.IfaceType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (SupplicantStatus)
#
GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/SupplicantStatus.java
@@ -93,8 +110,6 @@
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantIface.hal
-$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantIfaceCallback.hal
-$(GEN): $(LOCAL_PATH)/ISupplicantIfaceCallback.hal
$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantNetwork.hal
$(GEN): $(LOCAL_PATH)/ISupplicantNetwork.hal
$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
@@ -110,33 +125,12 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
-# Build ISupplicantIfaceCallback.hal
-#
-GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantIfaceCallback.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantIfaceCallback.hal
-$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
-$(GEN): $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
- $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
- -Ljava -randroid.hardware:hardware/interfaces \
- android.hardware.wifi.supplicant@1.0::ISupplicantIfaceCallback
-
-$(GEN): $(LOCAL_PATH)/ISupplicantIfaceCallback.hal
- $(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
# Build ISupplicantNetwork.hal
#
GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantNetwork.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantNetwork.hal
-$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantNetworkCallback.hal
-$(GEN): $(LOCAL_PATH)/ISupplicantNetworkCallback.hal
$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
$(GEN): $(LOCAL_PATH)/types.hal
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
@@ -150,19 +144,166 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
-# Build ISupplicantNetworkCallback.hal
+# Build ISupplicantP2pIface.hal
#
-GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantNetworkCallback.java
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantP2pIface.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantNetworkCallback.hal
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantP2pIface.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantIface.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantIface.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantP2pIfaceCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pIfaceCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
$(GEN): PRIVATE_CUSTOM_TOOL = \
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-Ljava -randroid.hardware:hardware/interfaces \
- android.hardware.wifi.supplicant@1.0::ISupplicantNetworkCallback
+ android.hardware.wifi.supplicant@1.0::ISupplicantP2pIface
-$(GEN): $(LOCAL_PATH)/ISupplicantNetworkCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pIface.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantP2pIfaceCallback.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantP2pIfaceCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantP2pIfaceCallback
+
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pIfaceCallback.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantP2pNetwork.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantP2pNetwork.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantP2pNetwork.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantNetwork.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantNetwork.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantP2pNetworkCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pNetworkCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantP2pNetwork
+
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pNetwork.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantP2pNetworkCallback.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantP2pNetworkCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantP2pNetworkCallback.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantP2pNetworkCallback
+
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pNetworkCallback.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantStaIface.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantStaIface.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantStaIface.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantIface.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantIface.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantStaIfaceCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantStaIfaceCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantStaIface
+
+$(GEN): $(LOCAL_PATH)/ISupplicantStaIface.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantStaIfaceCallback.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantStaIfaceCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantStaIfaceCallback
+
+$(GEN): $(LOCAL_PATH)/ISupplicantStaIfaceCallback.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantStaNetwork.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantStaNetwork.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantStaNetwork.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantNetwork.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantNetwork.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantStaNetworkCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantStaNetworkCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantStaNetwork
+
+$(GEN): $(LOCAL_PATH)/ISupplicantStaNetwork.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantStaNetworkCallback.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantStaNetworkCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantStaNetworkCallback.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantStaNetworkCallback
+
+$(GEN): $(LOCAL_PATH)/ISupplicantStaNetworkCallback.hal
$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)
include $(BUILD_JAVA_LIBRARY)
@@ -179,6 +320,23 @@
HIDL := $(HOST_OUT_EXECUTABLES)/hidl-gen$(HOST_EXECUTABLE_SUFFIX)
#
+# Build types.hal (IfaceType)
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/IfaceType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::types.IfaceType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
# Build types.hal (SupplicantStatus)
#
GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/SupplicantStatus.java
@@ -259,8 +417,6 @@
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantIface.hal
-$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantIfaceCallback.hal
-$(GEN): $(LOCAL_PATH)/ISupplicantIfaceCallback.hal
$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantNetwork.hal
$(GEN): $(LOCAL_PATH)/ISupplicantNetwork.hal
$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
@@ -276,33 +432,12 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
-# Build ISupplicantIfaceCallback.hal
-#
-GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantIfaceCallback.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantIfaceCallback.hal
-$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
-$(GEN): $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
- $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
- -Ljava -randroid.hardware:hardware/interfaces \
- android.hardware.wifi.supplicant@1.0::ISupplicantIfaceCallback
-
-$(GEN): $(LOCAL_PATH)/ISupplicantIfaceCallback.hal
- $(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
# Build ISupplicantNetwork.hal
#
GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantNetwork.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantNetwork.hal
-$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantNetworkCallback.hal
-$(GEN): $(LOCAL_PATH)/ISupplicantNetworkCallback.hal
$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
$(GEN): $(LOCAL_PATH)/types.hal
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
@@ -316,19 +451,166 @@
LOCAL_GENERATED_SOURCES += $(GEN)
#
-# Build ISupplicantNetworkCallback.hal
+# Build ISupplicantP2pIface.hal
#
-GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantNetworkCallback.java
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantP2pIface.java
$(GEN): $(HIDL)
$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantNetworkCallback.hal
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantP2pIface.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantIface.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantIface.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantP2pIfaceCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pIfaceCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
$(GEN): PRIVATE_CUSTOM_TOOL = \
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-Ljava -randroid.hardware:hardware/interfaces \
- android.hardware.wifi.supplicant@1.0::ISupplicantNetworkCallback
+ android.hardware.wifi.supplicant@1.0::ISupplicantP2pIface
-$(GEN): $(LOCAL_PATH)/ISupplicantNetworkCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pIface.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantP2pIfaceCallback.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantP2pIfaceCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantP2pIfaceCallback
+
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pIfaceCallback.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantP2pNetwork.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantP2pNetwork.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantP2pNetwork.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantNetwork.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantNetwork.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantP2pNetworkCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pNetworkCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantP2pNetwork
+
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pNetwork.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantP2pNetworkCallback.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantP2pNetworkCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantP2pNetworkCallback.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantP2pNetworkCallback
+
+$(GEN): $(LOCAL_PATH)/ISupplicantP2pNetworkCallback.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantStaIface.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantStaIface.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantStaIface.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantIface.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantIface.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantStaIfaceCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantStaIfaceCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantStaIface
+
+$(GEN): $(LOCAL_PATH)/ISupplicantStaIface.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantStaIfaceCallback.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantStaIfaceCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantStaIfaceCallback
+
+$(GEN): $(LOCAL_PATH)/ISupplicantStaIfaceCallback.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantStaNetwork.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantStaNetwork.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantStaNetwork.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantNetwork.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantNetwork.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/ISupplicantStaNetworkCallback.hal
+$(GEN): $(LOCAL_PATH)/ISupplicantStaNetworkCallback.hal
+$(GEN): PRIVATE_DEPS += $(LOCAL_PATH)/types.hal
+$(GEN): $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantStaNetwork
+
+$(GEN): $(LOCAL_PATH)/ISupplicantStaNetwork.hal
+ $(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
+# Build ISupplicantStaNetworkCallback.hal
+#
+GEN := $(intermediates)/android/hardware/wifi/supplicant/1.0/ISupplicantStaNetworkCallback.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/ISupplicantStaNetworkCallback.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+ $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+ -Ljava -randroid.hardware:hardware/interfaces \
+ android.hardware.wifi.supplicant@1.0::ISupplicantStaNetworkCallback
+
+$(GEN): $(LOCAL_PATH)/ISupplicantStaNetworkCallback.hal
$(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN)
include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/wifi/supplicant/1.0/ISupplicantIface.hal b/wifi/supplicant/1.0/ISupplicantIface.hal
index 7b4f86f..afbfd8e 100644
--- a/wifi/supplicant/1.0/ISupplicantIface.hal
+++ b/wifi/supplicant/1.0/ISupplicantIface.hal
@@ -16,7 +16,6 @@
package android.hardware.wifi.supplicant@1.0;
-import ISupplicantIfaceCallback;
import ISupplicantNetwork;
/**
@@ -36,6 +35,17 @@
getName() generates (SupplicantStatus status, string name);
/**
+ * Retrieves the type of the network interface.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ * @return type Type of the network interface, e.g., STA.
+ */
+ getType() generates (SupplicantStatus status, IfaceType type);
+
+ /**
* Add a new network to the interface.
*
* @return status Status of the operation.
@@ -100,114 +110,4 @@
*/
listNetworks()
generates (SupplicantStatus status, vec<SupplicantNetworkId> networkIds);
-
- /**
- * Register for callbacks from this interface.
- *
- * These callbacks are invoked for events that are specific to this interface.
- * Registration of multiple callback objects is supported. These objects must
- * be automatically deleted when the corresponding client process is dead or
- * if this interface is removed.
- *
- * @param callback An instance of the |ISupplicantIfaceCallback| HIDL
- * interface object.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
- */
- registerCallback(ISupplicantIfaceCallback callback)
- generates (SupplicantStatus status);
-
- /**
- * Reconnect to the currently active network, even if we are already
- * connected.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
- * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
- */
- reassociate() generates (SupplicantStatus status);
-
- /**
- * Reconnect to the currently active network, if we are currently
- * disconnected.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
- * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|,
- * |SupplicantStatusCode.FAILURE_IFACE_NOT_DISCONNECTED|
- */
- reconnect() generates (SupplicantStatus status);
-
- /**
- * Disconnect from the current active network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
- * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
- */
- disconnect() generates (SupplicantStatus status);
-
- /**
- * Turn on/off power save mode for the interface.
- *
- * @param enable Indicate if power save is to be turned on/off.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
- * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
- */
- setPowerSave(bool enable) generates (SupplicantStatus status);
-
- /**
- * Initiate TDLS discover with the provided peer mac address.
- *
- * @param macAddress MAC address of the peer.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
- */
- initiateTdlsDiscover(MacAddress macAddress)
- generates (SupplicantStatus status);
-
- /**
- * Initiate TDLS setup with the provided peer mac address.
- *
- * @param macAddress MAC address of the peer.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
- */
- initiateTdlsSetup(MacAddress macAddress)
- generates (SupplicantStatus status);
-
- /**
- * Initiate TDLS teardown with the provided peer mac address.
- *
- * @param macAddress MAC address of the peer.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
- */
- initiateTdlsTeardown(MacAddress macAddress)
- generates (SupplicantStatus status);
};
diff --git a/wifi/supplicant/1.0/ISupplicantNetwork.hal b/wifi/supplicant/1.0/ISupplicantNetwork.hal
index fce3c5d..acc3359 100644
--- a/wifi/supplicant/1.0/ISupplicantNetwork.hal
+++ b/wifi/supplicant/1.0/ISupplicantNetwork.hal
@@ -16,8 +16,6 @@
package android.hardware.wifi.supplicant@1.0;
-import ISupplicantNetworkCallback;
-
/**
* Interface exposed by wpa_supplicant for each network configuration it
* controls.
@@ -28,100 +26,6 @@
*/
interface ISupplicantNetwork {
/**
- * Size limits for some of the params used in this interface.
- */
- enum ParamSizeLimits : uint32_t {
- /** Max length of SSID param. */
- SSID_MAX_LEN_IN_BYTES = 32,
-
- /** Min length of PSK passphrase param. */
- PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8,
-
- /** Max length of PSK passphrase param. */
- PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63,
-
- /** Max number of WEP keys param. */
- WEP_KEYS_MAX_NUM = 4,
-
- /** Length of each WEP40 keys param. */
- WEP40_KEY_LEN_IN_BYTES = 5,
- /** Length of each WEP104 keys param. */
- WEP104_KEY_LEN_IN_BYTES = 13,
- };
-
- /** Possble mask of values for KeyMgmt param. */
- enum KeyMgmtMask : uint32_t {
- WPA_EAP = 1 << 0,
- WPA_PSK = 1 << 1,
- NONE = 1 << 2,
- IEEE8021X = 1 << 3
- };
-
- /** Possble mask of values for Proto param. */
- enum ProtoMask : uint32_t {
- WPA = 1 << 0,
- RSN = 1 << 1,
- /** Unused 1 << 2 */
- OSEN = 1 << 3
- };
-
- /** Possble mask of values for AuthAlg param. */
- enum AuthAlgMask : uint32_t {
- OPEN = 1 << 0,
- SHARED = 1 << 1,
- LEAP = 1 << 2
- };
-
- /** Possble mask of values for GroupCipher param. */
- enum GroupCipherMask : uint32_t {
- WEP40 = 1 << 1,
- WEP104 = 1 << 2,
- TKIP = 1 << 3,
- CCMP = 1 << 4
- };
-
- /** Possble mask of values for PairwiseCipher param. */
- enum PairwiseCipherMask : uint32_t {
- NONE = 1 << 0,
- TKIP = 1 << 3,
- CCMP = 1 << 4
- };
-
- /** Possble values for EapMethod param. */
- enum EapMethod : uint32_t {
- PEAP = 0,
- TLS = 1,
- TTLS = 2,
- PWD = 3,
- SIM = 4,
- AKA = 5,
- AKA_PRIME = 6,
- WFA_UNAUTH_TLS = 7
- };
-
- /** Possble values for Phase2Method param. */
- enum EapPhase2Method : uint32_t {
- NONE = 0,
- PAP = 1,
- MSPAP = 2,
- MSPAPV2 = 3,
- GTC = 4
- };
-
- /** Params of |sendNetworkEapSimGsmAuthResponse| request. (Refer RFC 4186) */
- struct NetworkResponseEapSimGsmAuthParams {
- uint8_t[8] kc;
- uint8_t[4] sres;
- };
-
- /** Params of |sendNetworkEapSimUmtsAuthResponse| request. (Refer RFC 4187) */
- struct NetworkResponseEapSimUmtsAuthParams {
- vec<uint8_t> res;
- uint8_t[16] ik;
- uint8_t[16] ck;
- };
-
- /**
* Retrieves the ID allocated to this network by wpa_supplicant.
*
* This is not the |SSID| of the network, but an internal identifier for
@@ -147,593 +51,13 @@
getInterfaceName() generates (SupplicantStatus status, string name);
/**
- * Register for callbacks from this network.
- *
- * These callbacks are invoked for events that are specific to this network.
- * Registration of multiple callback objects is supported. These objects must
- * be automatically deleted when the corresponding client process is dead or
- * if this network is removed.
- *
- * @param callback An instance of the |ISupplicantNetworkCallback| HIDL
- * interface object.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- registerCallback(ISupplicantNetworkCallback callback)
- generates (SupplicantStatus status);
-
- /**
- * Setters for the various network params.
- * These correspond to elements of |wpa_sssid| struct used internally by
- * wpa_supplicant to represent each network.
- */
- /**
- * Set SSID for this network.
- *
- * @param ssid value to set.
- * Max length of |ParamSizeLimits.SSID_MAX_LEN_IN_BYTES|.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setSsid(Ssid ssid) generates (SupplicantStatus status);
-
- /**
- * Set the network to only connect to an AP with provided BSSID.
- *
- * @param bssid value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setBssid(Bssid bssid) generates (SupplicantStatus status);
-
- /**
- * Set whether to send probe requests for this network (hidden).
- *
- * @param enable true to set, false otherwise.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setScanSsid(bool enable) generates (SupplicantStatus status);
-
- /**
- * Set key management mask for the network.
- *
- * @param keyMgmtMask value to set.
- * Combination of |KeyMgmtMask| values.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setKeyMgmt(uint32_t keyMgmtMask) generates (SupplicantStatus status);
-
- /**
- * Set proto mask for the network.
- *
- * @param protoMask value to set.
- * Combination of |ProtoMask| values.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setProto(uint32_t protoMask) generates (SupplicantStatus status);
-
- /**
- * Set auth alg mask for the network.
- *
- * @param authAlgMask value to set.
- * Combination of |ProtoMask| values.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setAuthAlg(uint32_t authAlgMask) generates (SupplicantStatus status);
-
- /**
- * Set group cipher mask for the network.
- *
- * @param groupCipherMask value to set.
- * Combination of |ProtoMask| values.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setGroupCipher(uint32_t groupCipherMask)
- generates (SupplicantStatus status);
-
- /**
- * Set pairwise cipher mask for the network.
- *
- * @param pairwiseCipherMask value to set.
- * Combination of |ProtoMask| values.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setPairwiseCipher(uint32_t pairwiseCipherMask)
- generates (SupplicantStatus status);
-
- /**
- * Set passphrase for WPA_PSK network.
- *
- * @param psk value to set.
- * Length of value must be between
- * |ParamSizeLimits.PSK_PASSPHRASE_MIN_LEN_IN_BYTES| and
- * |ParamSizeLimits.PSK_PASSPHRASE_MAX_LEN_IN_BYTES|.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setPskPassphrase(string psk) generates (SupplicantStatus status);
-
- /**
- * Set WEP key for WEP network.
- *
- * @param keyIdx Index of wep key to set.
- * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|.
- * @param wepKey value to set.
- * Length of each key must be either
- * |ParamSizeLimits.WEP40_KEY_LEN_IN_BYTES| or
- * |ParamSizeLimits.WEP104_KEY_LEN_IN_BYTES|.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setWepKey(uint32_t keyIdx, vec<uint8_t> wepKey)
- generates (SupplicantStatus status);
-
- /**
- * Set default Tx key index for WEP network.
- *
- * @param KeyIdx value to set.
- * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setWepTxKeyIdx(uint32_t keyIdx)
- generates (SupplicantStatus status);
-
- /**
- * Set whether RequirePmf is enabled for this network.
- *
- * @param enable true to set, false otherwise.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setRequirePmf(bool enable) generates (SupplicantStatus status);
-
- /**
- * Set EAP Method for this network.
- *
- * @param method value to be set.
- * Must be one of |EapMethod| values.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapMethod(EapMethod method)
- generates (SupplicantStatus status);
-
- /**
- * Set EAP Phase2 Method for this network.
- *
- * @param method value to set.
- * Must be one of |EapPhase2Method| values.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapPhase2Method(EapPhase2Method method)
- generates (SupplicantStatus status);
-
- /**
- * Set EAP Identity for this network.
- *
- * @param identity value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapIdentity(vec<uint8_t> identity)
- generates (SupplicantStatus status);
-
- /**
- * Set EAP Anonymous Identity for this network.
- *
- * @param identity value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapAnonymousIdentity(vec<uint8_t> identity)
- generates (SupplicantStatus status);
-
- /**
- * Set EAP Password for this network.
- *
- * @param password value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapPassword(vec<uint8_t> password)
- generates (SupplicantStatus status);
-
- /**
- * Set EAP CA certificate file path for this network.
- *
- * @param path value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapCACert(string path) generates (SupplicantStatus status);
-
- /**
- * Set EAP CA certificate directory path for this network.
- *
- * @param path value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapCAPath(string path) generates (SupplicantStatus status);
-
- /**
- * Set EAP Client certificate file path for this network.
- *
- * @param path value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapClientCert(string path) generates (SupplicantStatus status);
-
- /**
- * Set EAP private key file path for this network.
- *
- * @param path value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapPrivateKey(string path) generates (SupplicantStatus status);
-
- /**
- * Set EAP subject match for this network.
- *
- * @param match value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapSubjectMatch(string match) generates (SupplicantStatus status);
-
- /**
- * Set EAP Altsubject match for this network.
- *
- * @param match value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapAltSubjectMatch(string match)
- generates (SupplicantStatus status);
-
- /**
- * Enable EAP Open SSL Engine for this network.
- *
- * @param enable true to set, false otherwise.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapEngine(bool enable) generates (SupplicantStatus status);
-
- /**
- * Set EAP Open SSL Engine ID for this network.
- *
- * @param id value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapEngineID(string id) generates (SupplicantStatus status);
-
- /**
- * Set EAP Domain suffix match for this network.
- *
- * @param match value to set.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- setEapDomainSuffixMatch(string match)
- generates (SupplicantStatus status);
-
- /**
- * Getters for the various network params.
- */
- /**
- * Get SSID for this network.
+ * Retrieves the type of the interface this network belongs to.
*
* @return status Status of the operation.
* Possible status codes:
* |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return ssid value set.
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ * @return type Type of the network interface, e.g., STA.
*/
- getSsid() generates (SupplicantStatus status, Ssid ssid);
-
- /**
- * Get the BSSID set for this network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return bssid value set.
- */
- getBssid() generates (SupplicantStatus status, Bssid bssid);
-
- /**
- * Get whether Probe Requests are being sent for this network (hidden).
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return enabled true if set, false otherwise.
- */
- getScanSsid() generates (SupplicantStatus status, bool enabled);
-
- /**
- * Get the key mgmt mask set for the network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return keyMgmtMask Combination of |KeyMgmtMask| values.
- */
- getKeyMgmt()
- generates (SupplicantStatus status, uint32_t keyMgmtMask);
-
- /**
- * Get the proto mask set for the network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return protoMask Combination of |ProtoMask| values.
- */
- getProto() generates (SupplicantStatus status, uint32_t protoMask);
-
- /**
- * Get the auth alg mask set for the network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return authAlgMask Combination of |AuthAlgMask| values.
- */
- getAuthAlg()
- generates (SupplicantStatus status, uint32_t authAlgMask);
-
- /**
- * Get the group cipher mask set for the network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return groupCipherMask Combination of |GroupCipherMask| values.
- */
- getGroupCipher()
- generates (SupplicantStatus status, uint32_t groupCipherMask);
-
- /**
- * Get the pairwise cipher mask set for the network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values.
- */
- getPairwiseCipher()
- generates (SupplicantStatus status, uint32_t pairwiseCipherMask);
-
- /**
- * Get passphrase for WPA_PSK network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return psk value set.
- */
- getPskPassphrase() generates (SupplicantStatus status, string psk);
-
- /**
- * Get WEP key for WEP network.
- *
- * @param keyIdx Index of wep key to be fetched.
- * Max of |WEP_KEYS_MAX_NUM|.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return wepKey value set.
- */
- getWepKey(uint32_t keyIdx)
- generates (SupplicantStatus status, vec<uint8_t> wepKey);
-
- /**
- * Get default Tx key index for WEP network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return keyIdx value set.
- */
- getWepTxKeyIdx()
- generates (SupplicantStatus status, uint32_t keyIdx);
-
- /**
- * Get whether RequirePmf is enabled for this network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- * @return enabled true if set, false otherwise.
- */
- getRequirePmf() generates (SupplicantStatus status, bool enabled);
-
- /**
- * Enable the network for connection purposes.
- *
- * This must trigger a connection to the network if:
- * a) |noConnect| is false, and
- * b) This is the only network configured, and
- * c) Is visible in the current scan results.
- *
- * @param noConnect Only enable the network, dont trigger a connect.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- enable(bool noConnect) generates (SupplicantStatus status);
-
- /**
- * Disable the network for connection purposes.
- *
- * This must trigger a disconnection from the network, if currently
- * connected to this one.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- disable() generates (SupplicantStatus status);
-
- /**
- * Initiate connection to this network.
- *
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- select() generates (SupplicantStatus status);
-
- /**
- * Used to send a response to the
- * |ISupplicantNetworkCallback.onNetworkEapSimGsmAuthRequest| request.
- *
- * @param params Params to be used for EAP GSM authentication.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- sendNetworkEapSimGsmAuthResponse(NetworkResponseEapSimGsmAuthParams params)
- generates (SupplicantStatus status);
-
- /**
- * Used to send a response to the
- * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request.
- *
- * @param params Params to be used for EAP UMTS authentication.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- sendNetworkEapSimUmtsAuthResponse(NetworkResponseEapSimUmtsAuthParams params)
- generates (SupplicantStatus status);
-
- /**
- * Used to send a response to the
- * |ISupplicantNetworkCallback.onNetworkEapIdentityRequest| request.
- *
- * @param identity Identity to be used for the network.
- * @return status Status of the operation.
- * Possible status codes:
- * |SupplicantStatusCode.SUCCESS|,
- * |SupplicantStatusCode.FAILURE_UNKNOWN|,
- * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
- */
- sendNetworkEapIdentityResponse(vec<uint8_t> identity)
- generates (SupplicantStatus status);
+ getType() generates (SupplicantStatus status, IfaceType type);
};
diff --git a/wifi/supplicant/1.0/ISupplicantP2pIface.hal b/wifi/supplicant/1.0/ISupplicantP2pIface.hal
new file mode 100644
index 0000000..ea0878b
--- /dev/null
+++ b/wifi/supplicant/1.0/ISupplicantP2pIface.hal
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.wifi.supplicant@1.0;
+
+import ISupplicantIface;
+import ISupplicantP2pIfaceCallback;
+
+/**
+ * Interface exposed by wpa_supplicant for each P2P mode network
+ * interface (e.g p2p0) it controls.
+ */
+interface ISupplicantP2pIface extends ISupplicantIface {
+ /**
+ * Register for callbacks from this interface.
+ *
+ * These callbacks are invoked for events that are specific to this interface.
+ * Registration of multiple callback objects is supported. These objects must
+ * be automatically deleted when the corresponding client process is dead or
+ * if this interface is removed.
+ *
+ * @param callback An instance of the |ISupplicantP2pIfaceCallback| HIDL
+ * interface object.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ registerCallback(ISupplicantP2pIfaceCallback callback)
+ generates (SupplicantStatus status);
+};
diff --git a/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal b/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal
new file mode 100644
index 0000000..1574e6a
--- /dev/null
+++ b/wifi/supplicant/1.0/ISupplicantP2pIfaceCallback.hal
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.wifi.supplicant@1.0;
+
+/**
+ * Callback Interface exposed by the wpa_supplicant service
+ * for each P2P mode interface (ISupplicantP2pIface).
+ *
+ * Clients need to host an instance of this HIDL interface object and
+ * pass a reference of the object to wpa_supplicant via the
+ * corresponding |ISupplicantP2pIface.registerCallback| method.
+ */
+interface ISupplicantP2pIfaceCallback {
+ /**
+ * Used to indicate that a new network has been added.
+ *
+ * @param id Network ID allocated to the corresponding network.
+ */
+ oneway onNetworkAdded(SupplicantNetworkId id);
+
+ /**
+ * Used to indicate that a network has been removed.
+ *
+ * @param id Network ID allocated to the corresponding network.
+ */
+ oneway onNetworkRemoved(SupplicantNetworkId id);
+};
diff --git a/wifi/supplicant/1.0/ISupplicantP2pNetwork.hal b/wifi/supplicant/1.0/ISupplicantP2pNetwork.hal
new file mode 100644
index 0000000..13eeae7
--- /dev/null
+++ b/wifi/supplicant/1.0/ISupplicantP2pNetwork.hal
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.wifi.supplicant@1.0;
+
+import ISupplicantNetwork;
+import ISupplicantP2pNetworkCallback;
+
+/**
+ * Interface exposed by wpa_supplicant for each P2P mode network
+ * configuration it controls.
+ */
+interface ISupplicantP2pNetwork extends ISupplicantNetwork {
+ /**
+ * Register for callbacks from this network.
+ *
+ * These callbacks are invoked for events that are specific to this network.
+ * Registration of multiple callback objects is supported. These objects must
+ * be automatically deleted when the corresponding client process is dead or
+ * if this network is removed.
+ *
+ * @param callback An instance of the |ISupplicantP2pNetworkCallback| HIDL
+ * interface object.
+ * @return status P2ptus of the operation.
+ * Possible status codes:
+ * |SupplicantP2ptusCode.SUCCESS|,
+ * |SupplicantP2ptusCode.FAILURE_UNKNOWN|,
+ * |SupplicantP2ptusCode.FAILURE_NETWORK_INVALID|
+ */
+ registerCallback(ISupplicantP2pNetworkCallback callback)
+ generates (SupplicantStatus status);
+};
diff --git a/wifi/supplicant/1.0/ISupplicantP2pNetworkCallback.hal b/wifi/supplicant/1.0/ISupplicantP2pNetworkCallback.hal
new file mode 100644
index 0000000..d171a09
--- /dev/null
+++ b/wifi/supplicant/1.0/ISupplicantP2pNetworkCallback.hal
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.wifi.supplicant@1.0;
+
+/**
+ * Callback Interface exposed by the wpa_supplicant service
+ * for each network (ISupplicantP2pNetwork).
+ *
+ * Clients need to host an instance of this HIDL interface object and
+ * pass a reference of the object to wpa_supplicant via the
+ * corresponding |ISupplicantP2pNetwork.registerCallback| method.
+ */
+interface ISupplicantP2pNetworkCallback {
+ // TODO(rpius): Add the reqd callbacks.
+};
diff --git a/wifi/supplicant/1.0/ISupplicantStaIface.hal b/wifi/supplicant/1.0/ISupplicantStaIface.hal
new file mode 100644
index 0000000..4e2c7c8
--- /dev/null
+++ b/wifi/supplicant/1.0/ISupplicantStaIface.hal
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.wifi.supplicant@1.0;
+
+import ISupplicantIface;
+import ISupplicantStaIfaceCallback;
+
+/**
+ * Interface exposed by wpa_supplicant for each station mode network
+ * interface (e.g wlan0) it controls.
+ */
+interface ISupplicantStaIface extends ISupplicantIface {
+ /**
+ * Register for callbacks from this interface.
+ *
+ * These callbacks are invoked for events that are specific to this interface.
+ * Registration of multiple callback objects is supported. These objects must
+ * be automatically deleted when the corresponding client process is dead or
+ * if this interface is removed.
+ *
+ * @param callback An instance of the |ISupplicantStaIfaceCallback| HIDL
+ * interface object.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ registerCallback(ISupplicantStaIfaceCallback callback)
+ generates (SupplicantStatus status);
+
+ /**
+ * Reconnect to the currently active network, even if we are already
+ * connected.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
+ */
+ reassociate() generates (SupplicantStatus status);
+
+ /**
+ * Reconnect to the currently active network, if we are currently
+ * disconnected.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|,
+ * |SupplicantStatusCode.FAILURE_IFACE_NOT_DISCONNECTED|
+ */
+ reconnect() generates (SupplicantStatus status);
+
+ /**
+ * Disconnect from the current active network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
+ */
+ disconnect() generates (SupplicantStatus status);
+
+ /**
+ * Turn on/off power save mode for the interface.
+ *
+ * @param enable Indicate if power save is to be turned on/off.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|,
+ * |SupplicantStatusCode.FAILURE_IFACE_DISABLED|
+ */
+ setPowerSave(bool enable) generates (SupplicantStatus status);
+
+ /**
+ * Initiate TDLS discover with the provided peer mac address.
+ *
+ * @param macAddress MAC address of the peer.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ initiateTdlsDiscover(MacAddress macAddress)
+ generates (SupplicantStatus status);
+
+ /**
+ * Initiate TDLS setup with the provided peer mac address.
+ *
+ * @param macAddress MAC address of the peer.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ initiateTdlsSetup(MacAddress macAddress)
+ generates (SupplicantStatus status);
+
+ /**
+ * Initiate TDLS teardown with the provided peer mac address.
+ *
+ * @param macAddress MAC address of the peer.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_IFACE_INVALID|
+ */
+ initiateTdlsTeardown(MacAddress macAddress)
+ generates (SupplicantStatus status);
+};
diff --git a/wifi/supplicant/1.0/ISupplicantIfaceCallback.hal b/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal
similarity index 96%
rename from wifi/supplicant/1.0/ISupplicantIfaceCallback.hal
rename to wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal
index 8e193cd..d104814 100644
--- a/wifi/supplicant/1.0/ISupplicantIfaceCallback.hal
+++ b/wifi/supplicant/1.0/ISupplicantStaIfaceCallback.hal
@@ -18,13 +18,13 @@
/**
* Callback Interface exposed by the wpa_supplicant service
- * for each interface (ISupplicantIface).
+ * for each station mode interface (ISupplicantStaIface).
*
* Clients need to host an instance of this HIDL interface object and
* pass a reference of the object to wpa_supplicant via the
- * corresponding |ISupplicantIface.registerCallback| method.
+ * corresponding |ISupplicantStaIface.registerCallback| method.
*/
-interface ISupplicantIfaceCallback {
+interface ISupplicantStaIfaceCallback {
/** Various states of the interface reported by |onStateChanged|.*/
enum State : uint32_t {
/**
@@ -38,7 +38,7 @@
* due to rfkill. wpa_supplicant refuses any new operations that would
* use the radio until the interface has been enabled.
*/
- INTERFACE_DISABLED = 1,
+ IFACE_DISABLED = 1,
/**
* This state is entered if there are no enabled networks in the
* configuration. wpa_supplicant is not trying to associate with a new
diff --git a/wifi/supplicant/1.0/ISupplicantStaNetwork.hal b/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
new file mode 100644
index 0000000..ce23932
--- /dev/null
+++ b/wifi/supplicant/1.0/ISupplicantStaNetwork.hal
@@ -0,0 +1,711 @@
+/*
+ * Copyright 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.wifi.supplicant@1.0;
+
+import ISupplicantNetwork;
+import ISupplicantStaNetworkCallback;
+
+/**
+ * Interface exposed by wpa_supplicant for each station mode network
+ * configuration it controls.
+ */
+interface ISupplicantStaNetwork extends ISupplicantNetwork {
+ /**
+ * Size limits for some of the params used in this interface.
+ */
+ enum ParamSizeLimits : uint32_t {
+ /** Max length of SSID param. */
+ SSID_MAX_LEN_IN_BYTES = 32,
+
+ /** Min length of PSK passphrase param. */
+ PSK_PASSPHRASE_MIN_LEN_IN_BYTES = 8,
+
+ /** Max length of PSK passphrase param. */
+ PSK_PASSPHRASE_MAX_LEN_IN_BYTES = 63,
+
+ /** Max number of WEP keys param. */
+ WEP_KEYS_MAX_NUM = 4,
+
+ /** Length of each WEP40 keys param. */
+ WEP40_KEY_LEN_IN_BYTES = 5,
+ /** Length of each WEP104 keys param. */
+ WEP104_KEY_LEN_IN_BYTES = 13,
+ };
+
+ /** Possble mask of values for KeyMgmt param. */
+ enum KeyMgmtMask : uint32_t {
+ WPA_EAP = 1 << 0,
+ WPA_PSK = 1 << 1,
+ NONE = 1 << 2,
+ IEEE8021X = 1 << 3
+ };
+
+ /** Possble mask of values for Proto param. */
+ enum ProtoMask : uint32_t {
+ WPA = 1 << 0,
+ RSN = 1 << 1,
+ /** Unused 1 << 2 */
+ OSEN = 1 << 3
+ };
+
+ /** Possble mask of values for AuthAlg param. */
+ enum AuthAlgMask : uint32_t {
+ OPEN = 1 << 0,
+ SHARED = 1 << 1,
+ LEAP = 1 << 2
+ };
+
+ /** Possble mask of values for GroupCipher param. */
+ enum GroupCipherMask : uint32_t {
+ WEP40 = 1 << 1,
+ WEP104 = 1 << 2,
+ TKIP = 1 << 3,
+ CCMP = 1 << 4
+ };
+
+ /** Possble mask of values for PairwiseCipher param. */
+ enum PairwiseCipherMask : uint32_t {
+ NONE = 1 << 0,
+ TKIP = 1 << 3,
+ CCMP = 1 << 4
+ };
+
+ /** Possble values for EapMethod param. */
+ enum EapMethod : uint32_t {
+ PEAP = 0,
+ TLS = 1,
+ TTLS = 2,
+ PWD = 3,
+ SIM = 4,
+ AKA = 5,
+ AKA_PRIME = 6,
+ WFA_UNAUTH_TLS = 7
+ };
+
+ /** Possble values for Phase2Method param. */
+ enum EapPhase2Method : uint32_t {
+ NONE = 0,
+ PAP = 1,
+ MSPAP = 2,
+ MSPAPV2 = 3,
+ GTC = 4
+ };
+
+ /** Params of |sendNetworkEapSimGsmAuthResponse| request. (Refer RFC 4186) */
+ struct NetworkResponseEapSimGsmAuthParams {
+ uint8_t[8] kc;
+ uint8_t[4] sres;
+ };
+
+ /** Params of |sendNetworkEapSimUmtsAuthResponse| request. (Refer RFC 4187) */
+ struct NetworkResponseEapSimUmtsAuthParams {
+ vec<uint8_t> res;
+ uint8_t[16] ik;
+ uint8_t[16] ck;
+ };
+
+ /**
+ * Register for callbacks from this network.
+ *
+ * These callbacks are invoked for events that are specific to this network.
+ * Registration of multiple callback objects is supported. These objects must
+ * be automatically deleted when the corresponding client process is dead or
+ * if this network is removed.
+ *
+ * @param callback An instance of the |ISupplicantStaNetworkCallback| HIDL
+ * interface object.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ registerCallback(ISupplicantStaNetworkCallback callback)
+ generates (SupplicantStatus status);
+
+ /**
+ * Setters for the various network params.
+ * These correspond to elements of |wpa_sssid| struct used internally by
+ * wpa_supplicant to represent each network.
+ */
+ /**
+ * Set SSID for this network.
+ *
+ * @param ssid value to set.
+ * Max length of |ParamSizeLimits.SSID_MAX_LEN_IN_BYTES|.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setSsid(Ssid ssid) generates (SupplicantStatus status);
+
+ /**
+ * Set the network to only connect to an AP with provided BSSID.
+ *
+ * @param bssid value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setBssid(Bssid bssid) generates (SupplicantStatus status);
+
+ /**
+ * Set whether to send probe requests for this network (hidden).
+ *
+ * @param enable true to set, false otherwise.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setScanSsid(bool enable) generates (SupplicantStatus status);
+
+ /**
+ * Set key management mask for the network.
+ *
+ * @param keyMgmtMask value to set.
+ * Combination of |KeyMgmtMask| values.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setKeyMgmt(uint32_t keyMgmtMask) generates (SupplicantStatus status);
+
+ /**
+ * Set proto mask for the network.
+ *
+ * @param protoMask value to set.
+ * Combination of |ProtoMask| values.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setProto(uint32_t protoMask) generates (SupplicantStatus status);
+
+ /**
+ * Set auth alg mask for the network.
+ *
+ * @param authAlgMask value to set.
+ * Combination of |ProtoMask| values.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setAuthAlg(uint32_t authAlgMask) generates (SupplicantStatus status);
+
+ /**
+ * Set group cipher mask for the network.
+ *
+ * @param groupCipherMask value to set.
+ * Combination of |ProtoMask| values.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setGroupCipher(uint32_t groupCipherMask)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set pairwise cipher mask for the network.
+ *
+ * @param pairwiseCipherMask value to set.
+ * Combination of |ProtoMask| values.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setPairwiseCipher(uint32_t pairwiseCipherMask)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set passphrase for WPA_PSK network.
+ *
+ * @param psk value to set.
+ * Length of value must be between
+ * |ParamSizeLimits.PSK_PASSPHRASE_MIN_LEN_IN_BYTES| and
+ * |ParamSizeLimits.PSK_PASSPHRASE_MAX_LEN_IN_BYTES|.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setPskPassphrase(string psk) generates (SupplicantStatus status);
+
+ /**
+ * Set WEP key for WEP network.
+ *
+ * @param keyIdx Index of wep key to set.
+ * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|.
+ * @param wepKey value to set.
+ * Length of each key must be either
+ * |ParamSizeLimits.WEP40_KEY_LEN_IN_BYTES| or
+ * |ParamSizeLimits.WEP104_KEY_LEN_IN_BYTES|.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setWepKey(uint32_t keyIdx, vec<uint8_t> wepKey)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set default Tx key index for WEP network.
+ *
+ * @param KeyIdx value to set.
+ * Max of |ParamSizeLimits.WEP_KEYS_MAX_NUM|.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setWepTxKeyIdx(uint32_t keyIdx)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set whether RequirePmf is enabled for this network.
+ *
+ * @param enable true to set, false otherwise.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setRequirePmf(bool enable) generates (SupplicantStatus status);
+
+ /**
+ * Set EAP Method for this network.
+ *
+ * @param method value to be set.
+ * Must be one of |EapMethod| values.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapMethod(EapMethod method)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set EAP Phase2 Method for this network.
+ *
+ * @param method value to set.
+ * Must be one of |EapPhase2Method| values.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapPhase2Method(EapPhase2Method method)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set EAP Identity for this network.
+ *
+ * @param identity value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapIdentity(vec<uint8_t> identity)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set EAP Anonymous Identity for this network.
+ *
+ * @param identity value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapAnonymousIdentity(vec<uint8_t> identity)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set EAP Password for this network.
+ *
+ * @param password value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapPassword(vec<uint8_t> password)
+ generates (SupplicantStatus status);
+
+ /**
+ * Set EAP CA certificate file path for this network.
+ *
+ * @param path value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapCACert(string path) generates (SupplicantStatus status);
+
+ /**
+ * Set EAP CA certificate directory path for this network.
+ *
+ * @param path value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapCAPath(string path) generates (SupplicantStatus status);
+
+ /**
+ * Set EAP Client certificate file path for this network.
+ *
+ * @param path value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapClientCert(string path) generates (SupplicantStatus status);
+
+ /**
+ * Set EAP private key file path for this network.
+ *
+ * @param path value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapPrivateKey(string path) generates (SupplicantStatus status);
+
+ /**
+ * Set EAP subject match for this network.
+ *
+ * @param match value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapSubjectMatch(string match) generates (SupplicantStatus status);
+
+ /**
+ * Set EAP Altsubject match for this network.
+ *
+ * @param match value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapAltSubjectMatch(string match)
+ generates (SupplicantStatus status);
+
+ /**
+ * Enable EAP Open SSL Engine for this network.
+ *
+ * @param enable true to set, false otherwise.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapEngine(bool enable) generates (SupplicantStatus status);
+
+ /**
+ * Set EAP Open SSL Engine ID for this network.
+ *
+ * @param id value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapEngineID(string id) generates (SupplicantStatus status);
+
+ /**
+ * Set EAP Domain suffix match for this network.
+ *
+ * @param match value to set.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ setEapDomainSuffixMatch(string match)
+ generates (SupplicantStatus status);
+
+ /**
+ * Getters for the various network params.
+ */
+ /**
+ * Get SSID for this network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return ssid value set.
+ */
+ getSsid() generates (SupplicantStatus status, Ssid ssid);
+
+ /**
+ * Get the BSSID set for this network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return bssid value set.
+ */
+ getBssid() generates (SupplicantStatus status, Bssid bssid);
+
+ /**
+ * Get whether Probe Requests are being sent for this network (hidden).
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return enabled true if set, false otherwise.
+ */
+ getScanSsid() generates (SupplicantStatus status, bool enabled);
+
+ /**
+ * Get the key mgmt mask set for the network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return keyMgmtMask Combination of |KeyMgmtMask| values.
+ */
+ getKeyMgmt()
+ generates (SupplicantStatus status, uint32_t keyMgmtMask);
+
+ /**
+ * Get the proto mask set for the network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return protoMask Combination of |ProtoMask| values.
+ */
+ getProto() generates (SupplicantStatus status, uint32_t protoMask);
+
+ /**
+ * Get the auth alg mask set for the network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return authAlgMask Combination of |AuthAlgMask| values.
+ */
+ getAuthAlg()
+ generates (SupplicantStatus status, uint32_t authAlgMask);
+
+ /**
+ * Get the group cipher mask set for the network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return groupCipherMask Combination of |GroupCipherMask| values.
+ */
+ getGroupCipher()
+ generates (SupplicantStatus status, uint32_t groupCipherMask);
+
+ /**
+ * Get the pairwise cipher mask set for the network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return pairwiseCipherMask Combination of |PairwiseCipherMask| values.
+ */
+ getPairwiseCipher()
+ generates (SupplicantStatus status, uint32_t pairwiseCipherMask);
+
+ /**
+ * Get passphrase for WPA_PSK network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return psk value set.
+ */
+ getPskPassphrase() generates (SupplicantStatus status, string psk);
+
+ /**
+ * Get WEP key for WEP network.
+ *
+ * @param keyIdx Index of wep key to be fetched.
+ * Max of |WEP_KEYS_MAX_NUM|.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return wepKey value set.
+ */
+ getWepKey(uint32_t keyIdx)
+ generates (SupplicantStatus status, vec<uint8_t> wepKey);
+
+ /**
+ * Get default Tx key index for WEP network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return keyIdx value set.
+ */
+ getWepTxKeyIdx()
+ generates (SupplicantStatus status, uint32_t keyIdx);
+
+ /**
+ * Get whether RequirePmf is enabled for this network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ * @return enabled true if set, false otherwise.
+ */
+ getRequirePmf() generates (SupplicantStatus status, bool enabled);
+
+ /**
+ * Enable the network for connection purposes.
+ *
+ * This must trigger a connection to the network if:
+ * a) |noConnect| is false, and
+ * b) This is the only network configured, and
+ * c) Is visible in the current scan results.
+ *
+ * @param noConnect Only enable the network, dont trigger a connect.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ enable(bool noConnect) generates (SupplicantStatus status);
+
+ /**
+ * Disable the network for connection purposes.
+ *
+ * This must trigger a disconnection from the network, if currently
+ * connected to this one.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ disable() generates (SupplicantStatus status);
+
+ /**
+ * Initiate connection to this network.
+ *
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ select() generates (SupplicantStatus status);
+
+ /**
+ * Used to send a response to the
+ * |ISupplicantNetworkCallback.onNetworkEapSimGsmAuthRequest| request.
+ *
+ * @param params Params to be used for EAP GSM authentication.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ sendNetworkEapSimGsmAuthResponse(NetworkResponseEapSimGsmAuthParams params)
+ generates (SupplicantStatus status);
+
+ /**
+ * Used to send a response to the
+ * |ISupplicantNetworkCallback.onNetworkEapSimUmtsAuthRequest| request.
+ *
+ * @param params Params to be used for EAP UMTS authentication.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ sendNetworkEapSimUmtsAuthResponse(NetworkResponseEapSimUmtsAuthParams params)
+ generates (SupplicantStatus status);
+
+ /**
+ * Used to send a response to the
+ * |ISupplicantNetworkCallback.onNetworkEapIdentityRequest| request.
+ *
+ * @param identity Identity to be used for the network.
+ * @return status Status of the operation.
+ * Possible status codes:
+ * |SupplicantStatusCode.SUCCESS|,
+ * |SupplicantStatusCode.FAILURE_UNKNOWN|,
+ * |SupplicantStatusCode.FAILURE_NETWORK_INVALID|
+ */
+ sendNetworkEapIdentityResponse(vec<uint8_t> identity)
+ generates (SupplicantStatus status);
+};
diff --git a/wifi/supplicant/1.0/ISupplicantNetworkCallback.hal b/wifi/supplicant/1.0/ISupplicantStaNetworkCallback.hal
similarity index 93%
rename from wifi/supplicant/1.0/ISupplicantNetworkCallback.hal
rename to wifi/supplicant/1.0/ISupplicantStaNetworkCallback.hal
index 9a5ddd5..2419dcc 100644
--- a/wifi/supplicant/1.0/ISupplicantNetworkCallback.hal
+++ b/wifi/supplicant/1.0/ISupplicantStaNetworkCallback.hal
@@ -18,13 +18,13 @@
/**
* Callback Interface exposed by the wpa_supplicant service
- * for each network (ISupplicantNetwork).
+ * for each network (ISupplicantStaNetwork).
*
* Clients need to host an instance of this HIDL interface object and
* pass a reference of the object to wpa_supplicant via the
- * corresponding |ISupplicantNetwork.registerCallback| method.
+ * corresponding |ISupplicantStaNetwork.registerCallback| method.
*/
-interface ISupplicantNetworkCallback {
+interface ISupplicantStaNetworkCallback {
/** Params of |onNetworkEapSimGsmAuthRequest| request. (Refer RFC 4186) */
typedef uint8_t[16] GsmRand;
struct NetworkRequestEapSimGsmAuthParams {
diff --git a/wifi/supplicant/1.0/types.hal b/wifi/supplicant/1.0/types.hal
index e9426a6..16a8d15 100644
--- a/wifi/supplicant/1.0/types.hal
+++ b/wifi/supplicant/1.0/types.hal
@@ -65,3 +65,11 @@
/** Supplicant network ID type. */
typedef uint32_t SupplicantNetworkId;
+
+/**
+ * List of Iface types supported.
+ */
+enum IfaceType : uint32_t {
+ STA,
+ P2P
+};