Merge "Add clarifying comments on for IPsec forward policies" am: 1a88665f3c

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1702525

Change-Id: I7267d331065ceadb830a14170920810f053eacb8
diff --git a/services/core/java/com/android/server/IpSecService.java b/services/core/java/com/android/server/IpSecService.java
index d574e74..d6ee951 100644
--- a/services/core/java/com/android/server/IpSecService.java
+++ b/services/core/java/com/android/server/IpSecService.java
@@ -1112,7 +1112,7 @@
             case IpSecManager.DIRECTION_IN:
                 return;
             case IpSecManager.DIRECTION_FWD:
-                // Only NETWORK_STACK or PERMISSION_NETWORK_STACK allowed to use forward policies
+                // Only NETWORK_STACK or MAINLINE_NETWORK_STACK allowed to use forward policies
                 PermissionUtils.enforceNetworkStackPermission(mContext);
                 return;
         }
@@ -1358,6 +1358,16 @@
                         ikey,
                         0xffffffff,
                         resourceId);
+
+                // Add a forwarding policy on the tunnel interface. In order to support forwarding
+                // the IpSecTunnelInterface must have a forwarding policy matching the incoming SA.
+                //
+                // Unless a IpSecTransform is also applied against this interface in DIRECTION_FWD,
+                // forwarding will be blocked by default (as would be the case if this policy was
+                // absent).
+                //
+                // This is necessary only on the tunnel interface, and not any the interface to
+                // which traffic will be forwarded to.
                 netd.ipSecAddSecurityPolicy(
                         callerUid,
                         selAddrFamily,