On Tue, Mar 26, 2002 at 10:10:05PM -0800, Archie Cobbs wrote: > Luigi Rizzo writes: ... > Along those lines, this might be a handy thing to add... > > int if_get_next(struct ifnet *ifp); /* runs at splimp() */ > > This function tries to "get" the next packet scheduled to go > out interface 'ifp' and, if successful, puts it on &ifp->if_snd > (the interface output queue for 'ifp') and returns 1; otherwise, > it returns zero.
how is this different from having a longer device queue ? cheers luigi > Then, each device driver can be modified (over time) to invoke > this function when it gets a transmit interrupt and it's output > queue is empty. If the function returns 1, grab the new packet > off the queue and schedule it for transmission. > > Once this is done it becomes much easier to hack together ideas > for queueing and scheduling e.g., a netgraph node that does packet > scheduling. > > I think ALTQ does something like this. It would be nice if it > was generic enough that other mechanisms besides ALTQ (like > netgraph) could also use it. I'm not that familiar with how > ALTQ is implemented. > > -Archie > > __________________________________________________________________________ > Archie Cobbs * Packet Design * http://www.packetdesign.com > > To Unsubscribe: send mail to [EMAIL PROTECTED] > with "unsubscribe freebsd-net" in the body of the message To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-net" in the body of the message