Hey, today i tried FromHost with your patch applied. The ethernet address is now set as expected. I could not yet test the element because of possible errors in my click script. I will check this tomorrow.
I tried to fix the problem with not being able to set the ip address as well. Since devinet_ioctl seems no longer available in recent kernels, i tried to use inet_ioctl instead, which passes through to devinet_ioctl for certain commands. inet_ioctl expects a struct socket as an argument however, which i do not know how to create and bind to the correct interface. I tried to fill in only the struct sock *sk part, obtained through inet_ctl_sock_create, as the socket itself should never be used by inet_ioctl. The machine crashed with a kernel panic on testing. Further investigation will follow. As i'm new to kernel level programming, figuring out the problem may take some time, however. Sascha Am 15.11.2010 22:50, schrieb Joonwoo Park: > CC'ing Eddie. > > On Sun, Nov 14, 2010 at 2:32 PM, Joonwoo Park <[email protected]> wrote: >> Hi, >> >> Thanks for testing. Can you try this patch once again? >> It seems to me linuxmodule FromHost never allowed to set ethernet >> address by it's argument if type is IP. >> It has been clearing ethernet address with 0 always after parsing argument. >> >> Eddie, >> Would you mind to shed on me why FromHost is doing that? >> >> Thanks, >> Joonwoo >> >> --- >> diff --git a/elements/linuxmodule/fromhost.cc >> b/elements/linuxmodule/fromhost.cc >> index 8b76672..6bde049 100644 >> --- a/elements/linuxmodule/fromhost.cc >> +++ b/elements/linuxmodule/fromhost.cc >> @@ -205,9 +205,7 @@ FromHost::configure(Vector<String> &conf, >> ErrorHandler *errh) >> } >> >> // set type >> - if (type == "IP") >> - _macaddr = EtherAddress(); >> - else if (type != "ETHER" && type != "") >> + if (type != "ETHER" && type != "IP") >> return errh->error("bad TYPE"); >> >> // set up queue >> --- >> >> On Sun, Nov 14, 2010 at 2:37 AM, Sascha Alexander Jopen >> <[email protected]> wrote: >>> Hey, >>> >>> thank you for the patch, Joonwoo. >>> Now i can start the click instance without further crashes. >>> I have problems setting the encap type and mac address of the fake >>> device, though. Although i specified a mac address in the click script, >>> the encap type of the tun/tap interface is UNSPEC with no mac address set. >>> Is it possible to set these parameters manually after the click kernel >>> module is installed? Will click detect those changes? >>> Not being able to set the fake interfaces ip address shouldn'z be that >>> much of a problem, i think. Is this due to missing ioctl's in newer >>> kernels or what is the problem here? >>> >>> Thanks, >>> Sascha >>> >>> Am 14.11.2010 07:34, schrieb Joonwoo Park: >>>> Hello, >>>> >>>> Can you please try attached patch to see if it works for you? >>>> You have to revert patch 07/12 if you applied already to apply attached >>>> patch. >>>> >>>> p.s I couldn't find a nice way to set ip address from kernel module >>>> without patching kernel therefore you have to set ip address of your >>>> device after configuring FromHost. (You won't be able to set it by >>>> FromHost argument) >>>> Setting ethernet address by FromHost argument should be still working. >>>> >>>> Joonwoo. >>>> >>>> On Tue, Nov 9, 2010 at 9:25 PM, Joonwoo Park <[email protected]> wrote: >>>>> Hi, >>>>> >>>>> Thanks for call trace and simplified config. >>>>> I should have allocated netdev_ops and assign it to dev->netdev_ops. >>>>> It seem to me dev->netdev_ops is NULL. >>>>> My bad. I'll fix and submit new patch as soon as I have chance. >>>>> >>>>> Joonwoo >>>>> >>>>> On Tue, Nov 9, 2010 at 3:30 PM, Sascha Alexander Jopen >>>>> <[email protected]> wrote: >>>>>> Hi, >>>>>> >>>>>> i finally removed the mentioned 'false' requirement and the element was >>>>>> compiled and integrated into the kernel module. When installing the >>>>>> module with a click script using click-install, the module crashes with >>>>>> a null pointer dereference, however. I didn't have the time to do >>>>>> further tests with simpler click scripts. I will check this within the >>>>>> next days. >>>>>> Attached you will find the kernel call trace for this null pointer >>>>>> dereference. The corresponding click part: >>>>>> >>>>>> AddressInfo(localDevice DEVNAME:ip/24 DEVNAME:eth); >>>>>> FromHost(fake0, localDevice:ipnet, ETHER localDevice:eth, TYPE IP) -> ... >>>>>> >>>>>> DEVNAME will be replaced by an existing network device. >>>>>> Maybe this is sufficient for someone to detect the problem. >>>>>> >>>>>> Sascha >>>>>> >>>>>> Am 09.11.2010 22:27, schrieb Sascha Alexander Jopen: >>>>>>> Hello, >>>>>>> >>>>>>> the FromHost element simply does not exist after compiling. ToHost, >>>>>>> ToHostSniffers and ToDevice, as well as FromDevice, are compiled, >>>>>>> FromHost not. >>>>>>> When feeding a click script to click-install the following error is >>>>>>> emitted: >>>>>>> <stdin>:144: unknown element class 'FromHost' >>>>>>> >>>>>>> fromhost.cc contains >>>>>>> ELEMENT_REQUIRES(AnyDevice linuxmodule false) >>>>>>> The 'false' requirement, may be this prevents compiling this element? >>>>>>> >>>>>>> Sascha >>>>>>> >>>>>>> >>>>>>> >>>>>>> Am 09.11.2010 22:06, schrieb Joonwoo Park: >>>>>>>> Hi Sascha, >>>>>>>> >>>>>>>> I guess I'm not quite following FromHost issue here. >>>>>>>> >>>>>>>> Are you having build failure or any other problem? >>>>>>>> When I submitted patchless patches, I also built and fixes FromHost >>>>>>>> element and confirmed it's building. I haven't tested element though. >>>>>>>> Did you apply '07/12 FromHost: netdev_ops for linux 2.6.33+'? >>>>>>>> http://www.mail-archive.com/[email protected]/msg04242.html >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Joonwoo >>>>>>>> >>>>>>>> On Tue, Nov 9, 2010 at 11:42 AM, Sascha Alexander Jopen >>>>>>>> <[email protected]> wrote: >>>>>>>>> Hey, >>>>>>>>> >>>>>>>>> i compiled for a recent kernel from ubuntu, namely 2.6.35-22-generic. >>>>>>>>> I >>>>>>>>> didn't apply your NETREG_REGISTERED patch, but it seems, everything >>>>>>>>> compiled fine. >>>>>>>>> I think this patch part is included in Joonwoos "[PATCH 04/12] >>>>>>>>> Configury: prepend net_device namespace for NETREG_REGISTERED" >>>>>>>>> As the enum in question is part of the net_device struct, everything >>>>>>>>> should work as expected. Applying your patch leads to compiler errors >>>>>>>>> on >>>>>>>>> my system. >>>>>>>>> >>>>>>>>> So basically i am right, that FromHost is completely missing, >>>>>>>>> currently? >>>>>>>>> It would be nice, if someone could point me to the right direction. >>>>>>>>> What >>>>>>>>> is the problematic part in implementing this element? >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Sascha >>>>>>>>> >>>>>>>>> Am 09.11.2010 19:35, schrieb Roman Chertov: >>>>>>>>>> Sascha, >>>>>>>>>> >>>>>>>>>> What kernel version did you use? It appears that for 2.6.35 and >>>>>>>>>> above the >>>>>>>>>> NETREG_REGISTERED fix is required as well. If you start on updating >>>>>>>>>> FromHost, I >>>>>>>>>> will be glad to give you a hand. >>>>>>>>>> >>>>>>>>>> Roman >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Fri, 05 Nov 2010 20:02:38 +0100 Sascha Alexander Jopen >>>>>>>>>> <[email protected]> wrote >>>>>>>>>> >>>>>>>>>>> Hello, >>>>>>>>>>> >>>>>>>>>>> i tried click patchless today. I used those patches from Joonwoo, >>>>>>>>>>> which >>>>>>>>>>> didn't make it into the repository till now. Especially the patches >>>>>>>>>>> to >>>>>>>>>>> fixincludes and the configure scripts were necessary. >>>>>>>>>>> >>>>>>>>>>> It seems the FromHost element is not included during build. I know >>>>>>>>>>> this >>>>>>>>>>> was the last element which had to be done, but is it really still >>>>>>>>>>> not >>>>>>>>>>> finished? What are the missing parts for this element to work? >>>>>>>>>>> >>>>>>>>>>> We are using click userlevel and kernel level isn't really >>>>>>>>>>> necessary but >>>>>>>>>>> still nice to have. So maybe i could use some spare time to finish >>>>>>>>>>> the >>>>>>>>>>> FromHost element, if there isn't that much missing. >>>>>>>>>>> >>>>>>>>>>> Regards, >>>>>>>>>>> Sascha Jopen >>>>>>>>>>> >>>>>>>>>>> On 11/03/10 17:42, Roman Chertov wrote: >>>>>>>>>>>> This will also require Joonwoo's PATCH1/12. It removes #include >>>>>>>>>>>> <linux/autoconf.h> from configure.in >>>>>>>>>>>> >>>>>>>>>>>> On Tue, 02 Nov 2010 18:44:32 -0700 "Roman >>>>>>>>>>>> Chertov"<[email protected]> >>>>>>>>>>>> wrote >>>>>>>>>>>> >>>>>>>>>>>>> Hello, >>>>>>>>>>>>> >>>>>>>>>>>>> This works on Fedora 13 running 2.6.35.8 SMP kernel. The second >>>>>>>>>>>>> patch is >>>>>>>>>>>>> based >>>>>>>>>>>>> on patches 2/12 and 3/12 that Joonwoo released. I had to add the >>>>>>>>>>>>> NETREG_REGISTERED patch due to scoping issues when an enum >>>>>>>>>>>>> declared in >>>>>>>>>>>>> net_device is used. Otherwise, the code is same as in github >>>>>>>>>>>>> master >>>>>>>>>>>>> branch. >>>>>>>>>>>>> I >>>>>>>>>>>>> am not sure if there is a more elegant way to solve that issue. >>>>>>>>>>>>> >>>>>>>>>>>>> Roman >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> click mailing list >>>>>>>>>>>> [email protected] >>>>>>>>>>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> click mailing list >>>>>>>>>>> [email protected] >>>>>>>>>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> click mailing list >>>>>>>>> [email protected] >>>>>>>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click >>>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> click mailing list >>>>>>> [email protected] >>>>>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> click mailing list >>>>>> [email protected] >>>>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click >>>>>> >>>>>> >>>>> >>> >>> _______________________________________________ >>> click mailing list >>> [email protected] >>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click >>> >> _______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
