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