/* This function checks whether AMPDU is allowed or not for a particular TID. */ staticinline u8
mwifiex_is_ampdu_allowed(struct mwifiex_private *priv, struct mwifiex_ra_list_tbl *ptr, int tid)
{ if (is_broadcast_ether_addr(ptr->ra)) returnfalse; if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) { return mwifiex_is_station_ampdu_allowed(priv, ptr, tid);
} else { if (ptr->tdls_link) return mwifiex_is_station_ampdu_allowed(priv, ptr, tid);
/* * This function checks whether AMSDU is allowed or not for a particular TID.
*/ staticinline u8
mwifiex_is_amsdu_allowed(struct mwifiex_private *priv, int tid)
{ return (((priv->aggr_prio_tbl[tid].amsdu != BA_STREAM_NOT_ALLOWED) &&
(priv->is_data_rate_auto || !(priv->bitmap_rates[2] & 0x03)))
? true : false);
}
/* * This function checks whether a space is available for new BA stream or not.
*/ staticinline u8 mwifiex_space_avail_for_new_ba_stream( struct mwifiex_adapter *adapter)
{ struct mwifiex_private *priv;
u8 i;
size_t ba_stream_num = 0, ba_stream_max;
/* * This function finds the correct Tx BA stream to delete. * * Upon successfully locating, both the TID and the RA are returned.
*/ staticinline u8
mwifiex_find_stream_to_delete(struct mwifiex_private *priv, int ptr_tid, int *ptid, u8 *ra)
{ int tid;
u8 ret = false; struct mwifiex_tx_ba_stream_tbl *tx_tbl;
tid = priv->aggr_prio_tbl[ptr_tid].ampdu_user;
spin_lock_bh(&priv->tx_ba_stream_tbl_lock);
list_for_each_entry(tx_tbl, &priv->tx_ba_stream_tbl_ptr, list) { if (tid > priv->aggr_prio_tbl[tx_tbl->tid].ampdu_user) {
tid = priv->aggr_prio_tbl[tx_tbl->tid].ampdu_user;
*ptid = tx_tbl->tid;
memcpy(ra, tx_tbl->ra, ETH_ALEN);
ret = true;
}
}
spin_unlock_bh(&priv->tx_ba_stream_tbl_lock);
return ret;
}
/* * This function checks whether associated station is 11n enabled
*/ staticinlineint mwifiex_is_sta_11n_enabled(struct mwifiex_private *priv, struct mwifiex_sta_node *node)
{ if (!node || ((priv->bss_role == MWIFIEX_BSS_ROLE_UAP) &&
!priv->ap_11n_enabled) ||
((priv->bss_mode == NL80211_IFTYPE_ADHOC) &&
!priv->adapter->adhoc_11n_enabled)) return 0;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.