[Click] question on element scheduling

Eddie Kohler kohler at cs.ucla.edu
Thu May 26 21:53:40 EDT 2005


You won't have to play with the Click scheduler.  You need a Timer,  
which runs based on time, rather than packet arrivals.

E


On May 22, 2005, at 12:54 PM, Indian Mogul wrote:

> Thanks Nikitas & Beyers. In brief, it means I'll have
> to play with the click scheduler. In the meantime let
> me read the section on TASKS and TIMERS; before I
> shoot in further questions.
>
> Cheers!!
> IM
>
> --- Nikitas Liogkas <nikitas at CS.UCLA.EDU> wrote:
>
>> What Beyers is saying is correct, just bear in mind
>> that timers have
>> coarse granularity; they get processed every 32
>> (default) scheduling
>> epochs. So, for example, if you want your code to
>> run at time t, you
>> should schedule the timer for time t-dt, in order to
>> maximize the
>> probability that it WILL actually run at time t. If
>> this is confusing,
>> let me know and I can elaborate more.
>>
>> Hope this helps!
>>
>> nikitas
>>
>> Beyers Cronje wrote:
>>
>>> Hi IM,
>>>
>>> See comments below.
>>>
>>> Beyers
>>>
>>> On 5/20/05, Indian Mogul <indian_mogul at yahoo.com>
>>>
>> wrote:
>>
>>>
>>>
>>>> Hi,
>>>>   I have a simple question for which I have been
>>>> laboring for quite some time.
>>>> In my router config file, I want one of my click
>>>> element to periodically check for the value of TTL
>>>>
>> in
>>
>>>> the table irrespective of whether packets are
>>>>
>> recvd or
>>
>>>> not? The name of the element is check_ttl() and
>>>>
>> the
>>
>>>> path where it is introduced is:
>>>> //Fromdevice()->classifier->get_flow_id()
>>>>  ->check_ttl()->//
>>>>
>>>> so, inside the element I have code that does:
>>>> // Check current time.
>>>> // If (current_time > expiry time)
>>>> //    flush_the _entry
>>>> //   else
>>>> //     do nothing.
>>>>
>>>> 1. Now, my question is, will the element
>>>>
>> "check_ttl()"
>>
>>>> get automatically scheduled at the right time
>>>> irrespective of whether packets are there or not?
>>>>
>>>
>>>
>>> The short answer is no.
>>>
>>> My understading is only schedulable tasks and
>>>
>> timers are processed by
>>
>>> the scheduler. All schedulable elements such as
>>>
>> PollDevice/FromDevice
>>
>>> implements a task, the scheduler calls the
>>>
>> element's run_task method
>>
>>> when scheduled. Unschedulable elements are called
>>>
>> implicitly through
>>
>>> the push/pull interfaces from the schedulable
>>>
>> element.
>>
>>>
>>> For your requirements a timer might be the way to
>>>
>> go, maybe inside an
>>
>>> information element, which does not sit in packet
>>>
>> flow path, in other
>>
>>> words it does not implement and push/pull
>>>
>> interfaces. Look at the
>>
>>> existing elements on implementing timers.
>>>
>>> Have another look in the programming manual for
>>>
>> TASKS and TIMERS.
>>
>>>
>>> For your scenarion an informational element
>>>
>>>
>>>
>>>> 2. Since click is single threaded, how do I
>>>>
>> schedule
>>
>>>> the check_ttl() if ans to (1) is false?
>>>>
>>>
>>>
>>> See above.
>>>
>>>
>>>
>>>> Thanks?
>>>> IM
>>>>
>>>> __________________________________________________
>>>> Do You Yahoo!?
>>>> Tired of spam?  Yahoo! Mail has the best spam
>>>>
>> protection around
>>
>>>> http://mail.yahoo.com
>>>> _______________________________________________
>>>> 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
>>
>>
>
>
>
> Discover Yahoo!
> Stay in touch with email, IM, photo sharing and more. Check it out!
> http://discover.yahoo.com/stayintouch.html
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>



More information about the click mailing list