Loading src/java/com/android/internal/telephony/data/DataUtils.java +1 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ public class DataUtils { case NetworkCapabilities.NET_CAPABILITY_VSIM: return "VSIM"; case NetworkCapabilities.NET_CAPABILITY_BIP: return "BIP"; case NetworkCapabilities.NET_CAPABILITY_HEAD_UNIT: return "HEAD_UNIT"; case NetworkCapabilities.NET_CAPABILITY_MMTEL: return "MMTEL"; default: return "Unknown(" + Integer.toString(netCap) + ")"; } Loading src/java/com/android/internal/telephony/data/PhoneSwitcher.java +1 −0 Original line number Diff line number Diff line Loading @@ -557,6 +557,7 @@ public class PhoneSwitcher extends Handler { .addCapability(NetworkCapabilities.NET_CAPABILITY_CBS) .addCapability(NetworkCapabilities.NET_CAPABILITY_IA) .addCapability(NetworkCapabilities.NET_CAPABILITY_RCS) .addCapability(NetworkCapabilities.NET_CAPABILITY_MMTEL) .addCapability(NetworkCapabilities.NET_CAPABILITY_XCAP) .addCapability(NetworkCapabilities.NET_CAPABILITY_ENTERPRISE) .addCapability(NetworkCapabilities.NET_CAPABILITY_EIMS) Loading src/java/com/android/internal/telephony/data/QosCallbackTracker.java +16 −5 Original line number Diff line number Diff line Loading @@ -280,6 +280,7 @@ public class QosCallbackTracker extends Handler { private boolean matchesByLocalAddress(final @NonNull QosBearerFilter sessionFilter, final @NonNull IFilter filter) { if (sessionFilter.getLocalPortRange() == null) return false; for (final LinkAddress qosAddress : sessionFilter.getLocalAddresses()) { return filter.matchesLocalAddress(qosAddress.getAddress(), sessionFilter.getLocalPortRange().getStart(), Loading @@ -290,6 +291,7 @@ public class QosCallbackTracker extends Handler { private boolean matchesByRemoteAddress(@NonNull QosBearerFilter sessionFilter, final @NonNull IFilter filter) { if (sessionFilter.getRemotePortRange() == null) return false; for (final LinkAddress qosAddress : sessionFilter.getRemoteAddresses()) { return filter.matchesRemoteAddress(qosAddress.getAddress(), sessionFilter.getRemotePortRange().getStart(), Loading @@ -300,6 +302,8 @@ public class QosCallbackTracker extends Handler { private boolean matchesByRemoteAndLocalAddress(@NonNull QosBearerFilter sessionFilter, final @NonNull 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(), Loading Loading @@ -327,17 +331,21 @@ public class QosCallbackTracker extends Handler { 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); Loading @@ -351,7 +359,8 @@ public class QosCallbackTracker extends Handler { @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())); Loading Loading @@ -437,6 +446,7 @@ public class QosCallbackTracker extends Handler { private boolean doesLocalConnectionInfoExist(final QosBearerSession qosBearerSession) { for (final QosBearerFilter sessionFilter : qosBearerSession.getQosBearerFilterList()) { if (!sessionFilter.getLocalAddresses().isEmpty() && sessionFilter.getLocalPortRange() != null && sessionFilter.getLocalPortRange().isValid()) { return true; } Loading @@ -447,6 +457,7 @@ public class QosCallbackTracker extends Handler { private boolean doesRemoteConnectionInfoExist(final QosBearerSession qosBearerSession) { for (final QosBearerFilter sessionFilter : qosBearerSession.getQosBearerFilterList()) { if (!sessionFilter.getRemoteAddresses().isEmpty() && sessionFilter.getRemotePortRange() != null && sessionFilter.getRemotePortRange().isValid()) { return true; } Loading src/java/com/android/internal/telephony/data/TelephonyNetworkFactory.java +1 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,7 @@ public class TelephonyNetworkFactory extends NetworkFactory { .addCapability(NetworkCapabilities.NET_CAPABILITY_CBS) .addCapability(NetworkCapabilities.NET_CAPABILITY_IA) .addCapability(NetworkCapabilities.NET_CAPABILITY_RCS) .addCapability(NetworkCapabilities.NET_CAPABILITY_MMTEL) .addCapability(NetworkCapabilities.NET_CAPABILITY_XCAP) .addCapability(NetworkCapabilities.NET_CAPABILITY_ENTERPRISE) .addCapability(NetworkCapabilities.NET_CAPABILITY_EIMS) Loading tests/telephonytests/src/com/android/internal/telephony/data/QosBearerSessionTest.java 0 → 100644 +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.data; import static com.android.internal.telephony.data.QosCallbackTrackerTest.createEpsQos; import static com.android.internal.telephony.data.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); } } Loading
src/java/com/android/internal/telephony/data/DataUtils.java +1 −0 Original line number Diff line number Diff line Loading @@ -130,6 +130,7 @@ public class DataUtils { case NetworkCapabilities.NET_CAPABILITY_VSIM: return "VSIM"; case NetworkCapabilities.NET_CAPABILITY_BIP: return "BIP"; case NetworkCapabilities.NET_CAPABILITY_HEAD_UNIT: return "HEAD_UNIT"; case NetworkCapabilities.NET_CAPABILITY_MMTEL: return "MMTEL"; default: return "Unknown(" + Integer.toString(netCap) + ")"; } Loading
src/java/com/android/internal/telephony/data/PhoneSwitcher.java +1 −0 Original line number Diff line number Diff line Loading @@ -557,6 +557,7 @@ public class PhoneSwitcher extends Handler { .addCapability(NetworkCapabilities.NET_CAPABILITY_CBS) .addCapability(NetworkCapabilities.NET_CAPABILITY_IA) .addCapability(NetworkCapabilities.NET_CAPABILITY_RCS) .addCapability(NetworkCapabilities.NET_CAPABILITY_MMTEL) .addCapability(NetworkCapabilities.NET_CAPABILITY_XCAP) .addCapability(NetworkCapabilities.NET_CAPABILITY_ENTERPRISE) .addCapability(NetworkCapabilities.NET_CAPABILITY_EIMS) Loading
src/java/com/android/internal/telephony/data/QosCallbackTracker.java +16 −5 Original line number Diff line number Diff line Loading @@ -280,6 +280,7 @@ public class QosCallbackTracker extends Handler { private boolean matchesByLocalAddress(final @NonNull QosBearerFilter sessionFilter, final @NonNull IFilter filter) { if (sessionFilter.getLocalPortRange() == null) return false; for (final LinkAddress qosAddress : sessionFilter.getLocalAddresses()) { return filter.matchesLocalAddress(qosAddress.getAddress(), sessionFilter.getLocalPortRange().getStart(), Loading @@ -290,6 +291,7 @@ public class QosCallbackTracker extends Handler { private boolean matchesByRemoteAddress(@NonNull QosBearerFilter sessionFilter, final @NonNull IFilter filter) { if (sessionFilter.getRemotePortRange() == null) return false; for (final LinkAddress qosAddress : sessionFilter.getRemoteAddresses()) { return filter.matchesRemoteAddress(qosAddress.getAddress(), sessionFilter.getRemotePortRange().getStart(), Loading @@ -300,6 +302,8 @@ public class QosCallbackTracker extends Handler { private boolean matchesByRemoteAndLocalAddress(@NonNull QosBearerFilter sessionFilter, final @NonNull 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(), Loading Loading @@ -327,17 +331,21 @@ public class QosCallbackTracker extends Handler { 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); Loading @@ -351,7 +359,8 @@ public class QosCallbackTracker extends Handler { @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())); Loading Loading @@ -437,6 +446,7 @@ public class QosCallbackTracker extends Handler { private boolean doesLocalConnectionInfoExist(final QosBearerSession qosBearerSession) { for (final QosBearerFilter sessionFilter : qosBearerSession.getQosBearerFilterList()) { if (!sessionFilter.getLocalAddresses().isEmpty() && sessionFilter.getLocalPortRange() != null && sessionFilter.getLocalPortRange().isValid()) { return true; } Loading @@ -447,6 +457,7 @@ public class QosCallbackTracker extends Handler { private boolean doesRemoteConnectionInfoExist(final QosBearerSession qosBearerSession) { for (final QosBearerFilter sessionFilter : qosBearerSession.getQosBearerFilterList()) { if (!sessionFilter.getRemoteAddresses().isEmpty() && sessionFilter.getRemotePortRange() != null && sessionFilter.getRemotePortRange().isValid()) { return true; } Loading
src/java/com/android/internal/telephony/data/TelephonyNetworkFactory.java +1 −0 Original line number Diff line number Diff line Loading @@ -156,6 +156,7 @@ public class TelephonyNetworkFactory extends NetworkFactory { .addCapability(NetworkCapabilities.NET_CAPABILITY_CBS) .addCapability(NetworkCapabilities.NET_CAPABILITY_IA) .addCapability(NetworkCapabilities.NET_CAPABILITY_RCS) .addCapability(NetworkCapabilities.NET_CAPABILITY_MMTEL) .addCapability(NetworkCapabilities.NET_CAPABILITY_XCAP) .addCapability(NetworkCapabilities.NET_CAPABILITY_ENTERPRISE) .addCapability(NetworkCapabilities.NET_CAPABILITY_EIMS) Loading
tests/telephonytests/src/com/android/internal/telephony/data/QosBearerSessionTest.java 0 → 100644 +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.data; import static com.android.internal.telephony.data.QosCallbackTrackerTest.createEpsQos; import static com.android.internal.telephony.data.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); } }