Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/usb/wlan/if_zyd.c
Show First 20 Lines • Show All 656 Lines • ▼ Show 20 Lines | case ZYD_NOTIF_RETRYSTATUS: | ||||
/* | /* | ||||
* Find the node to which the packet was sent and | * Find the node to which the packet was sent and | ||||
* update its retry statistics. In BSS mode, this node | * update its retry statistics. In BSS mode, this node | ||||
* is the AP we're associated to so no lookup is | * is the AP we're associated to so no lookup is | ||||
* actually needed. | * actually needed. | ||||
*/ | */ | ||||
ni = ieee80211_find_txnode(vap, retry->macaddr); | ni = ieee80211_find_txnode(vap, retry->macaddr); | ||||
if (ni != NULL) { | if (ni != NULL) { | ||||
struct ieee80211_ratectl_tx_status *txs = | |||||
&sc->sc_txs; | |||||
int retrycnt = | int retrycnt = | ||||
(int)(le16toh(retry->count) & 0xff); | (int)(le16toh(retry->count) & 0xff); | ||||
ieee80211_ratectl_tx_complete(vap, ni, | txs->flags = | ||||
IEEE80211_RATECTL_TX_FAILURE, | IEEE80211_RATECTL_STATUS_LONG_RETRY; | ||||
&retrycnt, NULL); | txs->long_retries = retrycnt; | ||||
if (le16toh(retry->count) & 0x100) { | |||||
txs->status = | |||||
IEEE80211_RATECTL_TX_FAIL_LONG; | |||||
} else { | |||||
txs->status = | |||||
IEEE80211_RATECTL_TX_SUCCESS; | |||||
} | |||||
ieee80211_ratectl_tx_complete(ni, txs); | |||||
ieee80211_free_node(ni); | ieee80211_free_node(ni); | ||||
} | } | ||||
if (le16toh(retry->count) & 0x100) | if (le16toh(retry->count) & 0x100) | ||||
/* too many retries */ | /* too many retries */ | ||||
if_inc_counter(vap->iv_ifp, IFCOUNTER_OERRORS, | if_inc_counter(vap->iv_ifp, IFCOUNTER_OERRORS, | ||||
1); | 1); | ||||
break; | break; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 2,232 Lines • Show Last 20 Lines |