diff options
| -rw-r--r-- | api/system-current.txt | 6 | ||||
| -rw-r--r-- | api/test-current.txt | 17 | ||||
| -rw-r--r-- | core/java/android/net/TrafficStats.java | 6 | ||||
| -rw-r--r-- | core/java/android/net/apf/ApfCapabilities.java | 17 | ||||
| -rw-r--r-- | core/java/android/net/util/SocketUtils.java | 16 |
5 files changed, 60 insertions, 2 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 0f42f755a5aa..22e100f424ca 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3241,6 +3241,9 @@ package android.net { method public static void setThreadStatsTagApp(); method public static void setThreadStatsTagBackup(); method public static void setThreadStatsTagRestore(); + field public static final int TAG_SYSTEM_DHCP = -192; // 0xffffff40 + field public static final int TAG_SYSTEM_DHCP_SERVER = -186; // 0xffffff46 + field public static final int TAG_SYSTEM_PROBE = -190; // 0xffffff42 } public class VpnService extends android.app.Service { @@ -3266,6 +3269,8 @@ package android.net.apf { public class ApfCapabilities { ctor public ApfCapabilities(int, int, int); + method public boolean getApfDrop8023Frames(android.content.Context); + method public int[] getApfEthTypeBlackList(android.content.Context); method public boolean hasDataAccess(); field public final int apfPacketFormat; field public final int apfVersionSupported; @@ -3463,6 +3468,7 @@ package android.net.util { public class SocketUtils { method public static void bindSocketToInterface(java.io.FileDescriptor, String) throws android.system.ErrnoException; + method public static void closeSocket(java.io.FileDescriptor) throws java.io.IOException; method public static java.net.SocketAddress makeNetlinkSocketAddress(int, int); method public static java.net.SocketAddress makePacketSocketAddress(short, int); method public static java.net.SocketAddress makePacketSocketAddress(int, byte[]); diff --git a/api/test-current.txt b/api/test-current.txt index 403f4f0c4b8b..8403fa516e82 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -692,6 +692,9 @@ package android.net { method public static long getLoopbackRxPackets(); method public static long getLoopbackTxBytes(); method public static long getLoopbackTxPackets(); + field public static final int TAG_SYSTEM_DHCP = -192; // 0xffffff40 + field public static final int TAG_SYSTEM_DHCP_SERVER = -186; // 0xffffff46 + field public static final int TAG_SYSTEM_PROBE = -190; // 0xffffff42 } } @@ -700,6 +703,8 @@ package android.net.apf { public class ApfCapabilities { ctor public ApfCapabilities(int, int, int); + method public boolean getApfDrop8023Frames(android.content.Context); + method public int[] getApfEthTypeBlackList(android.content.Context); method public boolean hasDataAccess(); field public final int apfPacketFormat; field public final int apfVersionSupported; @@ -893,6 +898,18 @@ package android.net.metrics { } +package android.net.util { + + public class SocketUtils { + method public static void bindSocketToInterface(java.io.FileDescriptor, String) throws android.system.ErrnoException; + method public static void closeSocket(java.io.FileDescriptor) throws java.io.IOException; + method public static java.net.SocketAddress makeNetlinkSocketAddress(int, int); + method public static java.net.SocketAddress makePacketSocketAddress(short, int); + method public static java.net.SocketAddress makePacketSocketAddress(int, byte[]); + } + +} + package android.os { public static class Build.VERSION { diff --git a/core/java/android/net/TrafficStats.java b/core/java/android/net/TrafficStats.java index bbf8f97c8865..49c6f74b1a34 100644 --- a/core/java/android/net/TrafficStats.java +++ b/core/java/android/net/TrafficStats.java @@ -128,10 +128,14 @@ public class TrafficStats { public static final int TAG_SYSTEM_APP = 0xFFFFFF05; /** @hide */ + @SystemApi + @TestApi public static final int TAG_SYSTEM_DHCP = 0xFFFFFF40; /** @hide */ public static final int TAG_SYSTEM_NTP = 0xFFFFFF41; /** @hide */ + @SystemApi + @TestApi public static final int TAG_SYSTEM_PROBE = 0xFFFFFF42; /** @hide */ public static final int TAG_SYSTEM_NEIGHBOR = 0xFFFFFF43; @@ -140,6 +144,8 @@ public class TrafficStats { /** @hide */ public static final int TAG_SYSTEM_PAC = 0xFFFFFF45; /** @hide */ + @SystemApi + @TestApi public static final int TAG_SYSTEM_DHCP_SERVER = 0xFFFFFF46; private static INetworkStatsService sStatsService; diff --git a/core/java/android/net/apf/ApfCapabilities.java b/core/java/android/net/apf/ApfCapabilities.java index 73cf94b785a7..baf5585589f1 100644 --- a/core/java/android/net/apf/ApfCapabilities.java +++ b/core/java/android/net/apf/ApfCapabilities.java @@ -18,6 +18,9 @@ package android.net.apf; import android.annotation.SystemApi; import android.annotation.TestApi; +import android.content.Context; + +import com.android.internal.R; /** * APF program support capabilities. @@ -74,4 +77,18 @@ public class ApfCapabilities { public boolean hasDataAccess() { return apfVersionSupported >= 4; } + + /** + * @return Whether the APF Filter in the device should filter out IEEE 802.3 Frames. + */ + public boolean getApfDrop8023Frames(Context context) { + return context.getResources().getBoolean(R.bool.config_apfDrop802_3Frames); + } + + /** + * @return An array of blacklisted EtherType, packets with EtherTypes within it will be dropped. + */ + public int[] getApfEthTypeBlackList(Context context) { + return context.getResources().getIntArray(R.array.config_apfEthTypeBlackList); + } } diff --git a/core/java/android/net/util/SocketUtils.java b/core/java/android/net/util/SocketUtils.java index de67cf5952f4..2df08a1c5ba1 100644 --- a/core/java/android/net/util/SocketUtils.java +++ b/core/java/android/net/util/SocketUtils.java @@ -20,13 +20,17 @@ import static android.system.OsConstants.SOL_SOCKET; import static android.system.OsConstants.SO_BINDTODEVICE; import android.annotation.SystemApi; +import android.annotation.TestApi; import android.net.NetworkUtils; import android.system.ErrnoException; import android.system.NetlinkSocketAddress; import android.system.Os; import android.system.PacketSocketAddress; +import libcore.io.IoBridge; + import java.io.FileDescriptor; +import java.io.IOException; import java.net.SocketAddress; /** @@ -34,6 +38,7 @@ import java.net.SocketAddress; * @hide */ @SystemApi +@TestApi public class SocketUtils { /** * Create a raw datagram socket that is bound to an interface. @@ -57,18 +62,25 @@ public class SocketUtils { } /** - * Make a socket address to bind to packet sockets. + * Make socket address that packet sockets can bind to. */ public static SocketAddress makePacketSocketAddress(short protocol, int ifIndex) { return new PacketSocketAddress(protocol, ifIndex); } /** - * Make a socket address to send raw packets. + * Make a socket address that packet socket can send packets to. */ public static SocketAddress makePacketSocketAddress(int ifIndex, byte[] hwAddr) { return new PacketSocketAddress(ifIndex, hwAddr); } + /** + * @see IoBridge#closeAndSignalBlockedThreads(FileDescriptor) + */ + public static void closeSocket(FileDescriptor fd) throws IOException { + IoBridge.closeAndSignalBlockedThreads(fd); + } + private SocketUtils() {} } |