Date: Wed, 8 Jul 2009 11:22:04 +0000 (UTC) From: Rui Paulo <rpaulo@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r195446 - projects/mesh11s/sys/net80211 Message-ID: <200907081122.n68BM4D5049428@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907081122.n68BM4D5049428>