From: Michael Tremer Date: Mon, 19 Jan 2026 16:21:36 +0000 (+0000) Subject: hostapd: Bring back support for 802.11g/a X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=64ea5031476bb7acc0a65c1b7140193d7093187e;p=ipfire-2.x.git hostapd: Bring back support for 802.11g/a I just have a little bit of easily accessible testing hardware in form of USB devices which are very suitable for testing, but the one that I found in my drawer doesn't support 802.11n. Signed-off-by: Michael Tremer Reviewed-by: Bernhard Bitsch Signed-off-by: Michael Tremer --- diff --git a/doc/language_issues.de b/doc/language_issues.de index 008b9520f..1795ec5af 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -1210,6 +1210,8 @@ WARNING: untranslated string: wio_webinterface_link = unknown string WARNING: untranslated string: wireguard = WireGuard WARNING: untranslated string: wlan client encryption wpa3 = WPA3 WARNING: untranslated string: wlan client management frame protection = Management Frame Protection +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11w disabled = Disabled WARNING: untranslated string: wlanap 802.11w enforced = Enforced WARNING: untranslated string: wlanap 802.11w optional = Optional diff --git a/doc/language_issues.en b/doc/language_issues.en index 6ea0f1963..30e2fbcce 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -2408,6 +2408,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.es b/doc/language_issues.es index 48dfffa7e..980d27874 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -1250,6 +1250,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 65b3838d0..a7c31beaf 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -1301,6 +1301,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.it b/doc/language_issues.it index 5214abda2..10e77143f 100644 --- a/doc/language_issues.it +++ b/doc/language_issues.it @@ -1652,6 +1652,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.nl b/doc/language_issues.nl index d3f814785..5d56a5ca2 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -1672,6 +1672,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.pl b/doc/language_issues.pl index 24b5429ef..7a1128c20 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -1920,6 +1920,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.ru b/doc/language_issues.ru index 0682bfd6f..b6320fd30 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -1919,6 +1919,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.tr b/doc/language_issues.tr index 2ef6920ac..2ad1bf054 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -1522,6 +1522,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.tw b/doc/language_issues.tw index 73e116b7c..c676ffa52 100644 --- a/doc/language_issues.tw +++ b/doc/language_issues.tw @@ -1268,6 +1268,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.zh b/doc/language_issues.zh index 73e116b7c..c676ffa52 100644 --- a/doc/language_issues.zh +++ b/doc/language_issues.zh @@ -1268,6 +1268,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_missings b/doc/language_missings index 1d435f16f..268add65b 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -141,6 +141,8 @@ < wg pre-shared key (optional) < winbind daemon < wireguard +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11w disabled < wlanap 802.11w enforced < wlanap 802.11w optional @@ -217,6 +219,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -398,6 +402,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -1040,6 +1046,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -1754,6 +1762,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -2882,6 +2892,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -4048,6 +4060,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -4591,6 +4605,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -4727,6 +4743,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -4828,6 +4846,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index 0d1c5a90b..0c5dad558 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -102,7 +102,7 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") { } # Validate MODE - unless ($cgiparams{'MODE'} =~ m/^(HT|HE|VHT|EHT)(20|40|80|160|320)$/) { + unless ($cgiparams{'MODE'} =~ m/^(|HT|HE|VHT|EHT)(20|40|80|160|320)$/) { $errormessage .= "$Lang::tr{'wlanap invalid mode'}
"; } @@ -343,6 +343,12 @@ print < + + + + diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 79a512498..dda3e8d5b 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -3202,6 +3202,8 @@ 'wlanap 802.11ac 20mhz' => 'IEEE 802.11ac @ 20 MHz', 'wlanap 802.11ac 40mhz' => 'IEEE 802.11ac @ 40 MHz', 'wlanap 802.11ac 80mhz' => 'IEEE 802.11ac @ 80 MHz', +'wlanap 802.11ag' => 'IEEE 802.11a/g', +'wlanap 802.11ag 20mhz' => 'IEEE802.11a/g @ 20 MHz', 'wlanap 802.11agn' => 'IEEE 802.11an/gn', 'wlanap 802.11agn 20mhz' => 'IEEE 802.11an/gn @ 20 MHz', 'wlanap 802.11agn 40mhz' => 'IEEE 802.11an/gn @ 40 MHz', diff --git a/src/initscripts/packages/hostapd b/src/initscripts/packages/hostapd index 5384badab..9bb6a2120 100644 --- a/src/initscripts/packages/hostapd +++ b/src/initscripts/packages/hostapd @@ -360,6 +360,15 @@ write_config() { # Always enable WMM echo "wmm_enabled=1" + # 802.11n + local enable_n=0 + + case "${MODE}" in + HT*|VHT*|HE*|EHT*) + enable_n=1 + ;; + esac + # 802.11ac local enable_ac=0 local vht_oper_chwidth=0 @@ -507,8 +516,10 @@ write_config() { fi fi - # Always enable 802.11n - echo "ieee80211n=1" + # Enable 802.11n? + if [ "${enable_n}" -eq 1 ]; then + echo "ieee80211n=1" + fi # Set HT capabilities if [ ${#ht_caps[@]} -gt 0 ]; then