[Telephony] Implement PhysicalChannelConfig in HAL 1.6

Bug: 169206279
Test: make and VtsHalRadioV1_6Target
Change-Id: I4352ea928a76197aae01b887960eaed05698e3eb
Merged-In: I4352ea928a76197aae01b887960eaed05698e3eb
This commit is contained in:
Zoey Chen
2020-12-01 12:44:06 +08:00
parent 600b7775ef
commit e47a5164d8
4 changed files with 95 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ import @1.6::LinkCapacityEstimate;
import @1.6::NetworkScanResult;
import @1.6::SignalStrength;
import @1.6::SetupDataCallResult;
import @1.6::PhysicalChannelConfig;
/**
* Interface declaring unsolicited radio indications.
@@ -101,4 +102,15 @@ interface IRadioIndication extends @1.5::IRadioIndication {
* CellInfo.
*/
oneway networkScanResult_1_6(RadioIndicationType type, NetworkScanResult result);
/**
* Indicates physical channel configurations.
*
* An empty configs list indicates that the radio is in idle mode.
*
* @param type Type of radio indication
* @param configs Vector of PhysicalChannelConfigs
*/
oneway currentPhysicalChannelConfigs_1_6(RadioIndicationType type,
vec<PhysicalChannelConfig> configs);
};

View File

@@ -23,7 +23,10 @@ import @1.0::LteSignalStrength;
import @1.0::RadioError;
import @1.0::RadioResponseType;
import @1.0::RegState;
import @1.1::EutranBands;
import @1.1::GeranBands;
import @1.1::ScanStatus;
import @1.1::UtranBands;
import @1.2::Call;
import @1.2::CellInfoCdma;
import @1.2::CellConnectionStatus;
@@ -41,6 +44,7 @@ import @1.5::CellInfoGsm;
import @1.5::CellInfoWcdma;
import @1.5::CellInfoTdscdma;
import @1.5::LinkAddress;
import @1.5::NgranBands;
import @1.5::RegStateResult.AccessTechnologySpecificInfo.Cdma2000RegistrationInfo;
import @1.5::RegStateResult.AccessTechnologySpecificInfo.EutranRegistrationInfo;
import @1.5::RegistrationFailCause;
@@ -733,3 +737,70 @@ struct Call {
*/
string forwardedNumber;
};
struct PhysicalChannelConfig {
/** Connection status for cell. Valid values are PRIMARY_SERVING and SECONDARY_SERVING */
CellConnectionStatus status;
/** The radio technology for this physical channel */
RadioTechnology rat;
/** Downlink Absolute Radio Frequency Channel Number */
int32_t downlinkChannelNumber;
/** Uplink Absolute Radio Frequency Channel Number */
int32_t uplinkChannelNumber;
/** Downlink cell bandwidth, in kHz */
int32_t cellBandwidthDownlink;
/** Uplink cell bandwidth, in kHz */
int32_t cellBandwidthUplink;
/**
* A list of data calls mapped to this physical channel. The context id must match the cid of
* @1.5::SetupDataCallResult. An empty list means the physical channel has no data call mapped
* to it.
*/
vec<int32_t> contextIds;
/**
* The physical cell identifier for this cell.
*
* In UTRAN, this value is primary scrambling code. The range is [0, 511].
* Reference: 3GPP TS 25.213 section 5.2.2.
*
* In EUTRAN, this value is physical layer cell identity. The range is [0, 503].
* Reference: 3GPP TS 36.211 section 6.11.
*
* In 5G RAN, this value is physical layer cell identity. The range is [0, 1007].
* Reference: 3GPP TS 38.211 section 7.4.2.1.
*/
uint32_t physicalCellId;
/**
* The frequency band to scan.
*/
safe_union Band {
/** Valid only if radioAccessNetwork = GERAN. */
GeranBands geranBand;
/** Valid only if radioAccessNetwork = UTRAN. */
UtranBands utranBand;
/** Valid only if radioAccessNetwork = EUTRAN. */
EutranBands eutranBand;
/** Valid only if radioAccessNetwork = NGRAN. */
NgranBands ngranBand;
} band;
};
/**
* Extended from @1.5 NgranBands
* IRadio 1.6 supports NGRAN bands up to V16.5.0
*/
enum NgranBands : @1.5::NgranBands {
/** 3GPP TS 38.101-1, Table 5.2-1: FR1 bands */
BAND_26 = 26,
BAND_46 = 46,
BAND_53 = 53,
BAND_96 = 96,
};

View File

@@ -857,6 +857,11 @@ class RadioIndication_v1_6 : public ::android::hardware::radio::V1_6::IRadioIndi
const ::android::hardware::hidl_vec<::android::hardware::radio::V1_6::CellInfo>&
records);
Return<void> currentPhysicalChannelConfigs_1_6(
RadioIndicationType type,
const ::android::hardware::hidl_vec<
::android::hardware::radio::V1_6::PhysicalChannelConfig>& configs);
/* 1.5 Api */
Return<void> uiccApplicationsEnablementChanged(RadioIndicationType type, bool enabled);

View File

@@ -30,6 +30,13 @@ Return<void> RadioIndication_v1_6::unthrottleApn(RadioIndicationType /*type*/,
return Void();
}
Return<void> RadioIndication_v1_6::currentPhysicalChannelConfigs_1_6(
RadioIndicationType /*type*/,
const ::android::hardware::hidl_vec<
::android::hardware::radio::V1_6::PhysicalChannelConfig>& /*configs*/) {
return Void();
}
/* 1.5 Apis */
Return<void> RadioIndication_v1_6::uiccApplicationsEnablementChanged(RadioIndicationType /*type*/,
bool /*enabled*/) {