xref: /aosp_15_r20/hardware/interfaces/radio/1.6/IRadio.hal (revision 4d7e907c777eeecc4c5bd7cf640a754fac206ff7)
1*4d7e907cSAndroid Build Coastguard Worker/*
2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2020 The Android Open Source Project
3*4d7e907cSAndroid Build Coastguard Worker *
4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*4d7e907cSAndroid Build Coastguard Worker *
8*4d7e907cSAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*4d7e907cSAndroid Build Coastguard Worker *
10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License.
15*4d7e907cSAndroid Build Coastguard Worker */
16*4d7e907cSAndroid Build Coastguard Worker
17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected];
18*4d7e907cSAndroid Build Coastguard Worker
19*4d7e907cSAndroid Build Coastguard Worker
20*4d7e907cSAndroid Build Coastguard Workerimport @1.0::CdmaSmsMessage;
21*4d7e907cSAndroid Build Coastguard Workerimport @1.0::Dial;
22*4d7e907cSAndroid Build Coastguard Workerimport @1.0::GsmSmsMessage;
23*4d7e907cSAndroid Build Coastguard Workerimport @1.1::CardPowerState;
24*4d7e907cSAndroid Build Coastguard Workerimport @1.2::DataRequestReason;
25*4d7e907cSAndroid Build Coastguard Workerimport @1.4::EmergencyCallRouting;
26*4d7e907cSAndroid Build Coastguard Workerimport @1.4::EmergencyServiceCategory;
27*4d7e907cSAndroid Build Coastguard Workerimport @1.4::RadioAccessFamily;
28*4d7e907cSAndroid Build Coastguard Workerimport @1.5::IRadio;
29*4d7e907cSAndroid Build Coastguard Workerimport @1.5::AccessNetwork;
30*4d7e907cSAndroid Build Coastguard Workerimport @1.5::DataProfileInfo;
31*4d7e907cSAndroid Build Coastguard Workerimport @1.5::LinkAddress;
32*4d7e907cSAndroid Build Coastguard Worker
33*4d7e907cSAndroid Build Coastguard Worker/**
34*4d7e907cSAndroid Build Coastguard Worker * This interface is used by telephony and telecom to talk to cellular radio.
35*4d7e907cSAndroid Build Coastguard Worker * All the functions have minimum one parameter:
36*4d7e907cSAndroid Build Coastguard Worker * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the
37*4d7e907cSAndroid Build Coastguard Worker * duration of a method call. If clients provide colliding serials (including passing the same
38*4d7e907cSAndroid Build Coastguard Worker * serial to different methods), multiple responses (one for each method call) must still be served.
39*4d7e907cSAndroid Build Coastguard Worker * setResponseFunctions must work with @1.6::IRadioResponse and @1.6::IRadioIndication.
40*4d7e907cSAndroid Build Coastguard Worker */
41*4d7e907cSAndroid Build Coastguard Workerinterface IRadio extends @1.5::IRadio {
42*4d7e907cSAndroid Build Coastguard Worker    /**
43*4d7e907cSAndroid Build Coastguard Worker     * Toggle radio on and off (for "airplane" mode)
44*4d7e907cSAndroid Build Coastguard Worker     * If the radio is turned off/on the radio modem subsystem
45*4d7e907cSAndroid Build Coastguard Worker     * is expected return to an initialized state. For instance,
46*4d7e907cSAndroid Build Coastguard Worker     * any voice and data calls must be terminated and all associated
47*4d7e907cSAndroid Build Coastguard Worker     * lists emptied.
48*4d7e907cSAndroid Build Coastguard Worker     *
49*4d7e907cSAndroid Build Coastguard Worker     * When setting radio power on to exit from airplane mode to place an emergency call on this
50*4d7e907cSAndroid Build Coastguard Worker     * logical modem, powerOn, forEmergencyCall and preferredForEmergencyCall must be true. In
51*4d7e907cSAndroid Build Coastguard Worker     * this case, this modem is optimized to scan only emergency call bands, until:
52*4d7e907cSAndroid Build Coastguard Worker     * 1) Emergency call is completed; or
53*4d7e907cSAndroid Build Coastguard Worker     * 2) Another setRadioPower_1_5 is issued with forEmergencyCall being false or
54*4d7e907cSAndroid Build Coastguard Worker     * preferredForEmergencyCall being false; or
55*4d7e907cSAndroid Build Coastguard Worker     * 3) Timeout after 30 seconds if dial or emergencyDial is not called.
56*4d7e907cSAndroid Build Coastguard Worker     * Once one of these conditions is reached, the modem should move into normal operation.
57*4d7e907cSAndroid Build Coastguard Worker     *
58*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
59*4d7e907cSAndroid Build Coastguard Worker     * @param powerOn To turn on radio -> on = true, to turn off radio -> on = false.
60*4d7e907cSAndroid Build Coastguard Worker     * @param forEmergencyCall To indication to radio if this request is due to emergency call.
61*4d7e907cSAndroid Build Coastguard Worker     *      No effect if powerOn is false.
62*4d7e907cSAndroid Build Coastguard Worker     * @param preferredForEmergencyCall indicate whether the following emergency call will be sent
63*4d7e907cSAndroid Build Coastguard Worker     *      on this modem or not. No effect if forEmergencyCall is false, or powerOn is false.
64*4d7e907cSAndroid Build Coastguard Worker     *
65*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioConfigResponse. setRadioPowerResponse_1_6.
66*4d7e907cSAndroid Build Coastguard Worker
67*4d7e907cSAndroid Build Coastguard Worker     * Note this API is the same as the 1.5
68*4d7e907cSAndroid Build Coastguard Worker     */
69*4d7e907cSAndroid Build Coastguard Worker    oneway setRadioPower_1_6(int32_t serial, bool powerOn, bool forEmergencyCall,
70*4d7e907cSAndroid Build Coastguard Worker            bool preferredForEmergencyCall);
71*4d7e907cSAndroid Build Coastguard Worker
72*4d7e907cSAndroid Build Coastguard Worker    /**
73*4d7e907cSAndroid Build Coastguard Worker     * Returns the data call list. An entry is added when a setupDataCall() is issued and removed
74*4d7e907cSAndroid Build Coastguard Worker     * on a deactivateDataCall(). The list is emptied when setRadioPower()  off/on issued or when
75*4d7e907cSAndroid Build Coastguard Worker     * the vendor HAL or modem crashes.
76*4d7e907cSAndroid Build Coastguard Worker     *
77*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
78*4d7e907cSAndroid Build Coastguard Worker     *
79*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.getDataCallListResponse_1_6()
80*4d7e907cSAndroid Build Coastguard Worker     */
81*4d7e907cSAndroid Build Coastguard Worker    oneway getDataCallList_1_6(int32_t serial);
82*4d7e907cSAndroid Build Coastguard Worker
83*4d7e907cSAndroid Build Coastguard Worker    /**
84*4d7e907cSAndroid Build Coastguard Worker     * Setup a packet data connection. If DataCallResponse.status returns DataCallFailCause:NONE,
85*4d7e907cSAndroid Build Coastguard Worker     * the data connection must be added to data calls and a unsolDataCallListChanged() must be
86*4d7e907cSAndroid Build Coastguard Worker     * sent. The call remains until removed by subsequent unsolDataCallIstChanged(). It may be
87*4d7e907cSAndroid Build Coastguard Worker     * lost due to many factors, including deactivateDataCall() being issued, the radio powered
88*4d7e907cSAndroid Build Coastguard Worker     * off, reception lost or even transient factors like congestion. This data call list is
89*4d7e907cSAndroid Build Coastguard Worker     * returned by getDataCallList() and dataCallListChanged().
90*4d7e907cSAndroid Build Coastguard Worker     *
91*4d7e907cSAndroid Build Coastguard Worker     * The Radio is expected to:
92*4d7e907cSAndroid Build Coastguard Worker     *   - Create one data call context.
93*4d7e907cSAndroid Build Coastguard Worker     *   - Create and configure a dedicated interface for the context.
94*4d7e907cSAndroid Build Coastguard Worker     *   - The interface must be point to point.
95*4d7e907cSAndroid Build Coastguard Worker     *   - The interface is configured with one or more addresses and is capable of sending and
96*4d7e907cSAndroid Build Coastguard Worker     *     receiving packets. The format is IP address with optional "/" prefix length
97*4d7e907cSAndroid Build Coastguard Worker     *     (The format is defined in RFC-4291 section 2.3). For example, "192.0.1.3",
98*4d7e907cSAndroid Build Coastguard Worker     *     "192.0.1.11/16", or "2001:db8::1/64". Typically one IPv4 or one IPv6 or one of each. If
99*4d7e907cSAndroid Build Coastguard Worker     *     the prefix length is absent, then the addresses are assumed to be point to point with
100*4d7e907cSAndroid Build Coastguard Worker     *     IPv4 with prefix length 32 or IPv6 with prefix length 128.
101*4d7e907cSAndroid Build Coastguard Worker     *   - Must not modify routing configuration related to this interface; routing management is
102*4d7e907cSAndroid Build Coastguard Worker     *     exclusively within the purview of the Android OS.
103*4d7e907cSAndroid Build Coastguard Worker     *   - Support simultaneous data call contexts up to DataRegStateResult.maxDataCalls specified
104*4d7e907cSAndroid Build Coastguard Worker     *     in the response of getDataRegistrationState.
105*4d7e907cSAndroid Build Coastguard Worker     *
106*4d7e907cSAndroid Build Coastguard Worker     * The differences relative to the 1.5 version of the API are:
107*4d7e907cSAndroid Build Coastguard Worker     *   - The addition of new parameters pduSessionId, sliceInfo, trafficDescriptor, and
108*4d7e907cSAndroid Build Coastguard Worker     *     matchAllRuleAllowed.
109*4d7e907cSAndroid Build Coastguard Worker     *   - If an existing data call should be used for the request, that must be indicated in the
110*4d7e907cSAndroid Build Coastguard Worker     *     response by setting SetupDataCallResult::cid to the context id of that call.
111*4d7e907cSAndroid Build Coastguard Worker     *
112*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
113*4d7e907cSAndroid Build Coastguard Worker     * @param accessNetwork The access network to setup the data call. If the data connection cannot
114*4d7e907cSAndroid Build Coastguard Worker     *     be established on the specified access network then it should be responded with an error.
115*4d7e907cSAndroid Build Coastguard Worker     * @param dataProfileInfo Data profile info.
116*4d7e907cSAndroid Build Coastguard Worker     * @param roamingAllowed Indicates whether or not data roaming is allowed by the user.
117*4d7e907cSAndroid Build Coastguard Worker     * @param reason The request reason. Must be DataRequestReason:NORMAL or
118*4d7e907cSAndroid Build Coastguard Worker     *     DataRequestReason:HANDOVER.
119*4d7e907cSAndroid Build Coastguard Worker     * @param addresses If the reason is DataRequestReason:HANDOVER, this indicates the list of link
120*4d7e907cSAndroid Build Coastguard Worker     *     addresses of the existing data connection. This parameter must be ignored unless reason
121*4d7e907cSAndroid Build Coastguard Worker     *     is DataRequestReason:HANDOVER.
122*4d7e907cSAndroid Build Coastguard Worker     * @param dnses If the reason is DataRequestReason:HANDOVER, this indicates the list of DNS
123*4d7e907cSAndroid Build Coastguard Worker     *     addresses of the existing data connection. The format is defined in RFC-4291 section 2.2.
124*4d7e907cSAndroid Build Coastguard Worker     *     For example, "192.0.1.3" or "2001:db8::1". This parameter must be ignored unless reason
125*4d7e907cSAndroid Build Coastguard Worker     *     is DataRequestReason:HANDOVER.
126*4d7e907cSAndroid Build Coastguard Worker     * @param pduSessionId The pdu session id to be used for this data call.  A value of 0 means
127*4d7e907cSAndroid Build Coastguard Worker     *     no pdu session id was attached to this call.
128*4d7e907cSAndroid Build Coastguard Worker     *     Reference: 3GPP TS 24.007 section 11.2.3.1b
129*4d7e907cSAndroid Build Coastguard Worker     * @param sliceInfo SliceInfo to be used for the data connection when a handover occurs from
130*4d7e907cSAndroid Build Coastguard Worker     *     EPDG to 5G.  It is valid only when accessNetwork is AccessNetwork:NGRAN.  If the slice
131*4d7e907cSAndroid Build Coastguard Worker     *     passed from EPDG is rejected, then the data failure cause must be
132*4d7e907cSAndroid Build Coastguard Worker     *     DataCallFailCause:SLICE_REJECTED.
133*4d7e907cSAndroid Build Coastguard Worker     * @param trafficDescriptor TrafficDescriptor for which data connection needs to be
134*4d7e907cSAndroid Build Coastguard Worker     *     established. It is used for URSP traffic matching as described in TS 24.526
135*4d7e907cSAndroid Build Coastguard Worker     *     Section 4.2.2. It includes an optional DNN which, if present, must be used for traffic
136*4d7e907cSAndroid Build Coastguard Worker     *     matching -- it does not specify the end point to be used for the data call. The end
137*4d7e907cSAndroid Build Coastguard Worker     *     point is specified by DataProfileInfo.apn; DataProfileInfo.apn must be used as the end
138*4d7e907cSAndroid Build Coastguard Worker     *     point if one is not specified through URSP rules.
139*4d7e907cSAndroid Build Coastguard Worker     * @param matchAllRuleAllowed bool to indicate if using default match-all URSP rule for this
140*4d7e907cSAndroid Build Coastguard Worker     *     request is allowed. If false, this request must not use the match-all URSP rule and if
141*4d7e907cSAndroid Build Coastguard Worker     *     a non-match-all rule is not found (or if URSP rules are not available) it should return
142*4d7e907cSAndroid Build Coastguard Worker     *     failure with cause DataCallFailCause:MATCH_ALL_RULE_NOT_ALLOWED. This is needed as some
143*4d7e907cSAndroid Build Coastguard Worker     *     requests need to have a hard failure if the intention cannot be met, for example, a
144*4d7e907cSAndroid Build Coastguard Worker     *     zero-rating slice.
145*4d7e907cSAndroid Build Coastguard Worker     *
146*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.setupDataCallResponse_1_6()
147*4d7e907cSAndroid Build Coastguard Worker     *
148*4d7e907cSAndroid Build Coastguard Worker     */
149*4d7e907cSAndroid Build Coastguard Worker    oneway setupDataCall_1_6(int32_t serial, AccessNetwork accessNetwork,
150*4d7e907cSAndroid Build Coastguard Worker            DataProfileInfo dataProfileInfo, bool roamingAllowed,
151*4d7e907cSAndroid Build Coastguard Worker            DataRequestReason reason, vec<LinkAddress> addresses, vec<string> dnses,
152*4d7e907cSAndroid Build Coastguard Worker            int32_t pduSessionId, OptionalSliceInfo sliceInfo,
153*4d7e907cSAndroid Build Coastguard Worker            OptionalTrafficDescriptor trafficDescriptor, bool matchAllRuleAllowed);
154*4d7e907cSAndroid Build Coastguard Worker
155*4d7e907cSAndroid Build Coastguard Worker    /**
156*4d7e907cSAndroid Build Coastguard Worker     * Send an SMS message
157*4d7e907cSAndroid Build Coastguard Worker     *
158*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
159*4d7e907cSAndroid Build Coastguard Worker     * @param message GsmSmsMessage as defined in types.hal
160*4d7e907cSAndroid Build Coastguard Worker     *
161*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.sendSmsResponse_1_6()
162*4d7e907cSAndroid Build Coastguard Worker     *
163*4d7e907cSAndroid Build Coastguard Worker     * Note this API is the same as the 1.0
164*4d7e907cSAndroid Build Coastguard Worker     *
165*4d7e907cSAndroid Build Coastguard Worker     * Based on the return error, caller decides to resend if sending sms
166*4d7e907cSAndroid Build Coastguard Worker     * fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
167*4d7e907cSAndroid Build Coastguard Worker     * and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500)
168*4d7e907cSAndroid Build Coastguard Worker     */
169*4d7e907cSAndroid Build Coastguard Worker    oneway sendSms_1_6(int32_t serial, GsmSmsMessage message);
170*4d7e907cSAndroid Build Coastguard Worker
171*4d7e907cSAndroid Build Coastguard Worker    /**
172*4d7e907cSAndroid Build Coastguard Worker     * Send an SMS message. Identical to sendSms_1_6,
173*4d7e907cSAndroid Build Coastguard Worker     * except that more messages are expected to be sent soon. If possible,
174*4d7e907cSAndroid Build Coastguard Worker     * keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command)
175*4d7e907cSAndroid Build Coastguard Worker     *
176*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
177*4d7e907cSAndroid Build Coastguard Worker     * @param message GsmSmsMessage as defined in types.hal
178*4d7e907cSAndroid Build Coastguard Worker     *
179*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.sendSmsExpectMoreResponse_1_6()
180*4d7e907cSAndroid Build Coastguard Worker     *
181*4d7e907cSAndroid Build Coastguard Worker     * Note this API is the same as the 1.0
182*4d7e907cSAndroid Build Coastguard Worker     *
183*4d7e907cSAndroid Build Coastguard Worker     * Based on the return error, caller decides to resend if sending sms
184*4d7e907cSAndroid Build Coastguard Worker     * fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
185*4d7e907cSAndroid Build Coastguard Worker     * and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500)
186*4d7e907cSAndroid Build Coastguard Worker     */
187*4d7e907cSAndroid Build Coastguard Worker    oneway sendSmsExpectMore_1_6(int32_t serial, GsmSmsMessage message);
188*4d7e907cSAndroid Build Coastguard Worker
189*4d7e907cSAndroid Build Coastguard Worker    /**
190*4d7e907cSAndroid Build Coastguard Worker     * Send a CDMA SMS message
191*4d7e907cSAndroid Build Coastguard Worker     *
192*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
193*4d7e907cSAndroid Build Coastguard Worker     * @param sms Cdma Sms to be sent described by CdmaSmsMessage in types.hal
194*4d7e907cSAndroid Build Coastguard Worker     *
195*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.sendCdmaSmsResponse_1_6()
196*4d7e907cSAndroid Build Coastguard Worker     *
197*4d7e907cSAndroid Build Coastguard Worker     * Note this API is the same as the 1.0
198*4d7e907cSAndroid Build Coastguard Worker     *
199*4d7e907cSAndroid Build Coastguard Worker     */
200*4d7e907cSAndroid Build Coastguard Worker    oneway sendCdmaSms_1_6(int32_t serial, CdmaSmsMessage sms);
201*4d7e907cSAndroid Build Coastguard Worker
202*4d7e907cSAndroid Build Coastguard Worker    /**
203*4d7e907cSAndroid Build Coastguard Worker     * Send an SMS message. Identical to sendCdmaSms_1_6,
204*4d7e907cSAndroid Build Coastguard Worker     * except that more messages are expected to be sent soon.
205*4d7e907cSAndroid Build Coastguard Worker     *
206*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
207*4d7e907cSAndroid Build Coastguard Worker     * @param sms Cdma Sms to be sent described by CdmaSmsMessage in types.hal
208*4d7e907cSAndroid Build Coastguard Worker     *
209*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.sendCdmaSMSExpectMoreResponse_1_6()
210*4d7e907cSAndroid Build Coastguard Worker     *
211*4d7e907cSAndroid Build Coastguard Worker     * Note this API is the same as the 1.5
212*4d7e907cSAndroid Build Coastguard Worker     *
213*4d7e907cSAndroid Build Coastguard Worker     */
214*4d7e907cSAndroid Build Coastguard Worker    oneway sendCdmaSmsExpectMore_1_6(int32_t serial, CdmaSmsMessage sms);
215*4d7e907cSAndroid Build Coastguard Worker
216*4d7e907cSAndroid Build Coastguard Worker    /**
217*4d7e907cSAndroid Build Coastguard Worker     * Set SIM card power state.
218*4d7e907cSAndroid Build Coastguard Worker     * Request is used to power off or power on the card. It should not generate
219*4d7e907cSAndroid Build Coastguard Worker     * a CardState.CARDSTATE_ABSENT indication, since the SIM is still physically
220*4d7e907cSAndroid Build Coastguard Worker     * inserted.
221*4d7e907cSAndroid Build Coastguard Worker     *
222*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request
223*4d7e907cSAndroid Build Coastguard Worker     * @param powerUp POWER_DOWN if powering down the SIM card,
224*4d7e907cSAndroid Build Coastguard Worker     *                POWER_UP if powering up the SIM card,
225*4d7e907cSAndroid Build Coastguard Worker     *                POWER_UP_PASS_THROUGH if powering up the SIM card in
226*4d7e907cSAndroid Build Coastguard Worker     *                                      pass through mode.
227*4d7e907cSAndroid Build Coastguard Worker     *
228*4d7e907cSAndroid Build Coastguard Worker     * When SIM card is in POWER_UP_PASS_THROUGH, the modem does not send
229*4d7e907cSAndroid Build Coastguard Worker     * any command to it (for example SELECT of MF, or TERMINAL
230*4d7e907cSAndroid Build Coastguard Worker     * CAPABILITY), and the SIM card is controlled completely by Telephony
231*4d7e907cSAndroid Build Coastguard Worker     * sending APDUs directly. The SIM card state must be
232*4d7e907cSAndroid Build Coastguard Worker     * RIL_CARDSTATE_PRESENT and the number of card apps will be 0.
233*4d7e907cSAndroid Build Coastguard Worker     * No new error code is generated. Emergency calls are supported in
234*4d7e907cSAndroid Build Coastguard Worker     * the same way as if the SIM card is absent.
235*4d7e907cSAndroid Build Coastguard Worker     * Pass-through mode is valid only for the specific card session where
236*4d7e907cSAndroid Build Coastguard Worker     * it is activated, and normal behavior occurs at the next SIM
237*4d7e907cSAndroid Build Coastguard Worker     * initialization, unless POWER_UP_PASS_THROUGH is requested again.
238*4d7e907cSAndroid Build Coastguard Worker     *
239*4d7e907cSAndroid Build Coastguard Worker     * The device is required to power down the SIM card before it can
240*4d7e907cSAndroid Build Coastguard Worker     * switch the mode between POWER_UP and POWER_UP_PASS_THROUGH.
241*4d7e907cSAndroid Build Coastguard Worker     * At device power up, the SIM interface is powered up automatically.
242*4d7e907cSAndroid Build Coastguard Worker     * Each subsequent request to this method is processed only after the
243*4d7e907cSAndroid Build Coastguard Worker     * completion of the previous one.
244*4d7e907cSAndroid Build Coastguard Worker     *
245*4d7e907cSAndroid Build Coastguard Worker     * When the SIM is in POWER_DOWN, the modem should send an empty vector of
246*4d7e907cSAndroid Build Coastguard Worker     * AppStatus in CardStatus.applications. If a SIM in the POWER_DOWN state
247*4d7e907cSAndroid Build Coastguard Worker     * is removed and a new SIM is inserted, the new SIM should be in POWER_UP
248*4d7e907cSAndroid Build Coastguard Worker     * mode by default. If the device is turned off or restarted while the SIM
249*4d7e907cSAndroid Build Coastguard Worker     * is in POWER_DOWN, then the SIM should turn on normally in POWER_UP mode
250*4d7e907cSAndroid Build Coastguard Worker     * when the device turns back on.
251*4d7e907cSAndroid Build Coastguard Worker     *
252*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.setSimCardPowerResponse_1_6().
253*4d7e907cSAndroid Build Coastguard Worker     * Note that this differs from setSimCardPower_1_1 in that the response
254*4d7e907cSAndroid Build Coastguard Worker     * callback should only be sent once the device has finished executing
255*4d7e907cSAndroid Build Coastguard Worker     * the request (the SIM has finished powering on or off).
256*4d7e907cSAndroid Build Coastguard Worker     */
257*4d7e907cSAndroid Build Coastguard Worker    oneway setSimCardPower_1_6(int32_t serial, CardPowerState powerUp);
258*4d7e907cSAndroid Build Coastguard Worker
259*4d7e907cSAndroid Build Coastguard Worker    /**
260*4d7e907cSAndroid Build Coastguard Worker     * Enable or disable E-UTRA-NR dual connectivity. If disabled then UE will not connect
261*4d7e907cSAndroid Build Coastguard Worker     * to secondary carrier.
262*4d7e907cSAndroid Build Coastguard Worker     *
263*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
264*4d7e907cSAndroid Build Coastguard Worker     * @param nrDualConnectivityState expected NR dual connectivity state.
265*4d7e907cSAndroid Build Coastguard Worker     * 1. Enable NR dual connectivity {NrDualConnectivityState:ENABLE}
266*4d7e907cSAndroid Build Coastguard Worker     * 2. Disable NR dual connectivity {NrDualConnectivityState:DISABLE}
267*4d7e907cSAndroid Build Coastguard Worker     * 3. Disable NR dual connectivity and force secondary cell to be released
268*4d7e907cSAndroid Build Coastguard Worker     * {NrDualConnectivityState:DISABLE_IMMEDIATE}
269*4d7e907cSAndroid Build Coastguard Worker     *
270*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.setNRDualConnectivityStateResponse()
271*4d7e907cSAndroid Build Coastguard Worker     */
272*4d7e907cSAndroid Build Coastguard Worker    oneway setNrDualConnectivityState(int32_t serial,
273*4d7e907cSAndroid Build Coastguard Worker            NrDualConnectivityState nrDualConnectivityState);
274*4d7e907cSAndroid Build Coastguard Worker
275*4d7e907cSAndroid Build Coastguard Worker    /**
276*4d7e907cSAndroid Build Coastguard Worker     * Is E-UTRA-NR Dual Connectivity enabled
277*4d7e907cSAndroid Build Coastguard Worker     *
278*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
279*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.isNRDualConnectivityEnabledResponse()
280*4d7e907cSAndroid Build Coastguard Worker     */
281*4d7e907cSAndroid Build Coastguard Worker    oneway isNrDualConnectivityEnabled(int32_t serial);
282*4d7e907cSAndroid Build Coastguard Worker
283*4d7e907cSAndroid Build Coastguard Worker    /**
284*4d7e907cSAndroid Build Coastguard Worker     * Reserves an unallocated pdu session id from the pool of ids.
285*4d7e907cSAndroid Build Coastguard Worker     *
286*4d7e907cSAndroid Build Coastguard Worker     * The allocated id is returned in the response.
287*4d7e907cSAndroid Build Coastguard Worker     *
288*4d7e907cSAndroid Build Coastguard Worker     * When the id is no longer needed, call releasePduSessionId to
289*4d7e907cSAndroid Build Coastguard Worker     * return it to the pool.
290*4d7e907cSAndroid Build Coastguard Worker     *
291*4d7e907cSAndroid Build Coastguard Worker     * Reference: 3GPP TS 24.007 section 11.2.3.1b
292*4d7e907cSAndroid Build Coastguard Worker     *
293*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
294*4d7e907cSAndroid Build Coastguard Worker     *
295*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.allocatePduSessionIdResponse()
296*4d7e907cSAndroid Build Coastguard Worker     */
297*4d7e907cSAndroid Build Coastguard Worker    oneway allocatePduSessionId(int32_t serial);
298*4d7e907cSAndroid Build Coastguard Worker
299*4d7e907cSAndroid Build Coastguard Worker    /**
300*4d7e907cSAndroid Build Coastguard Worker     * Releases a pdu session id that was previously allocated using
301*4d7e907cSAndroid Build Coastguard Worker     * allocatePduSessionId.
302*4d7e907cSAndroid Build Coastguard Worker     *
303*4d7e907cSAndroid Build Coastguard Worker     * Reference: 3GPP TS 24.007 section 11.2.3.1b
304*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
305*4d7e907cSAndroid Build Coastguard Worker     * @param id Pdu session id to release.
306*4d7e907cSAndroid Build Coastguard Worker     *
307*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.releasePduSessionIdResponse()
308*4d7e907cSAndroid Build Coastguard Worker     */
309*4d7e907cSAndroid Build Coastguard Worker    oneway releasePduSessionId(int32_t serial, int32_t id);
310*4d7e907cSAndroid Build Coastguard Worker
311*4d7e907cSAndroid Build Coastguard Worker    /**
312*4d7e907cSAndroid Build Coastguard Worker     * Indicates that a handover to the IWLAN transport has begun.
313*4d7e907cSAndroid Build Coastguard Worker     *
314*4d7e907cSAndroid Build Coastguard Worker     * Any resources being transferred to the IWlan transport cannot be released while a
315*4d7e907cSAndroid Build Coastguard Worker     * handover is underway. For example, if a pdu session id needs to be
316*4d7e907cSAndroid Build Coastguard Worker     * transferred to IWlan, then, the modem should not release the id while
317*4d7e907cSAndroid Build Coastguard Worker     * the handover is in progress.
318*4d7e907cSAndroid Build Coastguard Worker     *
319*4d7e907cSAndroid Build Coastguard Worker     * If a handover was unsuccessful, then the framework calls IRadio::cancelHandover.
320*4d7e907cSAndroid Build Coastguard Worker     * The modem retains ownership over any of the resources being transferred to IWlan.
321*4d7e907cSAndroid Build Coastguard Worker     *
322*4d7e907cSAndroid Build Coastguard Worker     * If a handover was successful, the framework calls IRadio::deactivateDataCall with reason
323*4d7e907cSAndroid Build Coastguard Worker     * HANDOVER. The IWlan transport now owns the transferred resources and is responsible for
324*4d7e907cSAndroid Build Coastguard Worker     * releasing them.
325*4d7e907cSAndroid Build Coastguard Worker     *
326*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
327*4d7e907cSAndroid Build Coastguard Worker     * @param id callId The identifier of the data call which is provided in SetupDataCallResult
328*4d7e907cSAndroid Build Coastguard Worker     *
329*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.startHandoverResponse()
330*4d7e907cSAndroid Build Coastguard Worker     */
331*4d7e907cSAndroid Build Coastguard Worker    oneway startHandover(int32_t serial, int32_t callId);
332*4d7e907cSAndroid Build Coastguard Worker
333*4d7e907cSAndroid Build Coastguard Worker    /**
334*4d7e907cSAndroid Build Coastguard Worker     * Indicates that a handover was cancelled after a call to IRadio::startHandover.
335*4d7e907cSAndroid Build Coastguard Worker     *
336*4d7e907cSAndroid Build Coastguard Worker     * Since the handover was unsuccessful, the modem retains ownership over any of the resources
337*4d7e907cSAndroid Build Coastguard Worker     * being transferred and is still responsible for releasing them.
338*4d7e907cSAndroid Build Coastguard Worker     *
339*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
340*4d7e907cSAndroid Build Coastguard Worker     * @param id callId The identifier of the data call which is provided in SetupDataCallResult
341*4d7e907cSAndroid Build Coastguard Worker     *
342*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.cancelHandoverResponse()
343*4d7e907cSAndroid Build Coastguard Worker     */
344*4d7e907cSAndroid Build Coastguard Worker    oneway cancelHandover(int32_t serial, int32_t callId);
345*4d7e907cSAndroid Build Coastguard Worker
346*4d7e907cSAndroid Build Coastguard Worker    /**
347*4d7e907cSAndroid Build Coastguard Worker     * Requests to set the network type for searching and registering.
348*4d7e907cSAndroid Build Coastguard Worker     *
349*4d7e907cSAndroid Build Coastguard Worker     * Instruct the radio to *only* accept the types of network provided.
350*4d7e907cSAndroid Build Coastguard Worker     * setPreferredNetworkType, setPreferredNetworkTypesBitmap will not be called anymore
351*4d7e907cSAndroid Build Coastguard Worker     * except for IRadio v1.5 or older devices.
352*4d7e907cSAndroid Build Coastguard Worker     *
353*4d7e907cSAndroid Build Coastguard Worker     * In case of an emergency call, the modem is authorized to bypass this
354*4d7e907cSAndroid Build Coastguard Worker     * restriction.
355*4d7e907cSAndroid Build Coastguard Worker     *
356*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
357*4d7e907cSAndroid Build Coastguard Worker     * @param networkTypeBitmap a 32-bit bearer bitmap of RadioAccessFamily
358*4d7e907cSAndroid Build Coastguard Worker     *
359*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.setAllowedNetworkTypesBitmapResponse()
360*4d7e907cSAndroid Build Coastguard Worker     */
361*4d7e907cSAndroid Build Coastguard Worker    oneway setAllowedNetworkTypesBitmap(
362*4d7e907cSAndroid Build Coastguard Worker            uint32_t serial, bitfield<RadioAccessFamily> networkTypeBitmap);
363*4d7e907cSAndroid Build Coastguard Worker
364*4d7e907cSAndroid Build Coastguard Worker    /**
365*4d7e907cSAndroid Build Coastguard Worker     * Requests bitmap representing the currently allowed network types.
366*4d7e907cSAndroid Build Coastguard Worker     *
367*4d7e907cSAndroid Build Coastguard Worker     * getPreferredNetworkType, getPreferredNetworkTypesBitmap will not be called anymore
368*4d7e907cSAndroid Build Coastguard Worker     * except for IRadio v1.5 or older devices.
369*4d7e907cSAndroid Build Coastguard Worker     *
370*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
371*4d7e907cSAndroid Build Coastguard Worker     *
372*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.getAllowedNetworkTypesBitmapResponse()
373*4d7e907cSAndroid Build Coastguard Worker     */
374*4d7e907cSAndroid Build Coastguard Worker    oneway getAllowedNetworkTypesBitmap(int32_t serial);
375*4d7e907cSAndroid Build Coastguard Worker
376*4d7e907cSAndroid Build Coastguard Worker    /**
377*4d7e907cSAndroid Build Coastguard Worker     * Control data throttling at modem.
378*4d7e907cSAndroid Build Coastguard Worker     *   - DataThrottlingAction:NO_DATA_THROTTLING should clear any existing
379*4d7e907cSAndroid Build Coastguard Worker     *     data throttling within the requested completion window.
380*4d7e907cSAndroid Build Coastguard Worker     *   - DataThrottlingAction:THROTTLE_SECONDARY_CARRIER: Remove any existing
381*4d7e907cSAndroid Build Coastguard Worker     *     throttling on anchor carrier and achieve maximum data throttling on
382*4d7e907cSAndroid Build Coastguard Worker     *     secondary carrier within the requested completion window.
383*4d7e907cSAndroid Build Coastguard Worker     *   - DataThrottlingAction:THROTTLE_ANCHOR_CARRIER: disable secondary
384*4d7e907cSAndroid Build Coastguard Worker     *     carrier and achieve maximum data throttling on anchor carrier by
385*4d7e907cSAndroid Build Coastguard Worker     *     requested completion window.
386*4d7e907cSAndroid Build Coastguard Worker     *   - DataThrottlingAction:HOLD: Immediately hold on to current level of
387*4d7e907cSAndroid Build Coastguard Worker     *     throttling.
388*4d7e907cSAndroid Build Coastguard Worker     *
389*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
390*4d7e907cSAndroid Build Coastguard Worker     * @param dataThrottlingAction DataThrottlingAction as defined in types.hal
391*4d7e907cSAndroid Build Coastguard Worker     * @param completionDurationMillis window, in milliseconds, in which the
392*4d7e907cSAndroid Build Coastguard Worker     *     requested throttling action has to be achieved. This must be 0 when
393*4d7e907cSAndroid Build Coastguard Worker     *     dataThrottlingAction is DataThrottlingAction:HOLD.
394*4d7e907cSAndroid Build Coastguard Worker     *
395*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.setDataThrottlingResponse()
396*4d7e907cSAndroid Build Coastguard Worker     */
397*4d7e907cSAndroid Build Coastguard Worker    oneway setDataThrottling(int32_t serial,
398*4d7e907cSAndroid Build Coastguard Worker            DataThrottlingAction dataThrottlingAction,
399*4d7e907cSAndroid Build Coastguard Worker            int64_t completionDurationMillis);
400*4d7e907cSAndroid Build Coastguard Worker
401*4d7e907cSAndroid Build Coastguard Worker    /**
402*4d7e907cSAndroid Build Coastguard Worker     * Initiate emergency voice call, with zero or more emergency service category(s), zero or
403*4d7e907cSAndroid Build Coastguard Worker     * more emergency Uniform Resource Names (URN), and routing information for handling the call.
404*4d7e907cSAndroid Build Coastguard Worker     * Android uses this request to make its emergency call instead of using @1.0::IRadio.dial
405*4d7e907cSAndroid Build Coastguard Worker     * if the 'address' in the 'dialInfo' field is identified as an emergency number by Android.
406*4d7e907cSAndroid Build Coastguard Worker     *
407*4d7e907cSAndroid Build Coastguard Worker     * In multi-sim scenario, if the emergency number is from a specific subscription, this radio
408*4d7e907cSAndroid Build Coastguard Worker     * request can still be sent out on the other subscription as long as routing is set to
409*4d7e907cSAndroid Build Coastguard Worker     * @1.4::EmergencyNumberRouting#EMERGENCY. This radio request will not be sent on an inactive
410*4d7e907cSAndroid Build Coastguard Worker     * (PIN/PUK locked) subscription unless both subscriptions are PIN/PUK locked. In this case,
411*4d7e907cSAndroid Build Coastguard Worker     * the request will be sent on the primary subscription.
412*4d7e907cSAndroid Build Coastguard Worker     *
413*4d7e907cSAndroid Build Coastguard Worker     * Some countries or carriers require some emergency numbers that must be handled with normal
414*4d7e907cSAndroid Build Coastguard Worker     * call routing if possible or emergency routing. 1) if the 'routing' field is specified as
415*4d7e907cSAndroid Build Coastguard Worker     * @1.4::EmergencyNumberRouting#NORMAL, the implementation must try the full radio service to
416*4d7e907cSAndroid Build Coastguard Worker     * use normal call routing to handle the call; if service cannot support normal routing, the
417*4d7e907cSAndroid Build Coastguard Worker     * implementation must use emergency routing to handle the call. 2) if 'routing' is specified
418*4d7e907cSAndroid Build Coastguard Worker     * as @1.4::EmergencyNumberRouting#EMERGENCY, the implementation must use emergency routing to
419*4d7e907cSAndroid Build Coastguard Worker     * handle the call. 3) if 'routing' is specified as @1.4::EmergencyNumberRouting#UNKNOWN,
420*4d7e907cSAndroid Build Coastguard Worker     * Android does not know how to handle the call.
421*4d7e907cSAndroid Build Coastguard Worker     *
422*4d7e907cSAndroid Build Coastguard Worker     * If the dialed emergency number does not have a specified emergency service category, the
423*4d7e907cSAndroid Build Coastguard Worker     * 'categories' field is set to @1.4::EmergencyServiceCategory#UNSPECIFIED; if the dialed
424*4d7e907cSAndroid Build Coastguard Worker     * emergency number does not have specified emergency Uniform Resource Names, the 'urns' field
425*4d7e907cSAndroid Build Coastguard Worker     * is set to an empty list. If the underlying technology used to request emergency services
426*4d7e907cSAndroid Build Coastguard Worker     * does not support the emergency service category or emergency uniform resource names, the
427*4d7e907cSAndroid Build Coastguard Worker     * field 'categories' or 'urns' may be ignored.
428*4d7e907cSAndroid Build Coastguard Worker     *
429*4d7e907cSAndroid Build Coastguard Worker     * In the scenarios that the 'address' in the 'dialInfo' field has other functions besides the
430*4d7e907cSAndroid Build Coastguard Worker     * emergency number function, if the 'hasKnownUserIntentEmergency' field is true, the user's
431*4d7e907cSAndroid Build Coastguard Worker     * intent for this dial request is emergency call, and the modem must treat this as an actual
432*4d7e907cSAndroid Build Coastguard Worker     * emergency dial; if the 'hasKnownUserIntentEmergency' field is false, Android does not know
433*4d7e907cSAndroid Build Coastguard Worker     * user's intent for this call.
434*4d7e907cSAndroid Build Coastguard Worker     *
435*4d7e907cSAndroid Build Coastguard Worker     * If 'isTesting' is true, this request is for testing purpose, and must not be sent to a real
436*4d7e907cSAndroid Build Coastguard Worker     * emergency service; otherwise it's for a real emergency call request.
437*4d7e907cSAndroid Build Coastguard Worker     *
438*4d7e907cSAndroid Build Coastguard Worker     * Reference: 3gpp 22.101, Section 10 - Emergency Calls;
439*4d7e907cSAndroid Build Coastguard Worker     *            3gpp 23.167, Section 6 - Functional description;
440*4d7e907cSAndroid Build Coastguard Worker     *            3gpp 24.503, Section 5.1.6.8.1 - General;
441*4d7e907cSAndroid Build Coastguard Worker     *            RFC 5031
442*4d7e907cSAndroid Build Coastguard Worker     *
443*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
444*4d7e907cSAndroid Build Coastguard Worker     * @param dialInfo the same @1.0::Dial information used by @1.0::IRadio.dial.
445*4d7e907cSAndroid Build Coastguard Worker     * @param categories bitfield<@1.4::EmergencyServiceCategory> the Emergency Service Category(s)
446*4d7e907cSAndroid Build Coastguard Worker     *     of the call.
447*4d7e907cSAndroid Build Coastguard Worker     * @param urns the emergency Uniform Resource Names (URN)
448*4d7e907cSAndroid Build Coastguard Worker     * @param routing @1.4::EmergencyCallRouting the emergency call routing information.
449*4d7e907cSAndroid Build Coastguard Worker     * @param hasKnownUserIntentEmergency Flag indicating if user's intent for the emergency call
450*4d7e907cSAndroid Build Coastguard Worker     *     is known.
451*4d7e907cSAndroid Build Coastguard Worker     * @param isTesting Flag indicating if this request is for testing purpose.
452*4d7e907cSAndroid Build Coastguard Worker     *
453*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.emergencyDialResponse()
454*4d7e907cSAndroid Build Coastguard Worker     */
455*4d7e907cSAndroid Build Coastguard Worker    oneway emergencyDial_1_6(int32_t serial, Dial dialInfo,
456*4d7e907cSAndroid Build Coastguard Worker            bitfield<EmergencyServiceCategory> categories, vec<string> urns,
457*4d7e907cSAndroid Build Coastguard Worker            EmergencyCallRouting routing, bool hasKnownUserIntentEmergency, bool isTesting);
458*4d7e907cSAndroid Build Coastguard Worker
459*4d7e907cSAndroid Build Coastguard Worker    /**
460*4d7e907cSAndroid Build Coastguard Worker     * Get which bands the modem's background scan is acting on.
461*4d7e907cSAndroid Build Coastguard Worker     *
462*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
463*4d7e907cSAndroid Build Coastguard Worker     *
464*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.getSystemSelectionChannelsResponse()
465*4d7e907cSAndroid Build Coastguard Worker     */
466*4d7e907cSAndroid Build Coastguard Worker    oneway getSystemSelectionChannels(int32_t serial);
467*4d7e907cSAndroid Build Coastguard Worker
468*4d7e907cSAndroid Build Coastguard Worker   /**
469*4d7e907cSAndroid Build Coastguard Worker     * Request all of the current cell information known to the radio. The radio
470*4d7e907cSAndroid Build Coastguard Worker     * must return list of all current cells, including the neighboring cells. If for a particular
471*4d7e907cSAndroid Build Coastguard Worker     * cell information isn't known then the appropriate unknown value will be returned.
472*4d7e907cSAndroid Build Coastguard Worker     * This does not cause or change the rate of unsolicited cellInfoList().
473*4d7e907cSAndroid Build Coastguard Worker     *
474*4d7e907cSAndroid Build Coastguard Worker     * This is identical to getCellInfoList in V1.0, but it requests updated version of CellInfo.
475*4d7e907cSAndroid Build Coastguard Worker     *
476*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
477*4d7e907cSAndroid Build Coastguard Worker     *
478*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.getCellInfoListResponse()
479*4d7e907cSAndroid Build Coastguard Worker     */
480*4d7e907cSAndroid Build Coastguard Worker    oneway getCellInfoList_1_6(int32_t serial);
481*4d7e907cSAndroid Build Coastguard Worker
482*4d7e907cSAndroid Build Coastguard Worker    /**
483*4d7e907cSAndroid Build Coastguard Worker     * Request current voice registration state.
484*4d7e907cSAndroid Build Coastguard Worker     *
485*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
486*4d7e907cSAndroid Build Coastguard Worker     *
487*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.getVoiceRegistrationStateResponse_1_6()
488*4d7e907cSAndroid Build Coastguard Worker     */
489*4d7e907cSAndroid Build Coastguard Worker    oneway getVoiceRegistrationState_1_6(int32_t serial);
490*4d7e907cSAndroid Build Coastguard Worker
491*4d7e907cSAndroid Build Coastguard Worker    /**
492*4d7e907cSAndroid Build Coastguard Worker     * Requests current signal strength and associated information.  Must succeed if radio is on.
493*4d7e907cSAndroid Build Coastguard Worker     *
494*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
495*4d7e907cSAndroid Build Coastguard Worker     *
496*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.getSignalStrengthResponse_1_6()
497*4d7e907cSAndroid Build Coastguard Worker     */
498*4d7e907cSAndroid Build Coastguard Worker    oneway getSignalStrength_1_6(int32_t serial);
499*4d7e907cSAndroid Build Coastguard Worker
500*4d7e907cSAndroid Build Coastguard Worker    /**
501*4d7e907cSAndroid Build Coastguard Worker     * Request current data registration state.
502*4d7e907cSAndroid Build Coastguard Worker     *
503*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
504*4d7e907cSAndroid Build Coastguard Worker     *
505*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.getDataRegistrationStateResponse_1_6()
506*4d7e907cSAndroid Build Coastguard Worker     */
507*4d7e907cSAndroid Build Coastguard Worker    oneway getDataRegistrationState_1_6(int32_t serial);
508*4d7e907cSAndroid Build Coastguard Worker
509*4d7e907cSAndroid Build Coastguard Worker    /**
510*4d7e907cSAndroid Build Coastguard Worker     * Requests current call list
511*4d7e907cSAndroid Build Coastguard Worker     *
512*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
513*4d7e907cSAndroid Build Coastguard Worker     *
514*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.getCurrentCallsResponse_1_6()
515*4d7e907cSAndroid Build Coastguard Worker     */
516*4d7e907cSAndroid Build Coastguard Worker    oneway getCurrentCalls_1_6(int32_t serial);
517*4d7e907cSAndroid Build Coastguard Worker
518*4d7e907cSAndroid Build Coastguard Worker    /**
519*4d7e907cSAndroid Build Coastguard Worker     * Request to get the current slicing configuration including URSP rules and
520*4d7e907cSAndroid Build Coastguard Worker     * NSSAIs (configured, allowed and rejected).
521*4d7e907cSAndroid Build Coastguard Worker     * URSP stands for UE route selection policy and is defined in 3GPP TS 24.526
522*4d7e907cSAndroid Build Coastguard Worker     * Section 4.2.
523*4d7e907cSAndroid Build Coastguard Worker     * An NSSAI is a collection of network slices. Each network slice is identified by
524*4d7e907cSAndroid Build Coastguard Worker     * an S-NSSAI and is represented by the struct SliceInfo. NSSAI and S-NSSAI
525*4d7e907cSAndroid Build Coastguard Worker     * are defined in 3GPP TS 24.501.
526*4d7e907cSAndroid Build Coastguard Worker     *
527*4d7e907cSAndroid Build Coastguard Worker     * Response function is IRadioResponse.getSlicingConfigResponse()
528*4d7e907cSAndroid Build Coastguard Worker     */
529*4d7e907cSAndroid Build Coastguard Worker    oneway getSlicingConfig(int32_t serial);
530*4d7e907cSAndroid Build Coastguard Worker
531*4d7e907cSAndroid Build Coastguard Worker    /**
532*4d7e907cSAndroid Build Coastguard Worker     * Provide Carrier specific information to the modem that must be used to
533*4d7e907cSAndroid Build Coastguard Worker     * encrypt the IMSI and IMPI. Sent by the framework during boot, carrier
534*4d7e907cSAndroid Build Coastguard Worker     * switch and everytime the framework receives a new certificate.
535*4d7e907cSAndroid Build Coastguard Worker     *
536*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
537*4d7e907cSAndroid Build Coastguard Worker     * @param imsiEncryptionInfo ImsiEncryptionInfo as defined in types.hal.
538*4d7e907cSAndroid Build Coastguard Worker     *
539*4d7e907cSAndroid Build Coastguard Worker     * Response callback is
540*4d7e907cSAndroid Build Coastguard Worker     * IRadioResponse.setCarrierInfoForImsiEncryptionResponse()
541*4d7e907cSAndroid Build Coastguard Worker     *
542*4d7e907cSAndroid Build Coastguard Worker     * Note this API is the same as the 1.1 version except using the 1.6 ImsiEncryptionInfo
543*4d7e907cSAndroid Build Coastguard Worker     * as the input param.
544*4d7e907cSAndroid Build Coastguard Worker     */
545*4d7e907cSAndroid Build Coastguard Worker    oneway setCarrierInfoForImsiEncryption_1_6(int32_t serial, @1.6::ImsiEncryptionInfo imsiEncryptionInfo);
546*4d7e907cSAndroid Build Coastguard Worker
547*4d7e907cSAndroid Build Coastguard Worker    /**
548*4d7e907cSAndroid Build Coastguard Worker     * Get the local and global phonebook records from the SIM card.
549*4d7e907cSAndroid Build Coastguard Worker     * This should be called again after a simPhonebookChanged notification is received.
550*4d7e907cSAndroid Build Coastguard Worker     *
551*4d7e907cSAndroid Build Coastguard Worker     * The phonebook records are received via IRadioIndication.simPhonebookRecordsReceived()
552*4d7e907cSAndroid Build Coastguard Worker     *
553*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
554*4d7e907cSAndroid Build Coastguard Worker     *
555*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.getSimPhonebookRecordsResponse()
556*4d7e907cSAndroid Build Coastguard Worker     */
557*4d7e907cSAndroid Build Coastguard Worker    oneway getSimPhonebookRecords(int32_t serial);
558*4d7e907cSAndroid Build Coastguard Worker
559*4d7e907cSAndroid Build Coastguard Worker    /**
560*4d7e907cSAndroid Build Coastguard Worker     * Get the phone book capacity
561*4d7e907cSAndroid Build Coastguard Worker     *
562*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
563*4d7e907cSAndroid Build Coastguard Worker     *
564*4d7e907cSAndroid Build Coastguard Worker     * Response function is defined from IRadioResponse.getSimPhonebookCapacityResponse()
565*4d7e907cSAndroid Build Coastguard Worker     */
566*4d7e907cSAndroid Build Coastguard Worker    oneway getSimPhonebookCapacity(int32_t serial);
567*4d7e907cSAndroid Build Coastguard Worker
568*4d7e907cSAndroid Build Coastguard Worker    /**
569*4d7e907cSAndroid Build Coastguard Worker     * Insert, delete or update a phonebook record on the SIM card.
570*4d7e907cSAndroid Build Coastguard Worker     * If the index of recordInfo is 0, the phonebook record will be added to global or
571*4d7e907cSAndroid Build Coastguard Worker     * local phonebook, and global phonebook has higher priority than local phonebook.
572*4d7e907cSAndroid Build Coastguard Worker     *
573*4d7e907cSAndroid Build Coastguard Worker     * If the fields in the recordInfo are all empty except for the index, the phonebook
574*4d7e907cSAndroid Build Coastguard Worker     * record specified by the index will be deleted.
575*4d7e907cSAndroid Build Coastguard Worker     *
576*4d7e907cSAndroid Build Coastguard Worker     * The indication simPhonebookChanged will be called after every successful call of
577*4d7e907cSAndroid Build Coastguard Worker     * updateSimPhonebookRecords.
578*4d7e907cSAndroid Build Coastguard Worker     *
579*4d7e907cSAndroid Build Coastguard Worker     * @param serial Serial number of request.
580*4d7e907cSAndroid Build Coastguard Worker     * @param recordInfo Details of the record to insert, delete or update.
581*4d7e907cSAndroid Build Coastguard Worker     *
582*4d7e907cSAndroid Build Coastguard Worker     * Response callback is IRadioResponse.updateSimPhonebookRecordsResponse()
583*4d7e907cSAndroid Build Coastguard Worker     */
584*4d7e907cSAndroid Build Coastguard Worker    oneway updateSimPhonebookRecords(int32_t serial, PhonebookRecordInfo recordInfo);
585*4d7e907cSAndroid Build Coastguard Worker};
586