Lines Matching defs:sta

1260 		ath11k_warn(ar->ab, "failed to set sta power save mode %d for vdev %d: %d\n",
1796 struct ieee80211_sta *sta,
1807 aid = sta->aid;
1809 ether_addr_copy(arg->peer_mac, sta->addr);
1821 struct ieee80211_sta *sta,
1872 if (sta->mfp) {
1882 struct ieee80211_sta *sta,
1902 ratemask = sta->deflink.supp_rates[band];
1944 struct ieee80211_sta *sta,
1947 const struct ieee80211_sta_ht_cap *ht_cap = &sta->deflink.ht_cap;
1984 if (sta->deflink.bandwidth >= IEEE80211_STA_RX_BW_40) {
2042 arg->peer_nss = min(sta->deflink.rx_nss, max_nss);
2141 struct ieee80211_sta *sta,
2144 const struct ieee80211_sta_vht_cap *vht_cap = &sta->deflink.vht_cap;
2190 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_80)
2193 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_160)
2198 if (vht_nss > sta->deflink.rx_nss) {
2200 for (nss_idx = sta->deflink.rx_nss - 1; nss_idx >= 0; nss_idx--) {
2210 sta->deflink.rx_nss, sta->addr);
2211 vht_mcs_mask[sta->deflink.rx_nss - 1] = vht_mcs_mask[vht_nss - 1];
2225 arg->peer_nss = min(sta->deflink.rx_nss, max_nss);
2267 sta->addr, arg->peer_max_mpdu, arg->peer_flags,
2339 struct ieee80211_sta *sta,
2344 const struct ieee80211_sta_he_cap *he_cap = &sta->deflink.he_cap;
2406 arg->peer_nss = min(sta->deflink.rx_nss, max_nss);
2438 if (sta->deflink.vht_cap.vht_supported)
2441 else if (sta->deflink.ht_cap.ht_supported)
2484 if (he_nss > sta->deflink.rx_nss) {
2486 for (nss_idx = sta->deflink.rx_nss - 1; nss_idx >= 0; nss_idx--) {
2496 sta->deflink.rx_nss, sta->addr);
2497 he_mcs_mask[sta->deflink.rx_nss - 1] = he_mcs_mask[he_nss - 1];
2500 switch (sta->deflink.bandwidth) {
2554 arg->peer_nss = min(sta->deflink.rx_nss, max_nss);
2577 sta->addr, arg->peer_nss,
2584 struct ieee80211_sta *sta,
2587 const struct ieee80211_sta_he_cap *he_cap = &sta->deflink.he_cap;
2597 if (!arg->he_flag || band != NL80211_BAND_6GHZ || !sta->deflink.he_6ghz_capa.capa)
2600 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_40)
2603 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_80)
2606 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_160)
2609 arg->peer_he_caps_6ghz = le16_to_cpu(sta->deflink.he_6ghz_capa.capa);
2632 static void ath11k_peer_assoc_h_smps(struct ieee80211_sta *sta,
2635 const struct ieee80211_sta_ht_cap *ht_cap = &sta->deflink.ht_cap;
2638 if (!ht_cap->ht_supported && !sta->deflink.he_6ghz_capa.capa)
2645 smps = le16_get_bits(sta->deflink.he_6ghz_capa.capa,
2666 struct ieee80211_sta *sta,
2673 if (sta->wme) {
2679 if (sta->wme && sta->uapsd_queues) {
2687 if (sta->wme) {
2697 sta->addr, arg->qos_flag);
2702 struct ieee80211_sta *sta)
2714 sta->uapsd_queues, sta->max_sp);
2717 if (sta->uapsd_queues & IEEE80211_WMM_IE_STA_QOSINFO_AC_VO)
2720 if (sta->uapsd_queues & IEEE80211_WMM_IE_STA_QOSINFO_AC_VI)
2723 if (sta->uapsd_queues & IEEE80211_WMM_IE_STA_QOSINFO_AC_BK)
2726 if (sta->uapsd_queues & IEEE80211_WMM_IE_STA_QOSINFO_AC_BE)
2731 if (sta->max_sp < MAX_WMI_AP_PS_PEER_PARAM_MAX_SP)
2732 max_sp = sta->max_sp;
2736 ret = ath11k_wmi_send_set_ap_ps_param_cmd(ar, sta->addr, &params);
2742 ret = ath11k_wmi_send_set_ap_ps_param_cmd(ar, sta->addr, &params);
2749 ret = ath11k_wmi_send_set_ap_ps_param_cmd(ar, sta->addr, &params);
2755 ret = ath11k_wmi_send_set_ap_ps_param_cmd(ar, sta->addr, &params);
2767 static bool ath11k_mac_sta_has_ofdm_only(struct ieee80211_sta *sta)
2769 return sta->deflink.supp_rates[NL80211_BAND_2GHZ] >>
2774 struct ieee80211_sta *sta)
2776 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_160) {
2777 switch (sta->deflink.vht_cap.cap &
2789 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_80)
2792 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_40)
2795 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_20)
2802 struct ieee80211_sta *sta)
2804 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_160) {
2805 if (sta->deflink.he_cap.he_cap_elem.phy_cap_info[0] &
2808 else if (sta->deflink.he_cap.he_cap_elem.phy_cap_info[0] &
2815 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_80)
2818 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_40)
2821 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_20)
2829 struct ieee80211_sta *sta,
2850 if (sta->deflink.he_cap.has_he &&
2852 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_80)
2854 else if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_40)
2858 } else if (sta->deflink.vht_cap.vht_supported &&
2860 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_40)
2864 } else if (sta->deflink.ht_cap.ht_supported &&
2866 if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_40)
2870 } else if (ath11k_mac_sta_has_ofdm_only(sta)) {
2879 if (sta->deflink.he_cap.has_he &&
2881 phymode = ath11k_mac_get_phymode_he(ar, sta);
2882 } else if (sta->deflink.vht_cap.vht_supported &&
2884 phymode = ath11k_mac_get_phymode_vht(ar, sta);
2885 } else if (sta->deflink.ht_cap.ht_supported &&
2887 if (sta->deflink.bandwidth >= IEEE80211_STA_RX_BW_40)
2900 sta->addr, ath11k_wmi_phymode_str(phymode));
2908 struct ieee80211_sta *sta,
2916 arsta = ath11k_sta_to_arsta(sta);
2923 ath11k_peer_assoc_h_basic(ar, vif, sta, arg);
2924 ath11k_peer_assoc_h_crypto(ar, vif, sta, arg);
2925 ath11k_peer_assoc_h_rates(ar, vif, sta, arg);
2926 ath11k_peer_assoc_h_phymode(ar, vif, sta, arg);
2927 ath11k_peer_assoc_h_ht(ar, vif, sta, arg);
2928 ath11k_peer_assoc_h_vht(ar, vif, sta, arg);
2929 ath11k_peer_assoc_h_he(ar, vif, sta, arg);
2930 ath11k_peer_assoc_h_he_6ghz(ar, vif, sta, arg);
2931 ath11k_peer_assoc_h_qos(ar, vif, sta, arg);
2932 ath11k_peer_assoc_h_smps(sta, arg);
3103 /* he_cap here is updated at assoc success for sta mode only */
4312 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
4339 if (sta)
4340 peer_addr = sta->addr;
4357 if (peer && sta && cmd == SET_KEY)
4413 if (sta) {
4414 arsta = ath11k_sta_to_arsta(sta);
4484 struct ieee80211_sta *sta,
4506 sta->addr);
4511 if (nss > sta->deflink.rx_nss)
4516 sta->addr);
4520 ret = ath11k_wmi_set_peer_param(ar, sta->addr,
4527 sta->addr, rate_code, ret);
4534 struct ieee80211_sta *sta,
4556 sta->addr);
4561 if (nss > sta->deflink.rx_nss)
4566 sta->addr);
4571 ret = ath11k_wmi_set_peer_param(ar, sta->addr,
4577 "failed to update sta %pM fixed rate %d: %d\n",
4578 sta->addr, rate_code, ret);
4585 struct ieee80211_sta *sta,
4605 sta->addr);
4610 if (nss > sta->deflink.rx_nss)
4615 sta->addr);
4619 ret = ath11k_wmi_set_peer_param(ar, sta->addr,
4626 sta->addr, rate_code, ret);
4633 struct ieee80211_sta *sta,
4652 ath11k_peer_assoc_prepare(ar, vif, sta, &peer_arg, reassoc);
4658 sta->addr, arvif->vdev_id, ret);
4664 sta->addr, arvif->vdev_id);
4677 if (sta->deflink.vht_cap.vht_supported && num_vht_rates == 1) {
4678 ret = ath11k_mac_set_peer_vht_fixed_rate(arvif, sta, mask,
4682 } else if (sta->deflink.he_cap.has_he && num_he_rates == 1) {
4683 ret = ath11k_mac_set_peer_he_fixed_rate(arvif, sta, mask,
4687 } else if (sta->deflink.ht_cap.ht_supported && num_ht_rates == 1) {
4688 ret = ath11k_mac_set_peer_ht_fixed_rate(arvif, sta, mask,
4700 ret = ath11k_setup_peer_smps(ar, arvif, sta->addr,
4701 &sta->deflink.ht_cap,
4702 le16_to_cpu(sta->deflink.he_6ghz_capa.capa));
4709 if (!sta->wme) {
4716 if (sta->wme && sta->uapsd_queues) {
4717 ret = ath11k_peer_assoc_qos_ap(ar, arvif, sta);
4720 sta->addr, arvif->vdev_id, ret);
4730 struct ieee80211_sta *sta)
4737 if (!sta->wme) {
4744 ret = ath11k_clear_peer_keys(arvif, sta->addr);
4766 struct ieee80211_sta *sta;
4779 sta = container_of((void *)arsta, struct ieee80211_sta, drv_priv);
4810 ath11k_peer_assoc_h_phymode(ar, arvif->vif, sta, &peer_arg);
4813 ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "update sta %pM peer bw %d phymode %d\n",
4814 sta->addr, bw, peer_phymode);
4820 ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "BW upgrade for sta %pM new BW %d, old BW %d\n",
4821 sta->addr, bw, bw_prev);
4823 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
4828 sta->addr, peer_phymode, err);
4832 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
4837 sta->addr, bw, err);
4842 ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "BW downgrade for sta %pM new BW %d,old BW %d\n",
4843 sta->addr, bw, bw_prev);
4845 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
4850 sta->addr, bw, err);
4854 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
4859 sta->addr, peer_phymode, err);
4864 ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "update sta %pM nss %d\n",
4865 sta->addr, nss);
4867 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
4871 sta->addr, nss, err);
4875 ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "update sta %pM smps %d\n",
4876 sta->addr, smps);
4878 err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
4882 sta->addr, smps, err);
4905 if (sta->deflink.vht_cap.vht_supported && num_vht_rates == 1) {
4906 ath11k_mac_set_peer_vht_fixed_rate(arvif, sta, mask,
4908 } else if (sta->deflink.he_cap.has_he && num_he_rates == 1) {
4909 ath11k_mac_set_peer_he_fixed_rate(arvif, sta, mask,
4911 } else if (sta->deflink.ht_cap.ht_supported && num_ht_rates == 1) {
4912 ath11k_mac_set_peer_ht_fixed_rate(arvif, sta, mask,
4921 err = ath11k_wmi_set_peer_param(ar, sta->addr,
4927 "failed to disable peer fixed rate for sta %pM: %d\n",
4928 sta->addr, err);
4930 ath11k_peer_assoc_prepare(ar, arvif->vif, sta,
4937 sta->addr, arvif->vdev_id, err);
4941 sta->addr, arvif->vdev_id);
4954 struct ieee80211_sta *sta;
4958 sta = container_of((void *)arsta, struct ieee80211_sta, drv_priv);
4963 "setting USE_4ADDR for peer %pM\n", sta->addr);
4965 ret = ath11k_wmi_set_peer_param(ar, sta->addr,
4971 sta->addr, ret);
4975 struct ieee80211_sta *sta)
4981 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls)
4993 struct ieee80211_sta *sta)
4999 if (arvif->vdev_type == WMI_VDEV_TYPE_STA && !sta->tdls)
5006 struct ieee80211_sta *sta)
5010 switch (sta->deflink.bandwidth) {
5025 sta->deflink.bandwidth, sta->addr);
5035 struct ieee80211_sta *sta)
5042 if (sta->deflink.txpwr.type == NL80211_TX_POWER_AUTOMATIC) {
5045 txpwr = sta->deflink.txpwr.power;
5055 ret = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id,
5070 struct ieee80211_sta *sta, bool enabled)
5073 struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
5083 struct ieee80211_sta *sta,
5087 struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
5094 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr);
5097 ath11k_warn(ar->ab, "mac sta rc update failed to find peer %pM on vdev %i\n",
5098 sta->addr, arvif->vdev_id);
5105 "sta rc update for %pM changed %08x bw %d nss %d smps %d\n",
5106 sta->addr, changed, sta->deflink.bandwidth,
5107 sta->deflink.rx_nss,
5108 sta->deflink.smps_mode);
5113 bw = ath11k_mac_ieee80211_sta_bw_to_wmi(ar, sta);
5119 arsta->nss = sta->deflink.rx_nss;
5124 switch (sta->deflink.smps_mode) {
5136 ath11k_warn(ar->ab, "Invalid smps %d in sta rc update for %pM\n",
5137 sta->deflink.smps_mode, sta->addr);
5182 arvif->u.sta.uapsd |= value;
5184 arvif->u.sta.uapsd &= ~value;
5188 arvif->u.sta.uapsd);
5194 if (arvif->u.sta.uapsd)
5256 ath11k_warn(ar->ab, "failed to set sta uapsd: %d\n", ret);
6079 if (control->sta)
6080 arsta = ath11k_sta_to_arsta(control->sta);
8612 struct ieee80211_sta *sta)
8615 struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
8626 struct ieee80211_sta *sta)
8632 ret = ath11k_wmi_set_peer_param(ar, sta->addr,
8639 sta->addr, ret);
8671 if (peer->sta) {
8672 deflink = &peer->sta->deflink;
8999 "sta statistics %s rssi[%d] %d\n", pre, i, rssi);
9014 struct ieee80211_sta *sta,
9017 struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
9063 "sta statistics db2dbm %u rssi comb %d rssi beacon %d\n",
9488 struct ieee80211_sta *sta)
9492 struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
9498 ret = ath11k_mac_inc_num_stations(arvif, sta);
9512 peer_param.peer_addr = sta->addr;
9515 ret = ath11k_peer_create(ar, arvif, sta, &peer_param);
9518 sta->addr, arvif->vdev_id);
9523 sta->addr, arvif->vdev_id);
9535 "setting USE_4ADDR for mesh STA %pM\n", sta->addr);
9536 ret = ath11k_wmi_set_peer_param(ar, sta->addr,
9541 sta->addr, ret);
9546 ret = ath11k_dp_peer_setup(ar, arvif->vdev_id, sta->addr);
9549 sta->addr, arvif->vdev_id, ret);
9570 ath11k_peer_delete(ar, arvif->vdev_id, sta->addr);
9575 ath11k_mac_dec_num_stations(arvif, sta);
9582 struct ieee80211_sta *sta)
9586 struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
9599 ath11k_dp_peer_cleanup(ar, arvif->vdev_id, sta->addr);
9601 ret = ath11k_peer_delete(ar, arvif->vdev_id, sta->addr);
9604 sta->addr, arvif->vdev_id);
9607 sta->addr, arvif->vdev_id);
9609 ath11k_mac_dec_num_stations(arvif, sta);
9622 struct ieee80211_sta *sta,
9628 struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta);
9649 ret = ath11k_mac_station_add(ar, vif, sta);
9652 sta->addr, arvif->vdev_id);
9655 ret = ath11k_mac_station_remove(ar, vif, sta);
9658 sta->addr, arvif->vdev_id);
9662 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr);
9663 if (peer && peer->sta == sta) {
9667 peer->sta = NULL;
9679 ret = ath11k_station_assoc(ar, vif, sta, false);
9682 sta->addr);
9686 arsta->bw = ath11k_mac_ieee80211_sta_bw_to_wmi(ar, sta);
9693 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr);
9700 ret = ath11k_wmi_set_peer_param(ar, sta->addr,
9706 sta->addr, arvif->vdev_id, ret);
9712 peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr);
9722 ret = ath11k_station_disassoc(ar, vif, sta);
9725 sta->addr);