blob: 1772c8859fe7dfe475e4ae2531e48fa428247d21 [file] [log] [blame]
/*
* 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 android.hardware.radio.data;
import android.hardware.radio.RadioIndicationType;
import android.hardware.radio.data.DataProfileInfo;
import android.hardware.radio.data.KeepaliveStatus;
import android.hardware.radio.data.PcoDataInfo;
import android.hardware.radio.data.SetupDataCallResult;
/**
* Interface declaring unsolicited radio indications for data APIs.
*/
@VintfStability
oneway interface IRadioDataIndication {
/**
* Indicates data call contexts have changed.
*
* @param type Type of radio indication
* @param dcList Array of SetupDataCallResult identical to that returned by
* IRadioData.getDataCallList(). It is the complete list of current data contexts
* including new contexts that have been activated. A data call is only removed from
* this list when any of the below conditions is matched:
* - The framework sends a IRadioData.deactivateDataCall().
* - The radio is powered off/on.
* - Unsolicited disconnect from either modem or network side.
*/
void dataCallListChanged(in RadioIndicationType type, in SetupDataCallResult[] dcList);
/**
* Indicates a status update for a particular Keepalive session. This must include a handle for
* a previous session and should include a status update regarding the state of a keepalive.
* Unsolicited keepalive status reports should never be PENDING as unsolicited status should
* only be sent when known.
*
* @param type Type of radio indication
* @param status Status information for a Keepalive session
*/
void keepaliveStatus(in RadioIndicationType type, in KeepaliveStatus status);
/**
* Indicates when there is new Carrier PCO data received for a data call. Ideally only new data
* must be forwarded, though this is not required. Multiple boxes of carrier PCO data for a
* given call must result in a series of pcoData() calls.
*
* @param type Type of radio indication
* @param pco New PcoData
*/
void pcoData(in RadioIndicationType type, in PcoDataInfo pco);
/**
* The modem can explicitly set SetupDataCallResult::suggestedRetryTime after a failure in
* IRadioData.SetupDataCall. During that time, no new calls are allowed to
* IRadioData.SetupDataCall that use the same APN. When IRadioDataIndication.unthrottleApn
* is sent, AOSP will no longer throttle calls to IRadioData.SetupDataCall for the given APN.
*
* @param type Type of radio indication
* @param dataProfileInfo Data profile info.
*/
void unthrottleApn(in RadioIndicationType type, in DataProfileInfo dataProfileInfo);
}