diff --git a/Tethering/src/com/android/networkstack/tethering/BpfCoordinator.java b/Tethering/src/com/android/networkstack/tethering/BpfCoordinator.java index 8adcbd9ff9..0ce889886b 100644 --- a/Tethering/src/com/android/networkstack/tethering/BpfCoordinator.java +++ b/Tethering/src/com/android/networkstack/tethering/BpfCoordinator.java @@ -773,6 +773,12 @@ public class BpfCoordinator { } pw.decreaseIndent(); + pw.println("BPF stats:"); + pw.increaseIndent(); + dumpBpfStats(pw); + pw.decreaseIndent(); + pw.println(); + pw.println("Forwarding rules:"); pw.increaseIndent(); dumpIpv6UpstreamRules(pw); @@ -800,6 +806,22 @@ public class BpfCoordinator { upstreamIfindex), stats.toString())); } } + private void dumpBpfStats(@NonNull IndentingPrintWriter pw) { + try (BpfMap map = mDeps.getBpfStatsMap()) { + if (map == null) { + pw.println("No BPF stats map"); + return; + } + if (map.isEmpty()) { + pw.println(""); + } + map.forEach((k, v) -> { + pw.println(String.format("%s: %s", k, v)); + }); + } catch (ErrnoException e) { + pw.println("Error dumping BPF stats map: " + e); + } + } private void dumpIpv6ForwardingRules(@NonNull IndentingPrintWriter pw) { if (mIpv6ForwardingRules.size() == 0) {