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
This commit is contained in:
@@ -65,6 +65,12 @@ public class NetworkMisc implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
public String subscriberId;
|
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() {
|
public NetworkMisc() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,6 +81,7 @@ public class NetworkMisc implements Parcelable {
|
|||||||
acceptUnvalidated = nm.acceptUnvalidated;
|
acceptUnvalidated = nm.acceptUnvalidated;
|
||||||
subscriberId = nm.subscriberId;
|
subscriberId = nm.subscriberId;
|
||||||
provisioningNotificationDisabled = nm.provisioningNotificationDisabled;
|
provisioningNotificationDisabled = nm.provisioningNotificationDisabled;
|
||||||
|
skip464xlat = nm.skip464xlat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,6 +97,7 @@ public class NetworkMisc implements Parcelable {
|
|||||||
out.writeInt(acceptUnvalidated ? 1 : 0);
|
out.writeInt(acceptUnvalidated ? 1 : 0);
|
||||||
out.writeString(subscriberId);
|
out.writeString(subscriberId);
|
||||||
out.writeInt(provisioningNotificationDisabled ? 1 : 0);
|
out.writeInt(provisioningNotificationDisabled ? 1 : 0);
|
||||||
|
out.writeInt(skip464xlat ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Creator<NetworkMisc> CREATOR = new Creator<NetworkMisc>() {
|
public static final Creator<NetworkMisc> CREATOR = new Creator<NetworkMisc>() {
|
||||||
@@ -101,6 +109,7 @@ public class NetworkMisc implements Parcelable {
|
|||||||
networkMisc.acceptUnvalidated = in.readInt() != 0;
|
networkMisc.acceptUnvalidated = in.readInt() != 0;
|
||||||
networkMisc.subscriberId = in.readString();
|
networkMisc.subscriberId = in.readString();
|
||||||
networkMisc.provisioningNotificationDisabled = in.readInt() != 0;
|
networkMisc.provisioningNotificationDisabled = in.readInt() != 0;
|
||||||
|
networkMisc.skip464xlat = in.readInt() != 0;
|
||||||
return networkMisc;
|
return networkMisc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -93,7 +93,9 @@ public class Nat464Xlat extends BaseNetworkObserver {
|
|||||||
// We only run clat on networks that don't have a native IPv4 address.
|
// We only run clat on networks that don't have a native IPv4 address.
|
||||||
final boolean hasIPv4Address =
|
final boolean hasIPv4Address =
|
||||||
(nai.linkProperties != null) && nai.linkProperties.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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user