1/*
2 * Copyright (C) 2018 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
17package android.hardware.radio.config@1.1;
18
19import @1.0::IRadioConfigResponse;
20import @1.1::PhoneCapability;
21import android.hardware.radio@1.0::RadioResponseInfo;
22import @1.1::ModemsConfig;
23
24/**
25 * Note: IRadioConfig 1.1 is an intermediate layer between Android P and Android Q.
26 * It's specifically designed for CBRS related interfaces. All other interfaces
27 * for Q are be added in IRadioConfig 1.2.
28 *
29 * Interface declaring response functions to solicited radio config requests.
30 */
31interface IRadioConfigResponse extends @1.0::IRadioConfigResponse {
32    /**
33     * @param info Response info struct containing response type, serial no. and error
34     * @param phoneCapability <@1.1::PhoneCapability> it defines modem's capability for example
35     *        how many logical modems it has, how many data connections it supports.
36     *
37     * Valid errors returned:
38     *   RadioError:NONE
39     *   RadioError:RADIO_NOT_AVAILABLE
40     *   RadioError:INTERNAL_ERR
41     */
42    oneway getPhoneCapabilityResponse(RadioResponseInfo info, PhoneCapability phoneCapability);
43
44    /**
45     * @param info Response info struct containing response type, serial no. and error
46     *
47     * Valid errors returned:
48     *   RadioError:NONE
49     *   RadioError:RADIO_NOT_AVAILABLE
50     *   RadioError:INTERNAL_ERR
51     *   RadioError:INVALID_ARGUMENTS
52     */
53    oneway setPreferredDataModemResponse(RadioResponseInfo info);
54
55    /**
56     * @param info Response info struct containing response type, serial no. and error
57     *
58     * Valid errors returned:
59     *   RadioError:NONE
60     *   RadioError:RADIO_NOT_AVAILABLE
61     *   RadioError:REQUEST_NOT_SUPPORTED
62     *   RadioError:INVALID_ARGUMENTS
63     */
64    oneway setModemsConfigResponse(RadioResponseInfo info);
65
66    /**
67     * @param info Response info struct containing response type, serial no. and error
68     * @param modemsConfig <@1.1::ModemsConfig> it defines all the modems' configurations
69     *        at this time, only the number of live modems
70     *
71     * Valid errors returned:
72     *   RadioError:NONE
73     *   RadioError:RADIO_NOT_AVAILABLE
74     *   RadioError:REQUEST_NOT_SUPPORTED
75     */
76    oneway getModemsConfigResponse(RadioResponseInfo info, ModemsConfig modemsConfig);
77};
78