Move cookie tag bpf map dump to NetworkStatsService
Map status dump will do access check if map is null.
This could show different message from the current dump output.
Information in map content dump does not change
$ dumpsys connectivity trafficcontroller
....
mCookieTagMap:
cookie=1398 tag=0x0 uid=1029
cookie=1433 tag=0xffffff82 uid=1051
cookie=1166 tag=0xfffffe01 uid=1073
$ dumpsys netstats
....
mCookieTagMap:
cookie=1144 tag=0xfffffe01 uid=1073
cookie=1376 tag=0x0 uid=1029
cookie=1408 tag=0xffffff82 uid=1051
Bug: 217624062
Test: dumpsys netstats, dumpstate, atest NetworkStatsServiceTest
Change-Id: I14dd6f969a0b5eb24ace62361ce2484cf18b7470
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.server.net;
|
||||
|
||||
import static android.Manifest.permission.DUMP;
|
||||
import static android.Manifest.permission.READ_NETWORK_USAGE_HISTORY;
|
||||
import static android.Manifest.permission.UPDATE_DEVICE_STATS;
|
||||
import static android.app.usage.NetworkStatsManager.PREFIX_DEV;
|
||||
@@ -156,7 +157,10 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.time.Clock;
|
||||
@@ -283,6 +287,7 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
||||
case PERMISSION_MAINLINE_NETWORK_STACK:
|
||||
case READ_NETWORK_USAGE_HISTORY:
|
||||
case UPDATE_DEVICE_STATS:
|
||||
case DUMP:
|
||||
return PERMISSION_GRANTED;
|
||||
default:
|
||||
return PERMISSION_DENIED;
|
||||
@@ -2317,4 +2322,25 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest {
|
||||
assertTrue(mAppUidStatsMap.containsKey(new UidStatsMapKey(UID_RED)));
|
||||
assertTrue(mUidCounterSetMap.containsKey(new U32(UID_RED)));
|
||||
}
|
||||
|
||||
private void assertDumpContains(final String dump, final String message) {
|
||||
assertTrue(String.format("dump(%s) does not contain '%s'", dump, message),
|
||||
dump.contains(message));
|
||||
}
|
||||
|
||||
private String getDump() {
|
||||
final StringWriter sw = new StringWriter();
|
||||
mService.dump(new FileDescriptor(), new PrintWriter(sw), new String[]{});
|
||||
return sw.toString();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDumpCookieTagMap() throws ErrnoException {
|
||||
initBpfMapsWithTagData(UID_BLUE);
|
||||
|
||||
final String dump = getDump();
|
||||
assertDumpContains(dump, "mCookieTagMap: OK");
|
||||
assertDumpContains(dump, "cookie=2002 tag=0x1 uid=1002");
|
||||
assertDumpContains(dump, "cookie=3002 tag=0x2 uid=1002");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user