BpfNetMaps: auto populate interface tracker

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 <maze@google.com>
Change-Id: I1a8c0fcef43674677fd267534d0cc9d1f8514792
diff --git a/service/src/com/android/server/BpfNetMaps.java b/service/src/com/android/server/BpfNetMaps.java
index 923920f..9bd407d 100644
--- a/service/src/com/android/server/BpfNetMaps.java
+++ b/service/src/com/android/server/BpfNetMaps.java
@@ -915,10 +915,13 @@
             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) {