aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2016-09-09 04:47:48 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2016-09-09 04:47:48 +0000
commitc028fb509849918381558c9c887714252d54d623 (patch)
tree641f1e7ef8fb5d126e4cec066631a38d45ee8a90 /sys/net80211
parent90d3a30a16a30741ef0bd7029e5b3065892d995b (diff)
downloadsrc-c028fb509849918381558c9c887714252d54d623.tar.gz
src-c028fb509849918381558c9c887714252d54d623.zip
[net80211] add in ToA/ToD based location mbuf tags for some experimenting.
Notes
Notes: svn path=/head/; revision=305638
Diffstat (limited to 'sys/net80211')
-rw-r--r--sys/net80211/ieee80211_freebsd.c36
-rw-r--r--sys/net80211/ieee80211_freebsd.h10
2 files changed, 46 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_freebsd.c b/sys/net80211/ieee80211_freebsd.c
index 0333e9b0f190..e685e1d37d60 100644
--- a/sys/net80211/ieee80211_freebsd.c
+++ b/sys/net80211/ieee80211_freebsd.c
@@ -530,6 +530,42 @@ ieee80211_get_rx_params(struct mbuf *m, struct ieee80211_rx_stats *rxs)
}
/*
+ * Add TOA parameters to the given mbuf.
+ */
+int
+ieee80211_add_toa_params(struct mbuf *m, const struct ieee80211_toa_params *p)
+{
+ struct m_tag *mtag;
+ struct ieee80211_toa_params *rp;
+
+ mtag = m_tag_alloc(MTAG_ABI_NET80211, NET80211_TAG_TOA_PARAMS,
+ sizeof(struct ieee80211_toa_params), M_NOWAIT);
+ if (mtag == NULL)
+ return (0);
+
+ rp = (struct ieee80211_toa_params *)(mtag + 1);
+ memcpy(rp, p, sizeof(*rp));
+ m_tag_prepend(m, mtag);
+ return (1);
+}
+
+int
+ieee80211_get_toa_params(struct mbuf *m, struct ieee80211_toa_params *p)
+{
+ struct m_tag *mtag;
+ struct ieee80211_toa_params *rp;
+
+ mtag = m_tag_locate(m, MTAG_ABI_NET80211, NET80211_TAG_TOA_PARAMS,
+ NULL);
+ if (mtag == NULL)
+ return (0);
+ rp = (struct ieee80211_toa_params *)(mtag + 1);
+ if (p != NULL)
+ memcpy(p, rp, sizeof(*p));
+ return (1);
+}
+
+/*
* Transmit a frame to the parent interface.
*/
int
diff --git a/sys/net80211/ieee80211_freebsd.h b/sys/net80211/ieee80211_freebsd.h
index 438ae7328730..87069c1ca9d3 100644
--- a/sys/net80211/ieee80211_freebsd.h
+++ b/sys/net80211/ieee80211_freebsd.h
@@ -331,6 +331,8 @@ void ieee80211_process_callback(struct ieee80211_node *, struct mbuf *, int);
#define NET80211_TAG_RECV_PARAMS 2
+#define NET80211_TAG_TOA_PARAMS 3
+
struct ieee80211com;
int ieee80211_parent_xmitpkt(struct ieee80211com *, struct mbuf *);
int ieee80211_vap_xmitpkt(struct ieee80211vap *, struct mbuf *);
@@ -656,6 +658,14 @@ int ieee80211_add_rx_params(struct mbuf *m,
const struct ieee80211_rx_stats *rxs);
int ieee80211_get_rx_params(struct mbuf *m,
struct ieee80211_rx_stats *rxs);
+
+struct ieee80211_toa_params {
+ int request_id;
+};
+int ieee80211_add_toa_params(struct mbuf *m,
+ const struct ieee80211_toa_params *p);
+int ieee80211_get_toa_params(struct mbuf *m,
+ struct ieee80211_toa_params *p);
#endif /* _KERNEL */
/*