tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: so_rerror



On 08/11/2018 02:44, Christos Zoulas wrote:
| But fundamentally, the test case is flawed. UDP says packets can:
| 1) be discarded
| 2) arrive in a different order than what was sent
| This is basic UDP 101, but the test cases requires the complete opposite
| of the above.

Yes, in this case AF_LOCAL can't arrive out of order. Even if I was
testing AF_INET{6,} on localhost (or on the same physical network segment)
it could not arrive out of order...

But it can because packets were discarded.
Without SO_RERROR, the receiver doens't context switch on error so it looks like this:

# = send/recv
* = overflow
. = non op

sender    |##############*.....|
receiver  |##############*.....|

But with SO_RERROR it looks like this

sender    |##############*.....|
receiver  |##*###*##*####*.....|

So while you might send successfully in sequence, the receiver didn't.
As discarded packets == out of order for this test case.

In this test the sequence number is only incremented on successful send.
I expected AF_LOCAL to not drop packets in that case (and it did not).

Just because it was successfuly sent does not mean it was succesfully recieved. And packets were dropped for AF_LOCAL otherwise it wouldn't see any overflow errors, but yet it does (for SO_RERROR).

Maybe it's just me, but everything said thus far just solidifies my position. But as I said earlier, I'm past caring. I can't make anyone here understand and no-one has given a convincing enough argument that I'm wrong.

Roy


Home | Main Index | Thread Index | Old Index