Lines Matching refs:pmksa

27 	struct rsn_pmksa_cache_entry *pmksa;
35 static void pmksa_cache_set_expiration(struct rsn_pmksa_cache *pmksa);
49 void pmksa_cache_free_entry(struct rsn_pmksa_cache *pmksa,
55 pmksa->pmksa_count--;
56 pmksa->free_cb(entry, pmksa->ctx);
60 pos = pmksa->pmkid[hash];
67 pmksa->pmkid[hash] = entry->hnext;
75 pos = pmksa->pmksa;
82 pmksa->pmksa = entry->next;
95 struct rsn_pmksa_cache *pmksa = eloop_ctx;
99 while (pmksa->pmksa && pmksa->pmksa->expiration <= now.sec) {
101 MACSTR, MAC2STR(pmksa->pmksa->spa));
102 pmksa_cache_free_entry(pmksa, pmksa->pmksa);
105 pmksa_cache_set_expiration(pmksa);
109 static void pmksa_cache_set_expiration(struct rsn_pmksa_cache *pmksa)
114 eloop_cancel_timeout(pmksa_cache_expire, pmksa, NULL);
115 if (pmksa->pmksa == NULL)
118 sec = pmksa->pmksa->expiration - now.sec;
121 eloop_register_timeout(sec + 1, 0, pmksa_cache_expire, pmksa, NULL);
189 static void pmksa_cache_link_entry(struct rsn_pmksa_cache *pmksa,
196 pos = pmksa->pmksa;
205 entry->next = pmksa->pmksa;
206 pmksa->pmksa = entry;
213 entry->hnext = pmksa->pmkid[hash];
214 pmksa->pmkid[hash] = entry;
216 pmksa->pmksa_count++;
218 pmksa_cache_set_expiration(pmksa);
227 * @pmksa: Pointer to PMKSA cache data from pmksa_cache_auth_init()
243 pmksa_cache_auth_add(struct rsn_pmksa_cache *pmksa,
273 pos = pmksa_cache_auth_get(pmksa, spa, NULL);
275 pmksa_cache_free_entry(pmksa, pos);
277 if (pmksa->pmksa_count >= pmksa_cache_max_entries && pmksa->pmksa) {
281 MAC2STR(pmksa->pmksa->spa));
282 pmksa_cache_free_entry(pmksa, pmksa->pmksa);
285 pmksa_cache_link_entry(pmksa, entry);
292 pmksa_cache_add_okc(struct rsn_pmksa_cache *pmksa,
325 pmksa_cache_link_entry(pmksa, entry);
333 * @pmksa: Pointer to PMKSA cache data from pmksa_cache_auth_init()
335 void pmksa_cache_auth_deinit(struct rsn_pmksa_cache *pmksa)
340 if (pmksa == NULL)
343 entry = pmksa->pmksa;
349 eloop_cancel_timeout(pmksa_cache_expire, pmksa, NULL);
350 pmksa->pmksa_count = 0;
351 pmksa->pmksa = NULL;
353 pmksa->pmkid[i] = NULL;
354 os_free(pmksa);
360 * @pmksa: Pointer to PMKSA cache data from pmksa_cache_auth_init()
366 pmksa_cache_auth_get(struct rsn_pmksa_cache *pmksa,
372 for (entry = pmksa->pmkid[PMKID_HASH(pmkid)]; entry;
380 for (entry = pmksa->pmksa; entry; entry = entry->next) {
393 * @pmksa: Pointer to PMKSA cache data from pmksa_cache_auth_init()
402 struct rsn_pmksa_cache *pmksa, const u8 *aa, const u8 *spa,
408 for (entry = pmksa->pmksa; entry; entry = entry->next) {
430 struct rsn_pmksa_cache *pmksa;
432 pmksa = os_zalloc(sizeof(*pmksa));
433 if (pmksa) {
434 pmksa->free_cb = free_cb;
435 pmksa->ctx = ctx;
438 return pmksa;