Merge "Tethering: Add WiGig support" am: 65fadfc134 am: 6c5b5b0803 am: fdf89ee7fb

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1177323

Change-Id: Ib53b8bb0f325661ed1919978220b3a4a503b9ae8
This commit is contained in:
Mark Chien
2020-06-22 23:45:04 +00:00
committed by Automerger Merge Worker
6 changed files with 30 additions and 2 deletions

View File

@@ -171,6 +171,14 @@ public class TetheringManager {
*/
public static final int TETHERING_ETHERNET = 5;
/**
* WIGIG tethering type. Use a separate type to prevent
* conflicts with TETHERING_WIFI
* This type is only used internally by the tethering module
* @hide
*/
public static final int TETHERING_WIGIG = 6;
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@IntDef(value = {

View File

@@ -42,6 +42,13 @@
<item>"softap\\d"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
WiGig interfaces. If the device doesn't want to support tethering over WiGig this
should be empty. An example would be "wigig\\d" -->
<string-array translatable="false" name="config_tether_wigig_regexs">
<item>"wigig\\d"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
Wifi P2P interfaces. If the device doesn't want to support tethering over Wifi P2p this
should be empty. An example would be "p2p-p2p\\d-.*" -->

View File

@@ -20,6 +20,7 @@
<item type="array" name="config_tether_usb_regexs"/>
<item type="array" name="config_tether_ncm_regexs" />
<item type="array" name="config_tether_wifi_regexs"/>
<item type="array" name="config_tether_wigig_regexs"/>
<item type="array" name="config_tether_wifi_p2p_regexs"/>
<item type="array" name="config_tether_bluetooth_regexs"/>
<item type="array" name="config_tether_dhcp_range"/>

View File

@@ -617,7 +617,8 @@ public class IpServer extends StateMachine {
final Boolean setIfaceUp;
if (mInterfaceType == TetheringManager.TETHERING_WIFI
|| mInterfaceType == TetheringManager.TETHERING_WIFI_P2P
|| mInterfaceType == TetheringManager.TETHERING_ETHERNET) {
|| mInterfaceType == TetheringManager.TETHERING_ETHERNET
|| mInterfaceType == TetheringManager.TETHERING_WIGIG) {
// The WiFi and Ethernet stack has ownership of the interface up/down state.
// It is unclear whether the Bluetooth or USB stacks will manage their own
// state.

View File

@@ -40,6 +40,7 @@ import static android.net.TetheringManager.TETHERING_NCM;
import static android.net.TetheringManager.TETHERING_USB;
import static android.net.TetheringManager.TETHERING_WIFI;
import static android.net.TetheringManager.TETHERING_WIFI_P2P;
import static android.net.TetheringManager.TETHERING_WIGIG;
import static android.net.TetheringManager.TETHER_ERROR_INTERNAL_ERROR;
import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
import static android.net.TetheringManager.TETHER_ERROR_SERVICE_UNAVAIL;
@@ -495,7 +496,8 @@ public class Tethering {
if (up) {
maybeTrackNewInterfaceLocked(iface);
} else {
if (ifaceNameToType(iface) == TETHERING_BLUETOOTH) {
if (ifaceNameToType(iface) == TETHERING_BLUETOOTH
|| ifaceNameToType(iface) == TETHERING_WIGIG) {
stopTrackingInterfaceLocked(iface);
} else {
// Ignore usb0 down after enabling RNDIS.
@@ -517,6 +519,8 @@ public class Tethering {
if (cfg.isWifi(iface)) {
return TETHERING_WIFI;
} else if (cfg.isWigig(iface)) {
return TETHERING_WIGIG;
} else if (cfg.isWifiP2p(iface)) {
return TETHERING_WIFI_P2P;
} else if (cfg.isUsb(iface)) {

View File

@@ -92,6 +92,7 @@ public class TetheringConfiguration {
public final String[] tetherableUsbRegexs;
public final String[] tetherableWifiRegexs;
public final String[] tetherableWigigRegexs;
public final String[] tetherableWifiP2pRegexs;
public final String[] tetherableBluetoothRegexs;
public final String[] tetherableNcmRegexs;
@@ -125,6 +126,7 @@ public class TetheringConfiguration {
// us an interface name. Careful consideration needs to be given to
// implications for Settings and for provisioning checks.
tetherableWifiRegexs = getResourceStringArray(res, R.array.config_tether_wifi_regexs);
tetherableWigigRegexs = getResourceStringArray(res, R.array.config_tether_wigig_regexs);
tetherableWifiP2pRegexs = getResourceStringArray(
res, R.array.config_tether_wifi_p2p_regexs);
tetherableBluetoothRegexs = getResourceStringArray(
@@ -167,6 +169,11 @@ public class TetheringConfiguration {
return matchesDownstreamRegexs(iface, tetherableWifiRegexs);
}
/** Check whether input interface belong to wigig.*/
public boolean isWigig(String iface) {
return matchesDownstreamRegexs(iface, tetherableWigigRegexs);
}
/** Check whether this interface is Wifi P2P interface. */
public boolean isWifiP2p(String iface) {
return matchesDownstreamRegexs(iface, tetherableWifiP2pRegexs);