• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/drivers/staging/otus/
1/*
2 * Copyright (c) 2007-2008 Atheros Communications Inc.
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16/*  Module Name : athr_common.h                                         */
17/*                                                                      */
18/*  Abstract                                                            */
19/*      WPA related function and data structure definitions.            */
20/*                                                                      */
21/*  NOTES                                                               */
22/*      Platform dependent.                                             */
23/*                                                                      */
24/************************************************************************/
25
26#ifndef _ATHR_COMMON_H
27#define _ATHR_COMMON_H
28
29#define ZD_IOCTL_WPA			(SIOCDEVPRIVATE + 1)
30#define ZD_IOCTL_PARAM			(SIOCDEVPRIVATE + 2)
31#define ZD_IOCTL_GETWPAIE		(SIOCDEVPRIVATE + 3)
32#define ZD_PARAM_ROAMING		0x0001
33#define ZD_PARAM_PRIVACY		0x0002
34#define ZD_PARAM_WPA			0x0003
35#define ZD_PARAM_COUNTERMEASURES	0x0004
36#define ZD_PARAM_DROPUNENCRYPTED	0x0005
37#define ZD_PARAM_AUTH_ALGS		0x0006
38
39#define ZD_CMD_SET_ENCRYPT_KEY		0x0001
40#define ZD_CMD_SET_MLME			0x0002
41#define ZD_CMD_SCAN_REQ			0x0003
42#define ZD_CMD_SET_GENERIC_ELEMENT	0x0004
43#define ZD_CMD_GET_TSC			0x0005
44
45#define ZD_FLAG_SET_TX_KEY              0x0001
46
47#define ZD_GENERIC_ELEMENT_HDR_LEN \
48((int) (&((struct athr_wlan_param *) 0)->u.generic_elem.data))
49
50#define ZD_CRYPT_ALG_NAME_LEN		16
51#define ZD_MAX_KEY_SIZE			32
52#define ZD_MAX_GENERIC_SIZE		64
53
54#define IEEE80211_ADDR_LEN		6
55#define IEEE80211_MAX_IE_SIZE		256
56
57#ifdef ZM_ENALBE_WAPI
58#define ZM_CMD_WAPI_SETWAPI             0x0001
59#define ZM_CMD_WAPI_GETWAPI             0x0002
60#define ZM_CMD_WAPI_SETKEY              0x0003
61#define ZM_CMD_WAPI_GETKEY              0x0004
62#define ZM_CMD_WAPI_REKEY               0x0005
63
64#define ZM_WAPI_WAI_REQUEST             0x00f1
65#define ZM_WAPI_UNICAST_REKEY           0x00f2
66#define ZM_WAPI_STA_AGING               0x00f3
67#define ZM_WAPI_MULTI_REKEY             0x00f4
68
69#define ZM_WAPI_KEY_SIZE                32
70#define ZM_WAPI_IV_LEN                  16
71#endif /* ZM_ENALBE_WAPI */
72/* structure definition */
73
74struct athr_wlan_param {
75	u32 cmd;
76	u8 sta_addr[ETH_ALEN];
77	union {
78		struct {
79			u8 alg[ZD_CRYPT_ALG_NAME_LEN];
80			u32 flags;
81			u32 err;
82			u8 idx;
83			u8 seq[8]; /* sequence counter (set: RX, get: TX) */
84			u16 key_len;
85			u8 key[ZD_MAX_KEY_SIZE];
86		} crypt;
87		struct {
88			u32 flags_and;
89			u32 flags_or;
90		} set_flags_sta;
91		struct {
92			u8 len;
93			u8 data[ZD_MAX_GENERIC_SIZE];
94		} generic_elem;
95		struct {
96#define MLME_STA_DEAUTH 0
97#define MLME_STA_DISASSOC 1
98			u16 cmd;
99			u16 reason_code;
100		} mlme;
101		struct {
102			u8 ssid_len;
103			u8 ssid[32];
104		} scan_req;
105	} u;
106};
107
108struct ieee80211req_wpaie {
109	u8 wpa_macaddr[IEEE80211_ADDR_LEN];
110	u8 wpa_ie[IEEE80211_MAX_IE_SIZE];
111};
112
113#ifdef ZM_ENALBE_WAPI
114struct athr_wapi_param {
115	u16 cmd;
116	u16 len;
117
118	union {
119		struct {
120			u8 sta_addr[ETH_ALEN];
121			u8 reserved;
122			u8 keyid;
123			u8 key[ZM_WAPI_KEY_SIZE];
124		} crypt;
125		struct {
126			u8 wapi_policy;
127		} info;
128	} u;
129};
130
131struct athr_wapi_sta_info
132{
133	u16	msg_type;
134	u16	datalen;
135	u8	sta_mac[ETH_ALEN];
136	u8	reserve_data[2];
137	u8	gsn[ZM_WAPI_IV_LEN];
138	u8	wie[256];
139};
140#endif /* ZM_ENALBE_WAPI */
141#endif
142