ip_output()/if_output() behaviour

Adrian Chadd adrian at freebsd.org
Fri Nov 29 22:39:52 UTC 2013


+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.

Thanks!



-adrian


More information about the freebsd-net mailing list