apmanager: add support for HT capability
Parse wiphy's HT capability and add it to the AP service's configuration
file to correctly support AP in 80211n mode.
BUG=chromium:431763
TEST=unittests and manual test by using python to invoke dbus calls
to start AP service in 802.11n mode.
Change-Id: I6c902136832eea6b38b806f733231d6cbe14e3f6
Reviewed-on: https://chromium-review.googlesource.com/231681
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
diff --git a/config.h b/config.h
index 58f65a9..6db0568 100644
--- a/config.h
+++ b/config.h
@@ -25,6 +25,10 @@
Config(Manager* manager, const std::string& service_path);
virtual ~Config();
+ // Calculate the frequency based on the given |channel|. Return true and set
+ // the output |frequency| if is valid channel, false otherwise.
+ static bool GetFrequencyFromChannel(uint16_t channel, uint32_t* freq);
+
// Register Config DBus object.
void RegisterAsync(
chromeos::dbus_utils::ExportedObjectManager* object_manager,
@@ -54,6 +58,7 @@
static const char kHostapdConfigKeyControlInterface[];
static const char kHostapdConfigKeyDriver[];
static const char kHostapdConfigKeyFragmThreshold[];
+ static const char kHostapdConfigKeyHTCapability[];
static const char kHostapdConfigKeyHwMode[];
static const char kHostapdConfigKeyIeee80211ac[];
static const char kHostapdConfigKeyIeee80211n[];
@@ -86,6 +91,14 @@
static const bool kPropertyDefaultHiddenNetwork;
static const uint16_t kPropertyDefaultServerAddressIndex;
+ // Constants use for converting channel to frequency.
+ static const uint16_t kBand24GHzChannelLow;
+ static const uint16_t kBand24GHzChannelHigh;
+ static const uint32_t kBand24GHzBaseFrequency;
+ static const uint16_t kBand5GHzChannelLow;
+ static const uint16_t kBand5GHzChannelHigh;
+ static const uint16_t kBand5GHzBaseFrequency;
+
// Append default hostapd configurations to the config file.
bool AppendHostapdDefaults(chromeos::ErrorPtr* error,
std::string* config_str);