Loading src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java +6 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.net.NetworkAgentConfig; import android.net.NetworkCapabilities; import android.net.NetworkProvider; import android.net.QosFilter; import android.net.QosSessionAttributes; import android.net.SocketKeepalive; import android.net.Uri; import android.os.Message; Loading @@ -36,7 +37,7 @@ import android.telephony.AnomalyReporter; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; import android.telephony.TelephonyManager; import android.telephony.data.EpsBearerQosSessionAttributes; import android.telephony.data.NrQosSessionAttributes; import android.telephony.data.QosBearerSession; import android.util.ArrayMap; import android.util.LocalLog; Loading Loading @@ -378,12 +379,13 @@ public class DcNetworkAgent extends NetworkAgent { } public void notifyQosSessionAvailable(final int qosCallbackId, final int sessionId, @NonNull final EpsBearerQosSessionAttributes attributes) { @NonNull final QosSessionAttributes attributes) { super.sendQosSessionAvailable(qosCallbackId, sessionId, attributes); } public void notifyQosSessionLost(final int qosCallbackId, final int sessionId) { super.sendQosSessionLost(qosCallbackId, sessionId); public void notifyQosSessionLost(final int qosCallbackId, final int sessionId, final int qosSessionType) { super.sendQosSessionLost(qosCallbackId, sessionId, qosSessionType); } @Override Loading src/java/com/android/internal/telephony/dataconnection/QosCallbackTracker.java +30 −11 Original line number Diff line number Diff line Loading @@ -19,8 +19,11 @@ package com.android.internal.telephony.dataconnection; import android.annotation.NonNull; import android.annotation.Nullable; import android.net.LinkAddress; import android.net.QosSession; import android.telephony.data.EpsQos; import android.telephony.data.NrQos; import android.telephony.data.EpsBearerQosSessionAttributes; import android.telephony.data.NrQosSessionAttributes; import android.telephony.data.QosBearerFilter; import android.telephony.data.QosBearerSession; Loading Loading @@ -179,12 +182,14 @@ public class QosCallbackTracker { @NonNull final QosBearerSession session, @NonNull IFilter filter) { QosBearerFilter qosBearerFilter = getMatchingQosBearerFilter(session, filter); List<InetSocketAddress> remoteAddresses = new ArrayList<>(); EpsQos qos = (EpsQos) session.getQos(); if(qosBearerFilter.getRemoteAddresses().size() > 0) { remoteAddresses.add( new InetSocketAddress(qosBearerFilter.getRemoteAddresses().get(0).getAddress(), qosBearerFilter.getRemotePortRange().getStart())); } if (session.getQos() instanceof EpsQos) { EpsQos qos = (EpsQos) session.getQos(); EpsBearerQosSessionAttributes epsBearerAttr = new EpsBearerQosSessionAttributes(qos.getQci(), qos.getUplinkBandwidth().getMaxBitrateKbps(), Loading @@ -194,10 +199,24 @@ public class QosCallbackTracker { remoteAddresses); mDcNetworkAgent.notifyQosSessionAvailable( callbackId, session.getQosBearerSessionId(), epsBearerAttr); } else { NrQos qos = (NrQos) session.getQos(); NrQosSessionAttributes nrQosAttr = new NrQosSessionAttributes(qos.get5Qi(), qos.getQfi(), qos.getUplinkBandwidth().getMaxBitrateKbps(), qos.getDownlinkBandwidth().getMaxBitrateKbps(), qos.getDownlinkBandwidth().getGuaranteedBitrateKbps(), qos.getUplinkBandwidth().getGuaranteedBitrateKbps(), qos.getAveragingWindow(), remoteAddresses); mDcNetworkAgent.notifyQosSessionAvailable( callbackId, session.getQosBearerSessionId(), nrQosAttr); } } private void sendSessionLost(final int callbackId, @NonNull final QosBearerSession session) { mDcNetworkAgent.notifyQosSessionLost(callbackId, session.getQosBearerSessionId()); mDcNetworkAgent.notifyQosSessionLost(callbackId, session.getQosBearerSessionId(), session.getQos() instanceof EpsQos ? QosSession.TYPE_EPS_BEARER : QosSession.TYPE_NR_BEARER); } public interface IFilter { Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/QosCallbackTrackerTest.java +5 −5 Original line number Diff line number Diff line Loading @@ -258,7 +258,7 @@ public class QosCallbackTrackerTest extends TelephonyTest { qosSessions.remove(1); mQosCallbackTracker.updateSessions(qosSessions); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1235)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1235), eq(1)); } @Test Loading Loading @@ -380,8 +380,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Update empty QOS sessions list mQosCallbackTracker.updateSessions(new ArrayList<>()); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1234)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(2), eq(1235)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1234), eq(1)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(2), eq(1235), eq(1)); } @Test Loading Loading @@ -423,8 +423,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Update empty QOS sessions list mQosCallbackTracker.updateSessions(new ArrayList<>()); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1234)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(2), eq(1235)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1234), eq(1)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(2), eq(1235), eq(1)); } } Loading
src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java +6 −4 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.net.NetworkAgentConfig; import android.net.NetworkCapabilities; import android.net.NetworkProvider; import android.net.QosFilter; import android.net.QosSessionAttributes; import android.net.SocketKeepalive; import android.net.Uri; import android.os.Message; Loading @@ -36,7 +37,7 @@ import android.telephony.AnomalyReporter; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; import android.telephony.TelephonyManager; import android.telephony.data.EpsBearerQosSessionAttributes; import android.telephony.data.NrQosSessionAttributes; import android.telephony.data.QosBearerSession; import android.util.ArrayMap; import android.util.LocalLog; Loading Loading @@ -378,12 +379,13 @@ public class DcNetworkAgent extends NetworkAgent { } public void notifyQosSessionAvailable(final int qosCallbackId, final int sessionId, @NonNull final EpsBearerQosSessionAttributes attributes) { @NonNull final QosSessionAttributes attributes) { super.sendQosSessionAvailable(qosCallbackId, sessionId, attributes); } public void notifyQosSessionLost(final int qosCallbackId, final int sessionId) { super.sendQosSessionLost(qosCallbackId, sessionId); public void notifyQosSessionLost(final int qosCallbackId, final int sessionId, final int qosSessionType) { super.sendQosSessionLost(qosCallbackId, sessionId, qosSessionType); } @Override Loading
src/java/com/android/internal/telephony/dataconnection/QosCallbackTracker.java +30 −11 Original line number Diff line number Diff line Loading @@ -19,8 +19,11 @@ package com.android.internal.telephony.dataconnection; import android.annotation.NonNull; import android.annotation.Nullable; import android.net.LinkAddress; import android.net.QosSession; import android.telephony.data.EpsQos; import android.telephony.data.NrQos; import android.telephony.data.EpsBearerQosSessionAttributes; import android.telephony.data.NrQosSessionAttributes; import android.telephony.data.QosBearerFilter; import android.telephony.data.QosBearerSession; Loading Loading @@ -179,12 +182,14 @@ public class QosCallbackTracker { @NonNull final QosBearerSession session, @NonNull IFilter filter) { QosBearerFilter qosBearerFilter = getMatchingQosBearerFilter(session, filter); List<InetSocketAddress> remoteAddresses = new ArrayList<>(); EpsQos qos = (EpsQos) session.getQos(); if(qosBearerFilter.getRemoteAddresses().size() > 0) { remoteAddresses.add( new InetSocketAddress(qosBearerFilter.getRemoteAddresses().get(0).getAddress(), qosBearerFilter.getRemotePortRange().getStart())); } if (session.getQos() instanceof EpsQos) { EpsQos qos = (EpsQos) session.getQos(); EpsBearerQosSessionAttributes epsBearerAttr = new EpsBearerQosSessionAttributes(qos.getQci(), qos.getUplinkBandwidth().getMaxBitrateKbps(), Loading @@ -194,10 +199,24 @@ public class QosCallbackTracker { remoteAddresses); mDcNetworkAgent.notifyQosSessionAvailable( callbackId, session.getQosBearerSessionId(), epsBearerAttr); } else { NrQos qos = (NrQos) session.getQos(); NrQosSessionAttributes nrQosAttr = new NrQosSessionAttributes(qos.get5Qi(), qos.getQfi(), qos.getUplinkBandwidth().getMaxBitrateKbps(), qos.getDownlinkBandwidth().getMaxBitrateKbps(), qos.getDownlinkBandwidth().getGuaranteedBitrateKbps(), qos.getUplinkBandwidth().getGuaranteedBitrateKbps(), qos.getAveragingWindow(), remoteAddresses); mDcNetworkAgent.notifyQosSessionAvailable( callbackId, session.getQosBearerSessionId(), nrQosAttr); } } private void sendSessionLost(final int callbackId, @NonNull final QosBearerSession session) { mDcNetworkAgent.notifyQosSessionLost(callbackId, session.getQosBearerSessionId()); mDcNetworkAgent.notifyQosSessionLost(callbackId, session.getQosBearerSessionId(), session.getQos() instanceof EpsQos ? QosSession.TYPE_EPS_BEARER : QosSession.TYPE_NR_BEARER); } public interface IFilter { Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/QosCallbackTrackerTest.java +5 −5 Original line number Diff line number Diff line Loading @@ -258,7 +258,7 @@ public class QosCallbackTrackerTest extends TelephonyTest { qosSessions.remove(1); mQosCallbackTracker.updateSessions(qosSessions); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1235)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1235), eq(1)); } @Test Loading Loading @@ -380,8 +380,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Update empty QOS sessions list mQosCallbackTracker.updateSessions(new ArrayList<>()); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1234)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(2), eq(1235)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1234), eq(1)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(2), eq(1235), eq(1)); } @Test Loading Loading @@ -423,8 +423,8 @@ public class QosCallbackTrackerTest extends TelephonyTest { // Update empty QOS sessions list mQosCallbackTracker.updateSessions(new ArrayList<>()); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1234)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(2), eq(1235)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(1), eq(1234), eq(1)); verify(mDcNetworkAgent, times(1)).notifyQosSessionLost(eq(2), eq(1235), eq(1)); } }