1718cf2ccSPedro F. Giffuni /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 3718cf2ccSPedro F. Giffuni * 44b44f6f2SAdrian Chadd * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd. 54b44f6f2SAdrian Chadd * All rights reserved. 64b44f6f2SAdrian Chadd * 74b44f6f2SAdrian Chadd * Redistribution and use in source and binary forms, with or without 84b44f6f2SAdrian Chadd * modification, are permitted provided that the following conditions 94b44f6f2SAdrian Chadd * are met: 104b44f6f2SAdrian Chadd * 1. Redistributions of source code must retain the above copyright 114b44f6f2SAdrian Chadd * notice, this list of conditions and the following disclaimer, 124b44f6f2SAdrian Chadd * without modification. 134b44f6f2SAdrian Chadd * 2. Redistributions in binary form must reproduce at minimum a disclaimer 144b44f6f2SAdrian Chadd * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any 154b44f6f2SAdrian Chadd * redistribution must be conditioned upon including a substantially 164b44f6f2SAdrian Chadd * similar Disclaimer requirement for further binary redistribution. 174b44f6f2SAdrian Chadd * 184b44f6f2SAdrian Chadd * NO WARRANTY 194b44f6f2SAdrian Chadd * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 204b44f6f2SAdrian Chadd * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 214b44f6f2SAdrian Chadd * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY 224b44f6f2SAdrian Chadd * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 234b44f6f2SAdrian Chadd * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, 244b44f6f2SAdrian Chadd * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 254b44f6f2SAdrian Chadd * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 264b44f6f2SAdrian Chadd * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 274b44f6f2SAdrian Chadd * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 284b44f6f2SAdrian Chadd * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 294b44f6f2SAdrian Chadd * THE POSSIBILITY OF SUCH DAMAGES. 304b44f6f2SAdrian Chadd */ 314b44f6f2SAdrian Chadd #ifndef __IF_ATH_TX_HT_H__ 324b44f6f2SAdrian Chadd #define __IF_ATH_TX_HT_H__ 334b44f6f2SAdrian Chadd 34eb6f0de0SAdrian Chadd enum { 35eb6f0de0SAdrian Chadd MCS_HT20, 36eb6f0de0SAdrian Chadd MCS_HT20_SGI, 37eb6f0de0SAdrian Chadd MCS_HT40, 38eb6f0de0SAdrian Chadd MCS_HT40_SGI, 39eb6f0de0SAdrian Chadd }; 40eb6f0de0SAdrian Chadd 41eb6f0de0SAdrian Chadd typedef enum { 42eb6f0de0SAdrian Chadd ATH_AGGR_DONE, 43eb6f0de0SAdrian Chadd ATH_AGGR_BAW_CLOSED, 44eb6f0de0SAdrian Chadd ATH_AGGR_LIMITED, 45eb6f0de0SAdrian Chadd ATH_AGGR_SHORTPKT, 46eb6f0de0SAdrian Chadd ATH_AGGR_8K_LIMITED, 47eb6f0de0SAdrian Chadd ATH_AGGR_ERROR, 48eb6f0de0SAdrian Chadd ATH_AGGR_NONAGGR, 4922a3aee6SAdrian Chadd ATH_AGGR_LEAK_CLOSED, 50eb6f0de0SAdrian Chadd } ATH_AGGR_STATUS; 51eb6f0de0SAdrian Chadd 52eb6f0de0SAdrian Chadd extern int ath_max_4ms_framelen[4][32]; 53eb6f0de0SAdrian Chadd 54eb6f0de0SAdrian Chadd extern void ath_tx_rate_fill_rcflags(struct ath_softc *sc, struct ath_buf *bf); 55eb6f0de0SAdrian Chadd 564b44f6f2SAdrian Chadd extern void ath_buf_set_rate(struct ath_softc *sc, 57eb6f0de0SAdrian Chadd struct ieee80211_node *ni, struct ath_buf *bf); 58eb6f0de0SAdrian Chadd 59eb6f0de0SAdrian Chadd extern ATH_AGGR_STATUS 60eb6f0de0SAdrian Chadd ath_tx_form_aggr(struct ath_softc *sc, struct ath_node *an, 61eb6f0de0SAdrian Chadd struct ath_tid *tid, ath_bufhead *bf_q); 624b44f6f2SAdrian Chadd 634b44f6f2SAdrian Chadd #endif 64