Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Nov 2013 19:44:39 +0800
From:      Julian Elischer <julian@freebsd.org>
To:        Michael Tuexen <Michael.Tuexen@lurchi.franken.de>, Adrian Chadd <adrian@freebsd.org>
Cc:        "freebsd-net@freebsd.org list" <freebsd-net@freebsd.org>
Subject:   Re: ip_output()/if_output() behaviour
Message-ID:  <52987E27.10503@freebsd.org>
In-Reply-To: <B7E3AA58-172A-4D20-B625-95C4712D46E7@lurchi.franken.de>
References:  <BF7B04F7-0D45-4708-99A8-8BE030109CEC@lurchi.franken.de> <CAJ-Vmo=Jsf=7uXxwJ=Md5KLFpvSYAcaaNrq%2BbHsw75nfSG_ZaQ@mail.gmail.com> <B7E3AA58-172A-4D20-B625-95C4712D46E7@lurchi.franken.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On 11/29/13, 5:42 PM, Michael Tuexen wrote:
> On Nov 29, 2013, at 3:54 AM, Adrian Chadd <adrian@freebsd.org> wrote:
>
>> On 28 November 2013 12:35, Michael Tuexen
>> <Michael.Tuexen@lurchi.franken.de> wrote:
>>> Dear all,
>>>
>>> I'm investigating a problem and need to understand the behaviour
>>> of ip_output(). Is it correct that if ip_output() returns an
>>> non-zero error, the corresponding packet was never sent?
>>> In the SCTP stack we assume this, but it seems that at least
>>> the em and the igb driver might return an error from
>>> igb_mq_start_locked(), for example, but have accepted the packet.
>> Which error(s) ?
> ENOBUFS, but does it matter? What is the correct reaction to
> ip_output() returning an error? The SCTP stack assumes that the
> packet was not put on the wire. With the current version of the
> igb driver we are wrong. igb_mq_start() might return an error,
> even if the packets was enqueued successfully (in case
> igb_mq_start_locked() fails).
>
> But the SCTP stacks assumes in general that if ip_output() returns
> an error, the packet didn't make it out.
 From my memory it's always been the case that you really have little
idea if the packet makes it out onto the wire or not.
In the past it's been the case that an error indicates that it 
probably DIDN'T make it out, but
the converse is not true.. NO error is not an indication of success.
I'm surprised that you could get an error when it was broadcast 
however.. that is counter
to the last 30 years of behaviour.


>
> Best regards
> Michael
>>> Before digging further, I would like to know what the intended
>>> behaviour of ip_output() is.
>>
>> -adrian
>>
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52987E27.10503>