2 * This header file contains data structures and
3 * function declarations of 802.11d
11 #define UNIVERSAL_REGION_CODE 0xff
13 /** (Beaconsize(256)-5(IEId,len,contrystr(3))/3(FirstChan,NoOfChan,MaxPwr)
15 #define MRVDRV_MAX_SUBBAND_802_11D 83
17 #define COUNTRY_CODE_LEN 3
18 #define MAX_NO_OF_CHAN 40
20 struct cmd_ds_command
;
22 /** Data structure for Country IE*/
23 struct ieee_subbandset
{
27 } __attribute__ ((packed
));
29 struct ieee_ie_country_info_set
{
30 struct ieee_ie_header header
;
32 u8 countrycode
[COUNTRY_CODE_LEN
];
33 struct ieee_subbandset subband
[1];
36 struct ieee_ie_country_info_full_set
{
37 struct ieee_ie_header header
;
39 u8 countrycode
[COUNTRY_CODE_LEN
];
40 struct ieee_subbandset subband
[MRVDRV_MAX_SUBBAND_802_11D
];
41 } __attribute__ ((packed
));
43 struct mrvl_ie_domain_param_set
{
44 struct mrvl_ie_header header
;
46 u8 countrycode
[COUNTRY_CODE_LEN
];
47 struct ieee_subbandset subband
[1];
48 } __attribute__ ((packed
));
50 struct cmd_ds_802_11d_domain_info
{
52 struct mrvl_ie_domain_param_set domain
;
53 } __attribute__ ((packed
));
55 /** domain regulatory information */
56 struct lbs_802_11d_domain_reg
{
58 u8 countrycode
[COUNTRY_CODE_LEN
];
61 struct ieee_subbandset subband
[MRVDRV_MAX_SUBBAND_802_11D
];
64 struct chan_power_11d
{
67 } __attribute__ ((packed
));
69 struct parsed_region_chan_11d
{
72 s8 countrycode
[COUNTRY_CODE_LEN
];
73 struct chan_power_11d chanpwr
[MAX_NO_OF_CHAN
];
75 } __attribute__ ((packed
));
77 struct region_code_mapping
{
78 u8 region
[COUNTRY_CODE_LEN
];
84 u8
lbs_get_scan_type_11d(u8 chan
,
85 struct parsed_region_chan_11d
*parsed_region_chan
);
87 u32
lbs_chan_2_freq(u8 chan
);
89 void lbs_init_11d(struct lbs_private
*priv
);
91 int lbs_set_universaltable(struct lbs_private
*priv
, u8 band
);
93 int lbs_cmd_802_11d_domain_info(struct lbs_private
*priv
,
94 struct cmd_ds_command
*cmd
, u16 cmdno
,
97 int lbs_ret_802_11d_domain_info(struct cmd_ds_command
*resp
);
99 struct bss_descriptor
;
100 int lbs_parse_dnld_countryinfo_11d(struct lbs_private
*priv
,
101 struct bss_descriptor
* bss
);
103 int lbs_create_dnld_countryinfo_11d(struct lbs_private
*priv
);