mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-02 13:49:45 +00:00
Merge "Add VoNR network feature support information" am: f14d297d7c
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1498118 Change-Id: I33c6405ed4e4adc313f946561860c410c9659808
This commit is contained in:
@@ -365,4 +365,22 @@ interface IRadio extends @1.5::IRadio {
|
|||||||
* Response callback is IRadioResponse.getSystemSelectionChannelsResponse()
|
* Response callback is IRadioResponse.getSystemSelectionChannelsResponse()
|
||||||
*/
|
*/
|
||||||
oneway getSystemSelectionChannels(int32_t serial);
|
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.0::SendSmsResult;
|
||||||
import @1.6::RadioResponseInfo;
|
import @1.6::RadioResponseInfo;
|
||||||
import @1.5::IRadioResponse;
|
import @1.5::IRadioResponse;
|
||||||
|
import @1.6::RegStateResult;
|
||||||
import @1.6::SetupDataCallResult;
|
import @1.6::SetupDataCallResult;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -327,4 +328,31 @@ interface IRadioResponse extends @1.5::IRadioResponse {
|
|||||||
* RadioError:INVALID_ARGUMENTS
|
* RadioError:INVALID_ARGUMENTS
|
||||||
*/
|
*/
|
||||||
oneway getSystemSelectionChannelsResponse(RadioResponseInfo info);
|
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::RadioError;
|
||||||
import @1.0::RadioResponseType;
|
import @1.0::RadioResponseType;
|
||||||
|
import @1.0::RegState;
|
||||||
import @1.4::DataCallFailCause;
|
import @1.4::DataCallFailCause;
|
||||||
import @1.4::DataConnActiveStatus;
|
import @1.4::DataConnActiveStatus;
|
||||||
import @1.4::PdpProtocolType;
|
import @1.4::PdpProtocolType;
|
||||||
|
import @1.4::RadioTechnology;
|
||||||
|
import @1.5::CellIdentity;
|
||||||
import @1.5::LinkAddress;
|
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;
|
import android.hidl.safe_union@1.0::Monostate;
|
||||||
|
|
||||||
@@ -417,3 +424,140 @@ enum DataThrottlingAction : int32_t {
|
|||||||
*/
|
*/
|
||||||
HOLD = 3
|
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(
|
Return<void> getSystemSelectionChannelsResponse(
|
||||||
const ::android::hardware::radio::V1_6::RadioResponseInfo& info);
|
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 */
|
/* Callback class for radio indication */
|
||||||
|
|||||||
@@ -1170,3 +1170,19 @@ Return<void> RadioResponse_v1_6::getSystemSelectionChannelsResponse(
|
|||||||
parent_v1_6.notify(info.serial);
|
parent_v1_6.notify(info.serial);
|
||||||
return Void();
|
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();
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user