summaryrefslogtreecommitdiff
path: root/network/wlan/WDI/HEADER/BssCoexistence.h
blob: 9ebc017d1f33dbb33adacc772ec9480cb36dbb29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#ifndef __INC_BSSCOEXISTENCE_H
#define __INC_BSSCOEXISTENCE_H

// Normally, the OS (windows but not including win7 or later) scans per 60 seconds,
// and we don't want the period smaller than the windows period to affect the throughput.
// In WiFi 11n 5.2.48 BSS coexistence test, the scan interval is 180 seconds.
#define	RT_OBSS_MIN_TRIGGER_SCAN_INTERVAL		70		// 70 Seconds

#define SET_BSS_COEXISTENCE_ELE_INFO_REQUEST(_pEleStart, _val)			SET_BITS_TO_LE_1BYTE((_pEleStart), 0, 1, _val)
#define SET_BSS_COEXISTENCE_ELE_FORTY_INTOLERANT(_pEleStart, _val)	SET_BITS_TO_LE_1BYTE((_pEleStart), 1, 1, _val)
#define SET_BSS_COEXISTENCE_ELE_20_WIDTH_REQ(_pEleStart, _val)		SET_BITS_TO_LE_1BYTE((_pEleStart), 2, 1, _val)
#define SET_BSS_COEXISTENCE_ELE_OBSS_EXEMPTION_GRT(_pEleStart, _val)	SET_BITS_TO_LE_1BYTE((_pEleStart), 4, 1, _val)
#define GET_BSS_COEXISTENCE_ELE_FORTY_INTOLERANT(_pEleStart)			LE_BITS_TO_1BYTE((_pEleStart), 1, 1)	
#define GET_BSS_COEXISTENCE_ELE_20_WIDTH_REQ(_pEleStart)				LE_BITS_TO_1BYTE((_pEleStart), 2, 1)
#define GET_BSS_COEXISTENCE_ELE_OBSS_EXEMPTION_GRT(_pEleStart)		LE_BITS_TO_1BYTE((_pEleStart), 4, 1)

#define SET_BSS_INTOLERANT_ELE_REG_CLASS(_pEleStart, _val)				SET_BITS_TO_LE_1BYTE((_pEleStart), 0, 8, _val)
#define SET_BSS_INTOLERANT_ELE_CHANNEL(_pEleStart, _val)				SET_BITS_TO_LE_1BYTE((_pEleStart)+1, 0, 8, _val)

#define SET_EXT_CAPABILITY_ELE_BSS_COEXIST(_pEleStart, _val)			SET_BITS_TO_LE_1BYTE((_pEleStart), 0, 1, _val)
#define GET_EXT_CAPABILITY_ELE_BSS_COEXIST(_pEleStart)					LE_BITS_TO_1BYTE((_pEleStart), 0, 1)

#define GET_OBSS_PARAM_ELE_SCAN_INTERVAL(_pEleStart)					ReadEF2Byte(((_pEleStart)+4))
VOID
BSS_ParsingOBSSInfoElement(
	PADAPTER		Adapter,
	OCTET_STRING	osFrame,
	PRT_WLAN_BSS	pBssDesc
	);

VOID
BSS_ParsingBSSCoexistElement(
	PADAPTER		Adapter,
	OCTET_STRING	osFrame,
	PRT_WLAN_BSS	pBssDesc
	);

VOID
BSS_AppendExentedCapElement(
	PADAPTER		pAdapter,
	POCTET_STRING	posFrame
	);

RT_STATUS
OnBssCoexistence(
	IN	PADAPTER		Adapter,
	IN	PRT_RFD			pRfd,
	IN	POCTET_STRING	posMpdu
	);

VOID
BSS_OnScanComplete(
	IN	PADAPTER		Adapter
	);

VOID
BSS_IdleScanWatchDog(
	IN	PADAPTER		pAdapter
	);
#endif