public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
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



  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