Lines Matching refs:vif
79 struct qtnf_vif *vif;
91 vif = &mac->iflist[i];
92 if (vif->wdev.iftype != NL80211_IFTYPE_UNSPECIFIED)
93 params.iftype_num[vif->wdev.iftype]++;
112 vif = qtnf_mac_get_base_vif(mac);
113 if (vif && vif->wdev.iftype == NL80211_IFTYPE_AP &&
114 vif != change_vif && new_type == NL80211_IFTYPE_STATION) {
129 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
134 ret = qtnf_validate_iface_combinations(wiphy, vif, type);
137 vif->mac->macid, vif->vifid, type);
146 qtnf_scan_done(vif->mac, true);
148 ret = qtnf_cmd_send_change_intf_type(vif, type, use4addr, mac_addr);
151 vif->mac->macid, vif->vifid, type);
155 vif->wdev.iftype = type;
162 struct qtnf_vif *vif;
168 vif = qtnf_netdev_get_priv(wdev->netdev);
170 qtnf_scan_done(vif->mac, true);
177 while ((skb = skb_dequeue(&vif->high_pri_tx_queue)))
180 cancel_work_sync(&vif->high_pri_tx_work);
185 if (qtnf_cmd_send_del_intf(vif))
186 pr_err("VIF%u.%u: failed to delete VIF\n", vif->mac->macid,
187 vif->vifid);
189 vif->netdev->ieee80211_ptr = NULL;
190 vif->netdev = NULL;
191 vif->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED;
203 struct qtnf_vif *vif;
223 vif = qtnf_mac_get_free_vif(mac);
224 if (!vif) {
229 eth_zero_addr(vif->mac_addr);
230 eth_zero_addr(vif->bssid);
231 vif->bss_priority = QTNF_DEF_BSS_PRIORITY;
232 memset(&vif->wdev, 0, sizeof(vif->wdev));
233 vif->wdev.wiphy = wiphy;
234 vif->wdev.iftype = type;
246 ret = qtnf_cmd_send_add_intf(vif, type, use4addr, mac_addr);
249 mac->macid, vif->vifid, mac_addr);
253 if (!is_valid_ether_addr(vif->mac_addr)) {
255 mac->macid, vif->vifid, vif->mac_addr);
260 ret = qtnf_core_net_attach(mac, vif, name, name_assign_t);
263 vif->vifid);
268 ret = qtnf_cmd_netdev_changeupper(vif, vif->netdev->ifindex);
270 cfg80211_unregister_netdevice(vif->netdev);
271 vif->netdev = NULL;
276 vif->wdev.netdev = vif->netdev;
277 return &vif->wdev;
280 qtnf_cmd_send_del_intf(vif);
282 vif->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED;
287 static int qtnf_mgmt_set_appie(struct qtnf_vif *vif,
293 ret = qtnf_cmd_send_mgmt_set_appie(vif, QLINK_IE_SET_BEACON_IES,
296 ret = qtnf_cmd_send_mgmt_set_appie(vif, QLINK_IE_SET_BEACON_IES,
305 ret = qtnf_cmd_send_mgmt_set_appie(vif,
309 ret = qtnf_cmd_send_mgmt_set_appie(vif,
319 ret = qtnf_cmd_send_mgmt_set_appie(vif,
323 ret = qtnf_cmd_send_mgmt_set_appie(vif,
336 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
338 return qtnf_mgmt_set_appie(vif, info);
344 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
347 ret = qtnf_cmd_send_start_ap(vif, settings);
349 pr_err("VIF%u.%u: failed to start AP\n", vif->mac->macid,
350 vif->vifid);
358 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
361 qtnf_scan_done(vif->mac, true);
363 ret = qtnf_cmd_send_stop_ap(vif);
366 vif->mac->macid, vif->vifid);
368 netif_carrier_off(vif->netdev);
376 struct qtnf_vif *vif;
379 vif = qtnf_mac_get_base_vif(mac);
380 if (!vif) {
397 struct qtnf_vif *vif = qtnf_netdev_get_priv(wdev->netdev);
399 u16 old_mask = vif->mgmt_frames_bitmask;
437 if (qtnf_cmd_send_register_mgmt(vif, qlink_frame_type, reg))
439 vif->mac->macid, vif->vifid, reg ? "" : "un",
443 vif->mgmt_frames_bitmask = new_mask;
450 struct qtnf_vif *vif = qtnf_netdev_get_priv(wdev->netdev);
480 return qtnf_cmd_send_frame(vif, short_cookie, flags,
488 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
490 sinfo->generation = vif->generation;
491 return qtnf_cmd_get_sta_info(vif, mac, sinfo);
498 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
502 switch (vif->wdev.iftype) {
504 if (idx != 0 || !vif->wdev.connected)
507 ether_addr_copy(mac, vif->bssid);
510 sta_node = qtnf_sta_list_lookup_index(&vif->sta_list, idx);
520 ret = qtnf_cmd_get_sta_info(vif, mac, sinfo);
522 if (vif->wdev.iftype == NL80211_IFTYPE_AP) {
524 cfg80211_del_sta(vif->netdev, mac, GFP_KERNEL);
529 sinfo->generation = vif->generation;
538 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
541 ret = qtnf_cmd_send_add_key(vif, key_index, pairwise, mac_addr, params);
544 vif->mac->macid, vif->vifid, params->cipher, key_index,
554 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
557 ret = qtnf_cmd_send_del_key(vif, key_index, pairwise, mac_addr);
561 vif->mac->macid, vif->vifid, key_index);
564 vif->mac->macid, vif->vifid,
576 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
579 ret = qtnf_cmd_send_set_default_key(vif, key_index, unicast, multicast);
582 vif->mac->macid, vif->vifid, key_index, unicast,
592 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
595 ret = qtnf_cmd_send_set_default_mgmt_key(vif, key_index);
598 vif->mac->macid, vif->vifid, key_index);
607 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
610 ret = qtnf_cmd_send_change_sta(vif, mac, params);
613 vif->mac->macid, vif->vifid, mac);
622 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
626 (vif->wdev.iftype == NL80211_IFTYPE_AP) &&
628 !qtnf_sta_list_lookup(&vif->sta_list, params->mac))
631 ret = qtnf_cmd_send_del_sta(vif, params);
634 vif->mac->macid, vif->vifid, params->mac);
668 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
671 if (vif->wdev.iftype != NL80211_IFTYPE_STATION)
681 ether_addr_copy(vif->bssid, sme->bssid);
683 eth_zero_addr(vif->bssid);
685 ret = qtnf_cmd_send_connect(vif, sme);
688 vif->mac->macid, vif->vifid);
697 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
700 if (vif->wdev.iftype == NL80211_IFTYPE_STATION &&
701 !ether_addr_equal(vif->bssid, auth->bssid))
704 ret = qtnf_cmd_send_external_auth(vif, auth);
707 vif->mac->macid, vif->vifid);
717 struct qtnf_vif *vif;
720 vif = qtnf_mac_get_base_vif(mac);
721 if (!vif) {
726 if (vif->wdev.iftype != NL80211_IFTYPE_STATION)
729 ret = qtnf_cmd_send_disconnect(vif, reason_code);
732 mac->macid, vif->vifid);
734 if (vif->wdev.connected) {
735 netif_carrier_off(vif->netdev);
736 cfg80211_disconnected(vif->netdev, reason_code,
786 struct qtnf_vif *vif;
792 vif = qtnf_netdev_get_priv(wdev->netdev);
794 ret = qtnf_cmd_get_channel(vif, chandef);
817 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
829 ret = qtnf_cmd_send_chan_switch(vif, params);
842 struct qtnf_vif *vif = qtnf_netdev_get_priv(ndev);
848 ret = qtnf_cmd_start_cac(vif, chandef, cac_time_ms);
859 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
862 ret = qtnf_cmd_set_mac_acl(vif, params);
872 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
875 ret = qtnf_cmd_send_pm_set(vif, enabled ? QLINK_PM_AUTO_STANDBY :
886 struct qtnf_vif *vif = qtnf_netdev_get_priv(wdev->netdev);
889 ret = qtnf_cmd_get_tx_power(vif, dbm);
891 pr_err("MAC%u: failed to get Tx power\n", vif->mac->macid);
899 struct qtnf_vif *vif;
903 vif = qtnf_netdev_get_priv(wdev->netdev);
907 vif = qtnf_mac_get_base_vif(mac);
908 if (!vif) {
915 ret = qtnf_cmd_set_tx_power(vif, type, mbm);
917 pr_err("MAC%u: failed to set Tx power\n", vif->mac->macid);
925 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
928 if (vif->wdev.iftype != NL80211_IFTYPE_AP)
931 ret = qtnf_cmd_send_update_owe(vif, owe_info);
934 vif->mac->macid, vif->vifid);
943 struct qtnf_vif *vif;
946 vif = qtnf_mac_get_base_vif(mac);
947 if (!vif) {
955 qtnf_virtual_intf_cleanup(vif->netdev);
959 qtnf_scan_done(vif->mac, true);
961 ret = qtnf_cmd_send_wowlan_set(vif, wowlan);
975 struct qtnf_vif *vif;
978 vif = qtnf_mac_get_base_vif(mac);
979 if (!vif) {
984 ret = qtnf_cmd_send_wowlan_set(vif, NULL);
1245 struct qtnf_vif *vif = qtnf_netdev_get_priv(ndev);
1247 if (qtnf_cmd_send_updown_intf(vif, up))
1249 up ? "UP" : "DOWN", vif->mac->macid, vif->vifid);
1254 struct qtnf_vif *vif = qtnf_netdev_get_priv(ndev);
1255 struct qtnf_wmac *mac = wiphy_priv(vif->wdev.wiphy);
1257 if (vif->wdev.iftype == NL80211_IFTYPE_STATION)
1258 qtnf_disconnect(vif->wdev.wiphy, ndev,
1264 void qtnf_cfg80211_vif_reset(struct qtnf_vif *vif)
1266 if (vif->wdev.iftype == NL80211_IFTYPE_STATION)
1267 cfg80211_disconnected(vif->netdev, WLAN_REASON_DEAUTH_LEAVING,
1270 cfg80211_shutdown_all_interfaces(vif->wdev.wiphy);