From cdac5e3d46d6f133ef0d55006b72278c7eda88e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Tue, 18 Mar 2025 18:51:19 -0700 Subject: [PATCH] BpfNetMaps: auto populate interface tracker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit on demand, should get rid of: $ adb shell logcat -s -d : | egrep -i bpfn 03-18 11:55:20.724 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /224.0.0.0(buried_eth0) 03-18 11:55:20.724 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /ff00::(buried_eth0) 03-18 11:55:20.724 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /255.255.255.255(buried_eth0) 03-18 11:55:20.724 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /192.168.0.0(buried_eth0) 03-18 11:55:26.328 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /224.0.0.0(wlan0) 03-18 11:55:26.328 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /ff00::(wlan0) 03-18 11:55:26.328 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /255.255.255.255(wlan0) 03-18 11:55:26.328 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /fe80::(wlan0) 03-18 11:55:29.333 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /fe80::(wlan0) 03-18 11:55:29.348 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /fe80::(wlan0) 03-18 11:55:29.349 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /192.168.99.1(wlan0) 03-18 11:55:29.349 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /192.168.99.1(wlan0) 03-18 11:55:29.349 826 2453 E BpfNetMaps: Failed to get if index, skip addLocalNetAccess for /192.168.0.0(wlan0) Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: I1a8c0fcef43674677fd267534d0cc9d1f8514792 --- service/src/com/android/server/BpfNetMaps.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/service/src/com/android/server/BpfNetMaps.java b/service/src/com/android/server/BpfNetMaps.java index 923920fa7f..9bd407dfd2 100644 --- a/service/src/com/android/server/BpfNetMaps.java +++ b/service/src/com/android/server/BpfNetMaps.java @@ -915,10 +915,13 @@ public class BpfNetMaps { final InetAddress address, final int protocol, final int remotePort, final boolean isAllowed) { throwIfPre25Q2("addLocalNetAccess is not available on pre-B devices"); - final int ifIndex; if (iface == null) { - ifIndex = 0; - } else { + Log.e(TAG, "Null iface, skip addLocalNetAccess for " + address); + return; + } + int ifIndex = mInterfaceTracker.getInterfaceIndex(iface); + if (ifIndex == 0) { + mInterfaceTracker.addInterface(iface); ifIndex = mInterfaceTracker.getInterfaceIndex(iface); } if (ifIndex == 0) {