From 15c429921d28e3a7897d030ff98f12c6b71a91ae Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Fri, 10 Aug 2018 17:13:03 -0700 Subject: [PATCH] Added IRadio 1.3 interface Added UNKNOWN into the existing enum AccessNetwork Test: Telephony sanity tests Bug: 110872637 Change-Id: I47bc8939a06023c9972c4e157b8e355cfad775ee --- radio/1.3/Android.bp | 24 +++++++++++++ radio/1.3/IRadio.hal | 85 ++++++++++++++++++++++++++++++++++++++++++++ radio/1.3/types.hal | 26 ++++++++++++++ 3 files changed, 135 insertions(+) create mode 100644 radio/1.3/Android.bp create mode 100644 radio/1.3/IRadio.hal create mode 100644 radio/1.3/types.hal diff --git a/radio/1.3/Android.bp b/radio/1.3/Android.bp new file mode 100644 index 0000000000..3c7b5c5a3d --- /dev/null +++ b/radio/1.3/Android.bp @@ -0,0 +1,24 @@ +// This file is autogenerated by hidl-gen -Landroidbp. + +hidl_interface { + name: "android.hardware.radio@1.3", + root: "android.hardware", + vndk: { + enabled: true, + }, + srcs: [ + "types.hal", + "IRadio.hal", + ], + interfaces: [ + "android.hardware.radio@1.0", + "android.hardware.radio@1.1", + "android.hardware.radio@1.2", + "android.hidl.base@1.0", + ], + types: [ + "AccessNetwork", + ], + gen_java: true, +} + diff --git a/radio/1.3/IRadio.hal b/radio/1.3/IRadio.hal new file mode 100644 index 0000000000..16e66844c6 --- /dev/null +++ b/radio/1.3/IRadio.hal @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.radio@1.3; + +import @1.0::DataProfileInfo; +import @1.2::DataRequestReason; +import @1.2::IRadio; +import @1.3::AccessNetwork; + +/** + * This interface is used by telephony and telecom to talk to cellular radio. + * All the functions have minimum one parameter: + * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the + * duration of a method call. If clients provide colliding serials (including passing the same + * serial to different methods), multiple responses (one for each method call) must still be served. + * setResponseFunctions must work with @1.1::IRadioResponse and @1.1::IRadioIndication. + */ +interface IRadio extends @1.2::IRadio { + /** + * Setup a packet data connection. If DataCallResponse.status returns DataCallFailCause:NONE, + * the data connection must be added to data calls and a unsolDataCallListChanged() must be + * sent. The call remains until removed by subsequent unsolDataCallIstChanged(). It may be + * lost due to many factors, including deactivateDataCall() being issued, the radio powered + * off, reception lost or even transient factors like congestion. This data call list is + * returned by getDataCallList() and dataCallListChanged(). + * + * The Radio is expected to: + * - Create one data call context. + * - Create and configure a dedicated interface for the context. + * - The interface must be point to point. + * - The interface is configured with one or more addresses and is capable of sending and + * receiving packets. The prefix length of the addresses must be /32 for IPv4 and /128 + * for IPv6. + * - Must not modify routing configuration related to this interface; routing management is + * exclusively within the purview of the Android OS. + * - Support simultaneous data call contexts up to DataRegStateResult.maxDataCalls specified + * in the response of getDataRegistrationState. + * + * @param serial Serial number of request. + * @param accessNetwork The access network to setup the data call. If the data connection cannot + * be established on the specified access network, the setup request must be failed. + * @param dataProfileInfo Data profile info. + * @param modemCognitive Indicates that the requested profile has previously been provided via + * setDataProfile(). + * @param roamingAllowed Indicates whether or not data roaming is allowed by the user. + * @param isRoaming Indicates whether or not the framework has requested this setupDataCall for + * a roaming network. The 'protocol' parameter in the old RIL API must be filled + * accordingly based on the roaming condition. Note this is for backward compatibility with + * the old radio modem. The modem must not use this param for any other reason. + * @param reason The request reason. Must be DataRequestReason.NORMAL or + * DataRequestReason.HANDOVER. + * @param addresses If the reason is DataRequestReason.HANDOVER, this indicates the list of link + * addresses of the existing data connection. The format is IP address with optional "/" + * prefix length (The format is defined in RFC-4291 section 2.3). For example, "192.0.1.3", + * "192.0.1.11/16", or "2001:db8::1/64". Typically one IPv4 or one IPv6 or one of each. If + * the prefix length is absent, then the addresses are assumed to be point to point with + * IPv4 with prefix length 32 or IPv6 with prefix length 128. This parameter must be ignored + * unless reason is DataRequestReason.HANDOVER. + * @param dnses If the reason is DataRequestReason.HANDOVER, this indicates the list of DNS + * addresses of the existing data connection. The format is defined in RFC-4291 section + * 2.2. For example, "192.0.1.3" or "2001:db8::1". This parameter must be ignored unless + * reason is DataRequestReason.HANDOVER. + * + * Response function is IRadioResponse.setupDataCallResponse() + * + * Note this API is same as 1.2 version except using the 1.3 AccessNetwork as the input param. + */ + oneway setupDataCall_1_3(int32_t serial, AccessNetwork accessNetwork, + DataProfileInfo dataProfileInfo, bool modemCognitive, bool roamingAllowed, + bool isRoaming, DataRequestReason reason, vec addresses, vec dnses); +}; diff --git a/radio/1.3/types.hal b/radio/1.3/types.hal new file mode 100644 index 0000000000..b80aabd4ab --- /dev/null +++ b/radio/1.3/types.hal @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.radio@1.3; + +import @1.2::AccessNetwork; + +enum AccessNetwork : @1.2::AccessNetwork { + /** + * Unknown access network + */ + UNKNOWN = 0, +};