Ejemplo n.º 1
0
void ath_debug_stat_tx(struct ath_softc *sc, struct ath_txq *txq,
                       struct ath_buf *bf)
{
    struct ath_desc *ds = bf->bf_desc;

    if (bf_isampdu(bf)) {
        if (bf_isxretried(bf))
            TX_STAT_INC(txq->axq_qnum, a_xretries);
        else
            TX_STAT_INC(txq->axq_qnum, a_completed);
    } else {
        TX_STAT_INC(txq->axq_qnum, completed);
    }

    if (ds->ds_txstat.ts_status & ATH9K_TXERR_FIFO)
        TX_STAT_INC(txq->axq_qnum, fifo_underrun);
    if (ds->ds_txstat.ts_status & ATH9K_TXERR_XTXOP)
        TX_STAT_INC(txq->axq_qnum, xtxop);
    if (ds->ds_txstat.ts_status & ATH9K_TXERR_TIMER_EXPIRED)
        TX_STAT_INC(txq->axq_qnum, timer_exp);
    if (ds->ds_txstat.ts_flags & ATH9K_TX_DESC_CFG_ERR)
        TX_STAT_INC(txq->axq_qnum, desc_cfg_err);
    if (ds->ds_txstat.ts_flags & ATH9K_TX_DATA_UNDERRUN)
        TX_STAT_INC(txq->axq_qnum, data_underrun);
    if (ds->ds_txstat.ts_flags & ATH9K_TX_DELIM_UNDERRUN)
        TX_STAT_INC(txq->axq_qnum, delim_underrun);
}
Ejemplo n.º 2
0
void ath_debug_stat_tx(struct ath_softc *sc, struct ath_txq *txq,
		       struct ath_buf *bf)
{
	struct ath_desc *ds = bf->bf_desc;

	if (bf_isampdu(bf)) {
		if (bf_isxretried(bf))
			TX_STAT_INC(txq->axq_qnum, a_xretries);
		else
			TX_STAT_INC(txq->axq_qnum, a_completed);
	} else {
		TX_STAT_INC(txq->axq_qnum, completed);
	}

	if (ds->ds_txstat.ts_status & ATH9K_TXERR_FIFO)
		TX_STA
Ejemplo n.º 3
0
void ath_debug_stat_tx(struct ath_softc *sc, struct ath_buf *bf,
		       struct ath_tx_status *ts, struct ath_txq *txq,
		       unsigned int flags)
{
	int qnum = txq->axq_qnum;

	TX_STAT_INC(qnum, tx_pkts_all);
	sc->debug.stats.txstats[qnum].tx_bytes_all += bf->bf_mpdu->len;

	if (bf_isampdu(bf)) {
		if (flags & ATH_TX_ERROR)
			TX_STAT_INC(qnum, a_xretries);
		else
			TX_STAT_INC(qnum, a_completed);
	} else {
		if (ts->ts_status & ATH9K_TXERR_XRETRY)
			TX_STAT_INC(qnum, xretries);
		else
			TX_STAT_INC(qnum, completed);
	}

	if (ts->ts_status & ATH9K_TXERR_FILT)
		TX_STAT_INC(qnum, txerr_filtered);
	if (ts->ts_status & ATH9K_TXERR_FIFO)
		TX_STAT_INC(qnum, fifo_underrun);
	if (ts->ts_status & ATH9K_TXERR_XTXOP)
		TX_STAT_INC(qnum, xtxop);
	if (ts->ts_status & ATH9K_TXERR_TIMER_EXPIRED)
		TX_STAT_INC(qnum, timer_exp);
	if (ts->ts_flags & ATH9K_TX_DESC_CFG_ERR)
		TX_STAT_INC(qnum, desc_cfg_err);
	if (ts->ts_flags & ATH9K_TX_DATA_UNDERRUN)
		TX_STAT_INC(qnum, data_underrun);
	if (ts->ts_flags & ATH9K_TX_DELIM_UNDERRUN)
		TX_STAT_INC(qnum, delim_underrun);
}