Lines Matching refs:link_id
3344 int link_id = _link_id; in __nl80211_set_channel() local
3353 if (link_id < 0) { in __nl80211_set_channel()
3356 link_id = 0; in __nl80211_set_channel()
3369 if (wdev->links[link_id].ap.beacon_interval) { in __nl80211_set_channel()
3378 cur_chan = wdev->links[link_id].ap.chandef.chan; in __nl80211_set_channel()
3382 result = rdev_set_ap_chanwidth(rdev, dev, link_id, in __nl80211_set_channel()
3386 wdev->links[link_id].ap.chandef = chandef; in __nl80211_set_channel()
3405 int link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_set_channel() local
3410 ret = __nl80211_set_channel(rdev, netdev, info, link_id); in nl80211_set_channel()
3517 txq_params.link_id = in nl80211_set_wiphy()
3521 if (txq_params.link_id >= 0 && in nl80211_set_wiphy()
3523 BIT(txq_params.link_id))) in nl80211_set_wiphy()
3525 else if (txq_params.link_id >= 0 && in nl80211_set_wiphy()
3538 int link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_set_wiphy() local
3545 info, link_id); in nl80211_set_wiphy()
3548 result = __nl80211_set_channel(rdev, netdev, info, link_id); in nl80211_set_wiphy()
3893 unsigned int link_id; in nl80211_send_iface() local
3900 for_each_valid_link(wdev, link_id) { in nl80211_send_iface()
3901 struct nlattr *link = nla_nest_start(msg, link_id + 1); in nl80211_send_iface()
3908 if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id)) in nl80211_send_iface()
3911 wdev->links[link_id].addr)) in nl80211_send_iface()
3914 ret = rdev_get_channel(rdev, wdev, link_id, &chandef); in nl80211_send_iface()
4386 int link_id, bool pairwise) in nl80211_validate_key_link_id() argument
4389 if (link_id != -1) { in nl80211_validate_key_link_id()
4399 if (link_id == -1) { in nl80211_validate_key_link_id()
4404 if (!(wdev->valid_links & BIT(link_id))) { in nl80211_validate_key_link_id()
4408 } else if (link_id != -1) { in nl80211_validate_key_link_id()
4477 int link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_get_key() local
4537 err = nl80211_validate_key_link_id(info, wdev, link_id, pairwise); in nl80211_get_key()
4541 err = rdev_get_key(rdev, dev, link_id, key_idx, pairwise, mac_addr, in nl80211_get_key()
4566 int link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_set_key() local
4595 err = nl80211_validate_key_link_id(info, wdev, link_id, false); in nl80211_set_key()
4599 err = rdev_set_default_key(rdev, dev, link_id, key.idx, in nl80211_set_key()
4623 err = nl80211_validate_key_link_id(info, wdev, link_id, false); in nl80211_set_key()
4627 err = rdev_set_default_mgmt_key(rdev, dev, link_id, key.idx); in nl80211_set_key()
4649 err = nl80211_validate_key_link_id(info, wdev, link_id, false); in nl80211_set_key()
4653 err = rdev_set_default_beacon_key(rdev, dev, link_id, key.idx); in nl80211_set_key()
4669 err = nl80211_validate_key_link_id(info, wdev, link_id, true); in nl80211_set_key()
4673 err = rdev_add_key(rdev, dev, link_id, key.idx, in nl80211_set_key()
4692 int link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_new_key() local
4741 err = nl80211_validate_key_link_id(info, wdev, link_id, in nl80211_new_key()
4745 err = rdev_add_key(rdev, dev, link_id, key.idx, in nl80211_new_key()
4763 int link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_del_key() local
4800 err = nl80211_validate_key_link_id(info, wdev, link_id, in nl80211_del_key()
4804 err = rdev_del_key(rdev, dev, link_id, key.idx, in nl80211_del_key()
5053 static u16 he_get_txmcsmap(struct genl_info *info, unsigned int link_id, in he_get_txmcsmap() argument
5061 chandef = wdev_chandef(wdev, link_id); in he_get_txmcsmap()
5090 unsigned int link_id) in he_set_mcs_mask() argument
5103 tx_mcs_map = he_get_txmcsmap(info, link_id, he_cap); in he_set_mcs_mask()
5124 unsigned int link_id) in nl80211_parse_tx_bitrate_mask() argument
5161 he_tx_mcs_map = he_get_txmcsmap(info, link_id, he_cap); in nl80211_parse_tx_bitrate_mask()
5227 link_id)) in nl80211_parse_tx_bitrate_mask()
5464 bcn->link_id = nl80211_link_id(attrs); in nl80211_parse_beacon()
5810 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_start_ap() local
5823 if (wdev->links[link_id].ap.beacon_interval) in nl80211_start_ap()
5975 dev, false, link_id); in nl80211_start_ap()
6087 wdev->links[link_id].ap.beacon_interval = params->beacon_interval; in nl80211_start_ap()
6088 wdev->links[link_id].ap.chandef = params->chandef; in nl80211_start_ap()
6113 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_set_beacon() local
6126 if (!wdev->links[link_id].ap.beacon_interval) in nl80211_set_beacon()
6145 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_stop_ap() local
6148 return cfg80211_stop_ap(rdev, dev, link_id, false); in nl80211_stop_ap()
7058 params.link_sta_params.link_id = in nl80211_set_station()
7067 if (params.link_sta_params.link_id < 0) in nl80211_set_station()
7209 params.link_sta_params.link_id = in nl80211_new_station()
7442 if (params.link_sta_params.link_id < 0) { in nl80211_new_station()
7446 if (!(wdev->valid_links & BIT(params.link_sta_params.link_id))) { in nl80211_new_station()
7451 if (params.link_sta_params.link_id >= 0) { in nl80211_new_station()
7844 params.link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_set_bss()
8857 unsigned int link_id; in cfg80211_off_channel_oper_allowed() local
8873 for_each_valid_link(wdev, link_id) { in cfg80211_off_channel_oper_allowed()
8876 chandef = wdev_chandef(wdev, link_id); in cfg80211_off_channel_oper_allowed()
9931 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_channel_switch() local
9958 if (!wdev->links[link_id].ap.beacon_interval) in nl80211_channel_switch()
10145 unsigned int link_id; in nl80211_send_bss() local
10250 for_each_valid_link(wdev, link_id) { in nl80211_send_bss()
10251 if (intbss == wdev->links[link_id].client.current_bss && in nl80211_send_bss()
10256 link_id) || in nl80211_send_bss()
10605 req.link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_authenticate()
10606 if (req.link_id >= 0) { in nl80211_authenticate()
10808 unsigned int link_id; in nl80211_associate() local
10925 req.link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_associate()
10932 if (req.link_id < 0) in nl80211_associate()
10963 link_id = nla_get_u8(attrs[NL80211_ATTR_MLO_LINK_ID]); in nl80211_associate()
10965 if (req.links[link_id].bss) { in nl80211_associate()
10969 req.links[link_id].bss = in nl80211_associate()
10971 if (IS_ERR(req.links[link_id].bss)) { in nl80211_associate()
10972 err = PTR_ERR(req.links[link_id].bss); in nl80211_associate()
10973 req.links[link_id].bss = NULL; in nl80211_associate()
10978 req.links[link_id].elems = in nl80211_associate()
10980 req.links[link_id].elems_len = in nl80211_associate()
10984 req.links[link_id].elems, in nl80211_associate()
10985 req.links[link_id].elems_len)) { in nl80211_associate()
10993 req.links[link_id].elems, in nl80211_associate()
10994 req.links[link_id].elems_len)) { in nl80211_associate()
11003 if (!req.links[req.link_id].bss) { in nl80211_associate()
11008 if (req.links[req.link_id].elems_len) { in nl80211_associate()
11018 if (req.link_id >= 0) in nl80211_associate()
11044 for (link_id = 0; link_id < ARRAY_SIZE(req.links); link_id++) in nl80211_associate()
11045 cfg80211_put_bss(&rdev->wiphy, req.links[link_id].bss); in nl80211_associate()
12168 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_remain_on_channel() local
12203 oper_chandef = wdev_chandef(wdev, link_id); in nl80211_remain_on_channel()
12277 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_set_tx_bitrate_mask() local
12289 dev, true, link_id); in nl80211_set_tx_bitrate_mask()
12293 err = rdev_set_bitrate_mask(rdev, dev, link_id, NULL, &mask); in nl80211_set_tx_bitrate_mask()
12432 params.link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_tx_mgmt()
12438 if (params.link_id >= 0 && in nl80211_tx_mgmt()
12439 !(wdev->valid_links & BIT(params.link_id))) { in nl80211_tx_mgmt()
15452 int link_id; in nl80211_tx_control_port() local
15501 link_id = nl80211_link_id_or_invalid(info->attrs); in nl80211_tx_control_port()
15504 dest, cpu_to_be16(proto), noencrypt, link_id, in nl80211_tx_control_port()
15521 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_get_ftm_responder_stats() local
15528 !wdev->links[link_id].ap.beacon_interval) in nl80211_get_ftm_responder_stats()
15659 unsigned int link_id) in parse_tid_conf() argument
15734 true, link_id); in parse_tid_conf()
15761 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_set_tid_config() local
15801 info, tid_config->peer, link_id); in nl80211_set_tid_config()
15944 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_add_link() local
15964 wdev->valid_links |= BIT(link_id); in nl80211_add_link()
15965 ether_addr_copy(wdev->links[link_id].addr, in nl80211_add_link()
15968 ret = rdev_add_intf_link(rdev, wdev, link_id); in nl80211_add_link()
15970 wdev->valid_links &= ~BIT(link_id); in nl80211_add_link()
15971 eth_zero_addr(wdev->links[link_id].addr); in nl80211_add_link()
15980 unsigned int link_id = nl80211_link_id(info->attrs); in nl80211_remove_link() local
15996 cfg80211_remove_link(wdev, link_id); in nl80211_remove_link()
16035 params.link_id = nla_get_u8(info->attrs[NL80211_ATTR_MLO_LINK_ID]); in nl80211_add_mod_link_station()
16125 params.link_id = nla_get_u8(info->attrs[NL80211_ATTR_MLO_LINK_ID]); in nl80211_remove_link_station()
16278 struct nlattr *link_id = info->attrs[NL80211_ATTR_MLO_LINK_ID]; in nl80211_pre_doit() local
16287 (!link_id || in nl80211_pre_doit()
16288 !(wdev->valid_links & BIT(nla_get_u8(link_id))))) { in nl80211_pre_doit()
16294 if (!wdev->valid_links && link_id) { in nl80211_pre_doit()
18582 nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, info->link_id)) || in nl80211_send_mgmt()
18689 int link_id, in __nl80211_rx_control_port() argument
18722 (link_id >= 0 && in __nl80211_rx_control_port()
18723 nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id)) || in __nl80211_rx_control_port()
18743 bool unencrypted, int link_id) in cfg80211_rx_control_port() argument
18747 trace_cfg80211_rx_control_port(dev, skb, unencrypted, link_id); in cfg80211_rx_control_port()
18748 ret = __nl80211_rx_control_port(dev, skb, unencrypted, link_id, in cfg80211_rx_control_port()
19033 unsigned int link_id, in nl80211_ch_switch_notify() argument
19057 nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id)) in nl80211_ch_switch_notify()
19086 unsigned int link_id, u16 punct_bitmap) in cfg80211_ch_switch_notify() argument
19093 WARN_INVALID_LINK_ID(wdev, link_id); in cfg80211_ch_switch_notify()
19095 trace_cfg80211_ch_switch_notify(dev, chandef, link_id, punct_bitmap); in cfg80211_ch_switch_notify()
19100 if (!WARN_ON(!wdev->links[link_id].client.current_bss)) in cfg80211_ch_switch_notify()
19101 cfg80211_update_assoc_bss_entry(wdev, link_id, in cfg80211_ch_switch_notify()
19110 wdev->links[link_id].ap.chandef = *chandef; in cfg80211_ch_switch_notify()
19122 nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL, in cfg80211_ch_switch_notify()
19130 unsigned int link_id, u8 count, in cfg80211_ch_switch_started_notify() argument
19138 WARN_INVALID_LINK_ID(wdev, link_id); in cfg80211_ch_switch_started_notify()
19140 trace_cfg80211_ch_switch_started_notify(dev, chandef, link_id, in cfg80211_ch_switch_started_notify()
19144 nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL, in cfg80211_ch_switch_started_notify()
19750 void nl80211_send_ap_stopped(struct wireless_dev *wdev, unsigned int link_id) in nl80211_send_ap_stopped() argument
19770 nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id))) in nl80211_send_ap_stopped()