mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
Merge "Add isN1ModeEnabled and setN1ModeEnabled to IRadioNetwork"
This commit is contained in:
@@ -78,4 +78,6 @@ interface IRadioNetwork {
|
||||
oneway void cancelEmergencyNetworkScan(int serial, boolean resetScan);
|
||||
oneway void exitEmergencyMode(in int serial);
|
||||
oneway void setNullCipherAndIntegrityEnabled(in int serial, in boolean enabled);
|
||||
oneway void isN1ModeEnabled(in int serial);
|
||||
oneway void setN1ModeEnabled(in int serial, boolean enable);
|
||||
}
|
||||
|
||||
@@ -77,4 +77,6 @@ interface IRadioNetworkResponse {
|
||||
oneway void exitEmergencyModeResponse(in android.hardware.radio.RadioResponseInfo info);
|
||||
oneway void cancelEmergencyNetworkScanResponse(in android.hardware.radio.RadioResponseInfo info);
|
||||
oneway void setNullCipherAndIntegrityEnabledResponse(in android.hardware.radio.RadioResponseInfo info);
|
||||
oneway void isN1ModeEnabledResponse(in android.hardware.radio.RadioResponseInfo info, boolean isEnabled);
|
||||
oneway void setN1ModeEnabledResponse(in android.hardware.radio.RadioResponseInfo info);
|
||||
}
|
||||
|
||||
@@ -504,4 +504,30 @@ oneway interface IRadioNetwork {
|
||||
* Response callback is IRadioResponse.setNullCipherAndIntegrityEnabledResponse()
|
||||
*/
|
||||
void setNullCipherAndIntegrityEnabled(in int serial, in boolean enabled);
|
||||
|
||||
/**
|
||||
* Checks whether N1 mode (access to 5G core network) is enabled or not.
|
||||
*
|
||||
* @param serial Serial number of request.
|
||||
*
|
||||
* Response function is IRadioNetworkResponse.isN1ModeEnabledResponse()
|
||||
*/
|
||||
void isN1ModeEnabled(in int serial);
|
||||
|
||||
/**
|
||||
* Enables or disables N1 mode (access to 5G core network) in accordance with
|
||||
* 3GPP TS 24.501 4.9.
|
||||
*
|
||||
* Note: The default value of N1 mode shall be based on the modem's internal configuration
|
||||
* as per device or carrier. This API may be invoked on demand first to disable N1 mode and
|
||||
* later to re-enable for certain use case. This setting shall not be persisted by modem.
|
||||
* This setting shall not interfere with the allowed network type bitmap set using
|
||||
* {@link IRadioNetwork#setAllowedNetworkTypesBitmap()} API.
|
||||
*
|
||||
* @param serial Serial number of request.
|
||||
* @param enable {@code true} to enable N1 mode, {@code false} to disable N1 mode.
|
||||
*
|
||||
* Response function is IRadioNetworkResponse.setN1ModeEnabledResponse()
|
||||
*/
|
||||
void setN1ModeEnabled(in int serial, boolean enable);
|
||||
}
|
||||
|
||||
@@ -624,4 +624,34 @@ oneway interface IRadioNetworkResponse {
|
||||
* RadioError:MODEM_ERR
|
||||
*/
|
||||
void setNullCipherAndIntegrityEnabledResponse(in RadioResponseInfo info);
|
||||
|
||||
/**
|
||||
* Response of isN1ModeEnabled.
|
||||
* This is an optional API.
|
||||
*
|
||||
* @param info Response info struct containing response type, serial no. and error.
|
||||
* @param isEnabled Indicates whether N1 mode is enabled or not.
|
||||
*
|
||||
* Valid errors returned:
|
||||
* RadioError:NONE
|
||||
* RadioError:RADIO_NOT_AVAILABLE
|
||||
* RadioError:INTERNAL_ERR
|
||||
* RadioError:REQUEST_NOT_SUPPORTED
|
||||
*/
|
||||
void isN1ModeEnabledResponse(in RadioResponseInfo info, boolean isEnabled);
|
||||
|
||||
/**
|
||||
* Response of setN1ModeEnabled.
|
||||
* This is an optional API.
|
||||
*
|
||||
* @param info Response info struct containing response type, serial no. and error.
|
||||
*
|
||||
* Valid errors returned:
|
||||
* RadioError:NONE
|
||||
* RadioError:RADIO_NOT_AVAILABLE
|
||||
* RadioError:INTERNAL_ERR
|
||||
* RadioError:REQUEST_NOT_SUPPORTED
|
||||
* RadioError:INVALID_STATE
|
||||
*/
|
||||
void setN1ModeEnabledResponse(in RadioResponseInfo info);
|
||||
}
|
||||
|
||||
@@ -99,6 +99,8 @@ class RadioNetwork : public RadioCompatBase,
|
||||
scanTrigger) override;
|
||||
::ndk::ScopedAStatus cancelEmergencyNetworkScan(int32_t serial, bool resetScan) override;
|
||||
::ndk::ScopedAStatus exitEmergencyMode(int32_t serial) override;
|
||||
::ndk::ScopedAStatus isN1ModeEnabled(int32_t serial) override;
|
||||
::ndk::ScopedAStatus setN1ModeEnabled(int32_t serial, bool enable) override;
|
||||
|
||||
::ndk::ScopedAStatus setNullCipherAndIntegrityEnabled(int32_t serial, bool enabled) override;
|
||||
|
||||
|
||||
@@ -347,4 +347,17 @@ ScopedAStatus RadioNetwork::setNullCipherAndIntegrityEnabled(int32_t serial, boo
|
||||
return ok();
|
||||
}
|
||||
|
||||
ScopedAStatus RadioNetwork::isN1ModeEnabled(int32_t serial) {
|
||||
LOG_CALL << serial;
|
||||
LOG(ERROR) << " isN1ModeEnabled is unsupported by HIDL HALs";
|
||||
respond()->isN1ModeEnabledResponse(notSupported(serial), false);
|
||||
return ok();
|
||||
}
|
||||
|
||||
ScopedAStatus RadioNetwork::setN1ModeEnabled(int32_t serial, bool /*enable*/) {
|
||||
LOG_CALL << serial;
|
||||
LOG(ERROR) << " setN1ModeEnabled is unsupported by HIDL HALs";
|
||||
respond()->setN1ModeEnabledResponse(notSupported(serial));
|
||||
return ok();
|
||||
}
|
||||
} // namespace android::hardware::radio::compat
|
||||
|
||||
@@ -300,3 +300,16 @@ ndk::ScopedAStatus RadioNetworkResponse::setNullCipherAndIntegrityEnabledRespons
|
||||
parent_network.notify(info.serial);
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
ndk::ScopedAStatus RadioNetworkResponse::isN1ModeEnabledResponse(
|
||||
const RadioResponseInfo& info, bool /*isEnabled*/) {
|
||||
rspInfo = info;
|
||||
parent_network.notify(info.serial);
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
ndk::ScopedAStatus RadioNetworkResponse::setN1ModeEnabledResponse(const RadioResponseInfo& info) {
|
||||
rspInfo = info;
|
||||
parent_network.notify(info.serial);
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
|
||||
@@ -1914,3 +1914,50 @@ TEST_P(RadioNetworkTest, exitEmergencyMode) {
|
||||
RadioError::MODEM_ERR}));
|
||||
LOG(DEBUG) << "exitEmergencyMode finished";
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadioNetwork.setN1ModeEnabled() for the response returned.
|
||||
*/
|
||||
TEST_P(RadioNetworkTest, setN1ModeEnabled) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
ndk::ScopedAStatus res =
|
||||
radio_network->setN1ModeEnabled(serial, false);
|
||||
ASSERT_OK(res);
|
||||
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_network->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_network->rspInfo.serial);
|
||||
if (getRadioHalCapabilities()) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error,
|
||||
{RadioError::REQUEST_NOT_SUPPORTED}));
|
||||
} else {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(
|
||||
radioRsp_network->rspInfo.error,
|
||||
{RadioError::RADIO_NOT_AVAILABLE, RadioError::INTERNAL_ERR,
|
||||
RadioError::INVALID_STATE, RadioError::REQUEST_NOT_SUPPORTED, RadioError::NONE}));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Test IRadioNetwork.isN1ModeEnabled() for the response returned.
|
||||
*/
|
||||
TEST_P(RadioNetworkTest, isN1ModeEnabled) {
|
||||
serial = GetRandomSerialNumber();
|
||||
|
||||
ndk::ScopedAStatus res = radio_network->isN1ModeEnabled(serial);
|
||||
ASSERT_OK(res);
|
||||
|
||||
EXPECT_EQ(std::cv_status::no_timeout, wait());
|
||||
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_network->rspInfo.type);
|
||||
EXPECT_EQ(serial, radioRsp_network->rspInfo.serial);
|
||||
if (getRadioHalCapabilities()) {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(radioRsp_network->rspInfo.error,
|
||||
{RadioError::REQUEST_NOT_SUPPORTED}));
|
||||
} else {
|
||||
ASSERT_TRUE(CheckAnyOfErrors(
|
||||
radioRsp_network->rspInfo.error,
|
||||
{RadioError::RADIO_NOT_AVAILABLE, RadioError::INTERNAL_ERR,
|
||||
RadioError::REQUEST_NOT_SUPPORTED, RadioError::NONE}));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,6 +161,11 @@ class RadioNetworkResponse : public BnRadioNetworkResponse {
|
||||
|
||||
virtual ndk::ScopedAStatus setNullCipherAndIntegrityEnabledResponse(
|
||||
const RadioResponseInfo& info) override;
|
||||
|
||||
virtual ndk::ScopedAStatus isN1ModeEnabledResponse(
|
||||
const RadioResponseInfo& info, bool isEnabled) override;
|
||||
|
||||
virtual ndk::ScopedAStatus setN1ModeEnabledResponse(const RadioResponseInfo& info) override;
|
||||
};
|
||||
|
||||
/* Callback class for radio network indication */
|
||||
|
||||
Reference in New Issue
Block a user