Merge "Add VoNR network feature support information" am: f14d297d7c
am: 61a2c1237d
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1498118 Change-Id: I4c3925e8e10d1365a3c076c562e7029bc162546f
This commit is contained in:
commit
391cb96e53
5 changed files with 214 additions and 0 deletions
|
@ -365,4 +365,22 @@ interface IRadio extends @1.5::IRadio {
|
|||
* Response callback is IRadioResponse.getSystemSelectionChannelsResponse()
|
||||
*/
|
||||
oneway getSystemSelectionChannels(int32_t serial);
|
||||
|
||||
/**
|
||||
* Request current voice registration state.
|
||||
*
|
||||
* @param serial Serial number of request.
|
||||
*
|
||||
* Response function is IRadioResponse.getVoiceRegistrationStateResponse_1_6()
|
||||
*/
|
||||
oneway getVoiceRegistrationState_1_6(int32_t serial);
|
||||
|
||||
/**
|
||||
* Request current data registration state.
|
||||
*
|
||||
* @param serial Serial number of request.
|
||||
*
|
||||
* Response function is IRadioResponse.getDataRegistrationStateResponse_1_6()
|
||||
*/
|
||||
oneway getDataRegistrationState_1_6(int32_t serial);
|
||||
};
|
||||
|
|
|
@ -19,6 +19,7 @@ package android.hardware.radio@1.6;
|
|||
import @1.0::SendSmsResult;
|
||||
import @1.6::RadioResponseInfo;
|
||||
import @1.5::IRadioResponse;
|
||||
import @1.6::RegStateResult;
|
||||
import @1.6::SetupDataCallResult;
|
||||
|
||||
/**
|
||||
|
@ -327,4 +328,31 @@ interface IRadioResponse extends @1.5::IRadioResponse {
|
|||
* RadioError:INVALID_ARGUMENTS
|
||||
*/
|
||||
oneway getSystemSelectionChannelsResponse(RadioResponseInfo info);
|
||||
|
||||
/**
|
||||
* @param info Response info struct containing response type, serial no. and error
|
||||
* @param voiceRegResponse Current Voice registration response as defined by RegStateResult
|
||||
* in types.hal
|
||||
*
|
||||
* Valid errors returned:
|
||||
* RadioError:NONE
|
||||
* RadioError:RADIO_NOT_AVAILABLE
|
||||
* RadioError:INTERNAL_ERR
|
||||
*/
|
||||
oneway getVoiceRegistrationStateResponse_1_6(RadioResponseInfo info,
|
||||
RegStateResult voiceRegResponse);
|
||||
|
||||
/**
|
||||
* @param info Response info struct containing response type, serial no. and error
|
||||
* @param dataRegResponse Current Data registration response as defined by RegStateResult in
|
||||
* types.hal
|
||||
*
|
||||
* Valid errors returned:
|
||||
* RadioError:NONE
|
||||
* RadioError:RADIO_NOT_AVAILABLE
|
||||
* RadioError:INTERNAL_ERR
|
||||
* RadioError:NOT_PROVISIONED
|
||||
*/
|
||||
oneway getDataRegistrationStateResponse_1_6(RadioResponseInfo info,
|
||||
RegStateResult dataRegResponse);
|
||||
};
|
||||
|
|
|
@ -18,10 +18,17 @@ package android.hardware.radio@1.6;
|
|||
|
||||
import @1.0::RadioError;
|
||||
import @1.0::RadioResponseType;
|
||||
import @1.0::RegState;
|
||||
import @1.4::DataCallFailCause;
|
||||
import @1.4::DataConnActiveStatus;
|
||||
import @1.4::PdpProtocolType;
|
||||
import @1.4::RadioTechnology;
|
||||
import @1.5::CellIdentity;
|
||||
import @1.5::LinkAddress;
|
||||
import @1.5::RegStateResult.AccessTechnologySpecificInfo.Cdma2000RegistrationInfo;
|
||||
import @1.5::RegStateResult.AccessTechnologySpecificInfo.EutranRegistrationInfo;
|
||||
import @1.5::RegistrationFailCause;
|
||||
import @1.5::SetupDataCallResult;
|
||||
|
||||
import android.hidl.safe_union@1.0::Monostate;
|
||||
|
||||
|
@ -417,3 +424,140 @@ enum DataThrottlingAction : int32_t {
|
|||
*/
|
||||
HOLD = 3
|
||||
};
|
||||
|
||||
/**
|
||||
* Defines the values for VoPS indicator of NR as per 3gpp spec 24.501 sec 9.10.3.5
|
||||
*/
|
||||
enum VopsIndicator : uint8_t {
|
||||
/** IMS voice over PS session not supported */
|
||||
VOPS_NOT_SUPPORTED = 0,
|
||||
/** IMS voice over PS session supported over 3GPP access */
|
||||
VOPS_OVER_3GPP = 1,
|
||||
/** IMS voice over PS session supported over non-3GPP access */
|
||||
VOPS_OVER_NON_3GPP = 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* Defines the values for emergency service indicator of NR
|
||||
* as per 3gpp spec 24.501 sec 9.10.3.5
|
||||
*/
|
||||
enum EmcIndicator : uint8_t {
|
||||
/** Emergency services not supported */
|
||||
EMC_NOT_SUPPORTED = 0,
|
||||
/** Emergency services supported in NR connected to 5GCN only */
|
||||
EMC_NR_CONNECTED_TO_5GCN = 1,
|
||||
/** Emergency services supported in E-UTRA connected to 5GCN only */
|
||||
EMC_EUTRA_CONNECTED_TO_5GCN = 2,
|
||||
/** Emergency services supported in NR connected to 5GCN and E-UTRA connected to 5GCN */
|
||||
EMC_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3
|
||||
};
|
||||
|
||||
/**
|
||||
* Defines the values for emergency service fallback indicator of NR
|
||||
* as per 3gpp spec 24.501 sec 9.10.3.5
|
||||
*/
|
||||
enum EmfIndicator : uint8_t {
|
||||
/** Emergency services fallback not supported */
|
||||
EMF_NOT_SUPPORTED = 0,
|
||||
/** Emergency services fallback supported in NR connected to 5GCN only */
|
||||
EMF_NR_CONNECTED_TO_5GCN = 1,
|
||||
/** Emergency services fallback supported in E-UTRA connected to 5GCN only */
|
||||
EMF_EUTRA_CONNECTED_TO_5GCN = 2,
|
||||
/**
|
||||
* Emergency services fallback supported in NR connected to 5GCN and E-UTRA
|
||||
* connected to 5GCN.
|
||||
*/
|
||||
EMF_BOTH_NR_EUTRA_CONNECTED_TO_5GCN = 3
|
||||
};
|
||||
|
||||
/**
|
||||
* Type to define the NR specific network capabilities for voice over PS including
|
||||
* emergency and normal voice calls.
|
||||
*/
|
||||
struct NrVopsInfo {
|
||||
/**
|
||||
* This indicates if the camped network supports VoNR services, and what kind of services
|
||||
* it supports. This information is received from NR network during NR NAS registration
|
||||
* procedure through NR REGISTRATION ACCEPT.
|
||||
* Refer 3GPP 24.501 EPS 5GS network feature support -> IMS VoPS
|
||||
*/
|
||||
VopsIndicator vopsSupported;
|
||||
|
||||
/**
|
||||
* This indicates if the camped network supports VoNR emergency service. This information
|
||||
* is received from NR network through two sources:
|
||||
* a. During NR NAS registration procedure through NR REGISTRATION ACCEPT.
|
||||
* Refer 3GPP 24.501 EPS 5GS network feature support -> EMC
|
||||
* b. In case the device is not registered on the network.
|
||||
* Refer 3GPP 38.331 SIB1 : ims-EmergencySupport
|
||||
* If device is registered on NR, then this field indicates whether the cell
|
||||
* supports IMS emergency bearer services for UEs in limited service mode.
|
||||
*/
|
||||
EmcIndicator emcSupported;
|
||||
|
||||
/**
|
||||
* This indicates if the camped network supports VoNR emergency service fallback. This
|
||||
* information is received from NR network during NR NAS registration procedure through
|
||||
* NR REGISTRATION ACCEPT.
|
||||
* Refer 3GPP 24.501 EPS 5GS network feature support -> EMF
|
||||
*/
|
||||
EmfIndicator emfSupported;
|
||||
};
|
||||
|
||||
/**
|
||||
* Overwritten from @1.5::RegStateResult to 1.6 to support NrRegistrationInfo
|
||||
* version.
|
||||
*/
|
||||
struct RegStateResult {
|
||||
/**
|
||||
* Registration state
|
||||
*
|
||||
* If the RAT is indicated as a GERAN, UTRAN, or CDMA2000 technology, this value reports
|
||||
* registration in the Circuit-switched domain.
|
||||
* If the RAT is indicated as an EUTRAN, NGRAN, or another technology that does not support
|
||||
* circuit-switched services, this value reports registration in the Packet-switched domain.
|
||||
*/
|
||||
RegState regState;
|
||||
|
||||
/**
|
||||
* Indicates the available voice radio technology, valid values as
|
||||
* defined by RadioTechnology.
|
||||
*/
|
||||
RadioTechnology rat;
|
||||
|
||||
/**
|
||||
* Cause code reported by the network in case registration fails. This will be a mobility
|
||||
* management cause code defined for MM, GMM, MME or equivalent as appropriate for the RAT.
|
||||
*/
|
||||
RegistrationFailCause reasonForDenial;
|
||||
|
||||
/** CellIdentity */
|
||||
CellIdentity cellIdentity;
|
||||
|
||||
/**
|
||||
* The most-recent PLMN-ID upon which the UE registered (or attempted to register if a failure
|
||||
* is reported in the reasonForDenial field). This PLMN shall be in standard format consisting
|
||||
* of a 3 digit MCC concatenated with a 2 or 3 digit MNC.
|
||||
*/
|
||||
string registeredPlmn;
|
||||
|
||||
/**
|
||||
* Access-technology-specific registration information, such as for CDMA2000.
|
||||
*/
|
||||
safe_union AccessTechnologySpecificInfo {
|
||||
Monostate noinit;
|
||||
|
||||
Cdma2000RegistrationInfo cdmaInfo;
|
||||
|
||||
EutranRegistrationInfo eutranInfo;
|
||||
|
||||
struct NgranRegistrationInfo {
|
||||
/**
|
||||
* Network capabilities for voice over PS services. This info is valid only on NR
|
||||
* network and must be present when the device is camped on NR. VopsInfo must be
|
||||
* empty when the device is not camped on NR.
|
||||
*/
|
||||
NrVopsInfo nrVopsInfo;
|
||||
} ngranInfo;
|
||||
} accessTechnologySpecificInfo;
|
||||
};
|
||||
|
|
|
@ -798,6 +798,14 @@ class RadioResponse_v1_6 : public ::android::hardware::radio::V1_6::IRadioRespon
|
|||
|
||||
Return<void> getSystemSelectionChannelsResponse(
|
||||
const ::android::hardware::radio::V1_6::RadioResponseInfo& info);
|
||||
|
||||
Return<void> getVoiceRegistrationStateResponse_1_6(
|
||||
const ::android::hardware::radio::V1_6::RadioResponseInfo& info,
|
||||
const ::android::hardware::radio::V1_6::RegStateResult& regResponse);
|
||||
|
||||
Return<void> getDataRegistrationStateResponse_1_6(
|
||||
const ::android::hardware::radio::V1_6::RadioResponseInfo& info,
|
||||
const ::android::hardware::radio::V1_6::RegStateResult& regResponse);
|
||||
};
|
||||
|
||||
/* Callback class for radio indication */
|
||||
|
|
|
@ -1170,3 +1170,19 @@ Return<void> RadioResponse_v1_6::getSystemSelectionChannelsResponse(
|
|||
parent_v1_6.notify(info.serial);
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<void> RadioResponse_v1_6::getVoiceRegistrationStateResponse_1_6(
|
||||
const ::android::hardware::radio::V1_6::RadioResponseInfo& info,
|
||||
const ::android::hardware::radio::V1_6::RegStateResult& /*regResponse*/) {
|
||||
rspInfo = info;
|
||||
parent_v1_6.notify(info.serial);
|
||||
return Void();
|
||||
}
|
||||
|
||||
Return<void> RadioResponse_v1_6::getDataRegistrationStateResponse_1_6(
|
||||
const ::android::hardware::radio::V1_6::RadioResponseInfo& info,
|
||||
const ::android::hardware::radio::V1_6::RegStateResult& /*regResponse*/) {
|
||||
rspInfo = info;
|
||||
parent_v1_6.notify(info.serial);
|
||||
return Void();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue