1//
2// Copyright (C) 2016 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 clearcut.connectivity;
20
21option java_package = "com.android.internal.telephony";
22option java_outer_classname = "TelephonyProto";
23
24// The information about Telephony events.
25message TelephonyLog {
26
27  // Events logged by telephony services
28  repeated TelephonyEvent events = 1;
29
30  // Voice/Video call sessions
31  repeated TelephonyCallSession call_sessions = 2;
32
33  // Send/Receive SMS sessions
34  repeated SmsSession sms_sessions = 3;
35
36  // Telephony Histograms
37  repeated TelephonyHistogram histograms = 4;
38
39  // Indicating some telephony events are dropped
40  optional bool events_dropped = 5;
41
42  // The start time of this log
43  optional Time start_time = 6;
44
45  // The end time of this log
46  optional Time end_time = 7;
47
48  // Modem power stats
49  optional ModemPowerStats modem_power_stats = 8;
50
51  // Hardware revision (EVT, DVT, PVT etc.)
52  optional string hardware_revision = 9;
53
54  // The last active subscription info for each slot.
55  repeated ActiveSubscriptionInfo last_active_subscription_info = 10;
56
57  // Bandwidth estimator stats
58  optional BandwidthEstimatorStats bandwidth_estimator_stats = 11;
59}
60
61// The time information
62message Time {
63  // The system time in milli seconds. This represents the actual
64  // time of the events.
65  optional int64 system_timestamp_millis = 1;
66
67  // The time since boot in milli seconds.
68  // This is used for calculating the time interval between events. Different
69  // from the system time, this won't be affected by time changed by the network or users.
70  optional int64 elapsed_timestamp_millis = 2;
71}
72
73// Telephony Histogram
74message TelephonyHistogram {
75
76  // Type of histogram
77  optional int32 category = 1;
78
79  // Unique Id identifying a sample within
80  // particular category of the histogram.
81  optional int32 id = 2;
82
83  // Min time taken in millis.
84  optional int32 min_time_millis = 3;
85
86  // Max time taken in millis.
87  optional int32 max_time_millis = 4;
88
89  // Average time taken in millis.
90  optional int32 avg_time_millis = 5;
91
92  // Total count of histogram samples.
93  optional int32 count = 6;
94
95  // Total number of time ranges expected
96  // (must be greater than 1).
97  optional int32 bucket_count = 7;
98
99  // Array storing endpoints of range buckets.
100  repeated int32 bucket_end_points = 8;
101
102  // Array storing counts for each time range
103  // starting from smallest value range.
104  repeated int32 bucket_counters = 9;
105}
106
107// Telephony related user settings
108message TelephonySettings {
109
110  // NETWORK_MODE_* See ril.h PREF_NET_TYPE_XXXX
111  enum RilNetworkMode {
112
113    // Mode is unknown.
114    NETWORK_MODE_UNKNOWN = 0;
115
116    // GSM/WCDMA (WCDMA preferred). Note the following values are all off by 1.
117    NETWORK_MODE_WCDMA_PREF = 1;
118
119    // GSM only
120    NETWORK_MODE_GSM_ONLY = 2;
121
122    // WCDMA only
123    NETWORK_MODE_WCDMA_ONLY = 3;
124
125    // GSM/WCDMA (auto mode, according to PRL)
126    NETWORK_MODE_GSM_UMTS = 4;
127
128    // CDMA and EvDo (auto mode, according to PRL)
129    NETWORK_MODE_CDMA = 5;
130
131    // CDMA only
132    NETWORK_MODE_CDMA_NO_EVDO = 6;
133
134    // EvDo only
135    NETWORK_MODE_EVDO_NO_CDMA = 7;
136
137    // GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL)
138    NETWORK_MODE_GLOBAL = 8;
139
140    // LTE, CDMA and EvDo
141    NETWORK_MODE_LTE_CDMA_EVDO = 9;
142
143    // LTE, GSM/WCDMA
144    NETWORK_MODE_LTE_GSM_WCDMA = 10;
145
146    // LTE, CDMA, EvDo, GSM/WCDMA
147    NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 11;
148
149    // LTE Only mode
150    NETWORK_MODE_LTE_ONLY = 12;
151
152    // LTE/WCDMA
153    NETWORK_MODE_LTE_WCDMA = 13;
154
155    // TD-SCDMA only
156    NETWORK_MODE_TDSCDMA_ONLY = 14;
157
158    // TD-SCDMA and WCDMA
159    NETWORK_MODE_TDSCDMA_WCDMA = 15;
160
161    // TD-SCDMA and LTE
162    NETWORK_MODE_LTE_TDSCDMA = 16;
163
164    // TD-SCDMA and GSM
165    NETWORK_MODE_TDSCDMA_GSM = 17;
166
167    // TD-SCDMA,GSM and LTE
168    NETWORK_MODE_LTE_TDSCDMA_GSM = 18;
169
170    // TD-SCDMA, GSM/WCDMA
171    NETWORK_MODE_TDSCDMA_GSM_WCDMA = 19;
172
173    // TD-SCDMA, WCDMA and LTE
174    NETWORK_MODE_LTE_TDSCDMA_WCDMA = 20;
175
176    // TD-SCDMA, GSM/WCDMA and LTE
177    NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 21;
178
179    // TD-SCDMA,EvDo,CDMA,GSM/WCDMA
180    NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22;
181
182    // TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo
183    NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 23;
184  }
185
186  // Constants for WiFi Calling mode
187  enum WiFiCallingMode {
188
189    // Calling mode is unknown.
190    WFC_MODE_UNKNOWN = 0;
191
192    WFC_MODE_WIFI_ONLY = 1;
193
194    WFC_MODE_CELLULAR_PREFERRED = 2;
195
196    WFC_MODE_WIFI_PREFERRED = 3;
197  }
198
199  // If the device is in airplane mode.
200  optional bool is_airplane_mode = 1;
201
202  // If cell-data has been enabled.
203  optional bool is_cellular_data_enabled = 2;
204
205  // If cell-roaming has been enabled.
206  optional bool is_data_roaming_enabled = 3;
207
208  // Preferred network mode.
209  optional RilNetworkMode preferred_network_mode = 4;
210
211  // If enhanced mode enabled.
212  optional bool is_enhanced_4g_lte_mode_enabled = 5;
213
214  // If wifi has been enabled.
215  optional bool is_wifi_enabled = 6;
216
217  // If wifi-calling has been enabled.
218  optional bool is_wifi_calling_enabled = 7;
219
220  // Wifi-calling Mode.
221  optional WiFiCallingMode wifi_calling_mode = 8;
222
223  // If video over LTE enabled.
224  optional bool is_vt_over_lte_enabled = 9;
225
226  // If video over wifi enabled.
227  optional bool is_vt_over_wifi_enabled = 10;
228}
229
230// Contains phone state and service related information.
231message TelephonyServiceState {
232
233  // The information about cellular network operator
234  message TelephonyOperator {
235
236    // Name in long alphanumeric format
237    optional string alpha_long = 1;
238
239    // Name in short alphanumeric format
240    optional string alpha_short = 2;
241
242    // Numeric id.
243    // In GSM/UMTS, numeric format is 3 digit country code plus 2 or 3 digit
244    // network code. Same as MCC/MNC.
245    optional string numeric = 3;
246  }
247
248  message NetworkRegistrationInfo {
249    // Network domain
250    optional Domain domain = 1;
251
252    // Network transport
253    optional Transport transport = 2;
254
255    // Radio access technology
256    optional RadioAccessTechnology rat = 3;
257  }
258
259  // Roaming type
260  enum RoamingType {
261
262    // Undefined. The default value. Different from ROAMING_TYPE_UNKNOWN.
263    ROAMING_TYPE_UNDEFINED = -1;
264
265    // In home network
266    ROAMING_TYPE_NOT_ROAMING = 0;
267
268    // In a roaming network, but we can not tell
269    // if it's domestic or international
270    ROAMING_TYPE_UNKNOWN = 1;
271
272    // In domestic roaming network
273    ROAMING_TYPE_DOMESTIC = 2;
274
275    // In international roaming network
276    ROAMING_TYPE_INTERNATIONAL = 3;
277  }
278
279  // Frequency range
280  enum FrequencyRange {
281    // Unknown. The default value.
282    FREQUENCY_RANGE_UNKNOWN = 0;
283
284    // Frequency range is below 1GHz.
285    FREQUENCY_RANGE_LOW = 1;
286
287    // Frequency range is between 1GHz and 3GHz.
288    FREQUENCY_RANGE_MID = 2;
289
290    // Frequency range is between 3GHz and 6GHz.
291    FREQUENCY_RANGE_HIGH = 3;
292
293    // Frequency range is above 6GHz (millimeter wave frequency).
294    FREQUENCY_RANGE_MMWAVE = 4;
295  }
296
297  // NR (5G) state
298  enum NrState {
299    // The device isn't camped on an LTE cell
300    // or the LTE cell doesn't support EN-DC.
301    NR_STATE_NONE = 0;
302
303    // The device is camped on an LTE cell that supports EN-DC
304    // but either DCNR is restricted
305    // or NR is not supported by the selected PLMN.
306    NR_STATE_RESTRICTED = 1;
307
308    // The device is camped on an LTE cell that supports EN-DC
309    // and both DCNR is not restricted and NR is supported
310    // by the selected PLMN.
311    NR_STATE_NOT_RESTRICTED = 2;
312
313    // The device is camped on an LTE cell that supports EN-DC
314    // and connected to at least one 5G cell
315    // as a secondary serving cell.
316    NR_STATE_CONNECTED = 3;
317  }
318
319  // Domain type
320  enum Domain {
321    // Unknown
322    DOMAIN_UNKNOWN = 0;
323
324    // Circuit switching domain
325    DOMAIN_CS = 1;
326
327    // Packet switching domain
328    DOMAIN_PS = 2;
329  }
330
331  enum Transport {
332    // Unknown
333    TRANSPORT_UNKNOWN = 0;
334
335    // Transport type for Wireless Wide Area Networks (i.e. Cellular)
336    TRANSPORT_WWAN = 1;
337
338    // Transport type for Wireless Local Area Networks (i.e. Wifi)
339    TRANSPORT_WLAN = 2;
340  }
341
342  // Current registered operator
343  optional TelephonyOperator voice_operator = 1;
344
345  // Current registered data network operator
346  optional TelephonyOperator data_operator = 2;
347
348  // Current voice network roaming type
349  optional RoamingType voice_roaming_type = 3 [default = ROAMING_TYPE_UNDEFINED];
350
351  // Current data network roaming type
352  optional RoamingType data_roaming_type = 4 [default = ROAMING_TYPE_UNDEFINED];
353
354  // Current voice radio technology
355  optional RadioAccessTechnology voice_rat = 5 [default = UNKNOWN];
356
357  // Current data radio technology
358  optional RadioAccessTechnology data_rat = 6 [default = UNKNOWN];
359
360  // Current Channel Number
361  optional int32 channel_number = 7;
362
363  // Current NR frequency range
364  optional FrequencyRange nr_frequency_range = 8;
365
366  // Current NR state
367  optional NrState nr_state = 9;
368
369  // Network registration info
370  repeated NetworkRegistrationInfo networkRegistrationInfo = 10;
371}
372
373// Radio access families
374enum RadioAccessTechnology {
375
376  // This is the default value. Different from RAT_UNKNOWN.
377  UNKNOWN = -1;
378
379  // Airplane mode, out of service, or when the modem cannot determine
380  // the RAT.
381  RAT_UNKNOWN = 0;
382
383  RAT_GPRS = 1;
384
385  RAT_EDGE = 2;
386
387  RAT_UMTS = 3;
388
389  RAT_IS95A = 4;
390
391  RAT_IS95B = 5;
392
393  RAT_1XRTT = 6;
394
395  RAT_EVDO_0 = 7;
396
397  RAT_EVDO_A = 8;
398
399  RAT_HSDPA = 9;
400
401  RAT_HSUPA = 10;
402
403  RAT_HSPA = 11;
404
405  RAT_EVDO_B = 12;
406
407  RAT_EHRPD = 13;
408
409  RAT_LTE = 14;
410
411  RAT_HSPAP = 15;
412
413  RAT_GSM = 16;
414
415  RAT_TD_SCDMA = 17;
416
417  RAT_IWLAN = 18;
418
419  RAT_LTE_CA = 19;
420
421  RAT_NR = 20;
422}
423
424// NR (5G) operation mode
425enum NrMode {
426  // The device is not in a NR network.
427  NR_NONE = 1;
428  // The device is in a NR non-standalone network at non-MMWAVE frequencies.
429  NR_NSA = 2;
430  // The device is in a NR non-standalone network at MMWAVE frequencies.
431  NR_NSA_MMWAVE = 3;
432  // The device is in a NR standalone network at non-MMWAVE frequencies.
433  NR_SA = 4;
434  // The device is in a NR standalone network at MMWAVE frequencies.
435  NR_SA_MMWAVE = 5;
436}
437
438// The information about IMS errors
439// https://cs.corp.google.com/#android/frameworks/base/telephony/java/com/android/ims/ImsReasonInfo.java
440message ImsReasonInfo {
441
442  // Main reason code.
443  optional int32 reason_code = 1;
444
445  // Extra code value; it depends on the code value.
446  optional int32 extra_code = 2;
447
448  // Additional message of the reason info. We get this from the modem.
449  optional string extra_message = 3;
450}
451
452// The information about state connection between IMS service and IMS server
453message ImsConnectionState {
454
455  // Current state
456  optional State state = 1;
457
458  // If DISCONNECTED then this field may have additional information about
459  // connection problem.
460  optional ImsReasonInfo reason_info = 2;
461
462  // Posible states
463  enum State {
464
465    // State is unknown.
466    STATE_UNKNOWN = 0;
467
468    CONNECTED = 1;
469
470    PROGRESSING = 2;
471
472    DISCONNECTED = 3;
473
474    RESUMED = 4;
475
476    SUSPENDED = 5;
477  }
478}
479
480// The information about current capabilities of IMS service
481message ImsCapabilities {
482
483  optional bool voice_over_lte = 1;
484
485  optional bool voice_over_wifi = 2;
486
487  optional bool video_over_lte = 3;
488
489  optional bool video_over_wifi = 4;
490
491  optional bool ut_over_lte = 5;
492
493  optional bool ut_over_wifi = 6;
494}
495
496// Errors returned by RIL
497enum RilErrno {
498
499  // type is unknown.
500  RIL_E_UNKNOWN = 0;
501
502  // Note the following values are all off by 1.
503  RIL_E_SUCCESS = 1;
504
505  // If radio did not start or is resetting
506  RIL_E_RADIO_NOT_AVAILABLE = 2;
507
508  RIL_E_GENERIC_FAILURE = 3;
509
510  // for PIN/PIN2 methods only!
511  RIL_E_PASSWORD_INCORRECT = 4;
512
513  // Operation requires SIM PIN2 to be entered
514  RIL_E_SIM_PIN2 = 5;
515
516  // Operation requires SIM PIN2 to be entered
517  RIL_E_SIM_PUK2 = 6;
518
519  RIL_E_REQUEST_NOT_SUPPORTED = 7;
520
521  RIL_E_CANCELLED = 8;
522
523  // data ops are not allowed during voice call on a Class C GPRS device
524  RIL_E_OP_NOT_ALLOWED_DURING_VOICE_CALL = 9;
525
526  // data ops are not allowed before device registers in network
527  RIL_E_OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 10;
528
529  // fail to send sms and need retry
530  RIL_E_SMS_SEND_FAIL_RETRY = 11;
531
532  // fail to set the location where CDMA subscription shall be retrieved
533  // because of SIM or RUIM card absent
534  RIL_E_SIM_ABSENT = 12;
535
536  // fail to find CDMA subscription from specified location
537  RIL_E_SUBSCRIPTION_NOT_AVAILABLE = 13;
538
539  // HW does not support preferred network type
540  RIL_E_MODE_NOT_SUPPORTED = 14;
541
542  // command failed because recipient is not on FDN list
543  RIL_E_FDN_CHECK_FAILURE = 15;
544
545  // network selection failed due to illegal SIM or ME
546  RIL_E_ILLEGAL_SIM_OR_ME = 16;
547
548  // no logical channel available
549  RIL_E_MISSING_RESOURCE = 17;
550
551  // application not found on SIM
552  RIL_E_NO_SUCH_ELEMENT = 18;
553
554  // DIAL request modified to USSD
555  RIL_E_DIAL_MODIFIED_TO_USSD = 19;
556
557  // DIAL request modified to SS
558  RIL_E_DIAL_MODIFIED_TO_SS = 20;
559
560  // DIAL request modified to DIAL with different data
561  RIL_E_DIAL_MODIFIED_TO_DIAL = 21;
562
563  // USSD request modified to DIAL
564  RIL_E_USSD_MODIFIED_TO_DIAL = 22;
565
566  // USSD request modified to SS
567  RIL_E_USSD_MODIFIED_TO_SS = 23;
568
569  // USSD request modified to different USSD request
570  RIL_E_USSD_MODIFIED_TO_USSD = 24;
571
572  // SS request modified to DIAL
573  RIL_E_SS_MODIFIED_TO_DIAL = 25;
574
575  // SS request modified to USSD
576  RIL_E_SS_MODIFIED_TO_USSD = 26;
577
578  // Subscription not supported by RIL
579  RIL_E_SUBSCRIPTION_NOT_SUPPORTED = 27;
580
581  // SS request modified to different SS request
582  RIL_E_SS_MODIFIED_TO_SS = 28;
583
584  // LCE service not supported(36 in RILConstants.java. This is a mistake.
585  // The value should be off by 1 ideally.)
586  RIL_E_LCE_NOT_SUPPORTED = 36 [deprecated=true];
587
588  // LCE service not supported
589  RIL_E_LCE_NOT_SUPPORTED_NEW = 37;
590
591  // Not sufficient memory to process the request
592  RIL_E_NO_MEMORY = 38;
593
594  // Modem hit unexpected error scenario while handling this request
595  RIL_E_INTERNAL_ERR = 39;
596
597  // Hit platform or system error
598  RIL_E_SYSTEM_ERR = 40;
599
600  // Vendor RIL got unexpected or incorrect response from modem for this request
601  RIL_E_MODEM_ERR = 41;
602
603  // Unexpected request for the current state
604  RIL_E_INVALID_STATE = 42;
605
606  // Not sufficient resource to process the request
607  RIL_E_NO_RESOURCES = 43;
608
609  // Received error from SIM card
610  RIL_E_SIM_ERR = 44;
611
612  // Received invalid arguments in request
613  RIL_E_INVALID_ARGUMENTS = 45;
614
615  // Cannot process the request in current SIM state
616  RIL_E_INVALID_SIM_STATE = 46;
617
618  // Cannot process the request in current Modem state
619  RIL_E_INVALID_MODEM_STATE = 47;
620
621  // Received invalid call id in request
622  RIL_E_INVALID_CALL_ID = 48;
623
624  // ACK received when there is no SMS to ack
625  RIL_E_NO_SMS_TO_ACK = 49;
626
627  // Received error from network
628  RIL_E_NETWORK_ERR = 50;
629
630  // Operation denied due to overly-frequent requests
631  RIL_E_REQUEST_RATE_LIMITED = 51;
632
633  // SIM is busy
634  RIL_E_SIM_BUSY = 52;
635
636  // The target EF is full
637  RIL_E_SIM_FULL = 53;
638
639  // Request is rejected by network
640  RIL_E_NETWORK_REJECT = 54;
641
642  // Not allowed the request now
643  RIL_E_OPERATION_NOT_ALLOWED = 55;
644
645  // The request record is empty
646  RIL_E_EMPTY_RECORD = 56;
647
648  // Invalid sms format
649  RIL_E_INVALID_SMS_FORMAT = 57;
650
651  // Message not encoded properly
652  RIL_E_ENCODING_ERR = 58;
653
654  // SMSC address specified is invalid
655  RIL_E_INVALID_SMSC_ADDRESS = 59;
656
657  // No such entry present to perform the request
658  RIL_E_NO_SUCH_ENTRY = 60;
659
660  // Network is not ready to perform the request
661  RIL_E_NETWORK_NOT_READY = 61;
662
663  // Device does not have this value provisioned
664  RIL_E_NOT_PROVISIONED = 62;
665
666  // Device does not have subscription
667  RIL_E_NO_SUBSCRIPTION = 63;
668
669  // Network cannot be found
670  RIL_E_NO_NETWORK_FOUND = 64;
671
672  // Operation cannot be performed because the device is currently in use
673  RIL_E_DEVICE_IN_USE = 65;
674
675  // Operation aborted
676  RIL_E_ABORTED = 66;
677
678  // Invalid response sent by vendor code
679  RIL_E_INVALID_RESPONSE = 67;
680}
681
682// Errors returned by ImsService
683enum ImsServiceErrno {
684
685  // The operation error is unknown
686  IMS_E_UNKNOWN = 0;
687  // The operation has succeeded
688  IMS_E_SUCCESS = 1;
689  // Sending SMS over IMS failed. Do not retry over IMS again or fallback to CS.
690  IMS_E_SMS_SEND_STATUS_ERROR = 2;
691  // Sending SMS over IMS failed. Retry over IMS again.
692  IMS_E_SMS_SEND_STATUS_ERROR_RETRY = 3;
693  // Sending SMS over IMS failed. Fallback to sending the SMS over CS.
694  IMS_E_SMS_SEND_STATUS_ERROR_FALLBACK = 4;
695}
696
697// PDP_type values in TS 27.007 section 10.1.1.
698enum PdpType {
699
700  // type is unknown.
701  PDP_UNKNOWN = 0;
702
703  PDP_TYPE_IP = 1;
704
705  PDP_TYPE_IPV6 = 2;
706
707  PDP_TYPE_IPV4V6 = 3;
708
709  PDP_TYPE_PPP = 4;
710
711  PDP_TYPE_NON_IP = 5;
712
713  PDP_TYPE_UNSTRUCTURED = 6;
714}
715
716// The information about packet data connection
717message RilDataCall {
718
719  // Context ID, uniquely identifies this call
720  optional int32 cid = 1;
721
722  // One of the PDP_type values in TS 27.007 section 10.1.1
723  optional PdpType type = 2;
724
725  // The network interface name e.g. wlan0, rmnet_data0.
726  optional string ifname = 3;
727
728  // State of the Data Call connection
729  optional State state = 4;
730
731  // Bitmask of APN types
732  optional int32 apn_type_bitmask = 5;
733
734  enum State {
735
736    // Unknown event
737    UNKNOWN = 0;
738
739    // Connected event
740    CONNECTED = 1;
741
742    // Disconnected event
743    DISCONNECTED = 2;
744  }
745}
746
747message EmergencyNumberInfo {
748  // Dialing address
749  optional string address = 1 /* [
750    (datapol.semantic_type) = ST_PHONE_NUMBER,
751    (datapol.qualifier) = {is_public: true}
752  ] */;
753
754  // Country code string (lowercase character) in ISO 3166 format
755  optional string country_iso = 2 /* [(datapol.semantic_type) = ST_LOCATION] */;
756
757  // Mobile Network Code
758  optional string mnc = 3 /* [(datapol.semantic_type) = ST_LOCATION] */;
759
760  // Bitmask of emergency service categories
761  optional int32 service_categories_bitmask = 4;
762
763  // Emergency Uniform Resources Names (URN)
764  // Reference: https://tools.ietf.org/html/rfc5031
765  repeated string urns = 5;
766
767  // Bitmask of the sources
768  optional int32 number_sources_bitmask = 6;
769
770  // Emergency call routing information.
771  // Emergency call routing is a flag to tell how modem handles the calling with
772  // emergency numbers. For example, 110 in India, modem needs to handle/route
773  // it like a normal call. There are only two possible options for emergency
774  // call routing: emergency call routing vs normal call routing. It is usually
775  // a country or carrier requirement.
776  optional int32 routing = 7;
777}
778
779message TelephonyEvent {
780
781  enum Type {
782
783    // Unknown event
784    UNKNOWN = 0;
785
786    // Telephony related user settings changed
787    SETTINGS_CHANGED = 1;
788
789    // Phone state changed
790    RIL_SERVICE_STATE_CHANGED = 2;
791
792    // IMS connected/disconnected
793    IMS_CONNECTION_STATE_CHANGED = 3;
794
795    // IMS Voice, Video and Ut capabilities changed
796    IMS_CAPABILITIES_CHANGED = 4;
797
798    // Setup a packet data connection
799    DATA_CALL_SETUP = 5;
800
801    // RIL request result
802    DATA_CALL_SETUP_RESPONSE = 6;
803
804    // Notification that new data call has appeared in the list
805    // or old data call has removed.
806    DATA_CALL_LIST_CHANGED = 7;
807
808    // Deactivate packet data connection
809    DATA_CALL_DEACTIVATE = 8;
810
811    // RIL request result
812    DATA_CALL_DEACTIVATE_RESPONSE = 9;
813
814    // Logging a data stall + its action
815    DATA_STALL_ACTION = 10;
816
817    // Modem Restarted. Logging a baseband version and reason for restart
818    // along with the event if it is available
819    MODEM_RESTART = 11;
820
821    // A system time update suggestion was made from a received NITZ (Network time) signal
822    NITZ_TIME = 12;
823
824    // Carrier Identification Matching Event
825    CARRIER_ID_MATCHING = 13;
826
827    // Carrier Key Change event.
828    CARRIER_KEY_CHANGED = 14;
829
830    // Data switch event.
831    DATA_SWITCH = 15;
832
833    // Network validate event.
834    NETWORK_VALIDATE = 16;
835
836    // On deman data switch event.
837    ON_DEMAND_DATA_SWITCH = 17;
838
839    // SIM state change event.
840    SIM_STATE_CHANGED = 18;
841
842    // Active subscription info change event.
843    ACTIVE_SUBSCRIPTION_INFO_CHANGED = 19;
844
845    // Enabled modem change event.
846    ENABLED_MODEM_CHANGED = 20;
847
848    // Emergency Number update event (Device HAL >= 1.4).
849    EMERGENCY_NUMBER_REPORT = 21;
850
851    // Network capabilities change event.
852    NETWORK_CAPABILITIES_CHANGED = 22;
853
854    // Signal strength
855    SIGNAL_STRENGTH = 23;
856
857    // Radio state change event
858    RADIO_STATE_CHANGED = 24;
859  }
860
861  enum ApnType {
862    APN_TYPE_UNKNOWN = 0;
863
864    APN_TYPE_DEFAULT = 1;
865
866    APN_TYPE_MMS = 2;
867
868    APN_TYPE_SUPL = 3;
869
870    APN_TYPE_DUN = 4;
871
872    APN_TYPE_HIPRI = 5;
873
874    APN_TYPE_FOTA = 6;
875
876    APN_TYPE_IMS = 7;
877
878    APN_TYPE_CBS = 8;
879
880    APN_TYPE_IA = 9;
881
882    APN_TYPE_EMERGENCY = 10;
883  }
884
885  enum EventState {
886    EVENT_STATE_UNKNOWN = 0;
887
888    EVENT_STATE_START = 1;
889
890    EVENT_STATE_END = 2;
891  }
892
893  enum NetworkValidationState {
894    /** The network validation state is unknown. */
895    NETWORK_VALIDATION_STATE_UNKNOWN = 0;
896
897    /** The network under validation is initial established. */
898    NETWORK_VALIDATION_STATE_AVAILABLE = 1;
899
900    /** The validation is failed. */
901    NETWORK_VALIDATION_STATE_FAILED = 2;
902
903    /** The validation is passed. */
904    NETWORK_VALIDATION_STATE_PASSED = 3;
905  }
906
907  enum RadioState {
908    /** Radio state is unknown or invalid. */
909    RADIO_STATE_UNKNOWN = 0;
910
911    /** Radio is explicitly off (e.g. airplane mode). */
912    RADIO_STATE_OFF = 1;
913
914    /** Radio is on. */
915    RADIO_STATE_ON = 2;
916
917    /** Radio power unavailable (eg, modem resetting or not booted). */
918    RADIO_STATE_UNAVAILABLE = 3;
919  }
920
921  message DataSwitch {
922    enum Reason {
923      /** Data switch caused by unknown reason. */
924      DATA_SWITCH_REASON_UNKNOWN = 0;
925
926      /** Data switch caused by user's manual switch. */
927      DATA_SWITCH_REASON_MANUAL = 1;
928
929      /** Data switch caused by incoming/outgoing call. */
930      DATA_SWITCH_REASON_IN_CALL = 2;
931
932      /** Data switch caused by CBRS switch. */
933      DATA_SWITCH_REASON_CBRS = 3;
934
935      /** Data switch caused by non-default SIM having better availability(e.g.signal). */
936      DATA_SWITCH_REASON_AUTO = 4;
937    }
938
939    /** The reason for data switch. */
940    optional Reason reason = 1;
941
942    /** Current state of the data switch event. */
943    optional EventState state = 2;
944  }
945
946  message OnDemandDataSwitch {
947    /** The apn associated with this event. */
948    optional ApnType apn = 1;
949
950    /** Current state of the on demand data switch event. */
951    optional EventState state = 2;
952  }
953
954  // Setup a packet data connection
955  message RilSetupDataCall {
956
957    // See ril.h RIL_REQUEST_SETUP_DATA_CALL
958    enum RilDataProfile {
959
960      // type is unknown.
961      RIL_DATA_UNKNOWN = 0;
962
963      RIL_DATA_PROFILE_DEFAULT = 1;
964
965      RIL_DATA_PROFILE_TETHERED = 2;
966
967      RIL_DATA_PROFILE_IMS = 3;
968
969      RIL_DATA_PROFILE_FOTA = 4;
970
971      RIL_DATA_PROFILE_CBS = 5;
972
973      RIL_DATA_PROFILE_OEM_BASE = 6;
974
975      RIL_DATA_PROFILE_INVALID = 7;
976    }
977
978    // Radio technology to use
979    optional RadioAccessTechnology rat = 1 [default = UNKNOWN];
980
981    // optional RIL_DataProfile
982    optional RilDataProfile data_profile = 2;
983
984    // APN to connect to if radio technology is GSM/UMTS
985    optional string apn = 3;
986
987    // the connection type to request
988    optional PdpType type = 4;
989  }
990
991  // RIL response to RilSetupDataCall
992  message RilSetupDataCallResponse {
993
994    // Copy of enum RIL_DataCallFailCause defined at ril.h
995    enum RilDataCallFailCause {
996
997      // Failure reason is unknown.
998      PDP_FAIL_UNKNOWN = 0;
999
1000      // No error, connection ok
1001      PDP_FAIL_NONE = 1;
1002
1003      PDP_FAIL_OPERATOR_BARRED = 8;
1004
1005      PDP_FAIL_NAS_SIGNALLING = 14;
1006
1007      PDP_FAIL_LLC_SNDCP = 25;
1008
1009      PDP_FAIL_INSUFFICIENT_RESOURCES = 26;
1010
1011      PDP_FAIL_MISSING_UKNOWN_APN = 27;
1012
1013      PDP_FAIL_UNKNOWN_PDP_ADDRESS_TYPE = 28;
1014
1015      PDP_FAIL_USER_AUTHENTICATION = 29;
1016
1017      PDP_FAIL_ACTIVATION_REJECT_GGSN = 30;
1018
1019      PDP_FAIL_ACTIVATION_REJECT_UNSPECIFIED = 31;
1020
1021      PDP_FAIL_SERVICE_OPTION_NOT_SUPPORTED = 32;
1022
1023      PDP_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED = 33;
1024
1025      PDP_FAIL_SERVICE_OPTION_OUT_OF_ORDER = 34;
1026
1027      PDP_FAIL_NSAPI_IN_USE = 35;
1028
1029      // Possibly restart radio, based on framework config
1030      PDP_FAIL_REGULAR_DEACTIVATION = 36;
1031
1032      PDP_FAIL_QOS_NOT_ACCEPTED = 37;
1033
1034      PDP_FAIL_NETWORK_FAILURE = 38;
1035
1036      PDP_FAIL_UMTS_REACTIVATION_REQ = 39;
1037
1038      PDP_FAIL_FEATURE_NOT_SUPP = 40;
1039
1040      PDP_FAIL_TFT_SEMANTIC_ERROR = 41;
1041
1042      PDP_FAIL_TFT_SYTAX_ERROR = 42;
1043
1044      PDP_FAIL_UNKNOWN_PDP_CONTEXT = 43;
1045
1046      PDP_FAIL_FILTER_SEMANTIC_ERROR = 44;
1047
1048      PDP_FAIL_FILTER_SYTAX_ERROR = 45;
1049
1050      PDP_FAIL_PDP_WITHOUT_ACTIVE_TFT = 46;
1051
1052      PDP_FAIL_ACTIVATION_REJECTED_BCM_VIOLATION = 48;
1053
1054      PDP_FAIL_ONLY_IPV4_ALLOWED = 50;
1055
1056      PDP_FAIL_ONLY_IPV6_ALLOWED = 51;
1057
1058      PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED = 52;
1059
1060      PDP_FAIL_ESM_INFO_NOT_RECEIVED = 53;
1061
1062      PDP_FAIL_PDN_CONN_DOES_NOT_EXIST = 54;
1063
1064      PDP_FAIL_MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 55;
1065
1066      PDP_FAIL_COLLISION_WITH_NETWORK_INITIATED_REQUEST = 56;
1067
1068      PDP_FAIL_ONLY_IPV4V6_ALLOWED = 57;
1069
1070      PDP_FAIL_ONLY_NON_IP_ALLOWED = 58;
1071
1072      PDP_FAIL_UNSUPPORTED_QCI_VALUE = 59;
1073
1074      PDP_FAIL_BEARER_HANDLING_NOT_SUPPORTED = 60;
1075
1076      PDP_FAIL_MAX_ACTIVE_PDP_CONTEXT_REACHED = 65;
1077
1078      PDP_FAIL_UNSUPPORTED_APN_IN_CURRENT_PLMN = 66;
1079
1080      PDP_FAIL_INVALID_TRANSACTION_ID = 81;
1081
1082      PDP_FAIL_MESSAGE_INCORRECT_SEMANTIC = 95;
1083
1084      PDP_FAIL_INVALID_MANDATORY_INFO = 96;
1085
1086      PDP_FAIL_MESSAGE_TYPE_UNSUPPORTED = 97;
1087
1088      PDP_FAIL_MSG_TYPE_NONCOMPATIBLE_STATE = 98;
1089
1090      PDP_FAIL_UNKNOWN_INFO_ELEMENT = 99;
1091
1092      PDP_FAIL_CONDITIONAL_IE_ERROR = 100;
1093
1094      PDP_FAIL_MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 101;
1095
1096      PDP_FAIL_PROTOCOL_ERRORS   = 111;
1097
1098      PDP_FAIL_APN_TYPE_CONFLICT = 112;
1099
1100      PDP_FAIL_INVALID_PCSCF_ADDR = 113;
1101
1102      PDP_FAIL_INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 114;
1103
1104      PDP_FAIL_EMM_ACCESS_BARRED = 115;
1105
1106      PDP_FAIL_EMERGENCY_IFACE_ONLY = 116;
1107
1108      PDP_FAIL_IFACE_MISMATCH = 117;
1109
1110      PDP_FAIL_COMPANION_IFACE_IN_USE = 118;
1111
1112      PDP_FAIL_IP_ADDRESS_MISMATCH = 119;
1113
1114      PDP_FAIL_IFACE_AND_POL_FAMILY_MISMATCH = 120;
1115
1116      PDP_FAIL_EMM_ACCESS_BARRED_INFINITE_RETRY = 121;
1117
1118      PDP_FAIL_AUTH_FAILURE_ON_EMERGENCY_CALL = 122;
1119
1120      PDP_FAIL_INVALID_DNS_ADDR = 123;
1121
1122      PDP_FAIL_INVALID_PCSCF_OR_DNS_ADDRESS = 124;
1123
1124      PDP_FAIL_CALL_PREEMPT_BY_EMERGENCY_APN = 127;
1125
1126      PDP_FAIL_UE_INITIATED_DETACH_OR_DISCONNECT = 128;
1127
1128      PDP_FAIL_MIP_FA_REASON_UNSPECIFIED = 2000;
1129
1130      PDP_FAIL_MIP_FA_ADMIN_PROHIBITED = 2001;
1131
1132      PDP_FAIL_MIP_FA_INSUFFICIENT_RESOURCES = 2002;
1133
1134      PDP_FAIL_MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2003;
1135
1136      PDP_FAIL_MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 2004;
1137
1138      PDP_FAIL_MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 2005;
1139
1140      PDP_FAIL_MIP_FA_MALFORMED_REQUEST = 2006;
1141
1142      PDP_FAIL_MIP_FA_MALFORMED_REPLY = 2007;
1143
1144      PDP_FAIL_MIP_FA_ENCAPSULATION_UNAVAILABLE = 2008;
1145
1146      PDP_FAIL_MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 2009;
1147
1148      PDP_FAIL_MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 2010;
1149
1150      PDP_FAIL_MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 2011;
1151
1152      PDP_FAIL_MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 2012;
1153
1154      PDP_FAIL_MIP_FA_MISSING_NAI = 2013;
1155
1156      PDP_FAIL_MIP_FA_MISSING_HOME_AGENT = 2014;
1157
1158      PDP_FAIL_MIP_FA_MISSING_HOME_ADDRESS = 2015;
1159
1160      PDP_FAIL_MIP_FA_UNKNOWN_CHALLENGE = 2016;
1161
1162      PDP_FAIL_MIP_FA_MISSING_CHALLENGE = 2017;
1163
1164      PDP_FAIL_MIP_FA_STALE_CHALLENGE = 2018;
1165
1166      PDP_FAIL_MIP_HA_REASON_UNSPECIFIED = 2019;
1167
1168      PDP_FAIL_MIP_HA_ADMIN_PROHIBITED = 2020;
1169
1170      PDP_FAIL_MIP_HA_INSUFFICIENT_RESOURCES = 2021;
1171
1172      PDP_FAIL_MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2022;
1173
1174      PDP_FAIL_MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 2023;
1175
1176      PDP_FAIL_MIP_HA_REGISTRATION_ID_MISMATCH = 2024;
1177
1178      PDP_FAIL_MIP_HA_MALFORMED_REQUEST = 2025;
1179
1180      PDP_FAIL_MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 2026;
1181
1182      PDP_FAIL_MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 2027;
1183
1184      PDP_FAIL_MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 2028;
1185
1186      PDP_FAIL_MIP_HA_ENCAPSULATION_UNAVAILABLE = 2029;
1187
1188      PDP_FAIL_CLOSE_IN_PROGRESS = 2030;
1189
1190      PDP_FAIL_NETWORK_INITIATED_TERMINATION = 2031;
1191
1192      PDP_FAIL_MODEM_APP_PREEMPTED = 2032;
1193
1194      PDP_FAIL_PDN_IPV4_CALL_DISALLOWED = 2033;
1195
1196      PDP_FAIL_PDN_IPV4_CALL_THROTTLED = 2034;
1197
1198      PDP_FAIL_PDN_IPV6_CALL_DISALLOWED = 2035;
1199
1200      PDP_FAIL_PDN_IPV6_CALL_THROTTLED = 2036;
1201
1202      PDP_FAIL_MODEM_RESTART = 2037;
1203
1204      PDP_FAIL_PDP_PPP_NOT_SUPPORTED = 2038;
1205
1206      PDP_FAIL_UNPREFERRED_RAT = 2039;
1207
1208      PDP_FAIL_PHYSICAL_LINK_CLOSE_IN_PROGRESS = 2040;
1209
1210      PDP_FAIL_APN_PENDING_HANDOVER = 2041;
1211
1212      PDP_FAIL_PROFILE_BEARER_INCOMPATIBLE = 2042;
1213
1214      PDP_FAIL_SIM_CARD_CHANGED = 2043;
1215
1216      PDP_FAIL_LOW_POWER_MODE_OR_POWERING_DOWN = 2044;
1217
1218      PDP_FAIL_APN_DISABLED = 2045;
1219
1220      PDP_FAIL_MAX_PPP_INACTIVITY_TIMER_EXPIRED = 2046;
1221
1222      PDP_FAIL_IPV6_ADDRESS_TRANSFER_FAILED = 2047;
1223
1224      PDP_FAIL_TRAT_SWAP_FAILED = 2048;
1225
1226      PDP_FAIL_EHRPD_TO_HRPD_FALLBACK = 2049;
1227
1228      PDP_FAIL_MIP_CONFIG_FAILURE = 2050;
1229
1230      PDP_FAIL_PDN_INACTIVITY_TIMER_EXPIRED = 2051;
1231
1232      PDP_FAIL_MAX_IPV4_CONNECTIONS = 2052;
1233
1234      PDP_FAIL_MAX_IPV6_CONNECTIONS = 2053;
1235
1236      PDP_FAIL_APN_MISMATCH = 2054;
1237
1238      PDP_FAIL_IP_VERSION_MISMATCH = 2055;
1239
1240      PDP_FAIL_DUN_CALL_DISALLOWED = 2056;
1241
1242      PDP_FAIL_INTERNAL_EPC_NONEPC_TRANSITION = 2057;
1243
1244      PDP_FAIL_INTERFACE_IN_USE = 2058;
1245
1246      PDP_FAIL_APN_DISALLOWED_ON_ROAMING = 2059;
1247
1248      PDP_FAIL_APN_PARAMETERS_CHANGED = 2060;
1249
1250      PDP_FAIL_NULL_APN_DISALLOWED = 2061;
1251
1252      PDP_FAIL_THERMAL_MITIGATION = 2062;
1253
1254      PDP_FAIL_DATA_SETTINGS_DISABLED = 2063;
1255
1256      PDP_FAIL_DATA_ROAMING_SETTINGS_DISABLED = 2064;
1257
1258      PDP_FAIL_DDS_SWITCHED = 2065;
1259
1260      PDP_FAIL_FORBIDDEN_APN_NAME = 2066;
1261
1262      PDP_FAIL_DDS_SWITCH_IN_PROGRESS = 2067;
1263
1264      PDP_FAIL_CALL_DISALLOWED_IN_ROAMING = 2068;
1265
1266      PDP_FAIL_NON_IP_NOT_SUPPORTED = 2069;
1267
1268      PDP_FAIL_PDN_NON_IP_CALL_THROTTLED = 2070;
1269
1270      PDP_FAIL_PDN_NON_IP_CALL_DISALLOWED = 2071;
1271
1272      PDP_FAIL_CDMA_LOCK = 2072;
1273
1274      PDP_FAIL_CDMA_INTERCEPT = 2073;
1275
1276      PDP_FAIL_CDMA_REORDER = 2074;
1277
1278      PDP_FAIL_CDMA_RELEASE_DUE_TO_SO_REJECTION = 2075;
1279
1280      PDP_FAIL_CDMA_INCOMING_CALL = 2076;
1281
1282      PDP_FAIL_CDMA_ALERT_STOP = 2077;
1283
1284      PDP_FAIL_CHANNEL_ACQUISITION_FAILURE = 2078;
1285
1286      PDP_FAIL_MAX_ACCESS_PROBE = 2079;
1287
1288      PDP_FAIL_CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 2080;
1289
1290      PDP_FAIL_NO_RESPONSE_FROM_BASE_STATION = 2081;
1291
1292      PDP_FAIL_REJECTED_BY_BASE_STATION = 2082;
1293
1294      PDP_FAIL_CONCURRENT_SERVICES_INCOMPATIBLE = 2083;
1295
1296      PDP_FAIL_NO_CDMA_SERVICE = 2084;
1297
1298      PDP_FAIL_RUIM_NOT_PRESENT = 2085;
1299
1300      PDP_FAIL_CDMA_RETRY_ORDER = 2086;
1301
1302      PDP_FAIL_ACCESS_BLOCK = 2087;
1303
1304      PDP_FAIL_ACCESS_BLOCK_ALL = 2088;
1305
1306      PDP_FAIL_IS707B_MAX_ACCESS_PROBES = 2089;
1307
1308      PDP_FAIL_THERMAL_EMERGENCY = 2090;
1309
1310      PDP_FAIL_CONCURRENT_SERVICES_NOT_ALLOWED = 2091;
1311
1312      PDP_FAIL_INCOMING_CALL_REJECTED = 2092;
1313
1314      PDP_FAIL_NO_SERVICE_ON_GATEWAY = 2093;
1315
1316      PDP_FAIL_NO_GPRS_CONTEXT = 2094;
1317
1318      PDP_FAIL_ILLEGAL_MS = 2095;
1319
1320      PDP_FAIL_ILLEGAL_ME = 2096;
1321
1322      PDP_FAIL_GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 2097;
1323
1324      PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED = 2098;
1325
1326      PDP_FAIL_MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 2099;
1327
1328      PDP_FAIL_IMPLICITLY_DETACHED = 2100;
1329
1330      PDP_FAIL_PLMN_NOT_ALLOWED = 2101;
1331
1332      PDP_FAIL_LOCATION_AREA_NOT_ALLOWED = 2102;
1333
1334      PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 2103;
1335
1336      PDP_FAIL_PDP_DUPLICATE = 2104;
1337
1338      PDP_FAIL_UE_RAT_CHANGE = 2105;
1339
1340      PDP_FAIL_CONGESTION = 2106;
1341
1342      PDP_FAIL_NO_PDP_CONTEXT_ACTIVATED = 2107;
1343
1344      PDP_FAIL_ACCESS_CLASS_DSAC_REJECTION = 2108;
1345
1346      PDP_FAIL_PDP_ACTIVATE_MAX_RETRY_FAILED = 2109;
1347
1348      PDP_FAIL_RADIO_ACCESS_BEARER_FAILURE = 2110;
1349
1350      PDP_FAIL_ESM_UNKNOWN_EPS_BEARER_CONTEXT = 2111;
1351
1352      PDP_FAIL_DRB_RELEASED_BY_RRC = 2112;
1353
1354      PDP_FAIL_CONNECTION_RELEASED = 2113;
1355
1356      PDP_FAIL_EMM_DETACHED = 2114;
1357
1358      PDP_FAIL_EMM_ATTACH_FAILED = 2115;
1359
1360      PDP_FAIL_EMM_ATTACH_STARTED = 2116;
1361
1362      PDP_FAIL_LTE_NAS_SERVICE_REQUEST_FAILED = 2117;
1363
1364      PDP_FAIL_DUPLICATE_BEARER_ID = 2118;
1365
1366      PDP_FAIL_ESM_COLLISION_SCENARIOS = 2119;
1367
1368      PDP_FAIL_ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 2120;
1369
1370      PDP_FAIL_ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 2121;
1371
1372      PDP_FAIL_ESM_BAD_OTA_MESSAGE = 2122;
1373
1374      PDP_FAIL_ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 2123;
1375
1376      PDP_FAIL_ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 2124;
1377
1378      PDP_FAIL_DS_EXPLICIT_DEACTIVATION = 2125;
1379
1380      PDP_FAIL_ESM_LOCAL_CAUSE_NONE = 2126;
1381
1382      PDP_FAIL_LTE_THROTTLING_NOT_REQUIRED = 2127;
1383
1384      PDP_FAIL_ACCESS_CONTROL_LIST_CHECK_FAILURE = 2128;
1385
1386      PDP_FAIL_SERVICE_NOT_ALLOWED_ON_PLMN = 2129;
1387
1388      PDP_FAIL_EMM_T3417_EXPIRED = 2130;
1389
1390      PDP_FAIL_EMM_T3417_EXT_EXPIRED = 2131;
1391
1392      PDP_FAIL_RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 2132;
1393
1394      PDP_FAIL_RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 2133;
1395
1396      PDP_FAIL_RRC_UPLINK_CONNECTION_RELEASE = 2134;
1397
1398      PDP_FAIL_RRC_UPLINK_RADIO_LINK_FAILURE = 2135;
1399
1400      PDP_FAIL_RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 2136;
1401
1402      PDP_FAIL_RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 2137;
1403
1404      PDP_FAIL_RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 2138;
1405
1406      PDP_FAIL_RRC_CONNECTION_ACCESS_BARRED = 2139;
1407
1408      PDP_FAIL_RRC_CONNECTION_CELL_RESELECTION = 2140;
1409
1410      PDP_FAIL_RRC_CONNECTION_CONFIG_FAILURE = 2141;
1411
1412      PDP_FAIL_RRC_CONNECTION_TIMER_EXPIRED = 2142;
1413
1414      PDP_FAIL_RRC_CONNECTION_LINK_FAILURE = 2143;
1415
1416      PDP_FAIL_RRC_CONNECTION_CELL_NOT_CAMPED = 2144;
1417
1418      PDP_FAIL_RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 2145;
1419
1420      PDP_FAIL_RRC_CONNECTION_REJECT_BY_NETWORK = 2146;
1421
1422      PDP_FAIL_RRC_CONNECTION_NORMAL_RELEASE = 2147;
1423
1424      PDP_FAIL_RRC_CONNECTION_RADIO_LINK_FAILURE = 2148;
1425
1426      PDP_FAIL_RRC_CONNECTION_REESTABLISHMENT_FAILURE = 2149;
1427
1428      PDP_FAIL_RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 2150;
1429
1430      PDP_FAIL_RRC_CONNECTION_ABORT_REQUEST = 2151;
1431
1432      PDP_FAIL_RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 2152;
1433
1434      PDP_FAIL_NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 2153;
1435
1436      PDP_FAIL_NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 2154;
1437
1438      PDP_FAIL_ESM_PROCEDURE_TIME_OUT = 2155;
1439
1440      PDP_FAIL_INVALID_CONNECTION_ID = 2156;
1441
1442      PDP_FAIL_MAXIMIUM_NSAPIS_EXCEEDED = 2157;
1443
1444      PDP_FAIL_INVALID_PRIMARY_NSAPI = 2158;
1445
1446      PDP_FAIL_CANNOT_ENCODE_OTA_MESSAGE = 2159;
1447
1448      PDP_FAIL_RADIO_ACCESS_BEARER_SETUP_FAILURE = 2160;
1449
1450      PDP_FAIL_PDP_ESTABLISH_TIMEOUT_EXPIRED = 2161;
1451
1452      PDP_FAIL_PDP_MODIFY_TIMEOUT_EXPIRED = 2162;
1453
1454      PDP_FAIL_PDP_INACTIVE_TIMEOUT_EXPIRED = 2163;
1455
1456      PDP_FAIL_PDP_LOWERLAYER_ERROR = 2164;
1457
1458      PDP_FAIL_PDP_MODIFY_COLLISION = 2165;
1459
1460      PDP_FAIL_MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 2166;
1461
1462      PDP_FAIL_NAS_REQUEST_REJECTED_BY_NETWORK = 2167;
1463
1464      PDP_FAIL_RRC_CONNECTION_INVALID_REQUEST = 2168;
1465
1466      PDP_FAIL_RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 2169;
1467
1468      PDP_FAIL_RRC_CONNECTION_RF_UNAVAILABLE = 2170;
1469
1470      PDP_FAIL_RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 2171;
1471
1472      PDP_FAIL_RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 2172;
1473
1474      PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 2173;
1475
1476      PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 2174;
1477
1478      PDP_FAIL_RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 2175;
1479
1480      PDP_FAIL_IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 2176;
1481
1482      PDP_FAIL_IMEI_NOT_ACCEPTED = 2177;
1483
1484      PDP_FAIL_EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 2178;
1485
1486      PDP_FAIL_EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 2179;
1487
1488      PDP_FAIL_MSC_TEMPORARILY_NOT_REACHABLE = 2180;
1489
1490      PDP_FAIL_CS_DOMAIN_NOT_AVAILABLE = 2181;
1491
1492      PDP_FAIL_ESM_FAILURE = 2182;
1493
1494      PDP_FAIL_MAC_FAILURE = 2183;
1495
1496      PDP_FAIL_SYNCHRONIZATION_FAILURE = 2184;
1497
1498      PDP_FAIL_UE_SECURITY_CAPABILITIES_MISMATCH = 2185;
1499
1500      PDP_FAIL_SECURITY_MODE_REJECTED = 2186;
1501
1502      PDP_FAIL_UNACCEPTABLE_NON_EPS_AUTHENTICATION = 2187;
1503
1504      PDP_FAIL_CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 2188;
1505
1506      PDP_FAIL_NO_EPS_BEARER_CONTEXT_ACTIVATED = 2189;
1507
1508      PDP_FAIL_INVALID_EMM_STATE = 2190;
1509
1510      PDP_FAIL_NAS_LAYER_FAILURE = 2191;
1511
1512      PDP_FAIL_MULTIPLE_PDP_CALL_NOT_ALLOWED = 2192;
1513
1514      PDP_FAIL_EMBMS_NOT_ENABLED = 2193;
1515
1516      PDP_FAIL_IRAT_HANDOVER_FAILED = 2194;
1517
1518      PDP_FAIL_EMBMS_REGULAR_DEACTIVATION = 2195;
1519
1520      PDP_FAIL_TEST_LOOPBACK_REGULAR_DEACTIVATION = 2196;
1521
1522      PDP_FAIL_LOWER_LAYER_REGISTRATION_FAILURE = 2197;
1523
1524      PDP_FAIL_DATA_PLAN_EXPIRED = 2198;
1525
1526      PDP_FAIL_UMTS_HANDOVER_TO_IWLAN = 2199;
1527
1528      PDP_FAIL_EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 2200;
1529
1530      PDP_FAIL_EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 2201;
1531
1532      PDP_FAIL_EVDO_HDR_CHANGED = 2202;
1533
1534      PDP_FAIL_EVDO_HDR_EXITED = 2203;
1535
1536      PDP_FAIL_EVDO_HDR_NO_SESSION = 2204;
1537
1538      PDP_FAIL_EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 2205;
1539
1540      PDP_FAIL_EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 2206;
1541
1542      PDP_FAIL_FAILED_TO_ACQUIRE_COLOCATED_HDR = 2207;
1543
1544      PDP_FAIL_OTASP_COMMIT_IN_PROGRESS = 2208;
1545
1546      PDP_FAIL_NO_HYBRID_HDR_SERVICE = 2209;
1547
1548      PDP_FAIL_HDR_NO_LOCK_GRANTED = 2210;
1549
1550      PDP_FAIL_DBM_OR_SMS_IN_PROGRESS = 2211;
1551
1552      PDP_FAIL_HDR_FADE = 2212;
1553
1554      PDP_FAIL_HDR_ACCESS_FAILURE = 2213;
1555
1556      PDP_FAIL_UNSUPPORTED_1X_PREV = 2214;
1557
1558      PDP_FAIL_LOCAL_END = 2215;
1559
1560      PDP_FAIL_NO_SERVICE = 2216;
1561
1562      PDP_FAIL_FADE = 2217;
1563
1564      PDP_FAIL_NORMAL_RELEASE = 2218;
1565
1566      PDP_FAIL_ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 2219;
1567
1568      PDP_FAIL_REDIRECTION_OR_HANDOFF_IN_PROGRESS = 2220;
1569
1570      PDP_FAIL_EMERGENCY_MODE = 2221;
1571
1572      PDP_FAIL_PHONE_IN_USE = 2222;
1573
1574      PDP_FAIL_INVALID_MODE = 2223;
1575
1576      PDP_FAIL_INVALID_SIM_STATE = 2224;
1577
1578      PDP_FAIL_NO_COLLOCATED_HDR = 2225;
1579
1580      PDP_FAIL_UE_IS_ENTERING_POWERSAVE_MODE = 2226;
1581
1582      PDP_FAIL_DUAL_SWITCH = 2227;
1583
1584      PDP_FAIL_PPP_TIMEOUT = 2228;
1585
1586      PDP_FAIL_PPP_AUTH_FAILURE = 2229;
1587
1588      PDP_FAIL_PPP_OPTION_MISMATCH = 2230;
1589
1590      PDP_FAIL_PPP_PAP_FAILURE = 2231;
1591
1592      PDP_FAIL_PPP_CHAP_FAILURE = 2232;
1593
1594      PDP_FAIL_PPP_CLOSE_IN_PROGRESS = 2233;
1595
1596      PDP_FAIL_LIMITED_TO_IPV4 = 2234;
1597
1598      PDP_FAIL_LIMITED_TO_IPV6 = 2235;
1599
1600      PDP_FAIL_VSNCP_TIMEOUT = 2236;
1601
1602      PDP_FAIL_VSNCP_GEN_ERROR = 2237;
1603
1604      PDP_FAIL_VSNCP_APN_UNATHORIZED = 2238;
1605
1606      PDP_FAIL_VSNCP_PDN_LIMIT_EXCEEDED = 2239;
1607
1608      PDP_FAIL_VSNCP_NO_PDN_GATEWAY_ADDRESS = 2240;
1609
1610      PDP_FAIL_VSNCP_PDN_GATEWAY_UNREACHABLE = 2241;
1611
1612      PDP_FAIL_VSNCP_PDN_GATEWAY_REJECT = 2242;
1613
1614      PDP_FAIL_VSNCP_INSUFFICIENT_PARAMETERS = 2243;
1615
1616      PDP_FAIL_VSNCP_RESOURCE_UNAVAILABLE = 2244;
1617
1618      PDP_FAIL_VSNCP_ADMINISTRATIVELY_PROHIBITED = 2245;
1619
1620      PDP_FAIL_VSNCP_PDN_ID_IN_USE = 2246;
1621
1622      PDP_FAIL_VSNCP_SUBSCRIBER_LIMITATION = 2247;
1623
1624      PDP_FAIL_VSNCP_PDN_EXISTS_FOR_THIS_APN = 2248;
1625
1626      PDP_FAIL_VSNCP_RECONNECT_NOT_ALLOWED = 2249;
1627
1628      PDP_FAIL_IPV6_PREFIX_UNAVAILABLE = 2250;
1629
1630      PDP_FAIL_HANDOFF_PREFERENCE_CHANGED = 2251;
1631
1632      // Not mentioned in the specification
1633      PDP_FAIL_VOICE_REGISTRATION_FAIL = -1;
1634
1635      PDP_FAIL_DATA_REGISTRATION_FAIL = -2;
1636
1637      // Reasons for data call drop - network/modem disconnect
1638      PDP_FAIL_SIGNAL_LOST = -3;
1639
1640      // Preferred technology has changed, should retry with parameters
1641      // appropriate for new technology
1642      PDP_FAIL_PREF_RADIO_TECH_CHANGED = -4;
1643
1644      // Data call was disconnected because radio was resetting,
1645      // powered off - no retry
1646      PDP_FAIL_RADIO_POWER_OFF = -5;
1647
1648      // Data call was disconnected by modem because tethered mode was up
1649      // on same APN/data profile - no retry until tethered call is off
1650      PDP_FAIL_TETHERED_CALL_ACTIVE = -6;
1651
1652      // retry silently
1653      PDP_FAIL_ERROR_UNSPECIFIED = 65535;
1654    }
1655
1656    // A RIL_DataCallFailCause, 0 which is PDP_FAIL_NONE if no error
1657    optional RilDataCallFailCause status = 1;
1658
1659    // If status != 0, this fields indicates the suggested retry back-off timer
1660    // value RIL wants to override the one pre-configured in FW
1661    optional int32 suggested_retry_time_millis = 2;
1662
1663    optional RilDataCall call = 3;
1664  }
1665
1666  // Carrier Key Change Event.
1667  message CarrierKeyChange {
1668
1669    enum KeyType {
1670
1671      // Key Type Unknown.
1672      UNKNOWN = 0;
1673      // Key Type for WLAN.
1674      WLAN = 1;
1675      // Key Type for EPDG.
1676      EPDG = 2;
1677    }
1678
1679    // Key type of the Encryption key.
1680    optional KeyType key_type = 1;
1681
1682    // Whether the download was successful or not.
1683    optional bool isDownloadSuccessful = 2;
1684  }
1685
1686  // Deactivate packet data connection
1687  message RilDeactivateDataCall {
1688
1689    // Context ID
1690    optional int32 cid = 1;
1691
1692    // Reason for deactivating data call
1693    optional DeactivateReason reason = 2;
1694
1695    // Deactivate data call reasons
1696    enum DeactivateReason {
1697
1698      // Reason is unknown.
1699      DEACTIVATE_REASON_UNKNOWN = 0;
1700
1701      DEACTIVATE_REASON_NONE = 1;
1702
1703      DEACTIVATE_REASON_RADIO_OFF = 2;
1704
1705      DEACTIVATE_REASON_PDP_RESET = 3;
1706
1707      DEACTIVATE_REASON_HANDOVER = 4;
1708    }
1709  }
1710
1711  message ModemRestart {
1712     // The baseband_version is used to identify the particular software version
1713     // where the modem restarts happened
1714     optional string baseband_version = 1;
1715
1716     // Indicates the modem restart reason. The restart reason can be used to
1717     // categorize any modem crashes and group similar crashes together. This
1718     // information will be useful to identify the cause of modem crashes,
1719     // reproduce the issue and confirm that the fix works.
1720     optional string reason = 2;
1721  }
1722
1723  message CarrierIdMatching {
1724
1725    // Carrier id table version number
1726    optional int32 cid_table_version = 1;
1727
1728    // Carrier id matching result object
1729    optional CarrierIdMatchingResult result = 2;
1730  }
1731
1732  message CarrierIdMatchingResult {
1733
1734    // A unique carrier id
1735    optional int32 carrier_id = 1;
1736
1737    // Group id level 1. Logged only if gid1 is configured from subscription
1738    // but its matching rule is unknown
1739    optional string unknown_gid1 = 2;
1740
1741    // MCC and MNC that map to this carrier. Logged only if mccmnc is configured
1742    // from subscription but its matching rule is unknown
1743    optional string unknown_mccmnc = 3;
1744
1745    // MCC and MNC from the subscription that map to this carrier.
1746    optional string mccmnc = 4;
1747
1748    // Group id level 1 from the subscription that map to this carrier.
1749    optional string gid1 = 5;
1750
1751    // Group id level 2 from the subscription that map to this carrier.
1752    optional string gid2 = 6;
1753
1754    // spn from the subscription that map to this carrier.
1755    optional string spn = 7;
1756
1757    // pnn from the subscription that map to this carrier.
1758    optional string pnn = 8;
1759
1760    // iccid prefix from the subscription that map to this carrier.
1761    // only log first 7 outof 20 bit of full iccid
1762    optional string iccid_prefix = 9;
1763
1764    // imsi prefix from the subscription that map to this carrier.
1765    // only log additional 2 bits other than MCC MNC.
1766    optional string imsi_prefix = 10;
1767
1768    // Carrier Privilege Access Rule in hex string from the subscription.
1769    // Sample values: 61ed377e85d386a8dfee6b864bd85b0bfaa5af88
1770    repeated string privilege_access_rule = 11;
1771
1772    // The Access Point Name, corresponding to "apn" field returned by
1773    // "content://telephony/carriers/preferapn" on device.
1774    // Sample values: fast.t-mobile.com, internet. Note only log if this apn is not user edited.
1775    optional string preferApn = 12;
1776  }
1777
1778  message NetworkCapabilitiesInfo {
1779    // Is network unmetered
1780    optional bool is_network_unmetered = 1;
1781  }
1782
1783  // Time when event happened on device, in milliseconds since boot
1784  optional int64 timestamp_millis = 1;
1785
1786  // In Multi-SIM devices this indicates SIM slot
1787  optional int32 phone_id = 2;
1788
1789  // Event type
1790  optional Type type = 3;
1791
1792  // User settings
1793  optional TelephonySettings settings = 4;
1794
1795  // RIL Service State
1796  optional TelephonyServiceState service_state = 5;
1797
1798  // IMS state
1799  optional ImsConnectionState ims_connection_state = 6;
1800
1801  // IMS capabilities
1802  optional ImsCapabilities ims_capabilities = 7;
1803
1804  // List of data calls when changed
1805  repeated RilDataCall data_calls = 8;
1806
1807  // RIL error code
1808  optional RilErrno error = 9;
1809
1810  // Setup data call request
1811  optional RilSetupDataCall setup_data_call = 10;
1812
1813  // Setup data call response
1814  optional RilSetupDataCallResponse setup_data_call_response = 11;
1815
1816  // Deactivate data call request
1817  optional RilDeactivateDataCall deactivate_data_call = 12;
1818
1819  // Data call stall recovery action
1820  optional int32 data_stall_action = 13;
1821
1822  // Modem restart event
1823  optional ModemRestart modem_restart = 14;
1824
1825  // NITZ time in milliseconds (see TelephonyEvent.Type.NITZ_TIME)
1826  optional int64 nitz_timestamp_millis = 15;
1827
1828  // Carrier id matching event
1829  optional CarrierIdMatching carrier_id_matching = 16;
1830
1831  // Carrier key change
1832  optional CarrierKeyChange carrier_key_change = 17;
1833
1834  // Data switch event
1835  optional DataSwitch data_switch = 19;
1836
1837  // For network validate event
1838  optional NetworkValidationState network_validation_state = 20;
1839
1840  // On demand data switch event
1841  optional OnDemandDataSwitch on_demand_data_switch = 21;
1842
1843  // Sim state for each slot.
1844  repeated SimState sim_state = 22;
1845
1846  // The active subscription info for a specific slot.
1847  optional ActiveSubscriptionInfo active_subscription_info = 23;
1848
1849  // The modem state represent by a bitmap, the i-th bit(LSB) indicates the i-th modem
1850  // state (0 - disabled, 1 - enabled).
1851  optional int32 enabled_modem_bitmap = 24;
1852
1853  // Updated Emergency Call info.
1854  optional EmergencyNumberInfo updated_emergency_number = 25;
1855
1856  // NetworkCapabilities changed info.
1857  optional NetworkCapabilitiesInfo network_capabilities = 26;
1858
1859  // Signal strength
1860  optional int32 signal_strength = 27;
1861
1862  // Indicate the version of emergency number database in Android platform
1863  optional int32 emergency_number_database_version = 28;
1864  // [
1865  //  (datapol.semantic_type) = ST_SOFTWARE_ID,
1866  //  (datapol.qualifier) = { is_public: true }
1867  //]
1868
1869  // Radio state for the given phone_id
1870  optional RadioState radio_state = 29;
1871}
1872
1873message ActiveSubscriptionInfo {
1874  /** The slot index which this subscription is associated with. */
1875  optional int32 slot_index = 1;
1876
1877  /** The Carrier id of this subscription. -1 indicates unknown value. */
1878  optional int32 carrier_id = 2;
1879
1880  /** whether subscription is opportunistic (0 - false, 1 - true, -1 - unknown). */
1881  optional int32 is_opportunistic = 3;
1882
1883  /** The mccmnc associated with the subscription. Useful for differentiating
1884   * between subscriptions with different mccmnc but same carrier_id (eg. Fi
1885   * Sprint vs. Fi T-Mobile).*/
1886  optional string sim_mccmnc = 4 /*[
1887    (datapol.semantic_type) = ST_LOCATION,
1888    (datapol.location_qualifier) = { precise_location: false }
1889  ]*/;
1890};
1891
1892enum SimState {
1893  /**
1894   * SIM card is inserted, but the state is unknown. Typically happened when the SIM is inserted
1895   * but not loaded.
1896   */
1897  SIM_STATE_UNKNOWN = 0;
1898
1899  /** No SIM card is inserted in the slot. */
1900  SIM_STATE_ABSENT = 1;
1901
1902  /** SIM card applications have been loaded. */
1903  SIM_STATE_LOADED = 2;
1904};
1905
1906enum TimeInterval {
1907  TI_UNKNOWN = 0;
1908  TI_10_MILLIS = 1;
1909  TI_20_MILLIS = 2;
1910  TI_50_MILLIS = 3;
1911  TI_100_MILLIS = 4;
1912  TI_200_MILLIS = 5;
1913  TI_500_MILLIS = 6;
1914  TI_1_SEC = 7;
1915  TI_2_SEC = 8;
1916  TI_5_SEC = 9;
1917  TI_10_SEC = 10;
1918  TI_30_SEC = 11;
1919  TI_1_MINUTE = 12;
1920  TI_3_MINUTES = 13;
1921  TI_10_MINUTES = 14;
1922  TI_30_MINUTES = 15;
1923  TI_1_HOUR = 16;
1924  TI_2_HOURS = 17;
1925  TI_4_HOURS = 18;
1926  TI_MANY_HOURS = 19;
1927}
1928
1929// Information about CS and/or PS call session.
1930// Session starts when call is placed or accepted and
1931// ends when there are no more active calls.
1932message TelephonyCallSession {
1933
1934  message Event {
1935
1936    enum Type {
1937
1938      // Unknown event
1939      EVENT_UNKNOWN = 0;
1940
1941      // Telephony related user settings changed
1942      SETTINGS_CHANGED = 1;
1943
1944      // Phone state changed
1945      RIL_SERVICE_STATE_CHANGED = 2;
1946
1947      // IMS connected/disconnected
1948      IMS_CONNECTION_STATE_CHANGED = 3;
1949
1950      // IMS Voice, Video and Ut capabilities changed
1951      IMS_CAPABILITIES_CHANGED = 4;
1952
1953      // Notification that new data call has appeared in the list
1954      // or old data call has removed.
1955      DATA_CALL_LIST_CHANGED = 5;
1956
1957      // Send request to RIL
1958      RIL_REQUEST = 6;
1959
1960      // Result of the RIL request
1961      RIL_RESPONSE = 7;
1962
1963      // Ring indication for an incoming call
1964      RIL_CALL_RING = 8;
1965
1966      // Notification that Single Radio Voice Call Continuity(SRVCC)
1967      // progress state has changed.
1968      RIL_CALL_SRVCC = 9;
1969
1970      // Notification that list of calls has changed.
1971      RIL_CALL_LIST_CHANGED = 10;
1972
1973      // Command sent to IMS Service. See ImsCommand.
1974      IMS_COMMAND = 11;
1975
1976      // Command sent to IMS Service. See ImsCommand.
1977      IMS_COMMAND_RECEIVED = 12;
1978
1979      // Command sent to IMS Service. See ImsCommand.
1980      IMS_COMMAND_FAILED = 13;
1981
1982      // Command sent to IMS Service. See ImsCommand.
1983      IMS_COMMAND_COMPLETE = 14;
1984
1985      // Notification about incoming voice call
1986      IMS_CALL_RECEIVE = 15;
1987
1988      // Notification that state of the call has changed
1989      IMS_CALL_STATE_CHANGED = 16;
1990
1991      // Notification about IMS call termination
1992      IMS_CALL_TERMINATED = 17;
1993
1994      // Notification that session access technology has changed
1995      IMS_CALL_HANDOVER = 18;
1996
1997      // Notification that session access technology has changed
1998      IMS_CALL_HANDOVER_FAILED = 19;
1999
2000      // Notification about phone state changed.
2001      PHONE_STATE_CHANGED = 20;
2002
2003      // System time overwritten by NITZ (Network time)
2004      NITZ_TIME = 21;
2005
2006      // Change of audio codec
2007      AUDIO_CODEC = 22;
2008
2009      // Notification that the call quality has changed
2010      CALL_QUALITY_CHANGED = 23;
2011    }
2012
2013    enum RilRequest {
2014
2015      RIL_REQUEST_UNKNOWN = 0;
2016
2017      // Initiate voice call
2018      RIL_REQUEST_DIAL = 1;
2019
2020      // Answer incoming call
2021      RIL_REQUEST_ANSWER = 2;
2022
2023      // Hang up a specific line
2024      RIL_REQUEST_HANGUP = 3;
2025
2026      // Configure current call waiting state
2027      RIL_REQUEST_SET_CALL_WAITING = 4;
2028
2029      RIL_REQUEST_SWITCH_HOLDING_AND_ACTIVE = 5;
2030
2031      // Send FLASH
2032      RIL_REQUEST_CDMA_FLASH = 6;
2033
2034      // Conference holding and active
2035      RIL_REQUEST_CONFERENCE = 7;
2036    }
2037
2038    enum ImsCommand {
2039
2040      // Command is unknown.
2041      IMS_CMD_UNKNOWN = 0;
2042
2043      IMS_CMD_START = 1;
2044
2045      IMS_CMD_ACCEPT = 2;
2046
2047      IMS_CMD_REJECT = 3;
2048
2049      IMS_CMD_TERMINATE = 4;
2050
2051      IMS_CMD_HOLD = 5;
2052
2053      IMS_CMD_RESUME = 6;
2054
2055      IMS_CMD_MERGE = 7;
2056
2057      IMS_CMD_UPDATE = 8;
2058
2059      IMS_CMD_CONFERENCE_EXTEND = 9;
2060
2061      IMS_CMD_INVITE_PARTICIPANT = 10;
2062
2063      IMS_CMD_REMOVE_PARTICIPANT = 11;
2064    }
2065
2066    enum PhoneState {
2067
2068      // State is unknown.
2069      STATE_UNKNOWN = 0;
2070
2071      STATE_IDLE = 1;
2072
2073      STATE_RINGING = 2;
2074
2075      STATE_OFFHOOK = 3;
2076    }
2077
2078    // Telephony call states
2079    enum CallState {
2080
2081      // State is unknown.
2082      CALL_UNKNOWN = 0;
2083
2084      CALL_IDLE = 1;
2085
2086      CALL_ACTIVE = 2;
2087
2088      CALL_HOLDING = 3;
2089
2090      CALL_DIALING = 4;
2091
2092      CALL_ALERTING = 5;
2093
2094      CALL_INCOMING = 6;
2095
2096      CALL_WAITING = 7;
2097
2098      CALL_DISCONNECTED = 8;
2099
2100      CALL_DISCONNECTING = 9;
2101    }
2102
2103    // Audio codecs
2104    enum AudioCodec {
2105
2106      // Unknown codec
2107      AUDIO_CODEC_UNKNOWN = 0;
2108
2109      AUDIO_CODEC_AMR = 1;
2110
2111      AUDIO_CODEC_AMR_WB = 2;
2112
2113      AUDIO_CODEC_QCELP13K = 3;
2114
2115      AUDIO_CODEC_EVRC = 4;
2116
2117      AUDIO_CODEC_EVRC_B = 5;
2118
2119      AUDIO_CODEC_EVRC_WB = 6;
2120
2121      AUDIO_CODEC_EVRC_NW = 7;
2122
2123      AUDIO_CODEC_GSM_EFR = 8;
2124
2125      AUDIO_CODEC_GSM_FR = 9;
2126
2127      AUDIO_CODEC_GSM_HR = 10;
2128
2129      AUDIO_CODEC_G711U = 11;
2130
2131      AUDIO_CODEC_G723 = 12;
2132
2133      AUDIO_CODEC_G711A = 13;
2134
2135      AUDIO_CODEC_G722 = 14;
2136
2137      AUDIO_CODEC_G711AB = 15;
2138
2139      AUDIO_CODEC_G729 = 16;
2140
2141      AUDIO_CODEC_EVS_NB = 17;
2142
2143      AUDIO_CODEC_EVS_WB = 18;
2144
2145      AUDIO_CODEC_EVS_SWB = 19;
2146
2147      AUDIO_CODEC_EVS_FB = 20;
2148    }
2149
2150    // The information about a voice call
2151    message RilCall {
2152
2153      enum Type {
2154
2155        // Scan Type is unknown.
2156        UNKNOWN = 0;
2157
2158        // Mobile originated
2159        MO = 1;
2160
2161        // Mobile terminated
2162        MT = 2;
2163      }
2164
2165      // Connection Index
2166      optional int32 index = 1;
2167
2168      optional CallState state = 2;
2169
2170      optional Type type = 3;
2171
2172      // For possible values for a call end reason check
2173      // frameworks/base/telephony/java/android/telephony/DisconnectCause.java
2174      optional int32 call_end_reason = 4;
2175
2176      // This field is true for Conference Calls
2177      optional bool is_multiparty = 5;
2178
2179      // Detailed cause code for CS Call failures
2180      // frameworks/base/telephony/java/android/telephony/PreciseDisconnectCause.java
2181      optional int32 precise_disconnect_cause = 6;
2182
2183      // Indicate if the call is an emergency call
2184      optional bool is_emergency_call = 7;
2185
2186      // Indicate the emergency call information dialed from the CS call
2187      optional EmergencyNumberInfo emergency_number_info = 8;
2188
2189      // Indicate the version of emergency number database in Android platform
2190      optional int32 emergency_number_database_version = 9;
2191      // [
2192      //  (datapol.semantic_type) = ST_SOFTWARE_ID,
2193      //  (datapol.qualifier) = { is_public: true }
2194      //]
2195    }
2196
2197    // Single Radio Voice Call Continuity(SRVCC) progress state
2198    enum RilSrvccState {
2199
2200      // State is unknown.
2201      HANDOVER_UNKNOWN = 0;
2202
2203      HANDOVER_STARTED = 1;
2204
2205      HANDOVER_COMPLETED = 2;
2206
2207      HANDOVER_FAILED = 3;
2208
2209      HANDOVER_CANCELED = 4;
2210    }
2211
2212    message SignalStrength {
2213
2214      // signal to noise ratio for LTE signal strength
2215      optional int32 lte_snr = 1;
2216
2217      // in the future we may include more measures of signal strength, or
2218      // measurements for other RATs
2219    }
2220
2221    // CallQuality information. (This proto class corresponds to
2222    // android.telephony.CallQuality)
2223    message CallQuality {
2224
2225      enum CallQualityLevel {
2226
2227        // leaving the first value explicitly as unspecified avoids breaking
2228        // clients if the desired default behavior changes
2229        UNDEFINED = 0;
2230
2231        EXCELLENT = 1;
2232
2233        GOOD = 2;
2234
2235        FAIR = 3;
2236
2237        POOR = 4;
2238
2239        BAD = 5;
2240
2241        // this typically indicates a failure in the modem
2242        NOT_AVAILABLE = 6;
2243      }
2244
2245      // the downlink CallQualityLevel for a given ongoing call
2246      optional CallQualityLevel downlink_level = 1;
2247
2248      // the uplink CallQualityLevel for a given ongoing call
2249      optional CallQualityLevel uplink_level = 2;
2250
2251      // the duration of the call, in seconds
2252      optional int32 duration_in_seconds = 3;
2253
2254      // the total number of RTP packets transmitted by this device for an
2255      // ongoing call
2256      optional int32 rtp_packets_transmitted = 4;
2257
2258      // the total number of RTP packets received by this device for an ongoing
2259      // call
2260      optional int32 rtp_packets_received = 5;
2261
2262      // the number of RTP packets which were sent by this device but were lost
2263      // in the network before reaching the other party
2264      optional int32 rtp_packets_transmitted_lost = 6;
2265
2266      // the number of RTP packets which were sent by the other party but were
2267      // lost in the network before reaching this device
2268      optional int32 rtp_packets_not_received = 7;
2269
2270      // the average relative jitter in milliseconds. Jitter represents the
2271      // amount of variance in interarrival time of packets, for example, if two
2272      // packets are sent 2 milliseconds apart but received 3 milliseconds
2273      // apart, the relative jitter between those packets is 1 millisecond.
2274      //
2275      // See RFC 3550 for more information on jitter calculations
2276      optional int32 average_relative_jitter_millis = 8;
2277
2278      // the maximum relative jitter for a given ongoing call. Jitter represents
2279      // the amount of variance in interarrival time of packets, for example, if
2280      // two packets are sent 2 milliseconds apart but received 3 milliseconds
2281      // apart, the relative jitter between those packets is 1 millisecond.
2282      //
2283      // See RFC 3550 for more information on jitter calculations.
2284      optional int32 max_relative_jitter_millis = 9;
2285
2286      // the average round trip time of RTP packets in an ongoing call, in milliseconds
2287      optional int32 average_round_trip_time = 10;
2288
2289      // the codec type of an ongoing call
2290      optional AudioCodec codec_type = 11;
2291
2292      // true if no incoming RTP is received for a continuous duration of 4 seconds
2293      optional bool rtp_inactivity_detected = 12;
2294
2295      // true if only silence RTP packets are received for 20 seconds immediately
2296      // after call is connected
2297      optional bool rx_silence_detected = 13;
2298
2299      // true if only silence RTP packets are sent for 20 seconds immediately
2300      // after call is connected
2301      optional bool tx_silence_detected = 14;
2302
2303      // the number of Voice frames sent by jitter buffer to audio
2304      optional int32 voice_frames = 15;
2305
2306      // the number of NO_DATA frames sent by jitter buffer to audio
2307      optional int32 no_data_frames = 16;
2308
2309      // the number of RTP voice packets dropped by jitter buffer
2310      optional int32 rtp_dropped_packets = 17;
2311
2312      // the minimum playout delay in the reporting interval, in milliseconds
2313      optional int64 min_playout_delay_millis = 18;
2314
2315      // the maximum playout delay in the reporting interval, in milliseconds
2316      optional int64 max_playout_delay_millis = 19;
2317
2318      // the total number of RTP SID packets received by this device
2319      // for an ongoing call
2320      optional int32 rx_rtp_sid_packets = 20;
2321
2322      // the total number of RTP duplicate packets received by this device
2323      // for an ongoing call
2324      optional int32 rtp_duplicate_packets = 21;
2325    }
2326
2327    message CallQualitySummary {
2328
2329      // Total duration of good call quality reported at the end of a call
2330      optional int32 total_good_quality_duration_in_seconds = 1;
2331
2332      // Total duration of bad call quality reported at the end of a call
2333      optional int32 total_bad_quality_duration_in_seconds = 2;
2334
2335      // Total duration of the call for which we have call quality
2336      // information, reported at the end of a call. For example, if an IMS call
2337      // is converted to a CS call, which doesn't report call quality information,
2338      // this value is the duration of the IMS component.
2339      optional int32 total_duration_with_quality_information_in_seconds = 3;
2340
2341      // Snapshot of the CallQuality when signal strength is worst within good
2342      // quality section
2343      optional CallQuality snapshot_of_worst_ss_with_good_quality = 4;
2344
2345      // Snapshot of the CallQuality when signal strength is best within good
2346      // quality section
2347      optional CallQuality snapshot_of_best_ss_with_good_quality = 5;
2348
2349      // Snapshot of the CallQuality when signal strength is worst within bad
2350      // quality section
2351      optional CallQuality snapshot_of_worst_ss_with_bad_quality = 6;
2352
2353      // Snapshot of the CallQuality when signal strength is best within bad
2354      // quality section
2355      optional CallQuality snapshot_of_best_ss_with_bad_quality = 7;
2356
2357      // The worst SignalStrength in any good quality section
2358      optional SignalStrength worst_ss_with_good_quality = 8;
2359
2360      // The best SignalStrength in any good quality section
2361      optional SignalStrength best_ss_with_good_quality = 9;
2362
2363      // The worst SignalStrength in any bad quality section
2364      optional SignalStrength worst_ss_with_bad_quality = 10;
2365
2366      // The best SignalStrength in any bad quality section
2367      optional SignalStrength best_ss_with_bad_quality = 11;
2368
2369      // Snapshot of the CallQuality at the end of a call. This includes
2370      // cumulative statistics like total duration and total RTP packets.
2371      optional CallQuality snapshot_of_end = 12;
2372
2373    }
2374
2375    // Event type
2376    optional Type type = 1;
2377
2378    // Time since previous event
2379    optional TimeInterval delay = 2;
2380
2381    // Settings at the beginning of the session or when changed
2382    optional TelephonySettings settings = 3;
2383
2384    // State at the beginning of the session or when changed
2385    optional TelephonyServiceState service_state = 4;
2386
2387    // State at the beginning of the session or when changed
2388    optional ImsConnectionState ims_connection_state = 5;
2389
2390    // Capabilities at the beginning of the session or when changed
2391    optional ImsCapabilities ims_capabilities = 6;
2392
2393    // List of data calls at the beginning of the session or when changed
2394    repeated RilDataCall data_calls = 7;
2395
2396    // New state
2397    optional PhoneState phone_state = 8;
2398
2399    // New state
2400    optional CallState call_state = 9;
2401
2402    // CS or IMS Voice call index
2403    optional int32 call_index = 10;
2404
2405    // New merged call
2406    optional int32 merged_call_index = 11;
2407
2408    // Active CS Voice calls
2409    repeated RilCall calls = 12;
2410
2411    // RIL error code
2412    optional RilErrno error = 13;
2413
2414    // RIL request
2415    optional RilRequest ril_request = 14;
2416
2417    // Numeric ID
2418    optional int32 ril_request_id = 15;
2419
2420    // New SRVCC state
2421    optional RilSrvccState srvcc_state = 16;
2422
2423    // IMS command
2424    optional ImsCommand ims_command = 17;
2425
2426    // IMS Failure reason
2427    optional ImsReasonInfo reason_info = 18;
2428
2429    // Original access technology
2430    optional RadioAccessTechnology src_access_tech = 19 [default = UNKNOWN];
2431
2432    // New access technology
2433    optional RadioAccessTechnology target_access_tech = 20 [default = UNKNOWN];
2434
2435    // NITZ time in milliseconds
2436    optional int64 nitz_timestamp_millis = 21;
2437
2438    // Audio codec at the beginning of the session or when changed
2439    optional AudioCodec audio_codec = 22;
2440
2441    // Call quality when changed
2442    optional CallQuality call_quality = 23;
2443
2444    // Downlink call quality summary at the end of a call
2445    optional CallQualitySummary call_quality_summary_dl = 24;
2446
2447    // Uplink call quality summary at the end of a call
2448    optional CallQualitySummary call_quality_summary_ul = 25;
2449
2450    // Indicate if it is IMS emergency call
2451    optional bool is_ims_emergency_call = 26;
2452
2453    // Emergency call info
2454    optional EmergencyNumberInfo ims_emergency_number_info = 27;
2455
2456    // Indicate the version of emergency number database in Android platform
2457    optional int32 emergency_number_database_version = 28;
2458    // [
2459    //  (datapol.semantic_type) = ST_SOFTWARE_ID,
2460    //  (datapol.qualifier) = { is_public: true }
2461    //]
2462  }
2463
2464  // Time when call has started, in minutes since epoch,
2465  // with 5 minutes precision
2466  optional int32 start_time_minutes = 1;
2467
2468  // In Multi-SIM devices this indicates SIM slot
2469  optional int32 phone_id = 2;
2470
2471  // List of events happened during the call
2472  repeated Event events = 3;
2473
2474  // Indicating some call events are dropped
2475  optional bool events_dropped = 4;
2476}
2477
2478message SmsSession {
2479
2480  message Event {
2481
2482    enum Type {
2483
2484      // Unknown event
2485      EVENT_UNKNOWN = 0;
2486
2487      // Telephony related user settings changed
2488      SETTINGS_CHANGED = 1;
2489
2490      // Phone state changed
2491      RIL_SERVICE_STATE_CHANGED = 2;
2492
2493      // IMS connected/disconnected
2494      IMS_CONNECTION_STATE_CHANGED = 3;
2495
2496      // IMS Voice, Video and Ut capabilities changed
2497      IMS_CAPABILITIES_CHANGED = 4;
2498
2499      // Notification that new data call has appeared in the list
2500      // or old data call has removed.
2501      DATA_CALL_LIST_CHANGED = 5;
2502
2503      // Send a SMS message over RIL
2504      SMS_SEND = 6;
2505
2506      // Message has been sent to network using RIL
2507      SMS_SEND_RESULT = 7;
2508
2509      // Notification about received SMS using RIL
2510      SMS_RECEIVED = 8;
2511
2512      // CB message received
2513      CB_SMS_RECEIVED = 9;
2514
2515      // Incomplete multipart message received
2516      INCOMPLETE_SMS_RECEIVED = 10;
2517    }
2518
2519    // Formats used to encode SMS messages
2520    enum Format {
2521
2522      // Format is unknown.
2523      SMS_FORMAT_UNKNOWN = 0;
2524
2525      // GSM, WCDMA
2526      SMS_FORMAT_3GPP = 1;
2527
2528      // CDMA
2529      SMS_FORMAT_3GPP2 = 2;
2530    }
2531
2532    enum Tech {
2533      SMS_UNKNOWN = 0;
2534
2535      SMS_GSM = 1;
2536
2537      SMS_CDMA = 2;
2538
2539      SMS_IMS = 3;
2540    }
2541
2542    message CBMessage {
2543      // CB message format
2544      optional Format msg_format = 1;
2545
2546      // CB message priority
2547      optional CBPriority msg_priority = 2;
2548
2549      // Type of CB msg
2550      optional CBMessageType msg_type = 3;
2551
2552      // Service category of CB message
2553      optional int32 service_category = 4;
2554
2555      // Message's serial number
2556      optional int32 serial_number = 5;
2557
2558      // The delivered time (UTC) of the message
2559      optional int64 delivered_timestamp_millis = 6;
2560    }
2561
2562    enum CBMessageType {
2563      // Unknown type
2564      TYPE_UNKNOWN = 0;
2565
2566      // ETWS CB msg
2567      ETWS = 1;
2568
2569      // CMAS CB msg
2570      CMAS = 2;
2571
2572      // CB msg other than ETWS and CMAS
2573      OTHER = 3;
2574    }
2575
2576    enum CBPriority {
2577      // Unknown priority
2578      PRIORITY_UNKNOWN = 0;
2579
2580      // NORMAL priority
2581      NORMAL = 1;
2582
2583      // Interactive priority
2584      INTERACTIVE = 2;
2585
2586      // Urgent priority
2587      URGENT = 3;
2588
2589      // Emergency priority
2590      EMERGENCY = 4;
2591    }
2592
2593    // Types of SMS messages
2594    enum SmsType {
2595
2596      // Normal type
2597      SMS_TYPE_NORMAL = 0;
2598
2599      // SMS-PP.
2600      SMS_TYPE_SMS_PP = 1;
2601
2602      // Voicemail indication
2603      SMS_TYPE_VOICEMAIL_INDICATION = 2;
2604
2605      // Type 0 message (3GPP TS 23.040 9.2.3.9)
2606      SMS_TYPE_ZERO = 3;
2607
2608      // WAP-PUSH message
2609      SMS_TYPE_WAP_PUSH = 4;
2610    }
2611
2612    message IncompleteSms {
2613      // Number of received parts
2614      optional int32 received_parts = 1;
2615
2616      // Number of expected parts
2617      optional int32 total_parts = 2;
2618    }
2619
2620    // Event type
2621    optional Type type = 1;
2622
2623    // Time since previous event
2624    optional TimeInterval delay = 2;
2625
2626    // Settings at the beginning of the session or when changed
2627    optional TelephonySettings settings = 3;
2628
2629    // State at the beginning of the session or when changed
2630    optional TelephonyServiceState service_state = 4;
2631
2632    // State at the beginning of the session or when changed
2633    optional ImsConnectionState ims_connection_state = 5;
2634
2635    // Capabilities at the beginning of the session or when changed
2636    optional ImsCapabilities ims_capabilities = 6;
2637
2638    // List of data calls at the beginning of the session or when changed
2639    repeated RilDataCall data_calls = 7;
2640
2641    // Format of the message
2642    optional Format format = 8;
2643
2644    // Technology used to send/receive SMS
2645    optional Tech tech = 9;
2646
2647    // For outgoing SMS:
2648    //  - See 3GPP 27.005, 3.2.5 for GSM/UMTS,
2649    //  - 3GPP2 N.S0005 (IS-41C) Table 171 for CDMA,
2650    // For incoming SMS of any type:
2651    //  - it is mapped to a SmsManager.RESULT_* code
2652    // SmsManager can be accessed from
2653    // frameworks/base/telephony/java/android/telephony/SmsManager.java
2654    optional int32 error_code = 10;
2655
2656    // RIL error code - Not used.
2657    optional RilErrno error = 11;
2658
2659    // Numeric ID - Used only for outgoing SMS
2660    optional int32 ril_request_id = 12;
2661
2662    // Cellbroadcast message content
2663    optional CBMessage cell_broadcast_message = 13;
2664
2665    // ImsService error code. Used only for outgoing SMS
2666    optional ImsServiceErrno ims_error = 14;
2667
2668    // Details of incoming incomplete multipart SMS
2669    optional IncompleteSms incomplete_sms = 15;
2670
2671    // Indicate the type of incoming SMS
2672    optional SmsType sms_type = 16;
2673
2674    // Indicates if the incoming SMS was blocked
2675    optional bool blocked = 17;
2676
2677    // Optional xMS message unique id
2678    optional int64 message_id = 18;
2679  }
2680
2681  // Time when session has started, in minutes since epoch,
2682  // with 5 minutes precision
2683  optional int32 start_time_minutes = 1;
2684
2685  // In Multi-SIM devices this indicates SIM slot
2686  optional int32 phone_id = 2;
2687
2688  // List of events happened during the call
2689  repeated Event events = 3;
2690
2691  // Indicating some sms session events are dropped
2692  optional bool events_dropped = 4;
2693}
2694
2695// Power stats for modem
2696message ModemPowerStats {
2697
2698  // Duration of log (ms). This is the duration of time device is
2699  // on battery and modem power stats are collected.
2700  optional int64 logging_duration_ms = 1;
2701
2702  // Energy consumed by modem (mAh)
2703  optional double energy_consumed_mah = 2;
2704
2705  // Number of packets sent (tx)
2706  optional int64 num_packets_tx = 3;
2707
2708  // Amount of time kernel is active because of cellular data (ms)
2709  optional int64 cellular_kernel_active_time_ms = 4;
2710
2711  // Amount of time spent in very poor rx signal level (ms)
2712  optional int64 time_in_very_poor_rx_signal_level_ms = 5;
2713
2714  // Amount of time modem is in sleep (ms)
2715  optional int64 sleep_time_ms = 6;
2716
2717  // Amount of time modem is in idle (ms)
2718  optional int64 idle_time_ms = 7;
2719
2720  // Amount of time modem is in rx (ms)
2721  optional int64 rx_time_ms = 8;
2722
2723  // Amount of time modem is in tx (ms)
2724  repeated int64 tx_time_ms = 9;
2725
2726  // Number of bytes sent (tx)
2727  optional int64 num_bytes_tx = 10;
2728
2729  // Number of packets received (rx)
2730  optional int64 num_packets_rx = 11;
2731
2732  // Number of bytes received (rx)
2733  optional int64 num_bytes_rx = 12;
2734
2735  // Amount of time phone spends in various Radio Access Technologies (ms)
2736  repeated int64 time_in_rat_ms = 13;
2737
2738  // Amount of time phone spends in various cellular
2739  // rx signal strength levels (ms)
2740  repeated int64 time_in_rx_signal_strength_level_ms = 14;
2741
2742  // Actual monitored rail energy consumed by modem (mAh)
2743  optional double monitored_rail_energy_consumed_mah = 15;
2744}
2745
2746// Bandwidth estimator stats
2747message BandwidthEstimatorStats {
2748  // Bandwidth stats of each level
2749  message PerLevel {
2750    optional uint32 signal_level = 1;
2751    // Accumulated bandwidth sample count
2752    optional uint32 count = 2;
2753    // Average end-to-end bandwidth in kbps
2754    optional uint32 avg_bw_kbps = 3;
2755    // Normalized error of static BW values in percent
2756    optional uint32 static_bw_error_percent = 4;
2757    // Normalized error of end-to-end BW estimation in percent
2758    optional uint32 bw_est_error_percent = 5;
2759  }
2760
2761  // Bandwidth stats of each RAT
2762  message PerRat {
2763    // radio access technology
2764    optional RadioAccessTechnology rat = 1;
2765    // NR (5g) operation mode
2766    optional NrMode nr_mode = 2;
2767    // bandwidth stats of signal levels
2768    repeated PerLevel per_level = 3;
2769  }
2770
2771  // Tx Stats of visited RATs
2772  repeated PerRat per_rat_tx = 1;
2773  // Rx Stats of visited RATs
2774  repeated PerRat per_rat_rx = 2;
2775}
2776