Date: Mon, 17 Jan 2011 13:43:01 +0800 From: Adrian Chadd <adrian@freebsd.org> To: Monthadar Al Jaberi <monthadar@gmail.com> Cc: freebsd-net@freebsd.org, freebsd-mips@freebsd.org, "Jayachandran C." <c.jayachandran@gmail.com> Subject: Re: capturing packet from wlan0 with netgraph? Message-ID: <AANLkTi=GPxqSkEt4jkFh%2Bnr2%2BbmN7oTB7cJ3cWqtEw5R@mail.gmail.com> In-Reply-To: <AANLkTik4HtAX7MtT4dVbHku-bfVLun_C%2BnRsbL13SrHu@mail.gmail.com> References: <AANLkTi=s45woPE21exHgArAyAaO2sW%2BeR=%2BumB6zZcr5@mail.gmail.com> <AANLkTikC1nYudfM91rPxFfgCj83m8YbdagedeydyBaue@mail.gmail.com> <AANLkTikgdf4Uy20NF6vQ=-NWGYS4LDdmypKng=2Bg2ME@mail.gmail.com> <AANLkTi=Wu=sgH76vHx-4CmaUgm_H9FMA9Nuvbgk4Gkzz@mail.gmail.com> <AANLkTik4HtAX7MtT4dVbHku-bfVLun_C%2BnRsbL13SrHu@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, Please file a PR about this and the output of "show registers". I bet that the ip pointer isn't aligned at that point in the code. Whatever is passing the packet to the IP layer should be re-aligning things beforehand. (eg, look at what the ethernet ipfw hook code does - if the ether type is ipv4/ipv6, it actually realigns the packets before passing it back up the stack.) Adrian On 13 January 2011 16:25, Monthadar Al Jaberi <monthadar@gmail.com> wrote: > sorry but I have not worked with this for a while now, After some > thoughts I dont think using netgraph will do me any good, because > traffic can still flow through the antennas of the cards. > > If you think it would still be useful to see more ddb prompt for other > scenarios I am happy to try and supply that, but I won't have some > free time until late tomorrow :) > > thnx again! > > On Thu, Jan 13, 2011 at 7:53 AM, Adrian Chadd <adrian@freebsd.org> wrote: >> I've encountered this before. >> >> The mbuf's there aren't always aligned at this point. >> >> >> >> Adrian >> >> On 13 January 2011 14:17, Jayachandran C. <c.jayachandran@gmail.com> wro= te: >>> On Thu, Jan 13, 2011 at 11:08 AM, Adrian Chadd <adrian@freebsd.org> wro= te: >>>> Find out what the address is that's causing the problem. There's >>>> plenty of places where unaligned mbuf's exist in the IP code and >>>> aren't correctly realigned before being touched. >>>> >>>> MIPS people - is "address error" an alignment problem? >>> >>> Address error can be an alignment problem (or some other cases like >>> accessing kernel address from userspace). >>> >>> But looking at the crash, it certainly seems like in ip_input, the line >>> =A0 =A0 435 =A0 =A0 =A0 =A0 if (ip->ip_v !=3D IPVERSION) { >>> >>> got a bad address for the ip pointer. >>> >>> The output of 'show registers' at the ddb prompt would be useful to >>> debug further. >>> >>> >>>> On 30 December 2010 21:47, Monthadar Al Jaberi <monthadar@gmail.com> w= rote: >>>>> Hi, >>>>> >>>>> I have an idea in my head and would like to know if it is possible. >>>>> >>>>> I want to simulate and test the net80211 mesh code in FreeBSD Current= . >>>>> I have an RSPRO board with 3 atheros cards. >>>>> >>>>> My =A0basic idea is to run three jails each having its own network >>>>> stack, and redirect all data packets coming out/in of the wlan driver >>>>> to a Server running a home brew application that simulates the medium= . >>>>> That would be great, right? Realtime unchanged code to test, running >>>>> different application in their own jails. >>>>> >>>>> So first I started to test netgraph with a simple test case, I want t= o >>>>> receive all packets from one wireless card and see the data in >>>>> wireshark or tcpdump... >>>>> >>>>> This is my netgraph code: >>>>> mkpeer wlan0: hub lower hook0 >>>>> name wlan0:lower hub >>>>> connect hub: wlan0: hook1 upper >>>>> connect hub: arge0: hook2 lower >>>>> >>>>> >>>>> So if I understood man ng_ether correct, this should capture >>>>> everything from wlan and redirect to ethernet cable. >>>>> >>>>> But I get a panic after a couple of seconds: >>>>> Trap cause =3D 4 (address error (load or I-fetch) - kernel mode) >>>>> [ thread pid 11 tid 100037 ] >>>>> Stopped at =A0 =A0 =A0ip_input+0xd8: =A0lw =A0 =A0 =A0v0,0(s0) >>>>> >>>>> I suspect that data flows to all hooks of the hub, and that is a bad >>>>> thing right? Need to create a special hub node to filter data? Or >>>>> maybe use two ethernet cables for out resp. in? >>>>> >>>>> Is it even possible to do what I want? Or am I thinking wrong? And is >>>>> there a simpler way? >>>>> >>>>> What I want is to test mesh code in a bunch of FreeBSD systems withou= t >>>>> moving the hardware, one could just stack RSPROs and connected them a >>>>> big switch and a PC. >>>>> Hope was I clear in my thoughts. >>>>> >>>>> Best regards, >>>>> -- >>>>> //Monthadar Al Jaberi >>> >>> JC. >>> >> > > > > -- > //Monthadar Al Jaberi >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=GPxqSkEt4jkFh%2Bnr2%2BbmN7oTB7cJ3cWqtEw5R>