diff mbox series

wifi: ath11k: allow APs combination when dual stations are supported

Message ID 20241202091858.200773-1-jtornosm@redhat.com (mailing list archive)
State New
Delegated to: Jeff Johnson
Headers show
Series wifi: ath11k: allow APs combination when dual stations are supported | expand

Commit Message

Jose Ignacio Tornos Martinez Dec. 2, 2024, 9:18 a.m. UTC
Since commit f019f4dff2e4 ("wifi: ath11k: support 2 station interfaces"),
if dual stations are supported for a device, we can not configure more that
one AP and/or DFS cannot be enabled.

Enable this by creating a new parameter (ignore_support_dual_stations) to
ignore this feature if it is convenient. Default behavior is to support
dual stations if possible.

Reported-by: Vladimir Benes <vbenes@redhat.com>
Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
---
 drivers/net/wireless/ath/ath11k/core.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Yu Zhang (Yuriy) Dec. 3, 2024, 1:54 a.m. UTC | #1
On 12/2/2024 5:18 PM, Jose Ignacio Tornos Martinez wrote:
> Since commit f019f4dff2e4 ("wifi: ath11k: support 2 station interfaces"),
> if dual stations are supported for a device, we can not configure more that
> one AP and/or DFS cannot be enabled.
> 
Try 
https://lore.kernel.org/all/20241127022742.4016870-1-quic_yuzha@quicinc.com/
> Enable this by creating a new parameter (ignore_support_dual_stations) to
> ignore this feature if it is convenient. Default behavior is to support
> dual stations if possible.
> 
> Reported-by: Vladimir Benes <vbenes@redhat.com>
> Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
> ---
>   drivers/net/wireless/ath/ath11k/core.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
> index be67382c00f6..55c7a55d85ff 100644
> --- a/drivers/net/wireless/ath/ath11k/core.c
> +++ b/drivers/net/wireless/ath/ath11k/core.c
> @@ -37,6 +37,12 @@ bool ath11k_ftm_mode;
>   module_param_named(ftm_mode, ath11k_ftm_mode, bool, 0444);
>   MODULE_PARM_DESC(ftm_mode, "Boots up in factory test mode");
>   
> +static bool ath11k_ignore_support_dual_stations;
> +module_param_named(ignore_support_dual_stations,
> +		   ath11k_ignore_support_dual_stations, bool, 0644);
> +MODULE_PARM_DESC(ignore_support_dual_stations,
> +		 "Ignore the support for dual stations to support other combinations");
> +
>   static const struct ath11k_hw_params ath11k_hw_params[] = {
>   	{
>   		.hw_rev = ATH11K_HW_IPQ8074,
> @@ -2162,6 +2168,9 @@ static int ath11k_init_hw_params(struct ath11k_base *ab)
>   	}
>   
>   	ab->hw_params = *hw_params;
> +	if (ab->hw_params.support_dual_stations &&
> +	    ath11k_ignore_support_dual_stations)
> +		ab->hw_params.support_dual_stations  = false;
>   
>   	ath11k_info(ab, "%s\n", ab->hw_params.name);
>
Jose Ignacio Tornos Martinez Dec. 3, 2024, 8:04 a.m. UTC | #2
Sorry, but your solution is not working for me.
We need to be able to setup 2 APs, as it was possible before, and with your
interface combinations it is not possible either.
I was trying to create a second interface combination to recover the old
scenario as well, but I couldn't, that is the reason why I have implemented
this parameter.

Thanks

Best regards
Jose Ignacio
Yu Zhang (Yuriy) Dec. 3, 2024, 8:28 a.m. UTC | #3
On 12/3/2024 4:04 PM, Jose Ignacio Tornos Martinez wrote:
> Sorry, but your solution is not working for me.
> We need to be able to setup 2 APs, as it was possible before, and with your
> interface combinations it is not possible either.
> I was trying to create a second interface combination to recover the old
> scenario as well, but I couldn't, that is the reason why I have implemented
> this parameter.
> 
> Thanks
> 
> Best regards
> Jose Ignacio
> 
Which chip do you use?

I can't be sure about your scenario, but based on your description, I 
tried it on the 6855 and it works:
sh-5.1# iw dev
phy#0
         Interface wlan2
                 ifindex 6
                 wdev 0x3
                 addr 12:03:7f:21:84:11
                 ssid QSoftAP2
                 type AP
                 channel 149 (5745 MHz), width: 20 MHz, center1: 5745 MHz
                 txpower 18.00 dBm
                 multicast TXQ:
                         qsz-byt qsz-pkt flows   drops   marks   overlmt 
hashcol tx-bytes        tx-packets
                         0       0       0       0       0       0 
0       0               0
         Interface wlan1
                 ifindex 5
                 wdev 0x2
                 addr 02:03:7f:21:84:11
                 ssid QSoftAP1
                 type AP
                 channel 36 (5180 MHz), width: 20 MHz, center1: 5180 MHz
                 txpower 5.00 dBm
                 multicast TXQ:
                         qsz-byt qsz-pkt flows   drops   marks   overlmt 
hashcol tx-bytes        tx-packets
                         0       0       0       0       0       0 
0       0               0
         Interface wlan0
                 ifindex 4
                 wdev 0x1
                 addr 00:03:7f:21:84:11
                 type managed
                 txpower 18.00 dBm
                 multicast TXQ:
                         qsz-byt qsz-pkt flows   drops   marks   overlmt 
hashcol tx-bytes        tx-packets
                         0       0       0       0       0       0 
0       0               0
Jose Ignacio Tornos Martinez Dec. 3, 2024, 9:48 a.m. UTC | #4
> Which chip do you use?
Since I am not totally sure about the useful information, let me show you
the kernel logs:
$ dmesg | grep ath11k 
[    3.659388] ath11k_pci 0000:01:00.0: BAR 0 [mem 0x84200000-0x843fffff 64bit]: assigned
[    3.659405] ath11k_pci 0000:01:00.0: enabling device (0000 -> 0002)
[    3.659649] ath11k_pci 0000:01:00.0: MSI vectors: 32
[    3.659653] ath11k_pci 0000:01:00.0: wcn6855 hw2.1
[    4.871571] ath11k_pci 0000:01:00.0: chip_id 0x2 chip_family 0xb board_id 0xff soc_id 0x400c0210
[    4.871586] ath11k_pci 0000:01:00.0: fw_version 0x11088c35 fw_build_timestamp 2024-04-17 08:34 fw_build_id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
[    5.241485] ath11k_pci 0000:01:00.0 wlp1s0: renamed from wlan0

If I try to setup 2 APs with your interface combination I get this:
# iw list | grep -A6 "valid interface combinations:"
	valid interface combinations:
		 * #{ managed } <= 2, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
		   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz, 80+80 MHz, 160 MHz }

		 * #{ managed } <= 2, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
		   total <= 3, #channels <= 2, STA/AP BI must match
	HT Capability overrides:
# iw dev
phy#0
	Interface wlp1s0_1
		ifindex 6
		wdev 0x4
		addr a2:42:d2:1e:89:a3
		type managed
		txpower 16.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
	Interface wlp1s0_0
		ifindex 5
		wdev 0x3
		addr 52:e9:be:33:6a:61
		ssid test-qe-wpa2-psk
		type AP
		channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
		txpower 14.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
	Interface wlp1s0
		ifindex 3
		wdev 0x1
		addr c8:94:02:b5:fe:fb
		type managed
		txpower 16.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
Or even this with no AP up:
# iw dev
phy#0
	Interface wlp1s0_1
		ifindex 6
		wdev 0x4
		addr ca:e5:84:22:10:ec
		type managed
		txpower 16.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
	Interface wlp1s0_0
		ifindex 5
		wdev 0x3
		addr 9e:4e:c5:ea:4c:e9
		type AP
		txpower 16.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
	Interface wlp1s0
		ifindex 3
		wdev 0x1
		addr c8:94:02:b5:fe:fb
		type managed
		txpower 16.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0

If I use the parameter to ignore the feature and configure the interface combination as before:
# iw list | grep -A4 "valid interface combinations:"
	valid interface combinations:
		 * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
		   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }

	HT Capability overrides:
# iw dev
phy#1
	Interface wlp1s0_1
		ifindex 7
		wdev 0x100000004
		addr 82:90:89:90:c1:37
		ssid test-qe-wpa3-psk
		type AP
		channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
		txpower 16.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
	Interface wlp1s0_0
		ifindex 6
		wdev 0x100000003
		addr 6a:ef:d0:db:10:f0
		ssid test-qe-wpa2-psk
		type AP
		channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
		txpower 16.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
	Interface wlp1s0
		ifindex 4
		wdev 0x100000001
		addr c8:94:02:b5:fe:fb
		type managed
		txpower 16.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0

Thanks

Best regards
Jose Ignacio
Yu Zhang (Yuriy) Dec. 3, 2024, 10:48 a.m. UTC | #5
On 12/3/2024 5:48 PM, Jose Ignacio Tornos Martinez wrote:
>> Which chip do you use?
> Since I am not totally sure about the useful information, let me show you
> the kernel logs:
> $ dmesg | grep ath11k
> [    3.659388] ath11k_pci 0000:01:00.0: BAR 0 [mem 0x84200000-0x843fffff 64bit]: assigned
> [    3.659405] ath11k_pci 0000:01:00.0: enabling device (0000 -> 0002)
> [    3.659649] ath11k_pci 0000:01:00.0: MSI vectors: 32
> [    3.659653] ath11k_pci 0000:01:00.0: wcn6855 hw2.1
> [    4.871571] ath11k_pci 0000:01:00.0: chip_id 0x2 chip_family 0xb board_id 0xff soc_id 0x400c0210
> [    4.871586] ath11k_pci 0000:01:00.0: fw_version 0x11088c35 fw_build_timestamp 2024-04-17 08:34 fw_build_id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
> [    5.241485] ath11k_pci 0000:01:00.0 wlp1s0: renamed from wlan0
> 
yes, you also use wcn6855 hw2.1.
> If I try to setup 2 APs with your interface combination I get this:
> # iw list | grep -A6 "valid interface combinations:"
> 	valid interface combinations:
> 		 * #{ managed } <= 2, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
> 		   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz, 80+80 MHz, 160 MHz }
> 
> 		 * #{ managed } <= 2, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
> 		   total <= 3, #channels <= 2, STA/AP BI must match
> 	HT Capability overrides:
2 combinations are to support DBS and DFS.
Combinations is correct. channels=2, max interfaces=3.

And you want setup sta + sap + sap, right?
When up the second sap will meet error? Could you pls share the error logs?

I'm not very sure if you add all interface with managed type, and do 
"ifconfig xxx up" before running hostapd.

You can try add second and third interface with
"iw dev xx interface add xx type __ap".


> # iw dev
> phy#0
> 	Interface wlp1s0_1
> 		ifindex 6
> 		wdev 0x4
> 		addr a2:42:d2:1e:89:a3
> 		type managed
> 		txpower 16.00 dBm
> 		multicast TXQ:
> 			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
> 			0	0	0	0	0	0	0	0		0
> 	Interface wlp1s0_0
> 		ifindex 5
> 		wdev 0x3
> 		addr 52:e9:be:33:6a:61
> 		ssid test-qe-wpa2-psk
> 		type AP
> 		channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
> 		txpower 14.00 dBm
> 		multicast TXQ:
> 			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
> 			0	0	0	0	0	0	0	0		0
> 	Interface wlp1s0
> 		ifindex 3
> 		wdev 0x1
> 		addr c8:94:02:b5:fe:fb
> 		type managed
> 		txpower 16.00 dBm
> 		multicast TXQ:
> 			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
> 			0	0	0	0	0	0	0	0		0
> Or even this with no AP up:
> # iw dev
> phy#0
> 	Interface wlp1s0_1
> 		ifindex 6
> 		wdev 0x4
> 		addr ca:e5:84:22:10:ec
> 		type managed
> 		txpower 16.00 dBm
> 		multicast TXQ:
> 			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
> 			0	0	0	0	0	0	0	0		0
> 	Interface wlp1s0_0
> 		ifindex 5
> 		wdev 0x3
> 		addr 9e:4e:c5:ea:4c:e9
> 		type AP
> 		txpower 16.00 dBm
> 		multicast TXQ:
> 			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
> 			0	0	0	0	0	0	0	0		0
> 	Interface wlp1s0
> 		ifindex 3
> 		wdev 0x1
> 		addr c8:94:02:b5:fe:fb
> 		type managed
> 		txpower 16.00 dBm
> 		multicast TXQ:
> 			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
> 			0	0	0	0	0	0	0	0		0
> 
> If I use the parameter to ignore the feature and configure the interface combination as before:
> # iw list | grep -A4 "valid interface combinations:"
> 	valid interface combinations:
> 		 * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
> 		   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }
> 
> 	HT Capability overrides:
> # iw dev
> phy#1
> 	Interface wlp1s0_1
> 		ifindex 7
> 		wdev 0x100000004
> 		addr 82:90:89:90:c1:37
> 		ssid test-qe-wpa3-psk
> 		type AP
> 		channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
> 		txpower 16.00 dBm
> 		multicast TXQ:
> 			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
> 			0	0	0	0	0	0	0	0		0
> 	Interface wlp1s0_0
> 		ifindex 6
> 		wdev 0x100000003
> 		addr 6a:ef:d0:db:10:f0
> 		ssid test-qe-wpa2-psk
> 		type AP
> 		channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
> 		txpower 16.00 dBm
> 		multicast TXQ:
> 			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
> 			0	0	0	0	0	0	0	0		0
> 	Interface wlp1s0
> 		ifindex 4
> 		wdev 0x100000001
> 		addr c8:94:02:b5:fe:fb
> 		type managed
> 		txpower 16.00 dBm
> 		multicast TXQ:
> 			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
> 			0	0	0	0	0	0	0	0		0
> 
> Thanks
> 
> Best regards
> Jose Ignacio
>
Jose Ignacio Tornos Martinez Dec. 3, 2024, 4:33 p.m. UTC | #6
> And you want setup sta + sap + sap, right?
Your proposed interface combination fails as well for me if I am just
setting 2APs.
> When up the second sap will meet error? Could you pls share the error
> logs?
This is the log that is appearing:
[   61.909165] 8021q: 802.1Q VLAN Support v1.8
[   62.227530] ath11k_pci 0000:01:00.0: failed to create vdev 3, reached max vdev limit 3
It is appearing after configuring both APs when only one AP is up and when
both are down (see my previous 'iw dev' outputs).

> I'm not very sure if you add all interface with managed type, and do
> "ifconfig xxx up" before running hostapd.
Yes, I am setting the link up before running hostapd.
>You can try add second and third interface with
> "iw dev xx interface add xx type __ap".
And yes, I am doing like that for both APs.
Please, take into account that everything is working with the old interface
configuration and when it is set with the parameter (no error log), but it
is not working for me with your interface combination.
Have you tried with 2.4GHz band?

Thanks

Best regards
Jose Ignacio
Yu Zhang (Yuriy) Dec. 4, 2024, 3:21 a.m. UTC | #7
On 12/4/2024 12:33 AM, Jose Ignacio Tornos Martinez wrote:
>> And you want setup sta + sap + sap, right?
> Your proposed interface combination fails as well for me if I am just
> setting 2APs.
>> When up the second sap will meet error? Could you pls share the error
>> logs?
> This is the log that is appearing:
> [   61.909165] 8021q: 802.1Q VLAN Support v1.8
> [   62.227530] ath11k_pci 0000:01:00.0: failed to create vdev 3, reached max vdev limit 3
> It is appearing after configuring both APs when only one AP is up and when
> both are down (see my previous 'iw dev' outputs).
> 
>> I'm not very sure if you add all interface with managed type, and do
>> "ifconfig xxx up" before running hostapd.
> Yes, I am setting the link up before running hostapd.
>> You can try add second and third interface with
>> "iw dev xx interface add xx type __ap".
> And yes, I am doing like that for both APs.
Pls try add interface with type __ap or directly use hostapd up the ap 
interfaces that will re-type managed to ap.

> Please, take into account that everything is working with the old interface
> configuration and when it is set with the parameter (no error log), but it
> is not working for me with your interface combination.
f019f4dff2e4 ("wifi: ath11k: support 2 station interfaces") update about 
interface combination limits.

If chip support DBS, station interfaces max is 2 that why you can't up 
the 3rd managed type interface. You better add interface with ap type.

> Have you tried with 2.4GHz band?
> 
2.4GHz works fine also.
sh-5.1# iw dev
phy#0
         Interface wlan2
                 ifindex 6
                 wdev 0x3
                 addr 12:03:7f:21:84:11
                 ssid QSoftAP2
                 type AP
                 channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
                 txpower 5.00 dBm
                 multicast TXQ:
                         qsz-byt qsz-pkt flows   drops   marks   overlmt 
hashcol tx-bytes        tx-packets
                         0       0       0       0       0       0 
0       0               0
         Interface wlan1
                 ifindex 5
                 wdev 0x2
                 addr 02:03:7f:21:84:11
                 ssid QSoftAP1
                 type AP
                 channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
                 txpower 18.00 dBm
                 multicast TXQ:
                         qsz-byt qsz-pkt flows   drops   marks   overlmt 
hashcol tx-bytes        tx-packets
                         0       0       0       0       0       0 
0       0               0
         Interface wlan0
                 ifindex 4
                 wdev 0x1
                 addr 00:03:7f:21:84:11
                 type managed
                 txpower 5.00 dBm
                 multicast TXQ:
                         qsz-byt qsz-pkt flows   drops   marks   overlmt 
hashcol tx-bytes        tx-packets
                         0       0       0       0       0       0 
0       0               0

> Thanks
> 
> Best regards
> Jose Ignacio
>
Jose Ignacio Tornos Martinez Dec. 4, 2024, 7:51 a.m. UTC | #8
> Pls try add interface with type __ap or directly use hostapd up the ap 
> interfaces that will re-type managed to ap.
This is what I am doing.

> f019f4dff2e4 ("wifi: ath11k: support 2 station interfaces") update about 
> interface combination limits.
My patch by means of a parameter allows to come back to the original
interface combination (before f019f4dff2e4 and not the current one that
you comment), so as I commented, this is the interface combination that 
I am finally using to setup the two APs:
# iw list | grep -A4 "valid interface combinations:"
 	valid interface combinations:
 		 * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
 		   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }
 
 	HT Capability overrides:
And I repeat that with that, my setup is working (no error log).

> If chip support DBS, station interfaces max is 2 that why you can't up 
> the 3rd managed type interface. You better add interface with ap type.
Ok, but as I commented this is what I am doing.
Just to clarify, only with your proposed interface combination I am getting
problems with a 3rd managed type interface.

> 2.4GHz works fine also.
That is great.

Ok, at this point, as I need my setup, in order to allow me to debug and
get the differences, could you share how you are configuring the two APs to
test and debug here?

Thanks

Best regards
Jose Ignacio
Jose Ignacio Tornos Martinez Dec. 4, 2024, 8:30 a.m. UTC | #9
I can share mine too if you want.

Thanks

Best regards
Jose Ignacio
Yu Zhang (Yuriy) Dec. 4, 2024, 9:18 a.m. UTC | #10
On 12/4/2024 3:51 PM, Jose Ignacio Tornos Martinez wrote:
>> Pls try add interface with type __ap or directly use hostapd up the ap
>> interfaces that will re-type managed to ap.
> This is what I am doing.
But I see your interfaces all be added with managed, right?
> 
>> f019f4dff2e4 ("wifi: ath11k: support 2 station interfaces") update about
>> interface combination limits.
> My patch by means of a parameter allows to come back to the original
> interface combination (before f019f4dff2e4 and not the current one that
> you comment), so as I commented, this is the interface combination that
> I am finally using to setup the two APs:
> # iw list | grep -A4 "valid interface combinations:"
>   	valid interface combinations:
>   		 * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
>   		   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }
>   
>   	HT Capability overrides:
> And I repeat that with that, my setup is working (no error log).
> 
>> If chip support DBS, station interfaces max is 2 that why you can't up
>> the 3rd managed type interface. You better add interface with ap type.
> Ok, but as I commented this is what I am doing.
> Just to clarify, only with your proposed interface combination I am getting
> problems with a 3rd managed type interface.
> 
>> 2.4GHz works fine also.
> That is great.
> 
> Ok, at this point, as I need my setup, in order to allow me to debug and
> get the differences, could you share how you are configuring the two APs to
> test and debug here?
> 
sure.

apply f019f4dff2e4 ("wifi: ath11k: support 2 station interfaces")
apply 
https://lore.kernel.org/all/20241127022742.4016870-1-quic_yuzha@quicinc.com/

Test steps:
1. add interface
#iw dev wlan0 interface add wlan1 type __ap
#iw dev wlan0 interface add wlan2 type __ap

2.run hostapd
#hostapd hostapd1.conf &
#hostapd hostapd2.conf &

refer hostapd.conf:
---
interface=wlan1
driver=nl80211
ssid=QSoftAP1
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP
---
> Thanks
> 
> Best regards
> Jose Ignacio
>
Jose Ignacio Tornos Martinez Dec. 5, 2024, 11:07 a.m. UTC | #11
> But I see your interfaces all be added with managed, right?
Yes

> Test steps:
> ...
Ok, I am using a bridge with the AP interfaces in addition but it is
the same.
Indeed I have tested in the same way as you too (even using your
hostapd.conf with the suitable name for the interfaces).
So I have started to debug (current upstream linux +
https://lore.kernel.org/all/20241127022742.4016870-1-quic_yuzha@quicinc.com/ +
dump_stack() in ath11k_mac_op_add_interface, enabling ath11k_dbg),
let me show you this:
[    5.703295] ath11k_pci 0000:01:00.0: vdev a2:d8:da:c5:7b:79 created, vdev_id 0
[    5.703304] CPU: 4 UID: 0 PID: 945 Comm: NetworkManager Tainted: G        W          6.12.0+ #104
[    5.703315] Tainted: [W]=WARN
[    5.703317] Hardware name: ASUS System Product Name/PRIME B660-PLUS D4, BIOS 1620 08/12/2022
[    5.703320] Call Trace:
[    5.703325]  <TASK>
[    5.703330]  dump_stack_lvl+0x5d/0x80
[    5.703344]  ath11k_mac_op_add_interface.cold+0x4ed/0xa92 [ath11k]
[    5.703399]  drv_add_interface+0x4f/0x230 [mac80211]
[    5.703512]  ieee80211_do_open+0x4b3/0x770 [mac80211]
[    5.703669]  ieee80211_open+0x8a/0x90 [mac80211]
...
[    5.804755] ath11k_pci 0000:01:00.0: vdev c8:94:02:b5:fe:fb created, vdev_id 1
[    5.804759] CPU: 1 UID: 0 PID: 1011 Comm: wpa_supplicant Tainted: G        W          6.12.0+ #104
[    5.804763] Tainted: [W]=WARN
[    5.804765] Hardware name: ASUS System Product Name/PRIME B660-PLUS D4, BIOS 1620 08/12/2022
[    5.804766] Call Trace:
[    5.804770]  <TASK>
[    5.804773]  dump_stack_lvl+0x5d/0x80
[    5.804783]  ath11k_mac_op_add_interface.cold+0x4ed/0xa92 [ath11k]
[    5.804809]  drv_add_interface+0x4f/0x230 [mac80211]
[    5.804868]  ieee80211_do_open+0x4b3/0x770 [mac80211]
[    5.804934]  nl80211_start_p2p_device+0x8b/0x160 [cfg80211]
...
So, since the normal sta interface and p2p interface are initialized,
with your proposed interface combination, only one AP interface can be
added for me (vdev limit is 3).
I like your idea to have a common interface combination set for everything,
but I think it is not possible here.
My patch with the new parameter at least allow to select what to do, dual
stations support or APs support for all the cases.

Thanks

Best regards
Jose Ignacio
Yu Zhang (Yuriy) Dec. 6, 2024, 2:24 a.m. UTC | #12
On 12/5/2024 7:07 PM, Jose Ignacio Tornos Martinez wrote:
>> But I see your interfaces all be added with managed, right?
> Yes
> 
My point is that you can try setup with ap type interface, now 
combination limits not allow up 3 inferfaces with managed interface.
>> Test steps:
>> ...
> Ok, I am using a bridge with the AP interfaces in addition but it is
> the same.
> Indeed I have tested in the same way as you too (even using your
> hostapd.conf with the suitable name for the interfaces).
> So I have started to debug (current upstream linux +
> https://lore.kernel.org/all/20241127022742.4016870-1-quic_yuzha@quicinc.com/ +
> dump_stack() in ath11k_mac_op_add_interface, enabling ath11k_dbg),
> let me show you this:
> [    5.703295] ath11k_pci 0000:01:00.0: vdev a2:d8:da:c5:7b:79 created, vdev_id 0
> [    5.703304] CPU: 4 UID: 0 PID: 945 Comm: NetworkManager Tainted: G        W          6.12.0+ #104
> [    5.703315] Tainted: [W]=WARN
> [    5.703317] Hardware name: ASUS System Product Name/PRIME B660-PLUS D4, BIOS 1620 08/12/2022
> [    5.703320] Call Trace:
> [    5.703325]  <TASK>
> [    5.703330]  dump_stack_lvl+0x5d/0x80
> [    5.703344]  ath11k_mac_op_add_interface.cold+0x4ed/0xa92 [ath11k]
> [    5.703399]  drv_add_interface+0x4f/0x230 [mac80211]
> [    5.703512]  ieee80211_do_open+0x4b3/0x770 [mac80211]
> [    5.703669]  ieee80211_open+0x8a/0x90 [mac80211]
> ...
> [    5.804755] ath11k_pci 0000:01:00.0: vdev c8:94:02:b5:fe:fb created, vdev_id 1
> [    5.804759] CPU: 1 UID: 0 PID: 1011 Comm: wpa_supplicant Tainted: G        W          6.12.0+ #104
> [    5.804763] Tainted: [W]=WARN
> [    5.804765] Hardware name: ASUS System Product Name/PRIME B660-PLUS D4, BIOS 1620 08/12/2022
> [    5.804766] Call Trace:
> [    5.804770]  <TASK>
> [    5.804773]  dump_stack_lvl+0x5d/0x80
> [    5.804783]  ath11k_mac_op_add_interface.cold+0x4ed/0xa92 [ath11k]
> [    5.804809]  drv_add_interface+0x4f/0x230 [mac80211]
> [    5.804868]  ieee80211_do_open+0x4b3/0x770 [mac80211]
> [    5.804934]  nl80211_start_p2p_device+0x8b/0x160 [cfg80211]
> ...
> So, since the normal sta interface and p2p interface are initialized,
> with your proposed interface combination, only one AP interface can be
> added for me (vdev limit is 3).
> I like your idea to have a common interface combination set for everything,
> but I think it is not possible here.
> My patch with the new parameter at least allow to select what to do, dual
> stations support or APs support for all the cases.
> 
> Thanks
> 
> Best regards
> Jose Ignacio
>
Jose Ignacio Tornos Martinez Dec. 8, 2024, 12:13 p.m. UTC | #13
>My point is that you can try setup with ap type interface,
This is what I am doing!
> now combination limits not allow up 3 inferfaces with managed interface.
Why? The limits were bigger previously.
Why cannot allow the old configuration (previous to the commit f019f4dff2e4
("wifi: ath11k: support 2 station interfaces"a))?
In another way, your proposed configuration is limited for me.

Thanks

Best regards
Jose Ignacio
Yu Zhang (Yuriy) Dec. 9, 2024, 2:29 a.m. UTC | #14
On 12/8/2024 8:13 PM, Jose Ignacio Tornos Martinez wrote:
>> My point is that you can try setup with ap type interface,
> This is what I am doing!
So you can't up with ap type or can't up with managed interface?
>> now combination limits not allow up 3 inferfaces with managed interface.
> Why? The limits were bigger previously.
> Why cannot allow the old configuration (previous to the commit f019f4dff2e4
> ("wifi: ath11k: support 2 station interfaces"a))?
> In another way, your proposed configuration is limited for me.
> 
> Thanks
> 
> Best regards
> Jose Ignacio
>
Jose Ignacio Tornos Martinez Dec. 9, 2024, 8:03 a.m. UTC | #15
> So you can't up with ap type or can't up with managed interface?
Please, let's go to focus and not repeat the same, due to the reasons
that I commented before, I can't up my scenario with aps using your
proposed inteface configuration.
I am going to remark again, I can do it with the old configuration
previous to the commit f019f4dff2e4 ("wifi: ath11k: support 2 station
interfaces").
Thanks to my patch after 019f4dff2e4 ("wifi: ath11k: support 2 station
interfaces") by means of a parameter I can do it too.
And that's all.

Thanks

Best regards
Jose Ignacio
Yu Zhang (Yuriy) Dec. 9, 2024, 8:33 a.m. UTC | #16
On 12/9/2024 4:03 PM, Jose Ignacio Tornos Martinez wrote:
>> So you can't up with ap type or can't up with managed interface?
> Please, let's go to focus and not repeat the same, due to the reasons
> that I commented before, I can't up my scenario with aps using your
> proposed inteface configuration.
Yes, Can you pls share the complete steps and commands?
> I am going to remark again, I can do it with the old configuration
> previous to the commit f019f4dff2e4 ("wifi: ath11k: support 2 station
> interfaces").
> Thanks to my patch after 019f4dff2e4 ("wifi: ath11k: support 2 station
> interfaces") by means of a parameter I can do it too.
> And that's all.
> 
> Thanks
> 
> Best regards
> Jose Ignacio
>
Janusz Dziedzic Dec. 9, 2024, 11:23 a.m. UTC | #17
wt., 3 gru 2024 o 11:57 Yu Zhang (Yuriy) <quic_yuzha@quicinc.com> napisał(a):
>
>
>
> On 12/3/2024 5:48 PM, Jose Ignacio Tornos Martinez wrote:
> >> Which chip do you use?
> > Since I am not totally sure about the useful information, let me show you
> > the kernel logs:
> > $ dmesg | grep ath11k
> > [    3.659388] ath11k_pci 0000:01:00.0: BAR 0 [mem 0x84200000-0x843fffff 64bit]: assigned
> > [    3.659405] ath11k_pci 0000:01:00.0: enabling device (0000 -> 0002)
> > [    3.659649] ath11k_pci 0000:01:00.0: MSI vectors: 32
> > [    3.659653] ath11k_pci 0000:01:00.0: wcn6855 hw2.1
> > [    4.871571] ath11k_pci 0000:01:00.0: chip_id 0x2 chip_family 0xb board_id 0xff soc_id 0x400c0210
> > [    4.871586] ath11k_pci 0000:01:00.0: fw_version 0x11088c35 fw_build_timestamp 2024-04-17 08:34 fw_build_id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
> > [    5.241485] ath11k_pci 0000:01:00.0 wlp1s0: renamed from wlan0
> >
> yes, you also use wcn6855 hw2.1.
> > If I try to setup 2 APs with your interface combination I get this:
> > # iw list | grep -A6 "valid interface combinations:"
> >       valid interface combinations:
> >                * #{ managed } <= 2, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
> >                  total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz, 80+80 MHz, 160 MHz }
> >
> >                * #{ managed } <= 2, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
> >                  total <= 3, #channels <= 2, STA/AP BI must match
> >       HT Capability overrides:
> 2 combinations are to support DBS and DFS.
> Combinations is correct. channels=2, max interfaces=3.
>
Small question from my side. If phyX will support 3 bands (2.4/5/6)
what this channes<=2 limitation mean here for APs?
 a) can I setup APs on 2412 and 5180
 b) or even can setup APs on 2412 and 2462?
 c) or setup APs on 5180 and 6055?
How could I know a or b or c is allowed?

BTW, do you plan to share same firmware (with 2 possible APs) for
ath12k and WCN7850?

BR
Janusz

> And you want setup sta + sap + sap, right?
> When up the second sap will meet error? Could you pls share the error logs?
>
> I'm not very sure if you add all interface with managed type, and do
> "ifconfig xxx up" before running hostapd.
>
> You can try add second and third interface with
> "iw dev xx interface add xx type __ap".
>
>
> > # iw dev
> > phy#0
> >       Interface wlp1s0_1
> >               ifindex 6
> >               wdev 0x4
> >               addr a2:42:d2:1e:89:a3
> >               type managed
> >               txpower 16.00 dBm
> >               multicast TXQ:
> >                       qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
> >                       0       0       0       0       0       0       0       0               0
> >       Interface wlp1s0_0
> >               ifindex 5
> >               wdev 0x3
> >               addr 52:e9:be:33:6a:61
> >               ssid test-qe-wpa2-psk
> >               type AP
> >               channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
> >               txpower 14.00 dBm
> >               multicast TXQ:
> >                       qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
> >                       0       0       0       0       0       0       0       0               0
> >       Interface wlp1s0
> >               ifindex 3
> >               wdev 0x1
> >               addr c8:94:02:b5:fe:fb
> >               type managed
> >               txpower 16.00 dBm
> >               multicast TXQ:
> >                       qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
> >                       0       0       0       0       0       0       0       0               0
> > Or even this with no AP up:
> > # iw dev
> > phy#0
> >       Interface wlp1s0_1
> >               ifindex 6
> >               wdev 0x4
> >               addr ca:e5:84:22:10:ec
> >               type managed
> >               txpower 16.00 dBm
> >               multicast TXQ:
> >                       qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
> >                       0       0       0       0       0       0       0       0               0
> >       Interface wlp1s0_0
> >               ifindex 5
> >               wdev 0x3
> >               addr 9e:4e:c5:ea:4c:e9
> >               type AP
> >               txpower 16.00 dBm
> >               multicast TXQ:
> >                       qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
> >                       0       0       0       0       0       0       0       0               0
> >       Interface wlp1s0
> >               ifindex 3
> >               wdev 0x1
> >               addr c8:94:02:b5:fe:fb
> >               type managed
> >               txpower 16.00 dBm
> >               multicast TXQ:
> >                       qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
> >                       0       0       0       0       0       0       0       0               0
> >
> > If I use the parameter to ignore the feature and configure the interface combination as before:
> > # iw list | grep -A4 "valid interface combinations:"
> >       valid interface combinations:
> >                * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
> >                  total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }
> >
> >       HT Capability overrides:
> > # iw dev
> > phy#1
> >       Interface wlp1s0_1
> >               ifindex 7
> >               wdev 0x100000004
> >               addr 82:90:89:90:c1:37
> >               ssid test-qe-wpa3-psk
> >               type AP
> >               channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
> >               txpower 16.00 dBm
> >               multicast TXQ:
> >                       qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
> >                       0       0       0       0       0       0       0       0               0
> >       Interface wlp1s0_0
> >               ifindex 6
> >               wdev 0x100000003
> >               addr 6a:ef:d0:db:10:f0
> >               ssid test-qe-wpa2-psk
> >               type AP
> >               channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
> >               txpower 16.00 dBm
> >               multicast TXQ:
> >                       qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
> >                       0       0       0       0       0       0       0       0               0
> >       Interface wlp1s0
> >               ifindex 4
> >               wdev 0x100000001
> >               addr c8:94:02:b5:fe:fb
> >               type managed
> >               txpower 16.00 dBm
> >               multicast TXQ:
> >                       qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
> >                       0       0       0       0       0       0       0       0               0
> >
> > Thanks
> >
> > Best regards
> > Jose Ignacio
> >
>
>
Yu Zhang (Yuriy) Dec. 10, 2024, 2:32 a.m. UTC | #18
On 12/9/2024 7:23 PM, Janusz Dziedzic wrote:
> wt., 3 gru 2024 o 11:57 Yu Zhang (Yuriy) <quic_yuzha@quicinc.com> napisał(a):
>>
>>
>>
>> On 12/3/2024 5:48 PM, Jose Ignacio Tornos Martinez wrote:
>>>> Which chip do you use?
>>> Since I am not totally sure about the useful information, let me show you
>>> the kernel logs:
>>> $ dmesg | grep ath11k
>>> [    3.659388] ath11k_pci 0000:01:00.0: BAR 0 [mem 0x84200000-0x843fffff 64bit]: assigned
>>> [    3.659405] ath11k_pci 0000:01:00.0: enabling device (0000 -> 0002)
>>> [    3.659649] ath11k_pci 0000:01:00.0: MSI vectors: 32
>>> [    3.659653] ath11k_pci 0000:01:00.0: wcn6855 hw2.1
>>> [    4.871571] ath11k_pci 0000:01:00.0: chip_id 0x2 chip_family 0xb board_id 0xff soc_id 0x400c0210
>>> [    4.871586] ath11k_pci 0000:01:00.0: fw_version 0x11088c35 fw_build_timestamp 2024-04-17 08:34 fw_build_id WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
>>> [    5.241485] ath11k_pci 0000:01:00.0 wlp1s0: renamed from wlan0
>>>
>> yes, you also use wcn6855 hw2.1.
>>> If I try to setup 2 APs with your interface combination I get this:
>>> # iw list | grep -A6 "valid interface combinations:"
>>>        valid interface combinations:
>>>                 * #{ managed } <= 2, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
>>>                   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz, 80+80 MHz, 160 MHz }
>>>
>>>                 * #{ managed } <= 2, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
>>>                   total <= 3, #channels <= 2, STA/AP BI must match
>>>        HT Capability overrides:
>> 2 combinations are to support DBS and DFS.
>> Combinations is correct. channels=2, max interfaces=3.
>>
> Small question from my side. If phyX will support 3 bands (2.4/5/6)
> what this channes<=2 limitation mean here for APs?
>   a) can I setup APs on 2412 and 5180
>   b) or even can setup APs on 2412 and 2462?
>   c) or setup APs on 5180 and 6055?
> How could I know a or b or c is allowed?
> 
all allowed, but recommend more 2.4g + 5g and 2.4g + 6g.
> BTW, do you plan to share same firmware (with 2 possible APs) for
> ath12k and WCN7850?
> 
WCN7850 use different firmware, when ath11k done will plan about ath12k 
about it.

And by the way, if you try in ath11k with 2 aps?
> BR
> Janusz
> 
>> And you want setup sta + sap + sap, right?
>> When up the second sap will meet error? Could you pls share the error logs?
>>
>> I'm not very sure if you add all interface with managed type, and do
>> "ifconfig xxx up" before running hostapd.
>>
>> You can try add second and third interface with
>> "iw dev xx interface add xx type __ap".
>>
>>
>>> # iw dev
>>> phy#0
>>>        Interface wlp1s0_1
>>>                ifindex 6
>>>                wdev 0x4
>>>                addr a2:42:d2:1e:89:a3
>>>                type managed
>>>                txpower 16.00 dBm
>>>                multicast TXQ:
>>>                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
>>>                        0       0       0       0       0       0       0       0               0
>>>        Interface wlp1s0_0
>>>                ifindex 5
>>>                wdev 0x3
>>>                addr 52:e9:be:33:6a:61
>>>                ssid test-qe-wpa2-psk
>>>                type AP
>>>                channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
>>>                txpower 14.00 dBm
>>>                multicast TXQ:
>>>                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
>>>                        0       0       0       0       0       0       0       0               0
>>>        Interface wlp1s0
>>>                ifindex 3
>>>                wdev 0x1
>>>                addr c8:94:02:b5:fe:fb
>>>                type managed
>>>                txpower 16.00 dBm
>>>                multicast TXQ:
>>>                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
>>>                        0       0       0       0       0       0       0       0               0
>>> Or even this with no AP up:
>>> # iw dev
>>> phy#0
>>>        Interface wlp1s0_1
>>>                ifindex 6
>>>                wdev 0x4
>>>                addr ca:e5:84:22:10:ec
>>>                type managed
>>>                txpower 16.00 dBm
>>>                multicast TXQ:
>>>                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
>>>                        0       0       0       0       0       0       0       0               0
>>>        Interface wlp1s0_0
>>>                ifindex 5
>>>                wdev 0x3
>>>                addr 9e:4e:c5:ea:4c:e9
>>>                type AP
>>>                txpower 16.00 dBm
>>>                multicast TXQ:
>>>                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
>>>                        0       0       0       0       0       0       0       0               0
>>>        Interface wlp1s0
>>>                ifindex 3
>>>                wdev 0x1
>>>                addr c8:94:02:b5:fe:fb
>>>                type managed
>>>                txpower 16.00 dBm
>>>                multicast TXQ:
>>>                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
>>>                        0       0       0       0       0       0       0       0               0
>>>
>>> If I use the parameter to ignore the feature and configure the interface combination as before:
>>> # iw list | grep -A4 "valid interface combinations:"
>>>        valid interface combinations:
>>>                 * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 16, #{ P2P-device } <= 1,
>>>                   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }
>>>
>>>        HT Capability overrides:
>>> # iw dev
>>> phy#1
>>>        Interface wlp1s0_1
>>>                ifindex 7
>>>                wdev 0x100000004
>>>                addr 82:90:89:90:c1:37
>>>                ssid test-qe-wpa3-psk
>>>                type AP
>>>                channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
>>>                txpower 16.00 dBm
>>>                multicast TXQ:
>>>                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
>>>                        0       0       0       0       0       0       0       0               0
>>>        Interface wlp1s0_0
>>>                ifindex 6
>>>                wdev 0x100000003
>>>                addr 6a:ef:d0:db:10:f0
>>>                ssid test-qe-wpa2-psk
>>>                type AP
>>>                channel 13 (2472 MHz), width: 20 MHz, center1: 2472 MHz
>>>                txpower 16.00 dBm
>>>                multicast TXQ:
>>>                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
>>>                        0       0       0       0       0       0       0       0               0
>>>        Interface wlp1s0
>>>                ifindex 4
>>>                wdev 0x100000001
>>>                addr c8:94:02:b5:fe:fb
>>>                type managed
>>>                txpower 16.00 dBm
>>>                multicast TXQ:
>>>                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
>>>                        0       0       0       0       0       0       0       0               0
>>>
>>> Thanks
>>>
>>> Best regards
>>> Jose Ignacio
>>>
>>
>>
> 
>
Jose Ignacio Tornos Martinez Dec. 10, 2024, 8:44 a.m. UTC | #19
> Yes, Can you pls share the complete steps and commands?
Sure, I offered it before.

You need NetworkManager and of course NetworkManager-wifi packages installed
and working.
We are using Fedora/rhel with the default configuration and you can configure,
before the next steps, the wifi interface as sta from NetworkManager or not
(with no wifi configuration the same result happens) because it is going to
be unmanaged.

After booting (wlp1s0 is the wifi interface for ath11k and there are no other
wifi cards in the system), here the necessary steps with our network
configuration:
# nmcli  device set wlp1s0 managed off
# ip link set wlp1s0 up
# ip link add name wifi_br0 type bridge
# ip addr add 192.168.254.1/24 dev wifi_br0
# ip link set wifi_br0 up
# iw dev wlp1s0 interface add wlp1s0_0 type __ap
# iw dev wlp1s0 interface add wlp1s0_1 type __ap
# systemd-run --unit hostapd1 hostapd -dd /tmp/hostapd1.conf
# systemd-run --unit hostapd2 hostapd -dd /tmp/hostapd2.conf
# dnsmasq \
    --pid-file=/tmp/dnsmasq_wireless.pid \
    --port=63 \
    --no-hosts \
    --interface=wifi_br0 \
    --bind-interfaces \
    --dhcp-range=192.168.254.2,192.168.254.205,60m \
    --dhcp-option=option:router,192.168.254.1 \
    --dhcp-leasefile=/var/lib/dnsmasq/hostapd.leases \
    --dhcp-lease-max=200

After booting I get the same issue just doing:
# nmcli  device set wlp1s0 managed off
# ip link set wlp1s0 up
And the step that you commented in a previous answer:
# iw dev wlp1s0 interface add wlp1s0_0 type __ap
# iw dev wlp1s0 interface add wlp1s0_1 type __ap
# hostapd hostapd1.conf &
# hostapd hostapd2.conf &

You can use whatever hostapd configuration (with the suitable interface name).

Thanks

Best regards
Jose Ignacio
Yu Zhang (Yuriy) Dec. 11, 2024, 2:10 a.m. UTC | #20
On 12/10/2024 4:44 PM, Jose Ignacio Tornos Martinez wrote:
>> Yes, Can you pls share the complete steps and commands?
> Sure, I offered it before.
> 
> You need NetworkManager and of course NetworkManager-wifi packages installed
> and working.
> We are using Fedora/rhel with the default configuration and you can configure,
> before the next steps, the wifi interface as sta from NetworkManager or not
> (with no wifi configuration the same result happens) because it is going to
> be unmanaged.
> 
> After booting (wlp1s0 is the wifi interface for ath11k and there are no other
> wifi cards in the system), here the necessary steps with our network
> configuration:
> # nmcli  device set wlp1s0 managed off
> # ip link set wlp1s0 up
> # ip link add name wifi_br0 type bridge
> # ip addr add 192.168.254.1/24 dev wifi_br0
> # ip link set wifi_br0 up
> # iw dev wlp1s0 interface add wlp1s0_0 type __ap
> # iw dev wlp1s0 interface add wlp1s0_1 type __ap
> # systemd-run --unit hostapd1 hostapd -dd /tmp/hostapd1.conf
> # systemd-run --unit hostapd2 hostapd -dd /tmp/hostapd2.conf
> # dnsmasq \
>      --pid-file=/tmp/dnsmasq_wireless.pid \
>      --port=63 \
>      --no-hosts \
>      --interface=wifi_br0 \
>      --bind-interfaces \
>      --dhcp-range=192.168.254.2,192.168.254.205,60m \
>      --dhcp-option=option:router,192.168.254.1 \
>      --dhcp-leasefile=/var/lib/dnsmasq/hostapd.leases \
>      --dhcp-lease-max=200
> 
> After booting I get the same issue just doing:
> # nmcli  device set wlp1s0 managed off
> # ip link set wlp1s0 up
> And the step that you commented in a previous answer:
> # iw dev wlp1s0 interface add wlp1s0_0 type __ap
> # iw dev wlp1s0 interface add wlp1s0_1 type __ap
> # hostapd hostapd1.conf &
> # hostapd hostapd2.conf &
> 
Got it, you use Networkmanager, so that the add interface type will 
always be managed. But it's still work fine in my device that I use 
"hostapd hostapd2.conf" to up the second ap.

So could you share your log about it? Enable debug and tracer about 
ath11k and mac80211, and share the the recorded trace?

> You can use whatever hostapd configuration (with the suitable interface name).
> 
> Thanks
> 
> Best regards
> Jose Ignacio
>
Jose Ignacio Tornos Martinez Dec. 11, 2024, 5:41 p.m. UTC | #21
> Got it, you use Networkmanager, so that the add interface type will
> always be managed. But it's still work fine in my device that I use
> "hostapd hostapd2.conf" to up the second ap.
Yes, it works for you because you don't have a manager and/or your initial
situation was clean and/or without other needs/services.

For us it was enough to be able to come back to the initial interface
combination, but it seems that you prefer to have a common configuration
for everything.
So, since I think it is your final intention, please, go ahead with your
proposed interface combination and then I will debug myself to try complete
and/or reuse in some way.

Thanks

Best regards
Jose Ignacio
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
index be67382c00f6..55c7a55d85ff 100644
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -37,6 +37,12 @@  bool ath11k_ftm_mode;
 module_param_named(ftm_mode, ath11k_ftm_mode, bool, 0444);
 MODULE_PARM_DESC(ftm_mode, "Boots up in factory test mode");
 
+static bool ath11k_ignore_support_dual_stations;
+module_param_named(ignore_support_dual_stations,
+		   ath11k_ignore_support_dual_stations, bool, 0644);
+MODULE_PARM_DESC(ignore_support_dual_stations,
+		 "Ignore the support for dual stations to support other combinations");
+
 static const struct ath11k_hw_params ath11k_hw_params[] = {
 	{
 		.hw_rev = ATH11K_HW_IPQ8074,
@@ -2162,6 +2168,9 @@  static int ath11k_init_hw_params(struct ath11k_base *ab)
 	}
 
 	ab->hw_params = *hw_params;
+	if (ab->hw_params.support_dual_stations &&
+	    ath11k_ignore_support_dual_stations)
+		ab->hw_params.support_dual_stations  = false;
 
 	ath11k_info(ab, "%s\n", ab->hw_params.name);