Changeset 3366
- Timestamp:
- 02/28/08 10:51:43 (10 months ago)
- Files:
-
- madwifi/branches/madwifi-dfs/ath/if_ath.c (modified) (4 diffs)
- madwifi/branches/madwifi-dfs/ath/if_athvar.h (modified) (1 diff)
- madwifi/branches/madwifi-dfs/ath_rate/sample/sample.c (modified) (1 diff)
- madwifi/branches/madwifi-dfs/net80211/ieee80211_ioctl.h (modified) (1 diff)
- madwifi/branches/madwifi-dfs/net80211/ieee80211_proto.c (modified) (1 diff)
- madwifi/branches/madwifi-dfs/net80211/ieee80211_var.h (modified) (1 diff)
- madwifi/branches/madwifi-dfs/net80211/ieee80211_wireless.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
madwifi/branches/madwifi-dfs/ath/if_ath.c
r3345 r3366 5486 5486 memset(an, 0, space); 5487 5487 an->an_decomp_index = INVALID_DECOMP_INDEX; 5488 an->an_avgrssi = ATH_RSSI_DUMMY_MARKER;5489 5488 an->an_halstats.ns_avgbrssi = ATH_RSSI_DUMMY_MARKER; 5490 5489 an->an_halstats.ns_avgrssi = ATH_RSSI_DUMMY_MARKER; … … 5592 5591 ((((x) % (mul)) >= ((mul) / 2)) ? ((x) + ((mul) - 1)) / \ 5593 5592 (mul) : (x)/(mul)) 5594 u_int32_t avgrssi = ATH_NODE_CONST(ni)->an_ avgrssi;5593 u_int32_t avgrssi = ATH_NODE_CONST(ni)->an_halstats.ns_avgrssi; 5595 5594 int32_t rssi; 5596 5595 … … 6529 6528 * grab a reference for processing the frame. */ 6530 6529 ni = ieee80211_ref_node(ni); 6531 ATH_RSSI_LPF(ATH_NODE(ni)->an_ avgrssi, rs->rs_rssi);6530 ATH_RSSI_LPF(ATH_NODE(ni)->an_halstats.ns_avgrssi, rs->rs_rssi); 6532 6531 type = ieee80211_input(ni->ni_vap, ni, skb, rs->rs_rssi, bf->bf_tsf); 6533 6532 ieee80211_unref_node(&ni); … … 6542 6541 ieee80211_keyix_t keyix; 6543 6542 6544 ATH_RSSI_LPF(ATH_NODE(ni)->an_ avgrssi, rs->rs_rssi);6543 ATH_RSSI_LPF(ATH_NODE(ni)->an_halstats.ns_avgrssi, rs->rs_rssi); 6545 6544 type = ieee80211_input(ni->ni_vap, ni, skb, rs->rs_rssi, bf->bf_tsf); 6546 6545 /* madwifi/branches/madwifi-dfs/ath/if_athvar.h
r3332 r3366 359 359 struct ieee80211_node an_node; /* base class */ 360 360 u_int16_t an_decomp_index; /* decompression mask index */ 361 u_int32_t an_avgrssi; /* average rssi over all rx frames */362 361 u_int8_t an_prevdatarix; /* rate ix of last data frame */ 363 362 u_int16_t an_minffrate; /* min rate in kbps for ff to aggregate */ madwifi/branches/madwifi-dfs/ath_rate/sample/sample.c
r3267 r3366 426 426 */ 427 427 int initial_rate = 72; 428 if (an->an_ avgrssi > 50) {428 if (an->an_halstats.ns_avgrssi > 50) { 429 429 initial_rate = 108; /* 54 mbps */ 430 } else if (an->an_ avgrssi > 30) {430 } else if (an->an_halstats.ns_avgrssi > 30) { 431 431 initial_rate = 72; /* 36 mbps */ 432 432 } else { madwifi/branches/madwifi-dfs/net80211/ieee80211_ioctl.h
r3336 r3366 642 642 IEEE80211_PARAM_BEACON_MISS_THRESH = 73, /* Beacon miss threshold (in beacons) */ 643 643 IEEE80211_PARAM_BEACON_MISS_THRESH_MS = 74, /* Beacon miss threshold (in ms) */ 644 IEEE80211_PARAM_RSSI_EWMA = 75, 644 645 }; 645 646 madwifi/branches/madwifi-dfs/net80211/ieee80211_proto.c
r3336 r3366 101 101 102 102 ic->ic_protmode = IEEE80211_PROT_CTSONLY; 103 ic->ic_rssi_ewma = 0; 103 104 104 105 ic->ic_wme.wme_hipri_switch_hysteresis = madwifi/branches/madwifi-dfs/net80211/ieee80211_var.h
r3335 r3366 402 402 /* XXX Multi-BSS: can per-VAP be done/make sense? */ 403 403 enum ieee80211_protmode ic_protmode; /* 802.11g protection mode */ 404 int ic_rssi_ewma; 404 405 u_int16_t ic_nonerpsta; /* # non-ERP stations */ 405 406 u_int16_t ic_longslotsta; /* # long slot time stations */ madwifi/branches/madwifi-dfs/net80211/ieee80211_wireless.c
r3335 r3366 1111 1111 if (ni) { 1112 1112 if (ni->ni_vap == vap) { 1113 set_quality(&spy_stat[i], ni->ni_rssi, ic->ic_channoise); 1113 u_int rssi; 1114 1115 /* using EWMA for rssi, if requested */ 1116 if (ic->ic_rssi_ewma) { 1117 rssi = ic->ic_node_getrssi(ni); 1118 } else { 1119 rssi = ni->ni_rssi; 1120 } 1121 set_quality(&spy_stat[i], rssi, ic->ic_channoise); 1114 1122 if (ni->ni_rtsf != vap->iv_spy.ts_rssi[i]) { 1115 1123 vap->iv_spy.ts_rssi[i] = ni->ni_rtsf; … … 2312 2320 retv = ENETRESET; 2313 2321 break; 2322 case IEEE80211_PARAM_RSSI_EWMA: 2323 ic->ic_rssi_ewma = value; 2324 break; 2314 2325 case IEEE80211_PARAM_MCASTCIPHER: 2315 2326 if ((vap->iv_caps & cipher2cap(value)) == 0 && … … 2942 2953 case IEEE80211_PARAM_PROTMODE: 2943 2954 param[0] = ic->ic_protmode; 2955 break; 2956 case IEEE80211_PARAM_RSSI_EWMA: 2957 param[0] = ic->ic_rssi_ewma; 2944 2958 break; 2945 2959 case IEEE80211_PARAM_MCASTCIPHER: … … 5608 5622 IW_PRIV_TYPE_FILTER , 0, "setfilter" }, 5609 5623 5624 { IEEE80211_PARAM_RSSI_EWMA, 5625 IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "rssi_ewma" }, 5626 { IEEE80211_PARAM_RSSI_EWMA, 5627 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "get_rssi_ewma" }, 5628 5610 5629 #ifdef ATH_REVERSE_ENGINEERING 5611 5630 /*
