Fixed the incorrect MTU value

The value of legacy MTU should be the higher
value of mtuV4 and mtuV6.

Fix: 230643530
Test: Sanity + atest DataNetworkTest
Change-Id: Id3692655f976c88252a7f4d71a80ebe72c7dfd44
diff --git a/src/java/com/android/internal/telephony/data/DataNetwork.java b/src/java/com/android/internal/telephony/data/DataNetwork.java
index 56bb553..d7b9693 100644
--- a/src/java/com/android/internal/telephony/data/DataNetwork.java
+++ b/src/java/com/android/internal/telephony/data/DataNetwork.java
@@ -2174,8 +2174,8 @@
 
         // LinkProperties.setMtu should be deprecated. The mtu for each route has been already
         // provided in addRoute() above. For backwards compatibility, we still need to provide
-        // a value for the legacy MTU. Use the lower value of v4 and v6 value here.
-        linkProperties.setMtu(Math.min(mtuV4, mtuV6));
+        // a value for the legacy MTU. Use the higher value of v4 and v6 value here.
+        linkProperties.setMtu(Math.max(mtuV4, mtuV6));
 
         if (mDataProfile.getApnSetting() != null
                 && !TextUtils.isEmpty(mDataProfile.getApnSetting().getProxyAddressAsString())) {
diff --git a/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java b/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java
index fb34ac7..8dd9693 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java
@@ -213,9 +213,8 @@
                             InetAddresses.parseNumericAddress("fd00:976a:c305:1d::8"),
                             InetAddresses.parseNumericAddress("fd00:976a:c202:1d::7"),
                             InetAddresses.parseNumericAddress("fd00:976a:c305:1d::5")))
-                    .setMtu(1500)
-                    .setMtuV4(1500)
-                    .setMtuV6(1500)
+                    .setMtuV4(1234)
+                    .setMtuV6(5678)
                     .setPduSessionId(1)
                     .setQosBearerSessions(new ArrayList<>())
                     .setTrafficDescriptors(tds)
@@ -390,6 +389,16 @@
                 InetAddresses.parseNumericAddress(IPV4_ADDRESS),
                 InetAddresses.parseNumericAddress(IPV6_ADDRESS));
 
+        assertThat(lp.getRoutes()).hasSize(2);
+        assertThat(lp.getRoutes().get(0).getGateway()).isEqualTo(
+                InetAddresses.parseNumericAddress("10.0.2.15"));
+        assertThat(lp.getRoutes().get(0).getMtu()).isEqualTo(1234);
+        assertThat(lp.getRoutes().get(1).getGateway()).isEqualTo(
+                InetAddresses.parseNumericAddress("fe80::2"));
+        assertThat(lp.getRoutes().get(1).getMtu()).isEqualTo(5678);
+        // The higher value of v4 and v6 should be used.
+        assertThat(lp.getMtu()).isEqualTo(5678);
+
         ArgumentCaptor<PreciseDataConnectionState> pdcsCaptor =
                 ArgumentCaptor.forClass(PreciseDataConnectionState.class);
         verify(mPhone, times(2)).notifyDataConnection(pdcsCaptor.capture());