mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-19 03:06:35 +00:00
hostapd: report radar detected events via ubus
Events are reported on all BSS interfaces Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
8e2ca15726
commit
753a91d1d1
@ -462,3 +462,14 @@
|
|||||||
return hostapd_vlan_if_remove(hapd, vlan->ifname);
|
return hostapd_vlan_if_remove(hapd, vlan->ifname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--- a/src/ap/dfs.c
|
||||||
|
+++ b/src/ap/dfs.c
|
||||||
|
@@ -1179,6 +1179,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);
|
||||||
|
|
||||||
|
+ hostapd_ubus_notify_radar_detected(iface, freq, chan_width, cf1, cf2);
|
||||||
|
+
|
||||||
|
/* Proceed only if DFS is not offloaded to the driver */
|
||||||
|
if (iface->drv_flags & WPA_DRIVER_FLAGS_DFS_OFFLOAD)
|
||||||
|
return 0;
|
||||||
|
@ -1593,3 +1593,24 @@ void hostapd_ubus_notify_beacon_report(
|
|||||||
|
|
||||||
ubus_notify(ctx, &hapd->ubus.obj, "beacon-report", b.head, -1);
|
ubus_notify(ctx, &hapd->ubus.obj, "beacon-report", b.head, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hostapd_ubus_notify_radar_detected(struct hostapd_iface *iface, int frequency,
|
||||||
|
int chan_width, int cf1, int cf2)
|
||||||
|
{
|
||||||
|
struct hostapd_data *hapd;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (!hapd->ubus.obj.has_subscribers)
|
||||||
|
return;
|
||||||
|
|
||||||
|
blob_buf_init(&b, 0);
|
||||||
|
blobmsg_add_u16(&b, "frequency", frequency);
|
||||||
|
blobmsg_add_u16(&b, "width", chan_width);
|
||||||
|
blobmsg_add_u16(&b, "center1", cf1);
|
||||||
|
blobmsg_add_u16(&b, "center2", cf2);
|
||||||
|
|
||||||
|
for (i = 0; i < iface->num_bss; i++) {
|
||||||
|
hapd = iface->bss[i];
|
||||||
|
ubus_notify(ctx, &hapd->ubus.obj, "radar-detected", b.head, -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -52,6 +52,8 @@ void hostapd_ubus_notify_beacon_report(struct hostapd_data *hapd,
|
|||||||
const u8 *addr, u8 token, u8 rep_mode,
|
const u8 *addr, u8 token, u8 rep_mode,
|
||||||
struct rrm_measurement_beacon_report *rep,
|
struct rrm_measurement_beacon_report *rep,
|
||||||
size_t len);
|
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_add(struct hapd_interfaces *interfaces);
|
void hostapd_ubus_add(struct hapd_interfaces *interfaces);
|
||||||
void hostapd_ubus_free(struct hapd_interfaces *interfaces);
|
void hostapd_ubus_free(struct hapd_interfaces *interfaces);
|
||||||
@ -100,6 +102,10 @@ static inline void hostapd_ubus_notify_beacon_report(struct hostapd_data *hapd,
|
|||||||
size_t len)
|
size_t len)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
static inline void hostapd_ubus_notify_radar_detected(struct hostapd_iface *iface, int frequency,
|
||||||
|
int chan_width, int cf1, int cf2)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
static inline void hostapd_ubus_add(struct hapd_interfaces *interfaces)
|
static inline void hostapd_ubus_add(struct hapd_interfaces *interfaces)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user