Loading flags/satellite.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -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 proto/src/persist_atoms.proto +10 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading src/java/com/android/internal/telephony/data/DataNetwork.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading src/java/com/android/internal/telephony/metrics/MetricsCollector.java +11 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading src/java/com/android/internal/telephony/metrics/SatelliteStats.java +172 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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() { Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading
flags/satellite.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -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
proto/src/persist_atoms.proto +10 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading
src/java/com/android/internal/telephony/data/DataNetwork.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
src/java/com/android/internal/telephony/metrics/MetricsCollector.java +11 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading
src/java/com/android/internal/telephony/metrics/SatelliteStats.java +172 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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() { Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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 Loading Loading @@ -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