mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2025-02-21 11:33:04 -05:00
utils: Derive phy type by frequency and bandwidth
Add a function to derive phy type from frequency and bandwidth as defined in IEEE Std 802.11ac-2013 Annex C (dot11PHYType). Signed-off-by: David Spinadel <david.spinadel@intel.com>
This commit is contained in:
parent
c8082d2b6a
commit
cf11ab7f03
@ -1211,6 +1211,41 @@ const struct oper_class_map global_op_class[] = {
|
|||||||
{ -1, 0, 0, 0, 0, BW20, NO_P2P_SUPP }
|
{ -1, 0, 0, 0, 0, BW20, NO_P2P_SUPP }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static enum phy_type ieee80211_phy_type_by_freq(int freq)
|
||||||
|
{
|
||||||
|
enum hostapd_hw_mode hw_mode;
|
||||||
|
u8 channel;
|
||||||
|
|
||||||
|
hw_mode = ieee80211_freq_to_chan(freq, &channel);
|
||||||
|
|
||||||
|
switch (hw_mode) {
|
||||||
|
case HOSTAPD_MODE_IEEE80211A:
|
||||||
|
return PHY_TYPE_OFDM;
|
||||||
|
case HOSTAPD_MODE_IEEE80211B:
|
||||||
|
return PHY_TYPE_HRDSSS;
|
||||||
|
case HOSTAPD_MODE_IEEE80211G:
|
||||||
|
return PHY_TYPE_ERP;
|
||||||
|
case HOSTAPD_MODE_IEEE80211AD:
|
||||||
|
return PHY_TYPE_DMG;
|
||||||
|
default:
|
||||||
|
return PHY_TYPE_UNSPECIFIED;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ieee80211_get_phy_type - Derive the phy type by freq and bandwidth */
|
||||||
|
enum phy_type ieee80211_get_phy_type(int freq, int ht, int vht)
|
||||||
|
{
|
||||||
|
if (vht)
|
||||||
|
return PHY_TYPE_VHT;
|
||||||
|
if (ht)
|
||||||
|
return PHY_TYPE_HT;
|
||||||
|
|
||||||
|
return ieee80211_phy_type_by_freq(freq);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
size_t global_op_class_size = ARRAY_SIZE(global_op_class);
|
size_t global_op_class_size = ARRAY_SIZE(global_op_class);
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,6 +120,7 @@ enum hostapd_hw_mode ieee80211_freq_to_channel_ext(unsigned int freq,
|
|||||||
int sec_channel, int vht,
|
int sec_channel, int vht,
|
||||||
u8 *op_class, u8 *channel);
|
u8 *op_class, u8 *channel);
|
||||||
int ieee80211_is_dfs(int freq);
|
int ieee80211_is_dfs(int freq);
|
||||||
|
enum phy_type ieee80211_get_phy_type(int freq, int ht, int vht);
|
||||||
|
|
||||||
int supp_rates_11b_only(struct ieee802_11_elems *elems);
|
int supp_rates_11b_only(struct ieee802_11_elems *elems);
|
||||||
int mb_ies_info_by_ies(struct mb_ies_info *info, const u8 *ies_buf,
|
int mb_ies_info_by_ies(struct mb_ies_info *info, const u8 *ies_buf,
|
||||||
|
@ -1520,4 +1520,18 @@ enum fst_action {
|
|||||||
FST_ACTION_ON_CHANNEL_TUNNEL = 5,
|
FST_ACTION_ON_CHANNEL_TUNNEL = 5,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* IEEE Std 802.11ac-2013, Annex C - dot11PHYType */
|
||||||
|
enum phy_type {
|
||||||
|
PHY_TYPE_UNSPECIFIED = 0,
|
||||||
|
PHY_TYPE_FHSS = 1,
|
||||||
|
PHY_TYPE_DSSS = 2,
|
||||||
|
PHY_TYPE_IRBASEBAND = 3,
|
||||||
|
PHY_TYPE_OFDM = 4,
|
||||||
|
PHY_TYPE_HRDSSS = 5,
|
||||||
|
PHY_TYPE_ERP = 6,
|
||||||
|
PHY_TYPE_HT = 7,
|
||||||
|
PHY_TYPE_DMG = 8,
|
||||||
|
PHY_TYPE_VHT = 9,
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* IEEE802_11_DEFS_H */
|
#endif /* IEEE802_11_DEFS_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user