Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1af67b79 authored by Surya Prakash Sivaraj's avatar Surya Prakash Sivaraj Committed by Gerrit - the friendly Code Review server
Browse files

qcacmn: Update preauth candidate entry to scan table

During SAE roam auth offload, update the beacon/probe response
frame coming from the FW via WMI_ROAM_FRAME_EVENTID into the
scan db.

When the bss info of the preauth candidate is unavailable in
the host/kernel scan entry, supplicant fails to determine the
proper SAE PWE config of the peer and the commit request fails.

Change-Id: I8537147104f30b74ffb2e87946f2e5f4b129f0df
CRs-Fixed: 3075460
parent 1598fa1b
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -196,6 +197,10 @@
/* 80 + 80 MHz Operating Channel  (revised signalling) */
#define WLAN_VHTOP_CHWIDTH_REVSIG_80_80  1

#define WLAN_MAX_HEOP_IE_LEN              16
#define WLAN_HEOP_OUI_TYPE                "\x24"
#define WLAN_HEOP_OUI_SIZE                1

#define WLAN_HEOP_FIXED_PARAM_LENGTH       7
#define WLAN_HEOP_VHTOP_LENGTH             3
#define WLAN_HEOP_CO_LOCATED_BSS_LENGTH    1
+17 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -1721,4 +1722,20 @@ static inline bool util_scan_is_null_ssid(struct wlan_ssid *ssid)
	return false;
}

/**
 * util_scan_get_6g_oper_channel() - function to get primary channel
 * from he op IE
 * he_op_ie : ie pointer
 *
 * Return : primary channel or 0 if 6g params is not present.
 */
#ifdef CONFIG_BAND_6GHZ
uint8_t util_scan_get_6g_oper_channel(uint8_t *he_op_ie);
#else
static inline uint8_t
util_scan_get_6g_oper_channel(uint8_t *he_op_ie)
{
	return 0;
}
#endif
#endif
+12 −0
Original line number Diff line number Diff line
@@ -339,6 +339,18 @@ util_scan_get_phymode_6g(struct wlan_objmgr_pdev *pdev,

	return phymode;
}

uint8_t
util_scan_get_6g_oper_channel(uint8_t *he_op_ie)
{
	struct he_oper_6g_param *he_6g_params;

	he_6g_params = util_scan_get_he_6g_params(he_op_ie);
	if (!he_6g_params)
		return 0;

	return he_6g_params->primary_channel;
}
#else
static QDF_STATUS
util_scan_get_chan_from_he_6g_params(struct wlan_objmgr_pdev *pdev,
+1 −0
Original line number Diff line number Diff line
@@ -4697,6 +4697,7 @@ typedef enum {
#ifdef WLAN_FEATURE_PKT_CAPTURE_V2
	wmi_vdev_smart_monitor_event_id,
#endif
	 wmi_roam_frame_event_id,
	wmi_events_max,
} wmi_conv_event_id;

+2 −0
Original line number Diff line number Diff line
@@ -15548,6 +15548,8 @@ event_ids[wmi_roam_scan_chan_list_id] =
	event_ids[wmi_vdev_smart_monitor_event_id] =
			WMI_VDEV_SMART_MONITOR_EVENTID;
#endif
	event_ids[wmi_roam_frame_event_id] =
			WMI_ROAM_FRAME_EVENTID;
}

#ifdef WLAN_FEATURE_LINK_LAYER_STATS