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

Change-Id: I155a26259420919eeed74166bacce3311caa49da
This commit is contained in:
Erik Kline
2017-06-29 11:46:51 +09:00
parent 0e0b89a3e9
commit 0fc10b2b1d
2 changed files with 18 additions and 11 deletions

View File

@@ -34,6 +34,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;
@@ -184,7 +185,7 @@ public class IpManager extends StateMachine {
}
private void log(String msg) {
mLocalLog.log(PREFIX + msg);
mLog.log(PREFIX + msg);
}
@Override
@@ -399,7 +400,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();
@@ -440,7 +441,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();
@@ -485,7 +486,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); });
}
};
@@ -493,7 +494,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);
@@ -643,7 +644,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();
@@ -678,7 +679,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);
}
@@ -703,7 +704,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() {
@@ -1065,6 +1066,7 @@ public class IpManager extends StateMachine {
mIpReachabilityMonitor = new IpReachabilityMonitor(
mContext,
mInterfaceName,
mLog,
new IpReachabilityMonitor.Callback() {
@Override
public void notifyLost(InetAddress ip, String logMsg) {

View File

@@ -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;
@@ -221,11 +223,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;
@@ -237,6 +239,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();
@@ -403,6 +406,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();