mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-01-05 12:52:37 +01:00
wiphy: Setup RM Enabled Capabilities in wiphy
This commit is contained in:
parent
e01a036a41
commit
01cfcabfb4
25
src/wiphy.c
25
src/wiphy.c
@ -74,6 +74,7 @@ struct wiphy {
|
|||||||
struct watchlist state_watches;
|
struct watchlist state_watches;
|
||||||
uint8_t extended_capabilities[EXT_CAP_LEN + 2]; /* max bitmap size + IE header */
|
uint8_t extended_capabilities[EXT_CAP_LEN + 2]; /* max bitmap size + IE header */
|
||||||
uint8_t *iftype_extended_capabilities[NUM_NL80211_IFTYPES];
|
uint8_t *iftype_extended_capabilities[NUM_NL80211_IFTYPES];
|
||||||
|
uint8_t rm_enabled_capabilities[7]; /* 5 size max + header */
|
||||||
|
|
||||||
bool support_scheduled_scan:1;
|
bool support_scheduled_scan:1;
|
||||||
bool support_rekey_offload:1;
|
bool support_rekey_offload:1;
|
||||||
@ -386,6 +387,14 @@ const uint8_t *wiphy_get_extended_capabilities(struct wiphy *wiphy,
|
|||||||
return wiphy->extended_capabilities;
|
return wiphy->extended_capabilities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const uint8_t *wiphy_get_rm_enabled_capabilities(struct wiphy *wiphy)
|
||||||
|
{
|
||||||
|
if (!wiphy_rrm_capable(wiphy))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return wiphy->rm_enabled_capabilities;
|
||||||
|
}
|
||||||
|
|
||||||
void wiphy_generate_random_address(struct wiphy *wiphy, uint8_t addr[static 6])
|
void wiphy_generate_random_address(struct wiphy *wiphy, uint8_t addr[static 6])
|
||||||
{
|
{
|
||||||
switch (mac_randomize_bytes) {
|
switch (mac_randomize_bytes) {
|
||||||
@ -984,6 +993,21 @@ static void wiphy_set_station_capability_bits(struct wiphy *wiphy)
|
|||||||
util_set_bit(ext_capa, 72);
|
util_set_bit(ext_capa, 72);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void wiphy_setup_rm_enabled_capabilities(struct wiphy *wiphy)
|
||||||
|
{
|
||||||
|
/* Nothing to do */
|
||||||
|
if (!wiphy_rrm_capable(wiphy))
|
||||||
|
return;
|
||||||
|
|
||||||
|
wiphy->rm_enabled_capabilities[0] = IE_TYPE_RM_ENABLED_CAPABILITIES;
|
||||||
|
wiphy->rm_enabled_capabilities[1] = 5;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO: Support at least Link Measurement if TX_POWER_INSERTION is
|
||||||
|
* available
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
void wiphy_create_complete(struct wiphy *wiphy)
|
void wiphy_create_complete(struct wiphy *wiphy)
|
||||||
{
|
{
|
||||||
if (util_mem_is_zero(wiphy->permanent_addr, 6)) {
|
if (util_mem_is_zero(wiphy->permanent_addr, 6)) {
|
||||||
@ -995,6 +1019,7 @@ void wiphy_create_complete(struct wiphy *wiphy)
|
|||||||
}
|
}
|
||||||
|
|
||||||
wiphy_set_station_capability_bits(wiphy);
|
wiphy_set_station_capability_bits(wiphy);
|
||||||
|
wiphy_setup_rm_enabled_capabilities(wiphy);
|
||||||
|
|
||||||
wiphy_print_basic_info(wiphy);
|
wiphy_print_basic_info(wiphy);
|
||||||
}
|
}
|
||||||
|
@ -74,6 +74,7 @@ const char *wiphy_get_name(struct wiphy *wiphy);
|
|||||||
const uint8_t *wiphy_get_permanent_address(struct wiphy *wiphy);
|
const uint8_t *wiphy_get_permanent_address(struct wiphy *wiphy);
|
||||||
const uint8_t *wiphy_get_extended_capabilities(struct wiphy *wiphy,
|
const uint8_t *wiphy_get_extended_capabilities(struct wiphy *wiphy,
|
||||||
uint32_t iftype);
|
uint32_t iftype);
|
||||||
|
const uint8_t *wiphy_get_rm_enabled_capabilities(struct wiphy *wiphy);
|
||||||
|
|
||||||
void wiphy_generate_random_address(struct wiphy *wiphy, uint8_t addr[static 6]);
|
void wiphy_generate_random_address(struct wiphy *wiphy, uint8_t addr[static 6]);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user