Support "dumpsys connectivity trafficcontroller"
Enable ConnectivityService to dump BPF maps from libtraffic_controller. Bug: 202086915 Test: adb shell dumpsys connectivity trafficcontroller Test: atest CtsNetTestCases:ConnectivityManagerTest#testDumpBpfNetMaps Test: run CTS in I021789813f116940d581e2c4a1fd357ff47bfa08 Change-Id: Ib0e935ee2b714ac61daceba6d13fa7a20f97f68f
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import static android.system.OsConstants.EOPNOTSUPP;
|
||||
|
||||
import android.net.INetd;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceSpecificException;
|
||||
@@ -24,6 +26,9 @@ import android.util.Log;
|
||||
|
||||
import com.android.modules.utils.build.SdkLevel;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* BpfNetMaps is responsible for providing traffic controller relevant functionality.
|
||||
*
|
||||
@@ -273,6 +278,23 @@ public class BpfNetMaps {
|
||||
native_setPermissionForUids(permissions, uids);
|
||||
}
|
||||
|
||||
/**
|
||||
* Dump BPF maps
|
||||
*
|
||||
* @param fd file descriptor to output
|
||||
* @throws IOException when file descriptor is invalid.
|
||||
* @throws ServiceSpecificException when the method is called on an unsupported device.
|
||||
*/
|
||||
public void dump(final FileDescriptor fd, boolean verbose)
|
||||
throws IOException, ServiceSpecificException {
|
||||
if (USE_NETD) {
|
||||
throw new ServiceSpecificException(
|
||||
EOPNOTSUPP, "dumpsys connectivity trafficcontroller dump not available on pre-T"
|
||||
+ " devices, use dumpsys netd trafficcontroller instead.");
|
||||
}
|
||||
native_dump(fd, verbose);
|
||||
}
|
||||
|
||||
private static native void native_init();
|
||||
private native int native_addNaughtyApp(int uid);
|
||||
private native int native_removeNaughtyApp(int uid);
|
||||
@@ -285,4 +307,5 @@ public class BpfNetMaps {
|
||||
private native int native_removeUidInterfaceRules(int[] uids);
|
||||
private native int native_swapActiveStatsMap();
|
||||
private native void native_setPermissionForUids(int permissions, int[] uids);
|
||||
private native void native_dump(FileDescriptor fd, boolean verbose);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user