Dump the unused IPv4 BPF rule age correctly

Print a dash for the unused "lastUsed" of the rule.

The age should not equal the bootime if the rule has never been
updated the "lastUsed" field.

Format:
[inDstMac] iif(iface) src -> nat -> dst [outDstMac] age
[00:00:00:00:00:00] 14(rmnet0) 140.112.8.116:443
-> 30(30) 10.170.56.233:43720
-> 192.168.45.236:43720 [be:34:40:28:33:5f] -

Test: dumpsys tethering
Change-Id: Ie771becd2f72518cf02a86e5ae228315785752a5
This commit is contained in:
Hungming Chen
2021-06-29 16:10:54 +08:00
parent b0c9e64d33
commit e7dff2f955

View File

@@ -1069,11 +1069,12 @@ public class BpfCoordinator {
throw new AssertionError("IP address array not valid IPv4 address!"); throw new AssertionError("IP address array not valid IPv4 address!");
} }
final long ageMs = (now - value.lastUsed) / 1_000_000; final String ageStr = (value.lastUsed == 0) ? "-"
return String.format("[%s] %d(%s) %s:%d -> %d(%s) %s:%d -> %s:%d [%s] %dms", : String.format("%dms", (now - value.lastUsed) / 1_000_000);
return String.format("[%s] %d(%s) %s:%d -> %d(%s) %s:%d -> %s:%d [%s] %s",
key.dstMac, key.iif, getIfName(key.iif), src4, key.srcPort, key.dstMac, key.iif, getIfName(key.iif), src4, key.srcPort,
value.oif, getIfName(value.oif), value.oif, getIfName(value.oif),
public4, publicPort, dst4, value.dstPort, value.ethDstMac, ageMs); public4, publicPort, dst4, value.dstPort, value.ethDstMac, ageStr);
} }
private void dumpIpv4ForwardingRuleMap(long now, boolean downstream, private void dumpIpv4ForwardingRuleMap(long now, boolean downstream,