Re: queuing of packets in network devices

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

 



On Wed, 24 Apr 2002, Varun Varma wrote:

> Amit,
> 
> Check out the function dev_queue_xmit in net/core/dev.c. If there isn't
> a queuing discipline attatched to a network device, the packets are not
> queued anywhere, but sent to the device directly.
> 
> Regards,
> -Varun

Thanks Varun. I figured this one out yesterday after a complete walk
through of net_bh(), qdisc_run_queues(), qdisc_restart() and
dev_queue_xmit()

Now my only question is:

What happens in case of a device to which none of the well-known qdiscs 
(cbq, sfq, wrr etc.) is attached? In that case, the device is 'stuck' with 
the noop_qdisc which it gets during its registration - 
register_netdevice(), right?

And the enqueue function for the noop_qdisc is noop_enqueue() which just 
frees the skb! So where is the actual packet kicked out from?

TIA.
ciao,
Amit

> On Tue, Apr 23, 2002 at 11:18:26PM -0500, Amit Kucheria spoke out thus:
> > Hi,
> > 
> > Where are packets queued for a network device? 
> > 
> > I see 3 members in 'struct device' called qdisc, qdisc_sleeping &
> > qdisc_list which are initialized to noop_qdisc, noop_qdisc and NULL
> > respectively when calling register_netdevice().
> > 
> > So how & where are incoming/outgoing packets queued then?

-- 
I'm an angel!!! Honest!
The horns are just there to hold the halo up straight.
^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^
                  Amit Kucheria
          EECS Grad. Research Assistant
         University of Kansas @ Lawrence
   (R)+1-(785)-830 8521 ||| (O)+1-(785)-864 7774
____________________________________________________

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux