Re: New IMQ device implementation supporting device EOS

Linux Advanced Routing and Traffic Control

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

 



Andy Furniss wrote:
Jiri Fojtasek wrote:


Andy Furniss wrote:


Jiri Fojtasek wrote:

Hello Roy

Roy wrote:

 >Hello,
 >imq became realy popular now ;)
 > >
Sure, same as whole GNU/Linux  :)

>It would be good ir you wrote what is that EOS to save time for some people
>on searches.
>
> >
EOS - End of Send. Its time betwen two dequeues and packet transmits
used by qdisc for calculation.




Is that a kernel transmit or a real "on the wire" transmit - ie can you keep the devices' buffer empty or just detect when it's full?

Any of current IMQ implementations do not



It leave always only one packet in the device queue. It is there until is not dequeued (sent to the device driver) and then is inserted another etc, etc


I think I understand - in the case of imq -> ppp -> usb/pci -> radsl modem with big buffer -> phone line. imq will only let one packet wait in ppp queue, but there could still be a full buffer in the "real" device.

Your problem cannot be solved IMQ and also by standart qdisc atached to ppp, but you can place at you ppp qdisc like tbf that will manage maximal rate, so the hardware buffers will not be filled quick. With usage with my IMQ, IMQ queue will follow the rate of the tbf qdisc atached to the ppp device :) I have tested this thing and working great. But for this you will not need IMQ :D


Upper layer do not have anything with hardware buffer. There is not kernel interface to get devices state about his hardware buffer. Especially if you use PPP. Its software device. But device can indicate his busy state by netif_queue_stopped(dev). In time when netif_queue_stopped(dev) bit is set (hardware xmiting the packet), dequeueing is stopped and schedulet in to other time via softirq netif_schedule(dev). The same following my IMQ driver. After dequeueing stoping itself by netif_stop_queue() and sending the packet to real device queue. When the device accept this packet for delivery ( after dev->hard_start_xmit() ) queue of my IMQ driver is waked up by netif_wake_queue(). Version 1.1 of my driver have all comented in the source.

Jiri

Zkontrolovane antivirusom ClamAv
Scanned by ClamAv - http://www.clamav.net
_______________________________________________
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