Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f54b61a authored by Yuuki Habu's avatar Yuuki Habu
Browse files

To support skip464xlat per Network

To add skip464exlat in NetworkMisc.
NetworkAgent can skip to start 464xlat if need.
(e.g. IMS PDN for Cellular can be disabled)

Device will treat the network as IPv6-only if it is set

Bug: 69949375
Test: Nat464XlatTest, ConnectivityServiceTest

Change-Id: I676a02cb92530d64f29f34e89482a934f3ec4553
parent 293ab494
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -65,6 +65,12 @@ public class NetworkMisc implements Parcelable {
     */
    public String subscriberId;

    /**
     * Set to skip 464xlat. This means the device will treat the network as IPv6-only and
     * will not attempt to detect a NAT64 via RFC 7050 DNS lookups.
     */
    public boolean skip464xlat;

    public NetworkMisc() {
    }

@@ -75,6 +81,7 @@ public class NetworkMisc implements Parcelable {
            acceptUnvalidated = nm.acceptUnvalidated;
            subscriberId = nm.subscriberId;
            provisioningNotificationDisabled = nm.provisioningNotificationDisabled;
            skip464xlat = nm.skip464xlat;
        }
    }

@@ -90,6 +97,7 @@ public class NetworkMisc implements Parcelable {
        out.writeInt(acceptUnvalidated ? 1 : 0);
        out.writeString(subscriberId);
        out.writeInt(provisioningNotificationDisabled ? 1 : 0);
        out.writeInt(skip464xlat ? 1 : 0);
    }

    public static final Creator<NetworkMisc> CREATOR = new Creator<NetworkMisc>() {
@@ -101,6 +109,7 @@ public class NetworkMisc implements Parcelable {
            networkMisc.acceptUnvalidated = in.readInt() != 0;
            networkMisc.subscriberId = in.readString();
            networkMisc.provisioningNotificationDisabled = in.readInt() != 0;
            networkMisc.skip464xlat = in.readInt() != 0;
            return networkMisc;
        }

+3 −1
Original line number Diff line number Diff line
@@ -93,7 +93,9 @@ public class Nat464Xlat extends BaseNetworkObserver {
        // We only run clat on networks that don't have a native IPv4 address.
        final boolean hasIPv4Address =
                (nai.linkProperties != null) && nai.linkProperties.hasIPv4Address();
        return supported && connected && !hasIPv4Address;
        final boolean skip464xlat =
                (nai.networkMisc != null) && nai.networkMisc.skip464xlat;
        return supported && connected && !hasIPv4Address && !skip464xlat;
    }

    /**