From 9e6655945a8bd322fed74769e4f1e8d017a0236c Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Thu, 29 Jun 2017 11:46:51 +0900 Subject: [PATCH] Switch IpManager and IpReachabilityMonitor to use SharedLog Test: as follows - built - flashed - booted - "runtest frameworks-net" passes - frameworks/opt/net/wifi/tests/wifitests/runtests.sh passes - frameworks/base/wifi/tests/runtests.sh passes - roamed from AP to AP watching IpRM logs accumulate Bug: 62476366 Bug: 62162774 Merged-In: I4bef3b6b1975fa3c73cca0a0e95fad99708f061e Merged-In: I265566158f3e5ebd21fb43e2eb0b8ba016fca76a Change-Id: I155a26259420919eeed74166bacce3311caa49da (cherry picked from commit 0fc10b2b1d7be649c80dda4ebdb2e31af216bfcc) --- .../net/java/android/net/ip/IpManager.java | 18 ++++++++++-------- .../android/net/ip/IpReachabilityMonitor.java | 11 ++++++++--- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java index 9e2d6961a7b3f..9de4ba4d72df2 100644 --- a/services/net/java/android/net/ip/IpManager.java +++ b/services/net/java/android/net/ip/IpManager.java @@ -35,6 +35,7 @@ import android.net.dhcp.DhcpClient; import android.net.metrics.IpConnectivityLog; import android.net.metrics.IpManagerEvent; import android.net.util.MultinetworkPolicyTracker; +import android.net.util.SharedLog; import android.os.INetworkManagementService; import android.os.Message; import android.os.RemoteException; @@ -187,7 +188,7 @@ public class IpManager extends StateMachine { } private void log(String msg) { - mLocalLog.log(PREFIX + msg); + mLog.log(PREFIX + msg); } @Override @@ -414,7 +415,7 @@ public class IpManager extends StateMachine { private final WakeupMessage mProvisioningTimeoutAlarm; private final WakeupMessage mDhcpActionTimeoutAlarm; private final MultinetworkPolicyTracker mMultinetworkPolicyTracker; - private final LocalLog mLocalLog; + private final SharedLog mLog; private final LocalLog mConnectivityPacketLog; private final MessageHandlingLogger mMsgStateLogger; private final IpConnectivityLog mMetricsLog = new IpConnectivityLog(); @@ -455,7 +456,7 @@ public class IpManager extends StateMachine { mCallback = new LoggingCallbackWrapper(callback); mNwService = nwService; - mLocalLog = new LocalLog(MAX_LOG_RECORDS); + mLog = new SharedLog(MAX_LOG_RECORDS, mTag); mConnectivityPacketLog = new LocalLog(MAX_PACKET_RECORDS); mMsgStateLogger = new MessageHandlingLogger(); @@ -500,7 +501,7 @@ public class IpManager extends StateMachine { private void logMsg(String msg) { Log.d(mTag, msg); - getHandler().post(() -> { mLocalLog.log("OBSERVED " + msg); }); + getHandler().post(() -> { mLog.log("OBSERVED " + msg); }); } }; @@ -508,7 +509,7 @@ public class IpManager extends StateMachine { mLinkProperties.setInterfaceName(mInterfaceName); mMultinetworkPolicyTracker = new MultinetworkPolicyTracker(mContext, getHandler(), - () -> { mLocalLog.log("OBSERVED AvoidBadWifi changed"); }); + () -> { mLog.log("OBSERVED AvoidBadWifi changed"); }); mProvisioningTimeoutAlarm = new WakeupMessage(mContext, getHandler(), mTag + ".EVENT_PROVISIONING_TIMEOUT", EVENT_PROVISIONING_TIMEOUT); @@ -658,7 +659,7 @@ public class IpManager extends StateMachine { pw.println(); pw.println(mTag + " StateMachine dump:"); pw.increaseIndent(); - mLocalLog.readOnlyLocalLog().dump(fd, pw, args); + mLog.dump(fd, pw, args); pw.decreaseIndent(); pw.println(); @@ -693,7 +694,7 @@ public class IpManager extends StateMachine { msg.arg1, msg.arg2, Objects.toString(msg.obj), mMsgStateLogger); final String richerLogLine = getWhatToString(msg.what) + " " + logLine; - mLocalLog.log(richerLogLine); + mLog.log(richerLogLine); if (VDBG) { Log.d(mTag, richerLogLine); } @@ -717,7 +718,7 @@ public class IpManager extends StateMachine { private void logError(String fmt, Object... args) { final String msg = "ERROR " + String.format(fmt, args); Log.e(mTag, msg); - mLocalLog.log(msg); + mLog.log(msg); } private void getNetworkInterface() { @@ -1088,6 +1089,7 @@ public class IpManager extends StateMachine { mIpReachabilityMonitor = new IpReachabilityMonitor( mContext, mInterfaceName, + mLog, new IpReachabilityMonitor.Callback() { @Override public void notifyLost(InetAddress ip, String logMsg) { diff --git a/services/net/java/android/net/ip/IpReachabilityMonitor.java b/services/net/java/android/net/ip/IpReachabilityMonitor.java index a004dbbb90867..846af17e33fe9 100644 --- a/services/net/java/android/net/ip/IpReachabilityMonitor.java +++ b/services/net/java/android/net/ip/IpReachabilityMonitor.java @@ -35,6 +35,7 @@ import android.net.netlink.StructNdaCacheInfo; import android.net.netlink.StructNdMsg; import android.net.netlink.StructNlMsgHdr; import android.net.util.MultinetworkPolicyTracker; +import android.net.util.SharedLog; import android.os.PowerManager; import android.os.SystemClock; import android.system.ErrnoException; @@ -150,6 +151,7 @@ public class IpReachabilityMonitor { private final PowerManager.WakeLock mWakeLock; private final String mInterfaceName; private final int mInterfaceIndex; + private final SharedLog mLog; private final Callback mCallback; private final MultinetworkPolicyTracker mMultinetworkPolicyTracker; private final NetlinkSocketObserver mNetlinkSocketObserver; @@ -222,11 +224,11 @@ public class IpReachabilityMonitor { return errno; } - public IpReachabilityMonitor(Context context, String ifName, Callback callback) { - this(context, ifName, callback, null); + public IpReachabilityMonitor(Context context, String ifName, SharedLog log, Callback callback) { + this(context, ifName, log, callback, null); } - public IpReachabilityMonitor(Context context, String ifName, Callback callback, + public IpReachabilityMonitor(Context context, String ifName, SharedLog log, Callback callback, MultinetworkPolicyTracker tracker) throws IllegalArgumentException { mInterfaceName = ifName; int ifIndex = -1; @@ -238,6 +240,7 @@ public class IpReachabilityMonitor { } mWakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE)).newWakeLock( PowerManager.PARTIAL_WAKE_LOCK, TAG + "." + mInterfaceName); + mLog = log.forSubComponent(TAG); mCallback = callback; mMultinetworkPolicyTracker = tracker; mNetlinkSocketObserver = new NetlinkSocketObserver(); @@ -410,6 +413,8 @@ public class IpReachabilityMonitor { break; } final int returnValue = probeNeighbor(mInterfaceIndex, target); + mLog.log(String.format("put neighbor %s into NUD_PROBE state (rval=%d)", + target.getHostAddress(), returnValue)); logEvent(IpReachabilityEvent.PROBE, returnValue); } mLastProbeTimeMs = SystemClock.elapsedRealtime();