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

Commit 163c38de authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 8068644 from db7565b9 to sc-v2-release

Change-Id: Ic8e5c65d2d4f30202bcb2704b0bac02a009aaec3
parents 5ebc8dbb db7565b9
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -226,6 +226,7 @@ public class QosCallbackTracker {

    private boolean matchesByLocalAddress(
        QosBearerFilter sessionFilter, final IFilter filter) {
        if (sessionFilter.getLocalPortRange() == null) return false;
        for (final LinkAddress qosAddress: sessionFilter.getLocalAddresses()) {
            return filter.matchesLocalAddress(qosAddress.getAddress(),
                  sessionFilter.getLocalPortRange().getStart(),
@@ -236,6 +237,7 @@ public class QosCallbackTracker {

    private boolean matchesByRemoteAddress(
            QosBearerFilter sessionFilter, final IFilter filter) {
        if (sessionFilter.getRemotePortRange() == null) return false;
        for (final LinkAddress qosAddress : sessionFilter.getRemoteAddresses()) {
            return filter.matchesRemoteAddress(qosAddress.getAddress(),
                  sessionFilter.getRemotePortRange().getStart(),
@@ -246,6 +248,8 @@ public class QosCallbackTracker {

    private boolean matchesByRemoteAndLocalAddress(
            QosBearerFilter sessionFilter, final IFilter filter) {
        if (sessionFilter.getLocalPortRange() == null
                || sessionFilter.getRemotePortRange() == null) return false;
        for (final LinkAddress remoteAddress : sessionFilter.getRemoteAddresses()) {
            for (final LinkAddress localAddress : sessionFilter.getLocalAddresses()) {
                return filter.matchesRemoteAddress(remoteAddress.getAddress(),
@@ -273,17 +277,21 @@ public class QosCallbackTracker {
        for (final QosBearerFilter sessionFilter : qosBearerSession.getQosBearerFilterList()) {
           if (!sessionFilter.getLocalAddresses().isEmpty()
                   && !sessionFilter.getRemoteAddresses().isEmpty()
                   && sessionFilter.getLocalPortRange() != null
                   && sessionFilter.getLocalPortRange().isValid()
                   && sessionFilter.getRemotePortRange() != null
                   && sessionFilter.getRemotePortRange().isValid()) {
               if (matchesByRemoteAndLocalAddress(sessionFilter, filter)) {
                   qosFilter = getFilterByPrecedence(qosFilter, sessionFilter);
               }
           } else if (!sessionFilter.getRemoteAddresses().isEmpty()
                   && sessionFilter.getRemotePortRange() != null
                   && sessionFilter.getRemotePortRange().isValid()) {
               if (matchesByRemoteAddress(sessionFilter, filter)) {
                   qosFilter = getFilterByPrecedence(qosFilter, sessionFilter);
               }
           } else if (!sessionFilter.getLocalAddresses().isEmpty()
                   && sessionFilter.getLocalPortRange() != null
                   && sessionFilter.getLocalPortRange().isValid()) {
               if (matchesByLocalAddress(sessionFilter, filter)) {
                   qosFilter = getFilterByPrecedence(qosFilter, sessionFilter);
@@ -297,7 +305,8 @@ public class QosCallbackTracker {
            @NonNull final QosBearerSession session, @NonNull IFilter filter) {
        QosBearerFilter qosBearerFilter = getMatchingQosBearerFilter(session, filter);
        List<InetSocketAddress> remoteAddresses = new ArrayList<>();
        if(qosBearerFilter.getRemoteAddresses().size() > 0) {
        if (qosBearerFilter.getRemoteAddresses().size() > 0
                && qosBearerFilter.getRemotePortRange() != null) {
            remoteAddresses.add(
                  new InetSocketAddress(qosBearerFilter.getRemoteAddresses().get(0).getAddress(),
                  qosBearerFilter.getRemotePortRange().getStart()));
@@ -387,6 +396,7 @@ public class QosCallbackTracker {
    private boolean doesLocalConnectionInfoExist(final QosBearerSession qosBearerSession) {
        for (final QosBearerFilter sessionFilter : qosBearerSession.getQosBearerFilterList()) {
            if (!sessionFilter.getLocalAddresses().isEmpty()
                    && sessionFilter.getLocalPortRange() != null
                    && sessionFilter.getLocalPortRange().isValid()) {
                return true;
            }
@@ -397,6 +407,7 @@ public class QosCallbackTracker {
    private boolean doesRemoteConnectionInfoExist(final QosBearerSession qosBearerSession) {
        for (final QosBearerFilter sessionFilter : qosBearerSession.getQosBearerFilterList()) {
            if (!sessionFilter.getRemoteAddresses().isEmpty()
                    && sessionFilter.getRemotePortRange() != null
                    && sessionFilter.getRemotePortRange().isValid()) {
                return true;
            }
+68 −0
Original line number Diff line number Diff line
/*
 * Copyright 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 com.android.internal.telephony.dataconnection;

import static com.android.internal.telephony.dataconnection.QosCallbackTrackerTest.createEpsQos;
import static com.android.internal.telephony.dataconnection.QosCallbackTrackerTest.createIpv4QosFilter;

import static com.google.common.truth.Truth.assertThat;

import android.os.Parcel;
import android.telephony.data.QosBearerFilter;
import android.telephony.data.QosBearerSession;

import com.android.internal.telephony.TelephonyTest;

import org.junit.Test;

import java.util.ArrayList;

public class QosBearerSessionTest extends TelephonyTest {

    @Test
    public void testParcel() {
        ArrayList<QosBearerFilter> qosFilters = new ArrayList<>();
        qosFilters.add(createIpv4QosFilter("122.22.22.22",
                new QosBearerFilter.PortRange(2222, 2222), 45));
        QosBearerSession qosBearerSession = new QosBearerSession(1235,
                createEpsQos(5, 6, 7, 8), qosFilters);

        Parcel p = Parcel.obtain();
        qosBearerSession.writeToParcel(p, 0);
        p.setDataPosition(0);

        QosBearerSession qosBearerSession2 = QosBearerSession.CREATOR.createFromParcel(p);
        assertThat(qosBearerSession).isEqualTo(qosBearerSession2);
    }

    @Test
    public void testEquals() {
        ArrayList<QosBearerFilter> qosFilters = new ArrayList<>();
        qosFilters.add(createIpv4QosFilter("122.22.22.22",
                new QosBearerFilter.PortRange(2222, 2222), 45));
        QosBearerSession qosBearerSession = new QosBearerSession(1235,
                createEpsQos(5, 6, 7, 8), qosFilters);

        ArrayList<QosBearerFilter> qosFilters2 = new ArrayList<>();
        qosFilters2.add(createIpv4QosFilter("122.22.22.22",
                new QosBearerFilter.PortRange(2222, 2222), 45));
        QosBearerSession qosBearerSession2 = new QosBearerSession(1235,
                createEpsQos(5, 6, 7, 8), qosFilters2);

        assertThat(qosBearerSession).isEqualTo(qosBearerSession2);
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ public class QosCallbackTrackerTest extends TelephonyTest {
        super.tearDown();
    }

    private EpsQos createEpsQos(int dlMbr, int ulMbr, int dlGbr, int ulGbr) {
    public static EpsQos createEpsQos(int dlMbr, int ulMbr, int dlGbr, int ulGbr) {
        // Build android.hardware.radio.V1_6.EpsQos
        android.hardware.radio.V1_6.EpsQos halEpsQos = new android.hardware.radio.V1_6.EpsQos();
        halEpsQos.qci = 4;
@@ -126,7 +126,7 @@ public class QosCallbackTrackerTest extends TelephonyTest {
        return new EpsQos(halEpsQos);
    }

    private QosBearerFilter createIpv4QosFilter(String localAddress,
    public static QosBearerFilter createIpv4QosFilter(String localAddress,
            QosBearerFilter.PortRange localPort, int precedence) {
        return new QosBearerFilter(
                Arrays.asList(
@@ -135,7 +135,7 @@ public class QosCallbackTrackerTest extends TelephonyTest {
                7, 987, 678, QosBearerFilter.QOS_FILTER_DIRECTION_BIDIRECTIONAL, precedence);
    }

    private QosBearerFilter createIpv4QosFilter(String localAddress, String remoteAddress,
    public static QosBearerFilter createIpv4QosFilter(String localAddress, String remoteAddress,
            QosBearerFilter.PortRange localPort, QosBearerFilter.PortRange remotePort,
            int precedence) {
        return new QosBearerFilter(