Re: Mechanism for Enqueue and Dequeue?

marco ghidinelli
Mon, 04 Apr 2005 16:15:25 -0000

On Tue, Mar 22, 2005 at 04:07:05PM +0000, Deadly Earnest
wrote:
>
> Basically I''m trying to find out the mechanism of the Enqueue and
Dequeue operations. The utility tc which is used to configure the queues is
external to the Kernel so it doesn''t configure the Kernel. I assume it
just configures the tables that the Kernel uses. When the Kernel what''s
to Queue something does it ask another process to do that? And similarly does it
ask an external process to Dequeue a packet for transmission?

no, the tc only gives the kernel the instruction to create classes and
queues in the structures of the kernel.

filters do the work of choosing in which class put the packet.

> What is the mechanism or interface?



> For example if you change the queueing method you don''t have to
change the whole Kernel and recompile it so there is an external interface I
assume.

you can just go in /net/sched/ and look at the sch_generic.c file, the
pfifo_fast queue, which just creates 3 fifos queue.

everything there is very clean.

keep a look even at this document:

http://www.docum.org/docum.org/docs/other/tc.ps

> The HOWTO states in section 9.5.2.1. that ''Packets get enqueued
and dequeued at the root qdisc, which is the ony thing that the kernel talks
to''. How does it talk to the qdisc? Could I write my own Queue?

yes, of course. :)

> This may not be the form for this question in which case sorry for the
noise.

i think that''s the right place.

p.s. sorry for the delay.


--
BOFH excuse #71:

The file system is full of it