1218159Sadrian/*
2218159Sadrian * Copyright (c) 2011 Adrian Chadd, Xenion Pty Ltd.
3218159Sadrian * All rights reserved.
4218159Sadrian *
5218159Sadrian * Redistribution and use in source and binary forms, with or without
6218159Sadrian * modification, are permitted provided that the following conditions
7218159Sadrian * are met:
8218159Sadrian * 1. Redistributions of source code must retain the above copyright
9218159Sadrian *    notice, this list of conditions and the following disclaimer,
10218159Sadrian *    without modification.
11218159Sadrian * 2. Redistributions in binary form must reproduce at minimum a disclaimer
12218159Sadrian *    similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13218159Sadrian *    redistribution must be conditioned upon including a substantially
14218159Sadrian *    similar Disclaimer requirement for further binary redistribution.
15218159Sadrian *
16218159Sadrian * NO WARRANTY
17218159Sadrian * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18218159Sadrian * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19218159Sadrian * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
20218159Sadrian * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21218159Sadrian * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
22218159Sadrian * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23218159Sadrian * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24218159Sadrian * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
25218159Sadrian * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26218159Sadrian * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27218159Sadrian * THE POSSIBILITY OF SUCH DAMAGES.
28218159Sadrian *
29218159Sadrian * $FreeBSD: releng/11.0/sys/dev/ath/if_ath_tx_ht.h 250665 2013-05-15 18:33:05Z adrian $
30218159Sadrian */
31218159Sadrian#ifndef	__IF_ATH_TX_HT_H__
32218159Sadrian#define	__IF_ATH_TX_HT_H__
33218159Sadrian
34227364Sadrianenum {
35227364Sadrian	MCS_HT20,
36227364Sadrian	MCS_HT20_SGI,
37227364Sadrian	MCS_HT40,
38227364Sadrian	MCS_HT40_SGI,
39227364Sadrian};
40227364Sadrian
41227364Sadriantypedef enum {
42227364Sadrian	ATH_AGGR_DONE,
43227364Sadrian	ATH_AGGR_BAW_CLOSED,
44227364Sadrian	ATH_AGGR_LIMITED,
45227364Sadrian	ATH_AGGR_SHORTPKT,
46227364Sadrian	ATH_AGGR_8K_LIMITED,
47227364Sadrian	ATH_AGGR_ERROR,
48227364Sadrian	ATH_AGGR_NONAGGR,
49250665Sadrian	ATH_AGGR_LEAK_CLOSED,
50227364Sadrian} ATH_AGGR_STATUS;
51227364Sadrian
52227364Sadrianextern int	ath_max_4ms_framelen[4][32];
53227364Sadrian
54227364Sadrianextern void ath_tx_rate_fill_rcflags(struct ath_softc *sc, struct ath_buf *bf);
55227364Sadrian
56218159Sadrianextern void	ath_buf_set_rate(struct ath_softc *sc,
57227364Sadrian		struct ieee80211_node *ni, struct ath_buf *bf);
58218159Sadrian
59227364Sadrianextern ATH_AGGR_STATUS
60227364Sadrian	    ath_tx_form_aggr(struct ath_softc *sc, struct ath_node *an,
61227364Sadrian	    struct ath_tid *tid, ath_bufhead *bf_q);
62227364Sadrian
63218159Sadrian#endif
64