mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-10-30 18:07:52 +00:00
hostapd: make radius rate-limit work with new event listener framework
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
@@ -67,8 +67,8 @@ let handlers = {
|
|||||||
address: notify.data.address,
|
address: notify.data.address,
|
||||||
};
|
};
|
||||||
if (notify.data['rate-limit']) {
|
if (notify.data['rate-limit']) {
|
||||||
msg.rate_ingress = notify.data['rate-limit'][0] / 1000;
|
msg.rate_ingress = notify.data['rate-limit'][0] / 1000000;
|
||||||
msg.rate_egress = notify.data['rate-limit'][1] / 1000;
|
msg.rate_egress = notify.data['rate-limit'][1] / 1000000;
|
||||||
} else
|
} else
|
||||||
msg.defaults = hapd.ssid;
|
msg.defaults = hapd.ssid;
|
||||||
ubus.call('ratelimit', 'client_set', msg);
|
ubus.call('ratelimit', 'client_set', msg);
|
||||||
|
|||||||
@@ -1857,6 +1857,13 @@ void hostapd_ubus_notify_authorized(struct hostapd_data *hapd, struct sta_info *
|
|||||||
blob_buf_init(&b, 0);
|
blob_buf_init(&b, 0);
|
||||||
blobmsg_add_macaddr(&b, "address", sta->addr);
|
blobmsg_add_macaddr(&b, "address", sta->addr);
|
||||||
blobmsg_add_string(&b, "ifname", hapd->conf->iface);
|
blobmsg_add_string(&b, "ifname", hapd->conf->iface);
|
||||||
|
if (sta->bandwidth[0] || sta->bandwidth[1]) {
|
||||||
|
void *r = blobmsg_open_array(&b, "rate-limit");
|
||||||
|
|
||||||
|
blobmsg_add_u32(&b, "", sta->bandwidth[0]);
|
||||||
|
blobmsg_add_u32(&b, "", sta->bandwidth[1]);
|
||||||
|
blobmsg_close_array(&b, r);
|
||||||
|
}
|
||||||
|
|
||||||
ubus_notify(ctx, &hapd->ubus.obj, "sta-authorized", b.head, -1);
|
ubus_notify(ctx, &hapd->ubus.obj, "sta-authorized", b.head, -1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
From ede24c139935619b506d21b43516592c484bcce8 Mon Sep 17 00:00:00 2001
|
From 8db2cc7ffd2d8b646439b485766be39da85e7319 Mon Sep 17 00:00:00 2001
|
||||||
From: John Crispin <john@phrozen.org>
|
From: John Crispin <john@phrozen.org>
|
||||||
Date: Tue, 9 Nov 2021 12:49:43 +0100
|
Date: Tue, 9 Nov 2021 12:49:43 +0100
|
||||||
Subject: [PATCH 5/8] hostapd: add wispr bandwidth patch
|
Subject: [PATCH 01/84] hostapd: add wispr bandwidth patch
|
||||||
|
|
||||||
Signed-off-by: John Crispin <john@phrozen.org>
|
Signed-off-by: John Crispin <john@phrozen.org>
|
||||||
---
|
---
|
||||||
.../services/hostapd/patches/750-wispr.patch | 126 ++++++++++++++++++
|
.../services/hostapd/patches/750-wispr.patch | 113 ++++++++++++++++++
|
||||||
1 file changed, 126 insertions(+)
|
1 file changed, 113 insertions(+)
|
||||||
create mode 100644 package/network/services/hostapd/patches/750-wispr.patch
|
create mode 100644 package/network/services/hostapd/patches/750-wispr.patch
|
||||||
|
|
||||||
diff --git a/package/network/services/hostapd/patches/750-wispr.patch b/package/network/services/hostapd/patches/750-wispr.patch
|
diff --git a/package/network/services/hostapd/patches/750-wispr.patch b/package/network/services/hostapd/patches/750-wispr.patch
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000..f2f4a933d7
|
index 0000000000..59537cedeb
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/package/network/services/hostapd/patches/750-wispr.patch
|
+++ b/package/network/services/hostapd/patches/750-wispr.patch
|
||||||
@@ -0,0 +1,126 @@
|
@@ -0,0 +1,113 @@
|
||||||
+Index: hostapd-2021-02-20-59e9794c/src/ap/ieee802_1x.c
|
+Index: hostapd-2021-02-20-59e9794c/src/ap/ieee802_1x.c
|
||||||
+===================================================================
|
+===================================================================
|
||||||
+--- hostapd-2021-02-20-59e9794c.orig/src/ap/ieee802_1x.c
|
+--- hostapd-2021-02-20-59e9794c.orig/src/ap/ieee802_1x.c
|
||||||
@@ -128,19 +128,6 @@ index 0000000000..f2f4a933d7
|
|||||||
+ int radius_msg_add_mppe_keys(struct radius_msg *msg,
|
+ int radius_msg_add_mppe_keys(struct radius_msg *msg,
|
||||||
+ const u8 *req_authenticator,
|
+ const u8 *req_authenticator,
|
||||||
+ const u8 *secret, size_t secret_len,
|
+ const u8 *secret, size_t secret_len,
|
||||||
+Index: hostapd-2021-02-20-59e9794c/src/ap/sta_info.c
|
|
||||||
+===================================================================
|
|
||||||
+--- hostapd-2021-02-20-59e9794c.orig/src/ap/sta_info.c
|
|
||||||
++++ hostapd-2021-02-20-59e9794c/src/ap/sta_info.c
|
|
||||||
+@@ -1292,7 +1292,7 @@ void ap_sta_set_authorized(struct hostap
|
|
||||||
+ MAC2STR(sta->addr), MAC2STR(dev_addr));
|
|
||||||
+ else
|
|
||||||
+ #endif /* CONFIG_P2P */
|
|
||||||
+- os_snprintf(buf, sizeof(buf), MACSTR, MAC2STR(sta->addr));
|
|
||||||
++ os_snprintf(buf, sizeof(buf), MACSTR " %d %d", MAC2STR(sta->addr), sta->bandwidth[0] / 1000000, sta->bandwidth[1] / 1000000);
|
|
||||||
+
|
|
||||||
+ if (hapd->sta_authorized_cb)
|
|
||||||
+ hapd->sta_authorized_cb(hapd->sta_authorized_cb_ctx,
|
|
||||||
--
|
--
|
||||||
2.25.1
|
2.34.1
|
||||||
|
|
||||||
|
|||||||
340
patches/wifi/0023-hostapd-add-sta-authorized-notification.patch
Normal file
340
patches/wifi/0023-hostapd-add-sta-authorized-notification.patch
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
From 89bbcf1b48f13f72396cde59949267b25ebef297 Mon Sep 17 00:00:00 2001
|
||||||
|
From: John Crispin <john@phrozen.org>
|
||||||
|
Date: Fri, 27 Jan 2023 11:16:46 +0100
|
||||||
|
Subject: [PATCH 84/84] hostapd: add sta-authorized notification
|
||||||
|
|
||||||
|
Signed-off-by: John Crispin <john@phrozen.org>
|
||||||
|
---
|
||||||
|
.../hostapd/patches/600-ubus_support.patch | 130 ++++++++++++------
|
||||||
|
.../services/hostapd/src/src/ap/ubus.c | 20 +++
|
||||||
|
.../services/hostapd/src/src/ap/ubus.h | 1 +
|
||||||
|
3 files changed, 110 insertions(+), 41 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/package/network/services/hostapd/patches/600-ubus_support.patch b/package/network/services/hostapd/patches/600-ubus_support.patch
|
||||||
|
index 6a0acbb318..bf2dec4f07 100644
|
||||||
|
--- a/package/network/services/hostapd/patches/600-ubus_support.patch
|
||||||
|
+++ b/package/network/services/hostapd/patches/600-ubus_support.patch
|
||||||
|
@@ -1,5 +1,7 @@
|
||||||
|
---- a/hostapd/Makefile
|
||||||
|
-+++ b/hostapd/Makefile
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/hostapd/Makefile
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/hostapd/Makefile
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/hostapd/Makefile
|
||||||
|
@@ -166,6 +166,11 @@ OBJS += ../src/common/hw_features_common
|
||||||
|
|
||||||
|
OBJS += ../src/eapol_auth/eapol_auth_sm.o
|
||||||
|
@@ -12,8 +14,10 @@
|
||||||
|
|
||||||
|
ifdef CONFIG_CODE_COVERAGE
|
||||||
|
CFLAGS += -O0 -fprofile-arcs -ftest-coverage
|
||||||
|
---- a/src/ap/hostapd.h
|
||||||
|
-+++ b/src/ap/hostapd.h
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/hostapd.h
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/hostapd.h
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/hostapd.h
|
||||||
|
@@ -17,6 +17,7 @@
|
||||||
|
#include "utils/list.h"
|
||||||
|
#include "ap_config.h"
|
||||||
|
@@ -47,8 +51,10 @@
|
||||||
|
void hostapd_interface_deinit(struct hostapd_iface *iface);
|
||||||
|
void hostapd_interface_free(struct hostapd_iface *iface);
|
||||||
|
struct hostapd_iface * hostapd_alloc_iface(void);
|
||||||
|
---- a/src/ap/hostapd.c
|
||||||
|
-+++ b/src/ap/hostapd.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/hostapd.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/hostapd.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/hostapd.c
|
||||||
|
@@ -396,6 +396,7 @@ void hostapd_free_hapd_data(struct hosta
|
||||||
|
hapd->beacon_set_done = 0;
|
||||||
|
|
||||||
|
@@ -90,8 +96,10 @@
|
||||||
|
hostapd_interface_deinit(iface);
|
||||||
|
wpa_printf(MSG_DEBUG, "%s: driver=%p drv_priv=%p -> hapd_deinit",
|
||||||
|
__func__, driver, drv_priv);
|
||||||
|
---- a/src/ap/ieee802_11.c
|
||||||
|
-+++ b/src/ap/ieee802_11.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/ieee802_11.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/ieee802_11.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/ieee802_11.c
|
||||||
|
@@ -3553,13 +3553,18 @@ static void handle_auth(struct hostapd_d
|
||||||
|
u16 auth_alg, auth_transaction, status_code;
|
||||||
|
u16 resp = WLAN_STATUS_SUCCESS;
|
||||||
|
@@ -178,8 +186,10 @@
|
||||||
|
sta = ap_get_sta(hapd, mgmt->sa);
|
||||||
|
if (sta == NULL) {
|
||||||
|
wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying "
|
||||||
|
---- a/src/ap/beacon.c
|
||||||
|
-+++ b/src/ap/beacon.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/beacon.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/beacon.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/beacon.c
|
||||||
|
@@ -852,6 +852,12 @@ void handle_probe_req(struct hostapd_dat
|
||||||
|
u16 csa_offs[2];
|
||||||
|
size_t csa_offs_len;
|
||||||
|
@@ -206,8 +216,10 @@
|
||||||
|
/* TODO: verify that supp_rates contains at least one matching rate
|
||||||
|
* with AP configuration */
|
||||||
|
|
||||||
|
---- a/src/ap/drv_callbacks.c
|
||||||
|
-+++ b/src/ap/drv_callbacks.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/drv_callbacks.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/drv_callbacks.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/drv_callbacks.c
|
||||||
|
@@ -145,6 +145,10 @@ int hostapd_notif_assoc(struct hostapd_d
|
||||||
|
u16 reason = WLAN_REASON_UNSPECIFIED;
|
||||||
|
int status = WLAN_STATUS_SUCCESS;
|
||||||
|
@@ -232,8 +244,10 @@
|
||||||
|
#ifdef CONFIG_P2P
|
||||||
|
if (elems.p2p) {
|
||||||
|
wpabuf_free(sta->p2p_ie);
|
||||||
|
---- a/src/ap/sta_info.c
|
||||||
|
-+++ b/src/ap/sta_info.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/sta_info.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/sta_info.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/sta_info.c
|
||||||
|
@@ -458,6 +458,7 @@ void ap_handle_timer(void *eloop_ctx, vo
|
||||||
|
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
||||||
|
HOSTAPD_LEVEL_INFO, "deauthenticated due to "
|
||||||
|
@@ -250,7 +264,15 @@
|
||||||
|
ap_free_sta(hapd, sta);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
-@@ -1329,6 +1331,7 @@ void ap_sta_set_authorized(struct hostap
|
||||||
|
+@@ -1319,6 +1321,7 @@ void ap_sta_set_authorized(struct hostap
|
||||||
|
+ " keyid=%s", keyid);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
++ hostapd_ubus_notify_authorized(hapd, sta);
|
||||||
|
+ wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_CONNECTED "%s%s%s",
|
||||||
|
+ buf, ip_addr, keyid_buf);
|
||||||
|
+
|
||||||
|
+@@ -1329,6 +1332,7 @@ void ap_sta_set_authorized(struct hostap
|
||||||
|
buf, ip_addr, keyid_buf);
|
||||||
|
} else {
|
||||||
|
wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_DISCONNECTED "%s", buf);
|
||||||
|
@@ -258,8 +280,10 @@
|
||||||
|
|
||||||
|
if (hapd->msg_ctx_parent &&
|
||||||
|
hapd->msg_ctx_parent != hapd->msg_ctx)
|
||||||
|
---- a/src/ap/wpa_auth_glue.c
|
||||||
|
-+++ b/src/ap/wpa_auth_glue.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/wpa_auth_glue.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/wpa_auth_glue.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/wpa_auth_glue.c
|
||||||
|
@@ -265,6 +265,7 @@ static void hostapd_wpa_auth_psk_failure
|
||||||
|
struct hostapd_data *hapd = ctx;
|
||||||
|
wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_POSSIBLE_PSK_MISMATCH MACSTR,
|
||||||
|
@@ -268,8 +292,10 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
---- a/wpa_supplicant/Makefile
|
||||||
|
-+++ b/wpa_supplicant/Makefile
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/wpa_supplicant/Makefile
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/wpa_supplicant/Makefile
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/wpa_supplicant/Makefile
|
||||||
|
@@ -176,6 +176,12 @@ ifdef CONFIG_EAPOL_TEST
|
||||||
|
CFLAGS += -Werror -DEAPOL_TEST
|
||||||
|
endif
|
||||||
|
@@ -293,8 +319,10 @@
|
||||||
|
endif
|
||||||
|
|
||||||
|
CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
|
||||||
|
---- a/wpa_supplicant/wpa_supplicant.c
|
||||||
|
-+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/wpa_supplicant/wpa_supplicant.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/wpa_supplicant/wpa_supplicant.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/wpa_supplicant/wpa_supplicant.c
|
||||||
|
@@ -7241,6 +7241,8 @@ struct wpa_supplicant * wpa_supplicant_a
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_P2P */
|
||||||
|
@@ -326,8 +354,10 @@
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
---- a/wpa_supplicant/wpa_supplicant_i.h
|
||||||
|
-+++ b/wpa_supplicant/wpa_supplicant_i.h
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/wpa_supplicant/wpa_supplicant_i.h
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/wpa_supplicant/wpa_supplicant_i.h
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/wpa_supplicant/wpa_supplicant_i.h
|
||||||
|
@@ -19,6 +19,7 @@
|
||||||
|
#include "wps/wps_defs.h"
|
||||||
|
#include "config_ssid.h"
|
||||||
|
@@ -353,8 +383,10 @@
|
||||||
|
#ifdef CONFIG_MATCH_IFACE
|
||||||
|
int matched;
|
||||||
|
#endif /* CONFIG_MATCH_IFACE */
|
||||||
|
---- a/wpa_supplicant/wps_supplicant.c
|
||||||
|
-+++ b/wpa_supplicant/wps_supplicant.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/wpa_supplicant/wps_supplicant.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/wpa_supplicant/wps_supplicant.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/wpa_supplicant/wps_supplicant.c
|
||||||
|
@@ -33,6 +33,7 @@
|
||||||
|
#include "p2p/p2p.h"
|
||||||
|
#include "p2p_supplicant.h"
|
||||||
|
@@ -372,8 +404,10 @@
|
||||||
|
if (wpa_s->conf->wps_cred_processing == 1)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
---- a/hostapd/main.c
|
||||||
|
-+++ b/hostapd/main.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/hostapd/main.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/hostapd/main.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/hostapd/main.c
|
||||||
|
@@ -895,6 +895,7 @@ int main(int argc, char *argv[])
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -390,8 +424,10 @@
|
||||||
|
hostapd_global_ctrl_iface_deinit(&interfaces);
|
||||||
|
/* Deinitialize all interfaces */
|
||||||
|
for (i = 0; i < interfaces.count; i++) {
|
||||||
|
---- a/wpa_supplicant/main.c
|
||||||
|
-+++ b/wpa_supplicant/main.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/wpa_supplicant/main.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/wpa_supplicant/main.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/wpa_supplicant/main.c
|
||||||
|
@@ -203,7 +203,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
@@ -411,8 +447,10 @@
|
||||||
|
case 'o':
|
||||||
|
params.override_driver = optarg;
|
||||||
|
break;
|
||||||
|
---- a/src/ap/rrm.c
|
||||||
|
-+++ b/src/ap/rrm.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/rrm.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/rrm.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/rrm.c
|
||||||
|
@@ -89,6 +89,9 @@ static void hostapd_handle_beacon_report
|
||||||
|
return;
|
||||||
|
wpa_msg(hapd->msg_ctx, MSG_INFO, BEACON_RESP_RX MACSTR " %u %02x %s",
|
||||||
|
@@ -423,8 +461,10 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
---- a/src/ap/vlan_init.c
|
||||||
|
-+++ b/src/ap/vlan_init.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/vlan_init.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/vlan_init.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/vlan_init.c
|
||||||
|
@@ -22,6 +22,7 @@
|
||||||
|
static int vlan_if_add(struct hostapd_data *hapd, struct hostapd_vlan *vlan,
|
||||||
|
int existsok)
|
||||||
|
@@ -461,8 +501,10 @@
|
||||||
|
return hostapd_vlan_if_remove(hapd, vlan->ifname);
|
||||||
|
}
|
||||||
|
|
||||||
|
---- a/src/ap/dfs.c
|
||||||
|
-+++ b/src/ap/dfs.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/dfs.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/dfs.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/dfs.c
|
||||||
|
@@ -1196,6 +1196,8 @@ int hostapd_dfs_radar_detected(struct ho
|
||||||
|
"freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
|
||||||
|
freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
|
||||||
|
@@ -472,8 +514,10 @@
|
||||||
|
/* Proceed only if DFS is not offloaded to the driver */
|
||||||
|
if (iface->drv_flags & WPA_DRIVER_FLAGS_DFS_OFFLOAD)
|
||||||
|
return 0;
|
||||||
|
---- a/src/ap/airtime_policy.c
|
||||||
|
-+++ b/src/ap/airtime_policy.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/airtime_policy.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/airtime_policy.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/airtime_policy.c
|
||||||
|
@@ -112,8 +112,14 @@ static void set_sta_weights(struct hosta
|
||||||
|
{
|
||||||
|
struct sta_info *sta;
|
||||||
|
@@ -503,8 +547,10 @@
|
||||||
|
if (weight)
|
||||||
|
return sta_set_airtime_weight(hapd, sta, weight);
|
||||||
|
}
|
||||||
|
---- a/src/ap/sta_info.h
|
||||||
|
-+++ b/src/ap/sta_info.h
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/sta_info.h
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/sta_info.h
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/sta_info.h
|
||||||
|
@@ -324,6 +324,7 @@ struct sta_info {
|
||||||
|
#endif /* CONFIG_TESTING_OPTIONS */
|
||||||
|
#ifdef CONFIG_AIRTIME_POLICY
|
||||||
|
@@ -513,8 +559,10 @@
|
||||||
|
struct os_reltime backlogged_until;
|
||||||
|
#endif /* CONFIG_AIRTIME_POLICY */
|
||||||
|
|
||||||
|
---- a/src/ap/wnm_ap.c
|
||||||
|
-+++ b/src/ap/wnm_ap.c
|
||||||
|
+Index: hostapd-2022-01-16-cff80b4f/src/ap/wnm_ap.c
|
||||||
|
+===================================================================
|
||||||
|
+--- hostapd-2022-01-16-cff80b4f.orig/src/ap/wnm_ap.c
|
||||||
|
++++ hostapd-2022-01-16-cff80b4f/src/ap/wnm_ap.c
|
||||||
|
@@ -442,7 +442,8 @@ static void ieee802_11_rx_bss_trans_mgmt
|
||||||
|
wpa_hexdump(MSG_DEBUG, "WNM: BSS Transition Candidate List Entries",
|
||||||
|
pos, end - pos);
|
||||||
|
diff --git a/package/network/services/hostapd/src/src/ap/ubus.c b/package/network/services/hostapd/src/src/ap/ubus.c
|
||||||
|
index fdc2a3fd26..441f23226c 100644
|
||||||
|
--- a/package/network/services/hostapd/src/src/ap/ubus.c
|
||||||
|
+++ b/package/network/services/hostapd/src/src/ap/ubus.c
|
||||||
|
@@ -1843,10 +1843,30 @@ void hostapd_ubus_notify(struct hostapd_data *hapd, const char *type, const u8 *
|
||||||
|
|
||||||
|
blob_buf_init(&b, 0);
|
||||||
|
blobmsg_add_macaddr(&b, "address", addr);
|
||||||
|
+ blobmsg_add_string(&b, "ifname", hapd->conf->iface);
|
||||||
|
|
||||||
|
ubus_notify(ctx, &hapd->ubus.obj, type, b.head, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void hostapd_ubus_notify_authorized(struct hostapd_data *hapd, struct sta_info *sta)
|
||||||
|
+{
|
||||||
|
+ if (!hapd->ubus.obj.has_subscribers)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ blob_buf_init(&b, 0);
|
||||||
|
+ blobmsg_add_macaddr(&b, "address", sta->addr);
|
||||||
|
+ blobmsg_add_string(&b, "ifname", hapd->conf->iface);
|
||||||
|
+ if (sta->bandwidth[0] || sta->bandwidth[1]) {
|
||||||
|
+ void *r = blobmsg_open_array(&b, "rate-limit");
|
||||||
|
+
|
||||||
|
+ blobmsg_add_u32(&b, "", sta->bandwidth[0]);
|
||||||
|
+ blobmsg_add_u32(&b, "", sta->bandwidth[1]);
|
||||||
|
+ blobmsg_close_array(&b, r);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ ubus_notify(ctx, &hapd->ubus.obj, "sta-authorized", b.head, -1);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void hostapd_ubus_notify_beacon_report(
|
||||||
|
struct hostapd_data *hapd, const u8 *addr, u8 token, u8 rep_mode,
|
||||||
|
struct rrm_measurement_beacon_report *rep, size_t len)
|
||||||
|
diff --git a/package/network/services/hostapd/src/src/ap/ubus.h b/package/network/services/hostapd/src/src/ap/ubus.h
|
||||||
|
index f1bc093e57..b3d6e93844 100644
|
||||||
|
--- a/package/network/services/hostapd/src/src/ap/ubus.h
|
||||||
|
+++ b/package/network/services/hostapd/src/src/ap/ubus.h
|
||||||
|
@@ -54,6 +54,7 @@ void hostapd_ubus_notify_beacon_report(struct hostapd_data *hapd,
|
||||||
|
size_t len);
|
||||||
|
void hostapd_ubus_notify_radar_detected(struct hostapd_iface *iface, int frequency,
|
||||||
|
int chan_width, int cf1, int cf2);
|
||||||
|
+void hostapd_ubus_notify_authorized(struct hostapd_data *hapd, struct sta_info *sta);
|
||||||
|
|
||||||
|
void hostapd_ubus_notify_bss_transition_response(
|
||||||
|
struct hostapd_data *hapd, const u8 *addr, u8 dialog_token, u8 status_code,
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
Reference in New Issue
Block a user