Lines Matching defs:nt
101 static void node_reclaim(struct ieee80211_node_table *nt,
104 struct ieee80211_node_table *nt, const char *name,
108 static void ieee80211_node_table_cleanup(struct ieee80211_node_table *nt);
882 struct ieee80211_node_table *nt = obss->ni_table;
885 if (nt != NULL) {
887 IEEE80211_NODE_LOCK(nt);
888 node_reclaim(nt, obss); /* station table reference */
889 IEEE80211_NODE_UNLOCK(nt);
1392 ieee80211_add_node_nt(struct ieee80211_node_table *nt,
1395 struct ieee80211com *ic = nt->nt_ic;
1398 IEEE80211_NODE_LOCK_ASSERT(nt);
1402 TAILQ_INSERT_TAIL(&nt->nt_node, ni, ni_list);
1403 LIST_INSERT_HEAD(&nt->nt_hash[hash], ni, ni_hash);
1404 nt->nt_count++;
1405 ni->ni_table = nt;
1409 ieee80211_del_node_nt(struct ieee80211_node_table *nt,
1413 IEEE80211_NODE_LOCK_ASSERT(nt);
1415 TAILQ_REMOVE(&nt->nt_node, ni, ni_list);
1417 nt->nt_count--;
1418 KASSERT(nt->nt_count >= 0,
1419 ("nt_count is negative (%d)!\n", nt->nt_count));
1424 ieee80211_alloc_node(struct ieee80211_node_table *nt,
1428 struct ieee80211com *ic = nt->nt_ic;
1439 ether_sprintf(macaddr), nt->nt_name);
1454 ni->ni_inact_reload = nt->nt_inact_init;
1462 IEEE80211_NODE_LOCK(nt);
1463 ieee80211_add_node_nt(nt, ni);
1466 IEEE80211_NODE_UNLOCK(nt);
1629 _ieee80211_find_node_locked(struct ieee80211_node_table *nt,
1636 IEEE80211_NODE_LOCK_ASSERT(nt);
1638 hash = IEEE80211_NODE_HASH(nt->nt_ic, macaddr);
1639 LIST_FOREACH(ni, &nt->nt_hash[hash], ni_hash) {
1656 _ieee80211_find_node(struct ieee80211_node_table *nt,
1662 IEEE80211_NODE_LOCK(nt);
1663 ni = _ieee80211_find_node_locked(nt, macaddr, func, line);
1664 IEEE80211_NODE_UNLOCK(nt);
1669 _ieee80211_find_vap_node_locked(struct ieee80211_node_table *nt,
1676 IEEE80211_NODE_LOCK_ASSERT(nt);
1678 hash = IEEE80211_NODE_HASH(nt->nt_ic, macaddr);
1679 LIST_FOREACH(ni, &nt->nt_hash[hash], ni_hash) {
1697 _ieee80211_find_vap_node(struct ieee80211_node_table *nt,
1703 IEEE80211_NODE_LOCK(nt);
1704 ni = _ieee80211_find_vap_node_locked(nt, vap, macaddr, func, line);
1705 IEEE80211_NODE_UNLOCK(nt);
1955 _find_rxnode(struct ieee80211_node_table *nt,
1961 return _ieee80211_find_node_locked(nt, wh->i_addr2, func, line);
1974 struct ieee80211_node_table *nt;
1977 nt = &ic->ic_sta;
1978 IEEE80211_NODE_LOCK(nt);
1979 ni = _find_rxnode(nt, wh, func, line);
1980 IEEE80211_NODE_UNLOCK(nt);
1998 struct ieee80211_node_table *nt;
2001 nt = &ic->ic_sta;
2002 IEEE80211_NODE_LOCK(nt);
2003 if (nt->nt_keyixmap != NULL && keyix < nt->nt_keyixmax)
2004 ni = nt->nt_keyixmap[keyix];
2008 ni = _find_rxnode(nt, wh, func, line);
2009 if (ni != NULL && nt->nt_keyixmap != NULL) {
2016 if (keyix < nt->nt_keyixmax &&
2017 nt->nt_keyixmap[keyix] == NULL) {
2023 nt->nt_keyixmap[keyix] = ieee80211_ref_node(ni);
2032 IEEE80211_NODE_UNLOCK(nt);
2048 struct ieee80211_node_table *nt = &vap->iv_ic->ic_sta;
2058 IEEE80211_NODE_LOCK(nt);
2064 ni = _ieee80211_find_node_locked(nt, macaddr, func, line);
2065 IEEE80211_NODE_UNLOCK(nt);
2109 struct ieee80211_node_table *nt = ni->ni_table;
2121 nt != NULL ? nt->nt_name : "<gone>");
2128 if (nt != NULL)
2129 ieee80211_del_node_nt(nt, ni);
2137 node_clear_keyixmap(struct ieee80211_node_table *nt, struct ieee80211_node *ni)
2142 if (nt->nt_keyixmap != NULL && keyix < nt->nt_keyixmax &&
2143 nt->nt_keyixmap[keyix] == ni) {
2147 nt->nt_keyixmap[keyix] = NULL;
2159 struct ieee80211_node_table *nt = ni->ni_table;
2166 if (nt != NULL) {
2167 IEEE80211_NODE_LOCK(nt);
2174 if (node_clear_keyixmap(nt, ni))
2176 IEEE80211_NODE_UNLOCK(nt);
2190 struct ieee80211_node_table *nt = &ic->ic_sta;
2207 isowned = IEEE80211_NODE_IS_LOCKED(nt);
2209 IEEE80211_NODE_LOCK(nt);
2215 if (nt->nt_keyixmap != NULL && keyix < nt->nt_keyixmax) {
2216 nikey = nt->nt_keyixmap[keyix];
2217 nt->nt_keyixmap[keyix] = NULL;
2221 IEEE80211_NODE_UNLOCK(nt);
2241 node_reclaim(struct ieee80211_node_table *nt, struct ieee80211_node *ni)
2244 IEEE80211_NODE_LOCK_ASSERT(nt);
2249 nt->nt_name, ieee80211_node_refcnt(ni)-1);
2257 (void)node_clear_keyixmap(nt, ni);
2265 ieee80211_del_node_nt(nt, ni);
2276 struct ieee80211_node_table *nt,
2280 nt->nt_ic = ic;
2281 IEEE80211_NODE_LOCK_INIT(nt, ic->ic_name);
2282 TAILQ_INIT(&nt->nt_node);
2283 nt->nt_count = 0;
2284 nt->nt_name = name;
2285 nt->nt_inact_init = inact;
2286 nt->nt_keyixmax = keyixmax;
2287 if (nt->nt_keyixmax > 0) {
2288 nt->nt_keyixmap = (struct ieee80211_node **) IEEE80211_MALLOC(
2292 if (nt->nt_keyixmap == NULL)
2297 nt->nt_keyixmap = NULL;
2301 ieee80211_node_table_reset(struct ieee80211_node_table *nt,
2306 IEEE80211_NODE_LOCK(nt);
2307 TAILQ_FOREACH_SAFE(ni, &nt->nt_node, ni_list, next) {
2320 node_reclaim(nt, ni);
2330 TAILQ_FOREACH_SAFE(ni, &nt->nt_node, ni_list, next)
2334 IEEE80211_NODE_UNLOCK(nt);
2338 ieee80211_node_table_cleanup(struct ieee80211_node_table *nt)
2340 ieee80211_node_table_reset(nt, NULL);
2341 if (nt->nt_keyixmap != NULL) {
2345 for (i = 0; i < nt->nt_keyixmax; i++)
2346 if (nt->nt_keyixmap[i] != NULL)
2348 nt->nt_name, i);
2350 IEEE80211_FREE(nt->nt_keyixmap, M_80211_NODE);
2351 nt->nt_keyixmap = NULL;
2353 IEEE80211_NODE_LOCK_DESTROY(nt);
2481 struct ieee80211_node_table *nt = &ic->ic_sta;
2483 ieee80211_iterate_nodes(nt, timeout_stations, NULL);
2493 struct ieee80211_node_table *nt = &ic->ic_sta;
2497 IEEE80211_NODE_LOCK(nt);
2498 TAILQ_FOREACH(ni, &nt->nt_node, ni_list) {
2533 IEEE80211_NODE_UNLOCK(nt);
2586 ieee80211_iterate_nodes_vap(struct ieee80211_node_table *nt,
2600 IEEE80211_NODE_LOCK(nt);
2601 count = nt->nt_count;
2606 IEEE80211_NODE_UNLOCK(nt);
2611 TAILQ_FOREACH(ni, &nt->nt_node, ni_list) {
2620 IEEE80211_NODE_UNLOCK(nt);
2640 ieee80211_iterate_nodes(struct ieee80211_node_table *nt,
2644 (void) ieee80211_iterate_nodes_vap(nt, NULL, f, arg);
2648 ieee80211_dump_node(struct ieee80211_node_table *nt __unused,
2685 ieee80211_dump_nodes(struct ieee80211_node_table *nt)
2687 ieee80211_iterate_nodes(nt,
2688 (ieee80211_iter_func *) ieee80211_dump_node, nt);
2976 struct ieee80211_node_table *nt = ni->ni_table;
3025 if (nt != NULL) {
3026 IEEE80211_NODE_LOCK(nt);
3027 node_reclaim(nt, ni);
3028 IEEE80211_NODE_UNLOCK(nt);