From: Bernhard Bitsch <bbitsch@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH 1/5] hostapd: Bring back support for 802.11g/a
Date: Wed, 21 Jan 2026 20:46:40 +0100 [thread overview]
Message-ID: <163650f3-3968-434e-8cef-fb2405e5a45f@ipfire.org> (raw)
In-Reply-To: <20260119162140.3373757-1-michael.tremer@ipfire.org>
Reviewed-by: Bernhard Bitsch <bbitsch@ipfire.org>
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 <michael.tremer@ipfire.org>
> ---
> 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
next prev parent reply other threads:[~2026-01-21 19:46 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-19 16:21 Michael Tremer
2026-01-19 16:21 ` [PATCH 2/5] hostapd: Use the new readhash implementation to read configuration files Michael Tremer
2026-01-21 19:58 ` Bernhard Bitsch
2026-01-19 16:21 ` [PATCH 3/5] readhash: Fix the quote check Michael Tremer
2026-01-21 20:00 ` Bernhard Bitsch
2026-01-19 16:21 ` [PATCH 4/5] initscripts: functions: Permit ! in the value of key/value files Michael Tremer
2026-01-19 16:21 ` [PATCH 5/5] hostapd: Bump package version Michael Tremer
2026-01-21 19:46 ` Bernhard Bitsch [this message]
2026-01-22 11:14 ` [PATCH 1/5] hostapd: Bring back support for 802.11g/a Michael Tremer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=163650f3-3968-434e-8cef-fb2405e5a45f@ipfire.org \
--to=bbitsch@ipfire.org \
--cc=development@lists.ipfire.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox