Update netd interface

Adding netId for route changes

bug:13732575
Change-Id: Id171412a0f580f71398c9b0b8742acb1f3ef5a1e
diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl
index f56df79..d3b4a11 100644
--- a/core/java/android/os/INetworkManagementService.aidl
+++ b/core/java/android/os/INetworkManagementService.aidl
@@ -469,11 +469,11 @@
     void addDnsServersForNetId(int netId, in String[] servers, in String domains);
     void removeDnsServersForNetId(int netId, in String[] servers, in String domains);
 
-    void addRouteForNetId(in RouteInfo routeInfo);
-    void removeRouteForNetId(in RouteInfo routeInfo);
+    void addRouteForNetId(int netId, in RouteInfo routeInfo);
+    void removeRouteForNetId(int netId, in RouteInfo routeInfo);
 
-    void addLegacyRouteForNetId(in RouteInfo routeInfo, int uid);
-    void removeLegacyRouteForNetId(in RouteInfo routeInfo, int uid);
+    void addLegacyRouteForNetId(int netId, in RouteInfo routeInfo, int uid);
+    void removeLegacyRouteForNetId(int netId, in RouteInfo routeInfo, int uid);
 
     void setDefaultNetId(int netId, boolean resetOldSockets);
     void clearDefaultNetId();
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index 0fecdf9..878d6c1 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -897,16 +897,7 @@
         final LinkAddress la = route.getDestination();
         cmd.appendArg(la.getAddress().getHostAddress());
         cmd.appendArg(la.getNetworkPrefixLength());
-
-        if (route.getGateway() == null) {
-            if (la.getAddress() instanceof Inet4Address) {
-                cmd.appendArg("0.0.0.0");
-            } else {
-                cmd.appendArg("::0");
-            }
-        } else {
-            cmd.appendArg(route.getGateway().getHostAddress());
-        }
+        cmd.appendArg(route.getGateway().getHostAddress());
 
         try {
             mConnector.execute(cmd);
@@ -2081,35 +2072,25 @@
     }
 
     @Override
-    public void addRouteForNetId(RouteInfo routeInfo) {
-        modifyRouteForNetId(routeInfo, ADD);
+    public void addRouteForNetId(int netId, RouteInfo routeInfo) {
+        modifyRouteForNetId(netId, routeInfo, ADD);
     }
 
     @Override
-    public void removeRouteForNetId(RouteInfo routeInfo) {
-        modifyRouteForNetId(routeInfo, REMOVE);
+    public void removeRouteForNetId(int netId, RouteInfo routeInfo) {
+        modifyRouteForNetId(netId, routeInfo, REMOVE);
     }
 
-    private void modifyRouteForNetId(RouteInfo routeInfo, String action) {
+    private void modifyRouteForNetId(int netId, RouteInfo routeInfo, String action) {
         mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
 
-        final Command cmd = new Command("network", "route", action);
+        final Command cmd = new Command("network", "route", action, netId);
 
         // create quadlet: dest-ip-addr prefixlength gateway-ip-addr iface
         final LinkAddress la = routeInfo.getDestination();
         cmd.appendArg(la.getAddress().getHostAddress());
         cmd.appendArg(la.getNetworkPrefixLength());
-
-        if (routeInfo.getGateway() == null) {
-            if (la.getAddress() instanceof Inet4Address) {
-                cmd.appendArg("0.0.0.0");
-            } else {
-                cmd.appendArg("::0");
-            }
-        } else {
-            cmd.appendArg(routeInfo.getGateway().getHostAddress());
-        }
-
+        cmd.appendArg(routeInfo.getGateway().getHostAddress());
         cmd.appendArg(routeInfo.getInterface());
 
         try {
@@ -2120,35 +2101,25 @@
     }
 
     @Override
-    public void addLegacyRouteForNetId(RouteInfo routeInfo, int uid) {
-        modifyLegacyRouteForNetId(routeInfo, uid, ADD);
+    public void addLegacyRouteForNetId(int netId, RouteInfo routeInfo, int uid) {
+        modifyLegacyRouteForNetId(netId, routeInfo, uid, ADD);
     }
 
     @Override
-    public void removeLegacyRouteForNetId(RouteInfo routeInfo, int uid) {
-        modifyLegacyRouteForNetId(routeInfo, uid, REMOVE);
+    public void removeLegacyRouteForNetId(int netId, RouteInfo routeInfo, int uid) {
+        modifyLegacyRouteForNetId(netId, routeInfo, uid, REMOVE);
     }
 
-    private void modifyLegacyRouteForNetId(RouteInfo routeInfo, int uid, String action) {
+    private void modifyLegacyRouteForNetId(int netId, RouteInfo routeInfo, int uid, String action) {
         mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
 
-        final Command cmd = new Command("network", "legacy", uid, "route", action);
+        final Command cmd = new Command("network", "legacy", uid, "route", action, netId);
 
         // create quadlet: dest-ip-addr prefixlength gateway-ip-addr iface
         final LinkAddress la = routeInfo.getDestination();
         cmd.appendArg(la.getAddress().getHostAddress());
         cmd.appendArg(la.getNetworkPrefixLength());
-
-        if (routeInfo.getGateway() == null) {
-            if (la.getAddress() instanceof Inet4Address) {
-                cmd.appendArg("0.0.0.0");
-            } else {
-                cmd.appendArg("::0");
-            }
-        } else {
-            cmd.appendArg(routeInfo.getGateway().getHostAddress());
-        }
-
+        cmd.appendArg(routeInfo.getGateway().getHostAddress());
         cmd.appendArg(routeInfo.getInterface());
 
         try {