platform_hardware_interfaces/wifi/1.0/IWifiChipEventCallback.hal
Roshan Pius 48185b2a2d wifi: Debug ring buffer data collection
Implementation of the debug ring buffer data collection mechanism.
Changed the interface to pass the raw bytes sent by the driver. This
will be captured as is into the bugreport.

Note: Please see the associated bug on why this data is not being parsed.

Also,
Fixed a bug in the legacy HAL API for retrieving ring buffer status.

Bug: 33638159
Test: Compiles
Change-Id: I9d8f400142b1be4fbf8c85679e8a52d6af17b09e
2016-12-16 14:08:00 -08:00

92 lines
3.6 KiB
Text

/*
* 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@1.0;
interface IWifiChipEventCallback {
/**
* Callback indicating that the chip has been reconfigured successfully. At
* this point the interfaces available in the mode must be able to be
* configured. When this is called any previous iface objects must be
* considered invalid.
*
* @param modeId The mode that the chip switched to, corresponding to the id
* property of the target ChipMode.
*/
oneway onChipReconfigured(ChipModeId modeId);
/**
* Callback indicating that a chip reconfiguration failed. This is a fatal
* error and any iface objects available previously must be considered
* invalid. The client can attempt to recover by trying to reconfigure the
* chip again using |IWifiChip.configureChip|.
*
* @param status Failure reason code.
*/
oneway onChipReconfigureFailure(WifiStatus status);
/**
* Callback indicating that a new iface has been added to the chip.
*
* @param type Type of iface added.
* @param name Name of iface added.
*/
oneway onIfaceAdded(IfaceType type, string name);
/**
* Callback indicating that an existing iface has been removed from the chip.
*
* @param type Type of iface removed.
* @param name Name of iface removed.
*/
oneway onIfaceRemoved(IfaceType type, string name);
/**
* Callbacks for reporting debug ring buffer data.
*
* The ring buffer data collection is event based:
* - Driver calls this callback when new records are available, the
* |WifiDebugRingBufferStatus| passed up to framework in the callback
* indicates to framework if more data is available in the ring buffer.
* It is not expected that driver will necessarily always empty the ring
* immediately as data is available, instead driver will report data
* every X seconds or if N bytes are available based on the parameters
* set via |startLoggingToDebugRingBuffer|.
* - In the case where a bug report has to be captured, framework will
* require driver to upload all data immediately. This is indicated to
* driver when framework calls |forceDumpToDebugRingBuffer|. The driver
* will start sending all available data in the indicated ring by repeatedly
* invoking this callback.
*
* @return status Status of the corresponding ring buffer. This should
* contain the name of the ring buffer on which the data is
* available.
* @return data Raw bytes of data sent by the driver. Must be dumped
* out to a bugreport and post processed.
*/
oneway onDebugRingBufferDataAvailable(
WifiDebugRingBufferStatus status, vec<uint8_t> data);
/**
* Callback indicating that the chip has encountered a fatal error.
* Client must not attempt to parse either the errorCode or debugData.
* Must only be captured in a bugreport.
*
* @param errorCode Vendor defined error code.
* @param debugData Vendor defined data used for debugging.
*/
oneway onDebugErrorAlert(int32_t errorCode, vec<uint8_t> debugData);
};