On 05/20/2016 09:35 AM, Jonathan Morton wrote:
On 20 May, 2016, at 19:20, Rick Jones <rick.jon...@hpe.com> wrote:
I suppose if said software were to dive below the socket interface
it could find-out, though that will tend to lack portability.

I’m a little fuzzy on UDP socket semantics.

Could the sender set DF on a small proportion of the packets, and
listen for ICMP errors to the effect?  These packets could also be
salted with distinguishable data so that the receiver can tell
whether the DF packets, in particular, got through.


The Linux manapge for UDP asserts:

       By default, Linux UDP does path MTU (Maximum Transmission Unit) discov‐
       ery.  This means the kernel will keep track of the MTU  to  a  specific
       target  IP  address and return EMSGSIZE when a UDP packet write exceeds
       it.  When this happens, the  application  should  decrease  the  packet
       size.   Path MTU discovery can be also turned off using the IP_MTU_DIS‐
       COVER socket option or the /proc/sys/net/ipv4/ip_no_pmtu_disc file; see
       ip(7)  for  details.   When  turned off, UDP will fragment outgoing UDP
       packets that exceed the interface MTU.  However, disabling  it  is  not
       recommended for performance and reliability reasons.

But I haven't seen that EMSGSIZE happen with netperf UDP tests - could be though I've never run them in an environment which triggered PTMUD.

I don't have visibility into the assertions for *BSD and other Unices.

I'm thinking that modulo not knowing with certainty it was the only thing sending and/or receiving traffic, sampling IP stats about fragments before the test and again after would be a more straightforward way to check instead of complicating the benchmark's data path.

happy benchmarking,

rick jones
_______________________________________________
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake

Reply via email to