[Codel] [Cake] Proposing COBALT
Rick Jones
rick.jones2 at hpe.com
Fri May 20 13:01:19 EDT 2016
On 05/20/2016 09:35 AM, Jonathan Morton wrote:
>> On 20 May, 2016, at 19:20, Rick Jones <rick.jones2 at 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
More information about the Codel
mailing list