Lines Matching refs:lsta
285 struct lkpi_sta *lsta; in lkpi_80211_dump_stas() local
303 list_for_each_entry(lsta, &lvif->lsta_list, lsta_list) { in lkpi_80211_dump_stas()
304 sta = LSTA_TO_STA(lsta); in lkpi_80211_dump_stas()
307 sbuf_printf(&s, "lsta %p sta %p added_to_drv %d\n", lsta, sta, lsta->added_to_drv); in lkpi_80211_dump_stas()
324 (lsta->sinfo.filled & BIT_ULL(NL80211_STA_INFO_RX_BITRATE)) != 0) { in lkpi_80211_dump_stas()
325 memcpy(&sinfo.rxrate, &lsta->sinfo.rxrate, sizeof(sinfo.rxrate)); in lkpi_80211_dump_stas()
650 struct lkpi_sta *lsta; in lkpi_get_max_rx_chains() local
653 lsta = ni->ni_drv_data; in lkpi_get_max_rx_chains()
654 sta = LSTA_TO_STA(lsta); in lkpi_get_max_rx_chains()
673 lkpi_lsta_dump(struct lkpi_sta *lsta, struct ieee80211_node *ni, in lkpi_lsta_dump() argument
680 if (lsta == NULL) in lkpi_lsta_dump()
684 _f, _l, lsta, ni, &lsta->sta); in lkpi_lsta_dump()
687 printf("\ttxq_task txq len %d mtx\n", mbufq_len(&lsta->txq)); in lkpi_lsta_dump()
689 &lsta->kc[0], lsta->state, lsta->added_to_drv, lsta->in_mgd); in lkpi_lsta_dump()
694 lkpi_lsta_remove(struct lkpi_sta *lsta, struct lkpi_vif *lvif) in lkpi_lsta_remove() argument
697 lockdep_assert_wiphy(lsta->hw->wiphy); in lkpi_lsta_remove()
699 KASSERT(!list_empty(&lsta->lsta_list), in lkpi_lsta_remove()
700 ("%s: lsta %p ni %p\n", __func__, lsta, lsta->ni)); in lkpi_lsta_remove()
701 list_del_init(&lsta->lsta_list); in lkpi_lsta_remove()
708 struct lkpi_sta *lsta; in lkpi_lsta_alloc() local
714 lsta = malloc(sizeof(*lsta) + hw->sta_data_size, M_LKPI80211, in lkpi_lsta_alloc()
716 if (lsta == NULL) in lkpi_lsta_alloc()
719 lsta->hw = hw; in lkpi_lsta_alloc()
720 lsta->added_to_drv = false; in lkpi_lsta_alloc()
721 lsta->state = IEEE80211_STA_NOTEXIST; in lkpi_lsta_alloc()
731 lsta->ni = ni; in lkpi_lsta_alloc()
733 ni->ni_drv_data = lsta; in lkpi_lsta_alloc()
737 sta = LSTA_TO_STA(lsta); in lkpi_lsta_alloc()
826 LKPI_80211_LSTA_TXQ_LOCK_INIT(lsta); in lkpi_lsta_alloc()
827 TASK_INIT(&lsta->txq_task, 0, lkpi_80211_txq_task, lsta); in lkpi_lsta_alloc()
828 mbufq_init(&lsta->txq, 32 * NAPI_POLL_WEIGHT); in lkpi_lsta_alloc()
829 lsta->txq_ready = true; in lkpi_lsta_alloc()
831 return (lsta); in lkpi_lsta_alloc()
841 free(lsta, M_LKPI80211); in lkpi_lsta_alloc()
846 lkpi_lsta_free(struct lkpi_sta *lsta, struct ieee80211_node *ni) in lkpi_lsta_free() argument
850 if (lsta->added_to_drv) in lkpi_lsta_free()
853 __func__, lsta, ni, lsta->added_to_drv); in lkpi_lsta_free()
860 LKPI_80211_LSTA_TXQ_LOCK(lsta); in lkpi_lsta_free()
861 lsta->txq_ready = false; in lkpi_lsta_free()
862 LKPI_80211_LSTA_TXQ_UNLOCK(lsta); in lkpi_lsta_free()
865 while (taskqueue_cancel(taskqueue_thread, &lsta->txq_task, NULL) != 0) in lkpi_lsta_free()
866 taskqueue_drain(taskqueue_thread, &lsta->txq_task); in lkpi_lsta_free()
869 m = mbufq_dequeue(&lsta->txq); in lkpi_lsta_free()
877 m = mbufq_dequeue(&lsta->txq); in lkpi_lsta_free()
879 KASSERT(mbufq_empty(&lsta->txq), ("%s: lsta %p has txq len %d != 0\n", in lkpi_lsta_free()
880 __func__, lsta, mbufq_len(&lsta->txq))); in lkpi_lsta_free()
881 LKPI_80211_LSTA_TXQ_LOCK_DESTROY(lsta); in lkpi_lsta_free()
888 lsta->ni = NULL; in lkpi_lsta_free()
890 free(lsta, M_LKPI80211); in lkpi_lsta_free()
1226 struct lkpi_sta *lsta) in lkpi_sta_del_keys() argument
1234 ieee80211_ref_node(lsta->ni); in lkpi_sta_del_keys()
1237 for (ieee80211_keyix keyix = 0; keyix < nitems(lsta->kc); keyix++) { in lkpi_sta_del_keys()
1241 if (lsta->kc[keyix] == NULL) in lkpi_sta_del_keys()
1243 kc = lsta->kc[keyix]; in lkpi_sta_del_keys()
1247 ic_printf(lsta->ni->ni_ic, "%d %lu %s: running set_key cmd %d(%s) for " in lkpi_sta_del_keys()
1250 DISABLE_KEY, "DISABLE", lsta->sta.addr, ":", in lkpi_sta_del_keys()
1255 LSTA_TO_STA(lsta), kc); in lkpi_sta_del_keys()
1257 ic_printf(lsta->ni->ni_ic, "%d %lu %s: set_key cmd %d(%s) for " in lkpi_sta_del_keys()
1259 DISABLE_KEY, "DISABLE", lsta->sta.addr, ":", err); in lkpi_sta_del_keys()
1271 ic_printf(lsta->ni->ni_ic, "%d %lu %s: set_key cmd %d(%s) for " in lkpi_sta_del_keys()
1274 DISABLE_KEY, "DISABLE", lsta->sta.addr, ":", in lkpi_sta_del_keys()
1278 lsta->kc[keyix] = NULL; in lkpi_sta_del_keys()
1281 ieee80211_free_node(lsta->ni); in lkpi_sta_del_keys()
1294 struct lkpi_sta *lsta; in lkpi_iv_key_delete() local
1325 lsta = ni->ni_drv_data; in lkpi_iv_key_delete()
1326 if (lsta == NULL) { in lkpi_iv_key_delete()
1332 sta = LSTA_TO_STA(lsta); in lkpi_iv_key_delete()
1334 if (lsta->kc[k->wk_keyix] == NULL) { in lkpi_iv_key_delete()
1345 kc = lsta->kc[k->wk_keyix]; in lkpi_iv_key_delete()
1374 lsta->kc[k->wk_keyix] = NULL; in lkpi_iv_key_delete()
1389 struct lkpi_sta *lsta; in lkpi_iv_key_set() local
1421 lsta = ni->ni_drv_data; in lkpi_iv_key_set()
1422 if (lsta == NULL) { in lkpi_iv_key_set()
1428 sta = LSTA_TO_STA(lsta); in lkpi_iv_key_set()
1448 if (lsta->kc[k->wk_keyix] != NULL) { in lkpi_iv_key_set()
1452 kc = lsta->kc[k->wk_keyix]; in lkpi_iv_key_set()
1453 lsta->kc[k->wk_keyix] = NULL; in lkpi_iv_key_set()
1490 lsta->kc[k->wk_keyix] = kc; in lkpi_iv_key_set()
1508 lsta->kc[k->wk_keyix] = NULL; in lkpi_iv_key_set()
1986 lkpi_80211_flush_tx(struct lkpi_hw *lhw, struct lkpi_sta *lsta) in lkpi_80211_flush_tx() argument
1998 LKPI_80211_LSTA_TXQ_LOCK(lsta); in lkpi_80211_flush_tx()
1999 lsta->txq_ready = false; in lkpi_80211_flush_tx()
2000 LKPI_80211_LSTA_TXQ_UNLOCK(lsta); in lkpi_80211_flush_tx()
2002 while (taskqueue_cancel(taskqueue_thread, &lsta->txq_task, NULL) != 0) in lkpi_80211_flush_tx()
2003 taskqueue_drain(taskqueue_thread, &lsta->txq_task); in lkpi_80211_flush_tx()
2005 LKPI_80211_LSTA_TXQ_LOCK(lsta); in lkpi_80211_flush_tx()
2006 len = mbufq_len(&lsta->txq); in lkpi_80211_flush_tx()
2008 LKPI_80211_LSTA_TXQ_UNLOCK(lsta); in lkpi_80211_flush_tx()
2013 mbufq_concat(&mq, &lsta->txq); in lkpi_80211_flush_tx()
2014 LKPI_80211_LSTA_TXQ_UNLOCK(lsta); in lkpi_80211_flush_tx()
2018 lkpi_80211_txq_tx_one(lsta, m); in lkpi_80211_flush_tx()
2075 struct lkpi_sta *lsta; in lkpi_sta_scan_to_auth() local
2266 lsta = ni->ni_drv_data; in lkpi_sta_scan_to_auth()
2269 list_add_tail(&lsta->lsta_list, &lvif->lsta_list); in lkpi_sta_scan_to_auth()
2272 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in lkpi_sta_scan_to_auth()
2273 KASSERT(lsta->state == IEEE80211_STA_NOTEXIST, ("%s: lsta %p state not " in lkpi_sta_scan_to_auth()
2274 "NOTEXIST: %#x\n", __func__, lsta, lsta->state)); in lkpi_sta_scan_to_auth()
2275 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NONE); in lkpi_sta_scan_to_auth()
2283 lsta->added_to_drv = true; /* mo manages. */ in lkpi_sta_scan_to_auth()
2286 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_scan_to_auth()
2297 lkpi_wake_tx_queues(hw, LSTA_TO_STA(lsta), false, false); in lkpi_sta_scan_to_auth()
2304 lsta->in_mgd = true; in lkpi_sta_scan_to_auth()
2321 lsta->ni != vap->iv_bss) in lkpi_sta_scan_to_auth()
2326 lvif->lvif_bss_synched, ni, lsta); in lkpi_sta_scan_to_auth()
2338 ieee80211_ref_node(lsta->ni); in lkpi_sta_scan_to_auth()
2339 lvif->lvif_bss = lsta; in lkpi_sta_scan_to_auth()
2340 if (lsta->ni == vap->iv_bss) { in lkpi_sta_scan_to_auth()
2365 LKPI_80211_LSTA_TXQ_LOCK(lsta); in lkpi_sta_scan_to_auth()
2366 lsta->txq_ready = synched; in lkpi_sta_scan_to_auth()
2367 LKPI_80211_LSTA_TXQ_UNLOCK(lsta); in lkpi_sta_scan_to_auth()
2391 struct lkpi_sta *lsta; in lkpi_sta_auth_to_scan() local
2412 lsta = lvif->lvif_bss; in lkpi_sta_auth_to_scan()
2414 KASSERT(lsta != NULL && lsta->ni != NULL, ("%s: lsta %p ni %p " in lkpi_sta_auth_to_scan()
2416 lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); in lkpi_sta_auth_to_scan()
2417 ni = lsta->ni; /* Reference held for lvif_bss. */ in lkpi_sta_auth_to_scan()
2418 sta = LSTA_TO_STA(lsta); in lkpi_sta_auth_to_scan()
2420 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_auth_to_scan()
2435 if (lsta->in_mgd) { in lkpi_sta_auth_to_scan()
2439 lsta->in_mgd = false; in lkpi_sta_auth_to_scan()
2451 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in lkpi_sta_auth_to_scan()
2452 KASSERT(lsta->state == IEEE80211_STA_NONE, ("%s: lsta %p state not " in lkpi_sta_auth_to_scan()
2453 "NONE: %#x, nstate %d arg %d\n", __func__, lsta, lsta->state, nstate, arg)); in lkpi_sta_auth_to_scan()
2454 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NOTEXIST); in lkpi_sta_auth_to_scan()
2462 lsta->added_to_drv = false; /* mo manages. */ in lkpi_sta_auth_to_scan()
2465 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_auth_to_scan()
2472 lkpi_lsta_remove(lsta, lvif); in lkpi_sta_auth_to_scan()
2508 struct lkpi_sta *lsta; in lkpi_sta_auth_to_assoc() local
2534 lsta = lvif->lvif_bss; in lkpi_sta_auth_to_assoc()
2537 KASSERT(lsta != NULL, ("%s: lsta %p\n", __func__, lsta)); in lkpi_sta_auth_to_assoc()
2543 KASSERT(lsta->state == IEEE80211_STA_NONE, ("%s: lsta %p state not " in lkpi_sta_auth_to_assoc()
2544 "NONE: %#x\n", __func__, lsta, lsta->state)); in lkpi_sta_auth_to_assoc()
2545 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_AUTH); in lkpi_sta_auth_to_assoc()
2553 if (lsta->in_mgd) { in lkpi_sta_auth_to_assoc()
2557 lsta->in_mgd = false; in lkpi_sta_auth_to_assoc()
2563 if (!lsta->in_mgd) { in lkpi_sta_auth_to_assoc()
2567 lsta->in_mgd = true; in lkpi_sta_auth_to_assoc()
2571 lkpi_wake_tx_queues(hw, LSTA_TO_STA(lsta), false, true); in lkpi_sta_auth_to_assoc()
2597 struct lkpi_sta *lsta; in lkpi_sta_a_to_a() local
2623 lsta = lvif->lvif_bss; in lkpi_sta_a_to_a()
2626 KASSERT(lsta != NULL, ("%s: lsta %p! lvif %p vap %p\n", __func__, in lkpi_sta_a_to_a()
2627 lsta, lvif, vap)); in lkpi_sta_a_to_a()
2632 if (lsta->in_mgd) { in lkpi_sta_a_to_a()
2636 lsta->in_mgd = false; in lkpi_sta_a_to_a()
2642 if (!lsta->in_mgd) { in lkpi_sta_a_to_a()
2646 lsta->in_mgd = true; in lkpi_sta_a_to_a()
2665 struct lkpi_sta *lsta; in _lkpi_sta_assoc_to_down() local
2689 lsta = lvif->lvif_bss; in _lkpi_sta_assoc_to_down()
2691 KASSERT(lsta != NULL && lsta->ni != NULL, ("%s: lsta %p ni %p " in _lkpi_sta_assoc_to_down()
2693 lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); in _lkpi_sta_assoc_to_down()
2695 ni = lsta->ni; /* Reference held for lvif_bss. */ in _lkpi_sta_assoc_to_down()
2696 sta = LSTA_TO_STA(lsta); in _lkpi_sta_assoc_to_down()
2698 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in _lkpi_sta_assoc_to_down()
2705 !lsta->in_mgd) { in _lkpi_sta_assoc_to_down()
2710 lsta->in_mgd = true; in _lkpi_sta_assoc_to_down()
2727 lkpi_80211_flush_tx(lhw, lsta); in _lkpi_sta_assoc_to_down()
2731 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in _lkpi_sta_assoc_to_down()
2740 if (lsta->in_mgd) { in _lkpi_sta_assoc_to_down()
2745 lsta->in_mgd = false; in _lkpi_sta_assoc_to_down()
2757 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in _lkpi_sta_assoc_to_down()
2758 KASSERT(lsta->state == IEEE80211_STA_AUTH, ("%s: lsta %p state not " in _lkpi_sta_assoc_to_down()
2759 "AUTH: %#x\n", __func__, lsta, lsta->state)); in _lkpi_sta_assoc_to_down()
2760 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NONE); in _lkpi_sta_assoc_to_down()
2771 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in _lkpi_sta_assoc_to_down()
2774 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in _lkpi_sta_assoc_to_down()
2775 KASSERT(lsta->state == IEEE80211_STA_NONE, ("%s: lsta %p state not " in _lkpi_sta_assoc_to_down()
2776 "NONE: %#x, nstate %d arg %d\n", __func__, lsta, lsta->state, nstate, arg)); in _lkpi_sta_assoc_to_down()
2777 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NOTEXIST); in _lkpi_sta_assoc_to_down()
2785 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); /* sta no longer save to use. */ in _lkpi_sta_assoc_to_down()
2800 lkpi_lsta_remove(lsta, lvif); in _lkpi_sta_assoc_to_down()
2861 struct lkpi_sta *lsta; in lkpi_sta_assoc_to_run() local
2889 lsta = lvif->lvif_bss; in lkpi_sta_assoc_to_run()
2891 KASSERT(lsta != NULL && lsta->ni != NULL, ("%s: lsta %p ni %p " in lkpi_sta_assoc_to_run()
2893 lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); in lkpi_sta_assoc_to_run()
2895 ni = lsta->ni; /* Reference held for lvif_bss. */ in lkpi_sta_assoc_to_run()
2902 KASSERT(lsta->state == IEEE80211_STA_AUTH, ("%s: lsta %p state not " in lkpi_sta_assoc_to_run()
2903 "AUTH: %#x\n", __func__, lsta, lsta->state)); in lkpi_sta_assoc_to_run()
2904 sta = LSTA_TO_STA(lsta); in lkpi_sta_assoc_to_run()
2910 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_ASSOC); in lkpi_sta_assoc_to_run()
2956 if (lsta->in_mgd) { in lkpi_sta_assoc_to_run()
2960 lsta->in_mgd = false; in lkpi_sta_assoc_to_run()
2991 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in lkpi_sta_assoc_to_run()
2992 KASSERT(lsta->state == IEEE80211_STA_ASSOC, ("%s: lsta %p state not " in lkpi_sta_assoc_to_run()
2993 "ASSOC: %#x\n", __func__, lsta, lsta->state)); in lkpi_sta_assoc_to_run()
2994 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_AUTHORIZED); in lkpi_sta_assoc_to_run()
3039 struct lkpi_sta *lsta; in lkpi_sta_run_to_assoc() local
3062 lsta = lvif->lvif_bss; in lkpi_sta_run_to_assoc()
3064 KASSERT(lsta != NULL && lsta->ni != NULL, ("%s: lsta %p ni %p " in lkpi_sta_run_to_assoc()
3066 lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); in lkpi_sta_run_to_assoc()
3068 ni = lsta->ni; /* Reference held for lvif_bss. */ in lkpi_sta_run_to_assoc()
3069 sta = LSTA_TO_STA(lsta); in lkpi_sta_run_to_assoc()
3071 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_run_to_assoc()
3081 !lsta->in_mgd) { in lkpi_sta_run_to_assoc()
3086 lsta->in_mgd = true; in lkpi_sta_run_to_assoc()
3103 lkpi_80211_flush_tx(lhw, lsta); in lkpi_sta_run_to_assoc()
3107 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_run_to_assoc()
3116 if (lsta->in_mgd) { in lkpi_sta_run_to_assoc()
3121 lsta->in_mgd = false; in lkpi_sta_run_to_assoc()
3135 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in lkpi_sta_run_to_assoc()
3136 KASSERT(lsta->state == IEEE80211_STA_AUTHORIZED, ("%s: lsta %p state not " in lkpi_sta_run_to_assoc()
3137 "AUTHORIZED: %#x\n", __func__, lsta, lsta->state)); in lkpi_sta_run_to_assoc()
3138 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_ASSOC); in lkpi_sta_run_to_assoc()
3145 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_run_to_assoc()
3149 error = lkpi_sta_del_keys(hw, vif, lsta); in lkpi_sta_run_to_assoc()
3164 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in lkpi_sta_run_to_assoc()
3165 KASSERT(lsta->state == IEEE80211_STA_ASSOC, ("%s: lsta %p state not " in lkpi_sta_run_to_assoc()
3166 "ASSOC: %#x\n", __func__, lsta, lsta->state)); in lkpi_sta_run_to_assoc()
3167 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_AUTH); in lkpi_sta_run_to_assoc()
3174 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_run_to_assoc()
3197 struct lkpi_sta *lsta; in lkpi_sta_run_to_init() local
3221 lsta = lvif->lvif_bss; in lkpi_sta_run_to_init()
3223 KASSERT(lsta != NULL && lsta->ni != NULL, ("%s: lsta %p ni %p " in lkpi_sta_run_to_init()
3225 lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); in lkpi_sta_run_to_init()
3227 ni = lsta->ni; /* Reference held for lvif_bss. */ in lkpi_sta_run_to_init()
3228 sta = LSTA_TO_STA(lsta); in lkpi_sta_run_to_init()
3230 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_run_to_init()
3237 !lsta->in_mgd) { in lkpi_sta_run_to_init()
3242 lsta->in_mgd = true; in lkpi_sta_run_to_init()
3259 lkpi_80211_flush_tx(lhw, lsta); in lkpi_sta_run_to_init()
3263 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_run_to_init()
3272 if (lsta->in_mgd) { in lkpi_sta_run_to_init()
3277 lsta->in_mgd = false; in lkpi_sta_run_to_init()
3289 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in lkpi_sta_run_to_init()
3290 KASSERT(lsta->state == IEEE80211_STA_AUTHORIZED, ("%s: lsta %p state not " in lkpi_sta_run_to_init()
3291 "AUTHORIZED: %#x\n", __func__, lsta, lsta->state)); in lkpi_sta_run_to_init()
3292 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_ASSOC); in lkpi_sta_run_to_init()
3299 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_run_to_init()
3303 error = lkpi_sta_del_keys(hw, vif, lsta); in lkpi_sta_run_to_init()
3318 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in lkpi_sta_run_to_init()
3319 KASSERT(lsta->state == IEEE80211_STA_ASSOC, ("%s: lsta %p state not " in lkpi_sta_run_to_init()
3320 "ASSOC: %#x\n", __func__, lsta, lsta->state)); in lkpi_sta_run_to_init()
3321 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_AUTH); in lkpi_sta_run_to_init()
3328 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_run_to_init()
3331 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in lkpi_sta_run_to_init()
3332 KASSERT(lsta->state == IEEE80211_STA_AUTH, ("%s: lsta %p state not " in lkpi_sta_run_to_init()
3333 "AUTH: %#x\n", __func__, lsta, lsta->state)); in lkpi_sta_run_to_init()
3334 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NONE); in lkpi_sta_run_to_init()
3367 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); in lkpi_sta_run_to_init()
3370 KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); in lkpi_sta_run_to_init()
3371 KASSERT(lsta->state == IEEE80211_STA_NONE, ("%s: lsta %p state not " in lkpi_sta_run_to_init()
3372 "NONE: %#x, nstate %d arg %d\n", __func__, lsta, lsta->state, nstate, arg)); in lkpi_sta_run_to_init()
3373 error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NOTEXIST); in lkpi_sta_run_to_init()
3381 lkpi_lsta_remove(lsta, lvif); in lkpi_sta_run_to_init()
3383 lkpi_lsta_dump(lsta, ni, __func__, __LINE__); /* sta no longer save to use. */ in lkpi_sta_run_to_init()
4635 struct lkpi_sta *lsta; in lkpi_ic_node_alloc() local
4649 lsta = lkpi_lsta_alloc(vap, mac, hw, ni); in lkpi_ic_node_alloc()
4650 if (lsta == NULL) { in lkpi_ic_node_alloc()
4702 struct lkpi_sta *lsta; in lkpi_ic_node_free() local
4706 lsta = ni->ni_drv_data; in lkpi_ic_node_free()
4714 lkpi_lsta_free(lsta, ni); in lkpi_ic_node_free()
4735 struct lkpi_sta *lsta; local
4738 lsta = ni->ni_drv_data;
4739 LKPI_80211_LSTA_TXQ_LOCK(lsta);
4741 if (!lsta->added_to_drv || !lsta->txq_ready) {
4748 if (!lsta->txq_ready) {
4750 LKPI_80211_LSTA_TXQ_UNLOCK(lsta);
4757 error = mbufq_enqueue(&lsta->txq, m);
4759 LKPI_80211_LSTA_TXQ_UNLOCK(lsta);
4769 taskqueue_enqueue(taskqueue_thread, &lsta->txq_task);
4770 LKPI_80211_LSTA_TXQ_UNLOCK(lsta);
4775 __func__, __LINE__, lsta, ni, ni->ni_macaddr, ":",
4776 mbufq_len(&lsta->txq));
4902 lkpi_hw_crypto_prepare(struct lkpi_sta *lsta, struct ieee80211_key *k, argument
4908 KASSERT(lsta != NULL, ("%s: lsta is NULL", __func__));
4912 kc = lsta->kc[k->wk_keyix];
4919 ic_printf(lsta->ni->ni_ic, "%s: lsta %p k %p skb %p, "
4920 "kc is NULL on hw crypto offload\n", __func__, lsta, k, skb);
4940 ic_printf(lsta->ni->ni_ic, "%s: lsta %p k %p kc %p skb %p, "
4941 "unsupported cipher suite %u (%s)\n", __func__, lsta, k, kc,
4948 lkpi_hw_crypto_tailroom(struct lkpi_sta *lsta, struct ieee80211_key *k) argument
4952 kc = lsta->kc[k->wk_keyix];
4965 lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m) argument
4992 ni = lsta->ni;
5001 if (k != NULL && lsta->kc[k->wk_keyix] != NULL)
5044 tailroom = lkpi_hw_crypto_tailroom(lsta, k);
5062 sta = LSTA_TO_STA(lsta);
5064 __func__, hw->extra_tx_headroom, m->m_pkthdr.len, lsta, sta, ni);
5133 sta = LSTA_TO_STA(lsta);
5138 error = lkpi_hw_crypto_prepare(lsta, k, skb);
5155 lsta->added_to_drv &&
5158 } else if (lsta->added_to_drv &&
5166 "ltxq %p != NULL\n", __func__, lsta, sta, m, skb, ltxq));
5177 lsta, sta, ni, ni->ni_macaddr, ":", skb, ltxq,
5192 __func__, __LINE__, lsta, sta, ni, ni->ni_macaddr, ":",
5205 struct lkpi_sta *lsta; local
5210 lsta = ctx;
5215 __func__, __LINE__, lsta, lsta->ni, lsta->ni->ni_macaddr, ":",
5216 pending, mbufq_len(&lsta->txq));
5221 LKPI_80211_LSTA_TXQ_LOCK(lsta);
5231 shall_tx = lsta->added_to_drv && lsta->txq_ready;
5238 shall_tx = lsta->txq_ready;
5241 mbufq_concat(&mq, &lsta->txq);
5246 LKPI_80211_LSTA_TXQ_UNLOCK(lsta);
5250 lkpi_80211_txq_tx_one(lsta, m);
5330 struct lkpi_sta *lsta; local
5341 lsta = ni->ni_drv_data;
5342 sta = LSTA_TO_STA(lsta);
5344 if (!lsta->added_to_drv) {
5346 __func__, lsta, ni, sta);
5390 struct lkpi_sta *lsta; local
5401 lsta = ni->ni_drv_data;
5402 sta = LSTA_TO_STA(lsta);
5404 if (!lsta->added_to_drv) {
5406 __func__, lsta, ni, sta);
5466 struct lkpi_sta *lsta; local
5477 lsta = ni->ni_drv_data;
5478 sta = LSTA_TO_STA(lsta);
5480 if (!lsta->added_to_drv) {
5482 __func__, lsta, ni, sta);
5552 struct lkpi_sta *lsta; local
5563 lsta = ni->ni_drv_data;
5564 sta = LSTA_TO_STA(lsta);
5568 if (!lsta->added_to_drv) {
5570 __func__, lsta, ni, vap, sta);
5623 struct lkpi_sta *lsta; local
5649 lsta = ni->ni_drv_data;
5650 sta = LSTA_TO_STA(lsta);
6419 ieee80211_keyix keyix, struct lkpi_sta *lsta, argument
6424 if (!lsta->added_to_drv)
6427 if (lsta->kc[keyix] == NULL)
6430 iterfunc(hw, vif, LSTA_TO_STA(lsta), lsta->kc[keyix], arg);
6440 struct lkpi_sta *lsta; local
6451 list_for_each_entry_rcu(lsta, &lvif->lsta_list, lsta_list) {
6452 for (ieee80211_keyix keyix = 0; keyix < nitems(lsta->kc);
6455 keyix, lsta, iterfunc, arg);
6466 list_for_each_entry(lsta, &lvif->lsta_list, lsta_list) {
6467 for (ieee80211_keyix keyix = 0; keyix < nitems(lsta->kc);
6470 keyix, lsta, iterfunc, arg);
6505 struct lkpi_sta *lsta; local
6517 list_for_each_entry_rcu(lsta, &lvif->lsta_list, lsta_list) {
6518 if (!lsta->added_to_drv)
6520 sta = LSTA_TO_STA(lsta);
6655 lkpi_convert_rx_status(struct ieee80211_hw *hw, struct lkpi_sta *lsta, argument
6835 if (lsta != NULL) {
6836 memcpy(&lsta->sinfo.rxrate, &rxrate, sizeof(rxrate));
6837 lsta->sinfo.filled |= BIT_ULL(NL80211_STA_INFO_RX_BITRATE);
6856 struct lkpi_sta *lsta; local
6941 lsta = NULL;
6943 lsta = STA_TO_LSTA(sta);
6944 ni = ieee80211_ref_node(lsta->ni);
6951 lsta = ni->ni_drv_data;
6955 lkpi_convert_rx_status(hw, lsta, rx_status, &rx_stats, &rssi);
6976 __func__, sta, lsta, (lsta != NULL) ? lsta->state : -1,
7348 struct lkpi_sta *lsta, *temp;
7351 list_for_each_entry_rcu(lsta, &lvif->lsta_list, lsta_list) {
7352 if (lsta->ni == ni) {
7354 return (lsta);
7367 struct lkpi_sta *lsta; local
7373 list_for_each_entry_rcu(lsta, &lvif->lsta_list, lsta_list) {
7374 sta = LSTA_TO_STA(lsta);
7390 struct lkpi_sta *lsta; local
7413 lsta = STA_TO_LSTA(sta);
7414 if (!lsta->added_to_drv)
7876 struct lkpi_sta *lsta; local
7914 list_for_each_entry_rcu(lsta, &lvif->lsta_list, lsta_list) {
7917 sta = LSTA_TO_STA(lsta);