Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions drivers/wifi/nrf_wifi/Kconfig.nrfwifi
Original file line number Diff line number Diff line change
Expand Up @@ -805,6 +805,26 @@ config NRF_WIFI_FEAT_WMM
help
This option controls disable/enable of the WMM (Wireless Multi-Media) feature.

config NRF_WIFI_QOS_NOACK_POLICY
bool "QoS No-ACK policy for Tx packets"
default n
help
Enable this option to set No-ACK policy for Tx packets with a specific TID.
When enabled, all Tx frames for the configured TID will be marked with
the No-ACK policy flag, indicating that the receiver should not send
ACK frames for these packets.

if NRF_WIFI_QOS_NOACK_POLICY
config NRF_WIFI_QOS_NOACK_POLICY_TID
int "TID (Traffic Identifier) for No-ACK policy"
range 0 7
default 0
help
Specify the TID (Traffic Identifier) for which No-ACK policy should be applied.
TID values range from 0 to 7, corresponding to different QoS priority levels.
All Tx frames with this TID will be marked with the No-ACK policy flag.
endif # NRF_WIFI_QOS_NOACK_POLICY

choice NRF_WIFI_PS_DATA_RETRIEVAL_MECHANISM
prompt "Power save data retrieval mechanism"
default NRF_WIFI_PS_POLL_BASED_RETRIEVAL
Expand Down
11 changes: 8 additions & 3 deletions drivers/wifi/nrf_wifi/src/net_if.c
Original file line number Diff line number Diff line change
Expand Up @@ -454,16 +454,21 @@
goto drop;
}

/* VIF or per-peer depending on RA */
if (peer_id == MAX_PEERS) {
/* Use authorized from vif_ctx_zep for STA mode, or per-peer for AP/GO */
if (vif_ctx_zep->if_type == NRF_WIFI_IFTYPE_STATION) {
authorized = vif_ctx_zep->authorized;
} else {
} else if (peer_id != MAX_PEERS) {
authorized = sys_dev_ctx->tx_config.peers[peer_id].authorized;
} else {
/* non-STA modes always allow group frames */
authorized = true;
}

if ((vif_ctx_zep->if_carr_state != NRF_WIFI_FMAC_IF_CARR_STATE_ON) ||
(!authorized && !is_eapol(pkt))) {
LOG_DBG("%s: carrier state: %d, authorized: %d, is_eapol: %d",
__func__, vif_ctx_zep->if_carr_state, authorized, is_eapol(pkt));
ret = -EPERM;

Check notice on line 471 in drivers/wifi/nrf_wifi/src/net_if.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

You may want to run clang-format on this change

drivers/wifi/nrf_wifi/src/net_if.c:471 - LOG_DBG("%s: carrier state: %d, authorized: %d, is_eapol: %d", - __func__, vif_ctx_zep->if_carr_state, authorized, is_eapol(pkt)); + LOG_DBG("%s: carrier state: %d, authorized: %d, is_eapol: %d", __func__, + vif_ctx_zep->if_carr_state, authorized, is_eapol(pkt));
goto drop;
}
ret = nrf_wifi_fmac_start_xmit(rpu_ctx_zep->rpu_ctx,
Expand Down
4 changes: 3 additions & 1 deletion drivers/wifi/nrf_wifi/src/wifi_mgmt_scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -290,8 +290,10 @@ static inline enum wifi_security_type drv_to_wifi_mgmt(int drv_security_type)
return WIFI_SECURITY_TYPE_PSK;
case NRF_WIFI_WPA2_256:
return WIFI_SECURITY_TYPE_PSK_SHA256;
case NRF_WIFI_WPA3:
case NRF_WIFI_WPA3_HNP:
return WIFI_SECURITY_TYPE_SAE;
case NRF_WIFI_WPA3_H2E:
return WIFI_SECURITY_TYPE_SAE_H2E;
case NRF_WIFI_WAPI:
return WIFI_SECURITY_TYPE_WAPI;
case NRF_WIFI_EAP:
Expand Down
14 changes: 13 additions & 1 deletion drivers/wifi/nrf_wifi/src/wpa_supp_if.c
Original file line number Diff line number Diff line change
Expand Up @@ -546,7 +546,18 @@
scan_info->scan_params.num_scan_channels = indx;
}

if (params->num_ssids) {

if (params->filter_ssids) {

Check notice on line 550 in drivers/wifi/nrf_wifi/src/wpa_supp_if.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

You may want to run clang-format on this change

drivers/wifi/nrf_wifi/src/wpa_supp_if.c:550 -
scan_info->scan_params.num_scan_ssids = params->num_filter_ssids;
for (indx = 0; indx < params->num_filter_ssids; indx++) {
memcpy(scan_info->scan_params.scan_ssids[indx].nrf_wifi_ssid,
params->filter_ssids[indx].ssid,
params->filter_ssids[indx].ssid_len);

scan_info->scan_params.scan_ssids[indx].nrf_wifi_ssid_len =
params->filter_ssids[indx].ssid_len;
}
} else if (params->num_ssids) {
scan_info->scan_params.num_scan_ssids = params->num_ssids;

for (indx = 0; indx < params->num_ssids; indx++) {
Expand Down Expand Up @@ -2312,6 +2323,7 @@
goto out;
}

vif_ctx_zep->if_type = iftype;
ret = nrf_wifi_vif_state_change(vif_ctx_zep, NRF_WIFI_FMAC_IF_OP_STATE_UP);
if (ret) {
LOG_ERR("%s: Failed to set interface up", __func__);
Expand Down
4 changes: 2 additions & 2 deletions west.yml
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ manifest:
- hal
- name: hostap
path: modules/lib/hostap
revision: 528eb2d95e35c7c9b187a15d2fb7f6e5bb983181
revision: pull/117/head
- name: liblc3
revision: 48bbd3eacd36e99a57317a0a4867002e0b09e183
path: modules/lib/liblc3
Expand Down Expand Up @@ -337,7 +337,7 @@ manifest:
revision: 5eec7aca321735f5fc8e3e7c79e162f0e9810b16
path: modules/bsim_hw_models/nrf_hw_models
- name: nrf_wifi
revision: 97c6751657187ab811e73c36cc4c47acb1783fff
revision: pull/94/head
path: modules/lib/nrf_wifi
- name: open-amp
revision: c30a6d8b92fcebdb797fc1a7698e8729e250f637
Expand Down
Loading