Lines Matching full:as
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
64 * NB: ACL_POLICY_RADIUS must be the same value as
101 struct aclstate *as; in acl_attach() local
103 as = (struct aclstate *) IEEE80211_MALLOC(sizeof(struct aclstate), in acl_attach()
105 if (as == NULL) in acl_attach()
107 ACL_LOCK_INIT(as, "acl"); in acl_attach()
108 TAILQ_INIT(&as->as_list); in acl_attach()
109 as->as_policy = ACL_POLICY_OPEN; in acl_attach()
110 as->as_vap = vap; in acl_attach()
111 vap->iv_as = as; in acl_attach()
119 struct aclstate *as = vap->iv_as; in acl_detach() local
126 ACL_LOCK_DESTROY(as); in acl_detach()
127 IEEE80211_FREE(as, M_80211_ACL); in acl_detach()
131 _find_acl(struct aclstate *as, const uint8_t *macaddr) in _find_acl() argument
137 LIST_FOREACH(acl, &as->as_hash[hash], acl_hash) { in _find_acl()
145 _acl_free(struct aclstate *as, struct acl *acl) in _acl_free() argument
147 ACL_LOCK_ASSERT(as); in _acl_free()
149 TAILQ_REMOVE(&as->as_list, acl, acl_list); in _acl_free()
152 as->as_nacls--; in _acl_free()
158 struct aclstate *as = vap->iv_as; in acl_check() local
160 switch (as->as_policy) { in acl_check()
165 return _find_acl(as, wh->i_addr2) != NULL; in acl_check()
167 return _find_acl(as, wh->i_addr2) == NULL; in acl_check()
175 struct aclstate *as = vap->iv_as; in acl_add() local
188 ACL_LOCK(as); in acl_add()
190 LIST_FOREACH(acl, &as->as_hash[hash], acl_hash) { in acl_add()
192 ACL_UNLOCK(as); in acl_add()
201 TAILQ_INSERT_TAIL(&as->as_list, new, acl_list); in acl_add()
202 LIST_INSERT_HEAD(&as->as_hash[hash], new, acl_hash); in acl_add()
203 as->as_nacls++; in acl_add()
204 ACL_UNLOCK(as); in acl_add()
214 struct aclstate *as = vap->iv_as; in acl_remove() local
217 ACL_LOCK(as); in acl_remove()
218 acl = _find_acl(as, mac); in acl_remove()
220 _acl_free(as, acl); in acl_remove()
221 ACL_UNLOCK(as); in acl_remove()
233 struct aclstate *as = vap->iv_as; in acl_free_all() local
238 ACL_LOCK(as); in acl_free_all()
239 while ((acl = TAILQ_FIRST(&as->as_list)) != NULL) in acl_free_all()
240 _acl_free(as, acl); in acl_free_all()
241 ACL_UNLOCK(as); in acl_free_all()
249 struct aclstate *as = vap->iv_as; in acl_setpolicy() local
256 as->as_policy = ACL_POLICY_OPEN; in acl_setpolicy()
259 as->as_policy = ACL_POLICY_ALLOW; in acl_setpolicy()
262 as->as_policy = ACL_POLICY_DENY; in acl_setpolicy()
265 as->as_policy = ACL_POLICY_RADIUS; in acl_setpolicy()
276 struct aclstate *as = vap->iv_as; in acl_getpolicy() local
278 return as->as_policy; in acl_getpolicy()
291 struct aclstate *as = vap->iv_as; in acl_getioctl() local
299 ireq->i_val = as->as_policy; in acl_getioctl()
302 space = as->as_nacls * IEEE80211_ADDR_LEN; in acl_getioctl()
312 ACL_LOCK(as); in acl_getioctl()
313 TAILQ_FOREACH(acl, &as->as_list, acl_list) { in acl_getioctl()
317 ACL_UNLOCK(as); in acl_getioctl()