[RFCLAT#4] Move clat ipv6 address setup from clatd to netd

This is a preparation for reducing the clatd required capability.

Function change:
- configure_clat_ipv6_address(), configure_interface(),
  configure_packet_socket() are moved to netd/ClatdController
- move the follows to main() because previous functions are removed.
  setup Global_Clatd_Config.native_ipv6_interface
  setup Global_Clatd_Config.plat_subnet
  setup Global_Clatd_Config.ipv6_local_subnet

Bug: 212345928
Test: manual test
1. Connect to ipv6-only wifi.
2. Try IPv4 traffic.
   $ ping 8.8.8.8

Change-Id: I8457b7752a799756549a72296aae572ad73ff653
diff --git a/main.c b/main.c
index fe88dfd..ef5e3ab 100644
--- a/main.c
+++ b/main.c
@@ -145,18 +145,27 @@
     exit(1);
   }
 
+  Global_Clatd_Config.native_ipv6_interface = uplink_interface;
+  if (!plat_prefix || inet_pton(AF_INET6, plat_prefix, &Global_Clatd_Config.plat_subnet) <= 0) {
+    logmsg(ANDROID_LOG_FATAL, "invalid IPv6 address specified for plat prefix: %s", plat_prefix);
+    exit(1);
+  }
+
   if (!v4_addr || !inet_pton(AF_INET, v4_addr, &Global_Clatd_Config.ipv4_local_subnet.s_addr)) {
     logmsg(ANDROID_LOG_FATAL, "Invalid IPv4 address %s", v4_addr);
     exit(1);
   }
 
+  if (!v6_addr || !inet_pton(AF_INET6, v6_addr, &Global_Clatd_Config.ipv6_local_subnet)) {
+    logmsg(ANDROID_LOG_FATAL, "Invalid source address %s", v6_addr);
+    exit(1);
+  }
+
   logmsg(ANDROID_LOG_INFO, "Starting clat version %s on %s mark=%s plat=%s v4=%s v6=%s",
          CLATD_VERSION, uplink_interface, mark_str ? mark_str : "(none)",
          plat_prefix ? plat_prefix : "(none)", v4_addr ? v4_addr : "(none)",
          v6_addr ? v6_addr : "(none)");
 
-  configure_interface(uplink_interface, plat_prefix, v6_addr, &tunnel);
-
   // run under a regular user with no capabilities
   drop_root_and_caps();