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

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

Support Satellite Data Metrics at Satellite session

- changes to collect number of times default network connections with data
  stall occurances,
- changes to collect number of disconnection with fail cause was triggered
  at satellite session.
- changes to find average uplink and downlink bandwidth at satellite session

Flag: com.android.internal.telephony.flags.satellite_data_metrics
Bug: 405107194
Test: m and atest
Test: Device Test at b/405107194#comment29
Change-Id: Ib9871a4aa440e589a67174e9555d980545780467
parent 5f505ad7
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -115,3 +115,14 @@ flag {
        purpose: PURPOSE_BUGFIX
    }
}

# OWNER=nagendranb TARGET=25Q3
flag {
  name: "satellite_data_metrics"
  namespace: "telephony"
  description: "Support Satellite Data metrics at satellite session"
  bug: "405107194"
  metadata {
    purpose: PURPOSE_BUGFIX
  }
}
 No newline at end of file
+10 −0
Original line number Diff line number Diff line
@@ -840,6 +840,16 @@ message CarrierRoamingSatelliteSession {
    optional int64 satellite_data_consumed_bytes = 19;
    optional bool is_multi_sim = 20;
    optional bool is_nb_iot_ntn = 21;
    optional int32 count_of_data_connections = 22;
    repeated int32 last_fail_causes = 23;
    optional int32 count_of_data_disconnections = 24;
    optional int32 count_of_data_stalls = 25;
    optional int32 average_uplink_bandwidth_kbps = 26;
    optional int32 average_downlink_bandwidth_kbps = 27;
    optional int32 min_uplink_bandwidth_kbps = 28;
    optional int32 max_uplink_bandwidth_kbps = 29;
    optional int32 min_downlink_bandwidth_kbps = 30;
    optional int32 max_downlink_bandwidth_kbps = 31;
}

message CarrierRoamingSatelliteControllerStats {
+1 −0
Original line number Diff line number Diff line
@@ -2365,6 +2365,7 @@ public class DataNetwork extends StateMachine {

        if (mIsSatellite && mDataConfigManager.getForcedCellularTransportCapabilities().stream()
                .noneMatch(this::hasNetworkCapabilityInNetworkRequests)) {
            logd("transport satellite is set");
            builder.addTransportType(NetworkCapabilities.TRANSPORT_SATELLITE);
        } else {
            builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
+11 −1
Original line number Diff line number Diff line
@@ -1611,7 +1611,17 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
                stats.serviceDataPolicy,
                stats.satelliteDataConsumedBytes,
                stats.isMultiSim,
                stats.isNbIotNtn);
                stats.isNbIotNtn,
                stats.countOfDataConnections,
                stats.lastFailCauses,
                stats.countOfDataDisconnections,
                stats.countOfDataStalls,
                stats.averageUplinkBandwidthKbps,
                stats.averageDownlinkBandwidthKbps,
                stats.minUplinkBandwidthKbps,
                stats.maxUplinkBandwidthKbps,
                stats.minDownlinkBandwidthKbps,
                stats.maxDownlinkBandwidthKbps);
    }

    private static StatsEvent buildStatsEvent(CarrierRoamingSatelliteControllerStats stats) {
+172 −0
Original line number Diff line number Diff line
@@ -1887,6 +1887,16 @@ public class SatelliteStats {
        private final long mSatelliteDataConsumedBytes;
        private final boolean mIsMultiSim;
        private final boolean mIsNbIotNtn;
        private final int mCountOfDataConnections;
        private final int[] mLastFailCauses;
        private final int mCountOfDataDisconnections;
        private final int mCountOfDataStalls;
        private final int mAverageUplinkBandwidthKbps;
        private final int mAverageDownlinkBandwidthKbps;
        private final int mMinUplinkBandwidthKbps;
        private final int mMaxUplinkBandwidthKbps;
        private final int mMinDownlinkBandwidthKbps;
        private final int mMaxDownlinkBandwidthKbps;

        private CarrierRoamingSatelliteSessionParams(Builder builder) {
            this.mCarrierId = builder.mCarrierId;
@@ -1912,6 +1922,16 @@ public class SatelliteStats {
                    builder.mSatelliteDataConsumedBytes;
            this.mIsMultiSim = builder.mIsMultiSim;
            this.mIsNbIotNtn = builder.mIsNbIotNtn;
            this.mCountOfDataConnections = builder.mCountOfDataConnections;
            this.mLastFailCauses = builder.mLastFailCauses;
            this.mCountOfDataDisconnections = builder.mCountOfDataDisconnections;
            this.mCountOfDataStalls = builder.mCountOfDataStalls;
            this.mAverageUplinkBandwidthKbps =  builder.mAverageUplinkBandwidthKbps;
            this.mAverageDownlinkBandwidthKbps = builder.mAverageDownlinkBandwidthKbps;
            this.mMinUplinkBandwidthKbps = builder.mMinUplinkBandwidthKbps;
            this.mMaxUplinkBandwidthKbps = builder.mMaxUplinkBandwidthKbps;
            this.mMinDownlinkBandwidthKbps = builder.mMinDownlinkBandwidthKbps;
            this.mMaxDownlinkBandwidthKbps = builder.mMaxDownlinkBandwidthKbps;
        }

        public int getCarrierId() {
@@ -1998,6 +2018,46 @@ public class SatelliteStats {
            return mIsNbIotNtn;
        }

        public int getCountOfDataConnections() {
            return mCountOfDataConnections;
        }

        public int[] getLastFailCauses() {
            return mLastFailCauses;
        }

        public int getCountOfDataDisconnections() {
            return mCountOfDataDisconnections;
        }

        public int getCountOfDataStalls() {
            return mCountOfDataStalls;
        }

        public int getAverageUplinkBandwidthKbps() {
            return mAverageUplinkBandwidthKbps;
        }

        public int getAverageDownlinkBandwidthKbps() {
            return mAverageDownlinkBandwidthKbps;
        }

        public int getMinimumUplinkBandwidthKbps() {
            return mMinUplinkBandwidthKbps;
        }

        public int getMaximumUplinkBandwidthKbps() {
            return mMaxUplinkBandwidthKbps;
        }

        public int getMinimumDownlinkBandwidthKbps() {
            return mMinDownlinkBandwidthKbps;
        }

        public int getMaximumDownlinkBandwidthKbps() {
            return mMaxDownlinkBandwidthKbps;
        }

        /**
         * A builder class to create {@link CarrierRoamingSatelliteSessionParams} data structure
         * class
@@ -2025,6 +2085,17 @@ public class SatelliteStats {
            long mSatelliteDataConsumedBytes = 0L;
            private boolean mIsMultiSim = false;
            private boolean mIsNbIotNtn = false;
            private int mCountOfDataConnections = 0;
            private int[] mLastFailCauses = new int[5];
            private int mCountOfDataDisconnections = 0;
            private int mCountOfDataStalls = 0;
            private int mAverageUplinkBandwidthKbps = 0;
            private int mAverageDownlinkBandwidthKbps = 0;
            private int mMinUplinkBandwidthKbps = Integer.MAX_VALUE;
            private int mMaxUplinkBandwidthKbps = 0;
            private int mMinDownlinkBandwidthKbps = Integer.MAX_VALUE;
            private int mMaxDownlinkBandwidthKbps = 0;


            /**
             * Sets carrierId value of {@link CarrierRoamingSatelliteSession} atom
@@ -2228,6 +2299,97 @@ public class SatelliteStats {
                this.mIsNbIotNtn = isNbIotNtn;
                return this;
            }

            /**
             * Sets countOfDataConnections value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setCountOfDataConnections(int countOfDataConnections) {
                this.mCountOfDataConnections = countOfDataConnections;
                return this;
            }

            /**
             * Sets lastFailCauses value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setLastFailCauses(int[] lastFailCauses) {
                this.mLastFailCauses = lastFailCauses;
                Arrays.sort(this.mLastFailCauses);
                return this;
            }

            /**
             * Sets countOfDataDisconnections value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setCountOfDataDisconnections(int countOfDataDisconnections) {
                this.mCountOfDataDisconnections = countOfDataDisconnections;
                return this;
            }

            /**
             * Sets countOfDataStalls value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setCountOfDataStalls(int countOfDataStalls) {
                this.mCountOfDataStalls = countOfDataStalls;
                return this;
            }

            /**
             * Sets averageUplinkBandwidth value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setAverageUplinkBandwidthKbps(int averageUplinkBandwidthKbps) {
                this.mAverageUplinkBandwidthKbps = averageUplinkBandwidthKbps;
                return this;
            }

            /**
             * Sets averageDownlinkBandwidth value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setAverageDownlinkBandwidthKbps(int averageDownlinkBandwidthKbps) {
                this.mAverageDownlinkBandwidthKbps = averageDownlinkBandwidthKbps;
                return this;
            }

            /**
             * Sets minUplinkBandwidth value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setMinimumUplinkBandwidthKbps(int minUplinkBandwidthKbps) {
                this.mMinUplinkBandwidthKbps = minUplinkBandwidthKbps;
                return this;
            }

            /**
             * Sets maxUplinkBandwidth value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setMaximumUplinkBandwidthKbps(int maxUplinkBandwidthKbps) {
                this.mMaxUplinkBandwidthKbps = maxUplinkBandwidthKbps;
                return this;
            }

            /**
             * Sets minDownlinkBandwidth value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setMinimumDownlinkBandwidthKbps(int minDownlinkBandwidthKbps) {
                this.mMinDownlinkBandwidthKbps = minDownlinkBandwidthKbps;
                return this;
            }

            /**
             * Sets maxUplinkBandwidth value of {@link CarrierRoamingSatelliteSession}
             * atom then returns Builder class
             */
            public Builder setMaximumDownlinkBandwidthKbps(int maxDownlinkBandwidthKbps) {
                this.mMaxDownlinkBandwidthKbps = maxDownlinkBandwidthKbps;
                return this;
            }
        }

        @Override
@@ -2255,6 +2417,16 @@ public class SatelliteStats {
                    + ", SatelliteDataConsumedBytes=" + mSatelliteDataConsumedBytes
                    + ", isMultiSim=" + mIsMultiSim
                    + ", isNbIotNtn=" + mIsNbIotNtn
                    + ", countOfDataConnections=" + mCountOfDataConnections
                    + ", lastFailCauses=" +  Arrays.toString(mLastFailCauses)
                    + ", countOfDataDisconnections=" + mCountOfDataDisconnections
                    + ", countOfDataStalls=" + mCountOfDataStalls
                    + ", averageUplinkBandwidthKbps=" + mAverageUplinkBandwidthKbps
                    + ", averageDownlinkBandwidthKbps=" + mAverageDownlinkBandwidthKbps
                    + ", minUplinkBandwidthKbps=" + mMinUplinkBandwidthKbps
                    + ", maxUplinkBandwidthKbps=" + mMaxUplinkBandwidthKbps
                    + ", minDownlinkBandwidthKbps=" + mMinDownlinkBandwidthKbps
                    + ", maxDownlinkBandwidthKbps=" + mMaxDownlinkBandwidthKbps
                    + ")";
        }
    }
Loading