[Click] please_stop_driver() function

Andreas Tarp click at atarp.com
Wed Mar 9 04:29:40 EST 2005


Hi,

thanks for the reply. It seems to be a problem of the cross compilation 
for the ARM architecture of our PDAs. I just figured out, that my 
elements are working fine on normal PCs. I had no root rights on the 
machines here, so I was not able to check this before.

But it is still a strange behavior, because all other elements are 
working fine. I think I have to read a lot about cross-compilers now to 
fix this error :-(

Andreas

Nikitas Liogkas wrote:

> That's weird, I've successfully used please_stop_driver() in Discard, 
> to stop the driver when a packet with a specific annotation comes 
> along! I modified the default Discard element though, I did not create 
> a new one! Maybe something is wrong with your newly-created element?
>
> nikitas
>
>
> Andreas Tarp wrote:
>
>> Hi Eddie,
>>
>> thanks for the answer.
>>
>> I just tested the please_stop_driver() function without using other 
>> own elements but the Segmentation fault is still there :-(
>>
>> I changed the original Discard element to stop the driver if a packet 
>> is passed to the element. Here is the customized part of the Discard 
>> element:
>>
>> void
>> Exit::push(int, Packet *p)
>> {
>>   p->kill();
>>   router()->please_stop_driver();
>> }
>>
>> (Discard is replaced by Exit, the elements name
>> #include <click/router.hh> is also included)
>>
>> My click configuration is very simple:
>>
>> FromDevice(wlan0)
>> -> Exit;
>>
>> Using the original Discard element instead of Exit works fine.
>>
>> Elements like TimedSource (they also use the please_stop_driver() 
>> function) are also working without problems.
>>
>> I am using Click 1.4.1 cross compiled on some iPAQs (ARM CPU) running 
>> familiar Linux.
>>
>> Andreas
>>
>>
>>
>>
>> Eddie Kohler wrote:
>>
>>> Hi Andreas,
>>>
>>> Click should not segfault after please_stop_driver().  Is your 
>>> configuration running an element of your own design?  Maybe the bug 
>>> is there.  EIther that or it's our bug, send a configuration along 
>>> and sometime hopefully before 2006 :( we'll take a look.
>>>
>>> Eddie
>>>
>>>
>>> Andreas Tarp wrote:
>>>
>>>> Hi,
>>>>
>>>> i have a question regarding to the please_stop_driver()  function 
>>>> from click/router.hh:
>>>>
>>>> I think in theory the line
>>>>
>>>> router -> please_stop_driver()
>>>>
>>>> somewhere within an element (for example in the 
>>>> Element::simple_action part) should stop the runnig click 
>>>> configuration and return to the linux console.
>>>>
>>>> In my case click quits when calling these function, but I always 
>>>> receive a SIGSEGV error. Do I have to pay attention to some other 
>>>> rules, when calling please_stop_driver() ?
>>>>
>>>> My intention is to write a small element, which quits the running 
>>>> click router, if a packet is passed to the element.
>>>>
>>>> Thanks a lot,
>>>>
>>>> Andreas
>>>>
>>>> _______________________________________________
>>>> 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