[rdkb][common][bsp][Refactor and sync wifi from openwrt]

[Description]
3a2eef0b [MAC80211][Release][Update release note for Filogic 880/860 MLO Beta release]
cfbd2411 [MAC80211][Release][Filogic 880/860 MLO Beta release]
6c180e3f [MAC80211][WiFi7][misc][Add Eagle BE14000 efem default bin]
a55f34db [MAC80211][Release][Prepare for Filogic 880/860 release]
5b45ebca [MAC80211][WiFi7][hostapd][Add puncture bitmap to ucode]
95bbea73 [MAC80211][WiFi6][mt76][Add PID to only report data-frame TX rate]
b15ced26 [MAC80211][WiFi6][hostapd][Fix DFS channel selection issue]
d59133cb [MAC80211][WiFi6][mt76][Fix pse info not correct information]
3921b4b2 [MAC80211][WiFi6][mt76][Fix incomplete QoS-map setting to FW]
4e7690c7 [MAC80211][WiFi6/7][app][Change ATECHANNEL mapping cmd]
eb37af90 [MAC80211][WiFi7][app][Add support for per-packet bw & primary selection]
0ea82adf [MAC80211][WiFi6][core][Fix DFS CAC issue after CSA]

[Release-log]

Change-Id: I9bec97ec1b2e1c49ed43a812a07a5b21fcbb70a6
diff --git a/recipes-wifi/iw/patches-mlo/0009-iw-support-link-id-in-set-bitrates-command.patch b/recipes-wifi/iw/patches-mlo/0009-iw-support-link-id-in-set-bitrates-command.patch
new file mode 100644
index 0000000..1914814
--- /dev/null
+++ b/recipes-wifi/iw/patches-mlo/0009-iw-support-link-id-in-set-bitrates-command.patch
@@ -0,0 +1,57 @@
+From e243763029729ced434bcf7de3c5f7909d481c41 Mon Sep 17 00:00:00 2001
+From: Howard Hsu <howard-yh.hsu@mediatek.com>
+Date: Thu, 30 May 2024 10:17:29 +0800
+Subject: [PATCH 09/13] iw: support link id in set bitrates command
+
+Since NL80211_CMD_SET_TX_BITRATE_MASK includes flag
+NL80211_FLAG_MLO_VALID_LINK_ID, nl80211_pre_do_it() will check whether
+nl80211_msg includes LINK_ID. Without this patch, iw set bitrates
+command must failed.
+
+Usage:
+iw dev <intf> set bitrates -l <link_id> [legacy | he-gi-xx ...]
+
+---
+ bitrate.c | 19 +++++++++++++++++--
+ 1 file changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/bitrate.c b/bitrate.c
+index 8714669..f0f81a0 100644
+--- a/bitrate.c
++++ b/bitrate.c
+@@ -146,7 +146,7 @@ int set_bitrates(struct nl_msg *msg,
+ 		 enum nl80211_attrs attr)
+ {
+ 	struct nlattr *nl_rates, *nl_band;
+-	int i, ret = 0;
++	int i, ret = 0, index = 0;
+ 	bool have_legacy_24 = false, have_legacy_5 = false;
+ 	uint8_t legacy_24[32], legacy_5[32];
+ 	int n_legacy_24 = 0, n_legacy_5 = 0;
+@@ -190,7 +190,22 @@ int set_bitrates(struct nl_msg *msg,
+ 		S_HE_LTF,
+ 	} parser_state = S_NONE;
+ 
+-	for (i = 0; i < argc; i++) {
++	if (!strcmp(argv[0], "-l")) {
++		unsigned int link_id;
++		char *endptr;
++
++		link_id = strtol(argv[1], &endptr, 10);
++		if (*endptr)
++			return 1;
++
++		if (link_id > 15)
++			return 1;
++
++		nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id);
++		index = 2;
++	}
++
++	for (i = index; i < argc; i++) {
+ 		char *end;
+ 		double tmpd;
+ 		long tmpl;
+-- 
+2.18.0
+