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 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);
357 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
360 qtnf_scan_done(vif->mac, true);
362 ret = qtnf_cmd_send_stop_ap(vif);
365 vif->mac->macid, vif->vifid);
367 netif_carrier_off(vif->netdev);
375 struct qtnf_vif *vif;
378 vif = qtnf_mac_get_base_vif(mac);
379 if (!vif) {
396 struct qtnf_vif *vif = qtnf_netdev_get_priv(wdev->netdev);
398 u16 old_mask = vif->mgmt_frames_bitmask;
436 if (qtnf_cmd_send_register_mgmt(vif, qlink_frame_type, reg))
438 vif->mac->macid, vif->vifid, reg ? "" : "un",
442 vif->mgmt_frames_bitmask = new_mask;
449 struct qtnf_vif *vif = qtnf_netdev_get_priv(wdev->netdev);
479 return qtnf_cmd_send_frame(vif, short_cookie, flags,
487 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
489 sinfo->generation = vif->generation;
490 return qtnf_cmd_get_sta_info(vif, mac, sinfo);
497 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
501 switch (vif->wdev.iftype) {
503 if (idx != 0 || !vif->wdev.current_bss)
506 ether_addr_copy(mac, vif->bssid);
509 sta_node = qtnf_sta_list_lookup_index(&vif->sta_list, idx);
519 ret = qtnf_cmd_get_sta_info(vif, mac, sinfo);
521 if (vif->wdev.iftype == NL80211_IFTYPE_AP) {
523 cfg80211_del_sta(vif->netdev, mac, GFP_KERNEL);
528 sinfo->generation = vif->generation;
537 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
540 ret = qtnf_cmd_send_add_key(vif, key_index, pairwise, mac_addr, params);
543 vif->mac->macid, vif->vifid, params->cipher, key_index,
552 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
555 ret = qtnf_cmd_send_del_key(vif, key_index, pairwise, mac_addr);
559 vif->mac->macid, vif->vifid, key_index);
562 vif->mac->macid, vif->vifid,
573 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
576 ret = qtnf_cmd_send_set_default_key(vif, key_index, unicast, multicast);
579 vif->mac->macid, vif->vifid, key_index, unicast,
589 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
592 ret = qtnf_cmd_send_set_default_mgmt_key(vif, key_index);
595 vif->mac->macid, vif->vifid, key_index);
604 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
607 ret = qtnf_cmd_send_change_sta(vif, mac, params);
610 vif->mac->macid, vif->vifid, mac);
619 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
623 (vif->wdev.iftype == NL80211_IFTYPE_AP) &&
625 !qtnf_sta_list_lookup(&vif->sta_list, params->mac))
628 ret = qtnf_cmd_send_del_sta(vif, params);
631 vif->mac->macid, vif->vifid, params->mac);
665 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
668 if (vif->wdev.iftype != NL80211_IFTYPE_STATION)
678 ether_addr_copy(vif->bssid, sme->bssid);
680 eth_zero_addr(vif->bssid);
682 ret = qtnf_cmd_send_connect(vif, sme);
685 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);
720 struct qtnf_vif *vif;
723 vif = qtnf_mac_get_base_vif(mac);
724 if (!vif) {
729 if (vif->wdev.iftype != NL80211_IFTYPE_STATION) {
734 ret = qtnf_cmd_send_disconnect(vif, reason_code);
737 mac->macid, vif->vifid);
739 if (vif->wdev.current_bss) {
740 netif_carrier_off(vif->netdev);
741 cfg80211_disconnected(vif->netdev, reason_code,
792 struct qtnf_vif *vif;
798 vif = qtnf_netdev_get_priv(wdev->netdev);
800 ret = qtnf_cmd_get_channel(vif, chandef);
823 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
835 ret = qtnf_cmd_send_chan_switch(vif, params);
848 struct qtnf_vif *vif = qtnf_netdev_get_priv(ndev);
854 ret = qtnf_cmd_start_cac(vif, chandef, cac_time_ms);
865 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
868 ret = qtnf_cmd_set_mac_acl(vif, params);
878 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
881 ret = qtnf_cmd_send_pm_set(vif, enabled ? QLINK_PM_AUTO_STANDBY :
892 struct qtnf_vif *vif = qtnf_netdev_get_priv(wdev->netdev);
895 ret = qtnf_cmd_get_tx_power(vif, dbm);
897 pr_err("MAC%u: failed to get Tx power\n", vif->mac->macid);
905 struct qtnf_vif *vif;
909 vif = qtnf_netdev_get_priv(wdev->netdev);
913 vif = qtnf_mac_get_base_vif(mac);
914 if (!vif) {
921 ret = qtnf_cmd_set_tx_power(vif, type, mbm);
923 pr_err("MAC%u: failed to set Tx power\n", vif->mac->macid);
931 struct qtnf_vif *vif = qtnf_netdev_get_priv(dev);
934 if (vif->wdev.iftype != NL80211_IFTYPE_AP)
937 ret = qtnf_cmd_send_update_owe(vif, owe_info);
940 vif->mac->macid, vif->vifid);
952 struct qtnf_vif *vif;
955 vif = qtnf_mac_get_base_vif(mac);
956 if (!vif) {
964 qtnf_virtual_intf_cleanup(vif->netdev);
968 qtnf_scan_done(vif->mac, true);
970 ret = qtnf_cmd_send_wowlan_set(vif, wowlan);
984 struct qtnf_vif *vif;
987 vif = qtnf_mac_get_base_vif(mac);
988 if (!vif) {
994 ret = qtnf_cmd_send_wowlan_set(vif, NULL);
1258 struct qtnf_vif *vif = qtnf_netdev_get_priv(ndev);
1260 if (qtnf_cmd_send_updown_intf(vif, up))
1262 up ? "UP" : "DOWN", vif->mac->macid, vif->vifid);
1267 struct qtnf_vif *vif = qtnf_netdev_get_priv(ndev);
1268 struct qtnf_wmac *mac = wiphy_priv(vif->wdev.wiphy);
1270 if (vif->wdev.iftype == NL80211_IFTYPE_STATION)
1271 qtnf_disconnect(vif->wdev.wiphy, ndev,
1277 void qtnf_cfg80211_vif_reset(struct qtnf_vif *vif)
1279 if (vif->wdev.iftype == NL80211_IFTYPE_STATION)
1280 cfg80211_disconnected(vif->netdev, WLAN_REASON_DEAUTH_LEAVING,
1283 cfg80211_shutdown_all_interfaces(vif->wdev.wiphy);