Wi-Fi Easy Connect (DPP) between two Genio-510 boards – Authentication & configuration succeed, but STA does not associate

Hello Community,

I am trying to establish Wi-Fi Easy Connect (DPP) connectivity between two MediaTek Genio-510 boards, where:

  • One board acts as AP + DPP Configurator (hostapd)
  • The second board acts as STA / Enrollee (wpa_supplicant)
  • Provisioning is done using DPP QR-code bootstrapping

My goal is:

Provision STA using DPP and have it automatically associate to the AP using the DPP connector credentials.

What I Am Trying to Do

  1. AP creates a DPP Configurator
  2. STA generates a DPP bootstrap QR code
  3. AP scans STA’s QR code and initiates DPP authentication
  4. AP sends DPP Connector credentials (AKM=DPP, no PSK)
  5. STA stores the network and associates to AP automatically

AP Side Commands (hostapd_cli)

dpp_configurator_add
dpp_configurator_get_key 1
dpp_qr_code DPP:C:81/1;M:a841f489a1e1;V:2;K:<Configurator-Public-Key>;;
dpp_auth_init peer=1 conf=sta-dpp ssid=4450505f4150313131 configurator=1

AP Logs (Relevant)

DPP-AUTH-SUCCESS init=1
DPP-CONF-REQ-RX
DPP-CONF-SENT

So authentication and configuration exchange appear successful on AP side.

STA Side Commands (wpa_cli)

dpp_bootstrap_gen type=qrcode mac=A841F489A1E1 chan=81/1dpp_bootstrap_get_uri 1dpp_listen 2412

STA Logs (Relevant)

DPP-AUTH-SUCCESS init=0
DPP-CONF-RECEIVED
DPP-CONFOBJ-AKM dpp
DPP-CONFOBJ-SSID DPP_AP111
CTRL-EVENT-NETWORK-ADDED 1
DPP-NETWORK-ID 1

The STA clearly receives the configuration object and adds the network.


STA Configuration After DPP

/etc/wpa_supplicant.conf now contains:

network={ ssid="DPP_AP111"    
          key_mgmt=DPP    
          ieee80211w=2    
          dpp_connector="..."    
          dpp_netaccesskey=...    
          dpp_csign=...
}

This looks correct and complete.


The Problem

Despite successful:

  • DPP authentication
  • Configuration exchange
  • Network being added to wpa_supplicant.conf

The STA never transitions to ASSOCIATED / COMPLETED state.

wpa_cli status shows:

wpa_state=SCANNING

No association attempt or connection completes.


My Questions

  1. Is conf=sta-dpp sufficient, or does hostapd require additional parameters (e.g., conf=sta-dpp vs conf=sta with DPP AKM)?
  2. Does hostapd require a matching DPP-enabled BSS configuration (e.g., wpa_key_mgmt=DPP) explicitly enabled?
  3. Is there any mt76 / Genio-510 driver limitation related to DPP Connector association?
  4. Is save_config required or discouraged on STA during DPP?
  5. Is there a mandatory step after DPP-CONF-RECEIVED to trigger association manually?

Any guidance, known issues, or working Genio-510 DPP examples would be extremely helpful.

Thank you.

It seems this question is related the other issue “ Wi-Fi Easy Connect (DPP) work on MediaTek Genio 510 EVK for SSID + Key Exchange via NFC? ” and you’ve got some progress here. Am I correct?

I’m try to find if someone could help to answer your questions.

  1. Is there any wpa_key_mgmt settings in hostapd.conf includes DPP, could you help to double check it? (and restart hostapd)
  2. Check if the AP is broadcasting DPP capability
    try: “iw dev $WirelessInterface scan | grep -E “SSID:|Authentication suites:”
  3. Provide more debug information
    sudo wpa_supplicant -i <wlan_interface> -c /etc/wpa_supplicant.conf -dd

Thanks

Is there any wpa_key_mgmt settings in hostapd.conf includes DPP, could you help to double check it? (and restart hostapd)

Yes, wpa_key_mgmt=DPP is configured in hostapd.conf and hostapd is restarted. Configuration and startup logs are below.


cat /etc/hostapd_trying_dpp.conf
ctrl_interface=/var/run/hostapd

interface=wlp1s0
driver=nl80211

ssid=DPP_AP111
hw_mode=g
channel=1
country_code=IN
channel=1
ieee80211n=1
ieee80211w=2
wmm_enabled=1

auth_algs=1

# ---- DPP CONFIG ----
wpa=2
wpa_key_mgmt=DPP
wpa_pairwise=CCMP
rsn_pairwise=CCMP

hostapd /etc/hostapd_trying_dpp.conf -B
wlp1s0: interface state UNINITIALIZED->COUNTRY_UPDATE
wlp1s0: interface state COUNTRY_UPDATE->ENABLED
wlp1s0: AP-ENABLED


Check if the AP is broadcasting DPP capability
try: “iw dev $WirelessInterface scan | grep -E “SSID:|Authentication suites:”

AP interface is up and running as shown below:

root@genio-510-evk:~# iw dev
phy#0
  Interface wlp1s0
    ifindex 3
    wdev 0x1
    addr a8:41:f4:89:a2:5d
    ssid DPP_AP111
    type AP
    channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
    txpower 3.00 dBm
    multicast TXQ:
      qsz-byt  qsz-pkt  flows  drops  marks  overlmt  hashcol  tx-bytes  tx-packets
      0  0  52  0  0  0  0  6954    54

However, scanning fails while the interface is in AP mode:

iw dev wlp1s0 scan | grep -E "SSID:|Authentication suites"
command failed: Operation not supported (-95)

Supported interface modes from the driver:

root@genio-510-evk:~# iw list | grep -A5 "Supported interface modes"
  Supported interface modes:
     * managed
     * AP
     * AP/VLAN
     * monitor
     * P2P-client


Provide more debug information
sudo wpa_supplicant -i <wlan_interface> -c /etc/wpa_supplicant.conf -dd

STA-side debug logs collected as requested:

wpa_supplicant -i wlp1s0 -D nl80211 -c /etc/wpa_supplicant.conf -dd
wpa_supplicant v2.10
random: Trying to read entropy from /dev/random
Successfully initialized wpa_supplicant
Initializing interface 'wlp1s0' conf '/etc/wpa_supplicant.conf' driver 'nl80211' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/wpa_supplicant.conf' -> '/etc/wpa_supplicant.conf'
Reading configuration file '/etc/wpa_supplicant.conf'
ctrl_interface='/var/run/wpa_supplicant'
ctrl_interface_group='0'
update_config=1
pmf=2
dpp_config_processing=2
nl80211: TDLS supported
nl80211: TDLS external setup
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:6
nl80211: Supported cipher 00-0f-ac:13
nl80211: Supported cipher 00-0f-ac:11
nl80211: Supported cipher 00-0f-ac:12
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: Use separate P2P group interface (driver advertised support)
nl80211: Enable multi-channel concurrent (driver advertised support)
nl80211: key_mgmt=0x1ff0f enc=0xfef auth=0x7 flags=0x24003d10d35bfbe0 rrm_flags=0x30 probe_resp_offloads=0x0 max_stations=0 max_remain_on_chan=5000 max_scan_ssids=4
nl80211: interface wlp1s0 in phy phy0
nl80211: Set mode ifindex 3 iftype 2 (STATION)
nl80211: Subscribe to mgmt frames with non-AP handle 0xaaaad9b472b0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=0104 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=040a multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=040b multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=040c multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=040d multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=090a multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=090b multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=090c multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=090d multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=0409506f9a09 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=7f506f9a09 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=0409506f9a1a multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=0801 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=040e multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=06 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=0a07 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=0a11 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=0a1a multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=1101 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=1102 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=0505 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=0500 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=1301 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=1305 multicast=0
nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xaaaad9b472b0 match=7e506f9a1a multicast=0
rfkill: initial event: idx=1 type=1 op=0 soft=0 hard=0
netlink: Operstate: ifindex=3 linkmode=1 (userspace-control), operstate=5 (IF_OPER_DORMANT)
Add interface wlp1s0 to a new radio phy0
nl80211: Regulatory information - country=00
nl80211: 755-928 @ 2 MHz 20 mBm (no IR)
nl80211: 2402-2472 @ 40 MHz 20 mBm
nl80211: 2457-2482 @ 20 MHz 20 mBm (no IR)
nl80211: 2474-2494 @ 20 MHz 20 mBm (no OFDM) (no IR)
nl80211: 5170-5250 @ 80 MHz 20 mBm (no IR)
nl80211: 5250-5330 @ 80 MHz 20 mBm (DFS) (no IR)
nl80211: 5490-5730 @ 160 MHz 20 mBm (DFS) (no IR)
nl80211: 5735-5835 @ 80 MHz 20 mBm (no IR)
nl80211: 57240-63720 @ 2160 MHz 0 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[NO_IR] 2472[NO_IR] 2484[NO_IR]
nl80211: Mode IEEE 802.11a: 5180[NO_IR] 5200[NO_IR] 5220[NO_IR] 5240[NO_IR] 5260[NO_IR][RADAR] 5280[NO_IR][RADAR] 5300[NO_IR][RADAR] 5320[NO_IR][RADAR] 5500[NO_IR][RADAR] 5520[NO_IR][RADAR] 5540[NO_IR][RADAR]
nl80211: Mode IEEE 802.11b: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467[NO_IR] 2472[NO_IR] 2484[NO_IR]
wlp1s0: Own MAC address: a8:41:f4:89:a3:57
wpa_driver_nl80211_set_key: ifindex=3 (wlp1s0) alg=0 addr=(nil) key_idx=0 set_tx=0 seq_len=0 key_len=0 key_flag=0x10
nl80211: DEL_KEY
   broadcast key
wpa_driver_nl80211_set_key: ifindex=3 (wlp1s0) alg=0 addr=(nil) key_idx=1 set_tx=0 seq_len=0 key_len=0 key_flag=0x10
nl80211: DEL_KEY
   broadcast key
wpa_driver_nl80211_set_key: ifindex=3 (wlp1s0) alg=0 addr=(nil) key_idx=2 set_tx=0 seq_len=0 key_len=0 key_flag=0x10
nl80211: DEL_KEY
   broadcast key
wpa_driver_nl80211_set_key: ifindex=3 (wlp1s0) alg=0 addr=(nil) key_idx=3 set_tx=0 seq_len=0 key_len=0 key_flag=0x10
nl80211: DEL_KEY
   broadcast key
wpa_driver_nl80211_set_key: ifindex=3 (wlp1s0) alg=0 addr=(nil) key_idx=4 set_tx=0 seq_len=0 key_len=0 key_flag=0x10
nl80211: DEL_KEY
   broadcast key
wpa_driver_nl80211_set_key: ifindex=3 (wlp1s0) alg=0 addr=(nil) key_idx=5 set_tx=0 seq_len=0 key_len=0 key_flag=0x10
nl80211: DEL_KEY
   broadcast key
wlp1s0: RSN: flushing PMKID list in the driver
nl80211: Flush PMKIDs
wlp1s0: State: DISCONNECTED -> INACTIVE
TDLS: TDLS operation supported by driver
TDLS: Driver uses external link setup
TDLS: Driver does not support TDLS channel switching
wlp1s0: WPS: UUID based on MAC address: 98f30563-2f6b-552f-8d25-4b0114598712
ENGINE: Loading builtin engines
ENGINE: Loading builtin engines
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: Supplicant port status: Unauthorized
nl80211: Skip set_supp_port(unauthorized) while not associated
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
ctrl_interface_group=0
P2P: Add operating class 81
P2P: Channels - hexdump(len=11): 01 02 03 04 05 06 07 08 09 0a 0b
P2P: Own listen channel: 81:6
P2P: Random operating channel: 81:1
P2P: initialized
P2P: channels: 81:1,2,3,4,5,6,7,8,9,10,11
P2P: cli_channels:
wlp1s0: Added interface wlp1s0
wlp1s0: State: INACTIVE -> DISCONNECTED
nl80211: Set wlp1s0 operstate 0->0 (DORMANT)
netlink: Operstate: ifindex=3 linkmode=-1 (no change), operstate=5 (IF_OPER_DORMANT)
wlp1s0: Determining shared radio frequencies (max len 2)
wlp1s0: Shared frequencies (len=0): completed iteration
P2P: Add operating class 81
P2P: Channels - hexdump(len=11): 01 02 03 04 05 06 07 08 09 0a 0b
P2P: Update channel list
P2P: channels: 81:1,2,3,4,5,6,7,8,9,10,11
P2P: cli_channels:
random: Got 20/20 bytes from /dev/random
RTM_NEWLINK: ifi_index=3 ifname=wlp1s0 operstate=2 linkmode=1 ifi_family=0 ifi_flags=0x1003 ([UP])
EAPOL: disable timer tick

From the STA logs:

  • DPP-related public action frames are registered
  • Interface initializes correctly
  • STA remains in Scanning state
  • No association attempt is observed after configuration

Regards,
Niranjan

Possible reasons for not connecting automatically:

  1. The DPP connection process is different from traditional connections

    • With DPP, wpa_supplicant does not automatically scan and connect to the AP like WPA-PSK. Instead, it requires the DPP initiation process (such as DPP Authentication/Configuration).

    • If the DPP provisioning process is completed, wpa_supplicant should theoretically connect automatically, but in practice, manual triggering is sometimes required.

  2. Manual connection triggering may be needed

    • In some cases, the DPP network needs to be manually activated using wpa_cli select_network or enable_network .

    • You can try:

      wpa_cli list_networks
      wpa_cli select_network 0
      
  3. AP-side configuration issues

    • The AP must support DPP, and the DPP provisioning process must be complete. If the AP is not properly configured for DPP, the STA will not connect automatically.
  4. wpa_supplicant version/parameter issues

    • It is recommended to use version 2.9 or above, and to add the -dd option to the startup command for detailed logs.

    • Incorrect formatting of certain DPP parameters (such as dpp_connector) can also cause connection failures.

  5. Possible missing SCAN command

    • DPP networks do not scan automatically, so it is recommended to scan manually:

      wpa_cli scan
      wpa_cli scan_results
      

Recommended troubleshooting steps:

  1. Confirm that the DPP provisioning process is complete

    • Check the wpa_supplicant logs for successful DPP Authentication/Configuration records.
  2. Manually activate the network

    • Use wpa_cli select_network 0 or enable_network 0.
  3. Manually scan and check results

    • Use wpa_cli scan, then wpa_cli scan_results to confirm if the AP is visible.
  4. Check AP-side DPP configuration

    • Make sure the AP has DPP enabled and that its parameters match those of the STA.
  5. Upgrade wpa_supplicant

    • Ensure you are using a version that supports DPP.
  6. Check detailed logs

    • Pay attention to DPP-related logs for any errors or incomplete processes.

Thanks

EAPOL: SUPP_PAE entering state DISCONNECTED
I’ve noticed there are some authentication errors.
Maybe you could check EAPOL settings. It seems the AP didn’t send out the key?

EAPOL: Supplicant port status: Unauthorized
nl80211: Skip set_supp_port(unauthorized) while not associated
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE

EAPOL: KEY_RX entering state NO_KEY_RECEIVE

  • KEY_RX is the key reception state machine in EAPOL, responsible for handling the reception of encryption keys, which typically occurs during the WPA/WPA2/WPA3 four-way handshake.

  • entering state NO_KEY_RECEIVE indicates the initial state of the key reception component. It means that no keys have been received yet, which is normal at startup or before authentication.

Observed behavior

  • DPP authentication and configuration succeed (DPP action frames exchanged correctly)

  • When the AP is configured with:

    wpa=2
    wpa_key_mgmt=DPP
    ieee80211w=2
    rsn_pairwise=CCMP
    

    the STA remains in:

    wpa_state=SCANNING
    
  • No association attempt is made

  • The EAPOL 4-Way Handshake never starts

The EAPOL logs seen on the STA:

EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: Supplicant port status: Unauthorized
EAPOL: KEY_RX entering state NO_KEY_RECEIVE

appear to be normal idle states, indicating that the STA is not associated.
Since the AP must not send EAPOL-Key frames before association, this suggests the issue occurs before EAPOL, during RSN/AKM negotiation.


Key observation

  • When the AP is configured with wpa_key_mgmt=PSK, WPA2-PSK works correctly on MT7921 and the STA reaches wpa_state=COMPLETED.

    key_mgmt=WPA2-PSK
    wpa_state=COMPLETED
    

From iw list on the STA:

  • SAE is explicitly supported

    Device supports SAE with AUTHENTICATE command
    
  • However, DPP is not advertised as a supported AKM

    • No “Supported AKM suites” entry showing DPP

Because of this, when the AP advertises wpa_key_mgmt=DPP, the STA does not attempt association, and EAPOL is never triggered.


Questions for confirmation

  1. Does the MT7921 driver/firmware support DPP as an RSN AKM (wpa_key_mgmt=DPP)?
  2. Are there any firmware or BSP updates planned to support DPP-AKM on MT7921?

Your confirmation will help us align our DPP implementation correctly on Genio-510.

Thank you for your support.

Best regards,
Niranjan

It has been confirmed that driver does not support DDP, and our company has no development plan for the public version at present.

If your company has this feature, please put forward the demand to our PM, and we will evaluate it