Added pdu session id to setupDataCall

The pdu session id needs to be passed to setup data call on handover

(clean cherry-pick)

Test: Tested that handover still worked with logs.  IWlan -> Cell + Cell -> IWlan
Bug: 161572859
Merged-In: I0e11c8997674cdaad4bb82491d818ca85ee197d1
Change-Id: I0e11c8997674cdaad4bb82491d818ca85ee197d1
This commit is contained in:
Daniel Bright
2020-11-03 14:56:23 -08:00
parent 39c8747585
commit 3c72fbafce
5 changed files with 13 additions and 9 deletions

View File

@@ -114,6 +114,9 @@ interface IRadio extends @1.5::IRadio {
* addresses of the existing data connection. The format is defined in RFC-4291 section 2.2.
* For example, "192.0.1.3" or "2001:db8::1". This parameter must be ignored unless reason
* is DataRequestReason:HANDOVER.
* @param pduSessionId The pdu session id to be used for this data call. A value of 0 means
* no pdu session id was attached to this call.
* Reference: 3GPP TS 24.007 section 11.2.3.1b
*
* Response function is IRadioResponse.setupDataCallResponse_1_6()
*
@@ -121,7 +124,8 @@ interface IRadio extends @1.5::IRadio {
*/
oneway setupDataCall_1_6(int32_t serial, AccessNetwork accessNetwork,
DataProfileInfo dataProfileInfo, bool roamingAllowed,
DataRequestReason reason, vec<LinkAddress> addresses, vec<string> dnses);
DataRequestReason reason, vec<LinkAddress> addresses, vec<string> dnses,
int32_t pduSessionId);
/**
* Send an SMS message
@@ -290,12 +294,12 @@ interface IRadio extends @1.5::IRadio {
* @param serial Serial number of request.
* @param id callId The identifier of the data call which is provided in SetupDataCallResult
*
* Response function is IRadioResponse.beginHandoverResponse()
* Response function is IRadioResponse.startHandoverResponse()
*/
oneway beginHandover(int32_t serial, int32_t callId);
oneway startHandover(int32_t serial, int32_t callId);
/**
* Indicates that a handover was cancelled after a call to IRadio::beginHandover.
* Indicates that a handover was cancelled after a call to IRadio::startHandover.
*
* Since the handover was unsuccessful, the modem retains ownership over any of the resources
* being transferred and is still responsible for releasing them.

View File

@@ -241,7 +241,7 @@ interface IRadioResponse extends @1.5::IRadioResponse {
/**
* @param info Response info struct containing response type, serial no. and error
* @param id The allocated id. On an error, this is set to -1
* @param id The allocated id. On an error, this is set to 0.
*
* Valid errors returned:
* RadioError:NONE
@@ -275,7 +275,7 @@ interface IRadioResponse extends @1.5::IRadioResponse {
* RadioError:REQUEST_NOT_SUPPORTED
* RadioError:INVALID_CALL_ID
*/
oneway beginHandoverResponse(RadioResponseInfo info);
oneway startHandoverResponse(RadioResponseInfo info);
/**
* @param info Response info struct containing response type, serial no. and error

View File

@@ -57,7 +57,7 @@ TEST_P(RadioHidlTest_v1_6, setupDataCall_1_6) {
::android::hardware::radio::V1_2::DataRequestReason::NORMAL;
Return<void> res = radio_v1_6->setupDataCall_1_6(serial, accessNetwork, dataProfileInfo,
roamingAllowed, reason, addresses, dnses);
roamingAllowed, reason, addresses, dnses, -1);
ASSERT_OK(res);
EXPECT_EQ(std::cv_status::no_timeout, wait());

View File

@@ -784,7 +784,7 @@ class RadioResponse_v1_6 : public ::android::hardware::radio::V1_6::IRadioRespon
Return<void> releasePduSessionIdResponse(
const ::android::hardware::radio::V1_6::RadioResponseInfo& info);
Return<void> beginHandoverResponse(
Return<void> startHandoverResponse(
const ::android::hardware::radio::V1_6::RadioResponseInfo& info);
Return<void> cancelHandoverResponse(

View File

@@ -1136,7 +1136,7 @@ Return<void> RadioResponse_v1_6::releasePduSessionIdResponse(
return Void();
}
Return<void> RadioResponse_v1_6::beginHandoverResponse(
Return<void> RadioResponse_v1_6::startHandoverResponse(
const ::android::hardware::radio::V1_6::RadioResponseInfo& info) {
rspInfo = info;
parent_v1_6.notify(info.serial);