]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
AP: Create hostapd_chan_width_from_freq_params()
authorBenjamin Berg <benjamin.berg@intel.com>
Thu, 31 Jul 2025 13:56:58 +0000 (15:56 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 6 Oct 2025 10:21:35 +0000 (13:21 +0300)
Split out hostapd_chan_width_from_freq_params() to avoid code
duplication.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
src/ap/hostapd.c
src/ap/hostapd.h

index 2edb46585bed665500ced9c88c2ce8bfdb6f3615..9918c270aaf9c2a85fe2924ca55c56d4a57d48e0 100644 (file)
@@ -4570,40 +4570,44 @@ static int hostapd_change_config_freq(struct hostapd_data *hapd,
 }
 
 
+enum oper_chan_width
+hostapd_chan_width_from_freq_params(struct hostapd_freq_params *freq_params)
+{
+       switch (freq_params->bandwidth) {
+       case 80:
+               if (freq_params->center_freq2)
+                       return CONF_OPER_CHWIDTH_80P80MHZ;
+               else
+                       return CONF_OPER_CHWIDTH_80MHZ;
+       case 160:
+               return CONF_OPER_CHWIDTH_160MHZ;
+       case 320:
+               return CONF_OPER_CHWIDTH_320MHZ;
+       default:
+               return CONF_OPER_CHWIDTH_USE_HT;
+       }
+}
+
+
 static int hostapd_fill_csa_settings(struct hostapd_data *hapd,
                                     struct csa_settings *settings)
 {
        struct hostapd_iface *iface = hapd->iface;
        struct hostapd_freq_params old_freq;
        int ret;
-       u8 chan, bandwidth;
+       enum oper_chan_width chanwidth;
+       u8 chan;
 
        os_memset(&old_freq, 0, sizeof(old_freq));
        if (!iface || !iface->freq || hapd->csa_in_progress)
                return -1;
 
-       switch (settings->freq_params.bandwidth) {
-       case 80:
-               if (settings->freq_params.center_freq2)
-                       bandwidth = CONF_OPER_CHWIDTH_80P80MHZ;
-               else
-                       bandwidth = CONF_OPER_CHWIDTH_80MHZ;
-               break;
-       case 160:
-               bandwidth = CONF_OPER_CHWIDTH_160MHZ;
-               break;
-       case 320:
-               bandwidth = CONF_OPER_CHWIDTH_320MHZ;
-               break;
-       default:
-               bandwidth = CONF_OPER_CHWIDTH_USE_HT;
-               break;
-       }
+       chanwidth = hostapd_chan_width_from_freq_params(&settings->freq_params);
 
        if (ieee80211_freq_to_channel_ext(
                    settings->freq_params.freq,
                    settings->freq_params.sec_channel_offset,
-                   bandwidth,
+                   chanwidth,
                    &hapd->iface->cs_oper_class,
                    &chan) == NUM_HOSTAPD_MODES) {
                wpa_printf(MSG_DEBUG,
index f263a6cb7ff267655901896f64c22654651357d0..6e04212786ebeab906ef69eaf84e4506fda8d5f2 100644 (file)
@@ -899,4 +899,7 @@ static inline bool ap_pmf_enabled(struct hostapd_bss_config *conf)
                conf->rsn_override_mfp_2 != NO_MGMT_FRAME_PROTECTION;
 }
 
+enum oper_chan_width
+hostapd_chan_width_from_freq_params(struct hostapd_freq_params *freq_params);
+
 #endif /* HOSTAPD_H */