Fix WiFi-Direct.

Send explicit commands to netd to add routes for the p2p interface. This already
happens via the tetherInterface() command when we are the group owner, so the
new command is used only when we are not a group owner.

Bug: 15413694

Change-Id: I36effc438d5ac193a77174493bf196cb68a5b97a
diff --git a/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java b/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
index a5a3548..e2324a0 100644
--- a/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
+++ b/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
@@ -1893,6 +1893,12 @@
                         sendP2pConnectionChangedBroadcast();
                         //Turn on power save on client
                         mWifiNative.setP2pPowerSave(mGroup.getInterface(), true);
+                        try {
+                            mNwService.addInterfaceToLocalNetwork(mGroup.getInterface(),
+                                    dhcpResults.linkProperties.getRoutes());
+                        } catch (RemoteException e) {
+                            loge("Failed to add iface to local network " + e);
+                        }
                     } else {
                         loge("DHCP failed");
                         mWifiNative.p2pGroupRemove(mGroup.getInterface());
@@ -2742,6 +2748,11 @@
             mDhcpStateMachine.sendMessage(DhcpStateMachine.CMD_STOP_DHCP);
             mDhcpStateMachine.doQuit();
             mDhcpStateMachine = null;
+            try {
+                mNwService.removeInterfaceFromLocalNetwork(mGroup.getInterface());
+            } catch (RemoteException e) {
+                loge("Failed to remove iface from local network " + e);
+            }
         }
 
         try {