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:
@@ -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 = {
|
||||
|
||||
@@ -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-.*" -->
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user