@@ -72,6 +72,7 @@ enum driver_flag {
DEFAULT_IF = 0x1,
FORCE_PAE = 0x2,
POWER_SAVE_DISABLE = 0x4,
+ OWE_DISABLE = 0x8,
};
struct driver_flag_name {
@@ -103,6 +104,7 @@ static const struct driver_flag_name driver_flag_names[] = {
{ "DefaultInterface", DEFAULT_IF },
{ "ForcePae", FORCE_PAE },
{ "PowerSaveDisable", POWER_SAVE_DISABLE },
+ { "OweDisable", OWE_DISABLE },
};
struct wiphy {
@@ -344,7 +346,8 @@ wpa2_personal:
if (info->akm_suites & IE_RSN_AKM_SUITE_PSK)
return IE_RSN_AKM_SUITE_PSK;
} else if (security == SECURITY_NONE) {
- if (info->akm_suites & IE_RSN_AKM_SUITE_OWE)
+ if (info->akm_suites & IE_RSN_AKM_SUITE_OWE &&
+ !wiphy_owe_disabled(wiphy))
return IE_RSN_AKM_SUITE_OWE;
}
@@ -721,6 +724,14 @@ bool wiphy_power_save_disabled(struct wiphy *wiphy)
return false;
}
+bool wiphy_owe_disabled(struct wiphy *wiphy)
+{
+ if (wiphy->driver_flags & OWE_DISABLE)
+ return true;
+
+ return false;
+}
+
const uint8_t *wiphy_get_extended_capabilities(struct wiphy *wiphy,
uint32_t iftype)
{
@@ -1355,6 +1366,9 @@ static void wiphy_print_basic_info(struct wiphy *wiphy)
if (wiphy->driver_flags & POWER_SAVE_DISABLE)
flags = l_strv_append(flags, "PowerSaveDisable");
+ if (wiphy->driver_flags & OWE_DISABLE)
+ flags = l_strv_append(flags, "OweDisable");
+
joined = l_strjoinv(flags, ' ');
l_info("\tDriver Flags: %s", joined);
@@ -134,6 +134,7 @@ const char *wiphy_get_name(struct wiphy *wiphy);
bool wiphy_uses_default_if(struct wiphy *wiphy);
bool wiphy_control_port_enabled(struct wiphy *wiphy);
bool wiphy_power_save_disabled(struct wiphy *wiphy);
+bool wiphy_owe_disabled(struct wiphy *wiphy);
const uint8_t *wiphy_get_extended_capabilities(struct wiphy *wiphy,
uint32_t iftype);
const uint8_t *wiphy_get_rm_enabled_capabilities(struct wiphy *wiphy);