[openwrt/openwrt] hostapd: fold extra APuP patches into main patch + src/

LEDE Commits lede-commits at lists.infradead.org
Sat Sep 21 09:36:12 PDT 2024


nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/1a288670d99012e2921c2a8906e7a61dc8e89e72

commit 1a288670d99012e2921c2a8906e7a61dc8e89e72
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Wed Sep 18 18:10:25 2024 +0200

    hostapd: fold extra APuP patches into main patch + src/
    
    Simplifies maintenance
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 ...Implement-APuP-Access-Point-Micro-Peering.patch | 28 +++++++--
 ...dd-ubus-notification-when-a-peer-comes-up.patch | 72 ----------------------
 ...P-add-ucode-hook-for-when-a-peer-comes-up.patch | 70 ---------------------
 package/network/services/hostapd/src/src/ap/ubus.c | 15 +++++
 package/network/services/hostapd/src/src/ap/ubus.h |  5 ++
 .../network/services/hostapd/src/src/ap/ucode.c    | 17 +++++
 .../network/services/hostapd/src/src/ap/ucode.h    |  4 ++
 7 files changed, 63 insertions(+), 148 deletions(-)

diff --git a/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch b/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch
index e72864efa1..157b7dbb82 100644
--- a/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch
+++ b/package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch
@@ -53,7 +53,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -5202,6 +5202,15 @@ static int hostapd_config_fill(struct ho
+@@ -5200,6 +5200,15 @@ static int hostapd_config_fill(struct ho
  		bss->mld_indicate_disabled = atoi(pos);
  #endif /* CONFIG_TESTING_OPTIONS */
  #endif /* CONFIG_IEEE80211BE */
@@ -71,7 +71,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  			   "Line %d: unknown configuration item '%s'",
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1000,6 +1000,35 @@ struct hostapd_bss_config {
+@@ -999,6 +999,35 @@ struct hostapd_bss_config {
  	bool mld_indicate_disabled;
  #endif /* CONFIG_TESTING_OPTIONS */
  #endif /* CONFIG_IEEE80211BE */
@@ -164,7 +164,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  int hostapd_sta_add(struct hostapd_data *hapd,
 --- /dev/null
 +++ b/src/ap/apup.c
-@@ -0,0 +1,152 @@
+@@ -0,0 +1,168 @@
 +/*
 + * hostapd / APuP Access Point Micro Peering
 + *
@@ -190,6 +190,14 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
 +#include "ap_drv_ops.h"
 +#include "sta_info.h"
 +
++#ifdef UBUS_SUPPORT
++#	include "ubus.h"
++#endif
++
++#ifdef UCODE_SUPPORT
++#	include "ucode.h"
++#endif
++
 +void apup_process_beacon(struct hostapd_data *hapd,
 +              const struct ieee80211_mgmt *mgmt, size_t len,
 +              const struct ieee802_11_elems *elems )
@@ -316,6 +324,14 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
 +	           "apup_process_beacon(...) Added APuP peer at %s with flags: %d,"
 +	           " capabilities %d",
 +	           mIfname, sta_ret->flags, sta_ret->capability);
++
++#ifdef UBUS_SUPPORT
++	hostapd_ubus_notify_apup_newpeer(hapd, mgmt->bssid, mIfname);
++#endif
++
++#ifdef UCODE_SUPPORT
++	hostapd_ucode_apup_newpeer(hapd, mIfname);
++#endif
 +}
 --- /dev/null
 +++ b/src/ap/apup.h
@@ -356,7 +372,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  
  #ifdef CONFIG_FILS
  static struct wpabuf *
-@@ -3588,8 +3591,8 @@ static u16 check_multi_ap(struct hostapd
+@@ -3615,8 +3618,8 @@ static u16 check_multi_ap(struct hostapd
  }
  
  
@@ -367,7 +383,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  {
  	/* Supported rates not used in IEEE 802.11ad/DMG */
  	if (hapd->iface->current_mode &&
-@@ -3976,7 +3979,7 @@ static int __check_assoc_ies(struct host
+@@ -4003,7 +4006,7 @@ static int __check_assoc_ies(struct host
  			       elems->ext_capab_len);
  	if (resp != WLAN_STATUS_SUCCESS)
  		return resp;
@@ -376,7 +392,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  	if (resp != WLAN_STATUS_SUCCESS)
  		return resp;
  
-@@ -6031,6 +6034,11 @@ static void handle_beacon(struct hostapd
+@@ -6058,6 +6061,11 @@ static void handle_beacon(struct hostapd
  				      0);
  
  	ap_list_process_beacon(hapd->iface, mgmt, &elems, fi);
diff --git a/package/network/services/hostapd/patches/790-APuP-add-ubus-notification-when-a-peer-comes-up.patch b/package/network/services/hostapd/patches/790-APuP-add-ubus-notification-when-a-peer-comes-up.patch
deleted file mode 100644
index 1efec5f806..0000000000
--- a/package/network/services/hostapd/patches/790-APuP-add-ubus-notification-when-a-peer-comes-up.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 9a265f70b5e4e048c568564aed5f9ac4a4fd76b0 Mon Sep 17 00:00:00 2001
-From: Gioacchino Mazzurco <gio at polymathes.cc>
-Date: Tue, 7 May 2024 10:37:54 +0200
-Subject: [PATCH 2/3] APuP add ubus notification when a peer comes up
-
-The notification ones get looks like
-{ "apup-newpeer": {"address":"02:0a:ab:45:5a:ab","ifname":"wlan0.peer1"} }
-
-Signed-off-by: Gioacchino Mazzurco <gio at polymathes.cc>
----
- src/ap/apup.c |  8 ++++++++
- src/ap/ubus.c | 15 +++++++++++++++
- src/ap/ubus.h |  5 +++++
- 3 files changed, 28 insertions(+)
-
---- a/src/ap/apup.c
-+++ b/src/ap/apup.c
-@@ -23,6 +23,10 @@
- #include "ap_drv_ops.h"
- #include "sta_info.h"
- 
-+#ifdef UBUS_SUPPORT
-+#	include "ubus.h"
-+#endif
-+
- void apup_process_beacon(struct hostapd_data *hapd,
-               const struct ieee80211_mgmt *mgmt, size_t len,
-               const struct ieee802_11_elems *elems )
-@@ -149,4 +153,8 @@ void apup_process_beacon(struct hostapd_
- 	           "apup_process_beacon(...) Added APuP peer at %s with flags: %d,"
- 	           " capabilities %d",
- 	           mIfname, sta_ret->flags, sta_ret->capability);
-+
-+#ifdef UBUS_SUPPORT
-+	hostapd_ubus_notify_apup_newpeer(hapd, mgmt->bssid, mIfname);
-+#endif
- }
---- a/src/ap/ubus.c
-+++ b/src/ap/ubus.c
-@@ -2004,3 +2004,18 @@ int hostapd_ubus_notify_bss_transition_q
- 	return ureq.resp;
- #endif
- }
-+
-+#ifdef CONFIG_APUP
-+void hostapd_ubus_notify_apup_newpeer(
-+	struct hostapd_data *hapd, const u8 *addr, const char *ifname)
-+{
-+	if (!hapd->ubus.obj.has_subscribers)
-+		return;
-+
-+	blob_buf_init(&b, 0);
-+	blobmsg_add_macaddr(&b, "address", addr);
-+	blobmsg_add_string(&b, "ifname", ifname);
-+
-+	ubus_notify(ctx, &hapd->ubus.obj, "apup-newpeer", b.head, -1);
-+}
-+#endif // def CONFIG_APUP
---- a/src/ap/ubus.h
-+++ b/src/ap/ubus.h
-@@ -69,6 +69,11 @@ int hostapd_ubus_notify_bss_transition_q
- void hostapd_ubus_notify_authorized(struct hostapd_data *hapd, struct sta_info *sta,
- 				    const char *auth_alg);
- 
-+#ifdef CONFIG_APUP
-+void hostapd_ubus_notify_apup_newpeer(
-+	struct hostapd_data *hapd, const u8 *addr, const char *ifname);
-+#endif // def CONFIG_APUP
-+
- #else
- 
- struct hostapd_ubus_bss {};
diff --git a/package/network/services/hostapd/patches/800-APuP-add-ucode-hook-for-when-a-peer-comes-up.patch b/package/network/services/hostapd/patches/800-APuP-add-ucode-hook-for-when-a-peer-comes-up.patch
deleted file mode 100644
index a4e2fe827b..0000000000
--- a/package/network/services/hostapd/patches/800-APuP-add-ucode-hook-for-when-a-peer-comes-up.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From aaeb60b39a72774c651187208ec47efd0daeb75b Mon Sep 17 00:00:00 2001
-From: Gioacchino Mazzurco <gio at polymathes.cc>
-Date: Tue, 7 May 2024 11:54:23 +0200
-Subject: [PATCH 3/3] APuP add ucode hook for when a peer comes up
-
-Signed-off-by: Gioacchino Mazzurco <gio at polymathes.cc>
----
- src/ap/apup.c  |  8 ++++++++
- src/ap/ucode.c | 17 +++++++++++++++++
- src/ap/ucode.h |  4 ++++
- 3 files changed, 29 insertions(+)
-
---- a/src/ap/apup.c
-+++ b/src/ap/apup.c
-@@ -27,6 +27,10 @@
- #	include "ubus.h"
- #endif
- 
-+#ifdef UCODE_SUPPORT
-+#	include "ucode.h"
-+#endif
-+
- void apup_process_beacon(struct hostapd_data *hapd,
-               const struct ieee80211_mgmt *mgmt, size_t len,
-               const struct ieee802_11_elems *elems )
-@@ -157,4 +161,8 @@ void apup_process_beacon(struct hostapd_
- #ifdef UBUS_SUPPORT
- 	hostapd_ubus_notify_apup_newpeer(hapd, mgmt->bssid, mIfname);
- #endif
-+
-+#ifdef UCODE_SUPPORT
-+	hostapd_ucode_apup_newpeer(hapd, mIfname);
-+#endif
- }
---- a/src/ap/ucode.c
-+++ b/src/ap/ucode.c
-@@ -802,3 +802,20 @@ void hostapd_ucode_free_bss(struct hosta
- 	ucv_put(wpa_ucode_call(2));
- 	ucv_gc(vm);
- }
-+
-+#ifdef CONFIG_APUP
-+void hostapd_ucode_apup_newpeer(struct hostapd_data *hapd, const char *ifname)
-+{
-+	uc_value_t *val;
-+
-+	if (wpa_ucode_call_prepare("apup_newpeer"))
-+		return;
-+
-+	val = hostapd_ucode_bss_get_uval(hapd);
-+	uc_value_push(ucv_get(ucv_string_new(hapd->conf->iface))); // BSS ifname
-+	uc_value_push(ucv_get(val));
-+	uc_value_push(ucv_get(ucv_string_new(ifname))); // APuP peer ifname
-+	ucv_put(wpa_ucode_call(2));
-+	ucv_gc(vm);
-+}
-+#endif // def CONFIG_APUP
---- a/src/ap/ucode.h
-+++ b/src/ap/ucode.h
-@@ -26,6 +26,10 @@ void hostapd_ucode_free_iface(struct hos
- void hostapd_ucode_free_bss(struct hostapd_data *hapd);
- void hostapd_ucode_bss_cb(struct hostapd_data *hapd, const char *type);
- 
-+#ifdef CONFIG_APUP
-+void hostapd_ucode_apup_newpeer(struct hostapd_data *hapd, const char *ifname);
-+#endif // def CONFIG_APUP
-+
- #else
- 
- static inline int hostapd_ucode_init(struct hapd_interfaces *ifaces)
diff --git a/package/network/services/hostapd/src/src/ap/ubus.c b/package/network/services/hostapd/src/src/ap/ubus.c
index 8689494bcf..f21516fc3c 100644
--- a/package/network/services/hostapd/src/src/ap/ubus.c
+++ b/package/network/services/hostapd/src/src/ap/ubus.c
@@ -2004,3 +2004,18 @@ int hostapd_ubus_notify_bss_transition_query(
 	return ureq.resp;
 #endif
 }
+
+#ifdef CONFIG_APUP
+void hostapd_ubus_notify_apup_newpeer(
+	struct hostapd_data *hapd, const u8 *addr, const char *ifname)
+{
+	if (!hapd->ubus.obj.has_subscribers)
+		return;
+
+	blob_buf_init(&b, 0);
+	blobmsg_add_macaddr(&b, "address", addr);
+	blobmsg_add_string(&b, "ifname", ifname);
+
+	ubus_notify(ctx, &hapd->ubus.obj, "apup-newpeer", b.head, -1);
+}
+#endif // def CONFIG_APUP
diff --git a/package/network/services/hostapd/src/src/ap/ubus.h b/package/network/services/hostapd/src/src/ap/ubus.h
index 5b8938cbd3..5c03cb90ad 100644
--- a/package/network/services/hostapd/src/src/ap/ubus.h
+++ b/package/network/services/hostapd/src/src/ap/ubus.h
@@ -69,6 +69,11 @@ int hostapd_ubus_notify_bss_transition_query(
 void hostapd_ubus_notify_authorized(struct hostapd_data *hapd, struct sta_info *sta,
 				    const char *auth_alg);
 
+#ifdef CONFIG_APUP
+void hostapd_ubus_notify_apup_newpeer(
+	struct hostapd_data *hapd, const u8 *addr, const char *ifname);
+#endif // def CONFIG_APUP
+
 #else
 
 struct hostapd_ubus_bss {};
diff --git a/package/network/services/hostapd/src/src/ap/ucode.c b/package/network/services/hostapd/src/src/ap/ucode.c
index 751531d5a1..2c1e706804 100644
--- a/package/network/services/hostapd/src/src/ap/ucode.c
+++ b/package/network/services/hostapd/src/src/ap/ucode.c
@@ -802,3 +802,20 @@ void hostapd_ucode_free_bss(struct hostapd_data *hapd)
 	ucv_put(wpa_ucode_call(2));
 	ucv_gc(vm);
 }
+
+#ifdef CONFIG_APUP
+void hostapd_ucode_apup_newpeer(struct hostapd_data *hapd, const char *ifname)
+{
+	uc_value_t *val;
+
+	if (wpa_ucode_call_prepare("apup_newpeer"))
+		return;
+
+	val = hostapd_ucode_bss_get_uval(hapd);
+	uc_value_push(ucv_get(ucv_string_new(hapd->conf->iface))); // BSS ifname
+	uc_value_push(ucv_get(val));
+	uc_value_push(ucv_get(ucv_string_new(ifname))); // APuP peer ifname
+	ucv_put(wpa_ucode_call(2));
+	ucv_gc(vm);
+}
+#endif // def CONFIG_APUP
diff --git a/package/network/services/hostapd/src/src/ap/ucode.h b/package/network/services/hostapd/src/src/ap/ucode.h
index 53aa1f3e7f..2f7bcd6542 100644
--- a/package/network/services/hostapd/src/src/ap/ucode.h
+++ b/package/network/services/hostapd/src/src/ap/ucode.h
@@ -26,6 +26,10 @@ void hostapd_ucode_free_iface(struct hostapd_iface *iface);
 void hostapd_ucode_free_bss(struct hostapd_data *hapd);
 void hostapd_ucode_bss_cb(struct hostapd_data *hapd, const char *type);
 
+#ifdef CONFIG_APUP
+void hostapd_ucode_apup_newpeer(struct hostapd_data *hapd, const char *ifname);
+#endif // def CONFIG_APUP
+
 #else
 
 static inline int hostapd_ucode_init(struct hapd_interfaces *ifaces)




More information about the lede-commits mailing list