Re: When the inside functions of a sfq are called ?

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Adrian Saileanu wrote:
>>   I read the sched/qdiscs code from kernel source ... and I have some
>> questions :
>>
>>   When the .enqueue, .dequeue, .drop, .requeue functions are called ?
>
> Do you mean in sfq.c - ie sfq_enqueue etc. Maybe you mean something else.

Yes, I ment the functions in the Qdisc_ops struct :

+static struct Qdisc_ops dup_qdisc_ops = {
+        .next                = NULL,
+        .cl_ops                = NULL,
+        .id                = "sfq",
+        .priv_size        = sizeof(struct sfq_sched_data),
+        .enqueue        = sfq_enqueue,
+        .dequeue        = sfq_dequeue,
+        .requeue        = sfq_requeue,
+        .drop                = sfq_drop,
+        .init                = sfq_init,
+        .reset                = sfq_reset,
+        .destroy        = NULL,
+        .change                = sfq_init,
+        .dump                = sfq_dump,
+        .owner                = THIS_MODULE,
+};


>   What
>> is the event that triggers them and how often this event apears ( per
>> second ? ) ?
>
> I don't know as such, but always assumed that when attached to HTB  - a
> packet gets enqueued if there aren't enough (c)tokens to send it and
> dequeued when there are. As for timing I don't think sfq uses any - it's
> up to whatever it is attached to.
>

  Ok, the packet gets enqueued ... and the queue gets full. Then if a new
packet arrives and the queue is still full (  it has not been dequeued )
then this packet is dropped. My question is ... is the queue dequeued
when it is full ? Or t can be dequeued even when the maximum has not
been reatched ? When this .dequeue function is called ?

> sfq_drop is called from sfq_enqueue when the queue is full. It drops
> from the longest slot.
>
  I know this ...

> requeue - don't know.
>
> Andy.
>
> _______________________________________________
> LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
> http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
>


Adrian Saileanu
Netmaster Communications Srl

address: Str. Ion Brezoianu Nr. 20
Sector 1, Bucuresti, Romania

office: +40 21 315 92 00
mobile: +40 723 979 586
email:   adrian@xxxxxxxxxxxx





_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux