<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:10px;">To answer my own question: I think there is a reason for not doing so. If cake_enqueue() gets called there is a packet we need to dequeue later on. So it wouldn't be wise to schedule the watchdog blindly at "now+q->tins[i].cparams.target" even though the scheduler's queue is still empty at that point. <br><br> <br>>On Sunday, September 17, 2017, 10:34:31 AM EDT, George Amanakis <g_amanakis@yahoo.com> wrote: <br>>Dear Jonathan,<br>>I am looking/testing the latest cobalt updates.Most of them make sense. <br>>I have a question though.<br>>At the end of cake_dequeue() you schedule the watchdog at <br>>"now+q->tins[i].cparams.target" if "!sch->q.qlen". This seems very <br>>reasonable. Instead in the beginning of cake_enqueue() you do:<br>><br>> 916                 if (!sch->q.qlen) {<br>> 917                         if (q->time_next_packet < now) {<br>> 918                                 q->time_next_packet = now;<br>> 919                         } else if (q->time_next_packet > now) {<br>> 920                                 sch->qstats.overlimits++;<br>> 921 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)<br>> 922 codel_watchdog_schedule_ns(&q->watchdog, q->time_next_packet, true);<br>> 923 #else<br>> 924 qdisc_watchdog_schedule_ns(&q->watchdog, q->time_next_packet);<br>> 925 #endif<br>> 926                         }<br>> 927                 }<br>> 928         }<br>><br>>Is there any reason why you haven't scheduled the watchdog at <br>>"now+q->tins[i].cparams.target" like in cake_dequeue()?<br>><br>>Thank you,<br>>George<br><br></div></body></html>