Deleted Added
full compact
ieee80211_node.c (184279) ieee80211_node.c (184288)
1/*-
2 * Copyright (c) 2001 Atsushi Onoe
3 * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2001 Atsushi Onoe
3 * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 11 unchanged lines hidden (view full) ---

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sys/net80211/ieee80211_node.c 184279 2008-10-25 23:44:25Z sam $");
28__FBSDID("$FreeBSD: head/sys/net80211/ieee80211_node.c 184288 2008-10-26 01:04:46Z sam $");
29
30#include "opt_wlan.h"
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/mbuf.h>
35#include <sys/malloc.h>
36#include <sys/kernel.h>

--- 862 unchanged lines hidden (view full) ---

899 * should always be removed from the table so not found but
900 * do it just in case.
901 */
902 ni->ni_flags &= ~IEEE80211_NODE_AREF;
903
904 /*
905 * Drain power save queue and, if needed, clear TIM.
906 */
29
30#include "opt_wlan.h"
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/mbuf.h>
35#include <sys/malloc.h>
36#include <sys/kernel.h>

--- 862 unchanged lines hidden (view full) ---

899 * should always be removed from the table so not found but
900 * do it just in case.
901 */
902 ni->ni_flags &= ~IEEE80211_NODE_AREF;
903
904 /*
905 * Drain power save queue and, if needed, clear TIM.
906 */
907 if (ieee80211_node_saveq_drain(ni) != 0 && vap->iv_set_tim != NULL)
907 if (ieee80211_node_psq_drain(ni) != 0 && vap->iv_set_tim != NULL)
908 vap->iv_set_tim(ni, 0);
909
910 ni->ni_associd = 0;
911 if (ni->ni_challenge != NULL) {
912 FREE(ni->ni_challenge, M_80211_NODE);
913 ni->ni_challenge = NULL;
914 }
915 /*

--- 22 unchanged lines hidden (view full) ---

938
939static void
940node_free(struct ieee80211_node *ni)
941{
942 struct ieee80211com *ic = ni->ni_ic;
943
944 ic->ic_node_cleanup(ni);
945 ieee80211_ies_cleanup(&ni->ni_ies);
908 vap->iv_set_tim(ni, 0);
909
910 ni->ni_associd = 0;
911 if (ni->ni_challenge != NULL) {
912 FREE(ni->ni_challenge, M_80211_NODE);
913 ni->ni_challenge = NULL;
914 }
915 /*

--- 22 unchanged lines hidden (view full) ---

938
939static void
940node_free(struct ieee80211_node *ni)
941{
942 struct ieee80211com *ic = ni->ni_ic;
943
944 ic->ic_node_cleanup(ni);
945 ieee80211_ies_cleanup(&ni->ni_ies);
946 IEEE80211_NODE_SAVEQ_DESTROY(ni);
946 ieee80211_psq_cleanup(&ni->ni_psq);
947 IEEE80211_NODE_WDSQ_DESTROY(ni);
948 FREE(ni, M_80211_NODE);
949}
950
951static void
952node_age(struct ieee80211_node *ni)
953{
954 struct ieee80211vap *vap = ni->ni_vap;
955#if 0
956 IEEE80211_NODE_LOCK_ASSERT(&ic->ic_sta);
957#endif
958 /*
959 * Age frames on the power save queue.
960 */
947 IEEE80211_NODE_WDSQ_DESTROY(ni);
948 FREE(ni, M_80211_NODE);
949}
950
951static void
952node_age(struct ieee80211_node *ni)
953{
954 struct ieee80211vap *vap = ni->ni_vap;
955#if 0
956 IEEE80211_NODE_LOCK_ASSERT(&ic->ic_sta);
957#endif
958 /*
959 * Age frames on the power save queue.
960 */
961 if (ieee80211_node_saveq_age(ni) != 0 &&
962 IEEE80211_NODE_SAVEQ_QLEN(ni) == 0 &&
963 vap->iv_set_tim != NULL)
961 if (ieee80211_node_psq_age(ni) != 0 &&
962 ni->ni_psq.psq_len == 0 && vap->iv_set_tim != NULL)
964 vap->iv_set_tim(ni, 0);
965 /*
966 * Age frames on the wds pending queue.
967 */
968 if (IEEE80211_NODE_WDSQ_QLEN(ni) != 0)
969 ieee80211_node_wdsq_age(ni);
970 /*
971 * Age out HT resources (e.g. frames on the

--- 54 unchanged lines hidden (view full) ---

1026 ni->ni_authmode = IEEE80211_AUTH_OPEN;
1027 ni->ni_txpower = ic->ic_txpowlimit; /* max power */
1028 ni->ni_txparms = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)];
1029 ieee80211_crypto_resetkey(vap, &ni->ni_ucastkey, IEEE80211_KEYIX_NONE);
1030 ni->ni_avgrssi = IEEE80211_RSSI_DUMMY_MARKER;
1031 ni->ni_inact_reload = nt->nt_inact_init;
1032 ni->ni_inact = ni->ni_inact_reload;
1033 ni->ni_ath_defkeyix = 0x7fff;
963 vap->iv_set_tim(ni, 0);
964 /*
965 * Age frames on the wds pending queue.
966 */
967 if (IEEE80211_NODE_WDSQ_QLEN(ni) != 0)
968 ieee80211_node_wdsq_age(ni);
969 /*
970 * Age out HT resources (e.g. frames on the

--- 54 unchanged lines hidden (view full) ---

1025 ni->ni_authmode = IEEE80211_AUTH_OPEN;
1026 ni->ni_txpower = ic->ic_txpowlimit; /* max power */
1027 ni->ni_txparms = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)];
1028 ieee80211_crypto_resetkey(vap, &ni->ni_ucastkey, IEEE80211_KEYIX_NONE);
1029 ni->ni_avgrssi = IEEE80211_RSSI_DUMMY_MARKER;
1030 ni->ni_inact_reload = nt->nt_inact_init;
1031 ni->ni_inact = ni->ni_inact_reload;
1032 ni->ni_ath_defkeyix = 0x7fff;
1034 IEEE80211_NODE_SAVEQ_INIT(ni, "unknown");
1033 ieee80211_psq_init(&ni->ni_psq, "unknown");
1035 IEEE80211_NODE_WDSQ_INIT(ni, "unknown");
1036
1037 IEEE80211_NODE_LOCK(nt);
1038 TAILQ_INSERT_TAIL(&nt->nt_node, ni, ni_list);
1039 LIST_INSERT_HEAD(&nt->nt_hash[hash], ni, ni_hash);
1040 ni->ni_table = nt;
1041 ni->ni_vap = vap;
1042 ni->ni_ic = ic;

--- 33 unchanged lines hidden (view full) ---

1076 IEEE80211_ADDR_COPY(ni->ni_bssid, bss->ni_bssid);
1077 ieee80211_node_initref(ni); /* mark referenced */
1078 /* NB: required by ieee80211_fix_rate */
1079 ieee80211_node_set_chan(ni, bss->ni_chan);
1080 ieee80211_crypto_resetkey(vap, &ni->ni_ucastkey,
1081 IEEE80211_KEYIX_NONE);
1082 ni->ni_txpower = bss->ni_txpower;
1083 /* XXX optimize away */
1034 IEEE80211_NODE_WDSQ_INIT(ni, "unknown");
1035
1036 IEEE80211_NODE_LOCK(nt);
1037 TAILQ_INSERT_TAIL(&nt->nt_node, ni, ni_list);
1038 LIST_INSERT_HEAD(&nt->nt_hash[hash], ni, ni_hash);
1039 ni->ni_table = nt;
1040 ni->ni_vap = vap;
1041 ni->ni_ic = ic;

--- 33 unchanged lines hidden (view full) ---

1075 IEEE80211_ADDR_COPY(ni->ni_bssid, bss->ni_bssid);
1076 ieee80211_node_initref(ni); /* mark referenced */
1077 /* NB: required by ieee80211_fix_rate */
1078 ieee80211_node_set_chan(ni, bss->ni_chan);
1079 ieee80211_crypto_resetkey(vap, &ni->ni_ucastkey,
1080 IEEE80211_KEYIX_NONE);
1081 ni->ni_txpower = bss->ni_txpower;
1082 /* XXX optimize away */
1084 IEEE80211_NODE_SAVEQ_INIT(ni, "unknown");
1083 ieee80211_psq_init(&ni->ni_psq, "unknown");
1085 IEEE80211_NODE_WDSQ_INIT(ni, "unknown");
1086 } else {
1087 /* XXX msg */
1088 vap->iv_stats.is_rx_nodealloc++;
1089 }
1090 return ni;
1091}
1092

--- 1487 unchanged lines hidden ---
1084 IEEE80211_NODE_WDSQ_INIT(ni, "unknown");
1085 } else {
1086 /* XXX msg */
1087 vap->iv_stats.is_rx_nodealloc++;
1088 }
1089 return ni;
1090}
1091

--- 1487 unchanged lines hidden ---