Loading core/java/android/net/metrics/WakeupStats.java +14 −12 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ public class WakeupStats { break; } if (ev.dstHwAddr != null) { switch (ev.dstHwAddr.getAddressType()) { case MacAddress.TYPE_UNICAST: l2UnicastCount++; Loading @@ -93,6 +94,7 @@ public class WakeupStats { default: break; } } increment(ethertypes, ev.ethertype); if (ev.ipNextHeader >= 0) { Loading services/core/java/com/android/server/connectivity/NetdEventListenerService.java +18 −5 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.ArrayUtils; import com.android.internal.util.BitUtils; import com.android.internal.util.FrameworkStatsLog; import com.android.internal.util.RingBuffer; Loading Loading @@ -278,6 +279,11 @@ public class NetdEventListenerService extends BaseNetdEventListener { } } private boolean hasWifiTransport(Network network) { final NetworkCapabilities nc = mCm.getNetworkCapabilities(network); return nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI); } @Override public synchronized void onWakeupEvent(String prefix, int uid, int ethertype, int ipNextHeader, byte[] dstHw, String srcIp, String dstIp, int srcPort, int dstPort, long timestampNs) { Loading @@ -286,12 +292,21 @@ public class NetdEventListenerService extends BaseNetdEventListener { throw new IllegalArgumentException("Prefix " + prefix + " required in format <nethandle>:<interface>"); } final long netHandle = Long.parseLong(prefixParts[0]); final Network network = Network.fromNetworkHandle(netHandle); final WakeupEvent event = new WakeupEvent(); event.iface = prefixParts[1]; event.uid = uid; event.ethertype = ethertype; if (ArrayUtils.isEmpty(dstHw)) { if (hasWifiTransport(network)) { Log.e(TAG, "Empty mac address on WiFi transport, network: " + network); } event.dstHwAddr = null; } else { event.dstHwAddr = MacAddress.fromBytes(dstHw); } event.srcIp = srcIp; event.dstIp = dstIp; event.ipNextHeader = ipNextHeader; Loading @@ -306,14 +321,12 @@ public class NetdEventListenerService extends BaseNetdEventListener { final BatteryStatsInternal bsi = LocalServices.getService(BatteryStatsInternal.class); if (bsi != null) { final long netHandle = Long.parseLong(prefixParts[0]); final long elapsedMs = SystemClock.elapsedRealtime() + event.timestampMs - System.currentTimeMillis(); bsi.noteCpuWakingNetworkPacket(Network.fromNetworkHandle(netHandle), elapsedMs, event.uid); bsi.noteCpuWakingNetworkPacket(network, elapsedMs, event.uid); } final String dstMac = event.dstHwAddr.toString(); final String dstMac = String.valueOf(event.dstHwAddr); FrameworkStatsLog.write(FrameworkStatsLog.PACKET_WAKEUP_OCCURRED, uid, event.iface, ethertype, dstMac, srcIp, dstIp, ipNextHeader, srcPort, dstPort); } Loading Loading
core/java/android/net/metrics/WakeupStats.java +14 −12 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ public class WakeupStats { break; } if (ev.dstHwAddr != null) { switch (ev.dstHwAddr.getAddressType()) { case MacAddress.TYPE_UNICAST: l2UnicastCount++; Loading @@ -93,6 +94,7 @@ public class WakeupStats { default: break; } } increment(ethertypes, ev.ethertype); if (ev.ipNextHeader >= 0) { Loading
services/core/java/com/android/server/connectivity/NetdEventListenerService.java +18 −5 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.ArrayUtils; import com.android.internal.util.BitUtils; import com.android.internal.util.FrameworkStatsLog; import com.android.internal.util.RingBuffer; Loading Loading @@ -278,6 +279,11 @@ public class NetdEventListenerService extends BaseNetdEventListener { } } private boolean hasWifiTransport(Network network) { final NetworkCapabilities nc = mCm.getNetworkCapabilities(network); return nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI); } @Override public synchronized void onWakeupEvent(String prefix, int uid, int ethertype, int ipNextHeader, byte[] dstHw, String srcIp, String dstIp, int srcPort, int dstPort, long timestampNs) { Loading @@ -286,12 +292,21 @@ public class NetdEventListenerService extends BaseNetdEventListener { throw new IllegalArgumentException("Prefix " + prefix + " required in format <nethandle>:<interface>"); } final long netHandle = Long.parseLong(prefixParts[0]); final Network network = Network.fromNetworkHandle(netHandle); final WakeupEvent event = new WakeupEvent(); event.iface = prefixParts[1]; event.uid = uid; event.ethertype = ethertype; if (ArrayUtils.isEmpty(dstHw)) { if (hasWifiTransport(network)) { Log.e(TAG, "Empty mac address on WiFi transport, network: " + network); } event.dstHwAddr = null; } else { event.dstHwAddr = MacAddress.fromBytes(dstHw); } event.srcIp = srcIp; event.dstIp = dstIp; event.ipNextHeader = ipNextHeader; Loading @@ -306,14 +321,12 @@ public class NetdEventListenerService extends BaseNetdEventListener { final BatteryStatsInternal bsi = LocalServices.getService(BatteryStatsInternal.class); if (bsi != null) { final long netHandle = Long.parseLong(prefixParts[0]); final long elapsedMs = SystemClock.elapsedRealtime() + event.timestampMs - System.currentTimeMillis(); bsi.noteCpuWakingNetworkPacket(Network.fromNetworkHandle(netHandle), elapsedMs, event.uid); bsi.noteCpuWakingNetworkPacket(network, elapsedMs, event.uid); } final String dstMac = event.dstHwAddr.toString(); final String dstMac = String.valueOf(event.dstHwAddr); FrameworkStatsLog.write(FrameworkStatsLog.PACKET_WAKEUP_OCCURRED, uid, event.iface, ethertype, dstMac, srcIp, dstIp, ipNextHeader, srcPort, dstPort); } Loading