Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e066ca53 authored by Nagendra Prasad Nagarle Basavaraju's avatar Nagendra Prasad Nagarle Basavaraju
Browse files

Add metrics for Satellite Transport

- Add Satellite transport metrics support at DataCallSessionStats
- Add Satellite transport metrics support at NetworkRequestsStats

Bug: 330806995
Test: statsD test for TelephonyNetworkRequestsV2 and DataCallSessionStats at b/330806995
Flag: ACONFIG com.android.internal.telephony.flags.satellite_internet nextFood
Change-Id: I4563fe35a1953e6d2e452f485bf6ad0971960b4e
parent 34eccfcf
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -1519,7 +1519,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
+7 −3
Original line number Diff line number Diff line
@@ -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;
    }

+2 −1
Original line number Diff line number Diff line
@@ -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) {
+41 −0
Original line number Diff line number Diff line
@@ -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. */
Loading