Support multiple RANs in one request for setSignalStrengthReportingCriteria
- Move AccessNetwork (RAN) into SignalThresholdInfo to be better organized
- Support specifying multiple RANs and measurement types in one request
Bug: 200055871
Test: m -j
Merged-In: Ic6762e8ca488a119b1103319e7443c4342530f8c
Change-Id: Ic6762e8ca488a119b1103319e7443c4342530f8c
(cherry picked from commit 9073f557229f1c38a98530c850d7baf424e88bd4)
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl
index 8131007..bfb8061 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/IRadioNetwork.aidl
@@ -64,7 +64,7 @@
oneway void setNetworkSelectionModeManual(in int serial, in String operatorNumeric, in android.hardware.radio.AccessNetwork ran);
oneway void setNrDualConnectivityState(in int serial, in android.hardware.radio.network.NrDualConnectivityState nrDualConnectivityState);
oneway void setResponseFunctions(in android.hardware.radio.network.IRadioNetworkResponse radioNetworkResponse, in android.hardware.radio.network.IRadioNetworkIndication radioNetworkIndication);
- oneway void setSignalStrengthReportingCriteria(in int serial, in android.hardware.radio.network.SignalThresholdInfo signalThresholdInfo, in android.hardware.radio.AccessNetwork accessNetwork);
+ oneway void setSignalStrengthReportingCriteria(in int serial, in android.hardware.radio.network.SignalThresholdInfo[] signalThresholdInfos);
oneway void setSuppServiceNotifications(in int serial, in boolean enable);
oneway void setSystemSelectionChannels(in int serial, in boolean specifyChannels, in android.hardware.radio.network.RadioAccessSpecifier[] specifiers);
oneway void startNetworkScan(in int serial, in android.hardware.radio.network.NetworkScanRequest request);
diff --git a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalThresholdInfo.aidl b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalThresholdInfo.aidl
index 3ea6c4e..159d9c1 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalThresholdInfo.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.network/current/android/hardware/radio/network/SignalThresholdInfo.aidl
@@ -39,6 +39,7 @@
int hysteresisDb;
int[] thresholds;
boolean isEnabled;
+ android.hardware.radio.AccessNetwork ran;
const int SIGNAL_MEASUREMENT_TYPE_RSSI = 1;
const int SIGNAL_MEASUREMENT_TYPE_RSCP = 2;
const int SIGNAL_MEASUREMENT_TYPE_RSRP = 3;
diff --git a/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl b/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl
index 0db918d..ffc97f3 100644
--- a/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl
+++ b/radio/aidl/android/hardware/radio/network/IRadioNetwork.aidl
@@ -364,29 +364,22 @@
in IRadioNetworkIndication radioNetworkIndication);
/**
- * Sets the signal strength reporting criteria. The resulting reporting rules are the AND of all
- * the supplied criteria. For each RAN the hysteresisDb and thresholds apply to only the
- * following measured quantities:
- * -GERAN - RSSI
- * -CDMA2000 - RSSI
- * -UTRAN - RSCP
- * -EUTRAN - RSRP/RSRQ/RSSNR
- * -NGRAN - SSRSRP/SSRSRQ/SSSINR
- * Note that reporting criteria must be individually set for each RAN. For each RAN, if none of
- * reporting criteria of any measurement is set enabled (see SignalThresholdInfo.isEnabled),
- * the reporting criteria for this RAN is implementation-defined. For each RAN, if any reporting
- * criteria of any measure is set enabled, the reporting criteria of the other measures in this
- * RAN are set disabled (see SignalThresholdInfo.isEnabled) until they are set enabled.
+ * Sets or clears the signal strength reporting criteria for multiple RANs in one request.
+ *
+ * The reporting criteria are set individually for each combination of RAN and measurement type.
+ * For each RAN type, if no reporting criteria are set, then the reporting of SignalStrength for
+ * that RAN is implementation-defined. If any criteria are supplied for a RAN type, then
+ * SignalStrength is only reported as specified by those criteria. For any RAN types not defined
+ * by this HAL, reporting is implementation-defined.
*
* @param serial Serial number of request.
- * @param signalThresholdInfo Signal threshold info including the threshold values,
- * hysteresisDb, hysteresisMs and isEnabled. See SignalThresholdInfo for details.
- * @param accessNetwork The type of network for which to apply these thresholds.
+ * @param signalThresholdInfos Collection of SignalThresholdInfo specifying the reporting
+ * criteria. See SignalThresholdInfo for details.
*
* Response function is IRadioNetworkResponse.setSignalStrengthReportingCriteriaResponse()
*/
- void setSignalStrengthReportingCriteria(in int serial,
- in SignalThresholdInfo signalThresholdInfo, in AccessNetwork accessNetwork);
+ void setSignalStrengthReportingCriteria(
+ in int serial, in SignalThresholdInfo[] signalThresholdInfos);
/**
* Enables/disables supplementary service related notifications from the network.
diff --git a/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl b/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl
index 696292d..584ea38 100644
--- a/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl
+++ b/radio/aidl/android/hardware/radio/network/SignalThresholdInfo.aidl
@@ -16,6 +16,8 @@
package android.hardware.radio.network;
+import android.hardware.radio.AccessNetwork;
+
/**
* Contains the threshold values of each signal measurement type.
*/
@@ -86,18 +88,20 @@
*/
int signalMeasurement;
/**
- * A hysteresis time in milliseconds to prevent flapping. A value of 0 disables hysteresis.
+ * A hysteresis time in milliseconds for current signal measurement type to prevent flapping.
+ * A value of 0 disables hysteresis.
*/
int hysteresisMs;
/**
- * An interval in dB defining the required magnitude change between reports. This must be
- * smaller than the smallest threshold delta. An interval value of 0 disables hysteresis.
+ * An interval in dB for current signal measurement type defining the required magnitude change
+ * between reports. This must be smaller than the smallest threshold delta. An interval value of
+ * 0 disables hysteresis.
*/
int hysteresisDb;
/**
- * List of threshold values. Range and unit must reference specific SignalMeasurementType.
- * The threshold values for which to apply criteria. A vector size of 0 disables the use of
- * thresholds for reporting.
+ * List of threshold values for current signal measurement type. Range and unit must reference
+ * specific SignalMeasurementType. The threshold values for which to apply criteria. A vector
+ * size of 0 disables the use of thresholds for reporting.
*/
int[] thresholds;
/**
@@ -106,4 +110,8 @@
* If disabled, modem must not trigger the report based on the criteria.
*/
boolean isEnabled;
+ /**
+ * The Radio Access Network for current threshold info.
+ */
+ AccessNetwork ran;
}