summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index bc356da..b053c3a 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -222,6 +222,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
private INetworkPolicyManager mPolicyManager;
private String mCurrentTcpBufferSizes;
+ private int mCurrentTcpDelayedAckSegments;
+ private int mCurrentTcpUserCfg;
private static final int ENABLED = 1;
private static final int DISABLED = 0;
@@ -1735,6 +1737,34 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
}
+ private void updateTcpDelayedAck(NetworkAgentInfo nai) {
+ if (isDefaultNetwork(nai) == false) {
+ return;
+ }
+
+ int segments = nai.linkProperties.getTcpDelayedAckSegments();
+ int usercfg = nai.linkProperties.getTcpUserCfg();
+
+ if (segments != mCurrentTcpDelayedAckSegments) {
+ try {
+ FileUtils.stringToFile("/sys/kernel/ipv4/tcp_delack_seg",
+ String.valueOf(segments));
+ mCurrentTcpDelayedAckSegments = segments;
+ } catch (IOException e) {
+ // optional
+ }
+ }
+
+ if (usercfg != mCurrentTcpUserCfg) {
+ try {
+ FileUtils.stringToFile("/sys/kernel/ipv4/tcp_use_usercfg",
+ String.valueOf(usercfg));
+ mCurrentTcpUserCfg = usercfg;
+ } catch (IOException e) {
+ // optional
+ }
+ }
+ }
private void flushVmDnsCache() {
/*
* Tell the VMs to toss their DNS caches
@@ -3961,6 +3991,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
// updateMtu(lp, null);
// }
updateTcpBufferSizes(networkAgent);
+ updateTcpDelayedAck(networkAgent);
// TODO: deprecate and remove mDefaultDns when we can do so safely. See http://b/18327075
// In L, we used it only when the network had Internet access but provided no DNS servers.
@@ -4285,6 +4316,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
notifyLockdownVpn(newNetwork);
handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
updateTcpBufferSizes(newNetwork);
+ updateTcpDelayedAck(newNetwork);
setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
}