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

Reply via email to