Always add local subnet routes to the interface's routing table
For some networks such as mobile data connections, its LinkProperties does not contain routes for the local subnet so no such route is added to the interface's routing table. This can be problematic especially if the device is in VPN lockdown mode where there exists high-priority PROHIBIT routing rule which in turn blocks the network's default gateway route from being added (next hop address hitting the prohibit rule). We fix this by patching LinkProperties to always include direct connected routes when they are received by ConnectivityService. This has the added advantage that when apps get LinkProperties, they see the directly connected routes as well. Bug: 63662962 Test: runtest frameworks-core -c android.net.LinkPropertiesTest Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest Test: Start with device with mobile data, set up ics-OpenVPN in always-on lockdown mode. Turn off mobile data then turn it back on, observe mobile data connectivity is restored and VPN successfully reconnects. (cherry picked from commit 1bb5c081) Change-Id: Ia14f88bcf49d37286519c26dff6b7180303e2cbe
Loading
Please register or sign in to comment