Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7674b03f authored by Daniel Bright's avatar Daniel Bright
Browse files

Added pdu session id to setupDataCall

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

Test: Tested that handover still worked with logs.  IWlan -> Cell + Cell -> IWlan
Bug: 161572859
Change-Id: I0e11c8997674cdaad4bb82491d818ca85ee197d1
parent 357a2d40
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -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.
+2 −2
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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());
+1 −1
Original line number Diff line number Diff line
@@ -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(
+1 −1
Original line number Diff line number Diff line
@@ -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);