Merge "Add DEFAULT_NETWORK_PRIORITY constants" into sc-dev
This commit is contained in:
@@ -398,6 +398,32 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
TEARDOWN, // Determine whether this network is unneeded and should be torn down.
|
TEARDOWN, // Determine whether this network is unneeded and should be torn down.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The priority value is used when issue uid ranges rules to netd. Netd will use the priority
|
||||||
|
* value and uid ranges to generate corresponding ip rules specific to the given preference.
|
||||||
|
* Thus, any device originated data traffic of the applied uids can be routed to the altered
|
||||||
|
* default network which has highest priority.
|
||||||
|
*
|
||||||
|
* Note: The priority value should be in 0~1000. Larger value means lower priority, see
|
||||||
|
* {@link NativeUidRangeConfig}.
|
||||||
|
*/
|
||||||
|
// This is default priority value for those NetworkRequests which doesn't have preference to
|
||||||
|
// alter default network and use the global one.
|
||||||
|
@VisibleForTesting
|
||||||
|
static final int DEFAULT_NETWORK_PRIORITY_NONE = 0;
|
||||||
|
// Used by automotive devices to set the network preferences used to direct traffic at an
|
||||||
|
// application level. See {@link #setOemNetworkPreference}.
|
||||||
|
@VisibleForTesting
|
||||||
|
static final int DEFAULT_NETWORK_PRIORITY_OEM = 10;
|
||||||
|
// Request that a user profile is put by default on a network matching a given preference.
|
||||||
|
// See {@link #setProfileNetworkPreference}.
|
||||||
|
@VisibleForTesting
|
||||||
|
static final int DEFAULT_NETWORK_PRIORITY_PROFILE = 20;
|
||||||
|
// Set by MOBILE_DATA_PREFERRED_UIDS setting. Use mobile data in preference even when
|
||||||
|
// higher-priority networks are connected.
|
||||||
|
@VisibleForTesting
|
||||||
|
static final int DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED = 30;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* used internally to clear a wakelock when transitioning
|
* used internally to clear a wakelock when transitioning
|
||||||
* from one net to another. Clear happens when we get a new
|
* from one net to another. Clear happens when we get a new
|
||||||
@@ -4154,8 +4180,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
final NetworkAgentInfo satisfier = nri.getSatisfier();
|
final NetworkAgentInfo satisfier = nri.getSatisfier();
|
||||||
if (null != satisfier) {
|
if (null != satisfier) {
|
||||||
try {
|
try {
|
||||||
|
// TODO: Passing default network priority to netd.
|
||||||
mNetd.networkRemoveUidRanges(satisfier.network.getNetId(),
|
mNetd.networkRemoveUidRanges(satisfier.network.getNetId(),
|
||||||
toUidRangeStableParcels(nri.getUids()));
|
toUidRangeStableParcels(nri.getUids())
|
||||||
|
/* nri.getDefaultNetworkPriority() */);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
loge("Exception setting network preference default network", e);
|
loge("Exception setting network preference default network", e);
|
||||||
}
|
}
|
||||||
@@ -5600,6 +5628,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
// maximum limit of registered callbacks per UID.
|
// maximum limit of registered callbacks per UID.
|
||||||
final int mAsUid;
|
final int mAsUid;
|
||||||
|
|
||||||
|
// Default network priority of this request.
|
||||||
|
private final int mDefaultNetworkPriority;
|
||||||
|
|
||||||
|
int getDefaultNetworkPriority() {
|
||||||
|
return mDefaultNetworkPriority;
|
||||||
|
}
|
||||||
|
|
||||||
// In order to preserve the mapping of NetworkRequest-to-callback when apps register
|
// In order to preserve the mapping of NetworkRequest-to-callback when apps register
|
||||||
// callbacks using a returned NetworkRequest, the original NetworkRequest needs to be
|
// callbacks using a returned NetworkRequest, the original NetworkRequest needs to be
|
||||||
// maintained for keying off of. This is only a concern when the original nri
|
// maintained for keying off of. This is only a concern when the original nri
|
||||||
@@ -5629,12 +5664,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
|
|
||||||
NetworkRequestInfo(int asUid, @NonNull final NetworkRequest r,
|
NetworkRequestInfo(int asUid, @NonNull final NetworkRequest r,
|
||||||
@Nullable final PendingIntent pi, @Nullable String callingAttributionTag) {
|
@Nullable final PendingIntent pi, @Nullable String callingAttributionTag) {
|
||||||
this(asUid, Collections.singletonList(r), r, pi, callingAttributionTag);
|
this(asUid, Collections.singletonList(r), r, pi, callingAttributionTag,
|
||||||
|
DEFAULT_NETWORK_PRIORITY_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkRequestInfo(int asUid, @NonNull final List<NetworkRequest> r,
|
NetworkRequestInfo(int asUid, @NonNull final List<NetworkRequest> r,
|
||||||
@NonNull final NetworkRequest requestForCallback, @Nullable final PendingIntent pi,
|
@NonNull final NetworkRequest requestForCallback, @Nullable final PendingIntent pi,
|
||||||
@Nullable String callingAttributionTag) {
|
@Nullable String callingAttributionTag, final int defaultNetworkPriority) {
|
||||||
ensureAllNetworkRequestsHaveType(r);
|
ensureAllNetworkRequestsHaveType(r);
|
||||||
mRequests = initializeRequests(r);
|
mRequests = initializeRequests(r);
|
||||||
mNetworkRequestForCallback = requestForCallback;
|
mNetworkRequestForCallback = requestForCallback;
|
||||||
@@ -5652,6 +5688,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
*/
|
*/
|
||||||
mCallbackFlags = NetworkCallback.FLAG_NONE;
|
mCallbackFlags = NetworkCallback.FLAG_NONE;
|
||||||
mCallingAttributionTag = callingAttributionTag;
|
mCallingAttributionTag = callingAttributionTag;
|
||||||
|
mDefaultNetworkPriority = defaultNetworkPriority;
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkRequestInfo(int asUid, @NonNull final NetworkRequest r, @Nullable final Messenger m,
|
NetworkRequestInfo(int asUid, @NonNull final NetworkRequest r, @Nullable final Messenger m,
|
||||||
@@ -5681,6 +5718,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mPerUidCounter.incrementCountOrThrow(mUid);
|
mPerUidCounter.incrementCountOrThrow(mUid);
|
||||||
mCallbackFlags = callbackFlags;
|
mCallbackFlags = callbackFlags;
|
||||||
mCallingAttributionTag = callingAttributionTag;
|
mCallingAttributionTag = callingAttributionTag;
|
||||||
|
mDefaultNetworkPriority = DEFAULT_NETWORK_PRIORITY_NONE;
|
||||||
linkDeathRecipient();
|
linkDeathRecipient();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5720,15 +5758,18 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mPerUidCounter.incrementCountOrThrow(mUid);
|
mPerUidCounter.incrementCountOrThrow(mUid);
|
||||||
mCallbackFlags = nri.mCallbackFlags;
|
mCallbackFlags = nri.mCallbackFlags;
|
||||||
mCallingAttributionTag = nri.mCallingAttributionTag;
|
mCallingAttributionTag = nri.mCallingAttributionTag;
|
||||||
|
mDefaultNetworkPriority = DEFAULT_NETWORK_PRIORITY_NONE;
|
||||||
linkDeathRecipient();
|
linkDeathRecipient();
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkRequestInfo(int asUid, @NonNull final NetworkRequest r) {
|
NetworkRequestInfo(int asUid, @NonNull final NetworkRequest r) {
|
||||||
this(asUid, Collections.singletonList(r));
|
this(asUid, Collections.singletonList(r), DEFAULT_NETWORK_PRIORITY_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkRequestInfo(int asUid, @NonNull final List<NetworkRequest> r) {
|
NetworkRequestInfo(int asUid, @NonNull final List<NetworkRequest> r,
|
||||||
this(asUid, r, r.get(0), null /* pi */, null /* callingAttributionTag */);
|
final int defaultNetworkPriority) {
|
||||||
|
this(asUid, r, r.get(0), null /* pi */, null /* callingAttributionTag */,
|
||||||
|
defaultNetworkPriority);
|
||||||
}
|
}
|
||||||
|
|
||||||
// True if this NRI is being satisfied. It also accounts for if the nri has its satisifer
|
// True if this NRI is being satisfied. It also accounts for if the nri has its satisifer
|
||||||
@@ -7376,9 +7417,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
maybeCloseSockets(nai, ranges, exemptUids);
|
maybeCloseSockets(nai, ranges, exemptUids);
|
||||||
try {
|
try {
|
||||||
if (add) {
|
if (add) {
|
||||||
mNetd.networkAddUidRanges(nai.network.netId, ranges);
|
// TODO: Passing default network priority to netd.
|
||||||
|
mNetd.networkAddUidRanges(nai.network.netId, ranges
|
||||||
|
/* DEFAULT_NETWORK_PRIORITY_NONE */);
|
||||||
} else {
|
} else {
|
||||||
mNetd.networkRemoveUidRanges(nai.network.netId, ranges);
|
// TODO: Passing default network priority to netd.
|
||||||
|
mNetd.networkRemoveUidRanges(nai.network.netId, ranges
|
||||||
|
/* DEFAULT_NETWORK_PRIORITY_NONE */);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
loge("Exception while " + (add ? "adding" : "removing") + " uid ranges " + uidRanges +
|
loge("Exception while " + (add ? "adding" : "removing") + " uid ranges " + uidRanges +
|
||||||
@@ -7689,14 +7734,18 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
+ " any applications to set as the default." + nri);
|
+ " any applications to set as the default." + nri);
|
||||||
}
|
}
|
||||||
if (null != newDefaultNetwork) {
|
if (null != newDefaultNetwork) {
|
||||||
|
// TODO: Passing default network priority to netd.
|
||||||
mNetd.networkAddUidRanges(
|
mNetd.networkAddUidRanges(
|
||||||
newDefaultNetwork.network.getNetId(),
|
newDefaultNetwork.network.getNetId(),
|
||||||
toUidRangeStableParcels(nri.getUids()));
|
toUidRangeStableParcels(nri.getUids())
|
||||||
|
/* nri.getDefaultNetworkPriority() */);
|
||||||
}
|
}
|
||||||
if (null != oldDefaultNetwork) {
|
if (null != oldDefaultNetwork) {
|
||||||
|
// TODO: Passing default network priority to netd.
|
||||||
mNetd.networkRemoveUidRanges(
|
mNetd.networkRemoveUidRanges(
|
||||||
oldDefaultNetwork.network.getNetId(),
|
oldDefaultNetwork.network.getNetId(),
|
||||||
toUidRangeStableParcels(nri.getUids()));
|
toUidRangeStableParcels(nri.getUids())
|
||||||
|
/* nri.getDefaultNetworkPriority() */);
|
||||||
}
|
}
|
||||||
} catch (RemoteException | ServiceSpecificException e) {
|
} catch (RemoteException | ServiceSpecificException e) {
|
||||||
loge("Exception setting app default network", e);
|
loge("Exception setting app default network", e);
|
||||||
@@ -9754,7 +9803,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
nrs.add(createDefaultInternetRequestForTransport(
|
nrs.add(createDefaultInternetRequestForTransport(
|
||||||
TYPE_NONE, NetworkRequest.Type.TRACK_DEFAULT));
|
TYPE_NONE, NetworkRequest.Type.TRACK_DEFAULT));
|
||||||
setNetworkRequestUids(nrs, UidRange.fromIntRanges(pref.capabilities.getUids()));
|
setNetworkRequestUids(nrs, UidRange.fromIntRanges(pref.capabilities.getUids()));
|
||||||
final NetworkRequestInfo nri = new NetworkRequestInfo(Process.myUid(), nrs);
|
final NetworkRequestInfo nri = new NetworkRequestInfo(Process.myUid(), nrs,
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE);
|
||||||
result.add(nri);
|
result.add(nri);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -9824,7 +9874,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
ranges.add(new UidRange(uid, uid));
|
ranges.add(new UidRange(uid, uid));
|
||||||
}
|
}
|
||||||
setNetworkRequestUids(requests, ranges);
|
setNetworkRequestUids(requests, ranges);
|
||||||
nris.add(new NetworkRequestInfo(Process.myUid(), requests));
|
nris.add(new NetworkRequestInfo(Process.myUid(), requests,
|
||||||
|
DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED));
|
||||||
return nris;
|
return nris;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -10134,7 +10185,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
ranges.add(new UidRange(uid, uid));
|
ranges.add(new UidRange(uid, uid));
|
||||||
}
|
}
|
||||||
setNetworkRequestUids(requests, ranges);
|
setNetworkRequestUids(requests, ranges);
|
||||||
return new NetworkRequestInfo(Process.myUid(), requests);
|
return new NetworkRequestInfo(
|
||||||
|
Process.myUid(), requests, DEFAULT_NETWORK_PRIORITY_OEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
private NetworkRequest createUnmeteredNetworkRequest() {
|
private NetworkRequest createUnmeteredNetworkRequest() {
|
||||||
|
|||||||
@@ -118,6 +118,8 @@ import static android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener.VALID
|
|||||||
import static android.os.Process.INVALID_UID;
|
import static android.os.Process.INVALID_UID;
|
||||||
import static android.system.OsConstants.IPPROTO_TCP;
|
import static android.system.OsConstants.IPPROTO_TCP;
|
||||||
|
|
||||||
|
import static com.android.server.ConnectivityService.DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED;
|
||||||
|
import static com.android.server.ConnectivityService.DEFAULT_NETWORK_PRIORITY_OEM;
|
||||||
import static com.android.server.ConnectivityServiceTestUtils.transportToLegacyType;
|
import static com.android.server.ConnectivityServiceTestUtils.transportToLegacyType;
|
||||||
import static com.android.testutils.ConcurrentUtils.await;
|
import static com.android.testutils.ConcurrentUtils.await;
|
||||||
import static com.android.testutils.ConcurrentUtils.durationOf;
|
import static com.android.testutils.ConcurrentUtils.durationOf;
|
||||||
@@ -10737,8 +10739,9 @@ public class ConnectivityServiceTest {
|
|||||||
mService.new OemNetworkRequestFactory()
|
mService.new OemNetworkRequestFactory()
|
||||||
.createNrisFromOemNetworkPreferences(
|
.createNrisFromOemNetworkPreferences(
|
||||||
createDefaultOemNetworkPreferences(prefToTest));
|
createDefaultOemNetworkPreferences(prefToTest));
|
||||||
|
final NetworkRequestInfo nri = nris.iterator().next();
|
||||||
final List<NetworkRequest> mRequests = nris.iterator().next().mRequests;
|
assertEquals(DEFAULT_NETWORK_PRIORITY_OEM, nri.getDefaultNetworkPriority());
|
||||||
|
final List<NetworkRequest> mRequests = nri.mRequests;
|
||||||
assertEquals(expectedNumOfNris, nris.size());
|
assertEquals(expectedNumOfNris, nris.size());
|
||||||
assertEquals(expectedNumOfRequests, mRequests.size());
|
assertEquals(expectedNumOfRequests, mRequests.size());
|
||||||
assertTrue(mRequests.get(0).isListen());
|
assertTrue(mRequests.get(0).isListen());
|
||||||
@@ -10766,8 +10769,9 @@ public class ConnectivityServiceTest {
|
|||||||
mService.new OemNetworkRequestFactory()
|
mService.new OemNetworkRequestFactory()
|
||||||
.createNrisFromOemNetworkPreferences(
|
.createNrisFromOemNetworkPreferences(
|
||||||
createDefaultOemNetworkPreferences(prefToTest));
|
createDefaultOemNetworkPreferences(prefToTest));
|
||||||
|
final NetworkRequestInfo nri = nris.iterator().next();
|
||||||
final List<NetworkRequest> mRequests = nris.iterator().next().mRequests;
|
assertEquals(DEFAULT_NETWORK_PRIORITY_OEM, nri.getDefaultNetworkPriority());
|
||||||
|
final List<NetworkRequest> mRequests = nri.mRequests;
|
||||||
assertEquals(expectedNumOfNris, nris.size());
|
assertEquals(expectedNumOfNris, nris.size());
|
||||||
assertEquals(expectedNumOfRequests, mRequests.size());
|
assertEquals(expectedNumOfRequests, mRequests.size());
|
||||||
assertTrue(mRequests.get(0).isListen());
|
assertTrue(mRequests.get(0).isListen());
|
||||||
@@ -10792,8 +10796,9 @@ public class ConnectivityServiceTest {
|
|||||||
mService.new OemNetworkRequestFactory()
|
mService.new OemNetworkRequestFactory()
|
||||||
.createNrisFromOemNetworkPreferences(
|
.createNrisFromOemNetworkPreferences(
|
||||||
createDefaultOemNetworkPreferences(prefToTest));
|
createDefaultOemNetworkPreferences(prefToTest));
|
||||||
|
final NetworkRequestInfo nri = nris.iterator().next();
|
||||||
final List<NetworkRequest> mRequests = nris.iterator().next().mRequests;
|
assertEquals(DEFAULT_NETWORK_PRIORITY_OEM, nri.getDefaultNetworkPriority());
|
||||||
|
final List<NetworkRequest> mRequests = nri.mRequests;
|
||||||
assertEquals(expectedNumOfNris, nris.size());
|
assertEquals(expectedNumOfNris, nris.size());
|
||||||
assertEquals(expectedNumOfRequests, mRequests.size());
|
assertEquals(expectedNumOfRequests, mRequests.size());
|
||||||
assertTrue(mRequests.get(0).isRequest());
|
assertTrue(mRequests.get(0).isRequest());
|
||||||
@@ -10815,8 +10820,9 @@ public class ConnectivityServiceTest {
|
|||||||
mService.new OemNetworkRequestFactory()
|
mService.new OemNetworkRequestFactory()
|
||||||
.createNrisFromOemNetworkPreferences(
|
.createNrisFromOemNetworkPreferences(
|
||||||
createDefaultOemNetworkPreferences(prefToTest));
|
createDefaultOemNetworkPreferences(prefToTest));
|
||||||
|
final NetworkRequestInfo nri = nris.iterator().next();
|
||||||
final List<NetworkRequest> mRequests = nris.iterator().next().mRequests;
|
assertEquals(DEFAULT_NETWORK_PRIORITY_OEM, nri.getDefaultNetworkPriority());
|
||||||
|
final List<NetworkRequest> mRequests = nri.mRequests;
|
||||||
assertEquals(expectedNumOfNris, nris.size());
|
assertEquals(expectedNumOfNris, nris.size());
|
||||||
assertEquals(expectedNumOfRequests, mRequests.size());
|
assertEquals(expectedNumOfRequests, mRequests.size());
|
||||||
assertTrue(mRequests.get(0).isRequest());
|
assertTrue(mRequests.get(0).isRequest());
|
||||||
@@ -13004,6 +13010,8 @@ public class ConnectivityServiceTest {
|
|||||||
assertEquals(1, nris.size());
|
assertEquals(1, nris.size());
|
||||||
assertTrue(nri.isMultilayerRequest());
|
assertTrue(nri.isMultilayerRequest());
|
||||||
assertEquals(nri.getUids(), uidRangesForUids(uids));
|
assertEquals(nri.getUids(), uidRangesForUids(uids));
|
||||||
|
assertEquals(DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED,
|
||||||
|
nri.getDefaultNetworkPriority());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user