Loading src/java/com/android/internal/telephony/RIL.java +43 −24 Original line number Diff line number Diff line Loading @@ -1440,7 +1440,7 @@ public class RIL extends BaseCommands implements CommandsInterface { // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX. dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask( dp.getBearerBitmask()) << 1; dpi.mtu = dp.getMtu(); dpi.mtu = dp.getMtuV4(); dpi.mvnoType = MvnoType.NONE; dpi.mvnoMatchData = ""; Loading Loading @@ -1474,7 +1474,7 @@ public class RIL extends BaseCommands implements CommandsInterface { // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX. dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask( dp.getBearerBitmask()) << 1; dpi.mtu = dp.getMtu(); dpi.mtu = dp.getMtuV4(); dpi.persistent = dp.isPersistent(); dpi.preferred = dp.isPreferred(); Loading @@ -1494,29 +1494,30 @@ public class RIL extends BaseCommands implements CommandsInterface { android.hardware.radio.V1_5.DataProfileInfo dpi = new android.hardware.radio.V1_5.DataProfileInfo(); dpi.base.apn = dp.getApn(); dpi.base.protocol = dp.getProtocolType(); dpi.base.roamingProtocol = dp.getRoamingProtocolType(); dpi.base.authType = dp.getAuthType(); dpi.base.user = dp.getUserName(); dpi.base.password = dp.getPassword(); dpi.base.type = dp.getType(); dpi.base.maxConnsTime = dp.getMaxConnectionsTime(); dpi.base.maxConns = dp.getMaxConnections(); dpi.base.waitTime = dp.getWaitTime(); dpi.base.enabled = dp.isEnabled(); dpi.apn = dp.getApn(); dpi.protocol = dp.getProtocolType(); dpi.roamingProtocol = dp.getRoamingProtocolType(); dpi.authType = dp.getAuthType(); dpi.user = dp.getUserName(); dpi.password = dp.getPassword(); dpi.type = dp.getType(); dpi.maxConnsTime = dp.getMaxConnectionsTime(); dpi.maxConns = dp.getMaxConnections(); dpi.waitTime = dp.getWaitTime(); dpi.enabled = dp.isEnabled(); dpi.supportedApnTypesBitmap = dp.getSupportedApnTypesBitmask(); // Shift by 1 bit due to the discrepancy between // android.hardware.radio.V1_0.RadioAccessFamily and the bitmask version of // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX. dpi.base.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask( dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask( dp.getBearerBitmask()) << 1; dpi.base.mtu = dp.getMtu(); dpi.base.persistent = dp.isPersistent(); dpi.base.preferred = dp.isPreferred(); dpi.mtuV4 = dp.getMtuV4(); dpi.mtuV6 = dp.getMtuV6(); dpi.persistent = dp.isPersistent(); dpi.preferred = dp.isPreferred(); // profile id is only meaningful when it's persistent on the modem. dpi.base.profileId = (dpi.base.persistent) ? dp.getProfileId() : DataProfileId.INVALID; dpi.profileId = (dpi.persistent) ? dp.getProfileId() : DataProfileId.INVALID; return dpi; } Loading Loading @@ -6325,7 +6326,7 @@ public class RIL extends BaseCommands implements CommandsInterface { } /** * Convert SetupDataCallResult defined in 1.0 or 1.4/types.hal into DataCallResponse * Convert SetupDataCallResult defined in 1.0, 1.4, or 1.5 types.hal into DataCallResponse * @param dcResult setup data call result * @return converted DataCallResponse object */ Loading @@ -6333,7 +6334,7 @@ public class RIL extends BaseCommands implements CommandsInterface { public static DataCallResponse convertDataCallResult(Object dcResult) { if (dcResult == null) return null; int cause, suggestedRetryTime, cid, active, mtu; int cause, suggestedRetryTime, cid, active, mtu, mtuV4, mtuV6; String ifname; int protocolType; String[] addresses = null; Loading @@ -6342,7 +6343,7 @@ public class RIL extends BaseCommands implements CommandsInterface { String[] pcscfs = null; List<LinkAddress> laList = new ArrayList<>(); int version = 0; int version; if (dcResult instanceof android.hardware.radio.V1_0.SetupDataCallResult) { final android.hardware.radio.V1_0.SetupDataCallResult result = Loading @@ -6366,6 +6367,7 @@ public class RIL extends BaseCommands implements CommandsInterface { pcscfs = result.pcscf.split("\\s+"); } mtu = result.mtu; mtuV4 = mtuV6 = 0; version = 0; } else if (dcResult instanceof android.hardware.radio.V1_4.SetupDataCallResult) { final android.hardware.radio.V1_4.SetupDataCallResult result = Loading @@ -6381,6 +6383,7 @@ public class RIL extends BaseCommands implements CommandsInterface { gateways = result.gateways.stream().toArray(String[]::new); pcscfs = result.pcscf.stream().toArray(String[]::new); mtu = result.mtu; mtuV4 = mtuV6 = 0; version = 4; } else if (dcResult instanceof android.hardware.radio.V1_5.SetupDataCallResult) { final android.hardware.radio.V1_5.SetupDataCallResult result = Loading @@ -6398,7 +6401,9 @@ public class RIL extends BaseCommands implements CommandsInterface { dnses = result.dnses.stream().toArray(String[]::new); gateways = result.gateways.stream().toArray(String[]::new); pcscfs = result.pcscf.stream().toArray(String[]::new); mtu = result.mtu; mtu = 0; mtuV4 = result.mtuV4; mtuV6 = result.mtuV6; version = 5; } else { Rlog.e(RILJ_LOG_TAG, "Unsupported SetupDataCallResult " + dcResult); Loading Loading @@ -6476,8 +6481,22 @@ public class RIL extends BaseCommands implements CommandsInterface { } } return new DataCallResponse(cause, suggestedRetryTime, cid, active, protocolType, ifname, laList, dnsList, gatewayList, pcscfList, mtu); return new DataCallResponse.Builder() .setCause(cause) .setSuggestedRetryTime(suggestedRetryTime) .setId(cid) .setLinkStatus(active) .setProtocolType(protocolType) .setInterfaceName(ifname) .setAddresses(laList) .setDnsAddresses(dnsList) .setGatewayAddresses(gatewayList) .setPcscfAddresses(pcscfList) .setMtu(mtu) .setMtuV4(mtuV4) .setMtuV6(mtuV6) .setVersion(version) .build(); } /** Loading src/java/com/android/internal/telephony/dataconnection/DataConnection.java +11 −5 Original line number Diff line number Diff line Loading @@ -644,10 +644,13 @@ public class DataConnection extends StateMachine { // Check if we should fake an error. if (mDcTesterFailBringUpAll.getDcFailBringUp().mCounter > 0) { DataCallResponse response = new DataCallResponse( mDcTesterFailBringUpAll.getDcFailBringUp().mFailCause, mDcTesterFailBringUpAll.getDcFailBringUp().mSuggestedRetryTime, 0, 0, 0, "", null, null, null, null, PhoneConstants.UNSET_MTU); DataCallResponse response = new DataCallResponse.Builder() .setCause(mDcTesterFailBringUpAll.getDcFailBringUp().mFailCause) .setSuggestedRetryTime( mDcTesterFailBringUpAll.getDcFailBringUp().mSuggestedRetryTime) .setMtuV4(PhoneConstants.UNSET_MTU) .setMtuV6(PhoneConstants.UNSET_MTU) .build(); Message msg = obtainMessage(EVENT_SETUP_DATA_CONNECTION_DONE, cp); AsyncResult.forMessage(msg, response, null); Loading Loading @@ -1474,14 +1477,17 @@ public class DataConnection extends StateMachine { } for (InetAddress gateway : response.getGatewayAddresses()) { int mtu = linkProperties.hasGlobalIPv6Address() ? response.getMtuV6() : response.getMtuV4(); // Allow 0.0.0.0 or :: as a gateway; // this indicates a point-to-point interface. linkProperties.addRoute(new RouteInfo(null, gateway, null, RouteInfo.RTN_UNICAST)); RouteInfo.RTN_UNICAST, mtu)); } // set interface MTU // this may clobber the setting read from the APN db, but that's ok // TODO: remove once LinkProperties#setMtu is deprecated linkProperties.setMtu(response.getMtu()); result = SetupResult.SUCCESS; Loading tests/telephonytests/src/com/android/internal/telephony/RILTest.java +19 −10 Original line number Diff line number Diff line Loading @@ -1633,17 +1633,26 @@ public class RILTest extends TelephonyTest { result10.pcscf = "fd00:976a:c206:20::6 fd00:976a:c206:20::9 fd00:976a:c202:1d::9"; result10.mtu = 1500; DataCallResponse response = new DataCallResponse(0, -1, 0, 2, ApnSetting.PROTOCOL_IPV4V6, "ifname", Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress("10.0.2.15"), 32), new LinkAddress("2607:fb90:a620:651d:eabe:f8da:c107:44be/64")), Arrays.asList(InetAddresses.parseNumericAddress("10.0.2.3"), InetAddresses.parseNumericAddress("fd00:976a::9")), Arrays.asList(InetAddresses.parseNumericAddress("10.0.2.15"), InetAddresses.parseNumericAddress("fe80::2")), Arrays.asList(InetAddresses.parseNumericAddress("fd00:976a:c206:20::6"), DataCallResponse response = new DataCallResponse.Builder() .setCause(0) .setSuggestedRetryTime(-1) .setId(0) .setLinkStatus(2) .setProtocolType(ApnSetting.PROTOCOL_IPV4V6) .setInterfaceName("ifname") .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress("10.0.2.15"), 32), new LinkAddress("2607:fb90:a620:651d:eabe:f8da:c107:44be/64"))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress("10.0.2.3"), InetAddresses.parseNumericAddress("fd00:976a::9"))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress("10.0.2.15"), InetAddresses.parseNumericAddress("fe80::2"))) .setPcscfAddresses(Arrays.asList( InetAddresses.parseNumericAddress("fd00:976a:c206:20::6"), InetAddresses.parseNumericAddress("fd00:976a:c206:20::9"), InetAddresses.parseNumericAddress("fd00:976a:c202:1d::9")), 1500); InetAddresses.parseNumericAddress("fd00:976a:c202:1d::9"))) .setMtu(1500) .build(); assertEquals(response, RIL.convertDataCallResult(result10)); Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataCallResponseTest.java +67 −30 Original line number Diff line number Diff line Loading @@ -36,13 +36,22 @@ public class DataCallResponseTest extends AndroidTestCase { @SmallTest public void testParcel() throws Exception { DataCallResponse response = new DataCallResponse(0, -1, 1, 2, ApnSetting.PROTOCOL_IP, FAKE_IFNAME, Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)), 1440); DataCallResponse response = new DataCallResponse.Builder() .setCause(0) .setSuggestedRetryTime(-1) .setId(1) .setLinkStatus(2) .setProtocolType(ApnSetting.PROTOCOL_IP) .setInterfaceName(FAKE_IFNAME) .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) .setPcscfAddresses( Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) .setMtuV4(1440) .setMtuV6(1440) .build(); Parcel p = Parcel.obtain(); response.writeToParcel(p, 0); Loading @@ -54,34 +63,62 @@ public class DataCallResponseTest extends AndroidTestCase { @SmallTest public void testEquals() throws Exception { DataCallResponse response = new DataCallResponse(0, -1, 1, 2, ApnSetting.PROTOCOL_IP, FAKE_IFNAME, Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)), 1440); DataCallResponse response = new DataCallResponse.Builder() .setCause(0) .setSuggestedRetryTime(-1) .setId(1) .setLinkStatus(2) .setProtocolType(ApnSetting.PROTOCOL_IP) .setInterfaceName(FAKE_IFNAME) .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) .setPcscfAddresses( Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) .setMtuV4(1440) .setMtuV6(1400) .build(); DataCallResponse response1 = new DataCallResponse(0, -1, 1, 2, ApnSetting.PROTOCOL_IP, FAKE_IFNAME, Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)), 1440); DataCallResponse response1 = new DataCallResponse.Builder() .setCause(0) .setSuggestedRetryTime(-1) .setId(1) .setLinkStatus(2) .setProtocolType(ApnSetting.PROTOCOL_IP) .setInterfaceName(FAKE_IFNAME) .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) .setPcscfAddresses( Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) .setMtuV4(1440) .setMtuV6(1400) .build(); assertEquals(response, response); assertEquals(response, response1); DataCallResponse response2 = new DataCallResponse(1, -1, 1, 3, ApnSetting.PROTOCOL_IP, FAKE_IFNAME, Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS), InetAddresses.parseNumericAddress(FAKE_DNS)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS), InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)), 1441); DataCallResponse response2 = new DataCallResponse.Builder() .setCause(1) .setSuggestedRetryTime(-1) .setId(1) .setLinkStatus(3) .setProtocolType(ApnSetting.PROTOCOL_IP) .setInterfaceName(FAKE_IFNAME) .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS), InetAddresses.parseNumericAddress(FAKE_DNS))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) .setPcscfAddresses(Arrays.asList( InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS), InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) .setMtuV4(1441) .setMtuV6(1440) .build(); assertNotSame(response1, response2); assertNotSame(response1, null); assertNotSame(response1, new String[1]); Loading tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataConnectionTest.java +158 −77 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
src/java/com/android/internal/telephony/RIL.java +43 −24 Original line number Diff line number Diff line Loading @@ -1440,7 +1440,7 @@ public class RIL extends BaseCommands implements CommandsInterface { // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX. dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask( dp.getBearerBitmask()) << 1; dpi.mtu = dp.getMtu(); dpi.mtu = dp.getMtuV4(); dpi.mvnoType = MvnoType.NONE; dpi.mvnoMatchData = ""; Loading Loading @@ -1474,7 +1474,7 @@ public class RIL extends BaseCommands implements CommandsInterface { // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX. dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask( dp.getBearerBitmask()) << 1; dpi.mtu = dp.getMtu(); dpi.mtu = dp.getMtuV4(); dpi.persistent = dp.isPersistent(); dpi.preferred = dp.isPreferred(); Loading @@ -1494,29 +1494,30 @@ public class RIL extends BaseCommands implements CommandsInterface { android.hardware.radio.V1_5.DataProfileInfo dpi = new android.hardware.radio.V1_5.DataProfileInfo(); dpi.base.apn = dp.getApn(); dpi.base.protocol = dp.getProtocolType(); dpi.base.roamingProtocol = dp.getRoamingProtocolType(); dpi.base.authType = dp.getAuthType(); dpi.base.user = dp.getUserName(); dpi.base.password = dp.getPassword(); dpi.base.type = dp.getType(); dpi.base.maxConnsTime = dp.getMaxConnectionsTime(); dpi.base.maxConns = dp.getMaxConnections(); dpi.base.waitTime = dp.getWaitTime(); dpi.base.enabled = dp.isEnabled(); dpi.apn = dp.getApn(); dpi.protocol = dp.getProtocolType(); dpi.roamingProtocol = dp.getRoamingProtocolType(); dpi.authType = dp.getAuthType(); dpi.user = dp.getUserName(); dpi.password = dp.getPassword(); dpi.type = dp.getType(); dpi.maxConnsTime = dp.getMaxConnectionsTime(); dpi.maxConns = dp.getMaxConnections(); dpi.waitTime = dp.getWaitTime(); dpi.enabled = dp.isEnabled(); dpi.supportedApnTypesBitmap = dp.getSupportedApnTypesBitmask(); // Shift by 1 bit due to the discrepancy between // android.hardware.radio.V1_0.RadioAccessFamily and the bitmask version of // ServiceState.RIL_RADIO_TECHNOLOGY_XXXX. dpi.base.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask( dpi.bearerBitmap = ServiceState.convertNetworkTypeBitmaskToBearerBitmask( dp.getBearerBitmask()) << 1; dpi.base.mtu = dp.getMtu(); dpi.base.persistent = dp.isPersistent(); dpi.base.preferred = dp.isPreferred(); dpi.mtuV4 = dp.getMtuV4(); dpi.mtuV6 = dp.getMtuV6(); dpi.persistent = dp.isPersistent(); dpi.preferred = dp.isPreferred(); // profile id is only meaningful when it's persistent on the modem. dpi.base.profileId = (dpi.base.persistent) ? dp.getProfileId() : DataProfileId.INVALID; dpi.profileId = (dpi.persistent) ? dp.getProfileId() : DataProfileId.INVALID; return dpi; } Loading Loading @@ -6325,7 +6326,7 @@ public class RIL extends BaseCommands implements CommandsInterface { } /** * Convert SetupDataCallResult defined in 1.0 or 1.4/types.hal into DataCallResponse * Convert SetupDataCallResult defined in 1.0, 1.4, or 1.5 types.hal into DataCallResponse * @param dcResult setup data call result * @return converted DataCallResponse object */ Loading @@ -6333,7 +6334,7 @@ public class RIL extends BaseCommands implements CommandsInterface { public static DataCallResponse convertDataCallResult(Object dcResult) { if (dcResult == null) return null; int cause, suggestedRetryTime, cid, active, mtu; int cause, suggestedRetryTime, cid, active, mtu, mtuV4, mtuV6; String ifname; int protocolType; String[] addresses = null; Loading @@ -6342,7 +6343,7 @@ public class RIL extends BaseCommands implements CommandsInterface { String[] pcscfs = null; List<LinkAddress> laList = new ArrayList<>(); int version = 0; int version; if (dcResult instanceof android.hardware.radio.V1_0.SetupDataCallResult) { final android.hardware.radio.V1_0.SetupDataCallResult result = Loading @@ -6366,6 +6367,7 @@ public class RIL extends BaseCommands implements CommandsInterface { pcscfs = result.pcscf.split("\\s+"); } mtu = result.mtu; mtuV4 = mtuV6 = 0; version = 0; } else if (dcResult instanceof android.hardware.radio.V1_4.SetupDataCallResult) { final android.hardware.radio.V1_4.SetupDataCallResult result = Loading @@ -6381,6 +6383,7 @@ public class RIL extends BaseCommands implements CommandsInterface { gateways = result.gateways.stream().toArray(String[]::new); pcscfs = result.pcscf.stream().toArray(String[]::new); mtu = result.mtu; mtuV4 = mtuV6 = 0; version = 4; } else if (dcResult instanceof android.hardware.radio.V1_5.SetupDataCallResult) { final android.hardware.radio.V1_5.SetupDataCallResult result = Loading @@ -6398,7 +6401,9 @@ public class RIL extends BaseCommands implements CommandsInterface { dnses = result.dnses.stream().toArray(String[]::new); gateways = result.gateways.stream().toArray(String[]::new); pcscfs = result.pcscf.stream().toArray(String[]::new); mtu = result.mtu; mtu = 0; mtuV4 = result.mtuV4; mtuV6 = result.mtuV6; version = 5; } else { Rlog.e(RILJ_LOG_TAG, "Unsupported SetupDataCallResult " + dcResult); Loading Loading @@ -6476,8 +6481,22 @@ public class RIL extends BaseCommands implements CommandsInterface { } } return new DataCallResponse(cause, suggestedRetryTime, cid, active, protocolType, ifname, laList, dnsList, gatewayList, pcscfList, mtu); return new DataCallResponse.Builder() .setCause(cause) .setSuggestedRetryTime(suggestedRetryTime) .setId(cid) .setLinkStatus(active) .setProtocolType(protocolType) .setInterfaceName(ifname) .setAddresses(laList) .setDnsAddresses(dnsList) .setGatewayAddresses(gatewayList) .setPcscfAddresses(pcscfList) .setMtu(mtu) .setMtuV4(mtuV4) .setMtuV6(mtuV6) .setVersion(version) .build(); } /** Loading
src/java/com/android/internal/telephony/dataconnection/DataConnection.java +11 −5 Original line number Diff line number Diff line Loading @@ -644,10 +644,13 @@ public class DataConnection extends StateMachine { // Check if we should fake an error. if (mDcTesterFailBringUpAll.getDcFailBringUp().mCounter > 0) { DataCallResponse response = new DataCallResponse( mDcTesterFailBringUpAll.getDcFailBringUp().mFailCause, mDcTesterFailBringUpAll.getDcFailBringUp().mSuggestedRetryTime, 0, 0, 0, "", null, null, null, null, PhoneConstants.UNSET_MTU); DataCallResponse response = new DataCallResponse.Builder() .setCause(mDcTesterFailBringUpAll.getDcFailBringUp().mFailCause) .setSuggestedRetryTime( mDcTesterFailBringUpAll.getDcFailBringUp().mSuggestedRetryTime) .setMtuV4(PhoneConstants.UNSET_MTU) .setMtuV6(PhoneConstants.UNSET_MTU) .build(); Message msg = obtainMessage(EVENT_SETUP_DATA_CONNECTION_DONE, cp); AsyncResult.forMessage(msg, response, null); Loading Loading @@ -1474,14 +1477,17 @@ public class DataConnection extends StateMachine { } for (InetAddress gateway : response.getGatewayAddresses()) { int mtu = linkProperties.hasGlobalIPv6Address() ? response.getMtuV6() : response.getMtuV4(); // Allow 0.0.0.0 or :: as a gateway; // this indicates a point-to-point interface. linkProperties.addRoute(new RouteInfo(null, gateway, null, RouteInfo.RTN_UNICAST)); RouteInfo.RTN_UNICAST, mtu)); } // set interface MTU // this may clobber the setting read from the APN db, but that's ok // TODO: remove once LinkProperties#setMtu is deprecated linkProperties.setMtu(response.getMtu()); result = SetupResult.SUCCESS; Loading
tests/telephonytests/src/com/android/internal/telephony/RILTest.java +19 −10 Original line number Diff line number Diff line Loading @@ -1633,17 +1633,26 @@ public class RILTest extends TelephonyTest { result10.pcscf = "fd00:976a:c206:20::6 fd00:976a:c206:20::9 fd00:976a:c202:1d::9"; result10.mtu = 1500; DataCallResponse response = new DataCallResponse(0, -1, 0, 2, ApnSetting.PROTOCOL_IPV4V6, "ifname", Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress("10.0.2.15"), 32), new LinkAddress("2607:fb90:a620:651d:eabe:f8da:c107:44be/64")), Arrays.asList(InetAddresses.parseNumericAddress("10.0.2.3"), InetAddresses.parseNumericAddress("fd00:976a::9")), Arrays.asList(InetAddresses.parseNumericAddress("10.0.2.15"), InetAddresses.parseNumericAddress("fe80::2")), Arrays.asList(InetAddresses.parseNumericAddress("fd00:976a:c206:20::6"), DataCallResponse response = new DataCallResponse.Builder() .setCause(0) .setSuggestedRetryTime(-1) .setId(0) .setLinkStatus(2) .setProtocolType(ApnSetting.PROTOCOL_IPV4V6) .setInterfaceName("ifname") .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress("10.0.2.15"), 32), new LinkAddress("2607:fb90:a620:651d:eabe:f8da:c107:44be/64"))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress("10.0.2.3"), InetAddresses.parseNumericAddress("fd00:976a::9"))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress("10.0.2.15"), InetAddresses.parseNumericAddress("fe80::2"))) .setPcscfAddresses(Arrays.asList( InetAddresses.parseNumericAddress("fd00:976a:c206:20::6"), InetAddresses.parseNumericAddress("fd00:976a:c206:20::9"), InetAddresses.parseNumericAddress("fd00:976a:c202:1d::9")), 1500); InetAddresses.parseNumericAddress("fd00:976a:c202:1d::9"))) .setMtu(1500) .build(); assertEquals(response, RIL.convertDataCallResult(result10)); Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataCallResponseTest.java +67 −30 Original line number Diff line number Diff line Loading @@ -36,13 +36,22 @@ public class DataCallResponseTest extends AndroidTestCase { @SmallTest public void testParcel() throws Exception { DataCallResponse response = new DataCallResponse(0, -1, 1, 2, ApnSetting.PROTOCOL_IP, FAKE_IFNAME, Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)), 1440); DataCallResponse response = new DataCallResponse.Builder() .setCause(0) .setSuggestedRetryTime(-1) .setId(1) .setLinkStatus(2) .setProtocolType(ApnSetting.PROTOCOL_IP) .setInterfaceName(FAKE_IFNAME) .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) .setPcscfAddresses( Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) .setMtuV4(1440) .setMtuV6(1440) .build(); Parcel p = Parcel.obtain(); response.writeToParcel(p, 0); Loading @@ -54,34 +63,62 @@ public class DataCallResponseTest extends AndroidTestCase { @SmallTest public void testEquals() throws Exception { DataCallResponse response = new DataCallResponse(0, -1, 1, 2, ApnSetting.PROTOCOL_IP, FAKE_IFNAME, Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)), 1440); DataCallResponse response = new DataCallResponse.Builder() .setCause(0) .setSuggestedRetryTime(-1) .setId(1) .setLinkStatus(2) .setProtocolType(ApnSetting.PROTOCOL_IP) .setInterfaceName(FAKE_IFNAME) .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) .setPcscfAddresses( Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) .setMtuV4(1440) .setMtuV6(1400) .build(); DataCallResponse response1 = new DataCallResponse(0, -1, 1, 2, ApnSetting.PROTOCOL_IP, FAKE_IFNAME, Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)), 1440); DataCallResponse response1 = new DataCallResponse.Builder() .setCause(0) .setSuggestedRetryTime(-1) .setId(1) .setLinkStatus(2) .setProtocolType(ApnSetting.PROTOCOL_IP) .setInterfaceName(FAKE_IFNAME) .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) .setPcscfAddresses( Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) .setMtuV4(1440) .setMtuV6(1400) .build(); assertEquals(response, response); assertEquals(response, response1); DataCallResponse response2 = new DataCallResponse(1, -1, 1, 3, ApnSetting.PROTOCOL_IP, FAKE_IFNAME, Arrays.asList(new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS), InetAddresses.parseNumericAddress(FAKE_DNS)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY)), Arrays.asList(InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS), InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS)), 1441); DataCallResponse response2 = new DataCallResponse.Builder() .setCause(1) .setSuggestedRetryTime(-1) .setId(1) .setLinkStatus(3) .setProtocolType(ApnSetting.PROTOCOL_IP) .setInterfaceName(FAKE_IFNAME) .setAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress(FAKE_ADDRESS), 0))) .setDnsAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_DNS), InetAddresses.parseNumericAddress(FAKE_DNS))) .setGatewayAddresses(Arrays.asList(InetAddresses.parseNumericAddress(FAKE_GATEWAY))) .setPcscfAddresses(Arrays.asList( InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS), InetAddresses.parseNumericAddress(FAKE_PCSCF_ADDRESS))) .setMtuV4(1441) .setMtuV6(1440) .build(); assertNotSame(response1, response2); assertNotSame(response1, null); assertNotSame(response1, new String[1]); Loading
tests/telephonytests/src/com/android/internal/telephony/dataconnection/DataConnectionTest.java +158 −77 File changed.Preview size limit exceeded, changes collapsed. Show changes