nexmon – Rev 1

Subversion Repositories:
Rev:
/*
 * Indices for 802.11 a/b/g/n/ac 1-3 chain symmetric transmit rates
 *
 * Copyright (C) 1999-2013, Broadcom Corporation
 * 
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * $Id: bcmwifi_rates.h 5187 2012-06-29 06:17:50Z $
 */

#ifndef _bcmwifi_rates_h_
#define _bcmwifi_rates_h_

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */


#define WL_RATESET_SZ_DSSS              4
#define WL_RATESET_SZ_OFDM              8
#define WL_RATESET_SZ_HT_MCS    8
#define WL_RATESET_SZ_VHT_MCS   10

#define WL_TX_CHAINS_MAX        3

#define WL_RATE_DISABLED                (-128) /* Power value corresponding to unsupported rate */

/* Transmit channel bandwidths */
typedef enum wl_tx_bw {
        WL_TX_BW_20,
        WL_TX_BW_40,
        WL_TX_BW_80,
        WL_TX_BW_20IN40,
        WL_TX_BW_20IN80,
        WL_TX_BW_40IN80
} wl_tx_bw_t;


/*
 * Transmit modes.
 * Not all modes are listed here, only those required for disambiguation. e.g. SPEXP is not listed
 */
typedef enum wl_tx_mode {
        WL_TX_MODE_NONE,
        WL_TX_MODE_STBC,
        WL_TX_MODE_CDD,
        WL_TX_MODE_TXBF,
        WL_NUM_TX_MODES
} wl_tx_mode_t;


/* Number of transmit chains */
typedef enum wl_tx_chains {
        WL_TX_CHAINS_1 = 1,
        WL_TX_CHAINS_2,
        WL_TX_CHAINS_3
} wl_tx_chains_t;


/* Number of transmit streams */
typedef enum wl_tx_nss {
        WL_TX_NSS_1 = 1,
        WL_TX_NSS_2,
        WL_TX_NSS_3
} wl_tx_nss_t;


typedef enum clm_rates {
        /************
        * 1 chain  *
        ************
        */

        /* 1 Stream */
        WL_RATE_1X1_DSSS_1         = 0,
        WL_RATE_1X1_DSSS_2         = 1,
        WL_RATE_1X1_DSSS_5_5       = 2,
        WL_RATE_1X1_DSSS_11        = 3,

        WL_RATE_1X1_OFDM_6         = 4,
        WL_RATE_1X1_OFDM_9         = 5,
        WL_RATE_1X1_OFDM_12        = 6,
        WL_RATE_1X1_OFDM_18        = 7,
        WL_RATE_1X1_OFDM_24        = 8,
        WL_RATE_1X1_OFDM_36        = 9,
        WL_RATE_1X1_OFDM_48        = 10,
        WL_RATE_1X1_OFDM_54        = 11,

        WL_RATE_1X1_MCS0           = 12,
        WL_RATE_1X1_MCS1           = 13,
        WL_RATE_1X1_MCS2           = 14,
        WL_RATE_1X1_MCS3           = 15,
        WL_RATE_1X1_MCS4           = 16,
        WL_RATE_1X1_MCS5           = 17,
        WL_RATE_1X1_MCS6           = 18,
        WL_RATE_1X1_MCS7           = 19,

        WL_RATE_1X1_VHT0SS1        = 12,
        WL_RATE_1X1_VHT1SS1        = 13,
        WL_RATE_1X1_VHT2SS1        = 14,
        WL_RATE_1X1_VHT3SS1        = 15,
        WL_RATE_1X1_VHT4SS1        = 16,
        WL_RATE_1X1_VHT5SS1        = 17,
        WL_RATE_1X1_VHT6SS1        = 18,
        WL_RATE_1X1_VHT7SS1        = 19,
        WL_RATE_1X1_VHT8SS1        = 20,
        WL_RATE_1X1_VHT9SS1        = 21,


        /************
        * 2 chains *
        ************
        */

        /* 1 Stream expanded + 1 */
        WL_RATE_1X2_DSSS_1         = 22,
        WL_RATE_1X2_DSSS_2         = 23,
        WL_RATE_1X2_DSSS_5_5       = 24,
        WL_RATE_1X2_DSSS_11        = 25,

        WL_RATE_1X2_CDD_OFDM_6     = 26,
        WL_RATE_1X2_CDD_OFDM_9     = 27,
        WL_RATE_1X2_CDD_OFDM_12    = 28,
        WL_RATE_1X2_CDD_OFDM_18    = 29,
        WL_RATE_1X2_CDD_OFDM_24    = 30,
        WL_RATE_1X2_CDD_OFDM_36    = 31,
        WL_RATE_1X2_CDD_OFDM_48    = 32,
        WL_RATE_1X2_CDD_OFDM_54    = 33,

        WL_RATE_1X2_CDD_MCS0       = 34,
        WL_RATE_1X2_CDD_MCS1       = 35,
        WL_RATE_1X2_CDD_MCS2       = 36,
        WL_RATE_1X2_CDD_MCS3       = 37,
        WL_RATE_1X2_CDD_MCS4       = 38,
        WL_RATE_1X2_CDD_MCS5       = 39,
        WL_RATE_1X2_CDD_MCS6       = 40,
        WL_RATE_1X2_CDD_MCS7       = 41,

        WL_RATE_1X2_VHT0SS1        = 34,
        WL_RATE_1X2_VHT1SS1        = 35,
        WL_RATE_1X2_VHT2SS1        = 36,
        WL_RATE_1X2_VHT3SS1        = 37,
        WL_RATE_1X2_VHT4SS1        = 38,
        WL_RATE_1X2_VHT5SS1        = 39,
        WL_RATE_1X2_VHT6SS1        = 40,
        WL_RATE_1X2_VHT7SS1        = 41,
        WL_RATE_1X2_VHT8SS1        = 42,
        WL_RATE_1X2_VHT9SS1        = 43,

        /* 2 Streams */
        WL_RATE_2X2_STBC_MCS0      = 44,
        WL_RATE_2X2_STBC_MCS1      = 45,
        WL_RATE_2X2_STBC_MCS2      = 46,
        WL_RATE_2X2_STBC_MCS3      = 47,
        WL_RATE_2X2_STBC_MCS4      = 48,
        WL_RATE_2X2_STBC_MCS5      = 49,
        WL_RATE_2X2_STBC_MCS6      = 50,
        WL_RATE_2X2_STBC_MCS7      = 51,

        WL_RATE_2X2_STBC_VHT0SS1   = 44,
        WL_RATE_2X2_STBC_VHT1SS1   = 45,
        WL_RATE_2X2_STBC_VHT2SS1   = 46,
        WL_RATE_2X2_STBC_VHT3SS1   = 47,
        WL_RATE_2X2_STBC_VHT4SS1   = 48,
        WL_RATE_2X2_STBC_VHT5SS1   = 49,
        WL_RATE_2X2_STBC_VHT6SS1   = 50,
        WL_RATE_2X2_STBC_VHT7SS1   = 51,
        WL_RATE_2X2_STBC_VHT8SS1   = 52,
        WL_RATE_2X2_STBC_VHT9SS1   = 53,

        WL_RATE_2X2_SDM_MCS8       = 54,
        WL_RATE_2X2_SDM_MCS9       = 55,
        WL_RATE_2X2_SDM_MCS10      = 56,
        WL_RATE_2X2_SDM_MCS11      = 57,
        WL_RATE_2X2_SDM_MCS12      = 58,
        WL_RATE_2X2_SDM_MCS13      = 59,
        WL_RATE_2X2_SDM_MCS14      = 60,
        WL_RATE_2X2_SDM_MCS15      = 61,

        WL_RATE_2X2_VHT0SS2        = 54,
        WL_RATE_2X2_VHT1SS2        = 55,
        WL_RATE_2X2_VHT2SS2        = 56,
        WL_RATE_2X2_VHT3SS2        = 57,
        WL_RATE_2X2_VHT4SS2        = 58,
        WL_RATE_2X2_VHT5SS2        = 59,
        WL_RATE_2X2_VHT6SS2        = 60,
        WL_RATE_2X2_VHT7SS2        = 61,
        WL_RATE_2X2_VHT8SS2        = 62,
        WL_RATE_2X2_VHT9SS2        = 63,

        /************
        * 3 chains *
        ************
        */

        /* 1 Stream expanded + 2 */
        WL_RATE_1X3_DSSS_1         = 64,
        WL_RATE_1X3_DSSS_2         = 65,
        WL_RATE_1X3_DSSS_5_5       = 66,
        WL_RATE_1X3_DSSS_11        = 67,

        WL_RATE_1X3_CDD_OFDM_6     = 68,
        WL_RATE_1X3_CDD_OFDM_9     = 69,
        WL_RATE_1X3_CDD_OFDM_12    = 70,
        WL_RATE_1X3_CDD_OFDM_18    = 71,
        WL_RATE_1X3_CDD_OFDM_24    = 72,
        WL_RATE_1X3_CDD_OFDM_36    = 73,
        WL_RATE_1X3_CDD_OFDM_48    = 74,
        WL_RATE_1X3_CDD_OFDM_54    = 75,

        WL_RATE_1X3_CDD_MCS0       = 76,
        WL_RATE_1X3_CDD_MCS1       = 77,
        WL_RATE_1X3_CDD_MCS2       = 78,
        WL_RATE_1X3_CDD_MCS3       = 79,
        WL_RATE_1X3_CDD_MCS4       = 80,
        WL_RATE_1X3_CDD_MCS5       = 81,
        WL_RATE_1X3_CDD_MCS6       = 82,
        WL_RATE_1X3_CDD_MCS7       = 83,

        WL_RATE_1X3_VHT0SS1        = 76,
        WL_RATE_1X3_VHT1SS1        = 77,
        WL_RATE_1X3_VHT2SS1        = 78,
        WL_RATE_1X3_VHT3SS1        = 79,
        WL_RATE_1X3_VHT4SS1        = 80,
        WL_RATE_1X3_VHT5SS1        = 81,
        WL_RATE_1X3_VHT6SS1        = 82,
        WL_RATE_1X3_VHT7SS1        = 83,
        WL_RATE_1X3_VHT8SS1        = 84,
        WL_RATE_1X3_VHT9SS1        = 85,

        /* 2 Streams expanded + 1 */
        WL_RATE_2X3_STBC_MCS0      = 86,
        WL_RATE_2X3_STBC_MCS1      = 87,
        WL_RATE_2X3_STBC_MCS2      = 88,
        WL_RATE_2X3_STBC_MCS3      = 89,
        WL_RATE_2X3_STBC_MCS4      = 90,
        WL_RATE_2X3_STBC_MCS5      = 91,
        WL_RATE_2X3_STBC_MCS6      = 92,
        WL_RATE_2X3_STBC_MCS7      = 93,

        WL_RATE_2X3_STBC_VHT0SS1   = 86,
        WL_RATE_2X3_STBC_VHT1SS1   = 87,
        WL_RATE_2X3_STBC_VHT2SS1   = 88,
        WL_RATE_2X3_STBC_VHT3SS1   = 89,
        WL_RATE_2X3_STBC_VHT4SS1   = 90,
        WL_RATE_2X3_STBC_VHT5SS1   = 91,
        WL_RATE_2X3_STBC_VHT6SS1   = 92,
        WL_RATE_2X3_STBC_VHT7SS1   = 93,
        WL_RATE_2X3_STBC_VHT8SS1   = 94,
        WL_RATE_2X3_STBC_VHT9SS1   = 95,

        WL_RATE_2X3_SDM_MCS8       = 96,
        WL_RATE_2X3_SDM_MCS9       = 97,
        WL_RATE_2X3_SDM_MCS10      = 98,
        WL_RATE_2X3_SDM_MCS11      = 99,
        WL_RATE_2X3_SDM_MCS12      = 100,
        WL_RATE_2X3_SDM_MCS13      = 101,
        WL_RATE_2X3_SDM_MCS14      = 102,
        WL_RATE_2X3_SDM_MCS15      = 103,

        WL_RATE_2X3_VHT0SS2        = 96,
        WL_RATE_2X3_VHT1SS2        = 97,
        WL_RATE_2X3_VHT2SS2        = 98,
        WL_RATE_2X3_VHT3SS2        = 99,
        WL_RATE_2X3_VHT4SS2        = 100,
        WL_RATE_2X3_VHT5SS2        = 101,
        WL_RATE_2X3_VHT6SS2        = 102,
        WL_RATE_2X3_VHT7SS2        = 103,
        WL_RATE_2X3_VHT8SS2        = 104,
        WL_RATE_2X3_VHT9SS2        = 105,

        /* 3 Streams */
        WL_RATE_3X3_SDM_MCS16      = 106,
        WL_RATE_3X3_SDM_MCS17      = 107,
        WL_RATE_3X3_SDM_MCS18      = 108,
        WL_RATE_3X3_SDM_MCS19      = 109,
        WL_RATE_3X3_SDM_MCS20      = 110,
        WL_RATE_3X3_SDM_MCS21      = 111,
        WL_RATE_3X3_SDM_MCS22      = 112,
        WL_RATE_3X3_SDM_MCS23      = 113,

        WL_RATE_3X3_VHT0SS3        = 106,
        WL_RATE_3X3_VHT1SS3        = 107,
        WL_RATE_3X3_VHT2SS3        = 108,
        WL_RATE_3X3_VHT3SS3        = 109,
        WL_RATE_3X3_VHT4SS3        = 110,
        WL_RATE_3X3_VHT5SS3        = 111,
        WL_RATE_3X3_VHT6SS3        = 112,
        WL_RATE_3X3_VHT7SS3        = 113,
        WL_RATE_3X3_VHT8SS3        = 114,
        WL_RATE_3X3_VHT9SS3        = 115,


        /****************************
         * TX Beamforming, 2 chains *
         ****************************
         */

        /* 1 Stream expanded + 1 */

        WL_RATE_1X2_TXBF_OFDM_6    = 116,
        WL_RATE_1X2_TXBF_OFDM_9    = 117,
        WL_RATE_1X2_TXBF_OFDM_12   = 118,
        WL_RATE_1X2_TXBF_OFDM_18   = 119,
        WL_RATE_1X2_TXBF_OFDM_24   = 120,
        WL_RATE_1X2_TXBF_OFDM_36   = 121,
        WL_RATE_1X2_TXBF_OFDM_48   = 122,
        WL_RATE_1X2_TXBF_OFDM_54   = 123,

        WL_RATE_1X2_TXBF_MCS0      = 124,
        WL_RATE_1X2_TXBF_MCS1      = 125,
        WL_RATE_1X2_TXBF_MCS2      = 126,
        WL_RATE_1X2_TXBF_MCS3      = 127,
        WL_RATE_1X2_TXBF_MCS4      = 128,
        WL_RATE_1X2_TXBF_MCS5      = 129,
        WL_RATE_1X2_TXBF_MCS6      = 130,
        WL_RATE_1X2_TXBF_MCS7      = 131,

        WL_RATE_1X2_TXBF_VHT0SS1   = 124,
        WL_RATE_1X2_TXBF_VHT1SS1   = 125,
        WL_RATE_1X2_TXBF_VHT2SS1   = 126,
        WL_RATE_1X2_TXBF_VHT3SS1   = 127,
        WL_RATE_1X2_TXBF_VHT4SS1   = 128,
        WL_RATE_1X2_TXBF_VHT5SS1   = 129,
        WL_RATE_1X2_TXBF_VHT6SS1   = 130,
        WL_RATE_1X2_TXBF_VHT7SS1   = 131,
        WL_RATE_1X2_TXBF_VHT8SS1   = 132,
        WL_RATE_1X2_TXBF_VHT9SS1   = 133,

        /* 2 Streams */

        WL_RATE_2X2_TXBF_SDM_MCS8  = 134,
        WL_RATE_2X2_TXBF_SDM_MCS9  = 135,
        WL_RATE_2X2_TXBF_SDM_MCS10 = 136,
        WL_RATE_2X2_TXBF_SDM_MCS11 = 137,
        WL_RATE_2X2_TXBF_SDM_MCS12 = 138,
        WL_RATE_2X2_TXBF_SDM_MCS13 = 139,
        WL_RATE_2X2_TXBF_SDM_MCS14 = 140,
        WL_RATE_2X2_TXBF_SDM_MCS15 = 141,

        WL_RATE_2X2_TXBF_VHT0SS2   = 134,
        WL_RATE_2X2_TXBF_VHT1SS2   = 135,
        WL_RATE_2X2_TXBF_VHT2SS2   = 136,
        WL_RATE_2X2_TXBF_VHT3SS2   = 137,
        WL_RATE_2X2_TXBF_VHT4SS2   = 138,
        WL_RATE_2X2_TXBF_VHT5SS2   = 139,
        WL_RATE_2X2_TXBF_VHT6SS2   = 140,
        WL_RATE_2X2_TXBF_VHT7SS2   = 141,


        /****************************
         * TX Beamforming, 3 chains *
         ****************************
         */

        /* 1 Stream expanded + 2 */

        WL_RATE_1X3_TXBF_OFDM_6    = 142,
        WL_RATE_1X3_TXBF_OFDM_9    = 143,
        WL_RATE_1X3_TXBF_OFDM_12   = 144,
        WL_RATE_1X3_TXBF_OFDM_18   = 145,
        WL_RATE_1X3_TXBF_OFDM_24   = 146,
        WL_RATE_1X3_TXBF_OFDM_36   = 147,
        WL_RATE_1X3_TXBF_OFDM_48   = 148,
        WL_RATE_1X3_TXBF_OFDM_54   = 149,

        WL_RATE_1X3_TXBF_MCS0      = 150,
        WL_RATE_1X3_TXBF_MCS1      = 151,
        WL_RATE_1X3_TXBF_MCS2      = 152,
        WL_RATE_1X3_TXBF_MCS3      = 153,
        WL_RATE_1X3_TXBF_MCS4      = 154,
        WL_RATE_1X3_TXBF_MCS5      = 155,
        WL_RATE_1X3_TXBF_MCS6      = 156,
        WL_RATE_1X3_TXBF_MCS7      = 157,

        WL_RATE_1X3_TXBF_VHT0SS1   = 150,
        WL_RATE_1X3_TXBF_VHT1SS1   = 151,
        WL_RATE_1X3_TXBF_VHT2SS1   = 152,
        WL_RATE_1X3_TXBF_VHT3SS1   = 153,
        WL_RATE_1X3_TXBF_VHT4SS1   = 154,
        WL_RATE_1X3_TXBF_VHT5SS1   = 155,
        WL_RATE_1X3_TXBF_VHT6SS1   = 156,
        WL_RATE_1X3_TXBF_VHT7SS1   = 157,
        WL_RATE_1X3_TXBF_VHT8SS1   = 158,
        WL_RATE_1X3_TXBF_VHT9SS1   = 159,

        /* 2 Streams expanded + 1 */

        WL_RATE_2X3_TXBF_SDM_MCS8  = 160,
        WL_RATE_2X3_TXBF_SDM_MCS9  = 161,
        WL_RATE_2X3_TXBF_SDM_MCS10 = 162,
        WL_RATE_2X3_TXBF_SDM_MCS11 = 163,
        WL_RATE_2X3_TXBF_SDM_MCS12 = 164,
        WL_RATE_2X3_TXBF_SDM_MCS13 = 165,
        WL_RATE_2X3_TXBF_SDM_MCS14 = 166,
        WL_RATE_2X3_TXBF_SDM_MCS15 = 167,

        WL_RATE_2X3_TXBF_VHT0SS2   = 160,
        WL_RATE_2X3_TXBF_VHT1SS2   = 161,
        WL_RATE_2X3_TXBF_VHT2SS2   = 162,
        WL_RATE_2X3_TXBF_VHT3SS2   = 163,
        WL_RATE_2X3_TXBF_VHT4SS2   = 164,
        WL_RATE_2X3_TXBF_VHT5SS2   = 165,
        WL_RATE_2X3_TXBF_VHT6SS2   = 166,
        WL_RATE_2X3_TXBF_VHT7SS2   = 167,
        WL_RATE_2X3_TXBF_VHT8SS2   = 168,
        WL_RATE_2X3_TXBF_VHT9SS2   = 169,

        /* 3 Streams */

        WL_RATE_3X3_TXBF_SDM_MCS16 = 170,
        WL_RATE_3X3_TXBF_SDM_MCS17 = 171,
        WL_RATE_3X3_TXBF_SDM_MCS18 = 172,
        WL_RATE_3X3_TXBF_SDM_MCS19 = 173,
        WL_RATE_3X3_TXBF_SDM_MCS20 = 174,
        WL_RATE_3X3_TXBF_SDM_MCS21 = 175,
        WL_RATE_3X3_TXBF_SDM_MCS22 = 176,
        WL_RATE_3X3_TXBF_SDM_MCS23 = 177,

        WL_RATE_3X3_TXBF_VHT0SS3   = 170,
        WL_RATE_3X3_TXBF_VHT1SS3   = 171,
        WL_RATE_3X3_TXBF_VHT2SS3   = 172,
        WL_RATE_3X3_TXBF_VHT3SS3   = 173,
        WL_RATE_3X3_TXBF_VHT4SS3   = 174,
        WL_RATE_3X3_TXBF_VHT5SS3   = 175,
        WL_RATE_3X3_TXBF_VHT6SS3   = 176,
        WL_RATE_3X3_TXBF_VHT7SS3   = 177
} clm_rates_t;

/* Number of rate codes */
#define WL_NUMRATES 178

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* _bcmwifi_rates_h_ */