Deleted Added
full compact
ieee80211_rssadapt.c (257241) ieee80211_rssadapt.c (283538)
1/* $FreeBSD: head/sys/net80211/ieee80211_rssadapt.c 257241 2013-10-28 07:29:16Z glebius $ */
1/* $FreeBSD: head/sys/net80211/ieee80211_rssadapt.c 283538 2015-05-25 19:18:16Z adrian $ */
2/* $NetBSD: ieee80211_rssadapt.c,v 1.9 2005/02/26 22:45:09 perry Exp $ */
3/*-
4 * Copyright (c) 2010 Rui Paulo <rpaulo@FreeBSD.org>
5 * Copyright (c) 2003, 2004 David Young. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or
8 * without modification, are permitted provided that the following
9 * conditions are met:

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

127static void
128rssadapt_init(struct ieee80211vap *vap)
129{
130 struct ieee80211_rssadapt *rs;
131
132 KASSERT(vap->iv_rs == NULL, ("%s: iv_rs already initialized",
133 __func__));
134
2/* $NetBSD: ieee80211_rssadapt.c,v 1.9 2005/02/26 22:45:09 perry Exp $ */
3/*-
4 * Copyright (c) 2010 Rui Paulo <rpaulo@FreeBSD.org>
5 * Copyright (c) 2003, 2004 David Young. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or
8 * without modification, are permitted provided that the following
9 * conditions are met:

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

127static void
128rssadapt_init(struct ieee80211vap *vap)
129{
130 struct ieee80211_rssadapt *rs;
131
132 KASSERT(vap->iv_rs == NULL, ("%s: iv_rs already initialized",
133 __func__));
134
135 vap->iv_rs = rs = malloc(sizeof(struct ieee80211_rssadapt),
136 M_80211_RATECTL, M_NOWAIT|M_ZERO);
135 vap->iv_rs = rs = IEEE80211_MALLOC(sizeof(struct ieee80211_rssadapt),
136 M_80211_RATECTL, IEEE80211_M_NOWAIT | IEEE80211_M_ZERO);
137 if (rs == NULL) {
138 if_printf(vap->iv_ifp, "couldn't alloc ratectl structure\n");
139 return;
140 }
141 rs->vap = vap;
142 rssadapt_setinterval(vap, 500 /* msecs */);
143 rssadapt_sysctlattach(vap, vap->iv_sysctl, vap->iv_oid);
144}
145
146static void
147rssadapt_deinit(struct ieee80211vap *vap)
148{
137 if (rs == NULL) {
138 if_printf(vap->iv_ifp, "couldn't alloc ratectl structure\n");
139 return;
140 }
141 rs->vap = vap;
142 rssadapt_setinterval(vap, 500 /* msecs */);
143 rssadapt_sysctlattach(vap, vap->iv_sysctl, vap->iv_oid);
144}
145
146static void
147rssadapt_deinit(struct ieee80211vap *vap)
148{
149 free(vap->iv_rs, M_80211_RATECTL);
149 IEEE80211_FREE(vap->iv_rs, M_80211_RATECTL);
150}
151
152static void
153rssadapt_updatestats(struct ieee80211_rssadapt_node *ra)
154{
155 long interval;
156
157 ra->ra_pktrate = (ra->ra_pktrate + 10*(ra->ra_nfail + ra->ra_nok))/2;

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

170{
171 struct ieee80211_rssadapt_node *ra;
172 struct ieee80211vap *vap = ni->ni_vap;
173 struct ieee80211_rssadapt *rsa = vap->iv_rs;
174 const struct ieee80211_rateset *rs = &ni->ni_rates;
175
176 if (ni->ni_rctls == NULL) {
177 ni->ni_rctls = ra =
150}
151
152static void
153rssadapt_updatestats(struct ieee80211_rssadapt_node *ra)
154{
155 long interval;
156
157 ra->ra_pktrate = (ra->ra_pktrate + 10*(ra->ra_nfail + ra->ra_nok))/2;

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

170{
171 struct ieee80211_rssadapt_node *ra;
172 struct ieee80211vap *vap = ni->ni_vap;
173 struct ieee80211_rssadapt *rsa = vap->iv_rs;
174 const struct ieee80211_rateset *rs = &ni->ni_rates;
175
176 if (ni->ni_rctls == NULL) {
177 ni->ni_rctls = ra =
178 malloc(sizeof(struct ieee80211_rssadapt_node),
179 M_80211_RATECTL, M_NOWAIT|M_ZERO);
178 IEEE80211_MALLOC(sizeof(struct ieee80211_rssadapt_node),
179 M_80211_RATECTL, IEEE80211_M_NOWAIT | IEEE80211_M_ZERO);
180 if (ra == NULL) {
181 if_printf(vap->iv_ifp, "couldn't alloc per-node ratectl "
182 "structure\n");
183 return;
184 }
185 } else
186 ra = ni->ni_rctls;
187 ra->ra_rs = rsa;

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

199 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni,
200 "RSSADAPT initial rate %d", ni->ni_txrate);
201}
202
203static void
204rssadapt_node_deinit(struct ieee80211_node *ni)
205{
206
180 if (ra == NULL) {
181 if_printf(vap->iv_ifp, "couldn't alloc per-node ratectl "
182 "structure\n");
183 return;
184 }
185 } else
186 ra = ni->ni_rctls;
187 ra->ra_rs = rsa;

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

199 IEEE80211_NOTE(ni->ni_vap, IEEE80211_MSG_RATECTL, ni,
200 "RSSADAPT initial rate %d", ni->ni_txrate);
201}
202
203static void
204rssadapt_node_deinit(struct ieee80211_node *ni)
205{
206
207 free(ni->ni_rctls, M_80211_RATECTL);
207 IEEE80211_FREE(ni->ni_rctls, M_80211_RATECTL);
208}
209
210static __inline int
211bucket(int pktlen)
212{
213 int i, top, thridx;
214
215 for (i = 0, top = IEEE80211_RSSADAPT_BKT0;

--- 138 unchanged lines hidden ---
208}
209
210static __inline int
211bucket(int pktlen)
212{
213 int i, top, thridx;
214
215 for (i = 0, top = IEEE80211_RSSADAPT_BKT0;

--- 138 unchanged lines hidden ---