* @bssid: BSSID (Address 3)
* @data: Frame body
* @data_len: data length in octets
- @ @no_cck: Whether CCK rates must not be used to transmit this frame
+ * @no_cck: Whether CCK rates must not be used to transmit this frame
+ * @link_id: Link ID of the specified link; -1 for non-MLO cases and for
+ * frames that target the MLD instead of a specific link in MLO
+ * cases
* Returns: 0 on success, -1 on failure
*
* This command can be used to request the driver to transmit an action
*/
int (*send_action)(void *priv, unsigned int freq, unsigned int wait,
const u8 *dst, const u8 *src, const u8 *bssid,
- const u8 *data, size_t data_len, int no_cck);
+ const u8 *data, size_t data_len, int no_cck,
+ int link_id);
/**
* send_action_cancel_wait - Cancel action frame TX wait
const u8 *dst, const u8 *src,
const u8 *bssid,
const u8 *data, size_t data_len,
- int no_cck)
+ int no_cck, int link_id)
{
struct wpa_driver_nl80211_data *drv = bss->drv;
int ret = -1;
wpa_printf(MSG_DEBUG,
"nl80211: Send Action frame (ifindex=%d, freq=%u MHz wait=%d ms no_cck=%d offchanok=%d dst="
- MACSTR " src=" MACSTR " bssid=" MACSTR ")",
+ MACSTR " src=" MACSTR " bssid=" MACSTR ", link_id=%d)",
drv->ifindex, freq, wait_time, no_cck, offchanok,
- MAC2STR(dst), MAC2STR(src), MAC2STR(bssid));
+ MAC2STR(dst), MAC2STR(src), MAC2STR(bssid), link_id);
buf = os_zalloc(24 + data_len);
if (buf == NULL)
!drv->use_monitor))
ret = wpa_driver_nl80211_send_mlme(bss, buf, 24 + data_len,
0, freq, no_cck, offchanok,
- wait_time, NULL, 0, 0, -1);
+ wait_time, NULL, 0, 0,
+ link_id);
else
ret = nl80211_send_frame_cmd(bss, freq, wait_time, buf,
24 + data_len, 1, no_cck, 0,
- offchanok, NULL, 0,
- NL80211_DRV_LINK_ID_NA);
+ offchanok, NULL, 0, link_id);
os_free(buf);
return ret;
const u8 *dst, const u8 *src,
const u8 *bssid,
const u8 *data, size_t data_len,
- int no_cck)
+ int no_cck, int link_id)
{
struct i802_bss *bss = priv;
return wpa_driver_nl80211_send_action(bss, freq, wait_time, dst, src,
- bssid, data, data_len, no_cck);
+ bssid, data, data_len, no_cck,
+ link_id);
}