socsvn commit: r256489 - soc2013/ccqin/head/sys/net80211
ccqin at FreeBSD.org
ccqin at FreeBSD.org
Sun Aug 25 10:25:21 UTC 2013
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 at 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 at 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_ */
More information about the svn-soc-all
mailing list