1/*
2 * Copyright 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware.wifi@1.2;
18
19import @1.0::CommandIdShort;
20import @1.0::IWifiNanIface;
21import @1.0::NanConfigRequest;
22import @1.0::NanEnableRequest;
23import @1.0::WifiStatus;
24import IWifiNanIfaceEventCallback;
25
26/**
27 * Interface used to represent a single NAN (Neighbour Aware Network) iface.
28 *
29 * References to "NAN Spec" are to the Wi-Fi Alliance "Wi-Fi Neighbor Awareness
30 * Networking (NAN) Technical Specification".
31 */
32interface IWifiNanIface extends @1.0::IWifiNanIface {
33    /**
34     * Requests notifications of significant events on this iface. Multiple calls
35     * to this must register multiple callbacks each of which must receive all
36     * events.
37     *
38     * Note: supersedes the @1.0::IWifiNanIface.registerEventCallback() method which is deprecated
39     * as of HAL version 1.2.
40     *
41     * @param callback An instance of the |IWifiNanIfaceEventCallback| HIDL interface
42     *        object.
43     * @return status WifiStatus of the operation.
44     *         Possible status codes:
45     *         |WifiStatusCode.SUCCESS|,
46     *         |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|
47     */
48    registerEventCallback_1_2(IWifiNanIfaceEventCallback callback)
49        generates (WifiStatus status);
50
51    /**
52     * Enable NAN: configures and activates NAN clustering (does not start
53     * a discovery session or set up data-interfaces or data-paths). Use the
54     * |IWifiNanIface.configureRequest| method to change the configuration of an already enabled
55     * NAN interface.
56     * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyEnableResponse|.
57     *
58     * Note: supersedes the @1.0::IWifiNanIface.enableRequest() method which is deprecated as of
59     * HAL version 1.2.
60     *
61     * @param cmdId command Id to use for this invocation.
62     * @param msg1 Instance of |NanEnableRequest|.
63     * @param msg2 Instance of |NanConfigRequestSupplemental|.
64     * @return status WifiStatus of the operation.
65     *         Possible status codes:
66     *         |WifiStatusCode.SUCCESS|,
67     *         |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
68     *         |WifiStatusCode.ERROR_INVALID_ARGS|,
69     *         |WifiStatusCode.ERROR_UNKNOWN|
70     */
71    enableRequest_1_2(CommandIdShort cmdId, NanEnableRequest msg1,
72                      NanConfigRequestSupplemental msg2)
73        generates (WifiStatus status);
74
75    /**
76     * Configure NAN: configures an existing NAN functionality (i.e. assumes
77     * |IWifiNanIface.enableRequest| already submitted and succeeded).
78     * Asynchronous response is with |IWifiNanIfaceEventCallback.notifyConfigResponse|.
79     *
80     * Note: supersedes the @1.0::IWifiNanIface.configRequest() method which is deprecated as of
81     * HAL version 1.2.
82     *
83     * @param cmdId command Id to use for this invocation.
84     * @param msg1 Instance of |NanConfigRequest|.
85     * @param msg1 Instance of |NanConfigRequestSupplemental|.
86     * @return status WifiStatus of the operation.
87     *         Possible status codes:
88     *         |WifiStatusCode.SUCCESS|,
89     *         |WifiStatusCode.ERROR_WIFI_IFACE_INVALID|,
90     *         |WifiStatusCode.ERROR_INVALID_ARGS|,
91     *         |WifiStatusCode.ERROR_UNKNOWN|
92     */
93    configRequest_1_2(CommandIdShort cmdId, NanConfigRequest msg1,
94                      NanConfigRequestSupplemental msg2)
95        generates (WifiStatus status);
96};
97