svn commit: r195446 - projects/mesh11s/sys/net80211
Rui Paulo
rpaulo at FreeBSD.org
Wed Jul 8 11:22:06 UTC 2009
Author: rpaulo
Date: Wed Jul 8 11:22:04 2009
New Revision: 195446
URL: http://svn.freebsd.org/changeset/base/195446
Log:
First try at stablizing mesh api/abi.
Sponsored by: The FreeBSD Foundation
Modified:
projects/mesh11s/sys/net80211/ieee80211_mesh.c
projects/mesh11s/sys/net80211/ieee80211_mesh.h
Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.c Wed Jul 8 11:21:07 2009 (r195445)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Wed Jul 8 11:22:04 2009 (r195446)
@@ -2383,6 +2383,7 @@ mesh_ioctl_get80211(struct ieee80211vap
struct ieee80211_mesh_state *ms = vap->iv_mesh;
uint8_t tmpmeshid[IEEE80211_NWID_LEN];
struct ieee80211_mesh_route *rt;
+ struct ieee80211ireq_mesh_route *imr;
size_t len, off;
uint8_t *p;
int error;
@@ -2412,10 +2413,10 @@ mesh_ioctl_get80211(struct ieee80211vap
len = 0;
MESH_RT_LOCK(ms);
TAILQ_FOREACH(rt, &ms->ms_routes, rt_next) {
- len += sizeof(*rt);
+ len += sizeof(*imr);
}
MESH_RT_UNLOCK(ms);
- if (len > ireq->i_len || ireq->i_len < sizeof(*rt)) {
+ if (len > ireq->i_len || ireq->i_len < sizeof(*imr)) {
ireq->i_len = len;
return ENOMEM;
}
@@ -2428,8 +2429,15 @@ mesh_ioctl_get80211(struct ieee80211vap
TAILQ_FOREACH(rt, &ms->ms_routes, rt_next) {
if (off >= len)
break;
- memcpy(p + off, rt, sizeof(*rt));
- off += sizeof(*rt);
+ irt = (struct ieee80211req_mesh_route *)(p + off);
+ IEEE80211_ADDR_COPY(imr->imr_dest,
+ rt->rt_dest);
+ IEEE80211_ADDR_COPY(imr->imr_nexthop,
+ rt->rt_nexthop);
+ imr->imr_metric = rt->rt_metric;
+ imr->imr_nhops = rt->rt_nhops;
+ imr->imr_lifetime = rt->rt_lifetime;
+ off += sizeof(*imr);
}
MESH_RT_UNLOCK(ms);
error = copyout(p, (uint8_t *)ireq->i_data,
Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.h
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.h Wed Jul 8 11:21:07 2009 (r195445)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.h Wed Jul 8 11:22:04 2009 (r195446)
@@ -372,7 +372,11 @@ struct ieee80211_meshcntl_ae11 {
} __packed;
struct ieee80211req_mesh_routes {
-/* XXX TBD */
+ uint8_t imr_dest[IEEE80211_ADDR_LEN];
+ uint8_t imr_nexthop[IEEE80211_ADDR_LEN];
+ uint32_t imr_metric;
+ uint16_t imr_nhops;
+ uint32_t imr_lifetime;
};
#ifdef _KERNEL
More information about the svn-src-projects
mailing list