diff options
author | 2024-04-20 07:17:26 +0000 | |
---|---|---|
committer | 2024-04-20 07:17:26 +0000 | |
commit | 982f7b092bda9b1df9f1fc2fb60ae53c58d52e5f (patch) | |
tree | 547530c2a4d8ccf0da38aa7620f1f90a619ec96b | |
parent | fd38460d51279d2a3b5409bcc2e970a273b3511b (diff) | |
parent | e066ca53dd168541e2a8c8234f9de24a3cb1c889 (diff) |
Merge "Add metrics for Satellite Transport" into main
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, |