newracom / nrc7292_sw_pkg

NRC7292 Software Package for Host mode (Linux OS)
http://www.newracom.com/product
GNU General Public License v2.0
58 stars 27 forks source link

STA waiting for IP #84

Open tpacini opened 7 months ago

tpacini commented 7 months ago

I have two Raspberry Pi 4 Model B (STA and AP) with Raspbian OS (32 bit) installed, connected to the Wi-Fi HaLow AHPI7292SA boards. I followed the guide and, after replacing the file nrc7292_bd.dat with the one from issue #60 (to solve the target mismatch error), I ran the start.py script on AP:

pi@raspberrypi:~ $ ~/nrc_pkg/script/start.py 1 0 EU
Done.
Done.
------------------------------
Model            : 7292
STA Type         : AP
Country          : EU
Security Mode    : OPEN
BD Name          : nrc7292_bd.dat
AMPDU            : AUTO
Download FW      : uni_s1g.bin
MAX TX Power     : 24 dBm
BSS MAX IDLE     : 1800
Rate Control     : Consistent RC
Default MCS      : 2
------------------------------
NRC AP setting for HaLow...
[*] Set Max CPU Clock on RPi
1500000
1500000
1500000
1500000
Done
[0] Clear
Selected interface 'wlan0'
[1] Copy and Set Module Parameters
total 688
drwxr-xr-x 2 pi   pi     4096 Jan 28 17:30 .
drwxr-xr-x 4 pi   pi     4096 Jan 28 17:27 ..
-rwxrwxrwx 1 pi   pi      271 Jan 28 17:27 copy
-rwxr-xr-x 1 pi   pi     2128 Jan 28 17:32 nrc7292_bd.dat
-rwxr-xr-x 1 pi   pi   342080 Jan 28 17:27 nrc7292_cspi.bin
-rwxr-xr-x 1 root root 342080 Feb  5 12:29 uni_s1g.bin
-rwxr-xr-x 1 root root 342080 Feb  5 12:29 /lib/firmware/uni_s1g.bin
====================================
 AP INTERFACE     : wlan0
 AP STATIC IP     : 192.168.200.1 
 NET MASK NUM     : 24 
====================================
Config for AP is done!
IP and DHCP config done
[2] Set Initial Country
[3] Loading module
sudo insmod /home/pi/nrc_pkg/sw/driver/nrc.ko  fw_name=uni_s1g.bin bss_max_idle=1800 ndp_preq=1 listen_interval=1000 bd_name=nrc7292_bd.dat ap_rc_mode=2 sta_rc_mode=2 ap_rc_default_mcs=2 sta_rc_default_mcs=2
[4] Set Maximum TX Power
Type     : limit    Tx power : 24
            OK
[*] Transmission Power Control(TPC) is activated
[5] Set guard interval: auto
[*] Start DHCPCD and DNSMASQ
[*] Self configuration off
[6] Start hostapd on wlan0
[*] configure file copied from: /home/pi/nrc_pkg/script/conf/EU/ap_halow_open.conf
[7] Start NAT
[8] ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.42.0.133  netmask 255.255.255.0  broadcast 10.42.0.255
        inet6 fe80::bd54:21ed:dab2:9ca6  prefixlen 64  scopeid 0x20<link>
        ether d8:3a:dd:66:b5:ab  txqueuelen 1000  (Ethernet)
        RX packets 13408  bytes 1000776 (977.3 KiB)
        RX errors 0  dropped 3283  overruns 0  frame 0
        TX packets 9524  bytes 1445931 (1.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 230  bytes 21896 (21.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 230  bytes 21896 (21.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:c0:ca:b4:0c:f8  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

HaLow AP ready
--------------------------------------------------------------------
Done.

I ran the start.py script on station:

pi@raspberrypi:~ $ ~/nrc_pkg/script/start.py 0 0 EU
Done.
Done.
------------------------------
Model            : 7292
STA Type         : STA
Country          : EU
Security Mode    : OPEN
BD Name          : nrc7292_bd.dat
AMPDU            : AUTO
CQM              : ON
Download FW      : uni_s1g.bin
MAX TX Power     : 24 dBm
BSS MAX IDLE     : 1800
Power Save Type  : Always On
Listen Interval  : 1000
Rate Control     : Consistent RC
Default MCS      : 2
------------------------------
NRC STA setting for HaLow...
[*] Set Max CPU Clock on RPi
1500000
1500000
1500000
1500000
Done
[0] Clear
[1] Copy and Set Module Parameters
total 688
drwxr-xr-x 2 pi   pi     4096 Jan 28 18:25 .
drwxr-xr-x 4 pi   pi     4096 Jan 28 18:21 ..
-rwxrwxrwx 1 pi   pi      271 Jan 28 18:21 copy
-rwxr-xr-x 1 pi   pi     2128 Jan 28 18:25 nrc7292_bd.dat
-rwxr-xr-x 1 pi   pi   342080 Jan 28 18:21 nrc7292_cspi.bin
-rwxr-xr-x 1 root root 342080 Feb  5 12:35 uni_s1g.bin
-rwxr-xr-x 1 root root 342080 Feb  5 12:35 /lib/firmware/uni_s1g.bin
====================================
 STA INTERFACE    : wlan0
 STA STATIC IP    : 192.168.200.11 
 NET MASK NUM     : 24 
 Default GW       : 192.168.200.1 
====================================
Config for STA is done!
IP and DHCP config done
[2] Set Initial Country
[3] Loading module
sudo insmod /home/pi/nrc_pkg/sw/driver/nrc.ko  fw_name=uni_s1g.bin bss_max_idle=1800 listen_interval=1000 bd_name=nrc7292_bd.dat ap_rc_mode=2 sta_rc_mode=2 ap_rc_default_mcs=2 sta_rc_default_mcs=2
[4] Set Maximum TX Power
Type     : limit    Tx power : 24
            OK
[*] Transmission Power Control(TPC) is activated
[5] Set guard interval: auto
[*] Start DHCPCD and DNSMASQ
[6] Start wpa_supplicant on wlan0
Successfully initialized wpa_supplicant
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
wlan0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=IT
wlan0: SME: Trying to authenticate with 00:c0:ca:b4:0c:f8 (SSID='halow_demo' freq=5180 MHz)
wlan0: Trying to associate with 00:c0:ca:b4:0c:f8 (SSID='halow_demo' freq=5180 MHz)
wlan0: Associated with 00:c0:ca:b4:0c:f8
wlan0: CTRL-EVENT-CONNECTED - Connection to 00:c0:ca:b4:0c:f8 completed [id=0 id_str=]
wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
[7] Connect and DHCP
Waiting for IP
Waiting for IP
Waiting for IP
Waiting for IP

But the station is stuck on "Waiting for IP" message. The only thing I noticed is that the AP has no IP address on wlan0 interface, so I assume the hostapd is not working somehow.

Debug messages of hostapd:

random: getrandom() support available
Configuration file: /home/pi/nrc_pkg/script/conf/temp_hostapd_config.conf
nl80211: Supported cipher 00-0f-ac:1
nl80211: Supported cipher 00-0f-ac:5
nl80211: Supported cipher 00-0f-ac:2
nl80211: Supported cipher 00-0f-ac:4
nl80211: Supported cipher 00-0f-ac:10
nl80211: Supported cipher 00-0f-ac:8
nl80211: Supported cipher 00-0f-ac:9
nl80211: Supported cipher 00-0f-ac:11
nl80211: Supported cipher 00-0f-ac:12
nl80211: Supported cipher 00-0f-ac:6
nl80211: Supports Probe Response offload in AP mode
nl80211: Using driver-based off-channel TX
nl80211: Driver-advertised extended capabilities (default) - hexdump(len=8): 00 00 00 00 00 00 00 40
nl80211: Driver-advertised extended capabilities mask (default) - hexdump(len=8): 00 00 00 00 00 00 00 40
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=6
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=0
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=1
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=2
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=3
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=4
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=5
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=222
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=7
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=8
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=9
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=10
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=11
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=12
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=13
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=14
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=15
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=16
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=17
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=18
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=19
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=20
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=21
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=22
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=23
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=24
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=25
nl80211: Supported vendor command: vendor_id=0xfcffaa subcmd=26
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=0
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=1
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=2
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=3
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=4
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=5
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=6
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=7
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=8
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=9
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=10
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=11
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=12
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=13
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=14
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=15
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=16
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=17
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=18
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=19
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=20
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=21
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=22
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=23
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=24
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=25
nl80211: Supported vendor event: vendor_id=0xfcffaa subcmd=26
nl80211: use P2P_DEVICE support
nl80211: key_mgmt=0x1ff0f enc=0x7ef auth=0x7 flags=0x4000511fbe3d8e0 rrm_flags=0x10 probe_resp_offloads=0x6 max_stations=0 max_remain_on_chan=1000 max_scan_ssids=2
nl80211: interface wlan0 in phy nrc80211
nl80211: Set mode ifindex 4 iftype 3 (AP)
nl80211: Setup AP(wlan0) - device_ap_sme=0 use_monitor=0
nl80211: Subscribe to mgmt frames with AP handle 0xb93fb0
nl80211: Register frame type=0xb0 (WLAN_FC_STYPE_AUTH) nl_handle=0xb93fb0 match= multicast=0
nl80211: Register frame type=0x0 (WLAN_FC_STYPE_ASSOC_REQ) nl_handle=0xb93fb0 match= multicast=0
nl80211: Register frame type=0x20 (WLAN_FC_STYPE_REASSOC_REQ) nl_handle=0xb93fb0 match= multicast=0
nl80211: Register frame type=0xa0 (WLAN_FC_STYPE_DISASSOC) nl_handle=0xb93fb0 match= multicast=0
nl80211: Register frame type=0xc0 (WLAN_FC_STYPE_DEAUTH) nl_handle=0xb93fb0 match= multicast=0
nl80211: Register frame type=0x40 (WLAN_FC_STYPE_PROBE_REQ) nl_handle=0xb93fb0 match= multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=04 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=0501 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=0503 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=0504 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=06 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=08 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=09 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=0a multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=11 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=12 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb93fb0 match=7f multicast=0
rfkill: initial event: idx=1 type=1 op=0 soft=0 hard=0
nl80211: Add own interface ifindex 4 (ifidx_reason -1)
nl80211: if_indices[16]: 4(-1)
nl80211: Do not open EAPOL RX socket - using control port for RX
phy: nrc80211
BSS count 1, BSSID mask 00:00:00:00:00:00 (0 bits)
Using existing control interface directory.
ctrl_iface bind(PF_UNIX) failed: Address already in use
ctrl_iface exists, but does not allow connections - assuming it was leftover from forced program termination
Successfully replaced leftover ctrl_iface socket '/var/run/hostapd/wlan0'
wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE
Previous country code DE, new country code DE 
nl80211: Regulatory information - country=DE (DFS-ETSI)
nl80211: 2400-2483 @ 40 MHz 20 mBm
nl80211: 5150-5250 @ 80 MHz 23 mBm (no outdoor)
nl80211: 5250-5350 @ 80 MHz 20 mBm (no outdoor) (DFS)
nl80211: 5470-5725 @ 160 MHz 26 mBm (DFS)
nl80211: 5725-5875 @ 80 MHz 13 mBm
nl80211: 5945-6425 @ 160 MHz 23 mBm (no outdoor)
nl80211: 57000-66000 @ 2160 MHz 40 mBm
nl80211: Added 802.11b mode based on 802.11g information
nl80211: Mode IEEE 802.11g: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 2484[DISABLED]
nl80211: Mode IEEE 802.11a: 5180 5185 5190 5195 5200 5205 5210 5215 5220 5225 5230 5235 5240 5260[RADAR] 5280[RADAR] 5300[RADAR] 5320[RADAR] 5500[RADAR] 5520[RADAR] 5540[RADAR] 5560[RADAR] 5580[RADAR] 5745 5750 5755 5760 5765
nl80211: Mode IEEE 802.11b: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 2484[DISABLED]
Allowed channel: mode=1 chan=1 freq=2412 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=2 freq=2417 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=3 freq=2422 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=4 freq=2427 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=5 freq=2432 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=6 freq=2437 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=7 freq=2442 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=8 freq=2447 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=9 freq=2452 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=10 freq=2457 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=11 freq=2462 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=12 freq=2467 MHz max_tx_power=20 dBm
Allowed channel: mode=1 chan=13 freq=2472 MHz max_tx_power=20 dBm
Allowed channel: mode=2 chan=36 freq=5180 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=37 freq=5185 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=38 freq=5190 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=39 freq=5195 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=40 freq=5200 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=41 freq=5205 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=42 freq=5210 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=43 freq=5215 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=44 freq=5220 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=45 freq=5225 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=46 freq=5230 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=47 freq=5235 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=48 freq=5240 MHz max_tx_power=23 dBm
Allowed channel: mode=2 chan=52 freq=5260 MHz max_tx_power=20 dBm (DFS state = usable)
Allowed channel: mode=2 chan=56 freq=5280 MHz max_tx_power=20 dBm (DFS state = usable)
Allowed channel: mode=2 chan=60 freq=5300 MHz max_tx_power=20 dBm (DFS state = usable)
Allowed channel: mode=2 chan=64 freq=5320 MHz max_tx_power=20 dBm (DFS state = usable)
Allowed channel: mode=2 chan=100 freq=5500 MHz max_tx_power=26 dBm (DFS state = usable)
Allowed channel: mode=2 chan=104 freq=5520 MHz max_tx_power=26 dBm (DFS state = usable)
Allowed channel: mode=2 chan=108 freq=5540 MHz max_tx_power=26 dBm (DFS state = usable)
Allowed channel: mode=2 chan=112 freq=5560 MHz max_tx_power=26 dBm (DFS state = usable)
Allowed channel: mode=2 chan=116 freq=5580 MHz max_tx_power=26 dBm (DFS state = usable)
Allowed channel: mode=2 chan=149 freq=5745 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=150 freq=5750 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=151 freq=5755 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=152 freq=5760 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=153 freq=5765 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=154 freq=5770 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=155 freq=5775 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=156 freq=5780 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=157 freq=5785 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=158 freq=5790 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=159 freq=5795 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=160 freq=5800 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=161 freq=5805 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=162 freq=5810 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=163 freq=5815 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=164 freq=5820 MHz max_tx_power=13 dBm
Allowed channel: mode=2 chan=165 freq=5825 MHz max_tx_power=13 dBm
Allowed channel: mode=0 chan=1 freq=2412 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=2 freq=2417 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=3 freq=2422 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=4 freq=2427 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=5 freq=2432 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=6 freq=2437 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=7 freq=2442 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=8 freq=2447 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=9 freq=2452 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=10 freq=2457 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=11 freq=2462 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=12 freq=2467 MHz max_tx_power=20 dBm
Allowed channel: mode=0 chan=13 freq=2472 MHz max_tx_power=20 dBm
DFS support is enabled
Completing interface initialization
Mode: IEEE 802.11a  Channel: 36  Frequency: 5180 MHz
DFS 0 channels required radar detection
nl80211: Set freq 5180 (ht_enabled=1, vht_enabled=0, he_enabled=0, bandwidth=20 MHz, cf1=5180 MHz, cf2=0 MHz)
  * freq=5180
  * he_enabled=0
  * vht_enabled=0
  * ht_enabled=1
  * sec_channel_offset=0
  * channel_type=1
RATE[0] rate=60 flags=0x1
RATE[1] rate=90 flags=0x0
RATE[2] rate=120 flags=0x1
RATE[3] rate=180 flags=0x0
RATE[4] rate=240 flags=0x1
RATE[5] rate=360 flags=0x0
RATE[6] rate=480 flags=0x0
RATE[7] rate=540 flags=0x0
hostapd_setup_bss(hapd=0xb8fd80 (wlan0), first=1)
nl80211: flush -> DEL_STATION wlan0 (all)
Using interface wlan0 with hwaddr 00:c0:ca:b4:0c:f8 and ssid "halow_demo"
nl80211: Set beacon (beacon_set=0)
nl80211: Beacon head - hexdump(len=61): 80 00 00 00 ff ff ff ff ff ff 00 c0 ca b4 0c f8 00 c0 ca b4 0c f8 00 00 00 00 00 00 00 00 00 00 64 00 01 00 00 0a 68 61 6c 6f 77 5f 64 65 6d 6f 01 08 8c 12 98 24 b0 48 60 6c 03 01 24
nl80211: Beacon tail - hexdump(len=194): 07 64 44 45 20 24 01 17 25 01 17 26 01 17 27 01 17 28 01 17 29 01 17 2a 01 17 2b 01 17 2c 01 17 2d 01 17 2e 01 17 2f 01 17 30 01 17 34 04 14 64 05 1a 95 01 0d 96 01 0d 97 01 0d 98 01 0d 99 01 0d 9a 01 0d 9b 01 0d 9c 01 0d 9d 01 0d 9e 01 0d 9f 01 0d a0 01 0d a1 01 0d a2 01 0d a3 01 0d a4 01 0d a5 01 0d 00 3b 02 73 00 2d 1a 0c 00 19 ff 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 3d 16 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7f 08 04 00 00 02 00 00 00 40 dd 18 00 50 f2 02 01 01 01 00 03 a4 00 00 27 a4 00 00 42 43 5e 00 62 32 2f 00
nl80211: ifindex=4
nl80211: beacon_int=100
nl80211: beacon_rate=0
nl80211: rate_type=0
nl80211: dtim_period=2
nl80211: ssid=halow_demo
  * beacon_int=100
  * dtim_period=2
nl80211: proberesp (offload) - hexdump(len=255): 50 00 00 00 00 00 00 00 00 00 00 c0 ca b4 0c f8 00 c0 ca b4 0c f8 00 00 00 00 00 00 00 00 00 00 64 00 01 00 00 0a 68 61 6c 6f 77 5f 64 65 6d 6f 01 08 8c 12 98 24 b0 48 60 6c 03 01 24 07 64 44 45 20 24 01 17 25 01 17 26 01 17 27 01 17 28 01 17 29 01 17 2a 01 17 2b 01 17 2c 01 17 2d 01 17 2e 01 17 2f 01 17 30 01 17 34 04 14 64 05 1a 95 01 0d 96 01 0d 97 01 0d 98 01 0d 99 01 0d 9a 01 0d 9b 01 0d 9c 01 0d 9d 01 0d 9e 01 0d 9f 01 0d a0 01 0d a1 01 0d a2 01 0d a3 01 0d a4 01 0d a5 01 0d 00 3b 02 73 00 2d 1a 0c 00 19 ff 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 3d 16 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7f 08 04 00 00 02 00 00 00 40 dd 18 00 50 f2 02 01 01 01 00 03 a4 00 00 27 a4 00 00 42 43 5e 00 62 32 2f 00
nl80211: hidden SSID not in use
nl80211: privacy=0
nl80211: auth_algs=0x3
nl80211: wpa_version=0x0
nl80211: key_mgmt_suites=0x4
nl80211: pairwise_ciphers=0x0
nl80211: group_cipher=0x1
nl80211: beacon_ies - hexdump(len=10): 7f 08 04 00 00 02 00 00 00 40
nl80211: proberesp_ies - hexdump(len=10): 7f 08 04 00 00 02 00 00 00 40
nl80211: assocresp_ies - hexdump(len=10): 7f 08 04 00 00 02 00 00 00 40
nl80211: ap_max_inactivity=-1
nl80211: multicast to unicast disabled on interface wlan0
wlan0: Deauthenticate all stations at BSS start
nl80211: send_mlme - da=ff:ff:ff:ff:ff:ff noack=0 freq=0 no_cck=0 offchanok=0 wait_time=0 no_encrypt=0 fc=0xc0 (WLAN_FC_STYPE_DEAUTH) nlmode=3
nl80211: send_mlme - Use bss->freq=5180
nl80211: send_mlme -> send_frame_cmd
nl80211: CMD_FRAME freq=5180 wait=0 no_cck=0 no_ack=0 offchanok=0
CMD_FRAME - hexdump(len=26): c0 00 00 00 ff ff ff ff ff ff 00 c0 ca b4 0c f8 00 c0 ca b4 0c f8 00 00 02 00
nl80211: Frame TX command accepted; cookie 0x1
nl80211: Set wlan0 operstate 0->1 (UP)
netlink: Operstate: ifindex=4 linkmode=-1 (no change), operstate=6 (IF_OPER_UP)
nl80211: TX queue param set: queue=0 aifs=1 cw_min=3 cw_max=7 burst_time=15 --> res=0
nl80211: TX queue param set: queue=1 aifs=1 cw_min=7 cw_max=15 burst_time=30 --> res=0
nl80211: TX queue param set: queue=2 aifs=3 cw_min=15 cw_max=63 burst_time=0 --> res=0
nl80211: TX queue param set: queue=3 aifs=7 cw_min=15 cw_max=1023 burst_time=0 --> res=0
wlan0: interface state COUNTRY_UPDATE->ENABLED
wlan0: AP-ENABLED 
wlan0: Setup of interface done.
ctrl_iface not configured!
RTM_NEWLINK: ifi_index=4 ifname=wlan0 operstate=5 linkmode=1 ifi_family=0 ifi_flags=0x11003 ([UP][LOWER_UP])
nl80211: Set IF_OPER_UP again based on ifi_flags and expected operstate
netlink: Operstate: ifindex=4 linkmode=-1 (no change), operstate=6 (IF_OPER_UP)
RTM_NEWLINK: ifi_index=4 ifname=wlan0 operstate=6 linkmode=1 ifi_family=0 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])
VLAN: RTM_NEWLINK: ifi_index=4 ifname=wlan0 ifi_family=0 ifi_flags=0x11003 ([UP][LOWER_UP])
VLAN: vlan_newlink(wlan0)
nl80211: Event message available
nl80211: Drv Event 60 (NL80211_CMD_FRAME_TX_STATUS) received for wlan0
nl80211: MLME event 60 (NL80211_CMD_FRAME_TX_STATUS) on wlan0(00:c0:ca:b4:0c:f8) A1=ff:ff:ff:ff:ff:ff A2=00:c0:ca:b4:0c:f8
nl80211: MLME event frame - hexdump(len=26): c0 00 00 00 ff ff ff ff ff ff 00 c0 ca b4 0c f8 00 c0 ca b4 0c f8 00 00 02 00
nl80211: Frame TX status event A1=ff:ff:ff:ff:ff:ff stype=12 cookie=0x1 ack=0
wlan0: Event TX_STATUS (16) received
mgmt::deauth cb
VLAN: RTM_NEWLINK: ifi_index=4 ifname=wlan0 ifi_family=0 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])
VLAN: vlan_newlink(wlan0)

Output of uname -a:

Linux raspberrypi 6.1.0-rpi7-rpi-v7l #1 SMP Raspbian 1:6.1.63-1+rpt1 (2023-11-24) armv7l GNU/Linux
tpacini commented 6 months ago

I was able to configure both the AP and the STA by installing an older version of Raspbian OS (release 2022-04-04, kernel 5.10). Now the problem is that when I run a test with iperf3 I get a large UDP packet loss that decreases with higher MCS indexes.

The setup is as follows:

Connecting to host 192.168.200.1, port 5201
[  5] local 192.168.200.27 port 59540 connected to 192.168.200.1 port 5201
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec   113 KBytes   926 Kbits/sec  80  
[  5]   1.00-2.00   sec  14.1 KBytes   116 Kbits/sec  10  
[  5]   2.00-3.00   sec  28.3 KBytes   232 Kbits/sec  20  
[  5]   3.00-4.00   sec  42.4 KBytes   348 Kbits/sec  30  
[  5]   4.00-5.00   sec  28.3 KBytes   232 Kbits/sec  20  
[  5]   5.00-6.00   sec  56.6 KBytes   463 Kbits/sec  40  
[  5]   6.00-7.00   sec  56.6 KBytes   463 Kbits/sec  40  
[  5]   7.00-8.00   sec  70.7 KBytes   579 Kbits/sec  50  
[  5]   8.00-9.00   sec  84.8 KBytes   695 Kbits/sec  60  
[  5]   9.00-10.00  sec  84.8 KBytes   695 Kbits/sec  60  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec   580 KBytes   475 Kbits/sec  0.000 ms  0/410 (0%)  sender
[  5]   0.00-12.18  sec   173 KBytes   116 Kbits/sec  119.924 ms  242/364 (66%)  receiver

iperf Done.

I also tried with iperf3 3.15, since the installed version is 3.6 without improvements.

Different parameters:

Limiting the bandwidth to 100k reduces the losses to 0%. Higher bandwidths lead to higher losses (> 20%).

I increased both w/rmem and udp_w/rmem buffer values without any significant improvement.

I tried to find out the number of packets actually sent from the NIC to the other end, and ifconfig wlan0 shows that the STA sends all the packets, but the AP receives only some of them (close to (364 - 242)), no dropped packets or errors. However, based on ethtool -S wlan0, the STA is sending some of the packets that are fully received by the AP.

I saw that ifconfig gets its values from /sys/class/net/wlan0/statistics/, while I couldn't find where ethtool gets this information.

I also set up a pfifo queue and all 410 packets go through it without dropping.

Which statistics can be trusted? Is ethtool supported by the drivers? Shouldn't the packet loss increase with higher MCS (e.g. 6,7)?