Loading core/java/android/net/NetworkAgent.java +0 −21 Original line number Diff line number Diff line Loading @@ -200,14 +200,6 @@ public abstract class NetworkAgent extends Handler { */ public static final int CMD_PREVENT_AUTOMATIC_RECONNECT = BASE + 15; /** * Sent by ConnectivityService to the NetworkAgent to install an APF program in the network * chipset for use to filter packets. * * obj = byte[] containing the APF program bytecode. */ public static final int CMD_PUSH_APF_PROGRAM = BASE + 16; public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni, NetworkCapabilities nc, LinkProperties lp, int score) { this(looper, context, logTag, ni, nc, lp, score, null); Loading Loading @@ -327,10 +319,6 @@ public abstract class NetworkAgent extends Handler { preventAutomaticReconnect(); break; } case CMD_PUSH_APF_PROGRAM: { installPacketFilter((byte[]) msg.obj); break; } } } Loading Loading @@ -506,15 +494,6 @@ public abstract class NetworkAgent extends Handler { protected void preventAutomaticReconnect() { } /** * Install a packet filter. * @param filter an APF program to filter incoming packets. * @return {@code true} if filter successfully installed, {@code false} otherwise. */ protected boolean installPacketFilter(byte[] filter) { return false; } protected void log(String s) { Log.d(LOG_TAG, "NetworkAgent: " + s); } Loading core/java/android/net/NetworkMisc.java +0 −25 Original line number Diff line number Diff line Loading @@ -56,22 +56,6 @@ public class NetworkMisc implements Parcelable { */ public String subscriberId; /** * Version of APF instruction set supported for packet filtering. 0 indicates no support for * packet filtering using APF programs. */ public int apfVersionSupported; /** * Maximum size of APF program allowed. */ public int maximumApfProgramSize; /** * Format of packets passed to APF filter. Should be one of ARPHRD_* */ public int apfPacketFormat; public NetworkMisc() { } Loading @@ -81,9 +65,6 @@ public class NetworkMisc implements Parcelable { explicitlySelected = nm.explicitlySelected; acceptUnvalidated = nm.acceptUnvalidated; subscriberId = nm.subscriberId; apfVersionSupported = nm.apfVersionSupported; maximumApfProgramSize = nm.maximumApfProgramSize; apfPacketFormat = nm.apfPacketFormat; } } Loading @@ -98,9 +79,6 @@ public class NetworkMisc implements Parcelable { out.writeInt(explicitlySelected ? 1 : 0); out.writeInt(acceptUnvalidated ? 1 : 0); out.writeString(subscriberId); out.writeInt(apfVersionSupported); out.writeInt(maximumApfProgramSize); out.writeInt(apfPacketFormat); } public static final Creator<NetworkMisc> CREATOR = new Creator<NetworkMisc>() { Loading @@ -111,9 +89,6 @@ public class NetworkMisc implements Parcelable { networkMisc.explicitlySelected = in.readInt() != 0; networkMisc.acceptUnvalidated = in.readInt() != 0; networkMisc.subscriberId = in.readString(); networkMisc.apfVersionSupported = in.readInt(); networkMisc.maximumApfProgramSize = in.readInt(); networkMisc.apfPacketFormat = in.readInt(); return networkMisc; } Loading services/core/java/com/android/server/ConnectivityService.java +0 −49 Original line number Diff line number Diff line Loading @@ -126,7 +126,6 @@ import com.android.server.connectivity.NetworkAgentInfo; import com.android.server.connectivity.NetworkMonitor; import com.android.server.connectivity.PacManager; import com.android.server.connectivity.PermissionMonitor; import com.android.server.connectivity.ApfFilter; import com.android.server.connectivity.Tethering; import com.android.server.connectivity.Vpn; import com.android.server.net.BaseNetworkObserver; Loading Loading @@ -355,13 +354,6 @@ public class ConnectivityService extends IConnectivityManager.Stub */ private static final int EVENT_REGISTER_NETWORK_LISTENER_WITH_INTENT = 31; /** * used to push APF program to NetworkAgent * replyTo = NetworkAgent message handler * obj = byte[] of APF program */ private static final int EVENT_PUSH_APF_PROGRAM_TO_NETWORK = 32; /** Handler thread used for both of the handlers below. */ @VisibleForTesting protected final HandlerThread mHandlerThread; Loading Loading @@ -1806,20 +1798,6 @@ public class ConnectivityService extends IConnectivityManager.Stub } } private void dumpApf(IndentingPrintWriter pw) { pw.println("APF filters:"); pw.increaseIndent(); for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) { if (nai.apfFilter != null) { pw.println(nai.name() + ":"); pw.increaseIndent(); nai.apfFilter.dump(pw); pw.decreaseIndent(); } } pw.decreaseIndent(); } @Override protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) { final IndentingPrintWriter pw = new IndentingPrintWriter(writer, " "); Loading @@ -1837,11 +1815,6 @@ public class ConnectivityService extends IConnectivityManager.Stub return; } if (argsContain(args, "apf")) { dumpApf(pw); return; } pw.print("NetworkFactories for:"); for (NetworkFactoryInfo nfi : mNetworkFactoryInfos.values()) { pw.print(" " + nfi.name); Loading Loading @@ -1905,7 +1878,6 @@ public class ConnectivityService extends IConnectivityManager.Stub mKeepaliveTracker.dump(pw); pw.println(); dumpApf(pw); if (mInetLog != null && mInetLog.size() > 0) { pw.println(); Loading Loading @@ -2227,7 +2199,6 @@ public class ConnectivityService extends IConnectivityManager.Stub mKeepaliveTracker.handleStopAllKeepalives(nai, ConnectivityManager.PacketKeepalive.ERROR_INVALID_NETWORK); nai.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_DISCONNECTED); if (nai.apfFilter != null) nai.apfFilter.shutdown(); mNetworkAgentInfos.remove(msg.replyTo); updateClat(null, nai.linkProperties, nai); synchronized (mNetworkForNetId) { Loading Loading @@ -2442,13 +2413,6 @@ public class ConnectivityService extends IConnectivityManager.Stub accept ? 1 : 0, always ? 1: 0, network)); } public void pushApfProgramToNetwork(NetworkAgentInfo nai, byte[] program) { enforceConnectivityInternalPermission(); Message msg = mHandler.obtainMessage(EVENT_PUSH_APF_PROGRAM_TO_NETWORK, program); msg.replyTo = nai.messenger; mHandler.sendMessage(msg); } private void handleSetAcceptUnvalidated(Network network, boolean accept, boolean always) { if (DBG) log("handleSetAcceptUnvalidated network=" + network + " accept=" + accept + " always=" + always); Loading Loading @@ -2598,16 +2562,6 @@ public class ConnectivityService extends IConnectivityManager.Stub handleMobileDataAlwaysOn(); break; } case EVENT_PUSH_APF_PROGRAM_TO_NETWORK: { NetworkAgentInfo nai = mNetworkAgentInfos.get(msg.replyTo); if (nai == null) { loge("EVENT_PUSH_APF_PROGRAM_TO_NETWORK from unknown NetworkAgent"); } else { nai.asyncChannel.sendMessage(NetworkAgent.CMD_PUSH_APF_PROGRAM, (byte[]) msg.obj); } break; } // Sent by KeepaliveTracker to process an app request on the state machine thread. case NetworkAgent.CMD_START_PACKET_KEEPALIVE: { mKeepaliveTracker.handleStartKeepalive(msg); Loading Loading @@ -4189,9 +4143,6 @@ public class ConnectivityService extends IConnectivityManager.Stub if (networkAgent.clatd != null) { networkAgent.clatd.fixupLinkProperties(oldLp); } if (networkAgent.apfFilter != null) { networkAgent.apfFilter.updateFilter(); } updateInterfaces(newLp, oldLp, netId); updateMtu(newLp, oldLp); Loading services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +0 −4 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.util.SparseArray; import com.android.internal.util.AsyncChannel; import com.android.server.ConnectivityService; import com.android.server.connectivity.NetworkMonitor; import com.android.server.connectivity.ApfFilter; import java.util.ArrayList; import java.util.Comparator; Loading Loading @@ -164,8 +163,6 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { // Used by ConnectivityService to keep track of 464xlat. public Nat464Xlat clatd; public ApfFilter apfFilter; public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info, LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler, NetworkMisc misc, NetworkRequest defaultRequest, ConnectivityService connService) { Loading @@ -178,7 +175,6 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { currentScore = score; networkMonitor = connService.createNetworkMonitor(context, handler, this, defaultRequest); networkMisc = misc; apfFilter.maybeInstall(connService, this); } /** Loading services/net/java/android/net/apf/ApfCapabilities.java 0 → 100644 +46 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.net.apf; /** * APF program support capabilities. * * @hide */ public class ApfCapabilities { /** * Version of APF instruction set supported for packet filtering. 0 indicates no support for * packet filtering using APF programs. */ public final int apfVersionSupported; /** * Maximum size of APF program allowed. */ public final int maximumApfProgramSize; /** * Format of packets passed to APF filter. Should be one of ARPHRD_* */ public final int apfPacketFormat; ApfCapabilities(int apfVersionSupported, int maximumApfProgramSize, int apfPacketFormat) { this.apfVersionSupported = apfVersionSupported; this.maximumApfProgramSize = maximumApfProgramSize; this.apfPacketFormat = apfPacketFormat; } } No newline at end of file Loading
core/java/android/net/NetworkAgent.java +0 −21 Original line number Diff line number Diff line Loading @@ -200,14 +200,6 @@ public abstract class NetworkAgent extends Handler { */ public static final int CMD_PREVENT_AUTOMATIC_RECONNECT = BASE + 15; /** * Sent by ConnectivityService to the NetworkAgent to install an APF program in the network * chipset for use to filter packets. * * obj = byte[] containing the APF program bytecode. */ public static final int CMD_PUSH_APF_PROGRAM = BASE + 16; public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni, NetworkCapabilities nc, LinkProperties lp, int score) { this(looper, context, logTag, ni, nc, lp, score, null); Loading Loading @@ -327,10 +319,6 @@ public abstract class NetworkAgent extends Handler { preventAutomaticReconnect(); break; } case CMD_PUSH_APF_PROGRAM: { installPacketFilter((byte[]) msg.obj); break; } } } Loading Loading @@ -506,15 +494,6 @@ public abstract class NetworkAgent extends Handler { protected void preventAutomaticReconnect() { } /** * Install a packet filter. * @param filter an APF program to filter incoming packets. * @return {@code true} if filter successfully installed, {@code false} otherwise. */ protected boolean installPacketFilter(byte[] filter) { return false; } protected void log(String s) { Log.d(LOG_TAG, "NetworkAgent: " + s); } Loading
core/java/android/net/NetworkMisc.java +0 −25 Original line number Diff line number Diff line Loading @@ -56,22 +56,6 @@ public class NetworkMisc implements Parcelable { */ public String subscriberId; /** * Version of APF instruction set supported for packet filtering. 0 indicates no support for * packet filtering using APF programs. */ public int apfVersionSupported; /** * Maximum size of APF program allowed. */ public int maximumApfProgramSize; /** * Format of packets passed to APF filter. Should be one of ARPHRD_* */ public int apfPacketFormat; public NetworkMisc() { } Loading @@ -81,9 +65,6 @@ public class NetworkMisc implements Parcelable { explicitlySelected = nm.explicitlySelected; acceptUnvalidated = nm.acceptUnvalidated; subscriberId = nm.subscriberId; apfVersionSupported = nm.apfVersionSupported; maximumApfProgramSize = nm.maximumApfProgramSize; apfPacketFormat = nm.apfPacketFormat; } } Loading @@ -98,9 +79,6 @@ public class NetworkMisc implements Parcelable { out.writeInt(explicitlySelected ? 1 : 0); out.writeInt(acceptUnvalidated ? 1 : 0); out.writeString(subscriberId); out.writeInt(apfVersionSupported); out.writeInt(maximumApfProgramSize); out.writeInt(apfPacketFormat); } public static final Creator<NetworkMisc> CREATOR = new Creator<NetworkMisc>() { Loading @@ -111,9 +89,6 @@ public class NetworkMisc implements Parcelable { networkMisc.explicitlySelected = in.readInt() != 0; networkMisc.acceptUnvalidated = in.readInt() != 0; networkMisc.subscriberId = in.readString(); networkMisc.apfVersionSupported = in.readInt(); networkMisc.maximumApfProgramSize = in.readInt(); networkMisc.apfPacketFormat = in.readInt(); return networkMisc; } Loading
services/core/java/com/android/server/ConnectivityService.java +0 −49 Original line number Diff line number Diff line Loading @@ -126,7 +126,6 @@ import com.android.server.connectivity.NetworkAgentInfo; import com.android.server.connectivity.NetworkMonitor; import com.android.server.connectivity.PacManager; import com.android.server.connectivity.PermissionMonitor; import com.android.server.connectivity.ApfFilter; import com.android.server.connectivity.Tethering; import com.android.server.connectivity.Vpn; import com.android.server.net.BaseNetworkObserver; Loading Loading @@ -355,13 +354,6 @@ public class ConnectivityService extends IConnectivityManager.Stub */ private static final int EVENT_REGISTER_NETWORK_LISTENER_WITH_INTENT = 31; /** * used to push APF program to NetworkAgent * replyTo = NetworkAgent message handler * obj = byte[] of APF program */ private static final int EVENT_PUSH_APF_PROGRAM_TO_NETWORK = 32; /** Handler thread used for both of the handlers below. */ @VisibleForTesting protected final HandlerThread mHandlerThread; Loading Loading @@ -1806,20 +1798,6 @@ public class ConnectivityService extends IConnectivityManager.Stub } } private void dumpApf(IndentingPrintWriter pw) { pw.println("APF filters:"); pw.increaseIndent(); for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) { if (nai.apfFilter != null) { pw.println(nai.name() + ":"); pw.increaseIndent(); nai.apfFilter.dump(pw); pw.decreaseIndent(); } } pw.decreaseIndent(); } @Override protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) { final IndentingPrintWriter pw = new IndentingPrintWriter(writer, " "); Loading @@ -1837,11 +1815,6 @@ public class ConnectivityService extends IConnectivityManager.Stub return; } if (argsContain(args, "apf")) { dumpApf(pw); return; } pw.print("NetworkFactories for:"); for (NetworkFactoryInfo nfi : mNetworkFactoryInfos.values()) { pw.print(" " + nfi.name); Loading Loading @@ -1905,7 +1878,6 @@ public class ConnectivityService extends IConnectivityManager.Stub mKeepaliveTracker.dump(pw); pw.println(); dumpApf(pw); if (mInetLog != null && mInetLog.size() > 0) { pw.println(); Loading Loading @@ -2227,7 +2199,6 @@ public class ConnectivityService extends IConnectivityManager.Stub mKeepaliveTracker.handleStopAllKeepalives(nai, ConnectivityManager.PacketKeepalive.ERROR_INVALID_NETWORK); nai.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_DISCONNECTED); if (nai.apfFilter != null) nai.apfFilter.shutdown(); mNetworkAgentInfos.remove(msg.replyTo); updateClat(null, nai.linkProperties, nai); synchronized (mNetworkForNetId) { Loading Loading @@ -2442,13 +2413,6 @@ public class ConnectivityService extends IConnectivityManager.Stub accept ? 1 : 0, always ? 1: 0, network)); } public void pushApfProgramToNetwork(NetworkAgentInfo nai, byte[] program) { enforceConnectivityInternalPermission(); Message msg = mHandler.obtainMessage(EVENT_PUSH_APF_PROGRAM_TO_NETWORK, program); msg.replyTo = nai.messenger; mHandler.sendMessage(msg); } private void handleSetAcceptUnvalidated(Network network, boolean accept, boolean always) { if (DBG) log("handleSetAcceptUnvalidated network=" + network + " accept=" + accept + " always=" + always); Loading Loading @@ -2598,16 +2562,6 @@ public class ConnectivityService extends IConnectivityManager.Stub handleMobileDataAlwaysOn(); break; } case EVENT_PUSH_APF_PROGRAM_TO_NETWORK: { NetworkAgentInfo nai = mNetworkAgentInfos.get(msg.replyTo); if (nai == null) { loge("EVENT_PUSH_APF_PROGRAM_TO_NETWORK from unknown NetworkAgent"); } else { nai.asyncChannel.sendMessage(NetworkAgent.CMD_PUSH_APF_PROGRAM, (byte[]) msg.obj); } break; } // Sent by KeepaliveTracker to process an app request on the state machine thread. case NetworkAgent.CMD_START_PACKET_KEEPALIVE: { mKeepaliveTracker.handleStartKeepalive(msg); Loading Loading @@ -4189,9 +4143,6 @@ public class ConnectivityService extends IConnectivityManager.Stub if (networkAgent.clatd != null) { networkAgent.clatd.fixupLinkProperties(oldLp); } if (networkAgent.apfFilter != null) { networkAgent.apfFilter.updateFilter(); } updateInterfaces(newLp, oldLp, netId); updateMtu(newLp, oldLp); Loading
services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +0 −4 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.util.SparseArray; import com.android.internal.util.AsyncChannel; import com.android.server.ConnectivityService; import com.android.server.connectivity.NetworkMonitor; import com.android.server.connectivity.ApfFilter; import java.util.ArrayList; import java.util.Comparator; Loading Loading @@ -164,8 +163,6 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { // Used by ConnectivityService to keep track of 464xlat. public Nat464Xlat clatd; public ApfFilter apfFilter; public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info, LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler, NetworkMisc misc, NetworkRequest defaultRequest, ConnectivityService connService) { Loading @@ -178,7 +175,6 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { currentScore = score; networkMonitor = connService.createNetworkMonitor(context, handler, this, defaultRequest); networkMisc = misc; apfFilter.maybeInstall(connService, this); } /** Loading
services/net/java/android/net/apf/ApfCapabilities.java 0 → 100644 +46 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.net.apf; /** * APF program support capabilities. * * @hide */ public class ApfCapabilities { /** * Version of APF instruction set supported for packet filtering. 0 indicates no support for * packet filtering using APF programs. */ public final int apfVersionSupported; /** * Maximum size of APF program allowed. */ public final int maximumApfProgramSize; /** * Format of packets passed to APF filter. Should be one of ARPHRD_* */ public final int apfPacketFormat; ApfCapabilities(int apfVersionSupported, int maximumApfProgramSize, int apfPacketFormat) { this.apfVersionSupported = apfVersionSupported; this.maximumApfProgramSize = maximumApfProgramSize; this.apfPacketFormat = apfPacketFormat; } } No newline at end of file