mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 23:12:32 +00:00
395afc4c58
Release 2.11 has been quite a few new features and fixes since the 2.10 release. The following ChangeLog entries highlight some of the main changes: * Wi-Fi Easy Connect - add support for DPP release 3 - allow Configurator parameters to be provided during config exchange * HE/IEEE 802.11ax/Wi-Fi 6 - various fixes * EHT/IEEE 802.11be/Wi-Fi 7 - add preliminary support * SAE: add support for fetching the password from a RADIUS server * support OpenSSL 3.0 API changes * support background radar detection and CAC with some additional drivers * support RADIUS ACL/PSK check during 4-way handshake (wpa_psk_radius=3) * EAP-SIM/AKA: support IMSI privacy * improve 4-way handshake operations - use Secure=1 in message 3 during PTK rekeying ...and many more Remove upstreamed patches: 023-ndisc_snoop-call-dl_list_del-before-freeing-ipv6-add.patch 030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch 040-mesh-allow-processing-authentication-frames-in-block.patch 181-driver_nl80211-update-drv-ifindex-on-removing-the-fi.patch 182-nl80211-move-nl80211_put_freq_params-call-outside-of.patch 183-hostapd-cancel-channel_list_update_timeout-in-hostap.patch 210-build-de-duplicate-_DIRS-before-calling-mkdir.patch 253-qos_map_set_without_interworking.patch 751-qos_map_ignore_when_unsupported.patch 800-SAE-Check-for-invalid-Rejected-Groups-element-length.patch 801-SAE-Check-for-invalid-Rejected-Groups-element-length.patch 802-SAE-Reject-invalid-Rejected-Groups-element-in-the-pa.patch Other patches has been updated. Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16338 Signed-off-by: Robert Marko <robimarko@gmail.com>
103 lines
3.1 KiB
Diff
103 lines
3.1 KiB
Diff
From: David Bauer <mail@david-bauer.net>
|
|
Date: Sat, 27 Nov 2021 22:08:28 +0100
|
|
Subject: [PATCH] hostapd: add OpenWrt specific statistic counters
|
|
|
|
This adds a new struct for storing statistics not (yet) tracked by
|
|
hostapd regarding RRM and WNM activity.
|
|
|
|
These statistics can be read using the get_status hostapd interface ubus
|
|
method.
|
|
|
|
--- a/src/ap/hostapd.h
|
|
+++ b/src/ap/hostapd.h
|
|
@@ -168,6 +168,21 @@ struct hostapd_sae_commit_queue {
|
|
};
|
|
|
|
/**
|
|
+ * struct hostapd_openwrt_stats - OpenWrt custom STA/AP statistics
|
|
+ */
|
|
+struct hostapd_openwrt_stats {
|
|
+ struct {
|
|
+ u64 neighbor_report_tx;
|
|
+ } rrm;
|
|
+
|
|
+ struct {
|
|
+ u64 bss_transition_query_rx;
|
|
+ u64 bss_transition_request_tx;
|
|
+ u64 bss_transition_response_rx;
|
|
+ } wnm;
|
|
+};
|
|
+
|
|
+/**
|
|
* struct hostapd_data - hostapd per-BSS data structure
|
|
*/
|
|
struct hostapd_data {
|
|
@@ -181,6 +196,9 @@ struct hostapd_data {
|
|
|
|
u8 own_addr[ETH_ALEN];
|
|
|
|
+ /* OpenWrt specific statistics */
|
|
+ struct hostapd_openwrt_stats openwrt_stats;
|
|
+
|
|
int num_sta; /* number of entries in sta_list */
|
|
struct sta_info *sta_list; /* STA info list head */
|
|
#define STA_HASH_SIZE 256
|
|
--- a/src/ap/rrm.c
|
|
+++ b/src/ap/rrm.c
|
|
@@ -269,6 +269,8 @@ static void hostapd_send_nei_report_resp
|
|
}
|
|
}
|
|
|
|
+ hapd->openwrt_stats.rrm.neighbor_report_tx++;
|
|
+
|
|
hostapd_drv_send_action(hapd, hapd->iface->freq, 0, addr,
|
|
wpabuf_head(buf), wpabuf_len(buf));
|
|
wpabuf_free(buf);
|
|
--- a/src/ap/wnm_ap.c
|
|
+++ b/src/ap/wnm_ap.c
|
|
@@ -410,6 +410,7 @@ static int ieee802_11_send_bss_trans_mgm
|
|
mgmt->u.action.u.bss_tm_req.validity_interval = 1;
|
|
pos = mgmt->u.action.u.bss_tm_req.variable;
|
|
|
|
+ hapd->openwrt_stats.wnm.bss_transition_request_tx++;
|
|
wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request to "
|
|
MACSTR " dialog_token=%u req_mode=0x%x disassoc_timer=%u "
|
|
"validity_interval=%u",
|
|
@@ -814,10 +815,12 @@ int ieee802_11_rx_wnm_action_ap(struct h
|
|
plen);
|
|
return 0;
|
|
case WNM_BSS_TRANS_MGMT_QUERY:
|
|
+ hapd->openwrt_stats.wnm.bss_transition_query_rx++;
|
|
ieee802_11_rx_bss_trans_mgmt_query(hapd, mgmt->sa, payload,
|
|
plen);
|
|
return 0;
|
|
case WNM_BSS_TRANS_MGMT_RESP:
|
|
+ hapd->openwrt_stats.wnm.bss_transition_response_rx++;
|
|
ieee802_11_rx_bss_trans_mgmt_resp(hapd, mgmt->sa, payload,
|
|
plen);
|
|
return 0;
|
|
@@ -865,6 +868,7 @@ int wnm_send_disassoc_imminent(struct ho
|
|
|
|
pos = mgmt->u.action.u.bss_tm_req.variable;
|
|
|
|
+ hapd->openwrt_stats.wnm.bss_transition_request_tx++;
|
|
wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request frame to indicate imminent disassociation (disassoc_timer=%d) to "
|
|
MACSTR, disassoc_timer, MAC2STR(sta->addr));
|
|
if (hostapd_drv_send_mlme(hapd, buf, pos - buf, 0, NULL, 0, 0) < 0) {
|
|
@@ -947,6 +951,7 @@ int wnm_send_ess_disassoc_imminent(struc
|
|
return -1;
|
|
}
|
|
|
|
+ hapd->openwrt_stats.wnm.bss_transition_request_tx++;
|
|
if (disassoc_timer) {
|
|
/* send disassociation frame after time-out */
|
|
set_disassoc_timer(hapd, sta, disassoc_timer);
|
|
@@ -1028,6 +1033,7 @@ int wnm_send_bss_tm_req(struct hostapd_d
|
|
}
|
|
os_free(buf);
|
|
|
|
+ hapd->openwrt_stats.wnm.bss_transition_request_tx++;
|
|
if (disassoc_timer) {
|
|
#ifdef CONFIG_IEEE80211BE
|
|
if (ap_sta_is_mld(hapd, sta)) {
|