Update RegState for new CellIdentity types
Bug: 74826109 Test: make, make vts Change-Id: I6350e5da5bc064e665e54d161ee589c3eadf901a
This commit is contained in:
parent
55b92198fb
commit
74befb69b9
7 changed files with 213 additions and 3 deletions
|
@ -342,9 +342,9 @@ e85f566698d2a2c28100e264fcf2c691a066756ddf8dd341d009ff50cfe10614 android.hardwar
|
|||
7899b9305587b2d5cd74a3cc87e9090f58bf4ae74256ce3ee36e7ec011822840 android.hardware.power@1.2::types
|
||||
ab132c990a62f0aca35871c092c22fb9c85d478e22124ef6a4d0a2302da76a9f android.hardware.radio@1.2::IRadio
|
||||
cda752aeabaabc20486a82ac57a3dd107785c006094a349bc5e224e8aa22a17c android.hardware.radio@1.2::IRadioIndication
|
||||
c38b7e1f808565a535ff19fd4c1b512b22dfa0b58ec91dce03f72a8f1eaf6957 android.hardware.radio@1.2::IRadioResponse
|
||||
da8c6ae991c6a4b284cc6e445332e064e28ee8a09482ed5afff9d159ec6694b7 android.hardware.radio@1.2::IRadioResponse
|
||||
b65332996eb39ba63300a1011404141fa59ce5c252bc17afae637be6eeca5f55 android.hardware.radio@1.2::ISap
|
||||
508ace7d4023b865b8b77c3ca3c86cc9525ef3803dc9c6b461b7c1f91b0fec00 android.hardware.radio@1.2::types
|
||||
a9361522cc97ef66209d39ba324095b2f08344054bb4d3481e803eee0480623a android.hardware.radio@1.2::types
|
||||
87385469cf4409f0f33b01508e7a477cf71f2a11e466dd7e3ab5971a1baaa72b android.hardware.radio.config@1.0::IRadioConfig
|
||||
228b2ee3c8c276c9f0afad2dc313ca3d6bbd9e482ddf313c7204c60ad9b636ab android.hardware.radio.config@1.0::IRadioConfigIndication
|
||||
a2e9b7aa09f79426f765838174e04b6f9a3e6c8b76b923fc1705632207bad44b android.hardware.radio.config@1.0::IRadioConfigResponse
|
||||
|
|
|
@ -24,6 +24,7 @@ hidl_interface {
|
|||
"Call",
|
||||
"CardStatus",
|
||||
"CellConnectionStatus",
|
||||
"CellIdentity",
|
||||
"CellIdentityCdma",
|
||||
"CellIdentityGsm",
|
||||
"CellIdentityLte",
|
||||
|
@ -36,6 +37,7 @@ hidl_interface {
|
|||
"CellInfoLte",
|
||||
"CellInfoTdscdma",
|
||||
"CellInfoWcdma",
|
||||
"DataRegStateResult",
|
||||
"DataRequestReason",
|
||||
"IncrementalResultsPeriodicityRange",
|
||||
"IndicationFilter",
|
||||
|
@ -48,6 +50,7 @@ hidl_interface {
|
|||
"ScanIntervalRange",
|
||||
"SignalStrength",
|
||||
"TdscdmaSignalStrength",
|
||||
"VoiceRegStateResult",
|
||||
"WcdmaSignalStrength",
|
||||
],
|
||||
gen_java: true,
|
||||
|
|
|
@ -98,4 +98,31 @@ interface IRadioResponse extends @1.1::IRadioResponse {
|
|||
* RadioError:INTERNAL_ERR
|
||||
*/
|
||||
oneway getSignalStrengthResponse_1_2(RadioResponseInfo info, SignalStrength signalStrength);
|
||||
|
||||
/**
|
||||
* @param info Response info struct containing response type, serial no. and error
|
||||
* @param voiceRegResponse Current Voice registration response as defined by VoiceRegStateResult
|
||||
* in types.hal
|
||||
*
|
||||
* Valid errors returned:
|
||||
* RadioError:NONE
|
||||
* RadioError:RADIO_NOT_AVAILABLE
|
||||
* RadioError:INTERNAL_ERR
|
||||
*/
|
||||
oneway getVoiceRegistrationStateResponse_1_2(RadioResponseInfo info,
|
||||
VoiceRegStateResult voiceRegResponse);
|
||||
|
||||
/**
|
||||
* @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_2(RadioResponseInfo info,
|
||||
DataRegStateResult dataRegResponse);
|
||||
};
|
||||
|
|
|
@ -32,6 +32,7 @@ import @1.0::GsmSignalStrength;
|
|||
import @1.0::LteSignalStrength;
|
||||
import @1.0::RadioConst;
|
||||
import @1.0::RadioError;
|
||||
import @1.0::RegState;
|
||||
import @1.0::SignalStrength;
|
||||
import @1.0::TdScdmaSignalStrength;
|
||||
import @1.0::TimeStampType;
|
||||
|
@ -462,3 +463,129 @@ struct SignalStrength {
|
|||
TdScdmaSignalStrength tdScdma;
|
||||
WcdmaSignalStrength wcdma;
|
||||
};
|
||||
|
||||
struct CellIdentity {
|
||||
/**
|
||||
* Cell type for selecting from union CellInfo.
|
||||
* Only one of the below vectors must be of size 1 based on a
|
||||
* valid CellInfoType and others must be of size 0.
|
||||
* If cell info type is NONE, then all the vectors must be of size 0.
|
||||
*/
|
||||
CellInfoType cellInfoType;
|
||||
vec<CellIdentityGsm> cellIdentityGsm;
|
||||
vec<CellIdentityWcdma> cellIdentityWcdma;
|
||||
vec<CellIdentityCdma> cellIdentityCdma;
|
||||
vec<CellIdentityLte> cellIdentityLte;
|
||||
vec<CellIdentityTdscdma> cellIdentityTdscdma;
|
||||
};
|
||||
|
||||
struct VoiceRegStateResult {
|
||||
/**
|
||||
* Valid reg states are NOT_REG_MT_NOT_SEARCHING_OP,
|
||||
* REG_HOME, NOT_REG_MT_SEARCHING_OP, REG_DENIED,
|
||||
* UNKNOWN, REG_ROAMING defined in RegState
|
||||
*/
|
||||
RegState regState;
|
||||
/**
|
||||
* Indicates the available voice radio technology, valid values as
|
||||
* defined by RadioTechnology.
|
||||
*/
|
||||
int32_t rat;
|
||||
/**
|
||||
* concurrent services support indicator. if registered on a CDMA system.
|
||||
* false - Concurrent services not supported,
|
||||
* true - Concurrent services supported
|
||||
*/
|
||||
bool cssSupported;
|
||||
/**
|
||||
* TSB-58 Roaming Indicator if registered on a CDMA or EVDO system or -1 if not.
|
||||
* Valid values are 0-255.
|
||||
*/
|
||||
int32_t roamingIndicator;
|
||||
/**
|
||||
* Indicates whether the current system is in the PRL if registered on a CDMA or EVDO system
|
||||
* or -1 if not. 0=not in the PRL, 1=in the PRL
|
||||
*/
|
||||
int32_t systemIsInPrl;
|
||||
/**
|
||||
* Default Roaming Indicator from the PRL if registered on a CDMA or EVDO system or -1 if not.
|
||||
* Valid values are 0-255.
|
||||
*/
|
||||
int32_t defaultRoamingIndicator;
|
||||
/**
|
||||
* reasonForDenial if registration state is 3
|
||||
* (Registration denied) this is an enumerated reason why
|
||||
* registration was denied. See 3GPP TS 24.008,
|
||||
* 10.5.3.6 and Annex G.
|
||||
* 0 - General
|
||||
* 1 - Authentication Failure
|
||||
* 2 - IMSI unknown in HLR
|
||||
* 3 - Illegal MS
|
||||
* 4 - Illegal ME
|
||||
* 5 - PLMN not allowed
|
||||
* 6 - Location area not allowed
|
||||
* 7 - Roaming not allowed
|
||||
* 8 - No Suitable Cells in this Location Area
|
||||
* 9 - Network failure
|
||||
* 10 - Persistent location update reject
|
||||
* 11 - PLMN not allowed
|
||||
* 12 - Location area not allowed
|
||||
* 13 - Roaming not allowed in this Location Area
|
||||
* 15 - No Suitable Cells in this Location Area
|
||||
* 17 - Network Failure
|
||||
* 20 - MAC Failure
|
||||
* 21 - Sync Failure
|
||||
* 22 - Congestion
|
||||
* 23 - GSM Authentication unacceptable
|
||||
* 25 - Not Authorized for this CSG
|
||||
* 32 - Service option not supported
|
||||
* 33 - Requested service option not subscribed
|
||||
* 34 - Service option temporarily out of order
|
||||
* 38 - Call cannot be identified
|
||||
* 48-63 - Retry upon entry into a new cell
|
||||
* 95 - Semantically incorrect message
|
||||
* 96 - Invalid mandatory information
|
||||
* 97 - Message type non-existent or not implemented
|
||||
* 98 - Message type not compatible with protocol state
|
||||
* 99 - Information element non-existent or not implemented
|
||||
* 100 - Conditional IE error
|
||||
* 101 - Message not compatible with protocol state
|
||||
* 111 - Protocol error, unspecified
|
||||
*/
|
||||
int32_t reasonForDenial;
|
||||
|
||||
CellIdentity cellIdentity;
|
||||
};
|
||||
|
||||
struct DataRegStateResult {
|
||||
/**
|
||||
* Valid reg states are NOT_REG_MT_NOT_SEARCHING_OP,
|
||||
* REG_HOME, NOT_REG_MT_SEARCHING_OP, REG_DENIED,
|
||||
* UNKNOWN, REG_ROAMING defined in RegState
|
||||
*/
|
||||
RegState regState;
|
||||
/**
|
||||
* Indicates the available data radio technology,
|
||||
* valid values as defined by RadioTechnology.
|
||||
*/
|
||||
int32_t rat;
|
||||
/**
|
||||
* If registration state is 3 (Registration
|
||||
* denied) this is an enumerated reason why
|
||||
* registration was denied. See 3GPP TS 24.008,
|
||||
* Annex G.6 "Additional cause codes for GMM".
|
||||
* 7 == GPRS services not allowed
|
||||
* 8 == GPRS services and non-GPRS services not allowed
|
||||
* 9 == MS identity cannot be derived by the network
|
||||
* 10 == Implicitly detached
|
||||
* 14 == GPRS services not allowed in this PLMN
|
||||
* 16 == MSC temporarily not reachable
|
||||
* 40 == No PDP context activated
|
||||
*/
|
||||
int32_t reasonDataDenied;
|
||||
/**
|
||||
* The maximum number of simultaneous Data Calls must be established using setupDataCall().
|
||||
*/
|
||||
int32_t maxDataCalls;
|
||||
CellIdentity cellIdentity;
|
||||
};
|
||||
|
|
|
@ -673,3 +673,40 @@ TEST_F(RadioHidlTest_v1_2, getCellInfoList_1_2) {
|
|||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error,
|
||||
{RadioError::NONE, RadioError::NO_NETWORK_FOUND}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.getVoiceRegistrationState() for the response returned.
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_2, getVoiceRegistrationState) {
|
||||
int serial = GetRandomSerialNumber();
|
||||
|
||||
Return<void> res = radio_v1_2->getVoiceRegistrationState(serial);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial);
|
||||
|
||||
ALOGI("getVoiceRegistrationStateResponse_1_2, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_2->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_2->rspInfo.error,
|
||||
{RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadio.getDataRegistrationState() for the response returned.
|
||||
*/
|
||||
TEST_F(RadioHidlTest_v1_2, getDataRegistrationState) {
|
||||
int serial = GetRandomSerialNumber();
|
||||
|
||||
Return<void> res = radio_v1_2->getDataRegistrationState(serial);
|
||||
ASSERT_OK(res);
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_2->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_v1_2->rspInfo.serial);
|
||||
|
||||
ALOGI("getVoiceRegistrationStateResponse_1_2, rspInfo.error = %s\n",
|
||||
toString(radioRsp_v1_2->rspInfo.error).c_str());
|
||||
ASSERT_TRUE(CheckAnyOfErrors(
|
||||
radioRsp_v1_2->rspInfo.error,
|
||||
{RadioError::NONE, RadioError::RADIO_NOT_AVAILABLE, RadioError::NOT_PROVISIONED}));
|
||||
}
|
||||
|
|
|
@ -417,6 +417,12 @@ class RadioResponse_v1_2 : public V1_1::IRadioResponse {
|
|||
|
||||
Return<void> getCellInfoListResponse_1_2(
|
||||
const RadioResponseInfo& info, const ::android::hardware::hidl_vec<CellInfo>& cellInfo);
|
||||
|
||||
Return<void> getVoiceRegistrationStateResponse_1_2(
|
||||
const RadioResponseInfo& info, const V1_2::VoiceRegStateResult& voiceRegResponse);
|
||||
|
||||
Return<void> getDataRegistrationStateResponse_1_2(
|
||||
const RadioResponseInfo& info, const V1_2::DataRegStateResult& dataRegResponse);
|
||||
};
|
||||
|
||||
/* Callback class for radio indication */
|
||||
|
|
|
@ -731,4 +731,14 @@ Return<void> RadioResponse_v1_2::getCellInfoListResponse_1_2(
|
|||
rspInfo = info;
|
||||
parent_v1_2.notify();
|
||||
return Void();
|
||||
}
|
||||
}
|
||||
|
||||
Return<void> RadioResponse_v1_2::getVoiceRegistrationStateResponse_1_2(
|
||||
const RadioResponseInfo& /*info*/, const V1_2::VoiceRegStateResult& /*voiceRegResponse*/) {
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<void> RadioResponse_v1_2::getDataRegistrationStateResponse_1_2(
|
||||
const RadioResponseInfo& /*info*/, const V1_2::DataRegStateResult& /*dataRegResponse*/) {
|
||||
return Void();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue