diff options
author | Adrian Chadd <adrian@FreeBSD.org> | 2016-09-09 04:47:48 +0000 |
---|---|---|
committer | Adrian Chadd <adrian@FreeBSD.org> | 2016-09-09 04:47:48 +0000 |
commit | c028fb509849918381558c9c887714252d54d623 (patch) | |
tree | 641f1e7ef8fb5d126e4cec066631a38d45ee8a90 | |
parent | 90d3a30a16a30741ef0bd7029e5b3065892d995b (diff) | |
download | src-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
-rw-r--r-- | sys/net80211/ieee80211_freebsd.c | 36 | ||||
-rw-r--r-- | sys/net80211/ieee80211_freebsd.h | 10 |
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 */ /* |