Removing unused int network score from eth factory am: 68c4a5108b am: 21bbe6f4a5

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/net/ethernet/+/1891859

Change-Id: I1934112b51a2c4002fbd2c29a31562f2c1ae3a3f
This commit is contained in:
James Mattis
2021-12-08 17:49:24 +00:00
committed by Automerger Merge Worker
3 changed files with 27 additions and 92 deletions

View File

@@ -22,6 +22,7 @@ import android.net.NetworkAgent;
import android.net.NetworkAgentConfig;
import android.net.NetworkCapabilities;
import android.net.NetworkProvider;
import android.net.NetworkScore;
import android.os.Looper;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -41,11 +42,10 @@ public class EthernetNetworkAgent extends NetworkAgent {
@NonNull Looper looper,
@NonNull NetworkCapabilities nc,
@NonNull LinkProperties lp,
int networkScore,
@NonNull NetworkAgentConfig config,
@Nullable NetworkProvider provider,
@NonNull Callbacks cb) {
super(context, looper, TAG, nc, lp, networkScore, config, provider);
super(context, looper, TAG, nc, lp, new NetworkScore.Builder().build(), config, provider);
mCallbacks = cb;
}

View File

@@ -79,11 +79,9 @@ public class EthernetNetworkFactory extends NetworkFactory {
}
public EthernetNetworkAgent makeEthernetNetworkAgent(Context context, Looper looper,
NetworkCapabilities nc, LinkProperties lp, int networkScore,
NetworkAgentConfig config, NetworkProvider provider,
EthernetNetworkAgent.Callbacks cb) {
return new EthernetNetworkAgent(context, looper, nc, lp, networkScore, config, provider,
cb);
NetworkCapabilities nc, LinkProperties lp, NetworkAgentConfig config,
NetworkProvider provider, EthernetNetworkAgent.Callbacks cb) {
return new EthernetNetworkAgent(context, looper, nc, lp, config, provider, cb);
}
public InterfaceParams getNetworkInterfaceByName(String name) {
@@ -293,49 +291,24 @@ public class EthernetNetworkFactory extends NetworkFactory {
private @Nullable IpConfiguration mIpConfig;
/**
* An object to contain all transport type information, including base network score and
* the legacy transport type it maps to (if any)
*/
private static class TransportInfo {
final int mLegacyType;
final int mScore;
private TransportInfo(int legacyType, int score) {
mLegacyType = legacyType;
mScore = score;
}
}
/**
* A map of TRANSPORT_* types to TransportInfo, making scoring and legacy type information
* available for each type an ethernet interface could propagate.
* A map of TRANSPORT_* types to legacy transport types available for each type an ethernet
* interface could propagate.
*
* Unfortunately, base scores for the various transports are not yet centrally located.
* They've been lifted from the corresponding NetworkFactory files in the meantime.
*
* Additionally, there are no legacy type equivalents to LOWPAN or WIFI_AWARE. These types
* are set to TYPE_NONE to match the behavior of their own network factories.
* There are no legacy type equivalents to LOWPAN or WIFI_AWARE. These types are set to
* TYPE_NONE to match the behavior of their own network factories.
*/
private static final SparseArray<TransportInfo> sTransports = new SparseArray();
private static final SparseArray<Integer> sTransports = new SparseArray();
static {
// LowpanInterfaceTracker.NETWORK_SCORE
sTransports.put(NetworkCapabilities.TRANSPORT_LOWPAN,
new TransportInfo(ConnectivityManager.TYPE_NONE, 30));
// WifiAwareDataPathStateManager.NETWORK_FACTORY_SCORE_AVAIL
sTransports.put(NetworkCapabilities.TRANSPORT_WIFI_AWARE,
new TransportInfo(ConnectivityManager.TYPE_NONE, 1));
// EthernetNetworkFactory.NETWORK_SCORE
sTransports.put(NetworkCapabilities.TRANSPORT_ETHERNET,
new TransportInfo(ConnectivityManager.TYPE_ETHERNET, 70));
// BluetoothTetheringNetworkFactory.NETWORK_SCORE
ConnectivityManager.TYPE_ETHERNET);
sTransports.put(NetworkCapabilities.TRANSPORT_BLUETOOTH,
new TransportInfo(ConnectivityManager.TYPE_BLUETOOTH, 69));
// WifiNetworkFactory.SCORE_FILTER / NetworkAgent.WIFI_BASE_SCORE
sTransports.put(NetworkCapabilities.TRANSPORT_WIFI,
new TransportInfo(ConnectivityManager.TYPE_WIFI, 60));
// TelephonyNetworkFactory.TELEPHONY_NETWORK_SCORE
ConnectivityManager.TYPE_BLUETOOTH);
sTransports.put(NetworkCapabilities.TRANSPORT_WIFI, ConnectivityManager.TYPE_WIFI);
sTransports.put(NetworkCapabilities.TRANSPORT_CELLULAR,
new TransportInfo(ConnectivityManager.TYPE_MOBILE, 50));
ConnectivityManager.TYPE_MOBILE);
sTransports.put(NetworkCapabilities.TRANSPORT_LOWPAN, ConnectivityManager.TYPE_NONE);
sTransports.put(NetworkCapabilities.TRANSPORT_WIFI_AWARE,
ConnectivityManager.TYPE_NONE);
}
long refCount = 0;
@@ -397,7 +370,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
mContext = context;
mNetworkFactory = networkFactory;
mDeps = deps;
int legacyType = ConnectivityManager.TYPE_NONE;
final int legacyType;
int[] transportTypes = mCapabilities.getTransportTypes();
if (transportTypes.length > 0) {
@@ -432,40 +405,7 @@ public class EthernetNetworkFactory extends NetworkFactory {
* to legacy TYPE_NONE if there is no known conversion
*/
private static int getLegacyType(int transport) {
TransportInfo transportInfo = sTransports.get(transport, /* if dne */ null);
if (transportInfo != null) {
return transportInfo.mLegacyType;
}
return ConnectivityManager.TYPE_NONE;
}
/**
* Determines the network score based on the transport associated with the interface.
* Ethernet interfaces could propagate a transport types forward. Since we can't
* get more information about the statuses of the interfaces on the other end of the local
* interface, we'll best-effort assign the score as the base score of the assigned transport
* when the link is up. When the link is down, the score is set to zero.
*
* This function is called with the purpose of assigning and updating the network score of
* the member NetworkAgent.
*/
private int getNetworkScore() {
// never set the network score below 0.
if (!mLinkUp) {
return 0;
}
int[] transportTypes = mCapabilities.getTransportTypes();
if (transportTypes.length < 1) {
Log.w(TAG, "Network interface '" + mLinkProperties.getInterfaceName() + "' has no "
+ "transport type associated with it. Score set to zero");
return 0;
}
TransportInfo transportInfo = sTransports.get(transportTypes[0], /* if dne */ null);
if (transportInfo != null) {
return transportInfo.mScore;
}
return 0;
return sTransports.get(transport, ConnectivityManager.TYPE_NONE);
}
private void start() {
@@ -502,8 +442,8 @@ public class EthernetNetworkFactory extends NetworkFactory {
.setLegacyExtraInfo(mHwAddress)
.build();
mNetworkAgent = mDeps.makeEthernetNetworkAgent(mContext, mHandler.getLooper(),
mCapabilities, mLinkProperties, getNetworkScore(), config,
mNetworkFactory.getProvider(), new EthernetNetworkAgent.Callbacks() {
mCapabilities, mLinkProperties, config, mNetworkFactory.getProvider(),
new EthernetNetworkAgent.Callbacks() {
@Override
public void onNetworkUnwanted() {
// if mNetworkAgent is null, we have already called stop.
@@ -620,7 +560,6 @@ public class EthernetNetworkFactory extends NetworkFactory {
+ "hwAddress: " + mHwAddress + ", "
+ "networkCapabilities: " + mCapabilities + ", "
+ "networkAgent: " + mNetworkAgent + ", "
+ "score: " + getNetworkScore() + ", "
+ "ipClient: " + mIpClient + ","
+ "linkProperties: " + mLinkProperties
+ "}";

View File

@@ -20,7 +20,6 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.same;
@@ -90,14 +89,13 @@ public class EthernetNetworkFactoryTest {
}
private void setupNetworkAgentMock() {
when(mDeps.makeEthernetNetworkAgent(any(), any(), any(), any(), anyInt(), any(), any(),
any())).thenAnswer(new AnswerWithArguments() {
when(mDeps.makeEthernetNetworkAgent(any(), any(), any(), any(), any(), any(), any()))
.thenAnswer(new AnswerWithArguments() {
public EthernetNetworkAgent answer(
Context context,
Looper looper,
NetworkCapabilities nc,
LinkProperties lp,
int networkScore,
NetworkAgentConfig config,
NetworkProvider provider,
EthernetNetworkAgent.Callbacks cb) {
@@ -190,8 +188,7 @@ public class EthernetNetworkFactoryTest {
mLooper.dispatchAll();
// provisioning succeeded, verify that the network agent is created, registered, and marked
// as connected.
verify(mDeps).makeEthernetNetworkAgent(any(), any(), any(), any(), anyInt(), any(), any(),
any());
verify(mDeps).makeEthernetNetworkAgent(any(), any(), any(), any(), any(), any(), any());
verify(mNetworkAgent).register();
verify(mNetworkAgent).markConnected();
clearInvocations(mDeps);
@@ -256,8 +253,8 @@ public class EthernetNetworkFactoryTest {
assertTrue(mNetFactory.updateInterfaceLinkState(iface, false));
// There should not be an active IPClient or NetworkAgent.
verify(mDeps, never()).makeIpClient(any(), any(), any());
verify(mDeps, never()).makeEthernetNetworkAgent(any(), any(), any(), any(), anyInt(), any(),
any(), any());
verify(mDeps, never())
.makeEthernetNetworkAgent(any(), any(), any(), any(), any(), any(), any());
}
@Test
@@ -382,8 +379,7 @@ public class EthernetNetworkFactoryTest {
mIpClientCallbacks.onProvisioningSuccess(new LinkProperties());
mLooper.dispatchAll();
verify(mDeps).makeEthernetNetworkAgent(any(), any(), any(), any(), anyInt(), any(), any(),
any());
verify(mDeps).makeEthernetNetworkAgent(any(), any(), any(), any(), any(), any(), any());
// verify that unwanted is ignored
clearInvocations(mIpClient);