60 (priv->
rtllib->auth_mode != 2)) {
84 u8 *MacAddr,
u8 DefaultKey,
u32 *KeyContent,
u8 is_mesh)
89 "%d,KeyType is %d,is_mesh is %d\n", __func__, EntryNo,
90 KeyIndex, KeyType, is_mesh);
93 ieee->
swcamtable[EntryNo].key_index = KeyIndex;
102 u8 *MacAddr,
u8 DefaultKey,
u32 *KeyContent)
104 u32 TargetCommand = 0;
105 u32 TargetContent = 0;
110 rtState = priv->
rtllib->eRFPowerState;
111 if (priv->
rtllib->PowerSaveControl.bInactivePs) {
124 priv->
rtllib->is_set_key =
true;
129 "KeyType:%d, MacAddr %pM\n", dev, EntryNo, KeyIndex,
133 usConfig |=
BIT15 | (KeyType<<2);
135 usConfig |=
BIT15 | (KeyType<<2) | KeyIndex;
139 TargetCommand = i + CAM_CONTENT_COUNT * EntryNo;
143 TargetContent = (
u32)(*(MacAddr+0)) << 16 |
144 (
u32)(*(MacAddr+1)) << 24 |
150 TargetContent = (
u32)(*(MacAddr+2)) |
151 (
u32)(*(MacAddr+3)) << 8 |
152 (
u32)(*(MacAddr+4)) << 16 |
153 (
u32)(*(MacAddr+5)) << 24;
157 if (KeyContent !=
NULL) {
159 (
u32)(*(KeyContent+i-2)));
170 u32 target_command = 0;
171 u32 target_content = 0;
176 target_command = entry_i+CAM_CONTENT_COUNT*iIndex;
177 target_command = target_command |
BIT31;
181 if (ulStatus &
BIT31)
200 u8 *MacAddr = priv->
rtllib->current_network.bssid;
202 static u8 CAM_CONST_ADDR[4][6] = {
203 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
204 {0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
205 {0x00, 0x00, 0x00, 0x00, 0x00, 0x02},
206 {0x00, 0x00, 0x00, 0x00, 0x00, 0x03}
208 static u8 CAM_CONST_BROAD[] = {
209 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
218 for (EntryId = 0; EntryId < 4; EntryId++) {
219 MacAddr = CAM_CONST_ADDR[EntryId];
220 if (priv->
rtllib->swcamtable[EntryId].bused) {
221 setKey(dev, EntryId , EntryId,
222 priv->
rtllib->pairwise_key_type, MacAddr,
224 [EntryId].key_buf[0]));
232 (
u32 *)(&priv->
rtllib->swcamtable[4].key_buf[0]));
236 (
u32 *)(&priv->
rtllib->swcamtable[4].key_buf[0]));
242 priv->
rtllib->pairwise_key_type,
248 priv->
rtllib->pairwise_key_type, MacAddr,
255 MacAddr = CAM_CONST_BROAD;
256 for (EntryId = 1; EntryId < 4; EntryId++) {
257 if (priv->
rtllib->swcamtable[EntryId].bused) {
258 setKey(dev, EntryId, EntryId,
259 priv->
rtllib->group_key_type,
261 (
u32 *)(&priv->
rtllib->swcamtable[EntryId].key_buf[0])
266 if (priv->
rtllib->swcamtable[0].bused) {
268 priv->
rtllib->group_key_type,
269 CAM_CONST_ADDR[0], 0,
270 (
u32 *)(&priv->
rtllib->swcamtable[0].key_buf[0])
274 ",but 0 entry is have no data\n",
280 MacAddr = CAM_CONST_BROAD;
281 for (EntryId = 1; EntryId < 4; EntryId++) {
282 if (priv->
rtllib->swcamtable[EntryId].bused) {
283 setKey(dev, EntryId , EntryId,
284 priv->
rtllib->group_key_type,
286 (
u32 *)(&priv->
rtllib->swcamtable[EntryId].key_buf[0]));
291 if (priv->
rtllib->swcamtable[0].bused) {
293 priv->
rtllib->group_key_type,
294 CAM_CONST_ADDR[0], 0,
295 (
u32 *)(&priv->
rtllib->swcamtable[0].key_buf[0]));
298 "but 0 entry is have no data\n",