⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mlme.h

📁 台湾RALink公司的 rt2570无线 802.11g 网卡的 驱动的源代码 ,支持linux2.4以上的 内河
💻 H
📖 第 1 页 / 共 2 页
字号:
    MACADDR   Addr2;
    MACADDR   Addr3;
    
    USHORT    Frag:4;
    USHORT    Seq:12;
} MACHDR, *PMACHDR;

typedef struct _MACFRAME {
    MACHDR    Hdr;
    CHAR      Octet[1];
} MACFRAME, *PMACFRAME;

typedef struct _PSPOLL_FRAME {
    USHORT    Ver:2;
    USHORT    Type:2;
    USHORT    SubType:4;
    USHORT    Tods:1;
    USHORT    Frds:1;
    USHORT    MoreFrag:1;
    USHORT    Retry:1;
    USHORT    PwrMgmt:1;
    USHORT    MoreData:1;
    USHORT    Wep:1;
    USHORT    Order:1;
    
    USHORT    Aid;
    MACADDR   Bssid;
    MACADDR   Ta;
} PSPOLL_FRAME;

//
// Contention-free parameter (without ID and Length)
//
typedef struct _CF_PARM {
    UCHAR        CfpCount;
    UCHAR        CfpPeriod;
    USHORT       CfpMaxDuration;
    USHORT       CfpDurRemaining;
} CF_PARM, *PCF_PARM;


typedef	struct	_CIPHER_SUITE	{
	NDIS_802_11_ENCRYPTION_STATUS	PairCipher;		// Unicast cipher 1, this one has more secured cipher suite
	NDIS_802_11_ENCRYPTION_STATUS	PairCipherAux;	// Unicast cipher 2 if AP announce two unicast cipher suite
	NDIS_802_11_ENCRYPTION_STATUS	GroupCipher;	// Group cipher
	USHORT							RsnCapability;	// RSN capability from beacon
	BOOLEAN							bMixMode;		// Indicate Pair & Group cipher might be different
}	CIPHER_SUITE, *PCIPHER_SUITE;	

typedef struct {
    MACADDR Bssid;
    UCHAR   Channel;
    UCHAR   BssType;
    USHORT  AtimWin;
    USHORT  BeaconPeriod;

    UCHAR   Rates[MAX_LEN_OF_SUPPORTED_RATES];
    UCHAR   RatesLen;
    BOOLEAN ExtendedRateIeExist; // records if this AP use EXTENDED_SUPPORTED_RATES IE
    UCHAR   Rssi;
    UCHAR   Privacy;			// Indicate security function ON/OFF. Don't mess up with auth mode.
	UCHAR	Hidden;

    USHORT  DtimPeriod;
    USHORT  CapabilityInfo;

    USHORT  CfpCount;
    USHORT  CfpPeriod;
    USHORT  CfpMaxDuration;
    USHORT  CfpDurRemaining;
    UCHAR   SsidLen;
    CHAR    Ssid[MAX_LEN_OF_SSID];
    
    ULONG   LastBeaconRxTime; // OS's timestamp

	// New for WPA2
	CIPHER_SUITE					WPA;			// AP announced WPA cipher suite
	CIPHER_SUITE					WPA2;			// AP announced WPA2 cipher suite

	// New for microsoft WPA support
	NDIS_802_11_FIXED_IEs	FixIEs;
	NDIS_802_11_AUTHENTICATION_MODE	AuthModeAux;	// Addition mode for WPA2 / WPA capable AP
	NDIS_802_11_AUTHENTICATION_MODE	AuthMode;
	NDIS_802_11_WEP_STATUS	WepStatus;				// Unicast Encryption Algorithm extract from VAR_IE
	UCHAR					VarIELen;				// Length of next VIE include EID & Length
	UCHAR					VarIEs[MAX_VIE_LEN];
} BSS_ENTRY, *PBSS_ENTRY;

typedef struct {
    UCHAR           BssNr;
    BSS_ENTRY       BssEntry[MAX_LEN_OF_BSS_TABLE];
} BSS_TABLE, *PBSS_TABLE;


typedef struct _MLME_QUEUE_ELEM {
    ULONG             Machine;
    ULONG             MsgType;
    ULONG             MsgLen;
    UCHAR             Rssi;
    BOOLEAN           Occupied;
    UCHAR             Msg[MAX_LEN_OF_MLME_BUFFER];
} MLME_QUEUE_ELEM, *PMLME_QUEUE_ELEM;

typedef struct _MLME_QUEUE {
    ULONG             Num;
    ULONG             Head;
    ULONG             Tail;
    spinlock_t   Lock;
    MLME_QUEUE_ELEM  Entry[MAX_LEN_OF_MLME_QUEUE];
} MLME_QUEUE, *PMLME_QUEUE;

typedef VOID (*STATE_MACHINE_FUNC)(VOID *Adaptor, MLME_QUEUE_ELEM *Elem);

typedef struct _STATE_MACHINE {
    ULONG                           Base;
    ULONG                           NrState;
    ULONG                           NrMsg;
    ULONG                           CurrState;
    STATE_MACHINE_FUNC             *TransFunc;
} STATE_MACHINE, *PSTATE_MACHINE;

// CNTL State Machine Aux data structure
typedef struct _CNTL_AUX {
    UCHAR               Ssid[MAX_LEN_OF_SSID];
    UCHAR               SsidLen;
    MACADDR             Bssid;
    BSS_TABLE           SsidBssTab;     // AP list for the same SSID
    BSS_TABLE           RoamTab;        // AP list eligible for roaming
    ULONG               BssIdx;
    ULONG               RoamIdx;
    BOOLEAN             CurrReqIsFromNdis; // TRUE - then we should call NdisMSetInformationComplete()
                                           // FALSE - req is from driver itself. 
                                           // no NdisMSetInformationComplete() is required
} CNTL_AUX, *PCNTL_AUX;

// ASSOC State Machine Aux data structure
typedef struct _ASSOC_AUX {
    MACADDR             Addr;
    USHORT              CapabilityInfo;
    USHORT              ListenIntv;
    CHAR                Ssid[MAX_LEN_OF_SSID];
    UCHAR               SsidLen;    
    RALINK_TIMER_STRUCT	 AssocTimer, ReassocTimer, DisassocTimer;
} ASSOC_AUX, *PASSOC_AUX;

// AUTH State Machine Aux data structure
typedef struct _AUTH_AUX {
    MACADDR             Addr;
    USHORT              Alg;
     RALINK_TIMER_STRUCT	AuthTimer;
} AUTH_AUX, *PAUTH_AUX;

// AUTH-RSP State Machine Aux data structure
typedef struct _AUTH_RSP_AUX {
    MACADDR             Addr;
    USHORT              Alg;
    CHAR                Challenge[CIPHER_TEXT_LEN];
     RALINK_TIMER_STRUCT	AuthRspTimer;
} AUTH_RSP_AUX, *PAUTH_RSP_AUX;

// SYNC State Machine Aux data structure
typedef struct _SYNC_AUX {
    MACADDR             Addr;
    MACADDR             Bssid;
    UCHAR               BssType;
    UCHAR               SsidLen;
    CHAR                Ssid[MAX_LEN_OF_SSID];
    UCHAR               ScanType;
    UCHAR               Channel;
     RALINK_TIMER_STRUCT	BeaconTimer, ScanTimer;
} SYNC_AUX;

 // assoc struct is equal to reassoc
typedef struct _MLME_ASSOC_REQ_STRUCT{
    MACADDR   Addr;
    USHORT    CapabilityInfo;
    USHORT    ListenIntv;
    ULONG     Timeout;
} MLME_ASSOC_REQ_STRUCT, *PMLME_ASSOC_REQ_STRUCT, MLME_REASSOC_REQ_STRUCT, *PMLME_REASSOC_REQ_STRUCT;

typedef struct _MLME_DISASSOC_REQ_STRUCT{
    MACADDR   Addr;
    USHORT    Reason;
} MLME_DISASSOC_REQ_STRUCT, *PMLME_DISASSOC_REQ_STRUCT;

typedef struct _MLME_AUTH_REQ_STRUCT {
    MACADDR      Addr;
    USHORT       Alg;
    ULONG        Timeout;
} MLME_AUTH_REQ_STRUCT, *PMLME_AUTH_REQ_STRUCT;

typedef struct _MLME_DEAUTH_REQ_STRUCT {
    MACADDR      Addr;
    USHORT       Reason;
} MLME_DEAUTH_REQ_STRUCT, *PMLME_DEAUTH_REQ_STRUCT;

//typedef struct _MLME_AUTH_IND_STRUCT {
//    MACADDR      Addr;
//    USHORT       Alg;
//} MLME_AUTH_IND_STRUCT, *PMLME_AUTH_IND_STRUCT;

//typedef struct _CLS2ERR_STRUCT {
//    MACADDR      Addr;
//} CLS2ERR_STRUCT, *PCLS2ERR_STRUCT;

typedef struct {
    ULONG      BssIdx;
} MLME_JOIN_REQ_STRUCT;

typedef struct _MLME_SCAN_REQ_STRUCT {
    MACADDR    Bssid;
    UCHAR      BssType;
    UCHAR      ScanType;
    UCHAR      SsidLen;
    CHAR       Ssid[MAX_LEN_OF_SSID];
} MLME_SCAN_REQ_STRUCT, *PMLME_SCAN_REQ_STRUCT;

typedef struct _MLME_START_REQ_STRUCT {
    CHAR        Ssid[MAX_LEN_OF_SSID];
    UCHAR       SsidLen;
} MLME_START_REQ_STRUCT, *PMLME_START_REQ_STRUCT;

typedef struct _ARC4_CONTEXT {
    UCHAR x, y, State[256], Key[16];     // 128 bits key
} ARC4_CONTEXT, *PARC4_CONTEXT;

typedef struct _BEACON_EID_STRUCT {
    UCHAR   Eid;
    UCHAR   Len;
    CHAR   Octet[1];
} BEACON_EID_STRUCT,*PBEACON_EID_STRUCT;

// New for WPA cipher suite 
typedef	struct	_RSN_EID_STRUCT	{
	UCHAR	Eid;
	UCHAR	Length;
	UCHAR	Oui[4];
	USHORT	Version;
	UCHAR	Multicast[4];
	USHORT	Count;
	struct	{
		UCHAR	Oui[4];
	}	Unicast[1];
}	RSN_EID_STRUCT, *PRSN_EID_STRUCT;

extern UCHAR  RateIdToMbps[];
extern USHORT RateIdTo500Kbps[];

#endif	// MLME_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -