Loading src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java +6 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,12 @@ public class DcNetworkAgent extends NetworkAgent { InetAddress address, int startPort, int endPort) { return filter.matchesLocalAddress(address, startPort, endPort); } @Override public boolean matchesRemoteAddress( InetAddress address, int startPort, int endPort) { return filter.matchesRemoteAddress(address, startPort, endPort); } })); } Loading src/java/com/android/internal/telephony/dataconnection/QosCallbackTracker.java +57 −11 Original line number Diff line number Diff line Loading @@ -158,20 +158,65 @@ public class QosCallbackTracker { return getMatchingQosBearerFilter(qosBearerSession, filter) != null; } private boolean matchesByLocalAddress( QosBearerFilter sessionFilter, final IFilter filter) { for (final LinkAddress qosAddress : sessionFilter.getLocalAddresses()) { return filter.matchesLocalAddress(qosAddress.getAddress(), sessionFilter.getLocalPortRange().getStart(), sessionFilter.getLocalPortRange().getEnd()); } return false; } private boolean matchesByRemoteAddress( QosBearerFilter sessionFilter, final IFilter filter) { for (final LinkAddress qosAddress : sessionFilter.getRemoteAddresses()) { return filter.matchesRemoteAddress(qosAddress.getAddress(), sessionFilter.getRemotePortRange().getStart(), sessionFilter.getRemotePortRange().getEnd()); } return false; } private boolean matchesByRemoteAndLocalAddress( QosBearerFilter sessionFilter, final IFilter filter) { for (final LinkAddress remoteAddress : sessionFilter.getRemoteAddresses()) { for (final LinkAddress localAddress : sessionFilter.getLocalAddresses()) { return filter.matchesRemoteAddress(remoteAddress.getAddress(), sessionFilter.getRemotePortRange().getStart(), sessionFilter.getRemotePortRange().getEnd()) && filter.matchesLocalAddress(localAddress.getAddress(), sessionFilter.getLocalPortRange().getStart(), sessionFilter.getLocalPortRange().getEnd()); } } return false; } private QosBearerFilter getFilterByPrecedence( QosBearerFilter qosFilter, QosBearerFilter sessionFilter) { // Find for the highest precedence filter, lower the value is the higher the precedence return qosFilter == null || sessionFilter.getPrecedence() < qosFilter.getPrecedence() ? sessionFilter : qosFilter; } private QosBearerFilter getMatchingQosBearerFilter( final QosBearerSession qosBearerSession, final IFilter filter) { QosBearerFilter qosFilter = null; for (final QosBearerFilter sessionFilter : qosBearerSession.getQosBearerFilterList()) { for (final LinkAddress qosAddress : sessionFilter.getLocalAddresses()) { if (filter.matchesLocalAddress(qosAddress.getAddress(), sessionFilter.getLocalPortRange().getStart(), sessionFilter.getLocalPortRange().getEnd())) { // Find for the highest precedence filter if (qosFilter == null || sessionFilter.getPrecedence() < qosFilter.getPrecedence()) { qosFilter = sessionFilter; if (!sessionFilter.getLocalAddresses().isEmpty() && !sessionFilter.getRemoteAddresses().isEmpty()) { if (matchesByRemoteAndLocalAddress(sessionFilter, filter)) { qosFilter = getFilterByPrecedence(qosFilter, sessionFilter); } } else if (!sessionFilter.getRemoteAddresses().isEmpty()) { if (matchesByRemoteAddress(sessionFilter, filter)) { qosFilter = getFilterByPrecedence(qosFilter, sessionFilter); } } else if (!sessionFilter.getLocalAddresses().isEmpty()) { if (matchesByLocalAddress(sessionFilter, filter)) { qosFilter = getFilterByPrecedence(qosFilter, sessionFilter); } } } Loading Loading @@ -221,6 +266,7 @@ public class QosCallbackTracker { public interface IFilter { public boolean matchesLocalAddress(InetAddress address, int startPort, int endPort); public boolean matchesRemoteAddress(InetAddress address, int startPort, int endPort); } /** Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/QosCallbackTrackerTest.java +60 −34 Original line number Diff line number Diff line Loading @@ -62,17 +62,33 @@ import java.util.List; public class QosCallbackTrackerTest extends TelephonyTest { class Filter implements QosCallbackTracker.IFilter { InetSocketAddress address; InetSocketAddress localAddress; InetSocketAddress remoteAddress; Filter(@NonNull final InetSocketAddress address) { this.address = address; Filter(@NonNull final InetSocketAddress localAddress) { this.localAddress = localAddress; this.remoteAddress = null; } Filter(@NonNull final InetSocketAddress localAddress, @NonNull final InetSocketAddress remoteAddress) { this.localAddress = localAddress; this.remoteAddress = remoteAddress; } public boolean matchesLocalAddress(@NonNull final InetAddress address, final int startPort, final int endPort) { return startPort <= this.address.getPort() && endPort >= this.address.getPort() && this.address.getAddress().equals(address); return startPort <= localAddress.getPort() && endPort >= localAddress.getPort() && localAddress.getAddress().equals(address); } public boolean matchesRemoteAddress(@NonNull final InetAddress address, final int startPort, final int endPort) { return remoteAddress != null && startPort <= remoteAddress.getPort() && endPort >= remoteAddress.getPort() && remoteAddress.getAddress().equals(address); } } Loading Loading @@ -105,6 +121,15 @@ public class QosCallbackTrackerTest extends TelephonyTest { return new EpsQos(halEpsQos); } private QosBearerFilter createIpv4QosFilter(String localAddress, QosBearerFilter.PortRange localPort, int precedence) { return new QosBearerFilter( Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(localAddress), 32)), new ArrayList<LinkAddress>(), localPort, null, QosBearerFilter.QOS_PROTOCOL_TCP, 7, 987, 678, QosBearerFilter.QOS_FILTER_DIRECTION_BIDIRECTIONAL, precedence); } private QosBearerFilter createIpv4QosFilter(String localAddress, String remoteAddress, QosBearerFilter.PortRange localPort, QosBearerFilter.PortRange remotePort, int precedence) { Loading @@ -114,7 +139,7 @@ public class QosCallbackTrackerTest extends TelephonyTest { Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(remoteAddress), 32)), localPort, remotePort, QosBearerFilter.QOS_PROTOCOL_UDP, 7, 987, 678, QosBearerFilter.QOS_PROTOCOL_TCP, 7, 987, 678, QosBearerFilter.QOS_FILTER_DIRECTION_BIDIRECTIONAL, precedence); } Loading @@ -127,9 +152,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Non-matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters1 = new ArrayList<>(); qosFilters1.add(createIpv4QosFilter("155.55.55.55", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters1.add(createIpv4QosFilter("155.55.55.55", new QosBearerFilter.PortRange(2222, 2222), 45)); ArrayList<QosBearerSession> qosSessions = new ArrayList<>(); qosSessions.add(new QosBearerSession(1234, createEpsQos(5, 6, 7, 8), qosFilters1)); Loading @@ -141,9 +165,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters2 = new ArrayList<>(); qosFilters2.add(createIpv4QosFilter("122.22.22.22", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters2.add(createIpv4QosFilter("122.22.22.22", new QosBearerFilter.PortRange(2222, 2222), 45)); qosSessions.add(new QosBearerSession(1235, createEpsQos(5, 6, 7, 8), qosFilters2)); mQosCallbackTracker.updateSessions(qosSessions); Loading @@ -159,18 +182,16 @@ public class QosCallbackTrackerTest extends TelephonyTest { public void testAddFilterAfterUpdateSessions() throws Exception { // Non-matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters1 = new ArrayList<>(); qosFilters1.add(createIpv4QosFilter("155.55.55.55", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters1.add(createIpv4QosFilter("155.55.55.55", new QosBearerFilter.PortRange(2222, 2222), 45)); ArrayList<QosBearerSession> qosSessions = new ArrayList<>(); qosSessions.add(new QosBearerSession(1234, createEpsQos(5, 6, 7, 8), qosFilters1)); // Matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters2 = new ArrayList<>(); qosFilters2.add(createIpv4QosFilter("122.22.22.22", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters2.add(createIpv4QosFilter("122.22.22.22", new QosBearerFilter.PortRange(2222, 2222), 45)); qosSessions.add(new QosBearerSession(1235, createEpsQos(5, 6, 7, 8), qosFilters2)); mQosCallbackTracker.updateSessions(qosSessions); Loading @@ -195,9 +216,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Non-matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters1 = new ArrayList<>(); qosFilters1.add(createIpv4QosFilter("155.55.55.55", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters1.add(createIpv4QosFilter("155.55.55.55", new QosBearerFilter.PortRange(2222, 2222), 45)); ArrayList<QosBearerSession> qosSessions = new ArrayList<>(); qosSessions.add(new QosBearerSession(1234, createEpsQos(5, 6, 7, 8), qosFilters1)); Loading @@ -212,9 +232,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters2 = new ArrayList<>(); qosFilters2.add(createIpv4QosFilter("122.22.22.22", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters2.add(createIpv4QosFilter("122.22.22.22", new QosBearerFilter.PortRange(2222, 2222), 45)); qosSessions.add(new QosBearerSession(1235, createEpsQos(5, 6, 7, 8), qosFilters2)); mQosCallbackTracker.updateSessions(qosSessions); Loading Loading @@ -248,7 +267,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Add filter after updateSessions Filter filter = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter); verify(mDcNetworkAgent, times(1)).notifyQosSessionAvailable(eq(1), Loading Loading @@ -284,7 +304,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Add filter after updateSessions Filter filter = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter); verify(mDcNetworkAgent, times(1)).notifyQosSessionAvailable(eq(1), Loading Loading @@ -324,7 +345,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Add filter after updateSessions Filter filter = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter); verify(mDcNetworkAgent, times(1)).notifyQosSessionAvailable(eq(1), Loading @@ -346,7 +368,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { public void testEmptyQosSessions() throws Exception { // Add filter Filter filter = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("155.55.55.55"), 2222)); InetAddresses.parseNumericAddress("155.55.55.55"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter); // Matching QosBearerFilter Loading @@ -369,7 +392,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Add filter after updateSessions Filter filter2 = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(2, filter2); verify(mDcNetworkAgent, times(1)).notifyQosSessionAvailable(eq(1), Loading @@ -389,12 +413,14 @@ public class QosCallbackTrackerTest extends TelephonyTest { public void testMultipleQosSessions() throws Exception { // Add filter 1 Filter filter1 = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("155.55.55.55"), 2222)); InetAddresses.parseNumericAddress("155.55.55.55"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter1); // Add filter 2 Filter filter2 = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("177.77.77.77"), 2227)); mQosCallbackTracker.addFilter(2, filter2); // QosBearerFilter 1 Loading @@ -405,9 +431,9 @@ public class QosCallbackTrackerTest extends TelephonyTest { // QosBearerFilter 2 ArrayList<QosBearerFilter> qosFilters2 = new ArrayList<>(); qosFilters2.add(createIpv4QosFilter("122.22.22.22", "144.44.44.44", qosFilters2.add(createIpv4QosFilter("122.22.22.22", "177.77.77.77", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); new QosBearerFilter.PortRange(2223, 2227), 45)); ArrayList<QosBearerSession> qosSessions = new ArrayList<>(); qosSessions.add(new QosBearerSession(1234, createEpsQos(5, 6, 7, 8), qosFilters1)); Loading Loading
src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java +6 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,12 @@ public class DcNetworkAgent extends NetworkAgent { InetAddress address, int startPort, int endPort) { return filter.matchesLocalAddress(address, startPort, endPort); } @Override public boolean matchesRemoteAddress( InetAddress address, int startPort, int endPort) { return filter.matchesRemoteAddress(address, startPort, endPort); } })); } Loading
src/java/com/android/internal/telephony/dataconnection/QosCallbackTracker.java +57 −11 Original line number Diff line number Diff line Loading @@ -158,20 +158,65 @@ public class QosCallbackTracker { return getMatchingQosBearerFilter(qosBearerSession, filter) != null; } private boolean matchesByLocalAddress( QosBearerFilter sessionFilter, final IFilter filter) { for (final LinkAddress qosAddress : sessionFilter.getLocalAddresses()) { return filter.matchesLocalAddress(qosAddress.getAddress(), sessionFilter.getLocalPortRange().getStart(), sessionFilter.getLocalPortRange().getEnd()); } return false; } private boolean matchesByRemoteAddress( QosBearerFilter sessionFilter, final IFilter filter) { for (final LinkAddress qosAddress : sessionFilter.getRemoteAddresses()) { return filter.matchesRemoteAddress(qosAddress.getAddress(), sessionFilter.getRemotePortRange().getStart(), sessionFilter.getRemotePortRange().getEnd()); } return false; } private boolean matchesByRemoteAndLocalAddress( QosBearerFilter sessionFilter, final IFilter filter) { for (final LinkAddress remoteAddress : sessionFilter.getRemoteAddresses()) { for (final LinkAddress localAddress : sessionFilter.getLocalAddresses()) { return filter.matchesRemoteAddress(remoteAddress.getAddress(), sessionFilter.getRemotePortRange().getStart(), sessionFilter.getRemotePortRange().getEnd()) && filter.matchesLocalAddress(localAddress.getAddress(), sessionFilter.getLocalPortRange().getStart(), sessionFilter.getLocalPortRange().getEnd()); } } return false; } private QosBearerFilter getFilterByPrecedence( QosBearerFilter qosFilter, QosBearerFilter sessionFilter) { // Find for the highest precedence filter, lower the value is the higher the precedence return qosFilter == null || sessionFilter.getPrecedence() < qosFilter.getPrecedence() ? sessionFilter : qosFilter; } private QosBearerFilter getMatchingQosBearerFilter( final QosBearerSession qosBearerSession, final IFilter filter) { QosBearerFilter qosFilter = null; for (final QosBearerFilter sessionFilter : qosBearerSession.getQosBearerFilterList()) { for (final LinkAddress qosAddress : sessionFilter.getLocalAddresses()) { if (filter.matchesLocalAddress(qosAddress.getAddress(), sessionFilter.getLocalPortRange().getStart(), sessionFilter.getLocalPortRange().getEnd())) { // Find for the highest precedence filter if (qosFilter == null || sessionFilter.getPrecedence() < qosFilter.getPrecedence()) { qosFilter = sessionFilter; if (!sessionFilter.getLocalAddresses().isEmpty() && !sessionFilter.getRemoteAddresses().isEmpty()) { if (matchesByRemoteAndLocalAddress(sessionFilter, filter)) { qosFilter = getFilterByPrecedence(qosFilter, sessionFilter); } } else if (!sessionFilter.getRemoteAddresses().isEmpty()) { if (matchesByRemoteAddress(sessionFilter, filter)) { qosFilter = getFilterByPrecedence(qosFilter, sessionFilter); } } else if (!sessionFilter.getLocalAddresses().isEmpty()) { if (matchesByLocalAddress(sessionFilter, filter)) { qosFilter = getFilterByPrecedence(qosFilter, sessionFilter); } } } Loading Loading @@ -221,6 +266,7 @@ public class QosCallbackTracker { public interface IFilter { public boolean matchesLocalAddress(InetAddress address, int startPort, int endPort); public boolean matchesRemoteAddress(InetAddress address, int startPort, int endPort); } /** Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/QosCallbackTrackerTest.java +60 −34 Original line number Diff line number Diff line Loading @@ -62,17 +62,33 @@ import java.util.List; public class QosCallbackTrackerTest extends TelephonyTest { class Filter implements QosCallbackTracker.IFilter { InetSocketAddress address; InetSocketAddress localAddress; InetSocketAddress remoteAddress; Filter(@NonNull final InetSocketAddress address) { this.address = address; Filter(@NonNull final InetSocketAddress localAddress) { this.localAddress = localAddress; this.remoteAddress = null; } Filter(@NonNull final InetSocketAddress localAddress, @NonNull final InetSocketAddress remoteAddress) { this.localAddress = localAddress; this.remoteAddress = remoteAddress; } public boolean matchesLocalAddress(@NonNull final InetAddress address, final int startPort, final int endPort) { return startPort <= this.address.getPort() && endPort >= this.address.getPort() && this.address.getAddress().equals(address); return startPort <= localAddress.getPort() && endPort >= localAddress.getPort() && localAddress.getAddress().equals(address); } public boolean matchesRemoteAddress(@NonNull final InetAddress address, final int startPort, final int endPort) { return remoteAddress != null && startPort <= remoteAddress.getPort() && endPort >= remoteAddress.getPort() && remoteAddress.getAddress().equals(address); } } Loading Loading @@ -105,6 +121,15 @@ public class QosCallbackTrackerTest extends TelephonyTest { return new EpsQos(halEpsQos); } private QosBearerFilter createIpv4QosFilter(String localAddress, QosBearerFilter.PortRange localPort, int precedence) { return new QosBearerFilter( Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(localAddress), 32)), new ArrayList<LinkAddress>(), localPort, null, QosBearerFilter.QOS_PROTOCOL_TCP, 7, 987, 678, QosBearerFilter.QOS_FILTER_DIRECTION_BIDIRECTIONAL, precedence); } private QosBearerFilter createIpv4QosFilter(String localAddress, String remoteAddress, QosBearerFilter.PortRange localPort, QosBearerFilter.PortRange remotePort, int precedence) { Loading @@ -114,7 +139,7 @@ public class QosCallbackTrackerTest extends TelephonyTest { Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(remoteAddress), 32)), localPort, remotePort, QosBearerFilter.QOS_PROTOCOL_UDP, 7, 987, 678, QosBearerFilter.QOS_PROTOCOL_TCP, 7, 987, 678, QosBearerFilter.QOS_FILTER_DIRECTION_BIDIRECTIONAL, precedence); } Loading @@ -127,9 +152,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Non-matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters1 = new ArrayList<>(); qosFilters1.add(createIpv4QosFilter("155.55.55.55", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters1.add(createIpv4QosFilter("155.55.55.55", new QosBearerFilter.PortRange(2222, 2222), 45)); ArrayList<QosBearerSession> qosSessions = new ArrayList<>(); qosSessions.add(new QosBearerSession(1234, createEpsQos(5, 6, 7, 8), qosFilters1)); Loading @@ -141,9 +165,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters2 = new ArrayList<>(); qosFilters2.add(createIpv4QosFilter("122.22.22.22", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters2.add(createIpv4QosFilter("122.22.22.22", new QosBearerFilter.PortRange(2222, 2222), 45)); qosSessions.add(new QosBearerSession(1235, createEpsQos(5, 6, 7, 8), qosFilters2)); mQosCallbackTracker.updateSessions(qosSessions); Loading @@ -159,18 +182,16 @@ public class QosCallbackTrackerTest extends TelephonyTest { public void testAddFilterAfterUpdateSessions() throws Exception { // Non-matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters1 = new ArrayList<>(); qosFilters1.add(createIpv4QosFilter("155.55.55.55", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters1.add(createIpv4QosFilter("155.55.55.55", new QosBearerFilter.PortRange(2222, 2222), 45)); ArrayList<QosBearerSession> qosSessions = new ArrayList<>(); qosSessions.add(new QosBearerSession(1234, createEpsQos(5, 6, 7, 8), qosFilters1)); // Matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters2 = new ArrayList<>(); qosFilters2.add(createIpv4QosFilter("122.22.22.22", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters2.add(createIpv4QosFilter("122.22.22.22", new QosBearerFilter.PortRange(2222, 2222), 45)); qosSessions.add(new QosBearerSession(1235, createEpsQos(5, 6, 7, 8), qosFilters2)); mQosCallbackTracker.updateSessions(qosSessions); Loading @@ -195,9 +216,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Non-matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters1 = new ArrayList<>(); qosFilters1.add(createIpv4QosFilter("155.55.55.55", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters1.add(createIpv4QosFilter("155.55.55.55", new QosBearerFilter.PortRange(2222, 2222), 45)); ArrayList<QosBearerSession> qosSessions = new ArrayList<>(); qosSessions.add(new QosBearerSession(1234, createEpsQos(5, 6, 7, 8), qosFilters1)); Loading @@ -212,9 +232,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Matching QosBearerFilter ArrayList<QosBearerFilter> qosFilters2 = new ArrayList<>(); qosFilters2.add(createIpv4QosFilter("122.22.22.22", "144.44.44.44", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); qosFilters2.add(createIpv4QosFilter("122.22.22.22", new QosBearerFilter.PortRange(2222, 2222), 45)); qosSessions.add(new QosBearerSession(1235, createEpsQos(5, 6, 7, 8), qosFilters2)); mQosCallbackTracker.updateSessions(qosSessions); Loading Loading @@ -248,7 +267,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Add filter after updateSessions Filter filter = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter); verify(mDcNetworkAgent, times(1)).notifyQosSessionAvailable(eq(1), Loading Loading @@ -284,7 +304,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Add filter after updateSessions Filter filter = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter); verify(mDcNetworkAgent, times(1)).notifyQosSessionAvailable(eq(1), Loading Loading @@ -324,7 +345,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Add filter after updateSessions Filter filter = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter); verify(mDcNetworkAgent, times(1)).notifyQosSessionAvailable(eq(1), Loading @@ -346,7 +368,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { public void testEmptyQosSessions() throws Exception { // Add filter Filter filter = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("155.55.55.55"), 2222)); InetAddresses.parseNumericAddress("155.55.55.55"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter); // Matching QosBearerFilter Loading @@ -369,7 +392,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Add filter after updateSessions Filter filter2 = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(2, filter2); verify(mDcNetworkAgent, times(1)).notifyQosSessionAvailable(eq(1), Loading @@ -389,12 +413,14 @@ public class QosCallbackTrackerTest extends TelephonyTest { public void testMultipleQosSessions() throws Exception { // Add filter 1 Filter filter1 = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("155.55.55.55"), 2222)); InetAddresses.parseNumericAddress("155.55.55.55"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("144.44.44.44"), 2223)); mQosCallbackTracker.addFilter(1, filter1); // Add filter 2 Filter filter2 = new Filter(new InetSocketAddress( InetAddresses.parseNumericAddress("122.22.22.22"), 2222)); InetAddresses.parseNumericAddress("122.22.22.22"), 2222), new InetSocketAddress(InetAddresses.parseNumericAddress("177.77.77.77"), 2227)); mQosCallbackTracker.addFilter(2, filter2); // QosBearerFilter 1 Loading @@ -405,9 +431,9 @@ public class QosCallbackTrackerTest extends TelephonyTest { // QosBearerFilter 2 ArrayList<QosBearerFilter> qosFilters2 = new ArrayList<>(); qosFilters2.add(createIpv4QosFilter("122.22.22.22", "144.44.44.44", qosFilters2.add(createIpv4QosFilter("122.22.22.22", "177.77.77.77", new QosBearerFilter.PortRange(2222, 2222), new QosBearerFilter.PortRange(2223, 2223), 45)); new QosBearerFilter.PortRange(2223, 2227), 45)); ArrayList<QosBearerSession> qosSessions = new ArrayList<>(); qosSessions.add(new QosBearerSession(1234, createEpsQos(5, 6, 7, 8), qosFilters1)); Loading