From d146a72e2fe8f53c0786cde744f936fbf4777a55 Mon Sep 17 00:00:00 2001 From: Amruth Ramachandran Date: Mon, 10 Sep 2018 20:48:49 -0700 Subject: [PATCH] Radio HAL: Add VoPS network support Update 1.3 HAL: - Added DataRegStateResult - Added LteVopsInfo - Added getDataRegistrationStateResponse_1_3 Bug:112194535 Test: Compiled. VTS tests to be added in separate gerrit Change-Id: I1996bb0dbfb1c585668b097c206296d5d8e3c8d0 --- radio/1.3/Android.bp | 2 ++ radio/1.3/IRadioResponse.hal | 14 +++++++++++++ radio/1.3/types.hal | 39 ++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) diff --git a/radio/1.3/Android.bp b/radio/1.3/Android.bp index 042df6c528..5ac38cd90a 100644 --- a/radio/1.3/Android.bp +++ b/radio/1.3/Android.bp @@ -20,8 +20,10 @@ hidl_interface { ], types: [ "AccessNetwork", + "DataRegStateResult", "EmergencyNumber", "EmergencyServiceCategory", + "LteVopsInfo", ], gen_java: true, } diff --git a/radio/1.3/IRadioResponse.hal b/radio/1.3/IRadioResponse.hal index 6912d0aedb..3604953e14 100644 --- a/radio/1.3/IRadioResponse.hal +++ b/radio/1.3/IRadioResponse.hal @@ -71,4 +71,18 @@ interface IRadioResponse extends @1.2::IRadioResponse { * RadioError:CANCELLED */ oneway emergencyDialResponse(RadioResponseInfo info); + + /** + * @param info Response info struct containing response type, serial no. and error + * @param dataRegResponse Current Data registration response as defined by DataRegStateResult in + * types.hal + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + * RadioError:NOT_PROVISIONED + */ + oneway getDataRegistrationStateResponse_1_3(RadioResponseInfo info, + DataRegStateResult dataRegResponse); }; diff --git a/radio/1.3/types.hal b/radio/1.3/types.hal index c04451f5d1..d472ca72f4 100644 --- a/radio/1.3/types.hal +++ b/radio/1.3/types.hal @@ -16,7 +16,10 @@ package android.hardware.radio@1.3; +import @1.0::RegState; import @1.2::AccessNetwork; +import @1.2::CellIdentity; +import @1.2::DataRegStateResult; enum AccessNetwork : @1.2::AccessNetwork { /** @@ -81,3 +84,39 @@ enum EmergencyServiceCategory : int32_t { MIEC = 1 << 5, // Manually Initiated eCall (MIeC) AIEC = 1 << 6, // Automatically Initiated eCall (AIeC) }; + +/** + * Type to define the LTE specific network capabilities for voice over PS including + * emergency and normal voice calls. + */ +struct LteVopsInfo { + /** + * This indicates if camped network support VoLTE services. This information is received + * from LTE network during LTE NAS registration procedure through LTE ATTACH ACCEPT/TAU + * ACCEPT. Refer 3GPP 24.301 EPS network feature support -> IMS VoPS + */ + bool isVopsSupported; + /** + * This indicates if camped network support VoLTE emergency bearers. This information + * is received from LTE network through two sources: + * a. During LTE NAS registration procedure through LTE ATTACH ACCEPT/TAU ACCEPT. Refer + * 3GPP 24.301 EPS network feature support -> EMC BS + * b. In case device is not registered on network. Refer 3GPP 25.331 LTE RRC + * SIB1 : ims-EmergencySupport-r9 + * If device is registered on LTE, then this field indicates (a). + * In case of limited service on LTE this field indicates (b). + */ + bool isEmcBearerSupported; +}; + +struct DataRegStateResult { + @1.2::DataRegStateResult base; + /** + * Network capabilities for voice over PS services. This info is valid only + * on LTE network and must be present when device is camped on LTE. vopsInfo + * will be empty when device is camped only on 2G/3G . + */ + safe_union VopsInfo { + LteVopsInfo lteVopsInfo; // LTE network capability + } vopsInfo; +};