This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

wl18xx hostapd configuration for maximum performance

Hi! What HT capabilites do wl18xx have? Interesting fields available in hostapd configuration: * LDPC coding capability (LDPC) * Channel widths (HT40+, HT40-) * HT-greenfield (GF) * Short GI for 20 MHz (SHORT-GI-20) * Short GI for 40 MHz (SHORT-GI-40) * Tx STBC (TX-STBC) * Rx STBC (RX-STBC1, RX-STBC12) Which of these are supported by the chip?
  • Hi Jacob,

    I believe below are supported. But let me check and get back.

    [HT40-]
    [HT40+]
    [GF]
    [SHORT-GI-20]
    [SHORT-GI-40]
    [DSSS_CCK-40]

    Regards,
    Gigi Joseph.
  • Hi Jacob,

    After aligning with the experts, I am confirming the above entries... But, please note that for 2.4 in AP mode, we do not support SISO40

    Regards,
    Gigi Joseph.
  • Hi again

    It seems like HT40+/- are not supported for all channels. Can you give me a list of channels and capabilities for each channel?

    I've found /sys/kernel/debug/ieee80211/phy0/ht40allow_map, which contains:

    cat /sys/kernel/debug/ieee80211/phy0/ht40allow_map
    2412 HT40 +
    2417 HT40 +
    2422 HT40 +
    2427 HT40 +
    2432 HT40 -+
    2437 HT40 -+
    2442 HT40 -+
    2447 HT40 -+
    2452 HT40 -+
    2457 HT40 -
    2462 HT40 -
    2467 HT40 -
    2472 HT40 -
    2484 HT40
    5040 Disabled
    5060 Disabled
    5080 Disabled
    5170 Disabled
    5180 HT40 +
    5190 HT40 +
    5200 HT40 -+
    5210 HT40 -+
    5220 HT40 -+
    5230 HT40 -
    5240 HT40 -+
    5260 HT40 -+
    5280 HT40 -+
    5300 HT40 -+
    5320 HT40 -
    5500 HT40 +
    5520 HT40 -+
    5540 HT40 -+
    5560 HT40 -+
    5580 HT40 -+
    5600 HT40 -+
    5620 HT40 -+
    5640 HT40 -+
    5660 HT40 -+
    5680 HT40 -+
    5700 HT40 -
    5745 HT40 +
    5765 HT40 -+
    5785 HT40 -+
    5805 HT40 -+
    5825 HT40 -

    Although for instance for channel 44 (=5220), only HT40+ is supported. for channel 40 (=5200), only HT40- is supported.

    Please clarify this.

    Thanks, Jacob

  • Joseph, any updates on this?

    Jacob
  • Hi Jacob,

    This is expected. Lower channels cannot have HT40 - and higher channels cannot have HT40 + (otherwise it will go out of the channel limits)

    Regards,
    Gigi Joseph.
  • Hi Joseph!
    My question was where I could find a list of channels and capabilities on each channel. Do you know where I can find such a list?

    Jacob

  • Hi Jacob,

    You can take a look at: http://en.wikipedia.org/wiki/List_of_WLAN_channels

    Regards,
    Gigi Joseph.
  • Hi
    So in short, it's dependent on channel + regulations? Is there any way on a running system I can get this list (/sys/kernel/debug/ieee80211/phy0/ht40allow_map doesn't seem to take regulations into account)?

    I still cannot figure out my findings above ("Although for instance for channel 44 (=5220), only HT40+ is supported. for channel 40 (=5200), only HT40- is supported."), using /sys/kernel/debug/ieee80211/phy0/ht40allow_map and Wikipedia "List of WLAN channels".

    Jacob
  • Hi Jacob,

    I don't understood your question.
    The ht40allow_map should take the regdb into account.
    If the country code is set as US (for example), then both 5220 & 5200 should have HT+- . In your list also, you are mentioning that.

    Regards,
    Gigi Joseph.
  • Hi
    So why does hostapd fail to start if I have HT40- listed as capabilites when starting an access point on channel 44 (5220), even though it has '-+' in the ht40allow_map? Same with HT40+ and 40 (5200).

    Jacob
  • Hi Jacob,

    Can you share the hostapd -dd logs and your hostapd.conf, please?
    Also which module are you using?

    Regards,
    Gigi Joseph.
  • output from hostapd -dd:

    Configuration file: /od11-hostapd-wlan0-work-mcs.conf
    wlcore: PHY firmware version: Rev 8.2.0.0.224
    wlcore: firmware booted (Rev 8.9.0.0.31)
    IPv6: ADDRCONF(NETDEV_UP): wlan0-work: link is not ready
    wlan0-work: interface state UNINITIALIZED->HT_SCAN
    HT40 channel pair (44, -1) not allowed
    Interface initialization failed
    wlan0-work: interface state HT_SCAN->DISABLED
    hostapd_free_hapd_data: Interfwlcore: down
    ace wlan0-work wasn't started

    hostapd.conf:
    driver=nl80211
    logger_syslog=127
    logger_syslog_level=2
    logger_stdout=127
    logger_stdout_level=2
    hw_mode=a
    channel=44
    interface=wlan0-work
    ctrl_interface=/var/run/hostapd
    disassoc_low_ack=0
    preamble=1
    wmm_enabled=1
    ignore_broadcast_ssid=0
    auth_algs=1
    ssid=AP DUT
    okc=0
    ieee80211n=1
    ht_capab=[SHORT-GI-20][GF][HT40-]
    disable_pmksa_caching=1
    start_disabled=0
    wpa_passphrase=xxxxxxxx
    wpa=2
    wpa_pairwise=CCMP
    dtim_period=1


    What module are you referring to?

    Thanks, Jacob
  • Hi Jacob,

    This seems to be a restriction as per the 11.n standard "Annex J". From the hostapd conf file:

    # Note: There are limits on which channels can be used with HT40- and
    # HT40+. Following table shows the channels that may be available for
    # HT40- and HT40+ use per IEEE 802.11n Annex J:
    # freq HT40- HT40+
    # 2.4 GHz 5-13 1-7 (1-9 in Europe/Japan)
    # 5 GHz 40,48,56,64 36,44,52,60

    Regards,
    Gigi Joseph.
  • Hi!
    Thanks, that list seems to be correct.

         Jacob

  • Hi Gigi!
    I'm unable to get HT40- or HT40+ working on 2,4GHz, on every channel that I've tried. This is the current regulatory domain for these frequencies:
    (2402 - 2482 @ 40), (20)
    (2474 - 2494 @ 20), (20), NO-OFDM

    hostapd output:
    Configuration file: /tmp/hostapd-wlan0.conf
    wlcore: down
    Driver does not support configured HT capability [HT40*]
    wlan0: Unable to setup interface.
    hostapd_free_hapd_data: Interface wlan0 wasn't started
    wlcore: down

    This particular output is from channel 1 and [HT40+].
  • Hi Jacob,

    Channels 5-13 should have HT40- and 1-7 should have HT40+
    Can you share the hostapd.conf file that you have? Are you using a custom regulatory bin file?

    Regards,
    Gigi Joseph
  • Hi
    hostapd config file:

    driver=nl80211
    logger_syslog=127
    logger_syslog_level=2
    logger_stdout=127
    logger_stdout_level=2
    hw_mode=g
    dtim_period=1
    channel=1
    interface=wlan0-config
    ctrl_interface=/var/run/hostapd
    disassoc_low_ack=0
    preamble=1
    wmm_enabled=1
    ignore_broadcast_ssid=0
    auth_algs=1
    ssid=COOL SSID
    okc=0
    ieee80211n=1
    ht_capab=[HT40+]
    disable_pmksa_caching=1
    start_disabled=0
    wpa=0
    

    hostapd output:

    Configuration file: /tmp/od11-hostapd-wlan0-config.conf
    nl80211: Supports Probe Response offload in AP mode
    nl80211: Uswlcore: down
    ing driver-based off-channel TX
    nl80211: Use separate P2P group interface (driver advertised support)
    nl80211: Enable multi-channel concurrent (driver advertised support)
    nl80211: interface wlan0-config in phy phy0
    nl80211: Set mode ifindex 6 iftype 3 (AP)
    nl80211: Setup AP(wlan0-config) - device_ap_sme=0 use_monitor=0
    nl80211: Subscribe to mgmt frames with AP handle 0x1d89270
    nl80211: Register frame type=0xb0 nl_handle=0x1d89270
    nl80211: Register frame match - hexdump(len=0): [NULL]
    nl80211: Register frame type=0x0 nl_handle=0x1d89270
    nl80211: Register frame match - hexdump(len=0): [NULL]
    nl80211: Register frame type=0x20 nl_handle=0x1d89270
    nl80211: Register frame match - hexdump(len=0): [NULL]
    nl80211: Register frame type=0xa0 nl_handle=0x1d89270
    nl80211: Register frame match - hexdump(len=0): [NULL]
    nl80211: Register frame type=0xc0 nl_handle=0x1d89270
    nl80211: Register frame match - hexdump(len=0): [NULL]
    nl80211: Register frame type=0xd0 nl_handle=0x1d89270
    nl80211: Register frame match - hexdump(len=0): [NULL]
    nl80211: Register frame type=0x40 nl_handle=0x1d89270
    nl80211: Register frame match - hexdump(len=0): [NULL]
    nl80211: Add own interface ifindex 6
    phy: phy0
    BSS count 1, BSSID mask 00:00:00:00:00:00 (0 bits)
    nl80211: Regulatory information - country=00
    nl80211: 2402-2482 @ 40 MHz
    nl80211: 2402-2482 @ 20 mBm
    nl80211: 2474-2494 @ 20 MHz
    nl80211: 2474-2494 @ 20 mBm
    nl80211: 5170-5835 @ 160 MHz
    nl80211: 5170-5835 @ 20 mBm
    nl80211: 57240-63720 @ 2160 MHz
    nl80211: 57240-63720 @ 0 mBm
    nl80211: Added 802.11b mode based on 802.11g information
    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=1 chan=14 freq=2484 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=36 freq=5180 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=38 freq=5190 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=40 freq=5200 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=42 freq=5210 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=44 freq=5220 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=46 freq=5230 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=48 freq=5240 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=52 freq=5260 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=56 freq=5280 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=60 freq=5300 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=64 freq=5320 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=100 freq=5500 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=104 freq=5520 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=108 freq=5540 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=112 freq=5560 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=116 freq=5580 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=120 freq=5600 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=124 freq=5620 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=128 freq=5640 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=132 freq=5660 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=136 freq=5680 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=140 freq=5700 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=149 freq=5745 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=153 freq=5765 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=157 freq=5785 MHz max_tx_power=20 dBm
    Allowed channel: mode=2 chan=161 freq=5805 MHz mwlcore: down
    ax_tx_power=20 dBm
    Allowed channel: mode=2 chan=165 freq=5825 MHz max_tx_power=20 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
    Allowed channel: mode=0 chan=14 freq=2484 MHz max_tx_power=20 dBm
    Driver does not support configured HT capability [HT40*]
    wlan0-config: Unable to setup interface.
    hostapd_interface_deinit_free(0x1d880b8)
    hostapd_interface_deinit_free: num_bss=1 conf->num_bss=1
    hostapd_interface_deinit(0x1d880b8)
    hostapd_bss_deinit: deinit bss wlan0-config
    wlan0-config: Flushing old station entries
    nl80211: flush -> DEL_STATION wlan0-config (all)
    wlan0-config: Deauthenticate all stations
    nl80211: send_mlme - noack=0 freq=0 no_cck=0 offchanok=0 wait_time=0 fc=0xc0 nlmode=3
    nl80211: send_mlme -> send_frame
    nl80211: send_frame - Use bss->freq=0
    nl80211: send_frame -> send_frame_cmd
    nl80211: CMD_FRAME freq=0 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 88 33 14 1a 90 e1 88 33 14 1a 90 e1 00 00 03 00
    nl80211: Frame command failed: ret=-22 (Invalid argument) (freq=0 wait=0)
    wpa_driver_nl80211_set_key: ifindex=6 (wlan0-config) alg=0 addr=(nil) key_idx=0 set_tx=0 seq_len=0 key_len=0
    wpa_driver_nl80211_set_key: ifindex=6 (wlan0-config) alg=0 addr=(nil) key_idx=1 set_tx=0 seq_len=0 key_len=0
    wpa_driver_nl80211_set_key: ifindex=6 (wlan0-config) alg=0 addr=(nil) key_idx=2 set_tx=0 seq_len=0 key_len=0
    wpa_driver_nl80211_set_key: ifindex=6 (wlan0-config) alg=0 addr=(nil) key_idx=3 set_tx=0 seq_len=0 key_len=0
    hostapd_cleanup(hapd=0x1d885f8 (wlan0-config))
    hostapd_free_hapd_data: Interface wlan0-config wasn't started
    hostapd_interface_deinit_free: driver=0x6960c drv_priv=0x1d88e90 -> hapd_deinit
    nl80211: Remove monitor interface: refcount=0
    nl80211: Remove beacon (ifindex=6)
    netlink: Operstate: linkmode=0, operstate=6
    nl80211: Set mode ifindex 6 iftype 2 (STATION)
    nl80211: Teardown AP(wlan0-config) - device_ap_sme=0 use_monitor=0
    nl80211: Unsubscribe mgmt frames handle 0x89501af9 (AP teardown)
    hostapd_interface_free(0x1d880b8)
    hostapd_interface_free: free hapd 0x1d885f8
    hostapd_cleanup_iface(0x1d880b8)
    hostapd_cleanup_iface_partial(0x1d880b8)
    hostapd_cleanup_iface: free iface=0x1d880b8

    regulatory information (printed by hostapd above):

    nl80211: 2402-2482 @ 40 MHz
    nl80211: 2474-2494 @ 20 MHz
  • Hi Jacob,

    Have you modified any of the driver code (perhaps ".ht.mode")?
    I am using the prebuilt R8.5 drivers + the hostapd.conf that you provided and don't see this error.

    Regards,
    Gigi Joseph.
  • Hi!
    ht.mode is set to 0.

    Thanks, Jacob
  • Hi Jacob,

    You would need to set it to "HT_MODE_WIDE" = 1 to use SISO40.
    mode = 0, means use MIMO, fall back to SISO20.

    Regards,
    Gigi Joseph.