Merge "[conflict] Merge "Upgrade the version of IRadioNetwork to V2" am: 89417f14ef" into main-ims-dev
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsIndication.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsIndication.aidl
index f6d5bc4..63f29f3 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsIndication.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsIndication.aidl
@@ -36,5 +36,5 @@
interface IRadioImsIndication {
oneway void onConnectionSetupFailure(in android.hardware.radio.RadioIndicationType type, in String token, in android.hardware.radio.ims.ConnectionFailureInfo info);
oneway void notifyAnbr(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.ims.ImsStreamType mediaType, in android.hardware.radio.ims.ImsStreamDirection direction, int bitsPerSecond);
- oneway void triggerImsDeregistration(in android.hardware.radio.RadioIndicationType type);
+ oneway void triggerImsDeregistration(in android.hardware.radio.RadioIndicationType type, in android.hardware.radio.ims.ImsDeregistrationReason reason);
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsFailureReason.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsDeregistrationReason.aidl
similarity index 93%
copy from radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsFailureReason.aidl
copy to radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsDeregistrationReason.aidl
index 918ae3a..330374e 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsFailureReason.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsDeregistrationReason.aidl
@@ -1,7 +1,7 @@
/*
* Copyright (C) 2022 The Android Open Source Project
*
- * Licensed under the Apache License, Version 2.0 (the "License"),
+ * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
@@ -33,9 +33,8 @@
package android.hardware.radio.ims;
@Backing(type="int") @JavaDerive(toString=true) @VintfStability
-enum ImsFailureReason {
- NONE = 0,
- FATAL_ERROR = 1,
- REPEATED_ERROR = 2,
- TEMPORARY_ERROR = 3,
+enum ImsDeregistrationReason {
+ REASON_SIM_REMOVED = 1,
+ REASON_SIM_REFRESH = 2,
+ REASON_NETWORK_MODE_CHANGED = 3,
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsRegistration.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsRegistration.aidl
index 84ae2cb..1c4c12a 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsRegistration.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsRegistration.aidl
@@ -36,7 +36,7 @@
parcelable ImsRegistration {
android.hardware.radio.ims.ImsRegistrationState regState;
android.hardware.radio.AccessNetwork accessNetworkType;
- android.hardware.radio.ims.ImsFailureReason reason;
+ android.hardware.radio.ims.SuggestedAction suggestedAction;
int capabilities;
const int IMS_MMTEL_CAPABILITY_NONE = 0;
const int IMS_MMTEL_CAPABILITY_VOICE = 1;
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsFailureReason.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl
similarity index 95%
rename from radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsFailureReason.aidl
rename to radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl
index 918ae3a..da19774 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsFailureReason.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/SuggestedAction.aidl
@@ -33,9 +33,8 @@
package android.hardware.radio.ims;
@Backing(type="int") @JavaDerive(toString=true) @VintfStability
-enum ImsFailureReason {
+enum SuggestedAction {
NONE = 0,
- FATAL_ERROR = 1,
- REPEATED_ERROR = 2,
- TEMPORARY_ERROR = 3,
+ TRIGGER_PLMN_BLOCK = 1,
+ TRIGGER_PLMN_BLOCK_WITH_TIMEOUT = 2,
}
diff --git a/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl b/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl
index 7a8cc0e..ea286c4 100644
--- a/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl
+++ b/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl
@@ -18,6 +18,7 @@
import android.hardware.radio.RadioIndicationType;
import android.hardware.radio.ims.ConnectionFailureInfo;
+import android.hardware.radio.ims.ImsDeregistrationReason;
import android.hardware.radio.ims.ImsStreamDirection;
import android.hardware.radio.ims.ImsStreamType;
@@ -60,6 +61,7 @@
* the network detach procedure.
*
* @param type Type of radio indication
+ * @param reason the reason why the deregistration is triggered
*/
- void triggerImsDeregistration(in RadioIndicationType type);
+ void triggerImsDeregistration(in RadioIndicationType type, in ImsDeregistrationReason reason);
}
diff --git a/radio/aidl/android/hardware/radio/ims/ImsDeregistrationReason.aidl b/radio/aidl/android/hardware/radio/ims/ImsDeregistrationReason.aidl
new file mode 100644
index 0000000..83c0321
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/ims/ImsDeregistrationReason.aidl
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.radio.ims;
+
+@VintfStability
+@JavaDerive(toString=true)
+@Backing(type="int")
+enum ImsDeregistrationReason {
+ /**
+ * Radio shall send this reason to IMS stack to perform graceful de-registration
+ * due to SIM card is removed.
+ */
+ REASON_SIM_REMOVED = 1,
+ /**
+ * Radio shall send this reason to IMS stack to perform graceful de-registration
+ * due to SIM refresh that needs a NAS detach and re-attach.
+ */
+ REASON_SIM_REFRESH = 2,
+ /**
+ * Radio shall send this reason to IMS stack to perform graceful de-registration
+ * due to allowed network types bitmask changed that results in NAS detach.
+ */
+ REASON_NETWORK_MODE_CHANGED = 3,
+}
diff --git a/radio/aidl/android/hardware/radio/ims/ImsRegistration.aidl b/radio/aidl/android/hardware/radio/ims/ImsRegistration.aidl
index b727af0..662f9e9 100644
--- a/radio/aidl/android/hardware/radio/ims/ImsRegistration.aidl
+++ b/radio/aidl/android/hardware/radio/ims/ImsRegistration.aidl
@@ -17,8 +17,8 @@
package android.hardware.radio.ims;
import android.hardware.radio.AccessNetwork;
-import android.hardware.radio.ims.ImsFailureReason;
import android.hardware.radio.ims.ImsRegistrationState;
+import android.hardware.radio.ims.SuggestedAction;
@VintfStability
@JavaDerive(toString=true)
@@ -42,8 +42,8 @@
*/
AccessNetwork accessNetworkType;
- /** Indicates a failure reason for IMS registration. */
- ImsFailureReason reason;
+ /** Indicates the expected action for the radio to do. */
+ SuggestedAction suggestedAction;
/**
* Values are bitwise ORs of IMS_MMTEL_CAPABILITY_* constants and IMS_RCS_CAPABILITIES.
diff --git a/radio/aidl/android/hardware/radio/ims/ImsFailureReason.aidl b/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl
similarity index 82%
rename from radio/aidl/android/hardware/radio/ims/ImsFailureReason.aidl
rename to radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl
index 21da582..a17b8a4 100644
--- a/radio/aidl/android/hardware/radio/ims/ImsFailureReason.aidl
+++ b/radio/aidl/android/hardware/radio/ims/SuggestedAction.aidl
@@ -19,26 +19,19 @@
@VintfStability
@JavaDerive(toString=true)
@Backing(type="int")
-enum ImsFailureReason {
+enum SuggestedAction {
/** Default value */
- NONE,
-
+ NONE = 0,
/**
* Indicates that the IMS registration is failed with fatal error such as 403 or 404
* on all P-CSCF addresses. The radio shall block the current PLMN or disable
* the RAT as per the carrier requirements.
*/
- FATAL_ERROR,
-
+ TRIGGER_PLMN_BLOCK = 1 << 0,
/**
* Indicates that the IMS registration on current PLMN failed multiple times.
- * The radio shall block the current PLMN or disable the RAT as per the
- * carrier requirements.
+ * The radio shall block the current PLMN or disable the RAT during EPS or 5GS mobility
+ * management timer value as per the carrier requirements.
*/
- REPEATED_ERROR,
-
- /**
- * Indicates that IMS registration has failed temporarily. A retry will be done shortly.
- */
- TEMPORARY_ERROR,
+ TRIGGER_PLMN_BLOCK_WITH_TIMEOUT = 1 << 1,
}
diff --git a/radio/aidl/vts/radio_ims_indication.cpp b/radio/aidl/vts/radio_ims_indication.cpp
index 0637813..8e98d85 100644
--- a/radio/aidl/vts/radio_ims_indication.cpp
+++ b/radio/aidl/vts/radio_ims_indication.cpp
@@ -28,6 +28,7 @@
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus RadioImsIndication::triggerImsDeregistration(RadioIndicationType /*type*/) {
+ndk::ScopedAStatus RadioImsIndication::triggerImsDeregistration(RadioIndicationType /*type*/,
+ ImsDeregistrationReason /*reason*/) {
return ndk::ScopedAStatus::ok();
}
\ No newline at end of file
diff --git a/radio/aidl/vts/radio_ims_utils.h b/radio/aidl/vts/radio_ims_utils.h
index bf5684d..98fd3cb 100644
--- a/radio/aidl/vts/radio_ims_utils.h
+++ b/radio/aidl/vts/radio_ims_utils.h
@@ -68,7 +68,8 @@
virtual ndk::ScopedAStatus notifyAnbr(RadioIndicationType type, ImsStreamType mediaType,
ImsStreamDirection direction, int bitsPerSecond) override;
- virtual ndk::ScopedAStatus triggerImsDeregistration(RadioIndicationType type) override;
+ virtual ndk::ScopedAStatus triggerImsDeregistration(RadioIndicationType type,
+ ImsDeregistrationReason reason) override;
};
// The main test class for Radio AIDL Ims.