132 lines
4.1 KiB
Java
132 lines
4.1 KiB
Java
|
/*
|
||
|
* Copyright (C) 2021 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 com.android.server.wifi;
|
||
|
|
||
|
import android.annotation.NonNull;
|
||
|
import android.net.MacAddress;
|
||
|
import android.net.wifi.SoftApConfiguration;
|
||
|
|
||
|
import com.android.server.wifi.WifiNative.HostapdDeathEventHandler;
|
||
|
import com.android.server.wifi.WifiNative.SoftApHalCallback;
|
||
|
|
||
|
import java.io.PrintWriter;
|
||
|
|
||
|
/** Abstraction of HAL interface */
|
||
|
interface IHostapdHal {
|
||
|
/**
|
||
|
* Begin initializing the IHostapdHal object. Specific initialization logic differs
|
||
|
* between the HIDL and AIDL implementations.
|
||
|
*
|
||
|
* @return true if the initialization routine was successful
|
||
|
*/
|
||
|
boolean initialize();
|
||
|
|
||
|
/**
|
||
|
* Start hostapd daemon.
|
||
|
*/
|
||
|
boolean startDaemon();
|
||
|
|
||
|
/**
|
||
|
* Enable/Disable verbose logging.
|
||
|
*
|
||
|
* @param verboseEnabled true to enable, false to disable.
|
||
|
* @param halVerboseEnabled true to enable hal verbose logging, false to disable.
|
||
|
*/
|
||
|
void enableVerboseLogging(boolean verboseEnabled, boolean halVerboseEnabled);
|
||
|
|
||
|
/**
|
||
|
* Add and start a new access point.
|
||
|
*
|
||
|
* @param ifaceName Name of the interface.
|
||
|
* @param config Configuration to use for the AP.
|
||
|
* @param isMetered Indicates the network is metered or not. Ignored in AIDL imp.
|
||
|
* @param onFailureListener A runnable to be triggered on failure.
|
||
|
* @return true on success, false otherwise.
|
||
|
*/
|
||
|
boolean addAccessPoint(@NonNull String ifaceName,
|
||
|
@NonNull SoftApConfiguration config, boolean isMetered,
|
||
|
Runnable onFailureListener);
|
||
|
|
||
|
/**
|
||
|
* Remove a previously started access point.
|
||
|
*
|
||
|
* @param ifaceName Name of the interface.
|
||
|
* @return true on success, false otherwise.
|
||
|
*/
|
||
|
boolean removeAccessPoint(@NonNull String ifaceName);
|
||
|
|
||
|
/**
|
||
|
* Remove a previously connected client.
|
||
|
*
|
||
|
* @param ifaceName Name of the interface.
|
||
|
* @param client Mac Address of the client.
|
||
|
* @param reasonCode One of disconnect reason code which defined in {@link WifiManager}.
|
||
|
* @return true on success, false otherwise.
|
||
|
*/
|
||
|
boolean forceClientDisconnect(@NonNull String ifaceName,
|
||
|
@NonNull MacAddress client, int reasonCode);
|
||
|
|
||
|
/**
|
||
|
* Register the provided callback handler for SoftAp events.
|
||
|
* <p>
|
||
|
* Note that only one callback can be registered at a time - any registration overrides previous
|
||
|
* registrations.
|
||
|
*
|
||
|
* @param ifaceName Name of the interface.
|
||
|
* @param callback Callback listener for AP events.
|
||
|
* @return true on success, false on failure.
|
||
|
*/
|
||
|
boolean registerApCallback(@NonNull String ifaceName,
|
||
|
@NonNull SoftApHalCallback callback);
|
||
|
|
||
|
/**
|
||
|
* Returns whether or not the hostapd supports getting the AP info from the callback.
|
||
|
*/
|
||
|
boolean isApInfoCallbackSupported();
|
||
|
|
||
|
/**
|
||
|
* Registers a death notification for hostapd.
|
||
|
* @return Returns true on success.
|
||
|
*/
|
||
|
boolean registerDeathHandler(@NonNull HostapdDeathEventHandler handler);
|
||
|
|
||
|
/**
|
||
|
* Deregisters a death notification for hostapd.
|
||
|
* @return Returns true on success.
|
||
|
*/
|
||
|
boolean deregisterDeathHandler();
|
||
|
|
||
|
/**
|
||
|
* Signals whether Initialization started successfully.
|
||
|
*/
|
||
|
boolean isInitializationStarted();
|
||
|
|
||
|
/**
|
||
|
* Signals whether Initialization completed successfully.
|
||
|
*/
|
||
|
boolean isInitializationComplete();
|
||
|
|
||
|
/**
|
||
|
* Terminate the hostapd daemon & wait for it's death.
|
||
|
*/
|
||
|
void terminate();
|
||
|
|
||
|
/**
|
||
|
* Dump information about the specific implementation.
|
||
|
*/
|
||
|
void dump(PrintWriter pw);
|
||
|
}
|