]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Add functions to convert channel bandwidth to an integer
authorMathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
Mon, 6 Aug 2018 19:46:23 +0000 (15:46 -0400)
committerJouni Malinen <j@w1.fi>
Sun, 16 Dec 2018 16:35:30 +0000 (18:35 +0200)
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>
src/common/ieee802_11_common.c
src/common/ieee802_11_common.h
src/drivers/driver.h
src/drivers/driver_common.c

index d1cc101b029e726f72d2f472789e647bf3a1acfb..e207599c5b749096958fb8902931af2408d16d86 100644 (file)
@@ -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)
 {
index e801caf45615dd0ba3d4d7c15e92cae6f4775d80..f8e8b525a9dbd7bea64724794e5a72ef7eb19af0 100644 (file)
@@ -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);
index a880aea7f31e959c8e28584e948b072d824bf3c2..4a011f6ba83865bf666acc09f4c42a4d9c833e8b 100644 (file)
@@ -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);
 
index ac0916e4061f9b45e72663f8a4475225c2101868..1b92e8605c52e865b46682f3b620daf225d298a6 100644 (file)
@@ -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)) {