Add functions to convert channel bandwidth to an integer
This adds two utility functions to convert both operating classes and and the chan_width enum to an integer representing the channel bandwidth. This can then be used to compare bandwidth parameters in an uniform manner. Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
This commit is contained in:
parent
dbe473fd22
commit
d706e0d7a3
4 changed files with 43 additions and 0 deletions
|
@ -1699,6 +1699,27 @@ const struct oper_class_map * get_oper_class(const char *country, u8 op_class)
|
|||
}
|
||||
|
||||
|
||||
int oper_class_bw_to_int(const struct oper_class_map *map)
|
||||
{
|
||||
switch (map->bw) {
|
||||
case BW20:
|
||||
return 20;
|
||||
case BW40PLUS:
|
||||
case BW40MINUS:
|
||||
return 40;
|
||||
case BW80:
|
||||
return 80;
|
||||
case BW80P80:
|
||||
case BW160:
|
||||
return 160;
|
||||
case BW2160:
|
||||
return 2160;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int ieee802_11_parse_candidate_list(const char *pos, u8 *nei_rep,
|
||||
size_t nei_rep_len)
|
||||
{
|
||||
|
|
|
@ -200,6 +200,7 @@ struct country_op_class {
|
|||
u8 country_to_global_op_class(const char *country, u8 op_class);
|
||||
|
||||
const struct oper_class_map * get_oper_class(const char *country, u8 op_class);
|
||||
int oper_class_bw_to_int(const struct oper_class_map *map);
|
||||
|
||||
int ieee802_11_parse_candidate_list(const char *pos, u8 *nei_rep,
|
||||
size_t nei_rep_len);
|
||||
|
|
|
@ -5562,6 +5562,8 @@ const char * event_to_string(enum wpa_event_type event);
|
|||
/* Convert chan_width to a string for logging and control interfaces */
|
||||
const char * channel_width_to_string(enum chan_width width);
|
||||
|
||||
int channel_width_to_int(enum chan_width width);
|
||||
|
||||
int ht_supported(const struct hostapd_hw_modes *mode);
|
||||
int vht_supported(const struct hostapd_hw_modes *mode);
|
||||
|
||||
|
|
|
@ -115,6 +115,25 @@ const char * channel_width_to_string(enum chan_width width)
|
|||
}
|
||||
|
||||
|
||||
int channel_width_to_int(enum chan_width width)
|
||||
{
|
||||
switch (width) {
|
||||
case CHAN_WIDTH_20_NOHT:
|
||||
case CHAN_WIDTH_20:
|
||||
return 20;
|
||||
case CHAN_WIDTH_40:
|
||||
return 40;
|
||||
case CHAN_WIDTH_80:
|
||||
return 80;
|
||||
case CHAN_WIDTH_80P80:
|
||||
case CHAN_WIDTH_160:
|
||||
return 160;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int ht_supported(const struct hostapd_hw_modes *mode)
|
||||
{
|
||||
if (!(mode->flags & HOSTAPD_MODE_FLAG_HT_INFO_KNOWN)) {
|
||||
|
|
Loading…
Reference in a new issue