[Click] station.click complaining about FromHost, same dev_name
Eddie Kohler
kohler at cs.ucla.edu
Wed May 11 20:39:13 EDT 2005
The assertion looks bad, but examining the code, FromHost will fail to
initialize with an unspecified error when it cannot open the
/dev/net/tun file. Is your kernel compiled with the universal TUN/TAP
driver enabled? Are you running Click as root (maybe it's a permission
error)? I've checked in a change that will report an error message for
this case, which might help track things down further.
Eddie
On May 11, 2005, at 1:10 AM, Sridhar Srinivasan wrote:
> Hi,
>
> I seem to be seeing the same problem as the person below. I am using
> the madwifi.stripped driver with a netgear wag511. I have a 2.4.20
> kernel and I patched it with both wifi and non-wifi patches.
> /sbin/iwconfig ath0 works. /sbin/iwlist ath0 scan turns up nothing
> (though that may be normal).
>
> My exact error when running 'click station.click' is:
>
> station.click:109: While initializing 'FromHost at 41 :: FromHost':
> unspecified error
> station.click:106: While initializing 'ToHost at 40 :: ToHost':
> ToHost(station) requires an initialized FromHost with the same
> dev_name
> Router could not be initialized!
> click: ../lib/routerthread.cc:104: RouterThread::~RouterThread():
> Assertion `empty()' failed.
> Aborted
>
>
> When I run the one-line click file that the person below is using, I
> get the same error he did. Of the two solutions suggested below,
> option 2 does not seem possible give this on the madwifi.stripped
> page:
> <snippet>
> Next, go to your build director and run the following command
>
> $ CLICKDIR/click_dir/configure --enable-wifi --disable-linuxmodule
> $ gmake all install
> </snippet>
> Notice the disable-linuxmodule.
>
> So how do I disable linux routing? Is that my only problem given the
> station.click errors above?
>
> I have been stuck on this for a few days, so any help is appreciated.
> Thanks a lot!
> Sridhar
>
> ---------------------------------
> Thread follows...
> ---------------------------------
>
> David,
>
> There is a FromHost userlevel element, look in
> <click>/elements/userlevel. As far as I know FromHost allocates the
> tun device required by ToHost.
>
> Regards
>
> Beyers
>
>
> On Sun, 20 Feb 2005 10:17:53 +0100, David Fusté
> <f2308030 at est.fib.upc.edu> wrote:
>> Ok Beyers,
>>
>> If I choose option #1 (Disable routing on Linux and have Click do the
>> routing/switching), I noticed to pass packets from device to linux I
>> have to use the ToHost element with a tun/tap device:
>>
>> TOHOST MAN PAGE:
>>> ToHost.u: Click element; sends packets to Linux via Universal TUN/TAP
>> device.
>>> SYNOPSIS: ToHost([DEVNAME])
>>> DESCRIPTION:
>>> Hands packets to the ordinary Linux protocol stack. Expects packets
>> with Ethernet headers.
>>> You should probably give Linux IP packets addressed to the local
>> machine (including broadcasts), and a copy of each ARP reply.
>>> ToHost requires an initialized FromHost(n) with the same DEVNAME.
>>
>> My another question is: why (like the last line says) does ToHost
>> require an initialized FromHost(n) with the same DEVNAME?
>> Yes, I know FromHost element installs a fake interface called DEVNAME,
>> and changes the routing table so that every packet destined for
>> ADDR/MASK is sent through that interface, but it isn't possible use a
>> FromHost element because I'm in user level mode and FromHost element
>> is
>> only available in kernel mode! (don't read my first email, there is a
>> mistake related to this)
>>
>> Two thanks!
>> David
>>
>>
>> Beyers Cronje wrote:
>>
>>> Hi David,
>>>
>>> Userlevel Click runs ontop of linux as a packet sniffer, in other
>>> words the kernel still processes each packet. Each packet received
>>> gets processed twice, once for linux, once for click.
>>>
>>> You have a couple of options
>>>
>>> 1) Disable routing on Linux and have Click do the routing/switching
>>> 2) Use Click kernel module
>>>
>>> Beyers
>>>
>>>
>>> On Sat, 19 Feb 2005 15:21:02 +0100, David Fusté
>>> <f2308030 at est.fib.upc.edu> wrote:
>>>
>>>
>>>> Hi,
>>>> I'm novice in Click and I have simple questions. I'm working with
>>>> click
>>>> in user level mode.
>>>>
>>>> This is my config file:
>>>>
>>>> % cat prova.click
>>>> FromDevice(wlan0)->Print(ok)->Discard;
>>>> %
>>>>
>>>> When I run it, obviously, click starts to capture packets. Then,
>>>> when I
>>>> open the browser, click starts to print the packets.
>>>> My first question is: why does the browser correctly load the web
>>>> pages?
>>>> i.e. why doesn't click discard the packets?
>>>> And in relation to this, since click doesn't discard packets and it
>>>> pass
>>>> them to linux, what's the meaning of the ToHost(DEVNAME) element?
>>>>
>>>> And it isn't all, if I run this other config file:
>>>>
>>>> % cat prova2.click
>>>> FromDevice(wlan0)->Print(ok)->ToHost(wlan0);
>>>> % click prova2.click
>>>> prova2.click:1: While initializing 'ToHost at 3 :: ToHost':
>>>> ToHost(wlan0) requires an initialized FromHost with the same
>>>> dev_name
>>>> Router could not be initialized!
>>>> %
>>>>
>>>> why does ToHost element need a FromHost element? I only want to
>>>> capture
>>>> packets from device to linux, not from linux to device.
>>>> Moreover, there isn't a FromHost element in user level mode! Why
>>>> does
>>>> ToHost user level element want a FromHost kernel element? It isn't
>>>> possible.
>>>>
>>>> I don't know where I am wrong. Help me please.
>>>> Thank you!
>>>>
>>>> David
>>>> _______________________________________________
>>>> click mailing list
>>>> click at amsterdam.lcs.mit.edu
>>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>>>>
>>>>
>>>>
>>
>>
>
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
More information about the click
mailing list