Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ath/if_ath_tx.c
Show First 20 Lines • Show All 2,592 Lines • ▼ Show 20 Lines | ieee80211_is_action(struct ieee80211_frame *wh) | ||||
/* Subtype: Action frame? */ | /* Subtype: Action frame? */ | ||||
if ((wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) != | if ((wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) != | ||||
IEEE80211_FC0_SUBTYPE_ACTION) | IEEE80211_FC0_SUBTYPE_ACTION) | ||||
return 0; | return 0; | ||||
return 1; | return 1; | ||||
} | } | ||||
#define MS(_v, _f) (((_v) & _f) >> _f##_S) | |||||
/* | /* | ||||
* Return an alternate TID for ADDBA request frames. | * Return an alternate TID for ADDBA request frames. | ||||
* | * | ||||
* Yes, this likely should be done in the net80211 layer. | * Yes, this likely should be done in the net80211 layer. | ||||
*/ | */ | ||||
static int | static int | ||||
ath_tx_action_frame_override_queue(struct ath_softc *sc, | ath_tx_action_frame_override_queue(struct ath_softc *sc, | ||||
struct ieee80211_node *ni, | struct ieee80211_node *ni, | ||||
Show All 22 Lines | #endif | ||||
/* Not ADDBA? Bail */ | /* Not ADDBA? Bail */ | ||||
if (ia->rq_header.ia_category != IEEE80211_ACTION_CAT_BA) | if (ia->rq_header.ia_category != IEEE80211_ACTION_CAT_BA) | ||||
return 0; | return 0; | ||||
if (ia->rq_header.ia_action != IEEE80211_ACTION_BA_ADDBA_REQUEST) | if (ia->rq_header.ia_action != IEEE80211_ACTION_BA_ADDBA_REQUEST) | ||||
return 0; | return 0; | ||||
/* Extract TID, return it */ | /* Extract TID, return it */ | ||||
baparamset = le16toh(ia->rq_baparamset); | baparamset = le16toh(ia->rq_baparamset); | ||||
*tid = (int) MS(baparamset, IEEE80211_BAPS_TID); | *tid = (int) _IEEE80211_MASKSHIFT(baparamset, IEEE80211_BAPS_TID); | ||||
return 1; | return 1; | ||||
} | } | ||||
#undef MS | |||||
/* Per-node software queue operations */ | /* Per-node software queue operations */ | ||||
/* | /* | ||||
* Add the current packet to the given BAW. | * Add the current packet to the given BAW. | ||||
* It is assumed that the current packet | * It is assumed that the current packet | ||||
* | * | ||||
* + fits inside the BAW; | * + fits inside the BAW; | ||||
▲ Show 20 Lines • Show All 3,766 Lines • Show Last 20 Lines |