How to configure Halow channel and bandwidth?

Dear,

How can we configure different channels and bandwidths for the Halow chip that runs driver FGH100?

For more details:

I am using two fgh100 halow wifis, one is configured in AP mode, and the other is configured in STA mode. However, when doing an iPerf test between two Wi-Fi networks, the best speed is just 4.2Mbits/sec.


[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   256 KBytes  2.09 Mbits/sec    0   41.0 KBytes
[  5]   1.00-2.00   sec   256 KBytes  2.10 Mbits/sec    0   52.3 KBytes
[  5]   2.00-3.00   sec   256 KBytes  2.10 Mbits/sec    0   62.2 KBytes
[  5]   3.00-4.00   sec   256 KBytes  2.10 Mbits/sec    0   73.5 KBytes
[  5]   4.00-5.00   sec   256 KBytes  2.10 Mbits/sec    0   89.1 KBytes
[  5]   5.00-6.00   sec   256 KBytes  2.10 Mbits/sec    0    130 KBytes
[  5]   6.00-7.00   sec   384 KBytes  3.15 Mbits/sec    0    177 KBytes
[  5]   7.00-8.00   sec   256 KBytes  2.10 Mbits/sec    0    208 KBytes
[  5]   8.00-9.00   sec   512 KBytes  4.20 Mbits/sec    0    305 KBytes          <<< the best value can have
[  5]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec    0    305 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  2.62 MBytes  2.20 Mbits/sec    0             sender.    <<< average value
[  5]   0.00-10.60  sec  2.12 MBytes  1.68 Mbits/sec                  receiver

As I have tested MM6108-EKH01 MorseMicro devkit, the best speed was nearly 12-14Mbits/s.

I know there are some preconfigured in hostapd_s1g.conf. Here is mine.

# cat /etc/wifi/hostapd_s1g.conf
ctrl_interface=/var/run/hostapd_s1g

bridge=br-lan
interface=wlan1
driver=nl80211
hw_mode=a

# IEEE 802.11ah (S1G) supported.
# 0 = disabled (default)
# 1 = enabled
ieee80211ah=1

# Channel number (IEEE 802.11)
# (default: 0, i.e., not set)
# Please note that some drivers do not use this value from hostapd and the
# channel will need to be configured separately with iwconfig.
#
# For IEEE 802.11ah (S1G), the channel given is the operating channel. Which is
# specific to the regulatory domain. An operating class (op_class) also must be
# specified.
#
# If CONFIG_ACS build option is enabled, the channel can be selected
# automatically at run time by setting channel=acs_survey or channel=0, both of
# which will enable the ACS survey based algorithm.
channel=40

# Global operating class (IEEE 802.11, Annex E, Table E-4)
# This option allows hostapd to specify the operating class of the channel
# configured with the channel parameter. channel and op_class together can
# uniquely identify channels across different bands, including the 6 GHz band.
#
# For IEEE 80211.ah (S1G), the operating class must be specified.
# S1G specific operating classes (IEEE 802.11, Annex E, Table E-5) can
# also be specified, which are region-specific.
op_class=70

# Country code (ISO/IEC 3166-1). Used to set regulatory domain.
# Set as needed to indicate country in which device is operating.
# This can limit available channels and transmit power.
# These two octets are used as the first two octets of the Country String
# (dot11CountryString)
#
# For 802.11ah (S1G) the operating frequency for different country codes
# can differ. The operating class must also be specified.
# The operating bandwidths availble also vary between country codes.
#
# E.g. EU channel 36 is 863 MHz, JP channel 36 is 917MHz.
country_code=AU

# Sub-1 GHz primary channel bandwidth.
# 0 = 1 Mhz (default)
# 1 = 2 MHz
s1g_prim_chwidth=1

# Sub-1 GHz primary 1MHz channel index
# | <--------- 8MHz operating channel ----------> |
# | -0- | -1- | -2- | -3- | -4- | -5- | -6- | -7- | 1 in 8 Primary Channel index
# | ----4MHz operating--- |
# | -0- | -1- | -2- | -3- |                         1 in 4 Primary Channel index
# | -2MHz op- |
# | -0- | -1- |                                     1 in 2 Primary Channel index
#
s1g_prim_1mhz_chan_index=3

ssid=halow-AP
beacon_int=100
dtim_period=1
ap_max_inactivity=65536

# SGI and Subbands
s1g_capab=[SHORT-GI-ALL]
...

I expect the primary channel bandwidth can be set with 1Mhz, 2Mhz, 4Mhz, 8Mhz, and 16Mhz but in provided hostap_s1g.conf file, I CAN’T change the s1g_prim_chwidth to a bigger value like 2,4,8.

#define IEEE80211_CHAN_1MHZ (1)

#define IEEE80211_CHAN_2MHZ (2)

#define IEEE80211_CHAN_4MHZ (4)

#define IEEE80211_CHAN_8MHZ (8)

#define IEEE80211_CHAN_16MHZ (16)

AP details

phy#1
        Interface wlan1
                ifindex 12
                wdev 0x100000001
                addr 90:03:71:52:9e:aa
                ssid halow-AP
                type AP
                channel 161 (5805 MHz), width: 80 MHz, center1: 5775 MHz
                txpower 21.00 dBm

STA details

phy#1
        Interface wlan1
                ifindex 12
                wdev 0x100000001
                addr 90:03:71:52:9e:ff
                ssid halow-AP
                type managed
                channel 161 (5805 MHz), width: 80 MHz, center1: 5775 MHz
                txpower 21.00 dBm
iw wlan1 link
Connected to 90:03:71:52:9e:ff (on wlan1)
        SSID: halow-AP
        freq: 5805
        RX: 2517549 bytes (27273 packets)
        TX: 2644708 bytes (2085 packets)
        signal: -49 dBm
        rx bitrate: 351.0 MBit/s VHT-MCS 8 80MHz VHT-NSS 1
        tx bitrate: 351.0 MBit/s VHT-MCS 8 80MHz VHT-NSS 1

        bss flags:      short-slot-time
        dtim period:    1
        beacon int:     100

Guys,
Any update for this?

BR
MEQQN