aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Yu <jackyu@google.com>2023-02-04 01:36:26 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2023-02-04 01:36:26 +0000
commit8d36657af03b91933c34e9c85b283794b7c44d5b (patch)
treed8b3576223fefc1cebb82f2480d115fa7a386169
parent07dd4931d2adcddab048c613291d9108f5fb10d7 (diff)
parent64ba97f03ed37ae4a143d475fe9f8e0bd06f75cf (diff)
downloadtelephony-8d36657af03b91933c34e9c85b283794b7c44d5b.tar.gz
Merge "Log raw fail cause to metrics"
-rw-r--r--src/java/com/android/internal/telephony/data/DataNetwork.java11
-rw-r--r--src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java4
2 files changed, 9 insertions, 6 deletions
diff --git a/src/java/com/android/internal/telephony/data/DataNetwork.java b/src/java/com/android/internal/telephony/data/DataNetwork.java
index 3bcd7f340e..4293ea4f99 100644
--- a/src/java/com/android/internal/telephony/data/DataNetwork.java
+++ b/src/java/com/android/internal/telephony/data/DataNetwork.java
@@ -2446,7 +2446,8 @@ public class DataNetwork extends StateMachine {
getDataNetworkType(),
apnTypeBitmask,
protocol,
- mFailCause);
+ // Log the raw fail cause to avoid large amount of UNKNOWN showing on metrics.
+ response != null ? response.getCause() : mFailCause);
}
/**
@@ -3263,7 +3264,7 @@ public class DataNetwork extends StateMachine {
mDataNetworkCallback.invokeFromExecutor(
() -> mDataNetworkCallback.onHandoverFailed(DataNetwork.this,
mFailCause, retry, handoverFailureMode));
- trackHandoverFailure();
+ trackHandoverFailure(response != null ? response.getCause() : mFailCause);
}
// No matter handover succeeded or not, transit back to connected state.
@@ -3273,13 +3274,15 @@ public class DataNetwork extends StateMachine {
/**
* Called when handover failed. Record the source and target RAT{@link NetworkType} and the
* failure cause {@link android.telephony.DataFailCause}.
+ *
+ * @param cause The fail cause.
*/
- private void trackHandoverFailure() {
+ private void trackHandoverFailure(int cause) {
int sourceRat = getDataNetworkType();
int targetTransport = DataUtils.getTargetTransport(mTransport);
int targetRat = getDataNetworkType(targetTransport);
- mDataCallSessionStats.onHandoverFailure(mFailCause, sourceRat, targetRat);
+ mDataCallSessionStats.onHandoverFailure(cause, sourceRat, targetRat);
}
/**
diff --git a/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java b/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java
index 83192f9f26..6c711a9e85 100644
--- a/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java
+++ b/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java
@@ -84,14 +84,14 @@ public class DataCallSessionStats {
* @param currentRat The data call current Network Type
* @param apnTypeBitmask APN type bitmask
* @param protocol Data connection protocol
- * @param failureCause failure cause as per android.telephony.DataFailCause
+ * @param failureCause The raw failure cause from modem/IWLAN data service.
*/
public synchronized void onSetupDataCallResponse(
@Nullable DataCallResponse response,
@NetworkType int currentRat,
@ApnType int apnTypeBitmask,
@ProtocolType int protocol,
- @DataFailureCause int failureCause) {
+ int failureCause) {
// there should've been a call to onSetupDataCall to initiate the atom,
// so this method is being called out of order -> no metric will be logged
if (mDataCallSession == null) {