summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nagendra Prasad Nagarle Basavaraju <nagendranb@google.com> 2024-04-20 07:17:26 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-04-20 07:17:26 +0000
commit982f7b092bda9b1df9f1fc2fb60ae53c58d52e5f (patch)
tree547530c2a4d8ccf0da38aa7620f1f90a619ec96b
parentfd38460d51279d2a3b5409bcc2e970a273b3511b (diff)
parente066ca53dd168541e2a8c8234f9de24a3cb1c889 (diff)
Merge "Add metrics for Satellite Transport" into main
-rw-r--r--proto/src/persist_atoms.proto7
-rw-r--r--src/java/com/android/internal/telephony/data/DataNetwork.java2
-rw-r--r--src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java10
-rw-r--r--src/java/com/android/internal/telephony/metrics/MetricsCollector.java3
-rw-r--r--src/java/com/android/internal/telephony/metrics/NetworkRequestsStats.java41
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/metrics/DataCallSessionStatsTest.java20
6 files changed, 68 insertions, 15 deletions
diff --git a/proto/src/persist_atoms.proto b/proto/src/persist_atoms.proto
index b30da91de0..fe181ae72d 100644
--- a/proto/src/persist_atoms.proto
+++ b/proto/src/persist_atoms.proto
@@ -381,6 +381,7 @@ message DataCallSession {
optional bool is_non_dds = 22;
optional bool is_iwlan_cross_sim = 23;
optional bool is_ntn = 24;
+ optional bool is_satellite_transport = 25;
}
message CellularServiceState {
@@ -470,6 +471,12 @@ message NetworkRequestsV2 {
PRIORITIZE_BANDWIDTH = 2;
CBS = 3;
ENTERPRISE = 4;
+ SATELLITE_INTERNET_RESTRICTED = 5;
+ SATELLITE_MMS_RESTRICTED = 6;
+ SATELLITE_IMS_RESTRICTED = 7;
+ SATELLITE_XCAP_RESTRICTED = 8;
+ SATELLITE_EIMS_RESTRICTED = 9;
+ SATELLITE_SUPL_RESTRICTED =10;
}
optional int32 carrier_id = 1;
optional NetworkCapability capability = 2;
diff --git a/src/java/com/android/internal/telephony/data/DataNetwork.java b/src/java/com/android/internal/telephony/data/DataNetwork.java
index 7312395748..d36df391bd 100644
--- a/src/java/com/android/internal/telephony/data/DataNetwork.java
+++ b/src/java/com/android/internal/telephony/data/DataNetwork.java
@@ -1524,7 +1524,7 @@ public class DataNetwork extends StateMachine {
int apnTypeBitmask = mDataProfile.getApnSetting() != null
? mDataProfile.getApnSetting().getApnTypeBitmask() : ApnSetting.TYPE_NONE;
- mDataCallSessionStats.onSetupDataCall(apnTypeBitmask);
+ mDataCallSessionStats.onSetupDataCall(apnTypeBitmask, isSatellite());
logl("setupData: accessNetwork="
+ AccessNetworkType.toString(accessNetwork) + ", " + mDataProfile
diff --git a/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java b/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java
index 2eadf170c5..13fb82698e 100644
--- a/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java
+++ b/src/java/com/android/internal/telephony/metrics/DataCallSessionStats.java
@@ -79,8 +79,9 @@ public class DataCallSessionStats {
}
/** Creates a new ongoing atom when data call is set up. */
- public synchronized void onSetupDataCall(@ApnType int apnTypeBitMask) {
- mDataCallSession = getDefaultProto(apnTypeBitMask);
+ public synchronized void onSetupDataCall(@ApnType int apnTypeBitMask,
+ boolean isSatellite) {
+ mDataCallSession = getDefaultProto(apnTypeBitMask, isSatellite);
mStartTime = getTimeMillis();
PhoneFactory.getMetricsCollector().registerOngoingDataCallStat(this);
}
@@ -307,11 +308,13 @@ public class DataCallSessionStats {
copy.isNonDds = call.isNonDds;
copy.isIwlanCrossSim = call.isIwlanCrossSim;
copy.isNtn = call.isNtn;
+ copy.isSatelliteTransport = call.isSatelliteTransport;
return copy;
}
/** Creates a proto for a normal {@code DataCallSession} with default values. */
- private DataCallSession getDefaultProto(@ApnType int apnTypeBitmask) {
+ private DataCallSession getDefaultProto(@ApnType int apnTypeBitmask,
+ boolean isSatellite) {
DataCallSession proto = new DataCallSession();
proto.dimension = RANDOM.nextInt();
proto.isMultiSim = SimSlotState.isMultiSim();
@@ -335,6 +338,7 @@ public class DataCallSessionStats {
proto.isIwlanCrossSim = false;
proto.isNtn = mSatelliteController != null
? mSatelliteController.isInSatelliteModeForCarrierRoaming(mPhone) : false;
+ proto.isSatelliteTransport = isSatellite;
return proto;
}
diff --git a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
index f7dac172a1..10783992d3 100644
--- a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
+++ b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
@@ -1131,7 +1131,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
dataCallSession.handoverFailureRat,
dataCallSession.isNonDds,
dataCallSession.isIwlanCrossSim,
- dataCallSession.isNtn);
+ dataCallSession.isNtn,
+ dataCallSession.isSatelliteTransport);
}
private static StatsEvent buildStatsEvent(ImsRegistrationStats stats) {
diff --git a/src/java/com/android/internal/telephony/metrics/NetworkRequestsStats.java b/src/java/com/android/internal/telephony/metrics/NetworkRequestsStats.java
index 26c28f059b..6f4a1a0f2b 100644
--- a/src/java/com/android/internal/telephony/metrics/NetworkRequestsStats.java
+++ b/src/java/com/android/internal/telephony/metrics/NetworkRequestsStats.java
@@ -59,6 +59,47 @@ public class NetworkRequestsStats {
networkRequestsTemplate.capability = NetworkRequestsV2.NetworkCapability.ENTERPRISE;
storage.addNetworkRequestsV2(networkRequestsTemplate);
}
+
+ if (networkRequest.hasTransport(NetworkCapabilities.TRANSPORT_SATELLITE)
+ && !networkRequest.hasCapability(
+ NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)) {
+
+ if (networkRequest.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)) {
+ networkRequestsTemplate.capability =
+ NetworkRequestsV2.NetworkCapability.SATELLITE_INTERNET_RESTRICTED;
+ storage.addNetworkRequestsV2(networkRequestsTemplate);
+ }
+
+ if (networkRequest.hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)) {
+ networkRequestsTemplate.capability =
+ NetworkRequestsV2.NetworkCapability.SATELLITE_MMS_RESTRICTED;
+ storage.addNetworkRequestsV2(networkRequestsTemplate);
+ }
+
+ if (networkRequest.hasCapability(NetworkCapabilities.NET_CAPABILITY_IMS)) {
+ networkRequestsTemplate.capability =
+ NetworkRequestsV2.NetworkCapability.SATELLITE_IMS_RESTRICTED;
+ storage.addNetworkRequestsV2(networkRequestsTemplate);
+ }
+
+ if (networkRequest.hasCapability(NetworkCapabilities.NET_CAPABILITY_XCAP)) {
+ networkRequestsTemplate.capability =
+ NetworkRequestsV2.NetworkCapability.SATELLITE_XCAP_RESTRICTED;
+ storage.addNetworkRequestsV2(networkRequestsTemplate);
+ }
+
+ if (networkRequest.hasCapability(NetworkCapabilities.NET_CAPABILITY_EIMS)) {
+ networkRequestsTemplate.capability =
+ NetworkRequestsV2.NetworkCapability.SATELLITE_EIMS_RESTRICTED;
+ storage.addNetworkRequestsV2(networkRequestsTemplate);
+ }
+
+ if (networkRequest.hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL)) {
+ networkRequestsTemplate.capability =
+ NetworkRequestsV2.NetworkCapability.SATELLITE_SUPL_RESTRICTED;
+ storage.addNetworkRequestsV2(networkRequestsTemplate);
+ }
+ }
}
/** Returns the carrier ID of the given subscription id. */
diff --git a/tests/telephonytests/src/com/android/internal/telephony/metrics/DataCallSessionStatsTest.java b/tests/telephonytests/src/com/android/internal/telephony/metrics/DataCallSessionStatsTest.java
index 2e64c46243..8e6119a657 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/metrics/DataCallSessionStatsTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/metrics/DataCallSessionStatsTest.java
@@ -96,7 +96,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
@Test
@SmallTest
public void testSetupDataCallOnCellularIms_success() {
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_LTE,
@@ -122,7 +122,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
@Test
@SmallTest
public void testSetupDataCallOnIwlan_success() {
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_IWLAN,
@@ -151,7 +151,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
public void testSetupDataCallOnCrossSimCalling_success() {
doReturn(mCellularNetworkCapabilities)
.when(mDefaultNetworkMonitor).getNetworkCapabilities();
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_IWLAN,
@@ -178,7 +178,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
@Test
@SmallTest
public void testSetupDataCallOnCellularIms_failure() {
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_LTE,
@@ -201,7 +201,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
@Test
@SmallTest
public void testHandoverFromCellularToIwlan_success() {
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_LTE,
@@ -227,7 +227,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
@Test
@SmallTest
public void testHandoverFromCellularToCrossSimCalling_success() {
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_LTE,
@@ -256,7 +256,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
@Test
@SmallTest
public void testHandoverFromCellularToIwlan_failure() {
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_LTE,
@@ -288,7 +288,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
@Test
@SmallTest
public void testSetupDataCallOnIwlan_success_thenOOS() {
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_IWLAN,
@@ -315,7 +315,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
public void testIsNtn() {
when(mSatelliteController.isInSatelliteModeForCarrierRoaming(any())).thenReturn(true);
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_LTE,
@@ -338,7 +338,7 @@ public class DataCallSessionStatsTest extends TelephonyTest {
when(mSatelliteController.isInSatelliteModeForCarrierRoaming(any()))
.thenReturn(false);
- mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS);
+ mDataCallSessionStats.onSetupDataCall(ApnSetting.TYPE_IMS, false);
mDataCallSessionStats.onSetupDataCallResponse(
mDefaultImsResponse,
TelephonyManager.NETWORK_TYPE_LTE,