Dump bpf program status in dumpsys
Sample output: Bpf Program Status: CGROUP_INET_INGRESS: 21 CGROUP_INET_EGRESS: 22 CGROUP_INET_SOCK_CREATE: 28 CGROUP_INET4_BIND: 30 CGROUP_INET6_BIND: 31 Test: adb shell dumpsys connectivity Test: atest FrameworksNetTests:android.net.connectivity.com.android.server.ConnectivityServiceTest#testDumpDoesNotCrash Test: atest ConnectivityCoverageTests:android.net.connectivity.com.android.server.ConnectivityServiceTest#testDumpDoesNotCrash Bug: 292156770 Change-Id: I312c90c524af12d093536156d6d5c6febd64305a
This commit is contained in:
parent
f8dba342f1
commit
155760b57b
1 changed files with 61 additions and 6 deletions
|
|
@ -98,6 +98,11 @@ import static android.system.OsConstants.ETH_P_ALL;
|
|||
import static android.system.OsConstants.IPPROTO_TCP;
|
||||
import static android.system.OsConstants.IPPROTO_UDP;
|
||||
|
||||
import static com.android.net.module.util.BpfUtils.BPF_CGROUP_INET4_BIND;
|
||||
import static com.android.net.module.util.BpfUtils.BPF_CGROUP_INET6_BIND;
|
||||
import static com.android.net.module.util.BpfUtils.BPF_CGROUP_INET_EGRESS;
|
||||
import static com.android.net.module.util.BpfUtils.BPF_CGROUP_INET_INGRESS;
|
||||
import static com.android.net.module.util.BpfUtils.BPF_CGROUP_INET_SOCK_CREATE;
|
||||
import static com.android.net.module.util.NetworkMonitorUtils.isPrivateDnsValidationRequired;
|
||||
import static com.android.net.module.util.PermissionUtils.checkAnyPermissionOf;
|
||||
import static com.android.net.module.util.PermissionUtils.enforceAnyPermissionOf;
|
||||
|
|
@ -277,6 +282,7 @@ import com.android.modules.utils.build.SdkLevel;
|
|||
import com.android.net.module.util.BaseNetdUnsolicitedEventListener;
|
||||
import com.android.net.module.util.BinderUtils;
|
||||
import com.android.net.module.util.BitUtils;
|
||||
import com.android.net.module.util.BpfUtils;
|
||||
import com.android.net.module.util.CollectionUtils;
|
||||
import com.android.net.module.util.DeviceConfigUtils;
|
||||
import com.android.net.module.util.InterfaceParams;
|
||||
|
|
@ -1525,6 +1531,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get BPF program Id from CGROUP. See {@link BpfUtils#getProgramId}.
|
||||
*/
|
||||
public int getBpfProgramId(final int attachType, @NonNull final String cgroupPath)
|
||||
throws IOException {
|
||||
return BpfUtils.getProgramId(attachType, cgroupPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wraps {@link BroadcastOptionsShimImpl#newInstance(BroadcastOptions)}
|
||||
*/
|
||||
|
|
@ -3249,6 +3263,26 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||
pw.decreaseIndent();
|
||||
}
|
||||
|
||||
private void dumpBpfProgramStatus(IndentingPrintWriter pw) {
|
||||
pw.println("Bpf Program Status:");
|
||||
pw.increaseIndent();
|
||||
try {
|
||||
pw.print("CGROUP_INET_INGRESS: ");
|
||||
pw.println(mDeps.getBpfProgramId(BPF_CGROUP_INET_INGRESS, BpfUtils.CGROUP_PATH));
|
||||
pw.print("CGROUP_INET_EGRESS: ");
|
||||
pw.println(mDeps.getBpfProgramId(BPF_CGROUP_INET_EGRESS, BpfUtils.CGROUP_PATH));
|
||||
pw.print("CGROUP_INET_SOCK_CREATE: ");
|
||||
pw.println(mDeps.getBpfProgramId(BPF_CGROUP_INET_SOCK_CREATE, BpfUtils.CGROUP_PATH));
|
||||
pw.print("CGROUP_INET4_BIND: ");
|
||||
pw.println(mDeps.getBpfProgramId(BPF_CGROUP_INET4_BIND, BpfUtils.CGROUP_PATH));
|
||||
pw.print("CGROUP_INET6_BIND: ");
|
||||
pw.println(mDeps.getBpfProgramId(BPF_CGROUP_INET6_BIND, BpfUtils.CGROUP_PATH));
|
||||
} catch (IOException e) {
|
||||
pw.println(" IOException");
|
||||
}
|
||||
pw.decreaseIndent();
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
static final String KEY_DESTROY_FROZEN_SOCKETS_VERSION = "destroy_frozen_sockets_version";
|
||||
@VisibleForTesting
|
||||
|
|
@ -3862,6 +3896,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||
pw.println();
|
||||
dumpCloseFrozenAppSockets(pw);
|
||||
|
||||
pw.println();
|
||||
dumpBpfProgramStatus(pw);
|
||||
|
||||
pw.println();
|
||||
|
||||
if (!CollectionUtils.contains(args, SHORT_ARG)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue