Re: Mechanism for Enqueue and Dequeue?

Linux Advanced Routing and Traffic Control

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

 



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
_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

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