Update ANBR Apis
- remove setAnbrEnabled and setAnbrEnabledResponse
- change qosSessionId to mediaType
Bug: 224905346
Test: Build
Change-Id: I2e944c8068b26727d4c437c1f5aa38d1fb79b034
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioIms.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioIms.aidl
index 8a0c210..f774555 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioIms.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioIms.aidl
@@ -39,6 +39,5 @@
oneway void startImsTraffic(int serial, in String token, android.hardware.radio.ims.ImsTrafficType imsTrafficType, android.hardware.radio.AccessNetwork accessNetworkType);
oneway void stopImsTraffic(int serial, in String token);
oneway void setResponseFunctions(in android.hardware.radio.ims.IRadioImsResponse radioImsResponse, in android.hardware.radio.ims.IRadioImsIndication radioImsIndication);
- oneway void setAnbrEnabled(int serial, int qosSessionId, boolean isEnabled);
- oneway void sendAnbrQuery(int serial, int qosSessionId, android.hardware.radio.ims.ImsStreamDirection direction, int bitsPerSecond);
+ oneway void sendAnbrQuery(int serial, android.hardware.radio.ims.ImsStreamType mediaType, android.hardware.radio.ims.ImsStreamDirection direction, int bitsPerSecond);
}
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 d91fb0b..f6d5bc4 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
@@ -35,6 +35,6 @@
@VintfStability
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, int qosSessionId, android.hardware.radio.ims.ImsStreamDirection direction, int bitsPerSecond);
+ 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);
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsResponse.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsResponse.aidl
index c75c7ea..6f6b446 100644
--- a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsResponse.aidl
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/IRadioImsResponse.aidl
@@ -38,6 +38,5 @@
oneway void updateImsRegistrationInfoResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void startImsTrafficResponse(in android.hardware.radio.RadioResponseInfo info, in @nullable android.hardware.radio.ims.ConnectionFailureInfo failureInfo);
oneway void stopImsTrafficResponse(in android.hardware.radio.RadioResponseInfo info);
- oneway void setAnbrEnabledResponse(in android.hardware.radio.RadioResponseInfo info);
oneway void sendAnbrQueryResponse(in android.hardware.radio.RadioResponseInfo info);
}
diff --git a/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsStreamType.aidl b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsStreamType.aidl
new file mode 100644
index 0000000..10c477f
--- /dev/null
+++ b/radio/aidl/aidl_api/android.hardware.radio.ims/current/android/hardware/radio/ims/ImsStreamType.aidl
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.hardware.radio.ims;
+@Backing(type="int") @VintfStability
+enum ImsStreamType {
+ AUDIO = 1,
+ VIDEO = 2,
+}
diff --git a/radio/aidl/android/hardware/radio/ims/IRadioIms.aidl b/radio/aidl/android/hardware/radio/ims/IRadioIms.aidl
index 77b6c9a..ea7bc04 100644
--- a/radio/aidl/android/hardware/radio/ims/IRadioIms.aidl
+++ b/radio/aidl/android/hardware/radio/ims/IRadioIms.aidl
@@ -23,6 +23,8 @@
import android.hardware.radio.ims.IRadioImsIndication;
import android.hardware.radio.ims.IRadioImsResponse;
import android.hardware.radio.ims.SrvccCall;
+import android.hardware.radio.ims.ImsStreamDirection;
+import android.hardware.radio.ims.ImsStreamType;
/**
* This interface is used by IMS telephony layer to talk to cellular radio.
@@ -102,32 +104,16 @@
in IRadioImsIndication radioImsIndication);
/**
- * Access Network Bitrate Recommendation (ANBR), see 3GPP TS 26.114.
- * This API is used to enable or disable the ANBR feature
- * for the bearer corresponding to the qosSessionId
- * This will be invoked when both parties in a call support the ANBR feature
- * In case of video call, the modem shall use qosSessionId to identify
- * appropriate media stream
- *
- * @param serial Serial number of request
- * @param qosSessionId QoS session ID is used to identify media stream such as audio or video
- * @param isEnabled True if Anbr feature is enabled, false otherwise
- *
- * Response function is IRadioImsResponse.setAnbrEnabledResponse()
- */
- void setAnbrEnabled(int serial, int qosSessionId, boolean isEnabled);
-
- /**
* Access Network Bitrate Recommendation Query (ANBRQ), see 3GPP TS 26.114.
* This API triggers radio to send ANBRQ message
* to the access network to query the desired bitrate.
*
* @param serial Serial number of request
- * @param qosSessionId QoS session ID is used to identify media stream such as audio or video
+ * @param mediaType Media type is used to identify media stream such as audio or video
* @param direction Direction of this packet stream (e.g. uplink or downlink)
* @param bitsPerSecond The bit rate requested by the opponent UE
*
* Response function is IRadioImsResponse.sendAnbrQueryResponse()
*/
- void sendAnbrQuery(int serial, int qosSessionId, ImsStreamDirection direction, int bitsPerSecond);
+ void sendAnbrQuery(int serial, ImsStreamType mediaType, ImsStreamDirection direction, int bitsPerSecond);
}
diff --git a/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl b/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl
index 74a2107..7a8cc0e 100644
--- a/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl
+++ b/radio/aidl/android/hardware/radio/ims/IRadioImsIndication.aidl
@@ -19,6 +19,7 @@
import android.hardware.radio.RadioIndicationType;
import android.hardware.radio.ims.ConnectionFailureInfo;
import android.hardware.radio.ims.ImsStreamDirection;
+import android.hardware.radio.ims.ImsStreamType;
/**
* Interface declaring unsolicited radio indications for ims APIs.
@@ -42,13 +43,13 @@
* Notifies the bit rate received from the network via ANBR message
*
* @param type Type of radio indication
- * @param qosSessionId QoS session ID is used to identify media stream such as audio or video
+ * @param mediaType Media type is used to identify media stream such as audio or video
* @param direction Direction of this packet stream (e.g. uplink or downlink)
* @param bitsPerSecond The recommended bit rate for the UE
* for a specific logical channel and a specific direction by NW
*/
- void notifyAnbr(in RadioIndicationType type, int qosSessionId, ImsStreamDirection direction,
- int bitsPerSecond);
+ void notifyAnbr(in RadioIndicationType type, in ImsStreamType mediaType,
+ in ImsStreamDirection direction, int bitsPerSecond);
/**
* Fired by radio when a graceful IMS deregistration needs to be performed by telephony
diff --git a/radio/aidl/android/hardware/radio/ims/IRadioImsResponse.aidl b/radio/aidl/android/hardware/radio/ims/IRadioImsResponse.aidl
index e5a3a6c..f15b422 100644
--- a/radio/aidl/android/hardware/radio/ims/IRadioImsResponse.aidl
+++ b/radio/aidl/android/hardware/radio/ims/IRadioImsResponse.aidl
@@ -110,22 +110,5 @@
* RadioError:REQUEST_NOT_SUPPORTED
* RadioError:NO_RESOURCES
*/
- void setAnbrEnabledResponse(in RadioResponseInfo info);
-
- /**
- * @param info Response info struct containing response type, serial no. and error
- *
- * Valid errors returned:
- * RadioError:NONE
- * RadioError:RADIO_NOT_AVAILABLE
- * RadioError:INVALID_STATE
- * RadioError:NO_MEMORY
- * RadioError:SYSTEM_ERR
- * RadioError:MODEM_ERR
- * RadioError:INTERNAL_ERR
- * RadioError:INVALID_ARGUMENTS
- * RadioError:REQUEST_NOT_SUPPORTED
- * RadioError:NO_RESOURCES
- */
void sendAnbrQueryResponse(in RadioResponseInfo info);
}
diff --git a/radio/aidl/android/hardware/radio/ims/ImsStreamType.aidl b/radio/aidl/android/hardware/radio/ims/ImsStreamType.aidl
new file mode 100644
index 0000000..c12a0c1
--- /dev/null
+++ b/radio/aidl/android/hardware/radio/ims/ImsStreamType.aidl
@@ -0,0 +1,26 @@
+/*
+ * 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
+@Backing(type="int")
+enum ImsStreamType {
+ /** Media Stream Type - Audio **/
+ AUDIO = 1,
+ /** Media Stream Type - Video **/
+ VIDEO = 2,
+}
diff --git a/radio/aidl/vts/radio_ims_indication.cpp b/radio/aidl/vts/radio_ims_indication.cpp
index 9c821ff..0637813 100644
--- a/radio/aidl/vts/radio_ims_indication.cpp
+++ b/radio/aidl/vts/radio_ims_indication.cpp
@@ -24,7 +24,7 @@
}
ndk::ScopedAStatus RadioImsIndication::notifyAnbr(RadioIndicationType /*type*/,
- int /*qosSessionId*/, ImsStreamDirection /*direction*/, int /*bitsPerSecond*/) {
+ ImsStreamType /*mediaType*/, ImsStreamDirection /*direction*/, int /*bitsPerSecond*/) {
return ndk::ScopedAStatus::ok();
}
diff --git a/radio/aidl/vts/radio_ims_response.cpp b/radio/aidl/vts/radio_ims_response.cpp
index fa34dc1..7a90ebd 100644
--- a/radio/aidl/vts/radio_ims_response.cpp
+++ b/radio/aidl/vts/radio_ims_response.cpp
@@ -45,12 +45,6 @@
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus RadioImsResponse::setAnbrEnabledResponse(const RadioResponseInfo& info) {
- rspInfo = info;
- parent_ims.notify(info.serial);
- return ndk::ScopedAStatus::ok();
-}
-
ndk::ScopedAStatus RadioImsResponse::sendAnbrQueryResponse(const RadioResponseInfo& info) {
rspInfo = info;
parent_ims.notify(info.serial);
diff --git a/radio/aidl/vts/radio_ims_test.cpp b/radio/aidl/vts/radio_ims_test.cpp
index 84b7c6a..d3bdd4b 100644
--- a/radio/aidl/vts/radio_ims_test.cpp
+++ b/radio/aidl/vts/radio_ims_test.cpp
@@ -164,32 +164,6 @@
}
/*
- * Test IRadioIms.setAnbrEnabled() for the response returned.
- */
-TEST_P(RadioImsTest, setAnbrEnabled) {
- if (!deviceSupportsFeature(FEATURE_TELEPHONY_IMS)) {
- ALOGI("Skipping setAnbrEnabled because ims is not supported in device");
- return;
- } else {
- ALOGI("Running setAnbrEnabled because ims is supported in device");
- }
-
- serial = GetRandomSerialNumber();
-
- ndk::ScopedAStatus res =
- radio_ims->setAnbrEnabled(serial, 1, true);
- ASSERT_OK(res);
- EXPECT_EQ(std::cv_status::no_timeout, wait());
- EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_ims->rspInfo.type);
- EXPECT_EQ(serial, radioRsp_ims->rspInfo.serial);
-
- ALOGI("setAnbrEnabled, rspInfo.error = %s\n",
- toString(radioRsp_ims->rspInfo.error).c_str());
-
- verifyError(radioRsp_ims->rspInfo.error);
-}
-
-/*
* Test IRadioIms.sendAnbrQuery() for the response returned.
*/
TEST_P(RadioImsTest, sendAnbrQuery) {
@@ -203,7 +177,7 @@
serial = GetRandomSerialNumber();
ndk::ScopedAStatus res =
- radio_ims->sendAnbrQuery(serial, 1, ImsStreamDirection::UPLINK, 13200);
+ radio_ims->sendAnbrQuery(serial, ImsStreamType::AUDIO, ImsStreamDirection::UPLINK, 13200);
ASSERT_OK(res);
EXPECT_EQ(std::cv_status::no_timeout, wait());
EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_ims->rspInfo.type);
diff --git a/radio/aidl/vts/radio_ims_utils.h b/radio/aidl/vts/radio_ims_utils.h
index 2967476..c9ecf4a 100644
--- a/radio/aidl/vts/radio_ims_utils.h
+++ b/radio/aidl/vts/radio_ims_utils.h
@@ -48,8 +48,6 @@
virtual ndk::ScopedAStatus stopImsTrafficResponse(const RadioResponseInfo& info) override;
- virtual ndk::ScopedAStatus setAnbrEnabledResponse(const RadioResponseInfo& info) override;
-
virtual ndk::ScopedAStatus sendAnbrQueryResponse(const RadioResponseInfo& info) override;
};
@@ -65,7 +63,7 @@
virtual ndk::ScopedAStatus onConnectionSetupFailure(RadioIndicationType type,
const std::string& token, const ConnectionFailureInfo& info) override;
- virtual ndk::ScopedAStatus notifyAnbr(RadioIndicationType type, int qosSessionId,
+ virtual ndk::ScopedAStatus notifyAnbr(RadioIndicationType type, ImsStreamType mediaType,
ImsStreamDirection direction, int bitsPerSecond) override;
virtual ndk::ScopedAStatus triggerImsDeregistration(RadioIndicationType type) override;