Date: Sun, 25 Aug 2013 10:25:21 GMT From: ccqin@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r256489 - soc2013/ccqin/head/sys/net80211 Message-ID: <201308251025.r7PAPLFx099865@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ccqin Date: Sun Aug 25 10:25:21 2013 New Revision: 256489 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=256489 Log: amendment to last commit. Added: soc2013/ccqin/head/sys/net80211/ieee80211_ratectl_none.c - copied unchanged from r256487, soc2013/ccqin/head/sys/net80211/ieee80211_rc_none.c soc2013/ccqin/head/sys/net80211/ieee80211_ratectl_none.h Deleted: soc2013/ccqin/head/sys/net80211/ieee80211_rc_none.c Copied: soc2013/ccqin/head/sys/net80211/ieee80211_ratectl_none.c (from r256487, soc2013/ccqin/head/sys/net80211/ieee80211_rc_none.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2013/ccqin/head/sys/net80211/ieee80211_ratectl_none.c Sun Aug 25 10:25:21 2013 (r256489, copy of r256487, soc2013/ccqin/head/sys/net80211/ieee80211_rc_none.c) @@ -0,0 +1,150 @@ +/*- + * Copyright (c) 2010 Bernhard Schmidt <bschmidt@FreeBSD.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include "opt_wlan.h" + +#include <sys/param.h> +#include <sys/kernel.h> +#include <sys/module.h> +#include <sys/socket.h> +#include <sys/sysctl.h> + +#include <net/if.h> +#include <net/if_media.h> + +#ifdef INET +#include <netinet/in.h> +#include <netinet/if_ether.h> +#endif + +#include <net80211/ieee80211_var.h> +#include <net80211/ieee80211_ratectl.h> + +static void +none_init(struct ieee80211vap *vap, uint32_t capabilities) +{ + struct ieee80211_node *none; + + KASSERT(vap->iv_rs == NULL, ("%s called multiple times", __func__)); + + none = vap->iv_rs = malloc(sizeof(struct ieee80211_none), + M_80211_RATECTL, M_NOWAIT|M_ZERO); + if (none == NULL) { + if_printf(vap->iv_ifp, "couldn't alloc ratectl structure\n"); + return; + } + + struct ieee80211_rc_stat * irs = IEEE80211_RATECTL_STAT(vap); + irs->irs_capabilities = capabilities; + + /* ... */ +} + +static void +none_deinit(struct ieee80211vap *vap) +{ + free(vap->iv_rs, M_80211_RATECTL); +} + +static void +none_node_init(struct ieee80211_node *ni) +{ + const struct ieee80211_rateset *rs = NULL; + struct ieee80211vap *vap = ni->ni_vap; + struct ieee80211_amrr *amrr = vap->iv_rs; + struct ieee80211_none_node *non; + uint8_t rate; + + if (ni->ni_rctls == NULL) { + ni->ni_rctls = non = malloc(sizeof(struct ieee80211_none_node), + M_80211_RATECTL, M_NOWAIT|M_ZERO); + if (non == NULL) { + if_printf(vap->iv_ifp, "couldn't alloc per-node ratectl " + "structure\n"); + return; + } + } else + non = ni->ni_rctls; + + non->non_none = none; + + /* ... */ + + ni->ni_txrate = ni->ni_rates.rs_rates[0] & IEEE80211_RATE_VAL; +} + +static void +none_node_deinit(struct ieee80211_node *ni) +{ +} + +static int +none_rate(struct ieee80211_node *ni, void *arg __unused, uint32_t iarg __unused) +{ + int rix = 0; + + ni->ni_txrate = ni->ni_rates.rs_rates[rix] & IEEE80211_RATE_VAL; + return rix; +} + +static void +none_tx_complete(const struct ieee80211vap *vap, + const struct ieee80211_node *ni, int ok, + void *arg1, void *arg2 __unused) +{ +} + +static void +none_tx_update(const struct ieee80211vap *vap, const struct ieee80211_node *ni, + void *arg1, void *arg2, void *arg3) +{ +} + +static void +none_setinterval(const struct ieee80211vap *vap, int msecs) +{ +} + +/* number of references from net80211 layer */ +static int nrefs = 0; + +static const struct ieee80211_ratectl none = { + .ir_name = "none", + .ir_attach = NULL, + .ir_detach = NULL, + .ir_init = none_init, + .ir_deinit = none_deinit, + .ir_node_init = none_node_init, + .ir_node_deinit = none_node_deinit, + .ir_rate = none_rate, + .ir_tx_complete = none_tx_complete, + .ir_tx_update = none_tx_update, + .ir_setinterval = none_setinterval, +}; +IEEE80211_RATECTL_MODULE(ratectl_none, 1); +IEEE80211_RATECTL_ALG(none, IEEE80211_RATECTL_NONE, none); Added: soc2013/ccqin/head/sys/net80211/ieee80211_ratectl_none.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2013/ccqin/head/sys/net80211/ieee80211_ratectl_none.h Sun Aug 25 10:25:21 2013 (r256489) @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2013 Chenchong Qin <ccqin@FreeBSD.org> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef _NET80211_IEEE80211_RATECTL_NONE_H_ +#define _NET80211_IEEE80211_RATECTL_NONE_H_ + +#include <net80211/ieee80211_ratectl.h> + +/* + * Rate control settings. + */ + +struct ieee80211_none { + struct ieee80211_rc_stat none_stat; + /* other stuffs */ +}; + +/* + * Rate control state for a given node. + */ +struct ieee80211_none_node { + struct ieee80211_none *non_none; +}; + +#endif /* _NET80211_IEEE80211_RATECTL_NONE_H_ */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308251025.r7PAPLFx099865>