Home | History | Annotate | Download | only in RegulatoryDomain
      1 /** \file regulatoryDomain.h
      2  *  \brief regulatoryDomain module internal header file
      3  *
      4  *  \see regulatoryDomain.c
      5  */
      6 /****************************************************************************
      7 **+-----------------------------------------------------------------------+**
      8 **|                                                                       |**
      9 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
     10 **| All rights reserved.                                                  |**
     11 **|                                                                       |**
     12 **| Redistribution and use in source and binary forms, with or without    |**
     13 **| modification, are permitted provided that the following conditions    |**
     14 **| are met:                                                              |**
     15 **|                                                                       |**
     16 **|  * Redistributions of source code must retain the above copyright     |**
     17 **|    notice, this list of conditions and the following disclaimer.      |**
     18 **|  * Redistributions in binary form must reproduce the above copyright  |**
     19 **|    notice, this list of conditions and the following disclaimer in    |**
     20 **|    the documentation and/or other materials provided with the         |**
     21 **|    distribution.                                                      |**
     22 **|  * Neither the name Texas Instruments nor the names of its            |**
     23 **|    contributors may be used to endorse or promote products derived    |**
     24 **|    from this software without specific prior written permission.      |**
     25 **|                                                                       |**
     26 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
     27 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
     28 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
     29 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
     30 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
     31 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
     32 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
     33 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
     34 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
     35 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
     36 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
     37 **|                                                                       |**
     38 **+-----------------------------------------------------------------------+**
     39 ****************************************************************************/
     40 
     41 /***************************************************************************/
     42 /*                                                                          */
     43 /*    MODULE:   regulatoryDomain.h                                          */
     44 /*    PURPOSE:  regulatoryDomain module internal header file                */
     45 /*                                                                          */
     46 /***************************************************************************/
     47 #ifndef __REGULATORY_DOMAIN_H__
     48 #define __REGULATORY_DOMAIN_H__
     49 
     50 #include "paramOut.h"
     51 #include "fsm.h"
     52 #include "802_11Defs.h"
     53 #include "whalCtrl_api.h"
     54 #include "regulatoryDomainApi.h"
     55 
     56 #define BG_24G_BAND_CHANNEL_HOPS    1
     57 #define BG_24G_BAND_MIN_CHANNEL     1
     58 
     59 #define A_5G_BAND_CHANNEL_HOPS      4
     60 
     61 #define A_5G_BAND_MIN_MIDDLE_BAND_DFS_CHANNEL   52
     62 #define A_5G_BAND_MAX_MIDDLE_BAND_DFS_CHANNEL   64
     63 #define A_5G_BAND_MIN_UPPER_BAND_DFS_CHANNEL    100
     64 #define A_5G_BAND_MAX_UPPER_BAND_DFS_CHANNEL    140
     65 
     66 typedef struct
     67 {
     68     BOOL    channelValidityPassive; /*TRUE-valid, FALSE-invalid */
     69     BOOL    channelValidityActive; /*TRUE-valid, FALSE-invalid */
     70     BOOL    bChanneInCountryIe;
     71 
     72     UINT8   uMaxTxPowerDomain;		 /*
     73 									  * Holds ONLY the default limitation (Application)
     74 									  * or according to 11d country code IE
     75 									  * Updated on init phase or upon receiving new country code IE
     76 									  */
     77     UINT32  timestamp;
     78 }   channelCapability_t;
     79 
     80 
     81 typedef struct
     82 {
     83     /* Variables read from registry */
     84     /********************************/
     85     /* 802.11h enabled or disabled */
     86     BOOL                            spectrumManagementEnabled;
     87     /* 802.11d enabled or disabled */
     88     BOOL                            regulatoryDomainEnabled;
     89     /* scan availability channels from registry */
     90     scanControlTable_t              scanControlTable;
     91     /* Desired Temp Tx Power */
     92     UINT8                           uDesiredTemporaryTxPower;
     93 	/* Actual Temp Tx Power */
     94     UINT8                           uTemporaryTxPower;
     95 
     96     /* User configuration for max Tx power */
     97     UINT8                           uUserMaxTxPower;
     98     /* The TX power level translation from NVS */
     99     powerLevelTableInterrogate_t    tPowerLevelTableInterrogate;
    100 
    101 	/* Min and Max values of Dbm retrieved from power level table and used for 11h assoc request */
    102 	UINT8							uMinPowerDbm;
    103 	UINT8							uMaxPowerDbm;
    104       /* Internal reg domain variables */
    105     /********************************/
    106 
    107     /* Power Constraint IE 32 in DBM/10, valid only when 802.11h is enabled  */
    108     UINT8                           uPowerConstraint;
    109     /* External TX Power Control in DBM/10, valid only when 802.11h is disabled */
    110     UINT8                           uExternTxPowerPreferred;
    111 
    112     UINT8                           minDFS_channelNum;
    113     UINT8                           maxDFS_channelNum;
    114 
    115     country_t                       country24;   /* Detected County IE for 2.4 Ghz */
    116     country_t                       country5;    /* Detected County IE for 5 Ghz */
    117     BOOL                            country_2_4_WasFound;
    118     BOOL                            country_5_WasFound;
    119     UINT32                          uLastCountryReceivedTS;
    120     UINT32                          uTimeOutToResetCountryMs;
    121     channelCapability_t             supportedChannels_band_5[A_5G_BAND_NUM_CHANNELS];
    122     channelCapability_t             supportedChannels_band_2_4[NUM_OF_CHANNELS_24];
    123 
    124     /* set the size of the array to max of B_G & A, so that the array doesnt overflow. +3 for word alignment */
    125     UINT8                           pDefaultChannels[A_5G_BAND_NUM_CHANNELS+3];
    126     /* merge 4.02/4.03 evaluate the +3 above and adjust or hSiteMgr and below will be
    127        will be unaligned accesses.  Expect it might now be +1 since 2 UINT8 variable
    128        have been added in 4.03 (max and min DFS_channelNum above) */
    129 
    130 
    131     /* Handles to other objects */
    132     TI_HANDLE                       hSiteMgr;
    133     TI_HANDLE                       hHalCtrl;
    134     TI_HANDLE                       hSwitchChannel;
    135     TI_HANDLE                       hReport;
    136     TI_HANDLE                       hOs;
    137 
    138 
    139 } regulatoryDomain_t;
    140 
    141 
    142 
    143 
    144 
    145 #endif /* __REGULATORY_DOMAIN_H__*/
    146