From owner-freebsd-net@FreeBSD.ORG Wed Dec 1 08:22:23 2010 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3FA09106566C for ; Wed, 1 Dec 2010 08:22:23 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-gw0-f54.google.com (mail-gw0-f54.google.com [74.125.83.54]) by mx1.freebsd.org (Postfix) with ESMTP id E8E258FC13 for ; Wed, 1 Dec 2010 08:22:22 +0000 (UTC) Received: by gwj21 with SMTP id 21so3438202gwj.13 for ; Wed, 01 Dec 2010 00:22:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=ugqOMDZBmSbUJA9ITDixSzFYn+0q6wZvVbHkmT2Rdkw=; b=unRO+Px3Ryb3KqWeW0sx0t+h5Rkohfg6FBdiGrhFFcAE0bEnhPCyMoYkxkyAI5uJoT c/HsTB5Z+QGZN8K/jh9QGccpHsGK7iR/15nXeqhfbIR2lT9Z7qO6Wggstzr/wYThUUE9 EQ33aqxI/4xcDOD6LwGe1zLMakuuZ+3bntXow= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=ee0HbzBH04q5Jc2pIk0JfeTV7DHiwjkoFliP/ytBUT7xIv6k9zvwM6sGfCUmSJNdP3 CXlYSTKzGlSPyc80F/tw+pmQZVWKIh93kkWyTaZ/C5zqszqzTC6R3Wbe3Cyaoql6CK33 3GMT/igIPHgqd7Pnyozrj5wC09kxBo3VvcxbY= MIME-Version: 1.0 Received: by 10.90.61.2 with SMTP id j2mr1169991aga.205.1291191741616; Wed, 01 Dec 2010 00:22:21 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.90.88.17 with HTTP; Wed, 1 Dec 2010 00:22:21 -0800 (PST) In-Reply-To: References: Date: Wed, 1 Dec 2010 16:22:21 +0800 X-Google-Sender-Auth: ErguLPqlFXVujHLhczwE_nMvNmI Message-ID: From: Adrian Chadd To: Monthadar Al Jaberi Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-net@freebsd.org Subject: Re: Bridging mesh with wired not working? X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Dec 2010 08:22:23 -0000 The mesh code is really a proof of concept. It definitely needs someone to actually sit down and use it, then document all of the things that aren't working. I tried it for about 5 minutes and discovered that although it seems to basically work, MAC addresses migrating from wired<->wireless didn't migrate destinations in the mesh table, so the mesh network would treat it incorrectly. I ran out of time (my spare time is focused on understanding and implementing Atheros 11n at the moment) so I had to stop. If you'd like to be the person who sits down and tries to use the meshing stuff then please, by all means. :-) Adrian On 1 December 2010 15:48, Monthadar Al Jaberi wrote: > On Wed, Dec 1, 2010 at 5:02 AM, Adrian Chadd wrote: >> I believe that's supposed to work. :-) > > Did you try it? on current? I am running 201010 Current. From the code > I see some comments like "/* XXX add support for proxied addresses > */". For me it looks like the code for proxy is half done, if I may > say so myself :P > > see this method in net80211/ieee80211_mesh.c > /* > =A0* Iterate the routing table and locate the next hop. > =A0*/ > static struct ieee80211_node * > mesh_find_txnode(struct ieee80211vap *vap, > =A0 =A0const uint8_t dest[IEEE80211_ADDR_LEN]) > { > ... > if ((rt->rt_flags & IEEE80211_MESHRT_FLAGS_VALID) =3D=3D 0 || > =A0 =A0 =A0 =A0 =A0 =A0(rt->rt_flags & IEEE80211_MESHRT_FLAGS_PROXY)) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_MESH= , dest, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"%s: !valid or proxy, flags 0x%x",= __func__, rt->rt_flags); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* XXX stat */ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return NULL; > } > ... > } > > it stops if the dest node is a proxy. Then after failing in forwarding > it goes out (=3D=3D discard frame?), I put a print message there to verif= y > that it goes out: > static int > mesh_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int nf) > { > ... > /* > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 * Potentially forward packet. =A0See tabl= e s36 (p140) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 * for the rules. =A0XXX tap fwd'd packets= not for us? > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 */ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (dir =3D=3D IEEE80211_FC1_DIR_FROMDS || > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0!mesh_isucastforme(vap, wh, mc)) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0mesh_forward(vap, m, mc); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (dir =3D=3D IEEE80211_F= C1_DIR_DSTODS) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto out; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* NB: fall thru to delive= r mcast frames locally */ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} > ... > } > > I am puzzeled... everyone says it works, did I miss something?! :P > > > br, > >> >> >> adrian >> >> On 30 November 2010 15:38, Monthadar Al Jaberi wro= te: >>> Hi, >>> >>> Can anyone confirm that bridging a mesh with a wired interface is not >>> working? I want to make sure that it is not a problem from my side. >>> >>> When I ping from outside the mesh I get: "!valid or proxy" and "frame >>> not fwd'd, no path" from the debug information. >>> >>> My setup is simple >>> >>> STA --- MPP )) -- (( MP >>> >>> STA: Ubuntu PC >>> MPP: RSPRO mesh portal bridging wired and mesh >>> MP: RSPRO mesh point >>> >>> ifconfig for MPP: >>> arge0: flags=3D8943 >>> metric 0 mtu 1500 >>> =A0 =A0 =A0 =A0options=3D80000 >>> =A0 =A0 =A0 =A0ether XX:XX:XX:XX:XX:XX >>> =A0 =A0 =A0 =A0media: Ethernet autoselect (100baseTX ) >>> =A0 =A0 =A0 =A0status: active >>> wlan0: flags=3D8943 >>> metric 0 mtu 1500 >>> =A0 =A0 =A0 =A0ether YY:YY:YY:YY:YY:YY >>> =A0 =A0 =A0 =A0inet 192.168.1.91 netmask 0xffffff00 broadcast 192.168.1= .255 >>> =A0 =A0 =A0 =A0media: IEEE 802.11 Wireless Ethernet autoselect mode 11g= >>> =A0 =A0 =A0 =A0status: running >>> =A0 =A0 =A0 =A0meshid monty channel 1 (2412 MHz 11g) bssid 00:15:6d:67:= 21:8d >>> =A0 =A0 =A0 =A0country US ecm authmode OPEN privacy OFF txpower 20 scan= valid 60 >>> =A0 =A0 =A0 =A0protmode CTS wme burst meshttl 31 meshpeering meshforwar= d >>> =A0 =A0 =A0 =A0meshmetric AIRTIME meshpath HWMP hwmprootmode DISABLED h= wmpmaxhops 31 >>> bridge0: flags=3D28943 >>> metric 0 mtu 1500 >>> =A0 =A0 =A0 =A0ether ZZ:ZZ:ZZ:ZZ:ZZ:ZZ >>> =A0 =A0 =A0 =A0id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay= 15 >>> =A0 =A0 =A0 =A0maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200 >>> =A0 =A0 =A0 =A0root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 >>> =A0 =A0 =A0 =A0member: arge0 flags=3D143 >>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ifmaxaddr 0 port 4 priority 128 path cos= t 200000 >>> =A0 =A0 =A0 =A0member: wlan0 flags=3D143 >>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ifmaxaddr 0 port 7 priority 128 path cos= t 370370 >>> >>> br, >>> -- >>> //Monthadar Al Jaberi >>> _______________________________________________ >>> freebsd-net@freebsd.org mailing list >>> http://lists.freebsd.org/mailman/listinfo/freebsd-net >>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >>> >> > > > > -- > //Monthadar Al Jaberi > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >