Merge "WiFi: Basic support for 11be"
diff --git a/wifi/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java b/wifi/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java
index bb0cc97..21700d5 100644
--- a/wifi/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java
+++ b/wifi/java/src/android/net/wifi/nl80211/DeviceWiphyCapabilities.java
@@ -42,8 +42,10 @@
private boolean m80211nSupported;
private boolean m80211acSupported;
private boolean m80211axSupported;
+ private boolean m80211beSupported;
private boolean mChannelWidth160MhzSupported;
private boolean mChannelWidth80p80MhzSupported;
+ private boolean mChannelWidth320MhzSupported;
private int mMaxNumberTxSpatialStreams;
private int mMaxNumberRxSpatialStreams;
@@ -53,8 +55,10 @@
m80211nSupported = false;
m80211acSupported = false;
m80211axSupported = false;
+ m80211beSupported = false;
mChannelWidth160MhzSupported = false;
mChannelWidth80p80MhzSupported = false;
+ mChannelWidth320MhzSupported = false;
mMaxNumberTxSpatialStreams = 1;
mMaxNumberRxSpatialStreams = 1;
}
@@ -76,6 +80,8 @@
return m80211acSupported;
case ScanResult.WIFI_STANDARD_11AX:
return m80211axSupported;
+ case ScanResult.WIFI_STANDARD_11BE:
+ return m80211beSupported;
default:
Log.e(TAG, "isWifiStandardSupported called with invalid standard: " + standard);
return false;
@@ -100,6 +106,9 @@
case ScanResult.WIFI_STANDARD_11AX:
m80211axSupported = support;
break;
+ case ScanResult.WIFI_STANDARD_11BE:
+ m80211beSupported = support;
+ break;
default:
Log.e(TAG, "setWifiStandardSupport called with invalid standard: " + standard);
}
@@ -117,13 +126,16 @@
case ScanResult.CHANNEL_WIDTH_20MHZ:
return true;
case ScanResult.CHANNEL_WIDTH_40MHZ:
- return (m80211nSupported || m80211acSupported || m80211axSupported);
+ return (m80211nSupported || m80211acSupported || m80211axSupported
+ || m80211beSupported);
case ScanResult.CHANNEL_WIDTH_80MHZ:
- return (m80211acSupported || m80211axSupported);
+ return (m80211acSupported || m80211axSupported || m80211beSupported);
case ScanResult.CHANNEL_WIDTH_160MHZ:
return mChannelWidth160MhzSupported;
case ScanResult.CHANNEL_WIDTH_80MHZ_PLUS_MHZ:
return mChannelWidth80p80MhzSupported;
+ case ScanResult.CHANNEL_WIDTH_320MHZ:
+ return mChannelWidth320MhzSupported;
default:
Log.e(TAG, "isChannelWidthSupported called with invalid channel width: " + chWidth);
}
@@ -133,8 +145,9 @@
/**
* Set support for channel bandwidth
*
- * @param chWidth valid values are {@link ScanResult#CHANNEL_WIDTH_160MHZ} and
- * {@link ScanResult#CHANNEL_WIDTH_80MHZ_PLUS_MHZ}
+ * @param chWidth valid values are {@link ScanResult#CHANNEL_WIDTH_160MHZ},
+ * {@link ScanResult#CHANNEL_WIDTH_80MHZ_PLUS_MHZ} and
+ * {@link ScanResult#CHANNEL_WIDTH_320MHZ}
* @param support {@code true} if supported, {@code false} otherwise.
*
* @hide
@@ -147,6 +160,9 @@
case ScanResult.CHANNEL_WIDTH_80MHZ_PLUS_MHZ:
mChannelWidth80p80MhzSupported = support;
break;
+ case ScanResult.CHANNEL_WIDTH_320MHZ:
+ mChannelWidth320MhzSupported = support;
+ break;
default:
Log.e(TAG, "setChannelWidthSupported called with Invalid channel width: "
+ chWidth);
@@ -205,8 +221,10 @@
return m80211nSupported == capa.m80211nSupported
&& m80211acSupported == capa.m80211acSupported
&& m80211axSupported == capa.m80211axSupported
+ && m80211beSupported == capa.m80211beSupported
&& mChannelWidth160MhzSupported == capa.mChannelWidth160MhzSupported
&& mChannelWidth80p80MhzSupported == capa.mChannelWidth80p80MhzSupported
+ && mChannelWidth320MhzSupported == capa.mChannelWidth320MhzSupported
&& mMaxNumberTxSpatialStreams == capa.mMaxNumberTxSpatialStreams
&& mMaxNumberRxSpatialStreams == capa.mMaxNumberRxSpatialStreams;
}
@@ -215,8 +233,9 @@
@Override
public int hashCode() {
return Objects.hash(m80211nSupported, m80211acSupported, m80211axSupported,
- mChannelWidth160MhzSupported, mChannelWidth80p80MhzSupported,
- mMaxNumberTxSpatialStreams, mMaxNumberRxSpatialStreams);
+ m80211beSupported, mChannelWidth160MhzSupported, mChannelWidth80p80MhzSupported,
+ mChannelWidth320MhzSupported, mMaxNumberTxSpatialStreams,
+ mMaxNumberRxSpatialStreams);
}
/** implement Parcelable interface */
@@ -234,8 +253,10 @@
out.writeBoolean(m80211nSupported);
out.writeBoolean(m80211acSupported);
out.writeBoolean(m80211axSupported);
+ out.writeBoolean(m80211beSupported);
out.writeBoolean(mChannelWidth160MhzSupported);
out.writeBoolean(mChannelWidth80p80MhzSupported);
+ out.writeBoolean(mChannelWidth320MhzSupported);
out.writeInt(mMaxNumberTxSpatialStreams);
out.writeInt(mMaxNumberRxSpatialStreams);
}
@@ -246,10 +267,13 @@
sb.append("m80211nSupported:").append(m80211nSupported ? "Yes" : "No");
sb.append("m80211acSupported:").append(m80211acSupported ? "Yes" : "No");
sb.append("m80211axSupported:").append(m80211axSupported ? "Yes" : "No");
+ sb.append("m80211beSupported:").append(m80211beSupported ? "Yes" : "No");
sb.append("mChannelWidth160MhzSupported: ")
.append(mChannelWidth160MhzSupported ? "Yes" : "No");
sb.append("mChannelWidth80p80MhzSupported: ")
.append(mChannelWidth80p80MhzSupported ? "Yes" : "No");
+ sb.append("mChannelWidth320MhzSupported: ")
+ .append(mChannelWidth320MhzSupported ? "Yes" : "No");
sb.append("mMaxNumberTxSpatialStreams: ").append(mMaxNumberTxSpatialStreams);
sb.append("mMaxNumberRxSpatialStreams: ").append(mMaxNumberRxSpatialStreams);
@@ -268,8 +292,10 @@
capabilities.m80211nSupported = in.readBoolean();
capabilities.m80211acSupported = in.readBoolean();
capabilities.m80211axSupported = in.readBoolean();
+ capabilities.m80211beSupported = in.readBoolean();
capabilities.mChannelWidth160MhzSupported = in.readBoolean();
capabilities.mChannelWidth80p80MhzSupported = in.readBoolean();
+ capabilities.mChannelWidth320MhzSupported = in.readBoolean();
capabilities.mMaxNumberTxSpatialStreams = in.readInt();
capabilities.mMaxNumberRxSpatialStreams = in.readInt();
return capabilities;
diff --git a/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java b/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java
index 459696e..d3eb8e0 100644
--- a/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java
+++ b/wifi/java/src/android/net/wifi/nl80211/WifiNl80211Manager.java
@@ -493,6 +493,8 @@
return SoftApInfo.CHANNEL_WIDTH_80MHZ_PLUS_MHZ;
case IApInterfaceEventCallback.BANDWIDTH_160:
return SoftApInfo.CHANNEL_WIDTH_160MHZ;
+ case IApInterfaceEventCallback.BANDWIDTH_320:
+ return SoftApInfo.CHANNEL_WIDTH_320MHZ;
default:
return SoftApInfo.CHANNEL_WIDTH_INVALID;
}