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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
#ifndef __INC_RADIOMEASUREMENT_H
#define __INC_RADIOMEASUREMENT_H
#define GET_RM_INFO(_pMgntInfo) ((PRT_RM_INFO)(_pMgntInfo->pRmInfo))
#define RT_LOCAL_RM_TOKEN 0xFE
// RM action status
typedef enum _RT_RM_ACTION_STATUS{
RT_RM_ACTION_STATUS_SUCCESS = 0, // The rm is performed successfully and the report is valid.
RT_RM_ACTION_STATUS_FAIL = 1, // The rm had been tried but it failed.
RT_RM_ACTION_STATUS_GOING = 2, // The rm is still going.
}RT_RM_ACTION_STATUS, *PRT_RM_ACTION_STATUS;
// RM action status
typedef enum _RT_RM_HASH_TABLE{
RT_RM_TABLE_FRAME_REPORT = 0, //
RT_RM_TABLE_NEIGHBOR = 1, //
RT_RM_TABLE_MAX, // The rm is still going.
}_RT_RM_HASH_TABLE, *P_RT_RM_HASH_TABLE;
VOID
HandleRmRequests(
IN PADAPTER Adapter
);
BOOLEAN
IsCcxRmRequestPacket(
IN PADAPTER Adapter,
IN POCTET_STRING posMPDU
);
u4Byte
OnCcxRmRequestPacket(
IN PADAPTER Adapter,
IN PRT_RFD pRfd
);
VOID
RmMonitorSignalStrength(
IN PADAPTER Adapter,
IN PRT_RFD pRfd
);
BOOLEAN
StopCcxTsm(
IN PADAPTER Adapter,
IN u1Byte TSID
);
BOOLEAN
StartCcxTsm(
IN PADAPTER Adapter,
IN u1Byte TSID,
IN u2Byte MeasurementInterval // in TU
);
VOID
ResetCcxTsmMechanism(
IN PADAPTER Adapter
);
VOID
TsmTimerCallback(
IN PRT_TIMER pTimer
);
VOID
OnCcxTsmIE(
IN PADAPTER Adapter,
IN POCTET_STRING posCcxTsmIE
);
VOID
HandleCCXRmRequests(
IN PADAPTER Adapter,
IN PRT_RM_REQUESTS pRmRequests,
OUT PRT_RM_REPORTS pRmReports
);
VOID
HandleDot11kRmRequests(
IN PADAPTER Adapter,
IN PRT_RM_REQUESTS pRmRequests,
OUT PRT_RM_REPORTS pRmReports
);
VOID
RmWorkitemCallback(
IN PVOID pContext
);
BOOLEAN
RmSetChannelLoad(
IN PADAPTER Adapter,
IN u1Byte Channel,
IN u2Byte Duration
);
RT_RM_ACTION_STATUS
RmQueryChannelLoad(
IN PADAPTER Adapter,
IN pu1Byte pChLoad
);
BOOLEAN
RmSetNoiseHistogram(
IN PADAPTER Adapter,
IN u1Byte Channel,
IN u2Byte Duration
);
RT_RM_ACTION_STATUS
RmQueryNoiseHistogram(
IN PADAPTER Adapter,
IN pu1Byte pIPI,
IN u1Byte IPILen,
IN pu1Byte pANPI
);
VOID
RM_SetHashTable(
IN PADAPTER Adapter,
IN u1Byte TableType,
IN RT_HASH_TABLE_HANDLE Table
);
#if (CCX_SUPPORT == 1)
RT_STATUS
OnDot11kRmRequest(
IN PADAPTER Adapter,
IN PRT_RFD pRfd,
IN POCTET_STRING posMpdu
);
#else // #if (CCX_SUPPORT != 1)
#define OnDot11kRmRequest NULL
#endif // #if (CCX_SUPPORT == 1)
#endif // #ifndef __INC_RADIOMEASUREMENT_H
|