ip_output()/if_output() behaviour

Michael Tuexen Michael.Tuexen at lurchi.franken.de
Sat Nov 30 08:50:58 UTC 2013


On Nov 29, 2013, at 11:39 PM, Adrian Chadd <adrian at freebsd.org> wrote:

> +1
> 
> 
> On 29 November 2013 08:14, Julian Elischer <julian at freebsd.org> wrote:
> 
>>> ifnet(9) says:
>>> 
>>>            if_transmit()
>>>            Transmit a packet on an interface or queue it if the interface
>>> is
>>>            in use.  This function will return ENOBUFS if the devices
>>> software
>>>            and hardware queues are both full.  ...
>>> 
>>> So I guess returning ENOBUFS when the packet was queued is wrong...
>> 
>> I think it is.
>> 
>> ENOBUFS means "I couldn't proceed due to no buffers"
>> not "I used up the last one on this operation".
> 
> Yes, it's wrong. ENOBUFS means "couldn't queue; no buffers." Please
> provide a diff against igb and I'll make sure Jack/Intel get it into
> (his, freebsd) tree.
I sent the patch already yesterday to the list and Jack. It covers
em, igb and ixgbe.

Best regards
Michael
> 
> Thanks!
> 
> 
> 
> -adrian
> 



More information about the freebsd-net mailing list