Re: output packet queueing?
Re: output packet queueing?
- Subject: Re: output packet queueing?
- From: "Justin C. Walker" <email@hidden>
- Date: Tue, 29 Jan 2002 22:46:59 -0800
On Tuesday, January 29, 2002, at 08:26 AM, Andrew Gallatin wrote:
Where do network drops typically happen in darwin?
Eg, I'm seeing packets get dropped somewhere between udp_output() and
my driver. (comparing counters in my driver and in udp_output()). The
culprit is returning ENOBUFS. My driver has control of its own
if_output (eg, its not going through IOKit).
Packets get dropped in "the usual places": all along the path from
udp_output to the inside of the driver.
The ENOBUFS error crops up when there is no available buffer for some
required use (e.g., failing on the allocation of an mbuf to hold the
packet header). This is done in udp_output(), and un ip_output().
Is this driver "virtual", or does it deal with hardware?
Since the BSD per-interface ifp->if_snd output queuing seems to be
gone (or replaced somehow), I'm not sure where output queuing is
happening.
In Darwin, there is no enforced system queueing; the driver itself
chooses the method of queueing, if any.
Regards,
Justin
--
/~\ The ASCII Justin C. Walker, Curmudgeon-at-Large
\ / Ribbon Campaign
X Against HTML
/ \ Email