Tethering: IPV6 tethering support

- Added two APIs addUpstreamV6Interface and removeUpstreamV6Interface,
  required to pass the interfaces to use to the Router Advertisement
  Proxy.
- Added a dun entry to the networkAttributes value in
  res/values/config.xml. This is to allow tethering to work with the
  dunRequired property.
- Added dun to allowable tether upstream type.
- Enabled debug flags for debug logging inside framework components.
- Regardless of MOBILE_TYPE_DUN APN being available, if dun_required
  flag is not set, fall back to HIPRI as a preferred APN for the
  embedded data call.
- Debug logging was enabled by default which was causing security
  vulnerabilities. This patch disables debug logging.
- Added a NULL check for Network info in CMD_UPSTREAM_CHANGED
- Changed the exception type thrown from IllegalStateException to
  RemoteException whenever the IPv6 tethering rules fail to apply. The
  IllegalStateException is not caught by the caller causing the JVM
  to crash. By throwing RemoteException, the caller will catch and
  print and error message instead of crashing.

Conflicts:
        services/core/java/com/android/server/NetworkManagementService.java

CRs-fixed: 665103
Change-Id: Idb0971449473554bcd749d478563db7ba351d55d
4 files changed