• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/net/wireless/libertas/
1/**
2  * This header file contains data structures and
3  * function declarations of 802.11d
4  */
5#ifndef _WLAN_11D_
6#define _WLAN_11D_
7
8#include "types.h"
9#include "defs.h"
10
11#define UNIVERSAL_REGION_CODE			0xff
12
13/** (Beaconsize(256)-5(IEId,len,contrystr(3))/3(FirstChan,NoOfChan,MaxPwr)
14 */
15#define MRVDRV_MAX_SUBBAND_802_11D		83
16
17#define COUNTRY_CODE_LEN			3
18#define MAX_NO_OF_CHAN 				40
19
20struct cmd_ds_command;
21
22/** Data structure for Country IE*/
23struct ieeetypes_subbandset {
24	u8 firstchan;
25	u8 nrchan;
26	u8 maxtxpwr;
27} __attribute__ ((packed));
28
29struct ieeetypes_countryinfoset {
30	u8 element_id;
31	u8 len;
32	u8 countrycode[COUNTRY_CODE_LEN];
33	struct ieeetypes_subbandset subband[1];
34};
35
36struct ieeetypes_countryinfofullset {
37	u8 element_id;
38	u8 len;
39	u8 countrycode[COUNTRY_CODE_LEN];
40	struct ieeetypes_subbandset subband[MRVDRV_MAX_SUBBAND_802_11D];
41} __attribute__ ((packed));
42
43struct mrvlietypes_domainparamset {
44	struct mrvlietypesheader header;
45	u8 countrycode[COUNTRY_CODE_LEN];
46	struct ieeetypes_subbandset subband[1];
47} __attribute__ ((packed));
48
49struct cmd_ds_802_11d_domain_info {
50	__le16 action;
51	struct mrvlietypes_domainparamset domain;
52} __attribute__ ((packed));
53
54/** domain regulatory information */
55struct wlan_802_11d_domain_reg {
56	/** country Code*/
57	u8 countrycode[COUNTRY_CODE_LEN];
58	/** No. of subband*/
59	u8 nr_subband;
60	struct ieeetypes_subbandset subband[MRVDRV_MAX_SUBBAND_802_11D];
61};
62
63struct chan_power_11d {
64	u8 chan;
65	u8 pwr;
66} __attribute__ ((packed));
67
68struct parsed_region_chan_11d {
69	u8 band;
70	u8 region;
71	s8 countrycode[COUNTRY_CODE_LEN];
72	struct chan_power_11d chanpwr[MAX_NO_OF_CHAN];
73	u8 nr_chan;
74} __attribute__ ((packed));
75
76struct region_code_mapping {
77	u8 region[COUNTRY_CODE_LEN];
78	u8 code;
79};
80
81u8 libertas_get_scan_type_11d(u8 chan,
82			  struct parsed_region_chan_11d *parsed_region_chan);
83
84u32 libertas_chan_2_freq(u8 chan, u8 band);
85
86enum state_11d libertas_get_state_11d(wlan_private * priv);
87
88void libertas_init_11d(wlan_private * priv);
89
90int libertas_set_universaltable(wlan_private * priv, u8 band);
91
92int libertas_cmd_802_11d_domain_info(wlan_private * priv,
93				 struct cmd_ds_command *cmd, u16 cmdno,
94				 u16 cmdOption);
95
96int libertas_cmd_enable_11d(wlan_private * priv, struct iwreq *wrq);
97
98int libertas_ret_802_11d_domain_info(wlan_private * priv,
99				 struct cmd_ds_command *resp);
100
101struct bss_descriptor;
102int libertas_parse_dnld_countryinfo_11d(wlan_private * priv,
103                                        struct bss_descriptor * bss);
104
105int libertas_create_dnld_countryinfo_11d(wlan_private * priv);
106
107#endif				/* _WLAN_11D_ */
108