Loading proto/src/persist_atoms.proto +8 −0 Original line number Diff line number Diff line Loading @@ -665,6 +665,14 @@ message SatelliteSession { optional int32 satellite_service_initialization_result = 1; optional int32 satellite_technology = 2; optional int32 count = 3; optional int32 satellite_service_termination_result = 4; optional int64 initialization_processing_time_millis = 5; optional int64 termination_processing_time_millis = 6; optional int32 session_duration_seconds = 7; optional int32 count_of_outgoing_datagram_success = 8; optional int32 count_of_outgoing_datagram_failed = 9; optional int32 count_of_incoming_datagram_success = 10; optional int32 count_of_incoming_datagram_failed = 11; } message SatelliteIncomingDatagram { Loading src/java/com/android/internal/telephony/metrics/MetricsCollector.java +9 −1 Original line number Diff line number Diff line Loading @@ -1353,7 +1353,15 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { SATELLITE_SESSION, satelliteSession.satelliteServiceInitializationResult, satelliteSession.satelliteTechnology, satelliteSession.count); satelliteSession.count, satelliteSession.satelliteServiceTerminationResult, satelliteSession.initializationProcessingTimeMillis, satelliteSession.terminationProcessingTimeMillis, satelliteSession.sessionDurationSeconds, satelliteSession.countOfOutgoingDatagramSuccess, satelliteSession.countOfOutgoingDatagramFailed, satelliteSession.countOfIncomingDatagramSuccess, satelliteSession.countOfIncomingDatagramFailed); } private static StatsEvent buildStatsEvent(SatelliteIncomingDatagram stats) { Loading src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java +11 −1 Original line number Diff line number Diff line Loading @@ -2058,7 +2058,17 @@ public class PersistAtomsStorage { for (SatelliteSession stats : mAtoms.satelliteSession) { if (stats.satelliteServiceInitializationResult == key.satelliteServiceInitializationResult && stats.satelliteTechnology == key.satelliteTechnology) { && stats.satelliteTechnology == key.satelliteTechnology && stats.satelliteServiceTerminationResult == key.satelliteServiceTerminationResult && stats.initializationProcessingTimeMillis == key.initializationProcessingTimeMillis && stats.terminationProcessingTimeMillis == key.terminationProcessingTimeMillis && stats.sessionDurationSeconds == key.sessionDurationSeconds && stats.countOfOutgoingDatagramSuccess == key.countOfOutgoingDatagramSuccess && stats.countOfOutgoingDatagramFailed == key.countOfOutgoingDatagramFailed && stats.countOfIncomingDatagramSuccess == key.countOfIncomingDatagramSuccess && stats.countOfIncomingDatagramFailed == key.countOfIncomingDatagramFailed) { return stats; } } Loading src/java/com/android/internal/telephony/metrics/SatelliteStats.java +124 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.internal.telephony.metrics; import android.telephony.satellite.SatelliteManager; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.nano.PersistAtomsProto.SatelliteController; import com.android.internal.telephony.nano.PersistAtomsProto.SatelliteIncomingDatagram; Loading Loading @@ -385,11 +387,28 @@ public class SatelliteStats { public class SatelliteSessionParams { private final int mSatelliteServiceInitializationResult; private final int mSatelliteTechnology; private final int mTerminationResult; private final long mInitializationProcessingTimeMillis; private final long mTerminationProcessingTimeMillis; private final int mSessionDurationSec; private final int mCountOfOutgoingDatagramSuccess; private final int mCountOfOutgoingDatagramFailed; private final int mCountOfIncomingDatagramSuccess; private final int mCountOfIncomingDatagramFailed; private SatelliteSessionParams(Builder builder) { this.mSatelliteServiceInitializationResult = builder.mSatelliteServiceInitializationResult; this.mSatelliteTechnology = builder.mSatelliteTechnology; this.mTerminationResult = builder.mTerminationResult; this.mInitializationProcessingTimeMillis = builder.mInitializationProcessingTimeMillis; this.mTerminationProcessingTimeMillis = builder.mTerminationProcessingTimeMillis; this.mSessionDurationSec = builder.mSessionDurationSec; this.mCountOfOutgoingDatagramSuccess = builder.mCountOfOutgoingDatagramSuccess; this.mCountOfOutgoingDatagramFailed = builder.mCountOfOutgoingDatagramFailed; this.mCountOfIncomingDatagramSuccess = builder.mCountOfIncomingDatagramSuccess; this.mCountOfIncomingDatagramFailed = builder.mCountOfIncomingDatagramFailed; } public int getSatelliteServiceInitializationResult() { Loading @@ -400,12 +419,52 @@ public class SatelliteStats { return mSatelliteTechnology; } public int getTerminationResult() { return mTerminationResult; } public long getInitializationProcessingTime() { return mInitializationProcessingTimeMillis; } public long getTerminationProcessingTime() { return mTerminationProcessingTimeMillis; } public int getSessionDuration() { return mSessionDurationSec; } public int getCountOfOutgoingDatagramSuccess() { return mCountOfOutgoingDatagramSuccess; } public int getCountOfOutgoingDatagramFailed() { return mCountOfOutgoingDatagramFailed; } public int getCountOfIncomingDatagramSuccess() { return mCountOfIncomingDatagramSuccess; } public int getCountOfIncomingDatagramFailed() { return mCountOfIncomingDatagramFailed; } /** * A builder class to create {@link SatelliteSessionParams} data structure class */ public static class Builder { private int mSatelliteServiceInitializationResult = -1; private int mSatelliteTechnology = -1; private int mTerminationResult = -1; private long mInitializationProcessingTimeMillis = -1; private long mTerminationProcessingTimeMillis = -1; private int mSessionDurationSec = -1; private int mCountOfOutgoingDatagramSuccess = -1; private int mCountOfOutgoingDatagramFailed = -1; private int mCountOfIncomingDatagramSuccess = -1; private int mCountOfIncomingDatagramFailed = -1; /** * Sets satelliteServiceInitializationResult value of {@link SatelliteSession} Loading @@ -426,6 +485,55 @@ public class SatelliteStats { return this; } /** Sets the satellite de-initialization result. */ public Builder setTerminationResult( @SatelliteManager.SatelliteResult int result) { this.mTerminationResult = result; return this; } /** Sets the satellite initialization processing time. */ public Builder setInitializationProcessingTime(long processingTime) { this.mInitializationProcessingTimeMillis = processingTime; return this; } /** Sets the satellite de-initialization processing time. */ public Builder setTerminationProcessingTime(long processingTime) { this.mTerminationProcessingTimeMillis = processingTime; return this; } /** Sets the total enabled time for the satellite session. */ public Builder setSessionDuration(int sessionDurationSec) { this.mSessionDurationSec = sessionDurationSec; return this; } /** Sets the total number of successful outgoing datagram transmission. */ public Builder setCountOfOutgoingDatagramSuccess(int countOfoutgoingDatagramSuccess) { this.mCountOfOutgoingDatagramSuccess = countOfoutgoingDatagramSuccess; return this; } /** Sets the total number of failed outgoing datagram transmission. */ public Builder setCountOfOutgoingDatagramFailed(int countOfoutgoingDatagramFailed) { this.mCountOfOutgoingDatagramFailed = countOfoutgoingDatagramFailed; return this; } /** Sets the total number of successful incoming datagram transmission. */ public Builder setCountOfIncomingDatagramSuccess(int countOfincomingDatagramSuccess) { this.mCountOfIncomingDatagramSuccess = countOfincomingDatagramSuccess; return this; } /** Sets the total number of failed incoming datagram transmission. */ public Builder setCountOfIncomingDatagramFailed(int countOfincomingDatagramFailed) { this.mCountOfIncomingDatagramFailed = countOfincomingDatagramFailed; return this; } /** * Returns SessionParams, which contains whole component of * {@link SatelliteSession} atom Loading @@ -441,7 +549,14 @@ public class SatelliteStats { return "SessionParams(" + ", satelliteServiceInitializationResult=" + mSatelliteServiceInitializationResult + ", satelliteTechnology=" + mSatelliteTechnology + ", TerminationResult=" + mTerminationResult + ", InitializationProcessingTimeMillis=" + mInitializationProcessingTimeMillis + ", TerminationProcessingTimeMillis=" + mTerminationProcessingTimeMillis + ", SessionDurationSec=" + mSessionDurationSec + ", CountOfOutgoingDatagramSuccess=" + mCountOfOutgoingDatagramSuccess + ", CountOfOutgoingDatagramFailed=" + mCountOfOutgoingDatagramFailed + ", CountOfIncomingDatagramSuccess=" + mCountOfIncomingDatagramSuccess + ", CountOfIncomingDatagramFailed=" + mCountOfIncomingDatagramFailed + ")"; } } Loading Loading @@ -912,6 +1027,14 @@ public class SatelliteStats { param.getSatelliteServiceInitializationResult(); proto.satelliteTechnology = param.getSatelliteTechnology(); proto.count = 1; proto.satelliteServiceTerminationResult = param.getTerminationResult(); proto.initializationProcessingTimeMillis = param.getInitializationProcessingTime(); proto.terminationProcessingTimeMillis = param.getTerminationProcessingTime(); proto.sessionDurationSeconds = param.getSessionDuration(); proto.countOfOutgoingDatagramSuccess = param.getCountOfIncomingDatagramSuccess(); proto.countOfOutgoingDatagramFailed = param.getCountOfOutgoingDatagramFailed(); proto.countOfIncomingDatagramSuccess = param.getCountOfIncomingDatagramSuccess(); proto.countOfIncomingDatagramFailed = param.getCountOfOutgoingDatagramFailed(); mAtomsStorage.addSatelliteSessionStats(proto); } Loading src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java +11 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.Phone; import com.android.internal.telephony.metrics.SatelliteStats; import com.android.internal.telephony.satellite.metrics.ControllerMetricsStats; import com.android.internal.telephony.satellite.metrics.SessionMetricsStats; import java.util.LinkedHashMap; import java.util.Map.Entry; Loading Loading @@ -70,6 +71,7 @@ public class DatagramDispatcher extends Handler { @NonNull private final Context mContext; @NonNull private final DatagramController mDatagramController; @NonNull private final ControllerMetricsStats mControllerMetricsStats; @NonNull private final SessionMetricsStats mSessionMetricsStats; private boolean mIsDemoMode = false; private boolean mIsAligned = false; Loading Loading @@ -134,6 +136,7 @@ public class DatagramDispatcher extends Handler { mContext = context; mDatagramController = datagramController; mControllerMetricsStats = ControllerMetricsStats.getInstance(); mSessionMetricsStats = SessionMetricsStats.getInstance(); synchronized (mLock) { mSendingDatagramInProgress = false; Loading Loading @@ -276,6 +279,7 @@ public class DatagramDispatcher extends Handler { getPendingDatagramCount(), error); mControllerMetricsStats.reportOutgoingDatagramSuccessCount( argument.datagramType); mSessionMetricsStats.addCountOfSuccessfulOutgoingDatagram(); startWaitForSimulatedPollDatagramsDelayTimer(request); if (getPendingDatagramCount() > 0) { // Send response for current datagram Loading Loading @@ -304,6 +308,7 @@ public class DatagramDispatcher extends Handler { // Abort sending all the pending datagrams mControllerMetricsStats.reportOutgoingDatagramFailCount( argument.datagramType); mSessionMetricsStats.addCountOfFailedOutgoingDatagram(); abortSendingPendingDatagrams(argument.subId, SatelliteManager.SATELLITE_RESULT_REQUEST_ABORTED); } Loading Loading @@ -593,8 +598,10 @@ public class DatagramDispatcher extends Handler { .setDatagramType(argument.datagramType) .setResultCode(resultCode) .setDatagramSizeBytes(argument.getDatagramRoundedSizeBytes()) .setDatagramTransferTimeMillis( System.currentTimeMillis() - argument.datagramStartTime) /* In case pending datagram has not been attempted to send to modem interface. transfer time will be 0. */ .setDatagramTransferTimeMillis(argument.datagramStartTime > 0 ? (System.currentTimeMillis() - argument.datagramStartTime) : 0) .build()); } Loading Loading @@ -719,6 +726,8 @@ public class DatagramDispatcher extends Handler { 0, SatelliteManager.SATELLITE_RESULT_SUCCESS); abortSendingPendingDatagrams(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, SATELLITE_RESULT_NOT_REACHABLE); mControllerMetricsStats.reportOutgoingDatagramFailCount(argument.datagramType); mSessionMetricsStats.addCountOfFailedOutgoingDatagram(); } } Loading Loading
proto/src/persist_atoms.proto +8 −0 Original line number Diff line number Diff line Loading @@ -665,6 +665,14 @@ message SatelliteSession { optional int32 satellite_service_initialization_result = 1; optional int32 satellite_technology = 2; optional int32 count = 3; optional int32 satellite_service_termination_result = 4; optional int64 initialization_processing_time_millis = 5; optional int64 termination_processing_time_millis = 6; optional int32 session_duration_seconds = 7; optional int32 count_of_outgoing_datagram_success = 8; optional int32 count_of_outgoing_datagram_failed = 9; optional int32 count_of_incoming_datagram_success = 10; optional int32 count_of_incoming_datagram_failed = 11; } message SatelliteIncomingDatagram { Loading
src/java/com/android/internal/telephony/metrics/MetricsCollector.java +9 −1 Original line number Diff line number Diff line Loading @@ -1353,7 +1353,15 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { SATELLITE_SESSION, satelliteSession.satelliteServiceInitializationResult, satelliteSession.satelliteTechnology, satelliteSession.count); satelliteSession.count, satelliteSession.satelliteServiceTerminationResult, satelliteSession.initializationProcessingTimeMillis, satelliteSession.terminationProcessingTimeMillis, satelliteSession.sessionDurationSeconds, satelliteSession.countOfOutgoingDatagramSuccess, satelliteSession.countOfOutgoingDatagramFailed, satelliteSession.countOfIncomingDatagramSuccess, satelliteSession.countOfIncomingDatagramFailed); } private static StatsEvent buildStatsEvent(SatelliteIncomingDatagram stats) { Loading
src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java +11 −1 Original line number Diff line number Diff line Loading @@ -2058,7 +2058,17 @@ public class PersistAtomsStorage { for (SatelliteSession stats : mAtoms.satelliteSession) { if (stats.satelliteServiceInitializationResult == key.satelliteServiceInitializationResult && stats.satelliteTechnology == key.satelliteTechnology) { && stats.satelliteTechnology == key.satelliteTechnology && stats.satelliteServiceTerminationResult == key.satelliteServiceTerminationResult && stats.initializationProcessingTimeMillis == key.initializationProcessingTimeMillis && stats.terminationProcessingTimeMillis == key.terminationProcessingTimeMillis && stats.sessionDurationSeconds == key.sessionDurationSeconds && stats.countOfOutgoingDatagramSuccess == key.countOfOutgoingDatagramSuccess && stats.countOfOutgoingDatagramFailed == key.countOfOutgoingDatagramFailed && stats.countOfIncomingDatagramSuccess == key.countOfIncomingDatagramSuccess && stats.countOfIncomingDatagramFailed == key.countOfIncomingDatagramFailed) { return stats; } } Loading
src/java/com/android/internal/telephony/metrics/SatelliteStats.java +124 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.internal.telephony.metrics; import android.telephony.satellite.SatelliteManager; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.nano.PersistAtomsProto.SatelliteController; import com.android.internal.telephony.nano.PersistAtomsProto.SatelliteIncomingDatagram; Loading Loading @@ -385,11 +387,28 @@ public class SatelliteStats { public class SatelliteSessionParams { private final int mSatelliteServiceInitializationResult; private final int mSatelliteTechnology; private final int mTerminationResult; private final long mInitializationProcessingTimeMillis; private final long mTerminationProcessingTimeMillis; private final int mSessionDurationSec; private final int mCountOfOutgoingDatagramSuccess; private final int mCountOfOutgoingDatagramFailed; private final int mCountOfIncomingDatagramSuccess; private final int mCountOfIncomingDatagramFailed; private SatelliteSessionParams(Builder builder) { this.mSatelliteServiceInitializationResult = builder.mSatelliteServiceInitializationResult; this.mSatelliteTechnology = builder.mSatelliteTechnology; this.mTerminationResult = builder.mTerminationResult; this.mInitializationProcessingTimeMillis = builder.mInitializationProcessingTimeMillis; this.mTerminationProcessingTimeMillis = builder.mTerminationProcessingTimeMillis; this.mSessionDurationSec = builder.mSessionDurationSec; this.mCountOfOutgoingDatagramSuccess = builder.mCountOfOutgoingDatagramSuccess; this.mCountOfOutgoingDatagramFailed = builder.mCountOfOutgoingDatagramFailed; this.mCountOfIncomingDatagramSuccess = builder.mCountOfIncomingDatagramSuccess; this.mCountOfIncomingDatagramFailed = builder.mCountOfIncomingDatagramFailed; } public int getSatelliteServiceInitializationResult() { Loading @@ -400,12 +419,52 @@ public class SatelliteStats { return mSatelliteTechnology; } public int getTerminationResult() { return mTerminationResult; } public long getInitializationProcessingTime() { return mInitializationProcessingTimeMillis; } public long getTerminationProcessingTime() { return mTerminationProcessingTimeMillis; } public int getSessionDuration() { return mSessionDurationSec; } public int getCountOfOutgoingDatagramSuccess() { return mCountOfOutgoingDatagramSuccess; } public int getCountOfOutgoingDatagramFailed() { return mCountOfOutgoingDatagramFailed; } public int getCountOfIncomingDatagramSuccess() { return mCountOfIncomingDatagramSuccess; } public int getCountOfIncomingDatagramFailed() { return mCountOfIncomingDatagramFailed; } /** * A builder class to create {@link SatelliteSessionParams} data structure class */ public static class Builder { private int mSatelliteServiceInitializationResult = -1; private int mSatelliteTechnology = -1; private int mTerminationResult = -1; private long mInitializationProcessingTimeMillis = -1; private long mTerminationProcessingTimeMillis = -1; private int mSessionDurationSec = -1; private int mCountOfOutgoingDatagramSuccess = -1; private int mCountOfOutgoingDatagramFailed = -1; private int mCountOfIncomingDatagramSuccess = -1; private int mCountOfIncomingDatagramFailed = -1; /** * Sets satelliteServiceInitializationResult value of {@link SatelliteSession} Loading @@ -426,6 +485,55 @@ public class SatelliteStats { return this; } /** Sets the satellite de-initialization result. */ public Builder setTerminationResult( @SatelliteManager.SatelliteResult int result) { this.mTerminationResult = result; return this; } /** Sets the satellite initialization processing time. */ public Builder setInitializationProcessingTime(long processingTime) { this.mInitializationProcessingTimeMillis = processingTime; return this; } /** Sets the satellite de-initialization processing time. */ public Builder setTerminationProcessingTime(long processingTime) { this.mTerminationProcessingTimeMillis = processingTime; return this; } /** Sets the total enabled time for the satellite session. */ public Builder setSessionDuration(int sessionDurationSec) { this.mSessionDurationSec = sessionDurationSec; return this; } /** Sets the total number of successful outgoing datagram transmission. */ public Builder setCountOfOutgoingDatagramSuccess(int countOfoutgoingDatagramSuccess) { this.mCountOfOutgoingDatagramSuccess = countOfoutgoingDatagramSuccess; return this; } /** Sets the total number of failed outgoing datagram transmission. */ public Builder setCountOfOutgoingDatagramFailed(int countOfoutgoingDatagramFailed) { this.mCountOfOutgoingDatagramFailed = countOfoutgoingDatagramFailed; return this; } /** Sets the total number of successful incoming datagram transmission. */ public Builder setCountOfIncomingDatagramSuccess(int countOfincomingDatagramSuccess) { this.mCountOfIncomingDatagramSuccess = countOfincomingDatagramSuccess; return this; } /** Sets the total number of failed incoming datagram transmission. */ public Builder setCountOfIncomingDatagramFailed(int countOfincomingDatagramFailed) { this.mCountOfIncomingDatagramFailed = countOfincomingDatagramFailed; return this; } /** * Returns SessionParams, which contains whole component of * {@link SatelliteSession} atom Loading @@ -441,7 +549,14 @@ public class SatelliteStats { return "SessionParams(" + ", satelliteServiceInitializationResult=" + mSatelliteServiceInitializationResult + ", satelliteTechnology=" + mSatelliteTechnology + ", TerminationResult=" + mTerminationResult + ", InitializationProcessingTimeMillis=" + mInitializationProcessingTimeMillis + ", TerminationProcessingTimeMillis=" + mTerminationProcessingTimeMillis + ", SessionDurationSec=" + mSessionDurationSec + ", CountOfOutgoingDatagramSuccess=" + mCountOfOutgoingDatagramSuccess + ", CountOfOutgoingDatagramFailed=" + mCountOfOutgoingDatagramFailed + ", CountOfIncomingDatagramSuccess=" + mCountOfIncomingDatagramSuccess + ", CountOfIncomingDatagramFailed=" + mCountOfIncomingDatagramFailed + ")"; } } Loading Loading @@ -912,6 +1027,14 @@ public class SatelliteStats { param.getSatelliteServiceInitializationResult(); proto.satelliteTechnology = param.getSatelliteTechnology(); proto.count = 1; proto.satelliteServiceTerminationResult = param.getTerminationResult(); proto.initializationProcessingTimeMillis = param.getInitializationProcessingTime(); proto.terminationProcessingTimeMillis = param.getTerminationProcessingTime(); proto.sessionDurationSeconds = param.getSessionDuration(); proto.countOfOutgoingDatagramSuccess = param.getCountOfIncomingDatagramSuccess(); proto.countOfOutgoingDatagramFailed = param.getCountOfOutgoingDatagramFailed(); proto.countOfIncomingDatagramSuccess = param.getCountOfIncomingDatagramSuccess(); proto.countOfIncomingDatagramFailed = param.getCountOfOutgoingDatagramFailed(); mAtomsStorage.addSatelliteSessionStats(proto); } Loading
src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java +11 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.Phone; import com.android.internal.telephony.metrics.SatelliteStats; import com.android.internal.telephony.satellite.metrics.ControllerMetricsStats; import com.android.internal.telephony.satellite.metrics.SessionMetricsStats; import java.util.LinkedHashMap; import java.util.Map.Entry; Loading Loading @@ -70,6 +71,7 @@ public class DatagramDispatcher extends Handler { @NonNull private final Context mContext; @NonNull private final DatagramController mDatagramController; @NonNull private final ControllerMetricsStats mControllerMetricsStats; @NonNull private final SessionMetricsStats mSessionMetricsStats; private boolean mIsDemoMode = false; private boolean mIsAligned = false; Loading Loading @@ -134,6 +136,7 @@ public class DatagramDispatcher extends Handler { mContext = context; mDatagramController = datagramController; mControllerMetricsStats = ControllerMetricsStats.getInstance(); mSessionMetricsStats = SessionMetricsStats.getInstance(); synchronized (mLock) { mSendingDatagramInProgress = false; Loading Loading @@ -276,6 +279,7 @@ public class DatagramDispatcher extends Handler { getPendingDatagramCount(), error); mControllerMetricsStats.reportOutgoingDatagramSuccessCount( argument.datagramType); mSessionMetricsStats.addCountOfSuccessfulOutgoingDatagram(); startWaitForSimulatedPollDatagramsDelayTimer(request); if (getPendingDatagramCount() > 0) { // Send response for current datagram Loading Loading @@ -304,6 +308,7 @@ public class DatagramDispatcher extends Handler { // Abort sending all the pending datagrams mControllerMetricsStats.reportOutgoingDatagramFailCount( argument.datagramType); mSessionMetricsStats.addCountOfFailedOutgoingDatagram(); abortSendingPendingDatagrams(argument.subId, SatelliteManager.SATELLITE_RESULT_REQUEST_ABORTED); } Loading Loading @@ -593,8 +598,10 @@ public class DatagramDispatcher extends Handler { .setDatagramType(argument.datagramType) .setResultCode(resultCode) .setDatagramSizeBytes(argument.getDatagramRoundedSizeBytes()) .setDatagramTransferTimeMillis( System.currentTimeMillis() - argument.datagramStartTime) /* In case pending datagram has not been attempted to send to modem interface. transfer time will be 0. */ .setDatagramTransferTimeMillis(argument.datagramStartTime > 0 ? (System.currentTimeMillis() - argument.datagramStartTime) : 0) .build()); } Loading Loading @@ -719,6 +726,8 @@ public class DatagramDispatcher extends Handler { 0, SatelliteManager.SATELLITE_RESULT_SUCCESS); abortSendingPendingDatagrams(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, SATELLITE_RESULT_NOT_REACHABLE); mControllerMetricsStats.reportOutgoingDatagramFailCount(argument.datagramType); mSessionMetricsStats.addCountOfFailedOutgoingDatagram(); } } Loading