linux/drivers/staging/rt3090/ap_apcli.h
<<
>>
Prefs
   1/*
   2 *************************************************************************
   3 * Ralink Tech Inc.
   4 * 5F., No.36, Taiyuan St., Jhubei City,
   5 * Hsinchu County 302,
   6 * Taiwan, R.O.C.
   7 *
   8 * (c) Copyright 2002-2007, Ralink Technology, Inc.
   9 *
  10 * This program is free software; you can redistribute it and/or modify  *
  11 * it under the terms of the GNU General Public License as published by  *
  12 * the Free Software Foundation; either version 2 of the License, or     *
  13 * (at your option) any later version.                                   *
  14 *                                                                       *
  15 * This program is distributed in the hope that it will be useful,       *
  16 * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
  17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
  18 * GNU General Public License for more details.                          *
  19 *                                                                       *
  20 * You should have received a copy of the GNU General Public License     *
  21 * along with this program; if not, write to the                         *
  22 * Free Software Foundation, Inc.,                                       *
  23 * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  24 *                                                                       *
  25 *************************************************************************
  26
  27    Module Name:
  28    ap_apcli.h
  29
  30    Abstract:
  31    Miniport generic portion header file
  32
  33    Revision History:
  34    Who         When          What
  35    --------    ----------    ----------------------------------------------
  36    Shiang, Fonchi    02-13-2007      created
  37*/
  38
  39#ifndef _AP_APCLI_H_
  40#define _AP_APCLI_H_
  41
  42#ifdef APCLI_SUPPORT
  43
  44#include "rtmp.h"
  45
  46#define AUTH_TIMEOUT    300         // unit: msec
  47#define ASSOC_TIMEOUT   300         // unit: msec
  48//#define JOIN_TIMEOUT  2000        // unit: msec // not used in Ap-client mode, remove it
  49#define PROBE_TIMEOUT   1000        // unit: msec
  50
  51#define APCLI_ROOT_BSSID_GET(pAd, wcid) ((pAd)->MacTab.Content[(wcid)].Addr)
  52#define APCLI_IF_UP_CHECK(pAd, ifidx) ((pAd)->ApCfg.ApCliTab[(ifidx)].dev->flags & IFF_UP)
  53
  54/* sanity check for apidx */
  55#define APCLI_MR_APIDX_SANITY_CHECK(idx) \
  56{ \
  57        if ((idx) >= MAX_APCLI_NUM) \
  58        { \
  59                (idx) = 0; \
  60                DBGPRINT(RT_DEBUG_ERROR, ("%s> Error! apcli-idx > MAX_APCLI_NUM!\n", __FUNCTION__)); \
  61        } \
  62}
  63
  64typedef struct _APCLI_MLME_JOIN_REQ_STRUCT {
  65        UCHAR   Bssid[MAC_ADDR_LEN];
  66        UCHAR   SsidLen;
  67        UCHAR   Ssid[MAX_LEN_OF_SSID];
  68} APCLI_MLME_JOIN_REQ_STRUCT;
  69
  70typedef struct _STA_CTRL_JOIN_REQ_STRUCT {
  71        USHORT  Status;
  72} APCLI_CTRL_MSG_STRUCT, *PSTA_CTRL_MSG_STRUCT;
  73
  74BOOLEAN isValidApCliIf(
  75        SHORT ifIndex);
  76
  77//
  78// Private routines in apcli_ctrl.c
  79//
  80VOID ApCliCtrlStateMachineInit(
  81        IN PRTMP_ADAPTER pAd,
  82        IN STATE_MACHINE_EX *Sm,
  83        OUT STATE_MACHINE_FUNC_EX Trans[]);
  84
  85//
  86// Private routines in apcli_sync.c
  87//
  88VOID ApCliSyncStateMachineInit(
  89    IN PRTMP_ADAPTER pAd,
  90    IN STATE_MACHINE_EX *Sm,
  91    OUT STATE_MACHINE_FUNC_EX Trans[]);
  92
  93//
  94// Private routines in apcli_auth.c
  95//
  96VOID ApCliAuthStateMachineInit(
  97    IN PRTMP_ADAPTER pAd,
  98    IN STATE_MACHINE_EX *Sm,
  99    OUT STATE_MACHINE_FUNC_EX Trans[]);
 100
 101//
 102// Private routines in apcli_assoc.c
 103//
 104VOID ApCliAssocStateMachineInit(
 105    IN PRTMP_ADAPTER pAd,
 106    IN STATE_MACHINE_EX *Sm,
 107    OUT STATE_MACHINE_FUNC_EX Trans[]);
 108
 109MAC_TABLE_ENTRY *ApCliTableLookUpByWcid(
 110        IN PRTMP_ADAPTER pAd,
 111        IN UCHAR wcid,
 112        IN PUCHAR pAddrs);
 113
 114
 115BOOLEAN ApCliAllowToSendPacket(
 116        IN RTMP_ADAPTER *pAd,
 117        IN PNDIS_PACKET pPacket,
 118        OUT UCHAR               *pWcid);
 119
 120BOOLEAN         ApCliValidateRSNIE(
 121        IN              PRTMP_ADAPTER   pAd,
 122        IN              PEID_STRUCT     pEid_ptr,
 123        IN              USHORT                  eid_len,
 124        IN              USHORT                  idx);
 125
 126VOID RT28xx_ApCli_Init(
 127        IN PRTMP_ADAPTER        pAd,
 128        IN PNET_DEV                     pPhyNetDev);
 129
 130VOID RT28xx_ApCli_Close(
 131        IN PRTMP_ADAPTER        pAd);
 132
 133VOID RT28xx_ApCli_Remove(
 134        IN PRTMP_ADAPTER        pAd);
 135
 136
 137VOID RT28xx_ApCli_Remove(
 138        IN PRTMP_ADAPTER ad_p);
 139
 140INT ApCliIfLookUp(
 141        IN PRTMP_ADAPTER pAd,
 142        IN PUCHAR pAddr);
 143
 144INT ApCli_VirtualIF_Open(
 145        IN      PNET_DEV        dev_p);
 146
 147INT ApCli_VirtualIF_Close(
 148        IN      PNET_DEV        dev_p);
 149
 150INT ApCli_VirtualIF_PacketSend(
 151        IN PNDIS_PACKET         skb_p,
 152        IN PNET_DEV                     dev_p);
 153
 154INT ApCli_VirtualIF_Ioctl(
 155        IN PNET_DEV                             dev_p,
 156        IN OUT struct ifreq     *rq_p,
 157        IN INT cmd);
 158
 159
 160VOID ApCliMgtMacHeaderInit(
 161    IN  PRTMP_ADAPTER   pAd,
 162    IN OUT PHEADER_802_11 pHdr80211,
 163    IN UCHAR SubType,
 164    IN UCHAR ToDs,
 165    IN PUCHAR pDA,
 166    IN PUCHAR pBssid,
 167    IN USHORT ifIndex);
 168
 169#ifdef DOT11_N_SUPPORT
 170BOOLEAN ApCliCheckHt(
 171        IN              PRTMP_ADAPTER           pAd,
 172        IN              USHORT                          IfIndex,
 173        IN OUT  HT_CAPABILITY_IE        *pHtCapability,
 174        IN OUT  ADD_HT_INFO_IE          *pAddHtInfo);
 175#endif // DOT11_N_SUPPORT //
 176
 177BOOLEAN ApCliLinkUp(
 178        IN PRTMP_ADAPTER pAd,
 179        IN UCHAR ifIndex);
 180
 181VOID ApCliLinkDown(
 182        IN PRTMP_ADAPTER pAd,
 183        IN UCHAR ifIndex);
 184
 185VOID ApCliIfUp(
 186        IN PRTMP_ADAPTER pAd);
 187
 188VOID ApCliIfDown(
 189        IN PRTMP_ADAPTER pAd);
 190
 191VOID ApCliIfMonitor(
 192        IN PRTMP_ADAPTER pAd);
 193
 194BOOLEAN ApCliMsgTypeSubst(
 195        IN PRTMP_ADAPTER  pAd,
 196        IN PFRAME_802_11 pFrame,
 197        OUT INT *Machine,
 198        OUT INT *MsgType);
 199
 200BOOLEAN preCheckMsgTypeSubset(
 201        IN PRTMP_ADAPTER  pAd,
 202        IN PFRAME_802_11 pFrame,
 203        OUT INT *Machine,
 204        OUT INT *MsgType);
 205
 206BOOLEAN ApCliPeerAssocRspSanity(
 207    IN PRTMP_ADAPTER pAd,
 208    IN VOID *pMsg,
 209    IN ULONG MsgLen,
 210    OUT PUCHAR pAddr2,
 211    OUT USHORT *pCapabilityInfo,
 212    OUT USHORT *pStatus,
 213    OUT USHORT *pAid,
 214    OUT UCHAR SupRate[],
 215    OUT UCHAR *pSupRateLen,
 216    OUT UCHAR ExtRate[],
 217    OUT UCHAR *pExtRateLen,
 218    OUT HT_CAPABILITY_IE *pHtCapability,
 219    OUT ADD_HT_INFO_IE *pAddHtInfo,     // AP might use this additional ht info IE
 220    OUT UCHAR *pHtCapabilityLen,
 221    OUT UCHAR *pAddHtInfoLen,
 222    OUT UCHAR *pNewExtChannelOffset,
 223    OUT PEDCA_PARM pEdcaParm,
 224    OUT UCHAR *pCkipFlag);
 225
 226VOID    ApCliPeerPairMsg1Action(
 227        IN PRTMP_ADAPTER    pAd,
 228    IN MAC_TABLE_ENTRY  *pEntry,
 229    IN MLME_QUEUE_ELEM  *Elem);
 230
 231VOID    ApCliPeerPairMsg3Action(
 232        IN PRTMP_ADAPTER    pAd,
 233    IN MAC_TABLE_ENTRY  *pEntry,
 234    IN MLME_QUEUE_ELEM  *Elem);
 235
 236VOID    ApCliPeerGroupMsg1Action(
 237        IN PRTMP_ADAPTER    pAd,
 238    IN MAC_TABLE_ENTRY  *pEntry,
 239    IN MLME_QUEUE_ELEM  *Elem);
 240
 241BOOLEAN ApCliCheckRSNIE(
 242        IN  PRTMP_ADAPTER   pAd,
 243        IN  PUCHAR          pData,
 244        IN  UCHAR           DataLen,
 245        IN  MAC_TABLE_ENTRY *pEntry,
 246        OUT     UCHAR                   *Offset);
 247
 248BOOLEAN ApCliParseKeyData(
 249        IN  PRTMP_ADAPTER   pAd,
 250        IN  PUCHAR          pKeyData,
 251        IN  UCHAR           KeyDataLen,
 252        IN  MAC_TABLE_ENTRY *pEntry,
 253        IN      UCHAR                   IfIdx,
 254        IN      UCHAR                   bPairewise);
 255
 256BOOLEAN  ApCliHandleRxBroadcastFrame(
 257        IN  PRTMP_ADAPTER   pAd,
 258        IN      RX_BLK                  *pRxBlk,
 259        IN  MAC_TABLE_ENTRY *pEntry,
 260        IN      UCHAR                   FromWhichBSSID);
 261
 262VOID APCliUpdatePairwiseKeyTable(
 263        IN  PRTMP_ADAPTER   pAd,
 264        IN      UCHAR                   *KeyRsc,
 265        IN  MAC_TABLE_ENTRY *pEntry);
 266
 267BOOLEAN APCliUpdateSharedKeyTable(
 268        IN  PRTMP_ADAPTER   pAd,
 269        IN  PUCHAR          pKey,
 270        IN  UCHAR           KeyLen,
 271        IN      UCHAR                   DefaultKeyIdx,
 272        IN  MAC_TABLE_ENTRY *pEntry);
 273
 274#endif // APCLI_SUPPORT //
 275
 276#endif /* _AP_APCLI_H_ */
 277