Changeset 3366

Show
Ignore:
Timestamp:
02/28/08 10:51:43 (10 months ago)
Author:
benoit
Message:

Removed an_avgrssi which duplicated an_halstats.ns_avgrssi
Added a new iwpriv "rssi_ewma" where iwspy reports an EWMA rssi instead
of the last packet's rssi. Default behaviour is preserved by default (ie
the last packet's rssi is reported).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • madwifi/branches/madwifi-dfs/ath/if_ath.c

    r3345 r3366  
    54865486                memset(an, 0, space); 
    54875487                an->an_decomp_index = INVALID_DECOMP_INDEX; 
    5488                 an->an_avgrssi = ATH_RSSI_DUMMY_MARKER; 
    54895488                an->an_halstats.ns_avgbrssi = ATH_RSSI_DUMMY_MARKER; 
    54905489                an->an_halstats.ns_avgrssi = ATH_RSSI_DUMMY_MARKER; 
     
    55925591        ((((x) % (mul)) >= ((mul) / 2)) ? ((x) + ((mul) - 1)) /         \ 
    55935592         (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; 
    55955594        int32_t rssi; 
    55965595 
     
    65296528                         * grab a reference for processing the frame. */ 
    65306529                        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); 
    65326531                        type = ieee80211_input(ni->ni_vap, ni, skb, rs->rs_rssi, bf->bf_tsf); 
    65336532                        ieee80211_unref_node(&ni); 
     
    65426541                                ieee80211_keyix_t keyix; 
    65436542 
    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); 
    65456544                                type = ieee80211_input(ni->ni_vap, ni, skb, rs->rs_rssi, bf->bf_tsf); 
    65466545                                /* 
  • madwifi/branches/madwifi-dfs/ath/if_athvar.h

    r3332 r3366  
    359359        struct ieee80211_node an_node;          /* base class */ 
    360360        u_int16_t an_decomp_index;              /* decompression mask index */ 
    361         u_int32_t an_avgrssi;                   /* average rssi over all rx frames */ 
    362361        u_int8_t  an_prevdatarix;               /* rate ix of last data frame */ 
    363362        u_int16_t an_minffrate;                 /* min rate in kbps for ff to aggregate */ 
  • madwifi/branches/madwifi-dfs/ath_rate/sample/sample.c

    r3267 r3366  
    426426                                 */ 
    427427                                int initial_rate = 72; 
    428                                 if (an->an_avgrssi > 50) { 
     428                                if (an->an_halstats.ns_avgrssi > 50) { 
    429429                                        initial_rate = 108; /* 54 mbps */ 
    430                                 } else if (an->an_avgrssi > 30) { 
     430                                } else if (an->an_halstats.ns_avgrssi > 30) { 
    431431                                        initial_rate = 72; /* 36 mbps */ 
    432432                                } else { 
  • madwifi/branches/madwifi-dfs/net80211/ieee80211_ioctl.h

    r3336 r3366  
    642642        IEEE80211_PARAM_BEACON_MISS_THRESH      = 73,   /* Beacon miss threshold (in beacons) */ 
    643643        IEEE80211_PARAM_BEACON_MISS_THRESH_MS   = 74,   /* Beacon miss threshold (in ms) */ 
     644        IEEE80211_PARAM_RSSI_EWMA               = 75, 
    644645}; 
    645646 
  • madwifi/branches/madwifi-dfs/net80211/ieee80211_proto.c

    r3336 r3366  
    101101 
    102102        ic->ic_protmode = IEEE80211_PROT_CTSONLY; 
     103        ic->ic_rssi_ewma = 0; 
    103104 
    104105        ic->ic_wme.wme_hipri_switch_hysteresis = 
  • madwifi/branches/madwifi-dfs/net80211/ieee80211_var.h

    r3335 r3366  
    402402        /* XXX Multi-BSS: can per-VAP be done/make sense? */ 
    403403        enum ieee80211_protmode ic_protmode;    /* 802.11g protection mode */ 
     404        int ic_rssi_ewma; 
    404405        u_int16_t ic_nonerpsta;                 /* # non-ERP stations */ 
    405406        u_int16_t ic_longslotsta;               /* # long slot time stations */ 
  • madwifi/branches/madwifi-dfs/net80211/ieee80211_wireless.c

    r3335 r3366  
    11111111                if (ni) { 
    11121112                        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); 
    11141122                                if (ni->ni_rtsf != vap->iv_spy.ts_rssi[i]) { 
    11151123                                        vap->iv_spy.ts_rssi[i] = ni->ni_rtsf; 
     
    23122320                        retv = ENETRESET; 
    23132321                break; 
     2322        case IEEE80211_PARAM_RSSI_EWMA: 
     2323                ic->ic_rssi_ewma = value; 
     2324                break; 
    23142325        case IEEE80211_PARAM_MCASTCIPHER: 
    23152326                if ((vap->iv_caps & cipher2cap(value)) == 0 && 
     
    29422953        case IEEE80211_PARAM_PROTMODE: 
    29432954                param[0] = ic->ic_protmode; 
     2955                break; 
     2956        case IEEE80211_PARAM_RSSI_EWMA: 
     2957                param[0] = ic->ic_rssi_ewma; 
    29442958                break; 
    29452959        case IEEE80211_PARAM_MCASTCIPHER: 
     
    56085622          IW_PRIV_TYPE_FILTER , 0, "setfilter" }, 
    56095623 
     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 
    56105629#ifdef ATH_REVERSE_ENGINEERING 
    56115630        /*