On Thu, 25 Apr 2002, Varun Varma wrote: > From what I can see of the code in register_netdevice (and the wrapper > regsiter_netdev), no default qdisc is assigned to a device, if it doesn't > already contain one when these functions are called - not even noop_qdisc. > The result should be that dev->qdisc == NULL when it get's checked in > dev_queue_xmit, and thus queuing is altogether ignored for such a device, > and the skb is sent to the dev->hard_start_xmit function instead. > > Maybe I'm missing something here. What kernel version are you using? Good point! I am using 2.2.18. The register_netdevice() in 2.2.18 has a dev_init_scheduler() call which initializes the qdiscs to noop_qdisc. I am going to look at the 2.4 series to see their changes. > > 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? > > Two part answer to this: > > 1) If device does indeed have a noop_qdisc associated with it, the skb > would get "lost" in the noop_enqueue function. > > 2) Most interfaces, even those configured with good 'ol ifconfig have > a queueing discipline associated with them. I believe the default is > pfifo_fast. You can check this by running "ip link show" on you m/c. > So a "standard" interface configured with ifconfig would still let > all packets go through! Now the test for me to do is check if point 2 holds true for 2.2.18 Will get back with the results. Thanx. ciao, Amit -- 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/