Loading src/java/com/android/internal/telephony/data/DataNetwork.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,7 @@ import android.telephony.data.DataProfile; import android.telephony.data.DataService; import android.telephony.data.DataService; import android.telephony.data.DataServiceCallback; import android.telephony.data.DataServiceCallback; import android.telephony.data.NetworkSliceInfo; import android.telephony.data.NetworkSliceInfo; import android.telephony.data.Qos; import android.telephony.data.QosBearerSession; import android.telephony.data.QosBearerSession; import android.telephony.data.TrafficDescriptor; import android.telephony.data.TrafficDescriptor; import android.telephony.data.TrafficDescriptor.OsAppId; import android.telephony.data.TrafficDescriptor.OsAppId; Loading Loading @@ -676,6 +677,9 @@ public class DataNetwork extends StateMachine { /** The QOS bearer sessions. */ /** The QOS bearer sessions. */ private final @NonNull List<QosBearerSession> mQosBearerSessions = new ArrayList<>(); private final @NonNull List<QosBearerSession> mQosBearerSessions = new ArrayList<>(); /** The QOS for the Default Bearer, should be non-null on LTE and NR */ private @Nullable Qos mDefaultQos; /** /** * The UIDs of packages that have carrier privilege. * The UIDs of packages that have carrier privilege. */ */ Loading Loading @@ -2408,6 +2412,8 @@ public class DataNetwork extends StateMachine { mTrafficDescriptors.clear(); mTrafficDescriptors.clear(); mTrafficDescriptors.addAll(response.getTrafficDescriptors()); mTrafficDescriptors.addAll(response.getTrafficDescriptors()); mDefaultQos = response.getDefaultQos(); mQosBearerSessions.clear(); mQosBearerSessions.clear(); mQosBearerSessions.addAll(response.getQosBearerSessions()); mQosBearerSessions.addAll(response.getQosBearerSessions()); if (mQosCallbackTracker != null) { if (mQosCallbackTracker != null) { Loading Loading @@ -3174,6 +3180,7 @@ public class DataNetwork extends StateMachine { .setLinkProperties(mLinkProperties) .setLinkProperties(mLinkProperties) .setNetworkType(getDataNetworkType()) .setNetworkType(getDataNetworkType()) .setFailCause(mFailCause) .setFailCause(mFailCause) .setDefaultQos(mDefaultQos) .build(); .build(); } } Loading tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java +21 −5 Original line number Original line Diff line number Diff line Loading @@ -63,7 +63,9 @@ import android.telephony.data.DataCallResponse; import android.telephony.data.DataProfile; import android.telephony.data.DataProfile; import android.telephony.data.DataService; import android.telephony.data.DataService; import android.telephony.data.DataServiceCallback; import android.telephony.data.DataServiceCallback; import android.telephony.data.EpsQos; import android.telephony.data.NetworkSliceInfo; import android.telephony.data.NetworkSliceInfo; import android.telephony.data.Qos; import android.telephony.data.TrafficDescriptor; import android.telephony.data.TrafficDescriptor; import android.testing.AndroidTestingRunner; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper; Loading Loading @@ -182,6 +184,11 @@ public class DataNetworkTest extends TelephonyTest { "CBS", 1).getBytes())) "CBS", 1).getBytes())) .build(); .build(); private final Qos mDefaultQos = new EpsQos( new Qos.QosBandwidth(1000, 1), new Qos.QosBandwidth(1000, 0), 9 /* QCI */); // Mocked classes // Mocked classes private DataNetworkCallback mDataNetworkCallback; private DataNetworkCallback mDataNetworkCallback; private DataCallSessionStats mDataCallSessionStats; private DataCallSessionStats mDataCallSessionStats; Loading @@ -194,16 +201,21 @@ public class DataNetworkTest extends TelephonyTest { .build(); .build(); private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid) { private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid) { setSuccessfulSetupDataResponse(dsm, cid, Collections.emptyList()); setSuccessfulSetupDataResponse(dsm, cid, Collections.emptyList(), null); } } private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid, private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid, List<TrafficDescriptor> tds) { List<TrafficDescriptor> tds) { setSuccessfulSetupDataResponse(dsm, cid, tds, null); } private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid, List<TrafficDescriptor> tds, Qos defaultQos) { doAnswer(invocation -> { doAnswer(invocation -> { final Message msg = (Message) invocation.getArguments()[10]; final Message msg = (Message) invocation.getArguments()[10]; DataCallResponse response = createDataCallResponse( DataCallResponse response = createDataCallResponse( cid, DataCallResponse.LINK_STATUS_ACTIVE, tds); cid, DataCallResponse.LINK_STATUS_ACTIVE, tds, defaultQos); msg.getData().putParcelable("data_call_response", response); msg.getData().putParcelable("data_call_response", response); msg.arg1 = DataServiceCallback.RESULT_SUCCESS; msg.arg1 = DataServiceCallback.RESULT_SUCCESS; msg.sendToTarget(); msg.sendToTarget(); Loading @@ -214,7 +226,7 @@ public class DataNetworkTest extends TelephonyTest { } } private DataCallResponse createDataCallResponse(int cid, int linkStatus, private DataCallResponse createDataCallResponse(int cid, int linkStatus, List<TrafficDescriptor> tds) { List<TrafficDescriptor> tds, Qos defaultQos) { return new DataCallResponse.Builder() return new DataCallResponse.Builder() .setCause(0) .setCause(0) .setRetryDurationMillis(-1L) .setRetryDurationMillis(-1L) Loading @@ -238,6 +250,7 @@ public class DataNetworkTest extends TelephonyTest { .setPduSessionId(1) .setPduSessionId(1) .setQosBearerSessions(new ArrayList<>()) .setQosBearerSessions(new ArrayList<>()) .setTrafficDescriptors(tds) .setTrafficDescriptors(tds) .setDefaultQos(defaultQos) .build(); .build(); } } Loading Loading @@ -388,7 +401,8 @@ public class DataNetworkTest extends TelephonyTest { .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .build(), mPhone)); .build(), mPhone)); setSuccessfulSetupDataResponse(mMockedWwanDataServiceManager, 123); setSuccessfulSetupDataResponse( mMockedWwanDataServiceManager, 123, Collections.emptyList(), mDefaultQos); mDataNetworkUT = new DataNetwork(mPhone, Looper.myLooper(), mDataServiceManagers, mDataNetworkUT = new DataNetwork(mPhone, Looper.myLooper(), mDataServiceManagers, mInternetDataProfile, networkRequestList, mInternetDataProfile, networkRequestList, Loading Loading @@ -448,6 +462,7 @@ public class DataNetworkTest extends TelephonyTest { assertThat(pdcsList.get(0).getTransportType()) assertThat(pdcsList.get(0).getTransportType()) .isEqualTo(AccessNetworkConstants.TRANSPORT_TYPE_WWAN); .isEqualTo(AccessNetworkConstants.TRANSPORT_TYPE_WWAN); assertThat(pdcsList.get(0).getLinkProperties()).isEqualTo(new LinkProperties()); assertThat(pdcsList.get(0).getLinkProperties()).isEqualTo(new LinkProperties()); assertThat(pdcsList.get(0).getDefaultQos()).isEqualTo(null); assertThat(pdcsList.get(1).getApnSetting()).isEqualTo(mInternetApnSetting); assertThat(pdcsList.get(1).getApnSetting()).isEqualTo(mInternetApnSetting); assertThat(pdcsList.get(1).getState()).isEqualTo(TelephonyManager.DATA_CONNECTED); assertThat(pdcsList.get(1).getState()).isEqualTo(TelephonyManager.DATA_CONNECTED); Loading @@ -455,6 +470,7 @@ public class DataNetworkTest extends TelephonyTest { assertThat(pdcsList.get(1).getNetworkType()).isEqualTo(TelephonyManager.NETWORK_TYPE_LTE); assertThat(pdcsList.get(1).getNetworkType()).isEqualTo(TelephonyManager.NETWORK_TYPE_LTE); assertThat(pdcsList.get(1).getTransportType()) assertThat(pdcsList.get(1).getTransportType()) .isEqualTo(AccessNetworkConstants.TRANSPORT_TYPE_WWAN); .isEqualTo(AccessNetworkConstants.TRANSPORT_TYPE_WWAN); assertThat(pdcsList.get(1).getDefaultQos()).isEqualTo(mDefaultQos); assertThat(pdcsList.get(1).getLinkProperties().getAddresses().get(0)) assertThat(pdcsList.get(1).getLinkProperties().getAddresses().get(0)) .isEqualTo(InetAddresses.parseNumericAddress(IPV4_ADDRESS)); .isEqualTo(InetAddresses.parseNumericAddress(IPV4_ADDRESS)); assertThat(pdcsList.get(1).getLinkProperties().getAddresses().get(1)) assertThat(pdcsList.get(1).getLinkProperties().getAddresses().get(1)) Loading Loading @@ -1787,7 +1803,7 @@ public class DataNetworkTest extends TelephonyTest { // data state updated // data state updated DataCallResponse response = createDataCallResponse(123, DataCallResponse response = createDataCallResponse(123, DataCallResponse.LINK_STATUS_DORMANT, Collections.emptyList()); DataCallResponse.LINK_STATUS_DORMANT, Collections.emptyList(), null); mDataNetworkUT.sendMessage(8 /*EVENT_DATA_STATE_CHANGED*/, new AsyncResult( mDataNetworkUT.sendMessage(8 /*EVENT_DATA_STATE_CHANGED*/, new AsyncResult( AccessNetworkConstants.TRANSPORT_TYPE_WWAN, List.of(response), null)); AccessNetworkConstants.TRANSPORT_TYPE_WWAN, List.of(response), null)); processAllMessages(); processAllMessages(); Loading Loading
src/java/com/android/internal/telephony/data/DataNetwork.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,7 @@ import android.telephony.data.DataProfile; import android.telephony.data.DataService; import android.telephony.data.DataService; import android.telephony.data.DataServiceCallback; import android.telephony.data.DataServiceCallback; import android.telephony.data.NetworkSliceInfo; import android.telephony.data.NetworkSliceInfo; import android.telephony.data.Qos; import android.telephony.data.QosBearerSession; import android.telephony.data.QosBearerSession; import android.telephony.data.TrafficDescriptor; import android.telephony.data.TrafficDescriptor; import android.telephony.data.TrafficDescriptor.OsAppId; import android.telephony.data.TrafficDescriptor.OsAppId; Loading Loading @@ -676,6 +677,9 @@ public class DataNetwork extends StateMachine { /** The QOS bearer sessions. */ /** The QOS bearer sessions. */ private final @NonNull List<QosBearerSession> mQosBearerSessions = new ArrayList<>(); private final @NonNull List<QosBearerSession> mQosBearerSessions = new ArrayList<>(); /** The QOS for the Default Bearer, should be non-null on LTE and NR */ private @Nullable Qos mDefaultQos; /** /** * The UIDs of packages that have carrier privilege. * The UIDs of packages that have carrier privilege. */ */ Loading Loading @@ -2408,6 +2412,8 @@ public class DataNetwork extends StateMachine { mTrafficDescriptors.clear(); mTrafficDescriptors.clear(); mTrafficDescriptors.addAll(response.getTrafficDescriptors()); mTrafficDescriptors.addAll(response.getTrafficDescriptors()); mDefaultQos = response.getDefaultQos(); mQosBearerSessions.clear(); mQosBearerSessions.clear(); mQosBearerSessions.addAll(response.getQosBearerSessions()); mQosBearerSessions.addAll(response.getQosBearerSessions()); if (mQosCallbackTracker != null) { if (mQosCallbackTracker != null) { Loading Loading @@ -3174,6 +3180,7 @@ public class DataNetwork extends StateMachine { .setLinkProperties(mLinkProperties) .setLinkProperties(mLinkProperties) .setNetworkType(getDataNetworkType()) .setNetworkType(getDataNetworkType()) .setFailCause(mFailCause) .setFailCause(mFailCause) .setDefaultQos(mDefaultQos) .build(); .build(); } } Loading
tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java +21 −5 Original line number Original line Diff line number Diff line Loading @@ -63,7 +63,9 @@ import android.telephony.data.DataCallResponse; import android.telephony.data.DataProfile; import android.telephony.data.DataProfile; import android.telephony.data.DataService; import android.telephony.data.DataService; import android.telephony.data.DataServiceCallback; import android.telephony.data.DataServiceCallback; import android.telephony.data.EpsQos; import android.telephony.data.NetworkSliceInfo; import android.telephony.data.NetworkSliceInfo; import android.telephony.data.Qos; import android.telephony.data.TrafficDescriptor; import android.telephony.data.TrafficDescriptor; import android.testing.AndroidTestingRunner; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.testing.TestableLooper; Loading Loading @@ -182,6 +184,11 @@ public class DataNetworkTest extends TelephonyTest { "CBS", 1).getBytes())) "CBS", 1).getBytes())) .build(); .build(); private final Qos mDefaultQos = new EpsQos( new Qos.QosBandwidth(1000, 1), new Qos.QosBandwidth(1000, 0), 9 /* QCI */); // Mocked classes // Mocked classes private DataNetworkCallback mDataNetworkCallback; private DataNetworkCallback mDataNetworkCallback; private DataCallSessionStats mDataCallSessionStats; private DataCallSessionStats mDataCallSessionStats; Loading @@ -194,16 +201,21 @@ public class DataNetworkTest extends TelephonyTest { .build(); .build(); private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid) { private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid) { setSuccessfulSetupDataResponse(dsm, cid, Collections.emptyList()); setSuccessfulSetupDataResponse(dsm, cid, Collections.emptyList(), null); } } private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid, private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid, List<TrafficDescriptor> tds) { List<TrafficDescriptor> tds) { setSuccessfulSetupDataResponse(dsm, cid, tds, null); } private void setSuccessfulSetupDataResponse(DataServiceManager dsm, int cid, List<TrafficDescriptor> tds, Qos defaultQos) { doAnswer(invocation -> { doAnswer(invocation -> { final Message msg = (Message) invocation.getArguments()[10]; final Message msg = (Message) invocation.getArguments()[10]; DataCallResponse response = createDataCallResponse( DataCallResponse response = createDataCallResponse( cid, DataCallResponse.LINK_STATUS_ACTIVE, tds); cid, DataCallResponse.LINK_STATUS_ACTIVE, tds, defaultQos); msg.getData().putParcelable("data_call_response", response); msg.getData().putParcelable("data_call_response", response); msg.arg1 = DataServiceCallback.RESULT_SUCCESS; msg.arg1 = DataServiceCallback.RESULT_SUCCESS; msg.sendToTarget(); msg.sendToTarget(); Loading @@ -214,7 +226,7 @@ public class DataNetworkTest extends TelephonyTest { } } private DataCallResponse createDataCallResponse(int cid, int linkStatus, private DataCallResponse createDataCallResponse(int cid, int linkStatus, List<TrafficDescriptor> tds) { List<TrafficDescriptor> tds, Qos defaultQos) { return new DataCallResponse.Builder() return new DataCallResponse.Builder() .setCause(0) .setCause(0) .setRetryDurationMillis(-1L) .setRetryDurationMillis(-1L) Loading @@ -238,6 +250,7 @@ public class DataNetworkTest extends TelephonyTest { .setPduSessionId(1) .setPduSessionId(1) .setQosBearerSessions(new ArrayList<>()) .setQosBearerSessions(new ArrayList<>()) .setTrafficDescriptors(tds) .setTrafficDescriptors(tds) .setDefaultQos(defaultQos) .build(); .build(); } } Loading Loading @@ -388,7 +401,8 @@ public class DataNetworkTest extends TelephonyTest { .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .build(), mPhone)); .build(), mPhone)); setSuccessfulSetupDataResponse(mMockedWwanDataServiceManager, 123); setSuccessfulSetupDataResponse( mMockedWwanDataServiceManager, 123, Collections.emptyList(), mDefaultQos); mDataNetworkUT = new DataNetwork(mPhone, Looper.myLooper(), mDataServiceManagers, mDataNetworkUT = new DataNetwork(mPhone, Looper.myLooper(), mDataServiceManagers, mInternetDataProfile, networkRequestList, mInternetDataProfile, networkRequestList, Loading Loading @@ -448,6 +462,7 @@ public class DataNetworkTest extends TelephonyTest { assertThat(pdcsList.get(0).getTransportType()) assertThat(pdcsList.get(0).getTransportType()) .isEqualTo(AccessNetworkConstants.TRANSPORT_TYPE_WWAN); .isEqualTo(AccessNetworkConstants.TRANSPORT_TYPE_WWAN); assertThat(pdcsList.get(0).getLinkProperties()).isEqualTo(new LinkProperties()); assertThat(pdcsList.get(0).getLinkProperties()).isEqualTo(new LinkProperties()); assertThat(pdcsList.get(0).getDefaultQos()).isEqualTo(null); assertThat(pdcsList.get(1).getApnSetting()).isEqualTo(mInternetApnSetting); assertThat(pdcsList.get(1).getApnSetting()).isEqualTo(mInternetApnSetting); assertThat(pdcsList.get(1).getState()).isEqualTo(TelephonyManager.DATA_CONNECTED); assertThat(pdcsList.get(1).getState()).isEqualTo(TelephonyManager.DATA_CONNECTED); Loading @@ -455,6 +470,7 @@ public class DataNetworkTest extends TelephonyTest { assertThat(pdcsList.get(1).getNetworkType()).isEqualTo(TelephonyManager.NETWORK_TYPE_LTE); assertThat(pdcsList.get(1).getNetworkType()).isEqualTo(TelephonyManager.NETWORK_TYPE_LTE); assertThat(pdcsList.get(1).getTransportType()) assertThat(pdcsList.get(1).getTransportType()) .isEqualTo(AccessNetworkConstants.TRANSPORT_TYPE_WWAN); .isEqualTo(AccessNetworkConstants.TRANSPORT_TYPE_WWAN); assertThat(pdcsList.get(1).getDefaultQos()).isEqualTo(mDefaultQos); assertThat(pdcsList.get(1).getLinkProperties().getAddresses().get(0)) assertThat(pdcsList.get(1).getLinkProperties().getAddresses().get(0)) .isEqualTo(InetAddresses.parseNumericAddress(IPV4_ADDRESS)); .isEqualTo(InetAddresses.parseNumericAddress(IPV4_ADDRESS)); assertThat(pdcsList.get(1).getLinkProperties().getAddresses().get(1)) assertThat(pdcsList.get(1).getLinkProperties().getAddresses().get(1)) Loading Loading @@ -1787,7 +1803,7 @@ public class DataNetworkTest extends TelephonyTest { // data state updated // data state updated DataCallResponse response = createDataCallResponse(123, DataCallResponse response = createDataCallResponse(123, DataCallResponse.LINK_STATUS_DORMANT, Collections.emptyList()); DataCallResponse.LINK_STATUS_DORMANT, Collections.emptyList(), null); mDataNetworkUT.sendMessage(8 /*EVENT_DATA_STATE_CHANGED*/, new AsyncResult( mDataNetworkUT.sendMessage(8 /*EVENT_DATA_STATE_CHANGED*/, new AsyncResult( AccessNetworkConstants.TRANSPORT_TYPE_WWAN, List.of(response), null)); AccessNetworkConstants.TRANSPORT_TYPE_WWAN, List.of(response), null)); processAllMessages(); processAllMessages(); Loading