From 1d4e8ae51ee6c4bec73367525da9561132289a45 Mon Sep 17 00:00:00 2001 From: Pengquan Meng Date: Wed, 7 Nov 2018 16:22:32 -0800 Subject: [PATCH] HAL change for 5G NSA only Add the parameters for 5G NSA and change related type & API. Bug: 111453000 Test: Build Change-Id: I97aab866993cc84d6f3fd30d33a0273f661e4c2d --- radio/1.3/Android.bp | 4 ++ radio/1.3/IRadioIndication.hal | 13 ++++++ radio/1.3/IRadioResponse.hal | 11 +++++ radio/1.3/types.hal | 82 ++++++++++++++++++++++++++++++++++ 4 files changed, 110 insertions(+) diff --git a/radio/1.3/Android.bp b/radio/1.3/Android.bp index b6610e0602..3c6518086d 100644 --- a/radio/1.3/Android.bp +++ b/radio/1.3/Android.bp @@ -21,12 +21,16 @@ hidl_interface { ], types: [ "AccessNetwork", + "CellConfigLte", + "CellInfo", + "CellInfoLte", "DataProfileInfo", "DataRegStateResult", "EmergencyNumber", "EmergencyNumberSource", "EmergencyServiceCategory", "LteVopsInfo", + "NetworkScanResult", ], gen_java: true, } diff --git a/radio/1.3/IRadioIndication.hal b/radio/1.3/IRadioIndication.hal index 509eef8f7d..e7f26ac80e 100644 --- a/radio/1.3/IRadioIndication.hal +++ b/radio/1.3/IRadioIndication.hal @@ -49,4 +49,17 @@ interface IRadioIndication extends @1.2::IRadioIndication { */ oneway currentEmergencyNumberList(RadioIndicationType type, vec emergencyNumberList); + + /** + * Request all of the current cell information known to the radio. + * + * @param type Type of radio indication + * @param records Current cell information + */ + oneway cellInfoList_1_3(RadioIndicationType type, vec records); + + /** + * Incremental network scan results + */ + oneway networkScanResult_1_3(RadioIndicationType type, NetworkScanResult result); }; diff --git a/radio/1.3/IRadioResponse.hal b/radio/1.3/IRadioResponse.hal index 10e7d63cf1..75d1501e47 100644 --- a/radio/1.3/IRadioResponse.hal +++ b/radio/1.3/IRadioResponse.hal @@ -48,6 +48,17 @@ interface IRadioResponse extends @1.2::IRadioResponse { */ oneway emergencyDialResponse(RadioResponseInfo info); + /** + * @param info Response info struct containing response type, serial no. and error + * @param cellInfo List of current cell information known to radio + * + * Valid errors returned: + * RadioError:NONE + * RadioError:RADIO_NOT_AVAILABLE + * RadioError:INTERNAL_ERR + */ + oneway getCellInfoListResponse_1_3(RadioResponseInfo info, vec cellInfo); + /** * @param info Response info struct containing response type, serial no. and error * @param dataRegResponse Current Data registration response as defined by DataRegStateResult in diff --git a/radio/1.3/types.hal b/radio/1.3/types.hal index 8b0891c3b5..b161e0ecd6 100644 --- a/radio/1.3/types.hal +++ b/radio/1.3/types.hal @@ -18,11 +18,21 @@ package android.hardware.radio@1.3; import @1.0::ApnAuthType; import @1.0::ApnTypes; +import @1.0::CellInfoType; import @1.0::DataProfileId; import @1.0::DataProfileInfoType; import @1.0::RadioAccessFamily; +import @1.0::RadioError; import @1.0::RegState; +import @1.0::TimeStampType; +import @1.1::ScanStatus; import @1.2::AccessNetwork; +import @1.2::CellInfo; +import @1.2::CellInfoCdma; +import @1.2::CellInfoGsm; +import @1.2::CellInfoLte; +import @1.2::CellInfoTdscdma; +import @1.2::CellInfoWcdma; import @1.2::CellIdentity; import @1.2::DataRegStateResult; @@ -168,6 +178,78 @@ struct DataRegStateResult { LteVopsInfo lteVopsInfo; // LTE network capability } vopsInfo; + + /** + * True if use of dual connectivity with NR is restricted. + * Reference: 3GPP TS 24.301 v15.03 section 9.3.3.12A. + */ + bool isDcNrRestricted; + + /** + * True if the bit N is in the PLMN-InfoList-r15 is true and the selected PLMN is present in + * plmn-IdentityList at position N. + * Reference: 3GPP TS 36.331 v15.2.2 section 6.3.1 PLMN-InfoList-r15. + * 3GPP TS 36.331 v15.2.2 section 6.2.2 SystemInformationBlockType1 message. + */ + bool isNrAvailable; +}; + +/** Contains the configuration of the LTE cell tower. */ +struct CellConfigLte { + /** + * Indicates that if E-UTRA-NR Dual Connectivity (EN-DC) is supported by the LTE cell. + * + * True if the plmn-InfoList-r15 is present in SIB2 and at least one bit in this list is true, + * otherwise this value should be false. + * + * Reference: 3GPP TS 36.331 v15.2.2 6.3.1 System information blocks. + */ + bool isEndcAvailable; +}; + +/** Inherits from @1.2::CellInfoLte, in order to add the LTE configuration. */ +struct CellInfoLte { + @1.2::CellInfoLte base; + CellConfigLte cellConfig; +}; + +/** Overwritten from @1.2::CellInfo in order to update the CellInfoLte to 1.3 version. */ +struct CellInfo { + /** Cell type for selecting from union CellInfo. */ + CellInfoType cellInfoType; + + /** + * True if the phone is registered to a mobile network that provides service on this cell and + * this cell is being used or would be used for network signaling. + */ + bool isRegistered; + + /** CellInfo details, cellInfoType can tell which cell info should be used. */ + safe_union Info { + CellInfoGsm gsm; + CellInfoCdma cdma; + CellInfoWcdma wcdma; + CellInfoTdscdma tdscdma; + CellInfoLte lte; + } info; +}; + +/** Overwritten from @1.2::NetworkScanResult in order to update the CellInfo to 1.3 version. */ +struct NetworkScanResult { + /** + * The status of the scan. + */ + ScanStatus status; + + /** + * The error code of the incremental result. + */ + RadioError error; + + /** + * List of network information as CellInfo. + */ + vec networkInfos; }; /**