1/*
2 * Copyright (C) 2023 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17syntax = "proto2";
18
19package android.os.statsd.telephony.qns;
20
21import "frameworks/proto_logging/stats/atom_field_options.proto";
22import "frameworks/proto_logging/stats/atoms.proto";
23import "frameworks/proto_logging/stats/enums/telephony/qns/enums.proto";
24
25option java_package = "com.android.os.telephony.qns";
26option java_multiple_files = true;
27
28extend Atom {
29  optional QualifiedRatListChanged qualified_rat_list_changed = 634
30          [(module) = "qns"];
31  optional QnsImsCallDropStats qns_ims_call_drop_stats = 635
32          [(module) = "qns"];
33  optional QnsFallbackRestrictionChanged qns_fallback_restriction_changed = 636
34          [(module) = "qns"];
35  optional QnsRatPreferenceMismatchInfo qns_rat_preference_mismatch_info = 10177
36          [(module) = "qns"];
37  optional QnsHandoverTimeMillis qns_handover_time_millis = 10178
38          [(module) = "qns"];
39  optional QnsHandoverPingpong qns_handover_pingpong = 10179
40          [(module) = "qns"];
41}
42
43
44/*
45 * Logs when a QNS update qualified RAT list.(CELLULAR or Wi-Fi). pushed
46 *
47 * Logged from:
48 *      packages/modules/Telephony/services/QualifiedNetworksService
49 */
50message QualifiedRatListChanged {
51
52  // NetCapability of this Qualified RAT update
53  optional android.telephony.qns.NetCapability net_capability = 1;
54
55  // The most preferred qualified RAT
56  optional android.telephony.qns.AccessNetworkType first_qualified_rat = 2;
57
58  // Second preferred qualified RAT
59  optional android.telephony.qns.AccessNetworkType second_qualified_rat = 3;
60
61  // Current actual transport type of Data session for this NetCapability
62  optional android.telephony.qns.TransportType current_transport_type = 4;
63
64  // Indicates whether WFC is enabled
65  optional bool wfc_enabled = 5;
66
67  // Indicates the user's WFC mode
68  optional android.telephony.qns.WfcMode wfc_mode = 6;
69
70  // Current Cellular AccessNetwork Type
71  optional android.telephony.qns.AccessNetworkType cellular_network_type = 7;
72
73  // Available IWLAN AccessNetwork
74  optional android.telephony.qns.IwlanNetworkType iwlan_network_type = 8;
75
76  // Bit mask of restrictions on WWAN
77  optional int32 restrictions_on_wwan = 9;
78
79  // Bit mask of restrictions on WLAN
80  optional int32 restrictions_on_wlan = 10;
81
82  // Cellular network signal strength {e.g. SSRSRP in NR, RSRP in LTE, RSCP in UMTS} */
83  optional int32 signal_strength = 11;
84
85  // Cellular network signal quality {e.g. SSRSRQ in NR, RSRQ in LTE}
86  optional int32 signal_quality = 12;
87
88  // Cellular network signal noise ratio {e.g. SSSINR in NR, RSSNR in LTE}
89  optional int32 signal_noise = 13;
90
91  // Iwlan network signal strength (Wi-Fi RSSI)
92  optional int32 iwlan_signal_strength = 14;
93
94  // Reason for preferred RAT update
95  optional int32 update_reason = 15;
96
97  // IMS Call Type
98  optional int32 ims_call_type = 16;
99
100  // IMS Call Quality
101  optional int32 ims_call_quality = 17;
102
103  // Index of sim slot
104  optional int32 sim_slot_index = 18;
105}
106
107/**
108 * Logs when IMS call drop occurred in when both transport type available. pushed
109 *
110 * Logged from:
111 *      packages/modules/Telephony/services/QualifiedNetworksService
112 */
113message QnsImsCallDropStats {
114
115  // Transport type in where IMS call drop occurred.
116  optional android.telephony.qns.TransportType transport_type_call_dropped = 1;
117
118  // RTP threshold breached event occurred.
119  optional bool rtp_threshold_breached = 2;
120
121  // Bit mask of restrictions on another transport type
122  optional int32 restrictions_on_other_transport_type = 3;
123
124  // Cellular network signal strength {e.g. SSRSRP in NR, RSRP in LTE, RSCP in UMTS}
125  optional int32 signal_strength = 4;
126
127  // Cellular network signal quality {e.g. SSRSRQ in NR, RSRQ in LTE}
128  optional int32 signal_quality = 5;
129
130  // Cellular network signal noise ratio {e.g. SSSINR in NR, RSSNR in LTE}
131  optional int32 signal_noise = 6;
132
133  // Iwlan network signal strength (Wi-Fi RSSI)
134  optional int32 iwlan_signal_strength = 7;
135
136  // SIM slot index
137  optional int32 sim_slot_index = 8;
138
139  // Current Cellular AccessNetwork Type
140  optional android.telephony.qns.AccessNetworkType cellular_network_type = 9;
141}
142
143/**
144 * Logs when QNS fallback restriction changed. pushed
145 *
146 * Logged from:
147 *      packages/modules/Telephony/services/QualifiedNetworksService
148 */
149message QnsFallbackRestrictionChanged {
150
151  // Restriction on wlan caused by RTP threshold breached
152  optional bool restriction_wlan_rtp_threshold_breached = 1;
153
154  // Restriction on wwan caused by RTP threshold breached
155  optional bool restriction_wwan_rtp_threshold_breached = 2;
156
157  // Restriction on wlan caused by IMS registration fail
158  optional bool restriction_wlan_ims_regi_fail = 3;
159
160  // Restriction on wlan caused by Wifi backhaul problem.
161  optional bool restriction_wlan_wifi_backhaul_problem = 4;
162
163  // Carrier id
164  optional int32 carrier_id = 5;
165
166  // Index of sim slot
167  optional int32 sim_slot_index = 6;
168}
169
170/*
171 * Logs time taken from update of RAT preference until successful handover completion. pulled
172 *
173 * Logged from:
174 *      packages/modules/Telephony/services/QualifiedNetworksService
175 */
176message QnsHandoverTimeMillis {
177
178  // Time in milliseconds from QNS RAT update to successful HO completion
179  optional int32 time_millis_for_ho_success = 1;
180
181  // Index of sim slot
182  optional int32 sim_slot_index = 2;
183}
184
185/**
186 * Logs the history for mismatch between QNS RAT preference & actual one. pulled
187 *
188 * Logged from:
189 *      packages/modules/Telephony/services/QualifiedNetworksService
190 */
191message QnsRatPreferenceMismatchInfo {
192
193  // Net capability of this information.
194  optional android.telephony.qns.NetCapability net_capability = 1;
195
196  // Count of handover failed.
197  optional int32 handover_fail_count = 2;
198
199  // Duration in milliseconds of this mismatch.
200  optional int32 duration_millis_of_mismatch = 3;
201
202  // Carrier id
203  optional int32 carrier_id = 4;
204
205  // Index of sim slot
206  optional int32 sim_slot_index = 5;
207}
208
209/**
210 * Logs count of handover ping-pong in short time (5 sec). pulled
211 *
212 * Logged from:
213 *      packages/modules/Telephony/services/QualifiedNetworksService
214 */
215message QnsHandoverPingpong {
216
217  // Count of handover pingpong
218  optional int32 count_handover_pingpong = 1;
219
220  // Carrier id
221  optional int32 carrier_id = 2;
222
223  // Index of sim slot
224  optional int32 sim_slot_id = 3;
225}
226