From owner-svn-src-projects@FreeBSD.ORG Wed Jul 8 11:22:06 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B950B106564A; Wed, 8 Jul 2009 11:22:04 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A869B8FC17; Wed, 8 Jul 2009 11:22:04 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n68BM4Tq049431; Wed, 8 Jul 2009 11:22:04 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n68BM4D5049428; Wed, 8 Jul 2009 11:22:04 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200907081122.n68BM4D5049428@svn.freebsd.org> From: Rui Paulo Date: Wed, 8 Jul 2009 11:22:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r195446 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jul 2009 11:22:06 -0000 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