Hello Bernhard, Thank you very much for reviewing this patch set.
Did you also run the scripts? -Michael > On 21 Jan 2026, at 19:46, Bernhard Bitsch <[email protected]> wrote: > > Reviewed-by: Bernhard Bitsch <[email protected]> > > Am 19.01.2026 um 17:21 schrieb Michael Tremer: >> 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 <[email protected]> >> --- >> doc/language_issues.de | 2 ++ >> doc/language_issues.en | 2 ++ >> doc/language_issues.es | 2 ++ >> doc/language_issues.fr | 2 ++ >> doc/language_issues.it | 2 ++ >> doc/language_issues.nl | 2 ++ >> doc/language_issues.pl | 2 ++ >> doc/language_issues.ru | 2 ++ >> doc/language_issues.tr | 2 ++ >> doc/language_issues.tw | 2 ++ >> doc/language_issues.zh | 2 ++ >> doc/language_missings | 20 ++++++++++++++++++++ >> html/cgi-bin/wlanap.cgi | 8 +++++++- >> langs/en/cgi-bin/en.pl | 2 ++ >> src/initscripts/packages/hostapd | 15 +++++++++++++-- >> 15 files changed, 64 insertions(+), 3 deletions(-) >> 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'}<br />"; >> } >> @@ -343,6 +343,12 @@ print <<END; >> $Lang::tr{'wlanap 802.11agn 20mhz'} >> </option> >> </optgroup> >> + >> + <optgroup label="$Lang::tr{'wlanap 802.11ag'}"> >> + <option value="20" $selected{'MODE'}{'20'}> >> + $Lang::tr{'wlanap 802.11ag 20mhz'} >> + </option> >> + </optgroup> >> </select> >> </td> >> </tr> >> 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 > >
