simplify rate set api's by removing ic parameter (implicit in node reference)
MFC after: 3 days
This commit is contained in:
parent
bdad3a1066
commit
7d77cd5381
@ -815,10 +815,11 @@ ieee80211_decap(struct ieee80211com *ic, struct mbuf *m, int hdrlen)
|
||||
/*
|
||||
* Install received rate set information in the node's state block.
|
||||
*/
|
||||
static int
|
||||
ieee80211_setup_rates(struct ieee80211com *ic, struct ieee80211_node *ni,
|
||||
u_int8_t *rates, u_int8_t *xrates, int flags)
|
||||
int
|
||||
ieee80211_setup_rates(struct ieee80211_node *ni,
|
||||
const u_int8_t *rates, const u_int8_t *xrates, int flags)
|
||||
{
|
||||
struct ieee80211com *ic = ni->ni_ic;
|
||||
struct ieee80211_rateset *rs = &ni->ni_rates;
|
||||
|
||||
memset(rs, 0, sizeof(*rs));
|
||||
@ -841,7 +842,7 @@ ieee80211_setup_rates(struct ieee80211com *ic, struct ieee80211_node *ni,
|
||||
memcpy(rs->rs_rates + rs->rs_nrates, xrates+2, nxrates);
|
||||
rs->rs_nrates += nxrates;
|
||||
}
|
||||
return ieee80211_fix_rate(ic, ni, flags);
|
||||
return ieee80211_fix_rate(ni, flags);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2036,7 +2037,7 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
|
||||
if (wpa != NULL)
|
||||
ieee80211_saveie(&ni->ni_wpa_ie, wpa);
|
||||
/* NB: must be after ni_chan is setup */
|
||||
ieee80211_setup_rates(ic, ni, rates, xrates, IEEE80211_F_DOSORT);
|
||||
ieee80211_setup_rates(ni, rates, xrates, IEEE80211_F_DOSORT);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2106,7 +2107,7 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
|
||||
"[%s] recv probe req\n", ether_sprintf(wh->i_addr2));
|
||||
ni->ni_rssi = rssi;
|
||||
ni->ni_rstamp = rstamp;
|
||||
rate = ieee80211_setup_rates(ic, ni, rates, xrates,
|
||||
rate = ieee80211_setup_rates(ni, rates, xrates,
|
||||
IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE
|
||||
| IEEE80211_F_DONEGO | IEEE80211_F_DODEL);
|
||||
if (rate & IEEE80211_RATE_BASIC) {
|
||||
@ -2332,7 +2333,7 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
|
||||
ic->ic_stats.is_rx_assoc_capmismatch++;
|
||||
return;
|
||||
}
|
||||
rate = ieee80211_setup_rates(ic, ni, rates, xrates,
|
||||
rate = ieee80211_setup_rates(ni, rates, xrates,
|
||||
IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE |
|
||||
IEEE80211_F_DONEGO | IEEE80211_F_DODEL);
|
||||
/*
|
||||
@ -2453,7 +2454,7 @@ ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0,
|
||||
}
|
||||
|
||||
IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_MAXSIZE);
|
||||
rate = ieee80211_setup_rates(ic, ni, rates, xrates,
|
||||
rate = ieee80211_setup_rates(ni, rates, xrates,
|
||||
IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE |
|
||||
IEEE80211_F_DONEGO | IEEE80211_F_DODEL);
|
||||
if (rate & IEEE80211_RATE_BASIC) {
|
||||
|
@ -487,8 +487,7 @@ ieee80211_match_bss(struct ieee80211com *ic, struct ieee80211_node *ni)
|
||||
if (ni->ni_capinfo & IEEE80211_CAPINFO_PRIVACY)
|
||||
fail |= 0x04;
|
||||
}
|
||||
rate = ieee80211_fix_rate(ic, ni,
|
||||
IEEE80211_F_DONEGO | IEEE80211_F_DOFRATE);
|
||||
rate = ieee80211_fix_rate(ni, IEEE80211_F_DONEGO | IEEE80211_F_DOFRATE);
|
||||
if (rate & IEEE80211_RATE_BASIC)
|
||||
fail |= 0x08;
|
||||
if (ic->ic_des_esslen != 0 &&
|
||||
@ -772,7 +771,7 @@ ieee80211_sta_join(struct ieee80211com *ic, struct ieee80211_node *selbs)
|
||||
* Delete unusable rates; we've already checked
|
||||
* that the negotiated rate set is acceptable.
|
||||
*/
|
||||
ieee80211_fix_rate(ic, selbs, IEEE80211_F_DODEL);
|
||||
ieee80211_fix_rate(selbs, IEEE80211_F_DODEL);
|
||||
/*
|
||||
* Fillin the neighbor table; it will already
|
||||
* exist if we are simply switching mastership.
|
||||
|
@ -319,9 +319,10 @@ ieee80211_dump_pkt(const u_int8_t *buf, int len, int rate, int rssi)
|
||||
}
|
||||
|
||||
int
|
||||
ieee80211_fix_rate(struct ieee80211com *ic, struct ieee80211_node *ni, int flags)
|
||||
ieee80211_fix_rate(struct ieee80211_node *ni, int flags)
|
||||
{
|
||||
#define RV(v) ((v) & IEEE80211_RATE_VAL)
|
||||
struct ieee80211com *ic = ni->ni_ic;
|
||||
int i, j, ignore, error;
|
||||
int okrate, badrate, fixedrate;
|
||||
struct ieee80211_rateset *srs, *nrs;
|
||||
|
@ -59,6 +59,8 @@ void ieee80211_proto_detach(struct ieee80211com *);
|
||||
struct ieee80211_node;
|
||||
int ieee80211_input(struct ieee80211com *, struct mbuf *,
|
||||
struct ieee80211_node *, int, u_int32_t);
|
||||
int ieee80211_setup_rates(struct ieee80211_node *ni,
|
||||
const u_int8_t *rates, const u_int8_t *xrates, int flags);
|
||||
void ieee80211_recv_mgmt(struct ieee80211com *, struct mbuf *,
|
||||
struct ieee80211_node *, int, int, u_int32_t);
|
||||
int ieee80211_send_nulldata(struct ieee80211com *, struct ieee80211_node *);
|
||||
@ -163,7 +165,7 @@ const struct ieee80211_aclator *ieee80211_aclator_get(const char *name);
|
||||
#define IEEE80211_F_DOFRATE 0x00000002 /* use fixed rate */
|
||||
#define IEEE80211_F_DONEGO 0x00000004 /* calc negotiated rate */
|
||||
#define IEEE80211_F_DODEL 0x00000008 /* delete ignore rate */
|
||||
int ieee80211_fix_rate(struct ieee80211com *, struct ieee80211_node *, int);
|
||||
int ieee80211_fix_rate(struct ieee80211_node *, int);
|
||||
|
||||
/*
|
||||
* WME/WMM support.
|
||||
|
Loading…
x
Reference in New Issue
Block a user